@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,298 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ /**
7
+ * @jest-environment jest-environment-puppeteer
8
+ */
9
+
10
+ var bootstrap = /*#__PURE__*/function () {
11
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var page, scripts, _i, _scripts, path;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _context.next = 2;
17
+ return global.browser.newPage();
18
+ case 2:
19
+ page = _context.sent;
20
+ scripts = ['./node_modules/react/umd/react.development.js', './node_modules/react-dom/umd/react-dom.development.js', './dist/umd/react-virtualized.js'];
21
+ _i = 0, _scripts = scripts;
22
+ case 5:
23
+ if (!(_i < _scripts.length)) {
24
+ _context.next = 12;
25
+ break;
26
+ }
27
+ path = _scripts[_i];
28
+ _context.next = 9;
29
+ return page.addScriptTag({
30
+ path: path
31
+ });
32
+ case 9:
33
+ _i++;
34
+ _context.next = 5;
35
+ break;
36
+ case 12:
37
+ return _context.abrupt("return", page);
38
+ case 13:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }, _callee);
43
+ }));
44
+ return function bootstrap() {
45
+ return _ref.apply(this, arguments);
46
+ };
47
+ }();
48
+ var renderWindowScroller = function renderWindowScroller(_ref2) {
49
+ var scrollElement = _ref2.scrollElement;
50
+ var render = window.ReactDOM.render;
51
+ var createElement = window.React.createElement;
52
+ var WindowScroller = window.ReactVirtualized.WindowScroller;
53
+ var container = document.createElement('div');
54
+ container.id = 'container';
55
+ container.style.margin = '100px';
56
+ container.style.padding = '50px';
57
+ document.body.appendChild(container);
58
+ document.body.style.margin = 0;
59
+ if (scrollElement === 'container') {
60
+ container.style.width = '100%';
61
+ container.style.height = '100%';
62
+ container.style.overflow = 'auto';
63
+ }
64
+ render(createElement(WindowScroller, {
65
+ scrollElement: scrollElement === 'container' ? container : window,
66
+ onScroll: window.scrollFn,
67
+ onResize: window.resizeFn
68
+ }, function () {
69
+ return createElement('div', {
70
+ style: {
71
+ width: 2000,
72
+ height: 3000
73
+ }
74
+ });
75
+ }), container);
76
+ };
77
+ var delay = function delay(time) {
78
+ return new Promise(function (resolve) {
79
+ return setTimeout(resolve, time);
80
+ });
81
+ };
82
+ test('save position after resize and then scroll in window', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
83
+ var page, scrollFn, resizeFn;
84
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
85
+ while (1) switch (_context2.prev = _context2.next) {
86
+ case 0:
87
+ _context2.next = 2;
88
+ return bootstrap();
89
+ case 2:
90
+ page = _context2.sent;
91
+ scrollFn = jest.fn();
92
+ resizeFn = jest.fn();
93
+ _context2.next = 7;
94
+ return page.exposeFunction('scrollFn', scrollFn);
95
+ case 7:
96
+ _context2.next = 9;
97
+ return page.exposeFunction('resizeFn', resizeFn);
98
+ case 9:
99
+ _context2.next = 11;
100
+ return page.setViewport({
101
+ width: 400,
102
+ height: 600
103
+ });
104
+ case 11:
105
+ _context2.next = 13;
106
+ return page.evaluate(renderWindowScroller, {
107
+ scrollElement: 'window'
108
+ });
109
+ case 13:
110
+ _context2.next = 15;
111
+ return page.evaluate(function () {
112
+ return window.scrollTo(610, 830);
113
+ });
114
+ case 15:
115
+ _context2.next = 17;
116
+ return delay(100);
117
+ case 17:
118
+ _context2.next = 19;
119
+ return page.setViewport({
120
+ width: 300,
121
+ height: 500
122
+ });
123
+ case 19:
124
+ _context2.next = 21;
125
+ return delay(100);
126
+ case 21:
127
+ _context2.next = 23;
128
+ return page.evaluate(function () {
129
+ return window.scrollTo(620, 840);
130
+ });
131
+ case 23:
132
+ _context2.next = 25;
133
+ return delay(100);
134
+ case 25:
135
+ _context2.next = 27;
136
+ return page.close();
137
+ case 27:
138
+ expect(scrollFn.mock.calls).toEqual([[{
139
+ scrollLeft: 610 - 150,
140
+ scrollTop: 830 - 150
141
+ }], [{
142
+ scrollLeft: 620 - 150,
143
+ scrollTop: 840 - 150
144
+ }]]);
145
+ expect(resizeFn.mock.calls).toEqual([[{
146
+ width: 300,
147
+ height: 500
148
+ }]]);
149
+ case 29:
150
+ case "end":
151
+ return _context2.stop();
152
+ }
153
+ }, _callee2);
154
+ })));
155
+ test('save position after resize and then scroll in container', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
156
+ var page, scrollFn, resizeFn;
157
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
158
+ while (1) switch (_context3.prev = _context3.next) {
159
+ case 0:
160
+ _context3.next = 2;
161
+ return bootstrap();
162
+ case 2:
163
+ page = _context3.sent;
164
+ scrollFn = jest.fn();
165
+ resizeFn = jest.fn();
166
+ _context3.next = 7;
167
+ return page.exposeFunction('scrollFn', scrollFn);
168
+ case 7:
169
+ _context3.next = 9;
170
+ return page.exposeFunction('resizeFn', resizeFn);
171
+ case 9:
172
+ _context3.next = 11;
173
+ return page.setViewport({
174
+ width: 400,
175
+ height: 600
176
+ });
177
+ case 11:
178
+ _context3.next = 13;
179
+ return page.evaluate(renderWindowScroller, {
180
+ scrollElement: 'container'
181
+ });
182
+ case 13:
183
+ _context3.next = 15;
184
+ return page.$eval('#container', function (el) {
185
+ return el.scrollTo(610, 830);
186
+ });
187
+ case 15:
188
+ _context3.next = 17;
189
+ return delay(100);
190
+ case 17:
191
+ _context3.next = 19;
192
+ return page.setViewport({
193
+ width: 300,
194
+ height: 500
195
+ });
196
+ case 19:
197
+ _context3.next = 21;
198
+ return delay(100);
199
+ case 21:
200
+ _context3.next = 23;
201
+ return page.$eval('#container', function (el) {
202
+ return el.scrollTo(620, 840);
203
+ });
204
+ case 23:
205
+ _context3.next = 25;
206
+ return delay(100);
207
+ case 25:
208
+ _context3.next = 27;
209
+ return page.close();
210
+ case 27:
211
+ expect(scrollFn.mock.calls).toEqual([[{
212
+ scrollLeft: 610 - 50,
213
+ scrollTop: 830 - 50
214
+ }], [{
215
+ scrollLeft: 620 - 50,
216
+ scrollTop: 840 - 50
217
+ }]]);
218
+ expect(resizeFn.mock.calls).toEqual([[{
219
+ width: 500,
220
+ height: 700
221
+ }], [{
222
+ width: 400,
223
+ height: 600
224
+ }]]);
225
+ case 29:
226
+ case "end":
227
+ return _context3.stop();
228
+ }
229
+ }, _callee3);
230
+ })));
231
+ test('react on container resize without window changing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
232
+ var page, resizeFn;
233
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
234
+ while (1) switch (_context4.prev = _context4.next) {
235
+ case 0:
236
+ _context4.next = 2;
237
+ return bootstrap();
238
+ case 2:
239
+ page = _context4.sent;
240
+ resizeFn = jest.fn();
241
+ _context4.next = 6;
242
+ return page.exposeFunction('resizeFn', resizeFn);
243
+ case 6:
244
+ _context4.next = 8;
245
+ return page.evaluate(function () {
246
+ var render = window.ReactDOM.render;
247
+ var createElement = window.React.createElement;
248
+ var WindowScroller = window.ReactVirtualized.WindowScroller;
249
+ var wrapper = document.createElement('div');
250
+ wrapper.id = 'wrapper';
251
+ Object.assign(wrapper.style, {
252
+ width: '1000px',
253
+ height: '800px',
254
+ display: 'flex'
255
+ });
256
+ var container = document.createElement('div');
257
+ Object.assign(container.style, {
258
+ flex: '1'
259
+ });
260
+ wrapper.appendChild(container);
261
+ document.body.style.margin = 0;
262
+ document.body.appendChild(wrapper);
263
+ render(createElement(WindowScroller, {
264
+ scrollElement: container,
265
+ onResize: window.resizeFn
266
+ }, function () {
267
+ return null;
268
+ }), container);
269
+ });
270
+ case 8:
271
+ _context4.next = 10;
272
+ return delay(100);
273
+ case 10:
274
+ _context4.next = 12;
275
+ return page.$eval('#wrapper', function (el) {
276
+ el.style.width = '500px';
277
+ el.style.height = '700px';
278
+ });
279
+ case 12:
280
+ _context4.next = 14;
281
+ return delay(100);
282
+ case 14:
283
+ _context4.next = 16;
284
+ return page.close();
285
+ case 16:
286
+ expect(resizeFn.mock.calls).toEqual([[{
287
+ width: 1000,
288
+ height: 800
289
+ }], [{
290
+ width: 500,
291
+ height: 700
292
+ }]]);
293
+ case 17:
294
+ case "end":
295
+ return _context4.stop();
296
+ }
297
+ }, _callee4);
298
+ })));
@@ -0,0 +1,167 @@
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 _clsx2 = _interopRequireDefault(require("clsx"));
16
+ var _immutable = _interopRequireDefault(require("immutable"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var React = _interopRequireWildcard(require("react"));
19
+ var _ContentBox = require("../demo/ContentBox");
20
+ var _LabeledInput = require("../demo/LabeledInput");
21
+ var _WindowScroller = _interopRequireDefault(require("./WindowScroller"));
22
+ var _List = _interopRequireDefault(require("../List"));
23
+ var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));
24
+ var _WindowScrollerExample2 = _interopRequireDefault(require("./WindowScroller.example.css"));
25
+ 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); }
26
+ 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; }
27
+ 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)); }
28
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
+ /*:: type State = {
30
+ scrollToIndex: number,
31
+ showHeaderText: boolean,
32
+ };*/
33
+ var WindowScrollerExample = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
34
+ function WindowScrollerExample() {
35
+ var _this;
36
+ (0, _classCallCheck2["default"])(this, WindowScrollerExample);
37
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
38
+ args[_key] = arguments[_key];
39
+ }
40
+ _this = _callSuper(this, WindowScrollerExample, [].concat(args));
41
+ (0, _defineProperty2["default"])(_this, "state", {
42
+ scrollToIndex: -1,
43
+ showHeaderText: true
44
+ });
45
+ (0, _defineProperty2["default"])(_this, "_windowScroller", void 0);
46
+ (0, _defineProperty2["default"])(_this, "_hideHeader", function () {
47
+ var showHeaderText = _this.state.showHeaderText;
48
+ _this.setState({
49
+ showHeaderText: !showHeaderText
50
+ }, function () {
51
+ if (_this._windowScroller) {
52
+ _this._windowScroller.updatePosition();
53
+ }
54
+ });
55
+ });
56
+ (0, _defineProperty2["default"])(_this, "_rowRenderer", function (_ref) {
57
+ var index = _ref.index,
58
+ isScrolling = _ref.isScrolling,
59
+ isVisible = _ref.isVisible,
60
+ key = _ref.key,
61
+ style = _ref.style;
62
+ var list = _this.context.list;
63
+ var row = list.get(index);
64
+ var className = (0, _clsx2["default"])(_WindowScrollerExample2["default"].row, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _WindowScrollerExample2["default"].rowScrolling, isScrolling), "isVisible", isVisible));
65
+ return /*#__PURE__*/React.createElement("div", {
66
+ key: key,
67
+ className: className,
68
+ style: style
69
+ }, row.name);
70
+ });
71
+ (0, _defineProperty2["default"])(_this, "_setRef", function (windowScroller) {
72
+ _this._windowScroller = windowScroller;
73
+ });
74
+ (0, _defineProperty2["default"])(_this, "_onCheckboxChange", function (event) {
75
+ _this.context.setScrollingCustomElement(event.target.checked);
76
+ });
77
+ (0, _defineProperty2["default"])(_this, "_onScrollToRowChange", function (event) {
78
+ var list = _this.context.list;
79
+ var scrollToIndex = Math.min(list.size - 1, parseInt(event.target.value, 10));
80
+ if (isNaN(scrollToIndex)) {
81
+ scrollToIndex = undefined;
82
+ }
83
+ setTimeout(function () {
84
+ _this.setState({
85
+ scrollToIndex: scrollToIndex
86
+ });
87
+ }, 0);
88
+ });
89
+ return _this;
90
+ }
91
+ (0, _inherits2["default"])(WindowScrollerExample, _React$PureComponent);
92
+ return (0, _createClass2["default"])(WindowScrollerExample, [{
93
+ key: "render",
94
+ value: function render() {
95
+ var _this2 = this;
96
+ var _this$context = this.context,
97
+ customElement = _this$context.customElement,
98
+ isScrollingCustomElement = _this$context.isScrollingCustomElement,
99
+ list = _this$context.list;
100
+ var _this$state = this.state,
101
+ scrollToIndex = _this$state.scrollToIndex,
102
+ showHeaderText = _this$state.showHeaderText;
103
+ return /*#__PURE__*/React.createElement(_ContentBox.ContentBox, null, /*#__PURE__*/React.createElement(_ContentBox.ContentBoxHeader, {
104
+ text: "WindowScroller",
105
+ sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/WindowScroller/WindowScroller.example.js",
106
+ docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md"
107
+ }), showHeaderText && /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, "This component decorates ", /*#__PURE__*/React.createElement("code", null, "List"), ", ", /*#__PURE__*/React.createElement("code", null, "Table"), ", or any other component and manages the window scroll to scroll through the list"), showHeaderText && /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, /*#__PURE__*/React.createElement("button", {
108
+ onClick: this._hideHeader
109
+ }, "Hide header text")), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, /*#__PURE__*/React.createElement("label", {
110
+ className: _WindowScrollerExample2["default"].checkboxLabel
111
+ }, /*#__PURE__*/React.createElement("input", {
112
+ "aria-label": "Use custom element for scrolling",
113
+ className: _WindowScrollerExample2["default"].checkbox,
114
+ type: "checkbox",
115
+ checked: isScrollingCustomElement,
116
+ onChange: this._onCheckboxChange
117
+ }), "Use custom element for scrolling")), /*#__PURE__*/React.createElement(_LabeledInput.InputRow, null, /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
118
+ label: "Scroll to",
119
+ name: "onScrollToRow",
120
+ placeholder: "Index...",
121
+ onChange: this._onScrollToRowChange,
122
+ value: scrollToIndex || ''
123
+ })), /*#__PURE__*/React.createElement(_WindowScroller["default"], {
124
+ ref: this._setRef,
125
+ scrollElement: isScrollingCustomElement ? customElement : window
126
+ }, function (_ref2) {
127
+ var height = _ref2.height,
128
+ isScrolling = _ref2.isScrolling,
129
+ registerChild = _ref2.registerChild,
130
+ onChildScroll = _ref2.onChildScroll,
131
+ scrollTop = _ref2.scrollTop;
132
+ return /*#__PURE__*/React.createElement("div", {
133
+ className: _WindowScrollerExample2["default"].WindowScrollerWrapper
134
+ }, /*#__PURE__*/React.createElement(_AutoSizer["default"], {
135
+ disableHeight: true
136
+ }, function (_ref3) {
137
+ var width = _ref3.width;
138
+ return /*#__PURE__*/React.createElement("div", {
139
+ ref: registerChild
140
+ }, /*#__PURE__*/React.createElement(_List["default"], {
141
+ ref: function ref(el) {
142
+ window.listEl = el;
143
+ },
144
+ autoHeight: true,
145
+ className: _WindowScrollerExample2["default"].List,
146
+ height: height,
147
+ isScrolling: isScrolling,
148
+ onScroll: onChildScroll,
149
+ overscanRowCount: 2,
150
+ rowCount: list.size,
151
+ rowHeight: 30,
152
+ rowRenderer: _this2._rowRenderer,
153
+ scrollToIndex: scrollToIndex,
154
+ scrollTop: scrollTop,
155
+ width: width
156
+ }));
157
+ }));
158
+ }));
159
+ }
160
+ }]);
161
+ }(React.PureComponent);
162
+ (0, _defineProperty2["default"])(WindowScrollerExample, "contextTypes", {
163
+ customElement: _propTypes["default"].any,
164
+ isScrollingCustomElement: _propTypes["default"].bool.isRequired,
165
+ list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
166
+ setScrollingCustomElement: _propTypes["default"].func
167
+ });