Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
3692e0e
fix: babel tranform es error (#1651)
fupengl May 6, 2021
d427bca
fix syntax highlighting in Grid.md (#1628)
inokawa May 6, 2021
2ef6367
Fix issue with unused import being emitted (#1635)
mewhhaha May 17, 2021
d365098
Update peer dependencies to allow React 17 (#1625)
levenleven May 17, 2021
abe0530
Fix grid roles for accessbility (#1624)
asnewman May 17, 2021
2e962d8
Updated CHANGELOG. Someone else can publish this release if they want…
Feb 26, 2022
005be24
chore: Add support for react ^17.0.0 and ^18.0.0 (#1740)
rebelliard Apr 23, 2022
5532c38
Update README
bvaughn Apr 17, 2023
e78651c
README changes
bvaughn Apr 17, 2023
1cb2405
Automatically close stale PRs and issues
bvaughn Aug 13, 2024
2f6ff33
Revert stale.yml
bvaughn Aug 13, 2024
d9617ad
Full react 19 support (#1866)
adubrouski Jan 20, 2025
aab8da4
Version bump 9.22.4 -> 9.22.5
bvaughn Jan 20, 2025
b8234ac
Yarn DEV updates
bvaughn Jan 20, 2025
c737715
Version bump 9.22.5 -> 9.22.6
bvaughn Jan 20, 2025
ffe1d12
feat(AutoSizer): measure via `getBoundingClientRect` + add `roundingM…
jonw09 Jul 2, 2026
77ef03f
fix(resetTriggers): add 1 to expand scrollLeft/scrollTop
akramer24 Apr 27, 2021
49507b7
feat(scripts): add prepare script
akramer24 Apr 27, 2021
ab97248
chore: remove prepare script and build/commit dist instead
akramer24 May 24, 2021
3c6b845
chore: add prepare echo so yarn treats this as it would a published p…
akramer24 May 24, 2021
187ae3c
chore: remove styles.css from gitignore
akramer24 May 24, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .babelrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ if (env === 'commonjs' || env === 'es') {
plugins: [
'@babel/plugin-transform-runtime',
'@babel/plugin-proposal-class-properties',
'@babel/plugin-transform-flow-comments',
['flow-react-proptypes', {deadCode: true, useESModules: true}],
['transform-react-remove-prop-types', {mode: 'wrap'}],
],
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Close stale issues and PRs
on:
schedule:
- cron: '0 8 * * *'

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9.0.0
with:
days-before-stale: 28
days-before-close: 0
exempt-issue-labels: do-not-close
exempt-pr-labels: do-not-close
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
.DS_Store
build
coverage
dist
node_modules
npm-debug.log
styles.css
.vscode
.idea
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
## Changelog

##### NEXT

- Update peer dependencies to allow React 17 ([levenleven](https://github.com/levenleven) - [#1625](https://github.com/bvaughn/react-virtualized/pull/1625))
- Use DOM API instead of creating Trusted Types policy to append a markup ([shhnjk](https://github.com/shhnjk) - [#1627](https://github.com/bvaughn/react-virtualized/pull/1627))
- Fix bug in WindowScroller::updatePosition ([yamadapc](https://github.com/yamadapc) - [#1642](https://github.com/bvaughn/react-virtualized/pull/1642), [#1648](https://github.com/bvaughn/react-virtualized/pull/1648))
- Fix babel tranform es error ([fupengl](https://github.com/fupengl) - [#1651](https://github.com/bvaughn/react-virtualized/pull/1651))
- Fix issue with unused import being emitted ([mewhhaha](https://github.com/mewhhaha) - [#1635](https://github.com/bvaughn/react-virtualized/pull/1635))
- Fix grid roles for accessbility ([asnewman](https://github.com/asnewman) - [#1624](https://github.com/bvaughn/react-virtualized/pull/1624))

##### 9.22.5

- React 19 support added; special thanks to ([artur-ptaszek-mck](https://github.com/artur-ptaszek-mck) and ([adubrouski](https://github.com/adubrouski)

##### 9.22.4

- README changes

##### 9.22.3

- Add Trusted Types support ([shhnjk](https://github.com/shhnjk) - [#1614](https://github.com/bvaughn/react-virtualized/pull/1614))
Expand Down
11 changes: 2 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
[<img src="https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png" alt="React virtualized" data-canonical-src="https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png" width="330" height="100" />](http://bvaughn.github.io/react-virtualized/)

[![NPM version](https://img.shields.io/npm/v/react-virtualized.svg?style=flat)](https://www.npmjs.com/package/react-virtualized)
![NPM license](https://img.shields.io/npm/l/react-virtualized.svg?style=flat)
[![NPM total downloads](https://img.shields.io/npm/dt/react-virtualized.svg?style=flat)](https://npmcharts.com/compare/react-virtualized?minimal=true)
[![NPM monthly downloads](https://img.shields.io/npm/dm/react-virtualized.svg?style=flat)](https://npmcharts.com/compare/react-virtualized?minimal=true)
[![CircleCI](https://circleci.com/gh/bvaughn/react-virtualized/tree/master.svg?style=svg)](https://circleci.com/gh/bvaughn/react-virtualized/tree/master)
[![Codecov badge](https://img.shields.io/codecov/c/github/bvaughn/react-virtualized/master.svg)](https://codecov.io/github/bvaughn/react-virtualized)
[![OpenCollective](https://opencollective.com/react-virtualized/backers/badge.svg)](#backers)
[![OpenCollective](https://opencollective.com/react-virtualized/sponsors/badge.svg)](#sponsors)

React components for efficiently rendering large lists and tabular data.
Check out [the demo](https://bvaughn.github.io/react-virtualized/) for some examples.

### If you like this project, 🎉 [become a sponsor](https://github.com/sponsors/bvaughn/) or ☕ [buy me a coffee](http://givebrian.coffee/)

### Sponsors

The following wonderful companies have sponsored react-virtualized:
Expand Down
207 changes: 207 additions & 0 deletions dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _ = _interopRequireWildcard(require("./"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _clsx2 = _interopRequireDefault(require("clsx"));

var _ArrowKeyStepperExample = _interopRequireDefault(require("./ArrowKeyStepper.example.css"));

var _class, _temp;

var ArrowKeyStepperExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
(0, _inherits2["default"])(ArrowKeyStepperExample, _React$PureComponent);

function ArrowKeyStepperExample() {
var _getPrototypeOf2;

var _this;

(0, _classCallCheck2["default"])(this, ArrowKeyStepperExample);

for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}

_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(ArrowKeyStepperExample)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
mode: 'edges',
isClickable: true,
scrollToColumn: 0,
scrollToRow: 0
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getColumnWidth", function (_ref) {
var index = _ref.index;
return (1 + index % 3) * 60;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getRowHeight", function (_ref2) {
var index = _ref2.index;
return (1 + index % 3) * 30;
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRenderer", function (_ref3) {
var columnIndex = _ref3.columnIndex,
key = _ref3.key,
rowIndex = _ref3.rowIndex,
scrollToColumn = _ref3.scrollToColumn,
scrollToRow = _ref3.scrollToRow,
style = _ref3.style;
var className = (0, _clsx2["default"])(_ArrowKeyStepperExample["default"].Cell, (0, _defineProperty2["default"])({}, _ArrowKeyStepperExample["default"].FocusedCell, columnIndex === scrollToColumn && rowIndex === scrollToRow));
return React.createElement("span", {
role: "none",
className: className,
key: key,
onClick: _this.state.isClickable && function () {
return _this._selectCell({
scrollToColumn: columnIndex,
scrollToRow: rowIndex
});
},
style: style
}, "r:".concat(rowIndex, ", c:").concat(columnIndex));
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_selectCell", function (_ref4) {
var scrollToColumn = _ref4.scrollToColumn,
scrollToRow = _ref4.scrollToRow;

_this.setState({
scrollToColumn: scrollToColumn,
scrollToRow: scrollToRow
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onClickableChange", function (event) {
if (event.target instanceof HTMLInputElement) {
_this.setState({
isClickable: event.target.checked,
scrollToColumn: 0,
scrollToRow: 0
});
}
});
return _this;
}

(0, _createClass2["default"])(ArrowKeyStepperExample, [{
key: "render",
value: function render() {
var _this2 = this;

var _this$state = this.state,
mode = _this$state.mode,
isClickable = _this$state.isClickable,
scrollToColumn = _this$state.scrollToColumn,
scrollToRow = _this$state.scrollToRow;
return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
text: "ArrowKeyStepper",
sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ArrowKeyStepper/ArrowKeyStepper.example.js",
docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ArrowKeyStepper.md"
}), React.createElement(_ContentBox.ContentBoxParagraph, null, "This high-order component decorates a ", React.createElement("code", null, "List"), ",", ' ', React.createElement("code", null, "Table"), ", or ", React.createElement("code", null, "Grid"), " and responds to arrow-key events by scrolling one row or column at a time. Focus in the `Grid` below and use the left, right, up, or down arrow keys to move around within the grid."), React.createElement(_ContentBox.ContentBoxParagraph, null, "Note that unlike the other HOCs in react-virtualized, the", ' ', React.createElement("code", null, "ArrowKeyStepper"), " adds a ", React.createElement("code", null, "<div>"), " element around its children in order to attach a key-down event handler."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("strong", null, "mode"), ":", React.createElement("label", null, React.createElement("input", {
"aria-label": "Set mode equal to \"cells\"",
checked: mode === 'cells',
className: _ArrowKeyStepperExample["default"].Radio,
type: "radio",
onChange: function onChange(event) {
return event.target.checked && _this2.setState({
mode: 'cells'
});
},
value: "cells"
}), "cells"), React.createElement("label", null, React.createElement("input", {
"aria-label": "Set mode equal to \"edges\"",
checked: mode === 'edges',
className: _ArrowKeyStepperExample["default"].Radio,
type: "radio",
onChange: function onChange(event) {
return event.target.checked && _this2.setState({
mode: 'edges'
});
},
value: "edges"
}), "edges (default)")), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
className: _ArrowKeyStepperExample["default"].checkboxLabel
}, React.createElement("input", {
"aria-label": "Enable click selection? (resets selection)",
className: _ArrowKeyStepperExample["default"].checkbox,
type: "checkbox",
checked: isClickable,
onChange: this._onClickableChange
}), "Enable click selection? (resets selection)")), React.createElement(_["default"], {
columnCount: 100,
isControlled: isClickable,
onScrollToChange: isClickable ? this._selectCell : undefined,
mode: mode,
rowCount: 100,
scrollToColumn: scrollToColumn,
scrollToRow: scrollToRow
}, function (_ref5) {
var onSectionRendered = _ref5.onSectionRendered,
scrollToColumn = _ref5.scrollToColumn,
scrollToRow = _ref5.scrollToRow;
return React.createElement("div", null, React.createElement(_ContentBox.ContentBoxParagraph, null, "Most-recently-stepped column: ".concat(scrollToColumn, ", row: ").concat(scrollToRow)), React.createElement(_AutoSizer["default"], {
disableHeight: true
}, function (_ref6) {
var width = _ref6.width;
return React.createElement(_Grid["default"], {
className: _ArrowKeyStepperExample["default"].Grid,
columnWidth: _this2._getColumnWidth,
columnCount: 100,
height: 200,
onSectionRendered: onSectionRendered,
cellRenderer: function cellRenderer(_ref7) {
var columnIndex = _ref7.columnIndex,
key = _ref7.key,
rowIndex = _ref7.rowIndex,
style = _ref7.style;
return _this2._cellRenderer({
columnIndex: columnIndex,
key: key,
rowIndex: rowIndex,
scrollToColumn: scrollToColumn,
scrollToRow: scrollToRow,
style: style
});
},
rowHeight: _this2._getRowHeight,
rowCount: 100,
scrollToColumn: scrollToColumn,
scrollToRow: scrollToRow,
width: width
});
}));
}));
}
}]);
return ArrowKeyStepperExample;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);
exports["default"] = ArrowKeyStepperExample;
Loading