@depup/react-virtualized 9.22.6-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +34 -0
- package/changes.json +22 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js +184 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js +338 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.js +204 -0
- package/dist/commonjs/ArrowKeyStepper/index.js +19 -0
- package/dist/commonjs/ArrowKeyStepper/types.js +5 -0
- package/dist/commonjs/AutoSizer/AutoSizer.example.js +104 -0
- package/dist/commonjs/AutoSizer/AutoSizer.jest.js +341 -0
- package/dist/commonjs/AutoSizer/AutoSizer.js +199 -0
- package/dist/commonjs/AutoSizer/AutoSizer.ssr.js +25 -0
- package/dist/commonjs/AutoSizer/index.js +19 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +100 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +99 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +107 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +102 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +107 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.example.js +129 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.jest.js +345 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.js +195 -0
- package/dist/commonjs/CellMeasurer/CellMeasurerCache.jest.js +298 -0
- package/dist/commonjs/CellMeasurer/CellMeasurerCache.js +202 -0
- package/dist/commonjs/CellMeasurer/index.js +22 -0
- package/dist/commonjs/CellMeasurer/types.js +14 -0
- package/dist/commonjs/Collection/Collection.example.js +231 -0
- package/dist/commonjs/Collection/Collection.jest.js +829 -0
- package/dist/commonjs/Collection/Collection.js +266 -0
- package/dist/commonjs/Collection/CollectionView.js +553 -0
- package/dist/commonjs/Collection/Section.jest.js +63 -0
- package/dist/commonjs/Collection/Section.js +57 -0
- package/dist/commonjs/Collection/SectionManager.jest.js +121 -0
- package/dist/commonjs/Collection/SectionManager.js +134 -0
- package/dist/commonjs/Collection/TestData.js +77 -0
- package/dist/commonjs/Collection/index.js +15 -0
- package/dist/commonjs/Collection/types.js +22 -0
- package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.jest.js +34 -0
- package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.js +38 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.example.js +159 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.jest.js +129 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.js +103 -0
- package/dist/commonjs/ColumnSizer/index.js +15 -0
- package/dist/commonjs/Grid/Grid.example.js +330 -0
- package/dist/commonjs/Grid/Grid.jest.js +2561 -0
- package/dist/commonjs/Grid/Grid.js +1432 -0
- package/dist/commonjs/Grid/Grid.ssr.js +62 -0
- package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js +92 -0
- package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js +40 -0
- package/dist/commonjs/Grid/defaultCellRangeRenderer.js +139 -0
- package/dist/commonjs/Grid/defaultOverscanIndicesGetter.jest.js +92 -0
- package/dist/commonjs/Grid/defaultOverscanIndicesGetter.js +36 -0
- package/dist/commonjs/Grid/index.js +40 -0
- package/dist/commonjs/Grid/types.js +8 -0
- package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.jest.js +375 -0
- package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js +296 -0
- package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +201 -0
- package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js +204 -0
- package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +84 -0
- package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +59 -0
- package/dist/commonjs/Grid/utils/maxElementSize.js +22 -0
- package/dist/commonjs/Grid/utils/updateScrollIndexHelper.jest.js +180 -0
- package/dist/commonjs/Grid/utils/updateScrollIndexHelper.js +85 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.example.js +179 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.jest.js +571 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.js +274 -0
- package/dist/commonjs/InfiniteLoader/index.js +15 -0
- package/dist/commonjs/List/List.example.js +236 -0
- package/dist/commonjs/List/List.jest.js +517 -0
- package/dist/commonjs/List/List.js +318 -0
- package/dist/commonjs/List/index.js +19 -0
- package/dist/commonjs/List/types.js +6 -0
- package/dist/commonjs/Masonry/Masonry.example.js +287 -0
- package/dist/commonjs/Masonry/Masonry.jest.js +450 -0
- package/dist/commonjs/Masonry/Masonry.js +431 -0
- package/dist/commonjs/Masonry/PositionCache.js +88 -0
- package/dist/commonjs/Masonry/createCellPositioner.js +59 -0
- package/dist/commonjs/Masonry/index.js +22 -0
- package/dist/commonjs/MultiGrid/CellMeasurerCacheDecorator.js +106 -0
- package/dist/commonjs/MultiGrid/MultiGrid.example.js +131 -0
- package/dist/commonjs/MultiGrid/MultiGrid.jest.js +584 -0
- package/dist/commonjs/MultiGrid/MultiGrid.js +743 -0
- package/dist/commonjs/MultiGrid/index.js +15 -0
- package/dist/commonjs/ScrollSync/ScrollSync.example.js +257 -0
- package/dist/commonjs/ScrollSync/ScrollSync.jest.js +66 -0
- package/dist/commonjs/ScrollSync/ScrollSync.js +88 -0
- package/dist/commonjs/ScrollSync/index.js +15 -0
- package/dist/commonjs/Table/Column.jest.js +90 -0
- package/dist/commonjs/Table/Column.js +93 -0
- package/dist/commonjs/Table/SortDirection.js +19 -0
- package/dist/commonjs/Table/SortIndicator.js +40 -0
- package/dist/commonjs/Table/Table.example.js +325 -0
- package/dist/commonjs/Table/Table.jest.js +1257 -0
- package/dist/commonjs/Table/Table.js +742 -0
- package/dist/commonjs/Table/createMultiSort.jest.js +165 -0
- package/dist/commonjs/Table/createMultiSort.js +99 -0
- package/dist/commonjs/Table/defaultCellDataGetter.js +21 -0
- package/dist/commonjs/Table/defaultCellRenderer.js +19 -0
- package/dist/commonjs/Table/defaultHeaderRenderer.js +35 -0
- package/dist/commonjs/Table/defaultHeaderRowRenderer.js +21 -0
- package/dist/commonjs/Table/defaultRowRenderer.js +87 -0
- package/dist/commonjs/Table/index.js +78 -0
- package/dist/commonjs/Table/types.js +39 -0
- package/dist/commonjs/WindowScroller/WindowScroller.e2e.js +298 -0
- package/dist/commonjs/WindowScroller/WindowScroller.example.js +167 -0
- package/dist/commonjs/WindowScroller/WindowScroller.header-resize.e2e.js +359 -0
- package/dist/commonjs/WindowScroller/WindowScroller.jest.js +536 -0
- package/dist/commonjs/WindowScroller/WindowScroller.js +268 -0
- package/dist/commonjs/WindowScroller/WindowScroller.ssr.js +25 -0
- package/dist/commonjs/WindowScroller/index.js +23 -0
- package/dist/commonjs/WindowScroller/utils/dimensions.js +89 -0
- package/dist/commonjs/WindowScroller/utils/onScroll.js +70 -0
- package/dist/commonjs/index.js +180 -0
- package/dist/commonjs/jest-setup.js +7 -0
- package/dist/commonjs/utils/TestHelper.js +36 -0
- package/dist/commonjs/utils/animationFrame.js +29 -0
- package/dist/commonjs/utils/createCallbackMemoizer.jest.js +219 -0
- package/dist/commonjs/utils/createCallbackMemoizer.js +31 -0
- package/dist/commonjs/utils/getUpdatedOffsetForIndex.jest.js +68 -0
- package/dist/commonjs/utils/getUpdatedOffsetForIndex.js +38 -0
- package/dist/commonjs/utils/initCellMetadata.js +37 -0
- package/dist/commonjs/utils/requestAnimationTimeout.js +38 -0
- package/dist/commonjs/vendor/binarySearchBounds.js +200 -0
- package/dist/commonjs/vendor/detectElementResize.js +192 -0
- package/dist/commonjs/vendor/intervalTree.js +361 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.example.js +176 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.jest.js +332 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.js +197 -0
- package/dist/es/ArrowKeyStepper/index.js +3 -0
- package/dist/es/ArrowKeyStepper/types.js +4 -0
- package/dist/es/AutoSizer/AutoSizer.example.js +96 -0
- package/dist/es/AutoSizer/AutoSizer.jest.js +335 -0
- package/dist/es/AutoSizer/AutoSizer.js +190 -0
- package/dist/es/AutoSizer/AutoSizer.js.flow +200 -0
- package/dist/es/AutoSizer/AutoSizer.ssr.js +19 -0
- package/dist/es/AutoSizer/index.js +2 -0
- package/dist/es/AutoSizer/index.js.flow +4 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +91 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +90 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +98 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +93 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +98 -0
- package/dist/es/CellMeasurer/CellMeasurer.example.js +120 -0
- package/dist/es/CellMeasurer/CellMeasurer.jest.js +340 -0
- package/dist/es/CellMeasurer/CellMeasurer.js +187 -0
- package/dist/es/CellMeasurer/CellMeasurerCache.jest.js +293 -0
- package/dist/es/CellMeasurer/CellMeasurerCache.js +196 -0
- package/dist/es/CellMeasurer/index.js +4 -0
- package/dist/es/CellMeasurer/types.js +13 -0
- package/dist/es/Collection/Collection.example.js +223 -0
- package/dist/es/Collection/Collection.jest.js +824 -0
- package/dist/es/Collection/Collection.js +257 -0
- package/dist/es/Collection/CollectionView.js +544 -0
- package/dist/es/Collection/Section.jest.js +60 -0
- package/dist/es/Collection/Section.js +51 -0
- package/dist/es/Collection/SectionManager.jest.js +118 -0
- package/dist/es/Collection/SectionManager.js +128 -0
- package/dist/es/Collection/TestData.js +71 -0
- package/dist/es/Collection/index.js +3 -0
- package/dist/es/Collection/types.js +21 -0
- package/dist/es/Collection/utils/calculateSizeAndPositionData.jest.js +31 -0
- package/dist/es/Collection/utils/calculateSizeAndPositionData.js +31 -0
- package/dist/es/ColumnSizer/ColumnSizer.example.js +150 -0
- package/dist/es/ColumnSizer/ColumnSizer.jest.js +123 -0
- package/dist/es/ColumnSizer/ColumnSizer.js +95 -0
- package/dist/es/ColumnSizer/index.js +3 -0
- package/dist/es/Grid/Grid.example.js +321 -0
- package/dist/es/Grid/Grid.jest.js +2555 -0
- package/dist/es/Grid/Grid.js +1425 -0
- package/dist/es/Grid/Grid.ssr.js +57 -0
- package/dist/es/Grid/accessibilityOverscanIndicesGetter.jest.js +87 -0
- package/dist/es/Grid/accessibilityOverscanIndicesGetter.js +33 -0
- package/dist/es/Grid/defaultCellRangeRenderer.js +134 -0
- package/dist/es/Grid/defaultOverscanIndicesGetter.jest.js +87 -0
- package/dist/es/Grid/defaultOverscanIndicesGetter.js +29 -0
- package/dist/es/Grid/index.js +15 -0
- package/dist/es/Grid/types.js +96 -0
- package/dist/es/Grid/utils/CellSizeAndPositionManager.jest.js +372 -0
- package/dist/es/Grid/utils/CellSizeAndPositionManager.js +290 -0
- package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +198 -0
- package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js +198 -0
- package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +81 -0
- package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +53 -0
- package/dist/es/Grid/utils/maxElementSize.js +16 -0
- package/dist/es/Grid/utils/updateScrollIndexHelper.jest.js +174 -0
- package/dist/es/Grid/utils/updateScrollIndexHelper.js +79 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.example.js +170 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.jest.js +565 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.js +263 -0
- package/dist/es/InfiniteLoader/index.js +3 -0
- package/dist/es/List/List.example.js +227 -0
- package/dist/es/List/List.jest.js +511 -0
- package/dist/es/List/List.js +312 -0
- package/dist/es/List/index.js +3 -0
- package/dist/es/List/types.js +21 -0
- package/dist/es/Masonry/Masonry.example.js +278 -0
- package/dist/es/Masonry/Masonry.jest.js +444 -0
- package/dist/es/Masonry/Masonry.js +421 -0
- package/dist/es/Masonry/PositionCache.js +82 -0
- package/dist/es/Masonry/createCellPositioner.js +53 -0
- package/dist/es/Masonry/index.js +4 -0
- package/dist/es/MultiGrid/CellMeasurerCacheDecorator.js +100 -0
- package/dist/es/MultiGrid/MultiGrid.example.js +122 -0
- package/dist/es/MultiGrid/MultiGrid.jest.js +579 -0
- package/dist/es/MultiGrid/MultiGrid.js +733 -0
- package/dist/es/MultiGrid/index.js +3 -0
- package/dist/es/ScrollSync/ScrollSync.example.js +248 -0
- package/dist/es/ScrollSync/ScrollSync.jest.js +60 -0
- package/dist/es/ScrollSync/ScrollSync.js +80 -0
- package/dist/es/ScrollSync/index.js +3 -0
- package/dist/es/Table/Column.jest.js +84 -0
- package/dist/es/Table/Column.js +85 -0
- package/dist/es/Table/SortDirection.js +13 -0
- package/dist/es/Table/SortIndicator.js +31 -0
- package/dist/es/Table/Table.example.js +316 -0
- package/dist/es/Table/Table.jest.js +1251 -0
- package/dist/es/Table/Table.js +735 -0
- package/dist/es/Table/createMultiSort.jest.js +162 -0
- package/dist/es/Table/createMultiSort.js +93 -0
- package/dist/es/Table/defaultCellDataGetter.js +15 -0
- package/dist/es/Table/defaultCellRenderer.js +13 -0
- package/dist/es/Table/defaultHeaderRenderer.js +25 -0
- package/dist/es/Table/defaultHeaderRowRenderer.js +12 -0
- package/dist/es/Table/defaultRowRenderer.js +77 -0
- package/dist/es/Table/index.js +12 -0
- package/dist/es/Table/types.js +38 -0
- package/dist/es/WindowScroller/WindowScroller.e2e.js +295 -0
- package/dist/es/WindowScroller/WindowScroller.example.js +158 -0
- package/dist/es/WindowScroller/WindowScroller.header-resize.e2e.js +356 -0
- package/dist/es/WindowScroller/WindowScroller.jest.js +530 -0
- package/dist/es/WindowScroller/WindowScroller.js +259 -0
- package/dist/es/WindowScroller/WindowScroller.js.flow +277 -0
- package/dist/es/WindowScroller/WindowScroller.ssr.js +19 -0
- package/dist/es/WindowScroller/index.js +3 -0
- package/dist/es/WindowScroller/index.js.flow +6 -0
- package/dist/es/WindowScroller/utils/dimensions.js +81 -0
- package/dist/es/WindowScroller/utils/dimensions.js.flow +91 -0
- package/dist/es/WindowScroller/utils/onScroll.js +64 -0
- package/dist/es/WindowScroller/utils/onScroll.js.flow +94 -0
- package/dist/es/index.js +13 -0
- package/dist/es/jest-setup.js +5 -0
- package/dist/es/utils/TestHelper.js +30 -0
- package/dist/es/utils/animationFrame.js +23 -0
- package/dist/es/utils/createCallbackMemoizer.jest.js +216 -0
- package/dist/es/utils/createCallbackMemoizer.js +25 -0
- package/dist/es/utils/getUpdatedOffsetForIndex.jest.js +65 -0
- package/dist/es/utils/getUpdatedOffsetForIndex.js +32 -0
- package/dist/es/utils/initCellMetadata.js +31 -0
- package/dist/es/utils/requestAnimationTimeout.js +32 -0
- package/dist/es/vendor/binarySearchBounds.js +194 -0
- package/dist/es/vendor/detectElementResize.js +186 -0
- package/dist/es/vendor/intervalTree.js +354 -0
- package/dist/umd/react-virtualized.js +4638 -0
- package/package.json +188 -0
- package/styles.css +80 -0
|
@@ -0,0 +1,735 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
11
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
|
+
/*:: import type {CellPosition} from '../Grid';*/
|
|
13
|
+
import clsx from 'clsx';
|
|
14
|
+
import Column from './Column';
|
|
15
|
+
import PropTypes from 'prop-types';
|
|
16
|
+
import * as React from 'react';
|
|
17
|
+
import Grid, { accessibilityOverscanIndicesGetter } from '../Grid';
|
|
18
|
+
import defaultRowRenderer from './defaultRowRenderer';
|
|
19
|
+
import defaultHeaderRowRenderer from './defaultHeaderRowRenderer';
|
|
20
|
+
import SortDirection from './SortDirection';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Table component with fixed headers and virtualized rows for improved performance with large data sets.
|
|
24
|
+
* This component expects explicit width, height, and padding parameters.
|
|
25
|
+
*/
|
|
26
|
+
var Table = /*#__PURE__*/function (_React$PureComponent) {
|
|
27
|
+
function Table(props) {
|
|
28
|
+
var _this;
|
|
29
|
+
_classCallCheck(this, Table);
|
|
30
|
+
_this = _callSuper(this, Table, [props]);
|
|
31
|
+
_this.state = {
|
|
32
|
+
scrollbarWidth: 0
|
|
33
|
+
};
|
|
34
|
+
_this._createColumn = _this._createColumn.bind(_this);
|
|
35
|
+
_this._createRow = _this._createRow.bind(_this);
|
|
36
|
+
_this._onScroll = _this._onScroll.bind(_this);
|
|
37
|
+
_this._onSectionRendered = _this._onSectionRendered.bind(_this);
|
|
38
|
+
_this._setRef = _this._setRef.bind(_this);
|
|
39
|
+
_this._setGridElementRef = _this._setGridElementRef.bind(_this);
|
|
40
|
+
return _this;
|
|
41
|
+
}
|
|
42
|
+
_inherits(Table, _React$PureComponent);
|
|
43
|
+
return _createClass(Table, [{
|
|
44
|
+
key: "forceUpdateGrid",
|
|
45
|
+
value: function forceUpdateGrid() {
|
|
46
|
+
if (this.Grid) {
|
|
47
|
+
this.Grid.forceUpdate();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** See Grid#getOffsetForCell */
|
|
52
|
+
}, {
|
|
53
|
+
key: "getOffsetForRow",
|
|
54
|
+
value: function getOffsetForRow(_ref) {
|
|
55
|
+
var alignment = _ref.alignment,
|
|
56
|
+
index = _ref.index;
|
|
57
|
+
if (this.Grid) {
|
|
58
|
+
var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
|
|
59
|
+
alignment: alignment,
|
|
60
|
+
rowIndex: index
|
|
61
|
+
}),
|
|
62
|
+
scrollTop = _this$Grid$getOffsetF.scrollTop;
|
|
63
|
+
return scrollTop;
|
|
64
|
+
}
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** CellMeasurer compatibility */
|
|
69
|
+
}, {
|
|
70
|
+
key: "invalidateCellSizeAfterRender",
|
|
71
|
+
value: function invalidateCellSizeAfterRender(_ref2 /*:: */) {
|
|
72
|
+
var columnIndex = _ref2 /*:: */.columnIndex,
|
|
73
|
+
rowIndex = _ref2 /*:: */.rowIndex;
|
|
74
|
+
if (this.Grid) {
|
|
75
|
+
this.Grid.invalidateCellSizeAfterRender({
|
|
76
|
+
rowIndex: rowIndex,
|
|
77
|
+
columnIndex: columnIndex
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** See Grid#measureAllCells */
|
|
83
|
+
}, {
|
|
84
|
+
key: "measureAllRows",
|
|
85
|
+
value: function measureAllRows() {
|
|
86
|
+
if (this.Grid) {
|
|
87
|
+
this.Grid.measureAllCells();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** CellMeasurer compatibility */
|
|
92
|
+
}, {
|
|
93
|
+
key: "recomputeGridSize",
|
|
94
|
+
value: function recomputeGridSize() {
|
|
95
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
96
|
+
_ref3$columnIndex = _ref3.columnIndex,
|
|
97
|
+
columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,
|
|
98
|
+
_ref3$rowIndex = _ref3.rowIndex,
|
|
99
|
+
rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;
|
|
100
|
+
if (this.Grid) {
|
|
101
|
+
this.Grid.recomputeGridSize({
|
|
102
|
+
rowIndex: rowIndex,
|
|
103
|
+
columnIndex: columnIndex
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** See Grid#recomputeGridSize */
|
|
109
|
+
}, {
|
|
110
|
+
key: "recomputeRowHeights",
|
|
111
|
+
value: function recomputeRowHeights() {
|
|
112
|
+
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
113
|
+
if (this.Grid) {
|
|
114
|
+
this.Grid.recomputeGridSize({
|
|
115
|
+
rowIndex: index
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** See Grid#scrollToPosition */
|
|
121
|
+
}, {
|
|
122
|
+
key: "scrollToPosition",
|
|
123
|
+
value: function scrollToPosition() {
|
|
124
|
+
var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
125
|
+
if (this.Grid) {
|
|
126
|
+
this.Grid.scrollToPosition({
|
|
127
|
+
scrollTop: scrollTop
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** See Grid#scrollToCell */
|
|
133
|
+
}, {
|
|
134
|
+
key: "scrollToRow",
|
|
135
|
+
value: function scrollToRow() {
|
|
136
|
+
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
137
|
+
if (this.Grid) {
|
|
138
|
+
this.Grid.scrollToCell({
|
|
139
|
+
columnIndex: 0,
|
|
140
|
+
rowIndex: index
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}, {
|
|
145
|
+
key: "getScrollbarWidth",
|
|
146
|
+
value: function getScrollbarWidth() {
|
|
147
|
+
if (this.GridElement) {
|
|
148
|
+
var _Grid = this.GridElement;
|
|
149
|
+
var clientWidth = _Grid.clientWidth || 0;
|
|
150
|
+
var offsetWidth = _Grid.offsetWidth || 0;
|
|
151
|
+
return offsetWidth - clientWidth;
|
|
152
|
+
}
|
|
153
|
+
return 0;
|
|
154
|
+
}
|
|
155
|
+
}, {
|
|
156
|
+
key: "componentDidMount",
|
|
157
|
+
value: function componentDidMount() {
|
|
158
|
+
this._setScrollbarWidth();
|
|
159
|
+
}
|
|
160
|
+
}, {
|
|
161
|
+
key: "componentDidUpdate",
|
|
162
|
+
value: function componentDidUpdate() {
|
|
163
|
+
this._setScrollbarWidth();
|
|
164
|
+
}
|
|
165
|
+
}, {
|
|
166
|
+
key: "render",
|
|
167
|
+
value: function render() {
|
|
168
|
+
var _this2 = this;
|
|
169
|
+
var _this$props = this.props,
|
|
170
|
+
children = _this$props.children,
|
|
171
|
+
className = _this$props.className,
|
|
172
|
+
disableHeader = _this$props.disableHeader,
|
|
173
|
+
gridClassName = _this$props.gridClassName,
|
|
174
|
+
gridStyle = _this$props.gridStyle,
|
|
175
|
+
headerHeight = _this$props.headerHeight,
|
|
176
|
+
headerRowRenderer = _this$props.headerRowRenderer,
|
|
177
|
+
height = _this$props.height,
|
|
178
|
+
id = _this$props.id,
|
|
179
|
+
noRowsRenderer = _this$props.noRowsRenderer,
|
|
180
|
+
rowClassName = _this$props.rowClassName,
|
|
181
|
+
rowStyle = _this$props.rowStyle,
|
|
182
|
+
scrollToIndex = _this$props.scrollToIndex,
|
|
183
|
+
style = _this$props.style,
|
|
184
|
+
width = _this$props.width;
|
|
185
|
+
var scrollbarWidth = this.state.scrollbarWidth;
|
|
186
|
+
var availableRowsHeight = disableHeader ? height : height - headerHeight;
|
|
187
|
+
var rowClass = typeof rowClassName === 'function' ? rowClassName({
|
|
188
|
+
index: -1
|
|
189
|
+
}) : rowClassName;
|
|
190
|
+
var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
|
|
191
|
+
index: -1
|
|
192
|
+
}) : rowStyle;
|
|
193
|
+
|
|
194
|
+
// Precompute and cache column styles before rendering rows and columns to speed things up
|
|
195
|
+
this._cachedColumnStyles = [];
|
|
196
|
+
React.Children.toArray(children).forEach(function (column, index) {
|
|
197
|
+
var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style || Column.defaultProps.style);
|
|
198
|
+
_this2._cachedColumnStyles[index] = _objectSpread({
|
|
199
|
+
overflow: 'hidden'
|
|
200
|
+
}, flexStyles);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
// Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
|
|
204
|
+
// This is done because Grid is a pure component and won't update unless its properties or state has changed.
|
|
205
|
+
// Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.
|
|
206
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
207
|
+
"aria-label": this.props['aria-label'],
|
|
208
|
+
"aria-labelledby": this.props['aria-labelledby'],
|
|
209
|
+
"aria-colcount": React.Children.toArray(children).length,
|
|
210
|
+
"aria-rowcount": this.props.rowCount,
|
|
211
|
+
className: clsx('ReactVirtualized__Table', className),
|
|
212
|
+
id: id,
|
|
213
|
+
role: "grid",
|
|
214
|
+
style: style
|
|
215
|
+
}, !disableHeader && headerRowRenderer({
|
|
216
|
+
className: clsx('ReactVirtualized__Table__headerRow', rowClass),
|
|
217
|
+
columns: this._getHeaderColumns(),
|
|
218
|
+
style: _objectSpread({
|
|
219
|
+
height: headerHeight,
|
|
220
|
+
overflow: 'hidden',
|
|
221
|
+
paddingRight: scrollbarWidth,
|
|
222
|
+
width: width
|
|
223
|
+
}, rowStyleObject)
|
|
224
|
+
}), /*#__PURE__*/React.createElement(Grid, _extends({}, this.props, {
|
|
225
|
+
elementRef: this._setGridElementRef,
|
|
226
|
+
"aria-readonly": null,
|
|
227
|
+
autoContainerWidth: true,
|
|
228
|
+
className: clsx('ReactVirtualized__Table__Grid', gridClassName),
|
|
229
|
+
cellRenderer: this._createRow,
|
|
230
|
+
columnWidth: width,
|
|
231
|
+
columnCount: 1,
|
|
232
|
+
height: availableRowsHeight,
|
|
233
|
+
id: undefined,
|
|
234
|
+
noContentRenderer: noRowsRenderer,
|
|
235
|
+
onScroll: this._onScroll,
|
|
236
|
+
onSectionRendered: this._onSectionRendered,
|
|
237
|
+
ref: this._setRef,
|
|
238
|
+
role: "rowgroup",
|
|
239
|
+
scrollbarWidth: scrollbarWidth,
|
|
240
|
+
scrollToRow: scrollToIndex,
|
|
241
|
+
style: _objectSpread(_objectSpread({}, gridStyle), {}, {
|
|
242
|
+
overflowX: 'hidden'
|
|
243
|
+
})
|
|
244
|
+
})));
|
|
245
|
+
}
|
|
246
|
+
}, {
|
|
247
|
+
key: "_createColumn",
|
|
248
|
+
value: function _createColumn(_ref4) {
|
|
249
|
+
var column = _ref4.column,
|
|
250
|
+
columnIndex = _ref4.columnIndex,
|
|
251
|
+
isScrolling = _ref4.isScrolling,
|
|
252
|
+
parent = _ref4.parent,
|
|
253
|
+
rowData = _ref4.rowData,
|
|
254
|
+
rowIndex = _ref4.rowIndex;
|
|
255
|
+
var onColumnClick = this.props.onColumnClick;
|
|
256
|
+
var _column$props = column.props,
|
|
257
|
+
cellDataGetter = _column$props.cellDataGetter,
|
|
258
|
+
cellRenderer = _column$props.cellRenderer,
|
|
259
|
+
className = _column$props.className,
|
|
260
|
+
columnData = _column$props.columnData,
|
|
261
|
+
dataKey = _column$props.dataKey,
|
|
262
|
+
id = _column$props.id;
|
|
263
|
+
var cellData = cellDataGetter({
|
|
264
|
+
columnData: columnData,
|
|
265
|
+
dataKey: dataKey,
|
|
266
|
+
rowData: rowData
|
|
267
|
+
});
|
|
268
|
+
var renderedCell = cellRenderer({
|
|
269
|
+
cellData: cellData,
|
|
270
|
+
columnData: columnData,
|
|
271
|
+
columnIndex: columnIndex,
|
|
272
|
+
dataKey: dataKey,
|
|
273
|
+
isScrolling: isScrolling,
|
|
274
|
+
parent: parent,
|
|
275
|
+
rowData: rowData,
|
|
276
|
+
rowIndex: rowIndex
|
|
277
|
+
});
|
|
278
|
+
var onClick = function onClick(event) {
|
|
279
|
+
onColumnClick && onColumnClick({
|
|
280
|
+
columnData: columnData,
|
|
281
|
+
dataKey: dataKey,
|
|
282
|
+
event: event
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
var style = this._cachedColumnStyles[columnIndex];
|
|
286
|
+
var title = typeof renderedCell === 'string' ? renderedCell : null;
|
|
287
|
+
|
|
288
|
+
// Avoid using object-spread syntax with multiple objects here,
|
|
289
|
+
// Since it results in an extra method call to 'babel-runtime/helpers/extends'
|
|
290
|
+
// See PR https://github.com/bvaughn/react-virtualized/pull/942
|
|
291
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
292
|
+
"aria-colindex": columnIndex + 1,
|
|
293
|
+
"aria-describedby": id,
|
|
294
|
+
className: clsx('ReactVirtualized__Table__rowColumn', className),
|
|
295
|
+
key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
|
|
296
|
+
onClick: onClick,
|
|
297
|
+
role: "gridcell",
|
|
298
|
+
style: style,
|
|
299
|
+
title: title
|
|
300
|
+
}, renderedCell);
|
|
301
|
+
}
|
|
302
|
+
}, {
|
|
303
|
+
key: "_createHeader",
|
|
304
|
+
value: function _createHeader(_ref5) {
|
|
305
|
+
var column = _ref5.column,
|
|
306
|
+
index = _ref5.index;
|
|
307
|
+
var _this$props2 = this.props,
|
|
308
|
+
headerClassName = _this$props2.headerClassName,
|
|
309
|
+
headerStyle = _this$props2.headerStyle,
|
|
310
|
+
onHeaderClick = _this$props2.onHeaderClick,
|
|
311
|
+
sort = _this$props2.sort,
|
|
312
|
+
sortBy = _this$props2.sortBy,
|
|
313
|
+
sortDirection = _this$props2.sortDirection;
|
|
314
|
+
var _column$props2 = column.props,
|
|
315
|
+
columnData = _column$props2.columnData,
|
|
316
|
+
dataKey = _column$props2.dataKey,
|
|
317
|
+
defaultSortDirection = _column$props2.defaultSortDirection,
|
|
318
|
+
disableSort = _column$props2.disableSort,
|
|
319
|
+
headerRenderer = _column$props2.headerRenderer,
|
|
320
|
+
id = _column$props2.id,
|
|
321
|
+
label = _column$props2.label;
|
|
322
|
+
var sortEnabled = !disableSort && sort;
|
|
323
|
+
var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
|
|
324
|
+
ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
|
|
325
|
+
});
|
|
326
|
+
var style = this._getFlexStyleForColumn(column, _objectSpread(_objectSpread({}, headerStyle), column.props.headerStyle));
|
|
327
|
+
var renderedHeader = headerRenderer({
|
|
328
|
+
columnData: columnData,
|
|
329
|
+
dataKey: dataKey,
|
|
330
|
+
disableSort: disableSort,
|
|
331
|
+
label: label,
|
|
332
|
+
sortBy: sortBy,
|
|
333
|
+
sortDirection: sortDirection
|
|
334
|
+
});
|
|
335
|
+
var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;
|
|
336
|
+
if (sortEnabled || onHeaderClick) {
|
|
337
|
+
// If this is a sortable header, clicking it should update the table data's sorting.
|
|
338
|
+
var isFirstTimeSort = sortBy !== dataKey;
|
|
339
|
+
|
|
340
|
+
// If this is the firstTime sort of this column, use the column default sort order.
|
|
341
|
+
// Otherwise, invert the direction of the sort.
|
|
342
|
+
var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;
|
|
343
|
+
var onClick = function onClick(event) {
|
|
344
|
+
sortEnabled && sort({
|
|
345
|
+
defaultSortDirection: defaultSortDirection,
|
|
346
|
+
event: event,
|
|
347
|
+
sortBy: dataKey,
|
|
348
|
+
sortDirection: newSortDirection
|
|
349
|
+
});
|
|
350
|
+
onHeaderClick && onHeaderClick({
|
|
351
|
+
columnData: columnData,
|
|
352
|
+
dataKey: dataKey,
|
|
353
|
+
event: event
|
|
354
|
+
});
|
|
355
|
+
};
|
|
356
|
+
var onKeyDown = function onKeyDown(event) {
|
|
357
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
358
|
+
onClick(event);
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
headerAriaLabel = column.props['aria-label'] || label || dataKey;
|
|
362
|
+
headerAriaSort = 'none';
|
|
363
|
+
headerTabIndex = 0;
|
|
364
|
+
headerOnClick = onClick;
|
|
365
|
+
headerOnKeyDown = onKeyDown;
|
|
366
|
+
}
|
|
367
|
+
if (sortBy === dataKey) {
|
|
368
|
+
headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Avoid using object-spread syntax with multiple objects here,
|
|
372
|
+
// Since it results in an extra method call to 'babel-runtime/helpers/extends'
|
|
373
|
+
// See PR https://github.com/bvaughn/react-virtualized/pull/942
|
|
374
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
375
|
+
"aria-label": headerAriaLabel,
|
|
376
|
+
"aria-sort": headerAriaSort,
|
|
377
|
+
className: classNames,
|
|
378
|
+
id: id,
|
|
379
|
+
key: 'Header-Col' + index,
|
|
380
|
+
onClick: headerOnClick,
|
|
381
|
+
onKeyDown: headerOnKeyDown,
|
|
382
|
+
role: "columnheader",
|
|
383
|
+
style: style,
|
|
384
|
+
tabIndex: headerTabIndex
|
|
385
|
+
}, renderedHeader);
|
|
386
|
+
}
|
|
387
|
+
}, {
|
|
388
|
+
key: "_createRow",
|
|
389
|
+
value: function _createRow(_ref6) {
|
|
390
|
+
var _this3 = this;
|
|
391
|
+
var index = _ref6.rowIndex,
|
|
392
|
+
isScrolling = _ref6.isScrolling,
|
|
393
|
+
key = _ref6.key,
|
|
394
|
+
parent = _ref6.parent,
|
|
395
|
+
style = _ref6.style;
|
|
396
|
+
var _this$props3 = this.props,
|
|
397
|
+
children = _this$props3.children,
|
|
398
|
+
onRowClick = _this$props3.onRowClick,
|
|
399
|
+
onRowDoubleClick = _this$props3.onRowDoubleClick,
|
|
400
|
+
onRowRightClick = _this$props3.onRowRightClick,
|
|
401
|
+
onRowMouseOver = _this$props3.onRowMouseOver,
|
|
402
|
+
onRowMouseOut = _this$props3.onRowMouseOut,
|
|
403
|
+
rowClassName = _this$props3.rowClassName,
|
|
404
|
+
rowGetter = _this$props3.rowGetter,
|
|
405
|
+
rowRenderer = _this$props3.rowRenderer,
|
|
406
|
+
rowStyle = _this$props3.rowStyle;
|
|
407
|
+
var scrollbarWidth = this.state.scrollbarWidth;
|
|
408
|
+
var rowClass = typeof rowClassName === 'function' ? rowClassName({
|
|
409
|
+
index: index
|
|
410
|
+
}) : rowClassName;
|
|
411
|
+
var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
|
|
412
|
+
index: index
|
|
413
|
+
}) : rowStyle;
|
|
414
|
+
var rowData = rowGetter({
|
|
415
|
+
index: index
|
|
416
|
+
});
|
|
417
|
+
var columns = React.Children.toArray(children).map(function (column, columnIndex) {
|
|
418
|
+
return _this3._createColumn({
|
|
419
|
+
column: column,
|
|
420
|
+
columnIndex: columnIndex,
|
|
421
|
+
isScrolling: isScrolling,
|
|
422
|
+
parent: parent,
|
|
423
|
+
rowData: rowData,
|
|
424
|
+
rowIndex: index,
|
|
425
|
+
scrollbarWidth: scrollbarWidth
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
var className = clsx('ReactVirtualized__Table__row', rowClass);
|
|
429
|
+
var flattenedStyle = _objectSpread(_objectSpread({}, style), {}, {
|
|
430
|
+
height: this._getRowHeight(index),
|
|
431
|
+
overflow: 'hidden',
|
|
432
|
+
paddingRight: scrollbarWidth
|
|
433
|
+
}, rowStyleObject);
|
|
434
|
+
return rowRenderer({
|
|
435
|
+
className: className,
|
|
436
|
+
columns: columns,
|
|
437
|
+
index: index,
|
|
438
|
+
isScrolling: isScrolling,
|
|
439
|
+
key: key,
|
|
440
|
+
onRowClick: onRowClick,
|
|
441
|
+
onRowDoubleClick: onRowDoubleClick,
|
|
442
|
+
onRowRightClick: onRowRightClick,
|
|
443
|
+
onRowMouseOver: onRowMouseOver,
|
|
444
|
+
onRowMouseOut: onRowMouseOut,
|
|
445
|
+
rowData: rowData,
|
|
446
|
+
style: flattenedStyle
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
|
|
452
|
+
*/
|
|
453
|
+
}, {
|
|
454
|
+
key: "_getFlexStyleForColumn",
|
|
455
|
+
value: function _getFlexStyleForColumn(column) {
|
|
456
|
+
var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
457
|
+
var flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px");
|
|
458
|
+
var style = _objectSpread(_objectSpread({}, customStyle), {}, {
|
|
459
|
+
flex: flexValue,
|
|
460
|
+
msFlex: flexValue,
|
|
461
|
+
WebkitFlex: flexValue
|
|
462
|
+
});
|
|
463
|
+
if (column.props.maxWidth) {
|
|
464
|
+
style.maxWidth = column.props.maxWidth;
|
|
465
|
+
}
|
|
466
|
+
if (column.props.minWidth) {
|
|
467
|
+
style.minWidth = column.props.minWidth;
|
|
468
|
+
}
|
|
469
|
+
return style;
|
|
470
|
+
}
|
|
471
|
+
}, {
|
|
472
|
+
key: "_getHeaderColumns",
|
|
473
|
+
value: function _getHeaderColumns() {
|
|
474
|
+
var _this4 = this;
|
|
475
|
+
var _this$props4 = this.props,
|
|
476
|
+
children = _this$props4.children,
|
|
477
|
+
disableHeader = _this$props4.disableHeader;
|
|
478
|
+
var items = disableHeader ? [] : React.Children.toArray(children);
|
|
479
|
+
return items.map(function (column, index) {
|
|
480
|
+
return _this4._createHeader({
|
|
481
|
+
column: column,
|
|
482
|
+
index: index
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
}, {
|
|
487
|
+
key: "_getRowHeight",
|
|
488
|
+
value: function _getRowHeight(rowIndex) {
|
|
489
|
+
var rowHeight = this.props.rowHeight;
|
|
490
|
+
return typeof rowHeight === 'function' ? rowHeight({
|
|
491
|
+
index: rowIndex
|
|
492
|
+
}) : rowHeight;
|
|
493
|
+
}
|
|
494
|
+
}, {
|
|
495
|
+
key: "_onScroll",
|
|
496
|
+
value: function _onScroll(_ref7) {
|
|
497
|
+
var clientHeight = _ref7.clientHeight,
|
|
498
|
+
scrollHeight = _ref7.scrollHeight,
|
|
499
|
+
scrollTop = _ref7.scrollTop;
|
|
500
|
+
var onScroll = this.props.onScroll;
|
|
501
|
+
onScroll({
|
|
502
|
+
clientHeight: clientHeight,
|
|
503
|
+
scrollHeight: scrollHeight,
|
|
504
|
+
scrollTop: scrollTop
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
}, {
|
|
508
|
+
key: "_onSectionRendered",
|
|
509
|
+
value: function _onSectionRendered(_ref8) {
|
|
510
|
+
var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
|
|
511
|
+
rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
|
|
512
|
+
rowStartIndex = _ref8.rowStartIndex,
|
|
513
|
+
rowStopIndex = _ref8.rowStopIndex;
|
|
514
|
+
var onRowsRendered = this.props.onRowsRendered;
|
|
515
|
+
onRowsRendered({
|
|
516
|
+
overscanStartIndex: rowOverscanStartIndex,
|
|
517
|
+
overscanStopIndex: rowOverscanStopIndex,
|
|
518
|
+
startIndex: rowStartIndex,
|
|
519
|
+
stopIndex: rowStopIndex
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
}, {
|
|
523
|
+
key: "_setRef",
|
|
524
|
+
value: function _setRef(ref) {
|
|
525
|
+
this.Grid = ref;
|
|
526
|
+
}
|
|
527
|
+
}, {
|
|
528
|
+
key: "_setGridElementRef",
|
|
529
|
+
value: function _setGridElementRef(ref) {
|
|
530
|
+
this.GridElement = ref;
|
|
531
|
+
}
|
|
532
|
+
}, {
|
|
533
|
+
key: "_setScrollbarWidth",
|
|
534
|
+
value: function _setScrollbarWidth() {
|
|
535
|
+
var scrollbarWidth = this.getScrollbarWidth();
|
|
536
|
+
this.setState({
|
|
537
|
+
scrollbarWidth: scrollbarWidth
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
}]);
|
|
541
|
+
}(React.PureComponent);
|
|
542
|
+
_defineProperty(Table, "defaultProps", {
|
|
543
|
+
disableHeader: false,
|
|
544
|
+
estimatedRowSize: 30,
|
|
545
|
+
headerHeight: 0,
|
|
546
|
+
headerStyle: {},
|
|
547
|
+
noRowsRenderer: function noRowsRenderer() {
|
|
548
|
+
return null;
|
|
549
|
+
},
|
|
550
|
+
onRowsRendered: function onRowsRendered() {
|
|
551
|
+
return null;
|
|
552
|
+
},
|
|
553
|
+
onScroll: function onScroll() {
|
|
554
|
+
return null;
|
|
555
|
+
},
|
|
556
|
+
overscanIndicesGetter: accessibilityOverscanIndicesGetter,
|
|
557
|
+
overscanRowCount: 10,
|
|
558
|
+
rowRenderer: defaultRowRenderer,
|
|
559
|
+
headerRowRenderer: defaultHeaderRowRenderer,
|
|
560
|
+
rowStyle: {},
|
|
561
|
+
scrollToAlignment: 'auto',
|
|
562
|
+
scrollToIndex: -1,
|
|
563
|
+
style: {}
|
|
564
|
+
});
|
|
565
|
+
export { Table as default };
|
|
566
|
+
Table.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
567
|
+
/** This is just set on the grid top element. */
|
|
568
|
+
'aria-label': PropTypes.string,
|
|
569
|
+
/** This is just set on the grid top element. */
|
|
570
|
+
'aria-labelledby': PropTypes.string,
|
|
571
|
+
/**
|
|
572
|
+
* Removes fixed height from the scrollingContainer so that the total height
|
|
573
|
+
* of rows can stretch the window. Intended for use with WindowScroller
|
|
574
|
+
*/
|
|
575
|
+
autoHeight: PropTypes.bool,
|
|
576
|
+
/** One or more Columns describing the data displayed in this row */
|
|
577
|
+
children: function children(props) {
|
|
578
|
+
var children = React.Children.toArray(props.children);
|
|
579
|
+
for (var i = 0; i < children.length; i++) {
|
|
580
|
+
var childType = children[i].type;
|
|
581
|
+
if (childType !== Column && !(childType.prototype instanceof Column)) {
|
|
582
|
+
return new Error('Table only accepts children of type Column');
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
/** Optional CSS class name */
|
|
587
|
+
className: PropTypes.string,
|
|
588
|
+
/** Disable rendering the header at all */
|
|
589
|
+
disableHeader: PropTypes.bool,
|
|
590
|
+
/**
|
|
591
|
+
* Used to estimate the total height of a Table before all of its rows have actually been measured.
|
|
592
|
+
* The estimated total height is adjusted as rows are rendered.
|
|
593
|
+
*/
|
|
594
|
+
estimatedRowSize: PropTypes.number.isRequired,
|
|
595
|
+
/** Optional custom CSS class name to attach to inner Grid element. */
|
|
596
|
+
gridClassName: PropTypes.string,
|
|
597
|
+
/** Optional inline style to attach to inner Grid element. */
|
|
598
|
+
gridStyle: PropTypes.object,
|
|
599
|
+
/** Optional CSS class to apply to all column headers */
|
|
600
|
+
headerClassName: PropTypes.string,
|
|
601
|
+
/** Fixed height of header row */
|
|
602
|
+
headerHeight: PropTypes.number.isRequired,
|
|
603
|
+
/**
|
|
604
|
+
* Responsible for rendering a table row given an array of columns:
|
|
605
|
+
* Should implement the following interface: ({
|
|
606
|
+
* className: string,
|
|
607
|
+
* columns: any[],
|
|
608
|
+
* style: any
|
|
609
|
+
* }): PropTypes.node
|
|
610
|
+
*/
|
|
611
|
+
headerRowRenderer: PropTypes.func,
|
|
612
|
+
/** Optional custom inline style to attach to table header columns. */
|
|
613
|
+
headerStyle: PropTypes.object,
|
|
614
|
+
/** Fixed/available height for out DOM element */
|
|
615
|
+
height: PropTypes.number.isRequired,
|
|
616
|
+
/** Optional id */
|
|
617
|
+
id: PropTypes.string,
|
|
618
|
+
/** Optional renderer to be used in place of table body rows when rowCount is 0 */
|
|
619
|
+
noRowsRenderer: PropTypes.func,
|
|
620
|
+
/**
|
|
621
|
+
* Optional callback when a column is clicked.
|
|
622
|
+
* ({ columnData: any, dataKey: string }): void
|
|
623
|
+
*/
|
|
624
|
+
onColumnClick: PropTypes.func,
|
|
625
|
+
/**
|
|
626
|
+
* Optional callback when a column's header is clicked.
|
|
627
|
+
* ({ columnData: any, dataKey: string }): void
|
|
628
|
+
*/
|
|
629
|
+
onHeaderClick: PropTypes.func,
|
|
630
|
+
/**
|
|
631
|
+
* Callback invoked when a user clicks on a table row.
|
|
632
|
+
* ({ index: number }): void
|
|
633
|
+
*/
|
|
634
|
+
onRowClick: PropTypes.func,
|
|
635
|
+
/**
|
|
636
|
+
* Callback invoked when a user double-clicks on a table row.
|
|
637
|
+
* ({ index: number }): void
|
|
638
|
+
*/
|
|
639
|
+
onRowDoubleClick: PropTypes.func,
|
|
640
|
+
/**
|
|
641
|
+
* Callback invoked when the mouse leaves a table row.
|
|
642
|
+
* ({ index: number }): void
|
|
643
|
+
*/
|
|
644
|
+
onRowMouseOut: PropTypes.func,
|
|
645
|
+
/**
|
|
646
|
+
* Callback invoked when a user moves the mouse over a table row.
|
|
647
|
+
* ({ index: number }): void
|
|
648
|
+
*/
|
|
649
|
+
onRowMouseOver: PropTypes.func,
|
|
650
|
+
/**
|
|
651
|
+
* Callback invoked when a user right-clicks on a table row.
|
|
652
|
+
* ({ index: number }): void
|
|
653
|
+
*/
|
|
654
|
+
onRowRightClick: PropTypes.func,
|
|
655
|
+
/**
|
|
656
|
+
* Callback invoked with information about the slice of rows that were just rendered.
|
|
657
|
+
* ({ startIndex, stopIndex }): void
|
|
658
|
+
*/
|
|
659
|
+
onRowsRendered: PropTypes.func,
|
|
660
|
+
/**
|
|
661
|
+
* Callback invoked whenever the scroll offset changes within the inner scrollable region.
|
|
662
|
+
* This callback can be used to sync scrolling between lists, tables, or grids.
|
|
663
|
+
* ({ clientHeight, scrollHeight, scrollTop }): void
|
|
664
|
+
*/
|
|
665
|
+
onScroll: PropTypes.func.isRequired,
|
|
666
|
+
/** See Grid#overscanIndicesGetter */
|
|
667
|
+
overscanIndicesGetter: PropTypes.func.isRequired,
|
|
668
|
+
/**
|
|
669
|
+
* Number of rows to render above/below the visible bounds of the list.
|
|
670
|
+
* These rows can help for smoother scrolling on touch devices.
|
|
671
|
+
*/
|
|
672
|
+
overscanRowCount: PropTypes.number.isRequired,
|
|
673
|
+
/**
|
|
674
|
+
* Optional CSS class to apply to all table rows (including the header row).
|
|
675
|
+
* This property can be a CSS class name (string) or a function that returns a class name.
|
|
676
|
+
* If a function is provided its signature should be: ({ index: number }): string
|
|
677
|
+
*/
|
|
678
|
+
rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
|
|
679
|
+
/**
|
|
680
|
+
* Callback responsible for returning a data row given an index.
|
|
681
|
+
* ({ index: number }): any
|
|
682
|
+
*/
|
|
683
|
+
rowGetter: PropTypes.func.isRequired,
|
|
684
|
+
/**
|
|
685
|
+
* Either a fixed row height (number) or a function that returns the height of a row given its index.
|
|
686
|
+
* ({ index: number }): number
|
|
687
|
+
*/
|
|
688
|
+
rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,
|
|
689
|
+
/** Number of rows in table. */
|
|
690
|
+
rowCount: PropTypes.number.isRequired,
|
|
691
|
+
/**
|
|
692
|
+
* Responsible for rendering a table row given an array of columns:
|
|
693
|
+
* Should implement the following interface: ({
|
|
694
|
+
* className: string,
|
|
695
|
+
* columns: Array,
|
|
696
|
+
* index: number,
|
|
697
|
+
* isScrolling: boolean,
|
|
698
|
+
* onRowClick: ?Function,
|
|
699
|
+
* onRowDoubleClick: ?Function,
|
|
700
|
+
* onRowMouseOver: ?Function,
|
|
701
|
+
* onRowMouseOut: ?Function,
|
|
702
|
+
* rowData: any,
|
|
703
|
+
* style: any
|
|
704
|
+
* }): PropTypes.node
|
|
705
|
+
*/
|
|
706
|
+
rowRenderer: PropTypes.func,
|
|
707
|
+
/** Optional custom inline style to attach to table rows. */
|
|
708
|
+
rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,
|
|
709
|
+
/** See Grid#scrollToAlignment */
|
|
710
|
+
scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,
|
|
711
|
+
/** Row index to ensure visible (by forcefully scrolling if necessary) */
|
|
712
|
+
scrollToIndex: PropTypes.number.isRequired,
|
|
713
|
+
/** Vertical offset. */
|
|
714
|
+
scrollTop: PropTypes.number,
|
|
715
|
+
/**
|
|
716
|
+
* Sort function to be called if a sortable header is clicked.
|
|
717
|
+
* Should implement the following interface: ({
|
|
718
|
+
* defaultSortDirection: 'ASC' | 'DESC',
|
|
719
|
+
* event: MouseEvent,
|
|
720
|
+
* sortBy: string,
|
|
721
|
+
* sortDirection: SortDirection
|
|
722
|
+
* }): void
|
|
723
|
+
*/
|
|
724
|
+
sort: PropTypes.func,
|
|
725
|
+
/** Table data is currently sorted by this :dataKey (if it is sorted at all) */
|
|
726
|
+
sortBy: PropTypes.string,
|
|
727
|
+
/** Table data is currently sorted in this direction (if it is sorted at all) */
|
|
728
|
+
sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),
|
|
729
|
+
/** Optional inline style */
|
|
730
|
+
style: PropTypes.object,
|
|
731
|
+
/** Tab index for focus */
|
|
732
|
+
tabIndex: PropTypes.number,
|
|
733
|
+
/** Width of list */
|
|
734
|
+
width: PropTypes.number.isRequired
|
|
735
|
+
} : {};
|