@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,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
exports.forceUpdateReactVirtualizedComponent = forceUpdateReactVirtualizedComponent;
|
|
10
|
+
exports.isRangeVisible = isRangeVisible;
|
|
11
|
+
exports.scanForUnloadedRanges = scanForUnloadedRanges;
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
+
var React = _interopRequireWildcard(require("react"));
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
var _createCallbackMemoizer = _interopRequireDefault(require("../utils/createCallbackMemoizer"));
|
|
22
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
24
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
25
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
26
|
+
/**
|
|
27
|
+
* Higher-order component that manages lazy-loading for "infinite" data.
|
|
28
|
+
* This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.
|
|
29
|
+
* It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.
|
|
30
|
+
*/
|
|
31
|
+
var InfiniteLoader = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
|
|
32
|
+
function InfiniteLoader(props, context) {
|
|
33
|
+
var _this;
|
|
34
|
+
(0, _classCallCheck2["default"])(this, InfiniteLoader);
|
|
35
|
+
_this = _callSuper(this, InfiniteLoader, [props, context]);
|
|
36
|
+
_this._loadMoreRowsMemoizer = (0, _createCallbackMemoizer["default"])();
|
|
37
|
+
_this._onRowsRendered = _this._onRowsRendered.bind(_this);
|
|
38
|
+
_this._registerChild = _this._registerChild.bind(_this);
|
|
39
|
+
return _this;
|
|
40
|
+
}
|
|
41
|
+
(0, _inherits2["default"])(InfiniteLoader, _React$PureComponent);
|
|
42
|
+
return (0, _createClass2["default"])(InfiniteLoader, [{
|
|
43
|
+
key: "resetLoadMoreRowsCache",
|
|
44
|
+
value: function resetLoadMoreRowsCache(autoReload) {
|
|
45
|
+
this._loadMoreRowsMemoizer = (0, _createCallbackMemoizer["default"])();
|
|
46
|
+
if (autoReload) {
|
|
47
|
+
this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
key: "render",
|
|
52
|
+
value: function render() {
|
|
53
|
+
var children = this.props.children;
|
|
54
|
+
return children({
|
|
55
|
+
onRowsRendered: this._onRowsRendered,
|
|
56
|
+
registerChild: this._registerChild
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "_loadUnloadedRanges",
|
|
61
|
+
value: function _loadUnloadedRanges(unloadedRanges) {
|
|
62
|
+
var _this2 = this;
|
|
63
|
+
var loadMoreRows = this.props.loadMoreRows;
|
|
64
|
+
unloadedRanges.forEach(function (unloadedRange) {
|
|
65
|
+
var promise = loadMoreRows(unloadedRange);
|
|
66
|
+
if (promise) {
|
|
67
|
+
promise.then(function () {
|
|
68
|
+
// Refresh the visible rows if any of them have just been loaded.
|
|
69
|
+
// Otherwise they will remain in their unloaded visual state.
|
|
70
|
+
if (isRangeVisible({
|
|
71
|
+
lastRenderedStartIndex: _this2._lastRenderedStartIndex,
|
|
72
|
+
lastRenderedStopIndex: _this2._lastRenderedStopIndex,
|
|
73
|
+
startIndex: unloadedRange.startIndex,
|
|
74
|
+
stopIndex: unloadedRange.stopIndex
|
|
75
|
+
})) {
|
|
76
|
+
if (_this2._registeredChild) {
|
|
77
|
+
forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "_onRowsRendered",
|
|
86
|
+
value: function _onRowsRendered(_ref) {
|
|
87
|
+
var startIndex = _ref.startIndex,
|
|
88
|
+
stopIndex = _ref.stopIndex;
|
|
89
|
+
this._lastRenderedStartIndex = startIndex;
|
|
90
|
+
this._lastRenderedStopIndex = stopIndex;
|
|
91
|
+
this._doStuff(startIndex, stopIndex);
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "_doStuff",
|
|
95
|
+
value: function _doStuff(startIndex, stopIndex) {
|
|
96
|
+
var _ref2,
|
|
97
|
+
_this3 = this;
|
|
98
|
+
var _this$props = this.props,
|
|
99
|
+
isRowLoaded = _this$props.isRowLoaded,
|
|
100
|
+
minimumBatchSize = _this$props.minimumBatchSize,
|
|
101
|
+
rowCount = _this$props.rowCount,
|
|
102
|
+
threshold = _this$props.threshold;
|
|
103
|
+
var unloadedRanges = scanForUnloadedRanges({
|
|
104
|
+
isRowLoaded: isRowLoaded,
|
|
105
|
+
minimumBatchSize: minimumBatchSize,
|
|
106
|
+
rowCount: rowCount,
|
|
107
|
+
startIndex: Math.max(0, startIndex - threshold),
|
|
108
|
+
stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// For memoize comparison
|
|
112
|
+
var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, (0, _toConsumableArray2["default"])(unloadedRanges.map(function (_ref3) {
|
|
113
|
+
var startIndex = _ref3.startIndex,
|
|
114
|
+
stopIndex = _ref3.stopIndex;
|
|
115
|
+
return [startIndex, stopIndex];
|
|
116
|
+
})));
|
|
117
|
+
this._loadMoreRowsMemoizer({
|
|
118
|
+
callback: function callback() {
|
|
119
|
+
_this3._loadUnloadedRanges(unloadedRanges);
|
|
120
|
+
},
|
|
121
|
+
indices: {
|
|
122
|
+
squashedUnloadedRanges: squashedUnloadedRanges
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}, {
|
|
127
|
+
key: "_registerChild",
|
|
128
|
+
value: function _registerChild(registeredChild) {
|
|
129
|
+
this._registeredChild = registeredChild;
|
|
130
|
+
}
|
|
131
|
+
}]);
|
|
132
|
+
}(React.PureComponent);
|
|
133
|
+
/**
|
|
134
|
+
* Determines if the specified start/stop range is visible based on the most recently rendered range.
|
|
135
|
+
*/
|
|
136
|
+
(0, _defineProperty2["default"])(InfiniteLoader, "defaultProps", {
|
|
137
|
+
minimumBatchSize: 10,
|
|
138
|
+
rowCount: 0,
|
|
139
|
+
threshold: 15
|
|
140
|
+
});
|
|
141
|
+
InfiniteLoader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
142
|
+
/**
|
|
143
|
+
* Function responsible for rendering a virtualized component.
|
|
144
|
+
* This function should implement the following signature:
|
|
145
|
+
* ({ onRowsRendered, registerChild }) => PropTypes.element
|
|
146
|
+
*
|
|
147
|
+
* The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.
|
|
148
|
+
* The :registerChild callback should be set as the virtualized component's :ref.
|
|
149
|
+
*/
|
|
150
|
+
children: _propTypes["default"].func.isRequired,
|
|
151
|
+
/**
|
|
152
|
+
* Function responsible for tracking the loaded state of each row.
|
|
153
|
+
* It should implement the following signature: ({ index: number }): boolean
|
|
154
|
+
*/
|
|
155
|
+
isRowLoaded: _propTypes["default"].func.isRequired,
|
|
156
|
+
/**
|
|
157
|
+
* Callback to be invoked when more rows must be loaded.
|
|
158
|
+
* It should implement the following signature: ({ startIndex, stopIndex }): Promise
|
|
159
|
+
* The returned Promise should be resolved once row data has finished loading.
|
|
160
|
+
* It will be used to determine when to refresh the list with the newly-loaded data.
|
|
161
|
+
* This callback may be called multiple times in reaction to a single scroll event.
|
|
162
|
+
*/
|
|
163
|
+
loadMoreRows: _propTypes["default"].func.isRequired,
|
|
164
|
+
/**
|
|
165
|
+
* Minimum number of rows to be loaded at a time.
|
|
166
|
+
* This property can be used to batch requests to reduce HTTP requests.
|
|
167
|
+
*/
|
|
168
|
+
minimumBatchSize: _propTypes["default"].number.isRequired,
|
|
169
|
+
/**
|
|
170
|
+
* Number of rows in list; can be arbitrary high number if actual number is unknown.
|
|
171
|
+
*/
|
|
172
|
+
rowCount: _propTypes["default"].number.isRequired,
|
|
173
|
+
/**
|
|
174
|
+
* Threshold at which to pre-fetch data.
|
|
175
|
+
* A threshold X means that data will start loading when a user scrolls within X rows.
|
|
176
|
+
* This value defaults to 15.
|
|
177
|
+
*/
|
|
178
|
+
threshold: _propTypes["default"].number.isRequired
|
|
179
|
+
} : {};
|
|
180
|
+
function isRangeVisible(_ref4) {
|
|
181
|
+
var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,
|
|
182
|
+
lastRenderedStopIndex = _ref4.lastRenderedStopIndex,
|
|
183
|
+
startIndex = _ref4.startIndex,
|
|
184
|
+
stopIndex = _ref4.stopIndex;
|
|
185
|
+
return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Returns all of the ranges within a larger range that contain unloaded rows.
|
|
190
|
+
*/
|
|
191
|
+
function scanForUnloadedRanges(_ref5) {
|
|
192
|
+
var isRowLoaded = _ref5.isRowLoaded,
|
|
193
|
+
minimumBatchSize = _ref5.minimumBatchSize,
|
|
194
|
+
rowCount = _ref5.rowCount,
|
|
195
|
+
startIndex = _ref5.startIndex,
|
|
196
|
+
stopIndex = _ref5.stopIndex;
|
|
197
|
+
var unloadedRanges = [];
|
|
198
|
+
var rangeStartIndex = null;
|
|
199
|
+
var rangeStopIndex = null;
|
|
200
|
+
for (var index = startIndex; index <= stopIndex; index++) {
|
|
201
|
+
var loaded = isRowLoaded({
|
|
202
|
+
index: index
|
|
203
|
+
});
|
|
204
|
+
if (!loaded) {
|
|
205
|
+
rangeStopIndex = index;
|
|
206
|
+
if (rangeStartIndex === null) {
|
|
207
|
+
rangeStartIndex = index;
|
|
208
|
+
}
|
|
209
|
+
} else if (rangeStopIndex !== null) {
|
|
210
|
+
unloadedRanges.push({
|
|
211
|
+
startIndex: rangeStartIndex,
|
|
212
|
+
stopIndex: rangeStopIndex
|
|
213
|
+
});
|
|
214
|
+
rangeStartIndex = rangeStopIndex = null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.
|
|
219
|
+
// Scan forward to try filling our :minimumBatchSize.
|
|
220
|
+
if (rangeStopIndex !== null) {
|
|
221
|
+
var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);
|
|
222
|
+
for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {
|
|
223
|
+
if (!isRowLoaded({
|
|
224
|
+
index: _index
|
|
225
|
+
})) {
|
|
226
|
+
rangeStopIndex = _index;
|
|
227
|
+
} else {
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
unloadedRanges.push({
|
|
232
|
+
startIndex: rangeStartIndex,
|
|
233
|
+
stopIndex: rangeStopIndex
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Check to see if our first range ended prematurely.
|
|
238
|
+
// In this case we should scan backwards to try filling our :minimumBatchSize.
|
|
239
|
+
if (unloadedRanges.length) {
|
|
240
|
+
var firstUnloadedRange = unloadedRanges[0];
|
|
241
|
+
while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {
|
|
242
|
+
var _index2 = firstUnloadedRange.startIndex - 1;
|
|
243
|
+
if (!isRowLoaded({
|
|
244
|
+
index: _index2
|
|
245
|
+
})) {
|
|
246
|
+
firstUnloadedRange.startIndex = _index2;
|
|
247
|
+
} else {
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return unloadedRanges;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Since RV components use shallowCompare we need to force a render (even though props haven't changed).
|
|
257
|
+
* However InfiniteLoader may wrap a Grid or it may wrap a Table or List.
|
|
258
|
+
* In the first case the built-in React forceUpdate() method is sufficient to force a re-render,
|
|
259
|
+
* But in the latter cases we need to use the RV-specific forceUpdateGrid() method.
|
|
260
|
+
* Else the inner Grid will not be re-rendered and visuals may be stale.
|
|
261
|
+
*
|
|
262
|
+
* Additionally, while a Grid is scrolling the cells can be cached,
|
|
263
|
+
* So it's important to invalidate that cache by recalculating sizes
|
|
264
|
+
* before forcing a rerender.
|
|
265
|
+
*/
|
|
266
|
+
function forceUpdateReactVirtualizedComponent(component) {
|
|
267
|
+
var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
268
|
+
var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;
|
|
269
|
+
if (recomputeSize) {
|
|
270
|
+
recomputeSize.call(component, currentIndex);
|
|
271
|
+
} else {
|
|
272
|
+
component.forceUpdate();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "InfiniteLoader", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _InfiniteLoader["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports["default"] = void 0;
|
|
14
|
+
var _InfiniteLoader = _interopRequireDefault(require("./InfiniteLoader"));
|
|
15
|
+
var _default = exports["default"] = _InfiniteLoader["default"];
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
16
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
17
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
+
var React = _interopRequireWildcard(require("react"));
|
|
19
|
+
var _ListExample2 = _interopRequireDefault(require("./List.example.css"));
|
|
20
|
+
var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));
|
|
21
|
+
var _List = _interopRequireDefault(require("./List"));
|
|
22
|
+
var _ContentBox = require("../demo/ContentBox");
|
|
23
|
+
var _LabeledInput = require("../demo/LabeledInput");
|
|
24
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
26
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
27
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
28
|
+
var ListExample = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
|
|
29
|
+
function ListExample(props, context) {
|
|
30
|
+
var _this;
|
|
31
|
+
(0, _classCallCheck2["default"])(this, ListExample);
|
|
32
|
+
_this = _callSuper(this, ListExample, [props, context]);
|
|
33
|
+
_this.state = {
|
|
34
|
+
listHeight: 300,
|
|
35
|
+
listRowHeight: 50,
|
|
36
|
+
overscanRowCount: 10,
|
|
37
|
+
rowCount: context.list.size,
|
|
38
|
+
scrollToIndex: undefined,
|
|
39
|
+
showScrollingPlaceholder: false,
|
|
40
|
+
useDynamicRowHeight: false
|
|
41
|
+
};
|
|
42
|
+
_this._getRowHeight = _this._getRowHeight.bind(_this);
|
|
43
|
+
_this._noRowsRenderer = _this._noRowsRenderer.bind(_this);
|
|
44
|
+
_this._onRowCountChange = _this._onRowCountChange.bind(_this);
|
|
45
|
+
_this._onScrollToRowChange = _this._onScrollToRowChange.bind(_this);
|
|
46
|
+
_this._rowRenderer = _this._rowRenderer.bind(_this);
|
|
47
|
+
return _this;
|
|
48
|
+
}
|
|
49
|
+
(0, _inherits2["default"])(ListExample, _React$PureComponent);
|
|
50
|
+
return (0, _createClass2["default"])(ListExample, [{
|
|
51
|
+
key: "render",
|
|
52
|
+
value: function render() {
|
|
53
|
+
var _this2 = this;
|
|
54
|
+
var _this$state = this.state,
|
|
55
|
+
listHeight = _this$state.listHeight,
|
|
56
|
+
listRowHeight = _this$state.listRowHeight,
|
|
57
|
+
overscanRowCount = _this$state.overscanRowCount,
|
|
58
|
+
rowCount = _this$state.rowCount,
|
|
59
|
+
scrollToIndex = _this$state.scrollToIndex,
|
|
60
|
+
showScrollingPlaceholder = _this$state.showScrollingPlaceholder,
|
|
61
|
+
useDynamicRowHeight = _this$state.useDynamicRowHeight;
|
|
62
|
+
return /*#__PURE__*/React.createElement(_ContentBox.ContentBox, null, /*#__PURE__*/React.createElement(_ContentBox.ContentBoxHeader, {
|
|
63
|
+
text: "List",
|
|
64
|
+
sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/List/List.example.js",
|
|
65
|
+
docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md"
|
|
66
|
+
}), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, "The list below is windowed (or \"virtualized\") meaning that only the visible rows are rendered. Adjust its configurable properties below to see how it reacts."), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, /*#__PURE__*/React.createElement("label", {
|
|
67
|
+
className: _ListExample2["default"].checkboxLabel
|
|
68
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
69
|
+
"aria-label": "Use dynamic row heights?",
|
|
70
|
+
checked: useDynamicRowHeight,
|
|
71
|
+
className: _ListExample2["default"].checkbox,
|
|
72
|
+
type: "checkbox",
|
|
73
|
+
onChange: function onChange(event) {
|
|
74
|
+
return _this2.setState({
|
|
75
|
+
useDynamicRowHeight: event.target.checked
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}), "Use dynamic row heights?"), /*#__PURE__*/React.createElement("label", {
|
|
79
|
+
className: _ListExample2["default"].checkboxLabel
|
|
80
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
81
|
+
"aria-label": "Show scrolling placeholder?",
|
|
82
|
+
checked: showScrollingPlaceholder,
|
|
83
|
+
className: _ListExample2["default"].checkbox,
|
|
84
|
+
type: "checkbox",
|
|
85
|
+
onChange: function onChange(event) {
|
|
86
|
+
return _this2.setState({
|
|
87
|
+
showScrollingPlaceholder: event.target.checked
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}), "Show scrolling placeholder?")), /*#__PURE__*/React.createElement(_LabeledInput.InputRow, null, /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
91
|
+
label: "Num rows",
|
|
92
|
+
name: "rowCount",
|
|
93
|
+
onChange: this._onRowCountChange,
|
|
94
|
+
value: rowCount
|
|
95
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
96
|
+
label: "Scroll to",
|
|
97
|
+
name: "onScrollToRow",
|
|
98
|
+
placeholder: "Index...",
|
|
99
|
+
onChange: this._onScrollToRowChange,
|
|
100
|
+
value: scrollToIndex || ''
|
|
101
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
102
|
+
label: "List height",
|
|
103
|
+
name: "listHeight",
|
|
104
|
+
onChange: function onChange(event) {
|
|
105
|
+
return _this2.setState({
|
|
106
|
+
listHeight: parseInt(event.target.value, 10) || 1
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
value: listHeight
|
|
110
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
111
|
+
disabled: useDynamicRowHeight,
|
|
112
|
+
label: "Row height",
|
|
113
|
+
name: "listRowHeight",
|
|
114
|
+
onChange: function onChange(event) {
|
|
115
|
+
return _this2.setState({
|
|
116
|
+
listRowHeight: parseInt(event.target.value, 10) || 1
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
value: listRowHeight
|
|
120
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
121
|
+
label: "Overscan",
|
|
122
|
+
name: "overscanRowCount",
|
|
123
|
+
onChange: function onChange(event) {
|
|
124
|
+
return _this2.setState({
|
|
125
|
+
overscanRowCount: parseInt(event.target.value, 10) || 0
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
value: overscanRowCount
|
|
129
|
+
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_AutoSizer["default"], {
|
|
130
|
+
disableHeight: true
|
|
131
|
+
}, function (_ref) {
|
|
132
|
+
var width = _ref.width;
|
|
133
|
+
return /*#__PURE__*/React.createElement(_List["default"], {
|
|
134
|
+
ref: "List",
|
|
135
|
+
className: _ListExample2["default"].List,
|
|
136
|
+
height: listHeight,
|
|
137
|
+
overscanRowCount: overscanRowCount,
|
|
138
|
+
noRowsRenderer: _this2._noRowsRenderer,
|
|
139
|
+
rowCount: rowCount,
|
|
140
|
+
rowHeight: useDynamicRowHeight ? _this2._getRowHeight : listRowHeight,
|
|
141
|
+
rowRenderer: _this2._rowRenderer,
|
|
142
|
+
scrollToIndex: scrollToIndex,
|
|
143
|
+
width: width
|
|
144
|
+
});
|
|
145
|
+
})));
|
|
146
|
+
}
|
|
147
|
+
}, {
|
|
148
|
+
key: "_getDatum",
|
|
149
|
+
value: function _getDatum(index) {
|
|
150
|
+
var list = this.context.list;
|
|
151
|
+
return list.get(index % list.size);
|
|
152
|
+
}
|
|
153
|
+
}, {
|
|
154
|
+
key: "_getRowHeight",
|
|
155
|
+
value: function _getRowHeight(_ref2) {
|
|
156
|
+
var index = _ref2.index;
|
|
157
|
+
return this._getDatum(index).size;
|
|
158
|
+
}
|
|
159
|
+
}, {
|
|
160
|
+
key: "_noRowsRenderer",
|
|
161
|
+
value: function _noRowsRenderer() {
|
|
162
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
163
|
+
className: _ListExample2["default"].noRows
|
|
164
|
+
}, "No rows");
|
|
165
|
+
}
|
|
166
|
+
}, {
|
|
167
|
+
key: "_onRowCountChange",
|
|
168
|
+
value: function _onRowCountChange(event) {
|
|
169
|
+
var rowCount = parseInt(event.target.value, 10) || 0;
|
|
170
|
+
this.setState({
|
|
171
|
+
rowCount: rowCount
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}, {
|
|
175
|
+
key: "_onScrollToRowChange",
|
|
176
|
+
value: function _onScrollToRowChange(event) {
|
|
177
|
+
var rowCount = this.state.rowCount;
|
|
178
|
+
var scrollToIndex = Math.min(rowCount - 1, parseInt(event.target.value, 10));
|
|
179
|
+
if (isNaN(scrollToIndex)) {
|
|
180
|
+
scrollToIndex = undefined;
|
|
181
|
+
}
|
|
182
|
+
this.setState({
|
|
183
|
+
scrollToIndex: scrollToIndex
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}, {
|
|
187
|
+
key: "_rowRenderer",
|
|
188
|
+
value: function _rowRenderer(_ref3) {
|
|
189
|
+
var index = _ref3.index,
|
|
190
|
+
isScrolling = _ref3.isScrolling,
|
|
191
|
+
key = _ref3.key,
|
|
192
|
+
style = _ref3.style;
|
|
193
|
+
var _this$state2 = this.state,
|
|
194
|
+
showScrollingPlaceholder = _this$state2.showScrollingPlaceholder,
|
|
195
|
+
useDynamicRowHeight = _this$state2.useDynamicRowHeight;
|
|
196
|
+
if (showScrollingPlaceholder && isScrolling) {
|
|
197
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
198
|
+
className: (0, _clsx["default"])(_ListExample2["default"].row, _ListExample2["default"].isScrollingPlaceholder),
|
|
199
|
+
key: key,
|
|
200
|
+
style: style
|
|
201
|
+
}, "Scrolling...");
|
|
202
|
+
}
|
|
203
|
+
var datum = this._getDatum(index);
|
|
204
|
+
var additionalContent;
|
|
205
|
+
if (useDynamicRowHeight) {
|
|
206
|
+
switch (datum.size) {
|
|
207
|
+
case 75:
|
|
208
|
+
additionalContent = /*#__PURE__*/React.createElement("div", null, "It is medium-sized.");
|
|
209
|
+
break;
|
|
210
|
+
case 100:
|
|
211
|
+
additionalContent = /*#__PURE__*/React.createElement("div", null, "It is large-sized.", /*#__PURE__*/React.createElement("br", null), "It has a 3rd row.");
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
216
|
+
className: _ListExample2["default"].row,
|
|
217
|
+
key: key,
|
|
218
|
+
style: style
|
|
219
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
220
|
+
className: _ListExample2["default"].letter,
|
|
221
|
+
style: {
|
|
222
|
+
backgroundColor: datum.color
|
|
223
|
+
}
|
|
224
|
+
}, datum.name.charAt(0)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
225
|
+
className: _ListExample2["default"].name
|
|
226
|
+
}, datum.name), /*#__PURE__*/React.createElement("div", {
|
|
227
|
+
className: _ListExample2["default"].index
|
|
228
|
+
}, "This is row ", index), additionalContent), useDynamicRowHeight && /*#__PURE__*/React.createElement("span", {
|
|
229
|
+
className: _ListExample2["default"].height
|
|
230
|
+
}, datum.size, "px"));
|
|
231
|
+
}
|
|
232
|
+
}]);
|
|
233
|
+
}(React.PureComponent);
|
|
234
|
+
(0, _defineProperty2["default"])(ListExample, "contextTypes", {
|
|
235
|
+
list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
|
|
236
|
+
});
|