@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.
Files changed (254) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +34 -0
  3. package/changes.json +22 -0
  4. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js +184 -0
  5. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js +338 -0
  6. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.js +204 -0
  7. package/dist/commonjs/ArrowKeyStepper/index.js +19 -0
  8. package/dist/commonjs/ArrowKeyStepper/types.js +5 -0
  9. package/dist/commonjs/AutoSizer/AutoSizer.example.js +104 -0
  10. package/dist/commonjs/AutoSizer/AutoSizer.jest.js +341 -0
  11. package/dist/commonjs/AutoSizer/AutoSizer.js +199 -0
  12. package/dist/commonjs/AutoSizer/AutoSizer.ssr.js +25 -0
  13. package/dist/commonjs/AutoSizer/index.js +19 -0
  14. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +100 -0
  15. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +99 -0
  16. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +107 -0
  17. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +102 -0
  18. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +107 -0
  19. package/dist/commonjs/CellMeasurer/CellMeasurer.example.js +129 -0
  20. package/dist/commonjs/CellMeasurer/CellMeasurer.jest.js +345 -0
  21. package/dist/commonjs/CellMeasurer/CellMeasurer.js +195 -0
  22. package/dist/commonjs/CellMeasurer/CellMeasurerCache.jest.js +298 -0
  23. package/dist/commonjs/CellMeasurer/CellMeasurerCache.js +202 -0
  24. package/dist/commonjs/CellMeasurer/index.js +22 -0
  25. package/dist/commonjs/CellMeasurer/types.js +14 -0
  26. package/dist/commonjs/Collection/Collection.example.js +231 -0
  27. package/dist/commonjs/Collection/Collection.jest.js +829 -0
  28. package/dist/commonjs/Collection/Collection.js +266 -0
  29. package/dist/commonjs/Collection/CollectionView.js +553 -0
  30. package/dist/commonjs/Collection/Section.jest.js +63 -0
  31. package/dist/commonjs/Collection/Section.js +57 -0
  32. package/dist/commonjs/Collection/SectionManager.jest.js +121 -0
  33. package/dist/commonjs/Collection/SectionManager.js +134 -0
  34. package/dist/commonjs/Collection/TestData.js +77 -0
  35. package/dist/commonjs/Collection/index.js +15 -0
  36. package/dist/commonjs/Collection/types.js +22 -0
  37. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.jest.js +34 -0
  38. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.js +38 -0
  39. package/dist/commonjs/ColumnSizer/ColumnSizer.example.js +159 -0
  40. package/dist/commonjs/ColumnSizer/ColumnSizer.jest.js +129 -0
  41. package/dist/commonjs/ColumnSizer/ColumnSizer.js +103 -0
  42. package/dist/commonjs/ColumnSizer/index.js +15 -0
  43. package/dist/commonjs/Grid/Grid.example.js +330 -0
  44. package/dist/commonjs/Grid/Grid.jest.js +2561 -0
  45. package/dist/commonjs/Grid/Grid.js +1432 -0
  46. package/dist/commonjs/Grid/Grid.ssr.js +62 -0
  47. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js +92 -0
  48. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js +40 -0
  49. package/dist/commonjs/Grid/defaultCellRangeRenderer.js +139 -0
  50. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.jest.js +92 -0
  51. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.js +36 -0
  52. package/dist/commonjs/Grid/index.js +40 -0
  53. package/dist/commonjs/Grid/types.js +8 -0
  54. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.jest.js +375 -0
  55. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js +296 -0
  56. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +201 -0
  57. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js +204 -0
  58. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +84 -0
  59. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +59 -0
  60. package/dist/commonjs/Grid/utils/maxElementSize.js +22 -0
  61. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.jest.js +180 -0
  62. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.js +85 -0
  63. package/dist/commonjs/InfiniteLoader/InfiniteLoader.example.js +179 -0
  64. package/dist/commonjs/InfiniteLoader/InfiniteLoader.jest.js +571 -0
  65. package/dist/commonjs/InfiniteLoader/InfiniteLoader.js +274 -0
  66. package/dist/commonjs/InfiniteLoader/index.js +15 -0
  67. package/dist/commonjs/List/List.example.js +236 -0
  68. package/dist/commonjs/List/List.jest.js +517 -0
  69. package/dist/commonjs/List/List.js +318 -0
  70. package/dist/commonjs/List/index.js +19 -0
  71. package/dist/commonjs/List/types.js +6 -0
  72. package/dist/commonjs/Masonry/Masonry.example.js +287 -0
  73. package/dist/commonjs/Masonry/Masonry.jest.js +450 -0
  74. package/dist/commonjs/Masonry/Masonry.js +431 -0
  75. package/dist/commonjs/Masonry/PositionCache.js +88 -0
  76. package/dist/commonjs/Masonry/createCellPositioner.js +59 -0
  77. package/dist/commonjs/Masonry/index.js +22 -0
  78. package/dist/commonjs/MultiGrid/CellMeasurerCacheDecorator.js +106 -0
  79. package/dist/commonjs/MultiGrid/MultiGrid.example.js +131 -0
  80. package/dist/commonjs/MultiGrid/MultiGrid.jest.js +584 -0
  81. package/dist/commonjs/MultiGrid/MultiGrid.js +743 -0
  82. package/dist/commonjs/MultiGrid/index.js +15 -0
  83. package/dist/commonjs/ScrollSync/ScrollSync.example.js +257 -0
  84. package/dist/commonjs/ScrollSync/ScrollSync.jest.js +66 -0
  85. package/dist/commonjs/ScrollSync/ScrollSync.js +88 -0
  86. package/dist/commonjs/ScrollSync/index.js +15 -0
  87. package/dist/commonjs/Table/Column.jest.js +90 -0
  88. package/dist/commonjs/Table/Column.js +93 -0
  89. package/dist/commonjs/Table/SortDirection.js +19 -0
  90. package/dist/commonjs/Table/SortIndicator.js +40 -0
  91. package/dist/commonjs/Table/Table.example.js +325 -0
  92. package/dist/commonjs/Table/Table.jest.js +1257 -0
  93. package/dist/commonjs/Table/Table.js +742 -0
  94. package/dist/commonjs/Table/createMultiSort.jest.js +165 -0
  95. package/dist/commonjs/Table/createMultiSort.js +99 -0
  96. package/dist/commonjs/Table/defaultCellDataGetter.js +21 -0
  97. package/dist/commonjs/Table/defaultCellRenderer.js +19 -0
  98. package/dist/commonjs/Table/defaultHeaderRenderer.js +35 -0
  99. package/dist/commonjs/Table/defaultHeaderRowRenderer.js +21 -0
  100. package/dist/commonjs/Table/defaultRowRenderer.js +87 -0
  101. package/dist/commonjs/Table/index.js +78 -0
  102. package/dist/commonjs/Table/types.js +39 -0
  103. package/dist/commonjs/WindowScroller/WindowScroller.e2e.js +298 -0
  104. package/dist/commonjs/WindowScroller/WindowScroller.example.js +167 -0
  105. package/dist/commonjs/WindowScroller/WindowScroller.header-resize.e2e.js +359 -0
  106. package/dist/commonjs/WindowScroller/WindowScroller.jest.js +536 -0
  107. package/dist/commonjs/WindowScroller/WindowScroller.js +268 -0
  108. package/dist/commonjs/WindowScroller/WindowScroller.ssr.js +25 -0
  109. package/dist/commonjs/WindowScroller/index.js +23 -0
  110. package/dist/commonjs/WindowScroller/utils/dimensions.js +89 -0
  111. package/dist/commonjs/WindowScroller/utils/onScroll.js +70 -0
  112. package/dist/commonjs/index.js +180 -0
  113. package/dist/commonjs/jest-setup.js +7 -0
  114. package/dist/commonjs/utils/TestHelper.js +36 -0
  115. package/dist/commonjs/utils/animationFrame.js +29 -0
  116. package/dist/commonjs/utils/createCallbackMemoizer.jest.js +219 -0
  117. package/dist/commonjs/utils/createCallbackMemoizer.js +31 -0
  118. package/dist/commonjs/utils/getUpdatedOffsetForIndex.jest.js +68 -0
  119. package/dist/commonjs/utils/getUpdatedOffsetForIndex.js +38 -0
  120. package/dist/commonjs/utils/initCellMetadata.js +37 -0
  121. package/dist/commonjs/utils/requestAnimationTimeout.js +38 -0
  122. package/dist/commonjs/vendor/binarySearchBounds.js +200 -0
  123. package/dist/commonjs/vendor/detectElementResize.js +192 -0
  124. package/dist/commonjs/vendor/intervalTree.js +361 -0
  125. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.example.js +176 -0
  126. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.jest.js +332 -0
  127. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.js +197 -0
  128. package/dist/es/ArrowKeyStepper/index.js +3 -0
  129. package/dist/es/ArrowKeyStepper/types.js +4 -0
  130. package/dist/es/AutoSizer/AutoSizer.example.js +96 -0
  131. package/dist/es/AutoSizer/AutoSizer.jest.js +335 -0
  132. package/dist/es/AutoSizer/AutoSizer.js +190 -0
  133. package/dist/es/AutoSizer/AutoSizer.js.flow +200 -0
  134. package/dist/es/AutoSizer/AutoSizer.ssr.js +19 -0
  135. package/dist/es/AutoSizer/index.js +2 -0
  136. package/dist/es/AutoSizer/index.js.flow +4 -0
  137. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +91 -0
  138. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +90 -0
  139. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +98 -0
  140. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +93 -0
  141. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +98 -0
  142. package/dist/es/CellMeasurer/CellMeasurer.example.js +120 -0
  143. package/dist/es/CellMeasurer/CellMeasurer.jest.js +340 -0
  144. package/dist/es/CellMeasurer/CellMeasurer.js +187 -0
  145. package/dist/es/CellMeasurer/CellMeasurerCache.jest.js +293 -0
  146. package/dist/es/CellMeasurer/CellMeasurerCache.js +196 -0
  147. package/dist/es/CellMeasurer/index.js +4 -0
  148. package/dist/es/CellMeasurer/types.js +13 -0
  149. package/dist/es/Collection/Collection.example.js +223 -0
  150. package/dist/es/Collection/Collection.jest.js +824 -0
  151. package/dist/es/Collection/Collection.js +257 -0
  152. package/dist/es/Collection/CollectionView.js +544 -0
  153. package/dist/es/Collection/Section.jest.js +60 -0
  154. package/dist/es/Collection/Section.js +51 -0
  155. package/dist/es/Collection/SectionManager.jest.js +118 -0
  156. package/dist/es/Collection/SectionManager.js +128 -0
  157. package/dist/es/Collection/TestData.js +71 -0
  158. package/dist/es/Collection/index.js +3 -0
  159. package/dist/es/Collection/types.js +21 -0
  160. package/dist/es/Collection/utils/calculateSizeAndPositionData.jest.js +31 -0
  161. package/dist/es/Collection/utils/calculateSizeAndPositionData.js +31 -0
  162. package/dist/es/ColumnSizer/ColumnSizer.example.js +150 -0
  163. package/dist/es/ColumnSizer/ColumnSizer.jest.js +123 -0
  164. package/dist/es/ColumnSizer/ColumnSizer.js +95 -0
  165. package/dist/es/ColumnSizer/index.js +3 -0
  166. package/dist/es/Grid/Grid.example.js +321 -0
  167. package/dist/es/Grid/Grid.jest.js +2555 -0
  168. package/dist/es/Grid/Grid.js +1425 -0
  169. package/dist/es/Grid/Grid.ssr.js +57 -0
  170. package/dist/es/Grid/accessibilityOverscanIndicesGetter.jest.js +87 -0
  171. package/dist/es/Grid/accessibilityOverscanIndicesGetter.js +33 -0
  172. package/dist/es/Grid/defaultCellRangeRenderer.js +134 -0
  173. package/dist/es/Grid/defaultOverscanIndicesGetter.jest.js +87 -0
  174. package/dist/es/Grid/defaultOverscanIndicesGetter.js +29 -0
  175. package/dist/es/Grid/index.js +15 -0
  176. package/dist/es/Grid/types.js +96 -0
  177. package/dist/es/Grid/utils/CellSizeAndPositionManager.jest.js +372 -0
  178. package/dist/es/Grid/utils/CellSizeAndPositionManager.js +290 -0
  179. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +198 -0
  180. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js +198 -0
  181. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +81 -0
  182. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +53 -0
  183. package/dist/es/Grid/utils/maxElementSize.js +16 -0
  184. package/dist/es/Grid/utils/updateScrollIndexHelper.jest.js +174 -0
  185. package/dist/es/Grid/utils/updateScrollIndexHelper.js +79 -0
  186. package/dist/es/InfiniteLoader/InfiniteLoader.example.js +170 -0
  187. package/dist/es/InfiniteLoader/InfiniteLoader.jest.js +565 -0
  188. package/dist/es/InfiniteLoader/InfiniteLoader.js +263 -0
  189. package/dist/es/InfiniteLoader/index.js +3 -0
  190. package/dist/es/List/List.example.js +227 -0
  191. package/dist/es/List/List.jest.js +511 -0
  192. package/dist/es/List/List.js +312 -0
  193. package/dist/es/List/index.js +3 -0
  194. package/dist/es/List/types.js +21 -0
  195. package/dist/es/Masonry/Masonry.example.js +278 -0
  196. package/dist/es/Masonry/Masonry.jest.js +444 -0
  197. package/dist/es/Masonry/Masonry.js +421 -0
  198. package/dist/es/Masonry/PositionCache.js +82 -0
  199. package/dist/es/Masonry/createCellPositioner.js +53 -0
  200. package/dist/es/Masonry/index.js +4 -0
  201. package/dist/es/MultiGrid/CellMeasurerCacheDecorator.js +100 -0
  202. package/dist/es/MultiGrid/MultiGrid.example.js +122 -0
  203. package/dist/es/MultiGrid/MultiGrid.jest.js +579 -0
  204. package/dist/es/MultiGrid/MultiGrid.js +733 -0
  205. package/dist/es/MultiGrid/index.js +3 -0
  206. package/dist/es/ScrollSync/ScrollSync.example.js +248 -0
  207. package/dist/es/ScrollSync/ScrollSync.jest.js +60 -0
  208. package/dist/es/ScrollSync/ScrollSync.js +80 -0
  209. package/dist/es/ScrollSync/index.js +3 -0
  210. package/dist/es/Table/Column.jest.js +84 -0
  211. package/dist/es/Table/Column.js +85 -0
  212. package/dist/es/Table/SortDirection.js +13 -0
  213. package/dist/es/Table/SortIndicator.js +31 -0
  214. package/dist/es/Table/Table.example.js +316 -0
  215. package/dist/es/Table/Table.jest.js +1251 -0
  216. package/dist/es/Table/Table.js +735 -0
  217. package/dist/es/Table/createMultiSort.jest.js +162 -0
  218. package/dist/es/Table/createMultiSort.js +93 -0
  219. package/dist/es/Table/defaultCellDataGetter.js +15 -0
  220. package/dist/es/Table/defaultCellRenderer.js +13 -0
  221. package/dist/es/Table/defaultHeaderRenderer.js +25 -0
  222. package/dist/es/Table/defaultHeaderRowRenderer.js +12 -0
  223. package/dist/es/Table/defaultRowRenderer.js +77 -0
  224. package/dist/es/Table/index.js +12 -0
  225. package/dist/es/Table/types.js +38 -0
  226. package/dist/es/WindowScroller/WindowScroller.e2e.js +295 -0
  227. package/dist/es/WindowScroller/WindowScroller.example.js +158 -0
  228. package/dist/es/WindowScroller/WindowScroller.header-resize.e2e.js +356 -0
  229. package/dist/es/WindowScroller/WindowScroller.jest.js +530 -0
  230. package/dist/es/WindowScroller/WindowScroller.js +259 -0
  231. package/dist/es/WindowScroller/WindowScroller.js.flow +277 -0
  232. package/dist/es/WindowScroller/WindowScroller.ssr.js +19 -0
  233. package/dist/es/WindowScroller/index.js +3 -0
  234. package/dist/es/WindowScroller/index.js.flow +6 -0
  235. package/dist/es/WindowScroller/utils/dimensions.js +81 -0
  236. package/dist/es/WindowScroller/utils/dimensions.js.flow +91 -0
  237. package/dist/es/WindowScroller/utils/onScroll.js +64 -0
  238. package/dist/es/WindowScroller/utils/onScroll.js.flow +94 -0
  239. package/dist/es/index.js +13 -0
  240. package/dist/es/jest-setup.js +5 -0
  241. package/dist/es/utils/TestHelper.js +30 -0
  242. package/dist/es/utils/animationFrame.js +23 -0
  243. package/dist/es/utils/createCallbackMemoizer.jest.js +216 -0
  244. package/dist/es/utils/createCallbackMemoizer.js +25 -0
  245. package/dist/es/utils/getUpdatedOffsetForIndex.jest.js +65 -0
  246. package/dist/es/utils/getUpdatedOffsetForIndex.js +32 -0
  247. package/dist/es/utils/initCellMetadata.js +31 -0
  248. package/dist/es/utils/requestAnimationTimeout.js +32 -0
  249. package/dist/es/vendor/binarySearchBounds.js +194 -0
  250. package/dist/es/vendor/detectElementResize.js +186 -0
  251. package/dist/es/vendor/intervalTree.js +354 -0
  252. package/dist/umd/react-virtualized.js +4638 -0
  253. package/package.json +188 -0
  254. 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
+ });