@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,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var React = _interopRequireWildcard(require("react"));
6
+ var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));
7
+ var _Grid = _interopRequireDefault(require("./Grid"));
8
+ 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); }
9
+ 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; }
10
+ /**
11
+ *
12
+ * @jest-environment node
13
+ */
14
+ /*:: declare var test: any;*/
15
+ /*:: declare var expect: any;*/
16
+ test('should render Grid with dom server', function () {
17
+ var rendered = ReactDOMServer.renderToString(/*#__PURE__*/React.createElement(_Grid["default"], {
18
+ cellRenderer: function cellRenderer(_ref) {
19
+ var style = _ref.style,
20
+ key = _ref.key,
21
+ rowIndex = _ref.rowIndex,
22
+ columnIndex = _ref.columnIndex;
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ style: style,
25
+ key: key
26
+ }, rowIndex + ':' + columnIndex);
27
+ },
28
+ columnCount: 1000,
29
+ columnWidth: 20,
30
+ height: 500,
31
+ rowCount: 1000,
32
+ rowHeight: 20,
33
+ width: 500
34
+ }));
35
+ expect(rendered).toContain('0:0');
36
+ expect(rendered).toContain('24:24');
37
+ expect(rendered).not.toContain('25:25');
38
+ });
39
+ test('should support :scrollToColumn and :scrollToRow in server render', function () {
40
+ var rendered = ReactDOMServer.renderToString(/*#__PURE__*/React.createElement(_Grid["default"], {
41
+ cellRenderer: function cellRenderer(_ref2) {
42
+ var style = _ref2.style,
43
+ key = _ref2.key,
44
+ rowIndex = _ref2.rowIndex,
45
+ columnIndex = _ref2.columnIndex;
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ style: style,
48
+ key: key
49
+ }, rowIndex + ':' + columnIndex);
50
+ },
51
+ columnCount: 1000,
52
+ columnWidth: 20,
53
+ scrollToColumn: 250,
54
+ height: 500,
55
+ rowCount: 1000,
56
+ rowHeight: 20,
57
+ scrollToRow: 250,
58
+ width: 500
59
+ }));
60
+ expect(rendered).toContain('250:250');
61
+ expect(rendered).not.toContain('0:0');
62
+ });
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ var _accessibilityOverscanIndicesGetter = _interopRequireWildcard(require("./accessibilityOverscanIndicesGetter"));
5
+ 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); }
6
+ 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; }
7
+ describe('overscanIndicesGetter', function () {
8
+ function testHelper(_ref) {
9
+ var cellCount = _ref.cellCount,
10
+ startIndex = _ref.startIndex,
11
+ stopIndex = _ref.stopIndex,
12
+ overscanCellsCount = _ref.overscanCellsCount,
13
+ scrollDirection = _ref.scrollDirection;
14
+ return (0, _accessibilityOverscanIndicesGetter["default"])({
15
+ cellCount: cellCount,
16
+ overscanCellsCount: overscanCellsCount,
17
+ scrollDirection: scrollDirection,
18
+ startIndex: startIndex,
19
+ stopIndex: stopIndex
20
+ });
21
+ }
22
+ it('should still overscan by 1 (for keyboard accessibility) if :overscanCellsCount is 0', function () {
23
+ expect(testHelper({
24
+ cellCount: 100,
25
+ startIndex: 10,
26
+ stopIndex: 20,
27
+ overscanCellsCount: 0,
28
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
29
+ })).toEqual({
30
+ overscanStartIndex: 9,
31
+ overscanStopIndex: 21
32
+ });
33
+ expect(testHelper({
34
+ cellCount: 100,
35
+ startIndex: 10,
36
+ stopIndex: 20,
37
+ overscanCellsCount: 0,
38
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
39
+ })).toEqual({
40
+ overscanStartIndex: 9,
41
+ overscanStopIndex: 21
42
+ });
43
+ });
44
+ it('should overscan forward', function () {
45
+ expect(testHelper({
46
+ cellCount: 100,
47
+ startIndex: 20,
48
+ stopIndex: 30,
49
+ overscanCellsCount: 10,
50
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
51
+ })).toEqual({
52
+ overscanStartIndex: 19,
53
+ overscanStopIndex: 40
54
+ });
55
+ });
56
+ it('should overscan backward', function () {
57
+ expect(testHelper({
58
+ cellCount: 100,
59
+ startIndex: 20,
60
+ stopIndex: 30,
61
+ overscanCellsCount: 10,
62
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
63
+ })).toEqual({
64
+ overscanStartIndex: 10,
65
+ overscanStopIndex: 31
66
+ });
67
+ });
68
+ it('should not overscan beyond the start of the list', function () {
69
+ expect(testHelper({
70
+ cellCount: 100,
71
+ startIndex: 5,
72
+ stopIndex: 15,
73
+ overscanCellsCount: 10,
74
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
75
+ })).toEqual({
76
+ overscanStartIndex: 0,
77
+ overscanStopIndex: 16
78
+ });
79
+ });
80
+ it('should not overscan beyond the end of the list', function () {
81
+ expect(testHelper({
82
+ cellCount: 25,
83
+ startIndex: 10,
84
+ stopIndex: 20,
85
+ overscanCellsCount: 10,
86
+ scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
87
+ })).toEqual({
88
+ overscanStartIndex: 9,
89
+ overscanStopIndex: 24
90
+ });
91
+ });
92
+ });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;
7
+ exports["default"] = defaultOverscanIndicesGetter;
8
+ /*:: import type {OverscanIndicesGetterParams, OverscanIndices} from './types';*/
9
+ var SCROLL_DIRECTION_BACKWARD = exports.SCROLL_DIRECTION_BACKWARD = -1;
10
+ var SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_FORWARD = 1;
11
+ var SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
12
+ var SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_VERTICAL = 'vertical';
13
+
14
+ /**
15
+ * Calculates the number of cells to overscan before and after a specified range.
16
+ * This function ensures that overscanning doesn't exceed the available cells.
17
+ */
18
+
19
+ function defaultOverscanIndicesGetter(_ref /*:: */) /*: OverscanIndices*/{
20
+ var cellCount = _ref /*:: */.cellCount,
21
+ overscanCellsCount = _ref /*:: */.overscanCellsCount,
22
+ scrollDirection = _ref /*:: */.scrollDirection,
23
+ startIndex = _ref /*:: */.startIndex,
24
+ stopIndex = _ref /*:: */.stopIndex;
25
+ // Make sure we render at least 1 cell extra before and after (except near boundaries)
26
+ // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases
27
+ // For more info see issues #625
28
+ overscanCellsCount = Math.max(1, overscanCellsCount);
29
+ if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
30
+ return {
31
+ overscanStartIndex: Math.max(0, startIndex - 1),
32
+ overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
33
+ };
34
+ } else {
35
+ return {
36
+ overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
37
+ overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
38
+ };
39
+ }
40
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = defaultCellRangeRenderer;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ /*:: import type {CellRangeRendererParams} from './types';*/
10
+ /**
11
+ * Default implementation of cellRangeRenderer used by Grid.
12
+ * This renderer supports cell-caching while the user is scrolling.
13
+ */
14
+ function defaultCellRangeRenderer(_ref /*:: */) {
15
+ var cellCache = _ref /*:: */.cellCache,
16
+ cellRenderer = _ref /*:: */.cellRenderer,
17
+ columnSizeAndPositionManager = _ref /*:: */.columnSizeAndPositionManager,
18
+ columnStartIndex = _ref /*:: */.columnStartIndex,
19
+ columnStopIndex = _ref /*:: */.columnStopIndex,
20
+ deferredMeasurementCache = _ref /*:: */.deferredMeasurementCache,
21
+ horizontalOffsetAdjustment = _ref /*:: */.horizontalOffsetAdjustment,
22
+ isScrolling = _ref /*:: */.isScrolling,
23
+ isScrollingOptOut = _ref /*:: */.isScrollingOptOut,
24
+ parent = _ref /*:: */.parent,
25
+ rowSizeAndPositionManager = _ref /*:: */.rowSizeAndPositionManager,
26
+ rowStartIndex = _ref /*:: */.rowStartIndex,
27
+ rowStopIndex = _ref /*:: */.rowStopIndex,
28
+ styleCache = _ref /*:: */.styleCache,
29
+ verticalOffsetAdjustment = _ref /*:: */.verticalOffsetAdjustment,
30
+ visibleColumnIndices = _ref /*:: */.visibleColumnIndices,
31
+ visibleRowIndices = _ref /*:: */.visibleRowIndices;
32
+ var renderedCells = [];
33
+
34
+ // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
35
+ // User cannot scroll beyond these size limitations.
36
+ // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
37
+ // We should never cache styles for compressed offsets though as this can lead to bugs.
38
+ // See issue #576 for more.
39
+ var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();
40
+ var canCacheStyle = !isScrolling && !areOffsetsAdjusted;
41
+ for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
42
+ var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);
43
+ for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
44
+ var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);
45
+ var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
46
+ var key = "".concat(rowIndex, "-").concat(columnIndex);
47
+ var style = void 0;
48
+
49
+ // Cache style objects so shallow-compare doesn't re-render unnecessarily.
50
+ if (canCacheStyle && styleCache[key]) {
51
+ style = styleCache[key];
52
+ } else {
53
+ // In deferred mode, cells will be initially rendered before we know their size.
54
+ // Don't interfere with CellMeasurer's measurements by setting an invalid size.
55
+ if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {
56
+ // Position not-yet-measured cells at top/left 0,0,
57
+ // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
58
+ // Positioning them further to the right/bottom influences their measured size.
59
+ style = {
60
+ height: 'auto',
61
+ left: 0,
62
+ position: 'absolute',
63
+ top: 0,
64
+ width: 'auto'
65
+ };
66
+ } else {
67
+ style = {
68
+ height: rowDatum.size,
69
+ left: columnDatum.offset + horizontalOffsetAdjustment,
70
+ position: 'absolute',
71
+ top: rowDatum.offset + verticalOffsetAdjustment,
72
+ width: columnDatum.size
73
+ };
74
+ styleCache[key] = style;
75
+ }
76
+ }
77
+ var cellRendererParams = {
78
+ columnIndex: columnIndex,
79
+ isScrolling: isScrolling,
80
+ isVisible: isVisible,
81
+ key: key,
82
+ parent: parent,
83
+ rowIndex: rowIndex,
84
+ style: style
85
+ };
86
+ var renderedCell = void 0;
87
+
88
+ // Avoid re-creating cells while scrolling.
89
+ // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
90
+ // If a scroll is in progress- cache and reuse cells.
91
+ // This cache will be thrown away once scrolling completes.
92
+ // However if we are scaling scroll positions and sizes, we should also avoid caching.
93
+ // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
94
+ // For more info refer to issue #395
95
+ //
96
+ // If isScrollingOptOut is specified, we always cache cells.
97
+ // For more info refer to issue #1028
98
+ if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {
99
+ if (!cellCache[key]) {
100
+ cellCache[key] = cellRenderer(cellRendererParams);
101
+ }
102
+ renderedCell = cellCache[key];
103
+
104
+ // If the user is no longer scrolling, don't cache cells.
105
+ // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
106
+ } else {
107
+ renderedCell = cellRenderer(cellRendererParams);
108
+ }
109
+ if (renderedCell == null || renderedCell === false) {
110
+ continue;
111
+ }
112
+ if (process.env.NODE_ENV !== 'production') {
113
+ warnAboutMissingStyle(parent, renderedCell);
114
+ }
115
+ if (!renderedCell.props.role) {
116
+ renderedCell = /*#__PURE__*/_react["default"].cloneElement(renderedCell, {
117
+ role: 'gridcell'
118
+ });
119
+ }
120
+ renderedCells.push(renderedCell);
121
+ }
122
+ }
123
+ return renderedCells;
124
+ }
125
+ function warnAboutMissingStyle(parent, renderedCell) {
126
+ if (process.env.NODE_ENV !== 'production') {
127
+ if (renderedCell) {
128
+ // If the direct child is a CellMeasurer, then we should check its child
129
+ // See issue #611
130
+ if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {
131
+ renderedCell = renderedCell.props.children;
132
+ }
133
+ if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {
134
+ parent.__warnedAboutMissingStyle = true;
135
+ console.warn('Rendered cell should include style property for positioning.');
136
+ }
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ var _defaultOverscanIndicesGetter = _interopRequireWildcard(require("./defaultOverscanIndicesGetter"));
5
+ 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); }
6
+ 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; }
7
+ describe('overscanIndicesGetter', function () {
8
+ function testHelper(_ref) {
9
+ var cellCount = _ref.cellCount,
10
+ startIndex = _ref.startIndex,
11
+ stopIndex = _ref.stopIndex,
12
+ overscanCellsCount = _ref.overscanCellsCount,
13
+ scrollDirection = _ref.scrollDirection;
14
+ return (0, _defaultOverscanIndicesGetter["default"])({
15
+ cellCount: cellCount,
16
+ overscanCellsCount: overscanCellsCount,
17
+ scrollDirection: scrollDirection,
18
+ startIndex: startIndex,
19
+ stopIndex: stopIndex
20
+ });
21
+ }
22
+ it('should not overscan if :overscanCellsCount is 0', function () {
23
+ expect(testHelper({
24
+ cellCount: 100,
25
+ startIndex: 10,
26
+ stopIndex: 20,
27
+ overscanCellsCount: 0,
28
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
29
+ })).toEqual({
30
+ overscanStartIndex: 10,
31
+ overscanStopIndex: 20
32
+ });
33
+ expect(testHelper({
34
+ cellCount: 100,
35
+ startIndex: 10,
36
+ stopIndex: 20,
37
+ overscanCellsCount: 0,
38
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
39
+ })).toEqual({
40
+ overscanStartIndex: 10,
41
+ overscanStopIndex: 20
42
+ });
43
+ });
44
+ it('should overscan forward', function () {
45
+ expect(testHelper({
46
+ cellCount: 100,
47
+ startIndex: 20,
48
+ stopIndex: 30,
49
+ overscanCellsCount: 10,
50
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
51
+ })).toEqual({
52
+ overscanStartIndex: 20,
53
+ overscanStopIndex: 40
54
+ });
55
+ });
56
+ it('should overscan backward', function () {
57
+ expect(testHelper({
58
+ cellCount: 100,
59
+ startIndex: 20,
60
+ stopIndex: 30,
61
+ overscanCellsCount: 10,
62
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
63
+ })).toEqual({
64
+ overscanStartIndex: 10,
65
+ overscanStopIndex: 30
66
+ });
67
+ });
68
+ it('should not overscan beyond the start of the list', function () {
69
+ expect(testHelper({
70
+ cellCount: 100,
71
+ startIndex: 5,
72
+ stopIndex: 15,
73
+ overscanCellsCount: 10,
74
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
75
+ })).toEqual({
76
+ overscanStartIndex: 0,
77
+ overscanStopIndex: 15
78
+ });
79
+ });
80
+ it('should not overscan beyond the end of the list', function () {
81
+ expect(testHelper({
82
+ cellCount: 25,
83
+ startIndex: 10,
84
+ stopIndex: 20,
85
+ overscanCellsCount: 10,
86
+ scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
87
+ })).toEqual({
88
+ overscanStartIndex: 10,
89
+ overscanStopIndex: 24
90
+ });
91
+ });
92
+ });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;
7
+ exports["default"] = defaultOverscanIndicesGetter;
8
+ /*:: import type {OverscanIndicesGetterParams, OverscanIndices} from './types';*/
9
+ var SCROLL_DIRECTION_BACKWARD = exports.SCROLL_DIRECTION_BACKWARD = -1;
10
+ var SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_FORWARD = 1;
11
+ var SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
12
+ var SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_VERTICAL = 'vertical';
13
+
14
+ /**
15
+ * Calculates the number of cells to overscan before and after a specified range.
16
+ * This function ensures that overscanning doesn't exceed the available cells.
17
+ */
18
+
19
+ function defaultOverscanIndicesGetter(_ref /*:: */) /*: OverscanIndices*/{
20
+ var cellCount = _ref /*:: */.cellCount,
21
+ overscanCellsCount = _ref /*:: */.overscanCellsCount,
22
+ scrollDirection = _ref /*:: */.scrollDirection,
23
+ startIndex = _ref /*:: */.startIndex,
24
+ stopIndex = _ref /*:: */.stopIndex;
25
+ if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
26
+ return {
27
+ overscanStartIndex: Math.max(0, startIndex),
28
+ overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
29
+ };
30
+ } else {
31
+ return {
32
+ overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
33
+ overscanStopIndex: Math.min(cellCount - 1, stopIndex)
34
+ };
35
+ }
36
+ }
@@ -0,0 +1,40 @@
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, "Grid", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _Grid["default"];
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "accessibilityOverscanIndicesGetter", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _accessibilityOverscanIndicesGetter["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "default", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _Grid["default"];
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "defaultCellRangeRenderer", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _defaultCellRangeRenderer["default"];
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "defaultOverscanIndicesGetter", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _defaultOverscanIndicesGetter["default"];
35
+ }
36
+ });
37
+ var _Grid = _interopRequireDefault(require("./Grid"));
38
+ var _accessibilityOverscanIndicesGetter = _interopRequireDefault(require("./accessibilityOverscanIndicesGetter"));
39
+ var _defaultCellRangeRenderer = _interopRequireDefault(require("./defaultCellRangeRenderer"));
40
+ var _defaultOverscanIndicesGetter = _interopRequireDefault(require("./defaultOverscanIndicesGetter"));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var React = _interopRequireWildcard(require("react"));
6
+ var _ScalingCellSizeAndPositionManager = _interopRequireDefault(require("./utils/ScalingCellSizeAndPositionManager"));
7
+ 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); }
8
+ 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; }