@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,579 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import * as React from 'react';
4
+ import { findDOMNode } from 'react-dom';
5
+ import { render } from '../TestUtils';
6
+ import MultiGrid from './MultiGrid';
7
+ import { CellMeasurerCache } from '../CellMeasurer';
8
+
9
+ // These tests only focus on what MultiGrid does specifically.
10
+ // The inner Grid component is tested in depth elsewhere.
11
+ describe('MultiGrid', function () {
12
+ function defaultCellRenderer(_ref) {
13
+ var columnIndex = _ref.columnIndex,
14
+ key = _ref.key,
15
+ rowIndex = _ref.rowIndex,
16
+ style = _ref.style;
17
+ return /*#__PURE__*/React.createElement("div", {
18
+ className: "gridItem",
19
+ key: key,
20
+ style: style
21
+ }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
22
+ }
23
+ function getMarkup() {
24
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
25
+ return /*#__PURE__*/React.createElement(MultiGrid, _extends({
26
+ cellRenderer: defaultCellRenderer,
27
+ columnCount: 50,
28
+ columnWidth: 50,
29
+ fixedColumnCount: 2,
30
+ fixedRowCount: 1,
31
+ height: 300,
32
+ overscanColumnCount: 0,
33
+ overscanRowCount: 0,
34
+ autoHeight: false,
35
+ rowHeight: 20,
36
+ rowCount: 100,
37
+ width: 400
38
+ }, props));
39
+ }
40
+ describe('fixed columns and rows', function () {
41
+ it('should render 4 Grids when configured for fixed columns and rows', function () {
42
+ var rendered = findDOMNode(render(getMarkup({
43
+ fixedColumnCount: 1,
44
+ fixedRowCount: 1
45
+ })));
46
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
47
+ expect(grids.length).toEqual(4);
48
+ var _grids = _slicedToArray(grids, 4),
49
+ topLeft = _grids[0],
50
+ topRight = _grids[1],
51
+ bottomLeft = _grids[2],
52
+ bottomRight = _grids[3];
53
+ expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
54
+ expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
55
+ expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
56
+ expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
57
+ expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
58
+ expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
59
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
60
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
61
+ });
62
+ it('should render 2 Grids when configured for fixed columns only', function () {
63
+ var rendered = findDOMNode(render(getMarkup({
64
+ fixedColumnCount: 1,
65
+ fixedRowCount: 0
66
+ })));
67
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
68
+ expect(grids.length).toEqual(2);
69
+ var _grids2 = _slicedToArray(grids, 2),
70
+ bottomLeft = _grids2[0],
71
+ bottomRight = _grids2[1];
72
+ expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
73
+ expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
74
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
75
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
76
+ });
77
+ it('should render 2 Grids when configured for fixed rows only', function () {
78
+ var rendered = findDOMNode(render(getMarkup({
79
+ fixedColumnCount: 0,
80
+ fixedRowCount: 1
81
+ })));
82
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
83
+ expect(grids.length).toEqual(2);
84
+ var _grids3 = _slicedToArray(grids, 2),
85
+ topRight = _grids3[0],
86
+ bottomRight = _grids3[1];
87
+ expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
88
+ expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
89
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
90
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
91
+ });
92
+ it('should render 1 Grid when configured for neither fixed columns and rows', function () {
93
+ var rendered = findDOMNode(render(getMarkup({
94
+ fixedColumnCount: 0,
95
+ fixedRowCount: 0
96
+ })));
97
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
98
+ expect(grids.length).toEqual(1);
99
+ var _grids4 = _slicedToArray(grids, 1),
100
+ bottomRight = _grids4[0];
101
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
102
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
103
+ });
104
+ it('should adjust the number of Grids when fixed column or row counts change', function () {
105
+ var rendered = findDOMNode(render(getMarkup({
106
+ fixedColumnCount: 2,
107
+ fixedRowCount: 1
108
+ })));
109
+ expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(4);
110
+ rendered = findDOMNode(render(getMarkup({
111
+ fixedColumnCount: 0,
112
+ fixedRowCount: 0
113
+ })));
114
+ expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(1);
115
+ rendered = findDOMNode(render(getMarkup({
116
+ fixedColumnCount: 0,
117
+ fixedRowCount: 2
118
+ })));
119
+ expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(2);
120
+ });
121
+ it('should allow scrolling of fixed Grids when configured for fixed columns and rows with scroll interaction', function () {
122
+ var rendered = findDOMNode(render(getMarkup({
123
+ enableFixedColumnScroll: true,
124
+ enableFixedRowScroll: true,
125
+ fixedColumnCount: 1,
126
+ fixedRowCount: 1
127
+ })));
128
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
129
+ expect(grids.length).toEqual(4);
130
+ var _grids5 = _slicedToArray(grids, 4),
131
+ topLeft = _grids5[0],
132
+ topRight = _grids5[1],
133
+ bottomLeft = _grids5[2],
134
+ bottomRight = _grids5[3];
135
+ expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
136
+ expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
137
+ expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
138
+ expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
139
+ expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
140
+ expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
141
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
142
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
143
+ });
144
+ });
145
+ describe('hideTopRightGridScrollbar, hideBottomLeftGridScrollbar should hide the scrollbars', function () {
146
+ function getScrollbarSize20() {
147
+ return 20;
148
+ }
149
+ it('should add scroll wrappers to hide scroll bar when configured for fixed columns and rows with scroll interaction', function () {
150
+ var rendered = findDOMNode(render(getMarkup({
151
+ enableFixedColumnScroll: true,
152
+ enableFixedRowScroll: true,
153
+ fixedColumnCount: 1,
154
+ fixedRowCount: 1,
155
+ hideTopRightGridScrollbar: true,
156
+ hideBottomLeftGridScrollbar: true,
157
+ getScrollbarSize: getScrollbarSize20
158
+ })));
159
+ var wrappers = rendered.querySelectorAll('.TopRightGrid_ScrollWrapper');
160
+ expect(wrappers.length).toEqual(1);
161
+ var _wrappers = wrappers,
162
+ _wrappers2 = _slicedToArray(_wrappers, 1),
163
+ topRightWrapper = _wrappers2[0];
164
+ wrappers = rendered.querySelectorAll('.BottomLeftGrid_ScrollWrapper');
165
+ expect(wrappers.length).toEqual(1);
166
+ var _wrappers3 = wrappers,
167
+ _wrappers4 = _slicedToArray(_wrappers3, 1),
168
+ bottomLeftWrapper = _wrappers4[0];
169
+ expect(topRightWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
170
+ expect(topRightWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
171
+ expect(bottomLeftWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
172
+ expect(bottomLeftWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
173
+ expect(topRightWrapper.style.getPropertyValue('height')).toEqual('20px');
174
+ expect(bottomLeftWrapper.style.getPropertyValue('height')).toEqual('280px');
175
+ expect(topRightWrapper.style.getPropertyValue('width')).toEqual('350px');
176
+ expect(bottomLeftWrapper.style.getPropertyValue('width')).toEqual('50px');
177
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
178
+ expect(grids.length).toEqual(4);
179
+ var _grids6 = _slicedToArray(grids, 4),
180
+ topLeft = _grids6[0],
181
+ topRight = _grids6[1],
182
+ bottomLeft = _grids6[2],
183
+ bottomRight = _grids6[3];
184
+ expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
185
+ expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
186
+ expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
187
+ expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
188
+ expect(topRight.style.getPropertyValue('height')).toEqual('40px');
189
+ expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
190
+ expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
191
+ expect(bottomLeft.style.getPropertyValue('width')).toEqual('70px');
192
+ expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
193
+ expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
194
+ });
195
+ });
196
+ describe('#recomputeGridSize', function () {
197
+ it('should clear calculated cached styles in recomputeGridSize', function () {
198
+ var fixedRowHeight = 75;
199
+ var fixedColumnWidth = 100;
200
+ function variableRowHeight(_ref2) {
201
+ var index = _ref2.index;
202
+ if (index === 0) {
203
+ return fixedRowHeight;
204
+ }
205
+ return 20;
206
+ }
207
+ function variableColumnWidth(_ref3) {
208
+ var index = _ref3.index;
209
+ if (index === 0) {
210
+ return fixedColumnWidth;
211
+ }
212
+ return 50;
213
+ }
214
+ var multiGrid;
215
+ var rendered = findDOMNode(render(getMarkup({
216
+ fixedColumnCount: 1,
217
+ fixedRowCount: 1,
218
+ rowHeight: variableRowHeight,
219
+ columnWidth: variableColumnWidth,
220
+ ref: function ref(_ref4) {
221
+ multiGrid = _ref4;
222
+ }
223
+ })));
224
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
225
+ expect(grids.length).toEqual(4);
226
+ var _grids7 = _slicedToArray(grids, 4),
227
+ topLeft = _grids7[0],
228
+ topRight = _grids7[1],
229
+ bottomLeft = _grids7[2],
230
+ bottomRight = _grids7[3];
231
+ expect(topLeft.style.getPropertyValue('height')).toEqual('75px');
232
+ expect(topRight.style.getPropertyValue('height')).toEqual('75px');
233
+ expect(bottomLeft.style.getPropertyValue('height')).toEqual('225px');
234
+ expect(bottomRight.style.getPropertyValue('height')).toEqual('225px');
235
+ expect(topLeft.style.getPropertyValue('width')).toEqual('100px');
236
+ expect(topRight.style.getPropertyValue('width')).toEqual('300px');
237
+ expect(bottomLeft.style.getPropertyValue('width')).toEqual('100px');
238
+ expect(bottomRight.style.getPropertyValue('width')).toEqual('300px');
239
+ expect(multiGrid._topGridHeight).toEqual(75);
240
+ expect(multiGrid._leftGridWidth).toEqual(100);
241
+ fixedRowHeight = 125;
242
+ fixedColumnWidth = 75;
243
+ multiGrid.recomputeGridSize();
244
+ expect(multiGrid._topGridHeight).toEqual(125);
245
+ expect(multiGrid._leftGridWidth).toEqual(75);
246
+ multiGrid.forceUpdate();
247
+ var gridsAfter = rendered.querySelectorAll('.ReactVirtualized__Grid');
248
+ expect(gridsAfter.length).toEqual(4);
249
+ var _gridsAfter = _slicedToArray(gridsAfter, 4),
250
+ topLeftAfter = _gridsAfter[0],
251
+ topRightAfter = _gridsAfter[1],
252
+ bottomLeftAfter = _gridsAfter[2],
253
+ bottomRightAfter = _gridsAfter[3];
254
+ expect(topLeftAfter.style.getPropertyValue('height')).toEqual('125px');
255
+ expect(topRightAfter.style.getPropertyValue('height')).toEqual('125px');
256
+ expect(bottomLeftAfter.style.getPropertyValue('height')).toEqual('175px');
257
+ expect(bottomRightAfter.style.getPropertyValue('height')).toEqual('175px');
258
+ expect(topLeftAfter.style.getPropertyValue('width')).toEqual('75px');
259
+ expect(topRightAfter.style.getPropertyValue('width')).toEqual('325px');
260
+ expect(bottomLeftAfter.style.getPropertyValue('width')).toEqual('75px');
261
+ expect(bottomRightAfter.style.getPropertyValue('width')).toEqual('325px');
262
+ });
263
+ });
264
+ describe('scrollToColumn and scrollToRow', function () {
265
+ it('should adjust :scrollLeft for the main Grid when scrollToColumn is used', function () {
266
+ var rendered = findDOMNode(render(getMarkup({
267
+ columnWidth: 50,
268
+ fixedColumnCount: 2,
269
+ scrollToAlignment: 'start',
270
+ scrollToColumn: 19
271
+ })));
272
+ // Bottom-right Grid is the last Grid
273
+ var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3];
274
+ // 20th column, less 2 for the fixed-column Grid, 50px column width
275
+ expect(grid.scrollLeft).toEqual(850);
276
+ });
277
+ it('should adjust :scrollTop for the main Grid when scrollToRow is used', function () {
278
+ var rendered = findDOMNode(render(getMarkup({
279
+ fixedRowCount: 1,
280
+ rowHeight: 50,
281
+ scrollToAlignment: 'start',
282
+ scrollToRow: 19
283
+ })));
284
+ // Bottom-right Grid is the last Grid
285
+ var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3];
286
+ // 20th row, less 1 for the fixed-row Grid, 50px row width
287
+ expect(grid.scrollTop).toEqual(900);
288
+ });
289
+ });
290
+ describe('#forceUpdateGrids', function () {
291
+ it('should call forceUpdate() on inner Grids', function () {
292
+ var cellRenderer = jest.fn();
293
+ cellRenderer.mockImplementation(function (_ref5) {
294
+ var key = _ref5.key;
295
+ return /*#__PURE__*/React.createElement("div", {
296
+ key: key,
297
+ style: {}
298
+ });
299
+ });
300
+ var rendered = render(getMarkup({
301
+ cellRenderer: cellRenderer,
302
+ columnCount: 2,
303
+ fixedColumnCount: 1,
304
+ fixedRowCount: 1,
305
+ rowCount: 2
306
+ }));
307
+ expect(cellRenderer.mock.calls).toHaveLength(4);
308
+ cellRenderer.mockReset();
309
+ rendered.forceUpdateGrids();
310
+ expect(cellRenderer.mock.calls).toHaveLength(4);
311
+ });
312
+ });
313
+ describe('#invalidateCellSizeAfterRender', function () {
314
+ it('should call invalidateCellSizeAfterRender() on inner Grids', function () {
315
+ var cellRenderer = jest.fn();
316
+ cellRenderer.mockImplementation(function (_ref6) {
317
+ var key = _ref6.key;
318
+ return /*#__PURE__*/React.createElement("div", {
319
+ key: key,
320
+ style: {}
321
+ });
322
+ });
323
+ var rendered = render(getMarkup({
324
+ cellRenderer: cellRenderer,
325
+ columnCount: 2,
326
+ fixedColumnCount: 1,
327
+ fixedRowCount: 1,
328
+ rowCount: 2
329
+ }));
330
+ cellRenderer.mockReset();
331
+ rendered.invalidateCellSizeAfterRender({
332
+ columnIndex: 0,
333
+ rowIndex: 0
334
+ });
335
+ rendered.forceUpdate();
336
+ expect(cellRenderer.mock.calls).toHaveLength(4);
337
+ });
338
+ it('should specify itself as the :parent for CellMeasurer rendered cells', function () {
339
+ // HACK For some reason, using Jest mock broke here
340
+ var savedParent;
341
+ function cellRenderer(_ref7) {
342
+ var key = _ref7.key,
343
+ parent = _ref7.parent;
344
+ savedParent = parent;
345
+ return /*#__PURE__*/React.createElement("div", {
346
+ key: key,
347
+ style: {}
348
+ });
349
+ }
350
+ var rendered = render(getMarkup({
351
+ cellRenderer: cellRenderer,
352
+ columnCount: 2,
353
+ fixedColumnCount: 1,
354
+ fixedRowCount: 1,
355
+ rowCount: 2
356
+ }));
357
+ expect(savedParent).toBe(rendered);
358
+ });
359
+ });
360
+ describe('styles', function () {
361
+ it('should support custom style for the outer MultiGrid wrapper element', function () {
362
+ var rendered = findDOMNode(render(getMarkup({
363
+ style: {
364
+ backgroundColor: 'black'
365
+ }
366
+ })));
367
+ expect(rendered.style.backgroundColor).toEqual('black');
368
+ });
369
+ it('should support custom styles for each Grid', function () {
370
+ var rendered = findDOMNode(render(getMarkup({
371
+ fixedColumnCount: 2,
372
+ fixedRowCount: 1,
373
+ styleBottomLeftGrid: {
374
+ backgroundColor: 'green'
375
+ },
376
+ styleBottomRightGrid: {
377
+ backgroundColor: 'red'
378
+ },
379
+ styleTopLeftGrid: {
380
+ backgroundColor: 'blue'
381
+ },
382
+ styleTopRightGrid: {
383
+ backgroundColor: 'purple'
384
+ }
385
+ })));
386
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
387
+ var topLeftGrid = grids[0];
388
+ var topRightGrid = grids[1];
389
+ var bottomLeftGrid = grids[2];
390
+ var bottomRightGrid = grids[3];
391
+ expect(topLeftGrid.style.backgroundColor).toEqual('blue');
392
+ expect(topRightGrid.style.backgroundColor).toEqual('purple');
393
+ expect(bottomLeftGrid.style.backgroundColor).toEqual('green');
394
+ expect(bottomRightGrid.style.backgroundColor).toEqual('red');
395
+ });
396
+ });
397
+ describe('scrollTop and scrollLeft', function () {
398
+ it('should adjust :scrollLeft for top-right and main grids when scrollLeft is used', function () {
399
+ var rendered = findDOMNode(render(getMarkup({
400
+ columnWidth: 50,
401
+ fixedColumnCount: 2,
402
+ scrollLeft: 850
403
+ })));
404
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
405
+ var topRightGrid = grids[1];
406
+ var bottomRightGrid = grids[3];
407
+ expect(topRightGrid.scrollLeft).toEqual(850);
408
+ expect(bottomRightGrid.scrollLeft).toEqual(850);
409
+ });
410
+ it('should adjust :scrollTop for bottom-left and main grids when scrollTop is used', function () {
411
+ var rendered = findDOMNode(render(getMarkup({
412
+ columnWidth: 50,
413
+ fixedColumnCount: 2,
414
+ scrollTop: 500
415
+ })));
416
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
417
+ var bottomLeftGrid = grids[2];
418
+ var bottomRightGrid = grids[3];
419
+ expect(bottomLeftGrid.scrollTop).toEqual(500);
420
+ expect(bottomRightGrid.scrollTop).toEqual(500);
421
+ });
422
+ it('should adjust :scrollTop and :scrollLeft when scrollTop and scrollLeft change', function () {
423
+ render(getMarkup());
424
+ var rendered = findDOMNode(render(getMarkup({
425
+ scrollTop: 750,
426
+ scrollLeft: 900
427
+ })));
428
+ var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
429
+ var topRightGrid = grids[1];
430
+ var bottomLeftGrid = grids[2];
431
+ var bottomRightGrid = grids[3];
432
+ expect(topRightGrid.scrollLeft).toEqual(900);
433
+ expect(bottomRightGrid.scrollLeft).toEqual(900);
434
+ expect(bottomLeftGrid.scrollTop).toEqual(750);
435
+ expect(bottomRightGrid.scrollTop).toEqual(750);
436
+ });
437
+ it('should not crash when decreasing :rowCount', function () {
438
+ render(getMarkup());
439
+ var updated = render(getMarkup({
440
+ rowCount: 2
441
+ }));
442
+ expect(updated.props.rowCount).toEqual(2);
443
+ });
444
+ it('should not crash when decreasing :columnCount', function () {
445
+ render(getMarkup());
446
+ var updated = render(getMarkup({
447
+ columnCount: 3
448
+ }));
449
+ expect(updated.props.columnCount).toEqual(3);
450
+ });
451
+ });
452
+ describe('deferredMeasurementCache', function () {
453
+ function getDeferredMeasurementCache() {
454
+ var deferredMeasurementCache = new CellMeasurerCache({
455
+ fixedHeight: true,
456
+ fixedWidth: true
457
+ });
458
+ deferredMeasurementCache._columnIndices = {};
459
+ deferredMeasurementCache._rowIndices = {};
460
+ deferredMeasurementCache.has = function (rowIndex, columnIndex) {
461
+ deferredMeasurementCache._columnIndices[columnIndex] = columnIndex;
462
+ deferredMeasurementCache._rowIndices[rowIndex] = rowIndex;
463
+ return true;
464
+ };
465
+ return deferredMeasurementCache;
466
+ }
467
+ it('should wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is > 0', function () {
468
+ var deferredMeasurementCache = getDeferredMeasurementCache();
469
+ render(getMarkup({
470
+ deferredMeasurementCache: deferredMeasurementCache,
471
+ columnCount: 3,
472
+ fixedColumnCount: 1,
473
+ fixedRowCount: 0,
474
+ rowCount: 1
475
+ }));
476
+ expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1', '2']);
477
+ });
478
+ it('should not wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is 0', function () {
479
+ var deferredMeasurementCache = getDeferredMeasurementCache();
480
+ render(getMarkup({
481
+ deferredMeasurementCache: deferredMeasurementCache,
482
+ columnCount: 2,
483
+ fixedColumnCount: 0,
484
+ fixedRowCount: 0,
485
+ rowCount: 1
486
+ }));
487
+ expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1']);
488
+ });
489
+ it('should wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is > 0', function () {
490
+ var deferredMeasurementCache = getDeferredMeasurementCache();
491
+ render(getMarkup({
492
+ deferredMeasurementCache: deferredMeasurementCache,
493
+ columnCount: 1,
494
+ fixedColumnCount: 0,
495
+ fixedRowCount: 1,
496
+ rowCount: 3
497
+ }));
498
+ expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1', '2']);
499
+ });
500
+ it('should not wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is 0', function () {
501
+ var deferredMeasurementCache = getDeferredMeasurementCache();
502
+ render(getMarkup({
503
+ deferredMeasurementCache: deferredMeasurementCache,
504
+ columnCount: 1,
505
+ fixedColumnCount: 0,
506
+ fixedRowCount: 0,
507
+ rowCount: 2
508
+ }));
509
+ expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1']);
510
+ });
511
+ });
512
+ describe('onScrollbarPresenceChange', function () {
513
+ function getScrollbarSize20() {
514
+ return 20;
515
+ }
516
+ it('should not trigger on-mount if scrollbars are hidden', function () {
517
+ var onScrollbarPresenceChange = jest.fn();
518
+ render(getMarkup({
519
+ columnCount: 1,
520
+ getScrollbarSize: getScrollbarSize20,
521
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
522
+ rowCount: 1
523
+ }));
524
+ expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
525
+ });
526
+ it('should trigger on-mount if scrollbars are visible', function () {
527
+ var onScrollbarPresenceChange = jest.fn();
528
+ render(getMarkup({
529
+ columnCount: 100,
530
+ getScrollbarSize: getScrollbarSize20,
531
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
532
+ rowCount: 100
533
+ }));
534
+ expect(onScrollbarPresenceChange).toHaveBeenCalled();
535
+ var args = onScrollbarPresenceChange.mock.calls[0][0];
536
+ expect(args.horizontal).toBe(true);
537
+ expect(args.size).toBe(getScrollbarSize20());
538
+ expect(args.vertical).toBe(true);
539
+ });
540
+ it('should trigger on-update if scrollbar visibility has changed', function () {
541
+ var onScrollbarPresenceChange = jest.fn();
542
+ render(getMarkup({
543
+ columnCount: 1,
544
+ getScrollbarSize: getScrollbarSize20,
545
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
546
+ rowCount: 1
547
+ }));
548
+ expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
549
+ render(getMarkup({
550
+ columnCount: 100,
551
+ getScrollbarSize: getScrollbarSize20,
552
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
553
+ rowCount: 100
554
+ }));
555
+ expect(onScrollbarPresenceChange).toHaveBeenCalled();
556
+ var args = onScrollbarPresenceChange.mock.calls[0][0];
557
+ expect(args.horizontal).toBe(true);
558
+ expect(args.size).toBe(getScrollbarSize20());
559
+ expect(args.vertical).toBe(true);
560
+ });
561
+ it('should not trigger on-update if scrollbar visibility does not change', function () {
562
+ var onScrollbarPresenceChange = jest.fn();
563
+ render(getMarkup({
564
+ columnCount: 1,
565
+ getScrollbarSize: getScrollbarSize20,
566
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
567
+ rowCount: 1
568
+ }));
569
+ expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
570
+ render(getMarkup({
571
+ columnCount: 2,
572
+ getScrollbarSize: getScrollbarSize20,
573
+ onScrollbarPresenceChange: onScrollbarPresenceChange,
574
+ rowCount: 2
575
+ }));
576
+ expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
577
+ });
578
+ });
579
+ });