@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,197 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ /*:: import type {RenderedSection} from '../Grid';*/
12
+ /*:: import type {ScrollIndices} from './types';*/
13
+ import * as React from 'react';
14
+ import { polyfill } from 'react-lifecycles-compat';
15
+
16
+ /**
17
+ * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.
18
+ */
19
+ /*:: type ChildrenParams = {
20
+ onSectionRendered: (params: RenderedSection) => void,
21
+ scrollToColumn: number,
22
+ scrollToRow: number,
23
+ };*/
24
+ /*:: type Props = {
25
+ children: (params: ChildrenParams) => React.Element<*>,
26
+ className?: string,
27
+ columnCount: number,
28
+ disabled: boolean,
29
+ isControlled: boolean,
30
+ mode: 'cells' | 'edges',
31
+ onScrollToChange?: (params: ScrollIndices) => void,
32
+ rowCount: number,
33
+ scrollToColumn: number,
34
+ scrollToRow: number,
35
+ };*/
36
+ /*:: type State = ScrollIndices & {
37
+ instanceProps: {
38
+ prevScrollToColumn: number,
39
+ prevScrollToRow: number,
40
+ },
41
+ };*/
42
+ var ArrowKeyStepper = /*#__PURE__*/function (_React$PureComponent) {
43
+ function ArrowKeyStepper() {
44
+ var _this;
45
+ _classCallCheck(this, ArrowKeyStepper);
46
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
47
+ args[_key] = arguments[_key];
48
+ }
49
+ _this = _callSuper(this, ArrowKeyStepper, [].concat(args));
50
+ _defineProperty(_this, "state", {
51
+ scrollToColumn: 0,
52
+ scrollToRow: 0,
53
+ instanceProps: {
54
+ prevScrollToColumn: 0,
55
+ prevScrollToRow: 0
56
+ }
57
+ });
58
+ _defineProperty(_this, "_columnStartIndex", 0);
59
+ _defineProperty(_this, "_columnStopIndex", 0);
60
+ _defineProperty(_this, "_rowStartIndex", 0);
61
+ _defineProperty(_this, "_rowStopIndex", 0);
62
+ _defineProperty(_this, "_onKeyDown", function (event /*: KeyboardEvent*/) {
63
+ var _this$props = _this.props,
64
+ columnCount = _this$props.columnCount,
65
+ disabled = _this$props.disabled,
66
+ mode = _this$props.mode,
67
+ rowCount = _this$props.rowCount;
68
+ if (disabled) {
69
+ return;
70
+ }
71
+ var _this$_getScrollState = _this._getScrollState(),
72
+ scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,
73
+ scrollToRowPrevious = _this$_getScrollState.scrollToRow;
74
+ var _this$_getScrollState2 = _this._getScrollState(),
75
+ scrollToColumn = _this$_getScrollState2.scrollToColumn,
76
+ scrollToRow = _this$_getScrollState2.scrollToRow;
77
+
78
+ // The above cases all prevent default event event behavior.
79
+ // This is to keep the grid from scrolling after the snap-to update.
80
+ switch (event.key) {
81
+ case 'ArrowDown':
82
+ scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
83
+ break;
84
+ case 'ArrowLeft':
85
+ scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
86
+ break;
87
+ case 'ArrowRight':
88
+ scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
89
+ break;
90
+ case 'ArrowUp':
91
+ scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
92
+ break;
93
+ }
94
+ if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {
95
+ event.preventDefault();
96
+ _this._updateScrollState({
97
+ scrollToColumn: scrollToColumn,
98
+ scrollToRow: scrollToRow
99
+ });
100
+ }
101
+ });
102
+ _defineProperty(_this, "_onSectionRendered", function (_ref /*:: */) {
103
+ var columnStartIndex = _ref /*:: */.columnStartIndex,
104
+ columnStopIndex = _ref /*:: */.columnStopIndex,
105
+ rowStartIndex = _ref /*:: */.rowStartIndex,
106
+ rowStopIndex = _ref /*:: */.rowStopIndex;
107
+ _this._columnStartIndex = columnStartIndex;
108
+ _this._columnStopIndex = columnStopIndex;
109
+ _this._rowStartIndex = rowStartIndex;
110
+ _this._rowStopIndex = rowStopIndex;
111
+ });
112
+ return _this;
113
+ }
114
+ _inherits(ArrowKeyStepper, _React$PureComponent);
115
+ return _createClass(ArrowKeyStepper, [{
116
+ key: "setScrollIndexes",
117
+ value: function setScrollIndexes(_ref2 /*:: */) {
118
+ var scrollToColumn = _ref2 /*:: */.scrollToColumn,
119
+ scrollToRow = _ref2 /*:: */.scrollToRow;
120
+ this.setState({
121
+ scrollToRow: scrollToRow,
122
+ scrollToColumn: scrollToColumn
123
+ });
124
+ }
125
+ }, {
126
+ key: "render",
127
+ value: function render() {
128
+ var _this$props2 = this.props,
129
+ className = _this$props2.className,
130
+ children = _this$props2.children;
131
+ var _this$_getScrollState3 = this._getScrollState(),
132
+ scrollToColumn = _this$_getScrollState3.scrollToColumn,
133
+ scrollToRow = _this$_getScrollState3.scrollToRow;
134
+ return /*#__PURE__*/React.createElement("div", {
135
+ className: className,
136
+ onKeyDown: this._onKeyDown
137
+ }, children({
138
+ onSectionRendered: this._onSectionRendered,
139
+ scrollToColumn: scrollToColumn,
140
+ scrollToRow: scrollToRow
141
+ }));
142
+ }
143
+ }, {
144
+ key: "_getScrollState",
145
+ value: function _getScrollState() {
146
+ return this.props.isControlled ? this.props : this.state;
147
+ }
148
+ }, {
149
+ key: "_updateScrollState",
150
+ value: function _updateScrollState(_ref3 /*:: */) {
151
+ var scrollToColumn = _ref3 /*:: */.scrollToColumn,
152
+ scrollToRow = _ref3 /*:: */.scrollToRow;
153
+ var _this$props3 = this.props,
154
+ isControlled = _this$props3.isControlled,
155
+ onScrollToChange = _this$props3.onScrollToChange;
156
+ if (typeof onScrollToChange === 'function') {
157
+ onScrollToChange({
158
+ scrollToColumn: scrollToColumn,
159
+ scrollToRow: scrollToRow
160
+ });
161
+ }
162
+ if (!isControlled) {
163
+ this.setState({
164
+ scrollToColumn: scrollToColumn,
165
+ scrollToRow: scrollToRow
166
+ });
167
+ }
168
+ }
169
+ }], [{
170
+ key: "getDerivedStateFromProps",
171
+ value: function getDerivedStateFromProps(nextProps /*: Props*/, prevState /*: State*/) /*: $Shape<State>*/{
172
+ if (nextProps.isControlled) {
173
+ return {};
174
+ }
175
+ if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {
176
+ return _objectSpread(_objectSpread({}, prevState), {}, {
177
+ scrollToColumn: nextProps.scrollToColumn,
178
+ scrollToRow: nextProps.scrollToRow,
179
+ instanceProps: {
180
+ prevScrollToColumn: nextProps.scrollToColumn,
181
+ prevScrollToRow: nextProps.scrollToRow
182
+ }
183
+ });
184
+ }
185
+ return {};
186
+ }
187
+ }]);
188
+ }(React.PureComponent);
189
+ _defineProperty(ArrowKeyStepper, "defaultProps", {
190
+ disabled: false,
191
+ isControlled: false,
192
+ mode: 'edges',
193
+ scrollToColumn: 0,
194
+ scrollToRow: 0
195
+ });
196
+ polyfill(ArrowKeyStepper);
197
+ export default ArrowKeyStepper;
@@ -0,0 +1,3 @@
1
+ /*:: export type {ScrollIndices} from './types';*/
2
+ export { default } from './ArrowKeyStepper';
3
+ export { default as ArrowKeyStepper } from './ArrowKeyStepper';
@@ -0,0 +1,4 @@
1
+ /*:: export type ScrollIndices = {
2
+ scrollToColumn: number,
3
+ scrollToRow: number,
4
+ };*/
@@ -0,0 +1,96 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+ import _inherits from "@babel/runtime/helpers/inherits";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
9
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10
+ import { List as ImmutableList } from 'immutable';
11
+ import PropTypes from 'prop-types';
12
+ import * as React from 'react';
13
+ import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
14
+ import AutoSizer from './AutoSizer';
15
+ import List from '../List';
16
+ /*:: import { type RowRendererParams } from '../List';*/
17
+ import styles from './AutoSizer.example.css';
18
+ /*:: type State = {
19
+ hideDescription: boolean,
20
+ };*/
21
+ var AutoSizerExample = /*#__PURE__*/function (_React$PureComponent) {
22
+ function AutoSizerExample() {
23
+ var _this;
24
+ _classCallCheck(this, AutoSizerExample);
25
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
+ args[_key] = arguments[_key];
27
+ }
28
+ _this = _callSuper(this, AutoSizerExample, [].concat(args));
29
+ _defineProperty(_this, "state", {
30
+ hideDescription: false
31
+ });
32
+ _defineProperty(_this, "_rowRenderer", function (_ref /*:: */) {
33
+ var index = _ref /*:: */.index,
34
+ key = _ref /*:: */.key,
35
+ style = _ref /*:: */.style;
36
+ var list = _this.context.list;
37
+ var row = list.get(index);
38
+ return /*#__PURE__*/React.createElement("div", {
39
+ key: key,
40
+ className: styles.row,
41
+ style: style
42
+ }, row.name);
43
+ });
44
+ return _this;
45
+ }
46
+ _inherits(AutoSizerExample, _React$PureComponent);
47
+ return _createClass(AutoSizerExample, [{
48
+ key: "render",
49
+ value: function render() {
50
+ var _this2 = this;
51
+ var list = this.context.list;
52
+ var hideDescription = this.state.hideDescription;
53
+ return /*#__PURE__*/React.createElement(ContentBox, _extends({}, this.props, {
54
+ style: {
55
+ height: 400
56
+ }
57
+ }), /*#__PURE__*/React.createElement(ContentBoxHeader, {
58
+ text: "AutoSizer",
59
+ sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/AutoSizer/AutoSizer.example.js",
60
+ docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/AutoSizer.md"
61
+ }), /*#__PURE__*/React.createElement(ContentBoxParagraph, null, /*#__PURE__*/React.createElement("label", {
62
+ className: styles.checkboxLabel
63
+ }, /*#__PURE__*/React.createElement("input", {
64
+ "aria-label": "Hide description (to show resize)?",
65
+ className: styles.checkbox,
66
+ type: "checkbox",
67
+ checked: hideDescription,
68
+ onChange: function onChange(event) {
69
+ return _this2.setState({
70
+ hideDescription: event.target.checked
71
+ });
72
+ }
73
+ }), "Hide description (to show resize)?")), !hideDescription && /*#__PURE__*/React.createElement(ContentBoxParagraph, null, "This component decorates ", /*#__PURE__*/React.createElement("code", null, "List"), ", ", /*#__PURE__*/React.createElement("code", null, "Table"), ", or any other component and automatically manages its width and height. It uses Sebastian Decima's", ' ', /*#__PURE__*/React.createElement("a", {
74
+ href: "https://github.com/sdecima/javascript-detect-element-resize",
75
+ target: "_blank"
76
+ }, "element resize event"), ' ', "to determine the appropriate size. In this example", ' ', /*#__PURE__*/React.createElement("code", null, "AutoSizer"), " grows to fill the remaining width and height of this flex column."), /*#__PURE__*/React.createElement("div", {
77
+ className: styles.AutoSizerWrapper
78
+ }, /*#__PURE__*/React.createElement(AutoSizer, null, function (_ref2) {
79
+ var width = _ref2.width,
80
+ height = _ref2.height;
81
+ return /*#__PURE__*/React.createElement(List, {
82
+ className: styles.List,
83
+ height: height,
84
+ rowCount: list.size,
85
+ rowHeight: 30,
86
+ rowRenderer: _this2._rowRenderer,
87
+ width: width
88
+ });
89
+ })));
90
+ }
91
+ }]);
92
+ }(React.PureComponent);
93
+ _defineProperty(AutoSizerExample, "contextTypes", {
94
+ list: PropTypes.instanceOf(ImmutableList).isRequired
95
+ });
96
+ export { AutoSizerExample as default };
@@ -0,0 +1,335 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import * as React from 'react';
4
+ import { findDOMNode } from 'react-dom';
5
+ import { render } from '../TestUtils';
6
+ import AutoSizer from './AutoSizer';
7
+ function DefaultChildComponent(_ref) {
8
+ var height = _ref.height,
9
+ width = _ref.width,
10
+ foo = _ref.foo,
11
+ bar = _ref.bar;
12
+ return /*#__PURE__*/React.createElement("div", null, "width:".concat(width, ", height:").concat(height, ", foo:").concat(foo, ", bar:").concat(bar));
13
+ }
14
+ describe('AutoSizer', function () {
15
+ function getMarkup() {
16
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
17
+ _ref2$bar = _ref2.bar,
18
+ bar = _ref2$bar === void 0 ? 123 : _ref2$bar,
19
+ _ref2$ChildComponent = _ref2.ChildComponent,
20
+ ChildComponent = _ref2$ChildComponent === void 0 ? DefaultChildComponent : _ref2$ChildComponent,
21
+ _ref2$className = _ref2.className,
22
+ className = _ref2$className === void 0 ? undefined : _ref2$className,
23
+ _ref2$defaultHeight = _ref2.defaultHeight,
24
+ defaultHeight = _ref2$defaultHeight === void 0 ? undefined : _ref2$defaultHeight,
25
+ _ref2$defaultWidth = _ref2.defaultWidth,
26
+ defaultWidth = _ref2$defaultWidth === void 0 ? undefined : _ref2$defaultWidth,
27
+ _ref2$disableHeight = _ref2.disableHeight,
28
+ disableHeight = _ref2$disableHeight === void 0 ? false : _ref2$disableHeight,
29
+ _ref2$disableWidth = _ref2.disableWidth,
30
+ disableWidth = _ref2$disableWidth === void 0 ? false : _ref2$disableWidth,
31
+ _ref2$foo = _ref2.foo,
32
+ foo = _ref2$foo === void 0 ? 456 : _ref2$foo,
33
+ _ref2$height = _ref2.height,
34
+ height = _ref2$height === void 0 ? 100 : _ref2$height,
35
+ onResize = _ref2.onResize,
36
+ _ref2$paddingBottom = _ref2.paddingBottom,
37
+ paddingBottom = _ref2$paddingBottom === void 0 ? 0 : _ref2$paddingBottom,
38
+ _ref2$paddingLeft = _ref2.paddingLeft,
39
+ paddingLeft = _ref2$paddingLeft === void 0 ? 0 : _ref2$paddingLeft,
40
+ _ref2$paddingRight = _ref2.paddingRight,
41
+ paddingRight = _ref2$paddingRight === void 0 ? 0 : _ref2$paddingRight,
42
+ _ref2$paddingTop = _ref2.paddingTop,
43
+ paddingTop = _ref2$paddingTop === void 0 ? 0 : _ref2$paddingTop,
44
+ _ref2$style = _ref2.style,
45
+ style = _ref2$style === void 0 ? undefined : _ref2$style,
46
+ _ref2$width = _ref2.width,
47
+ width = _ref2$width === void 0 ? 200 : _ref2$width;
48
+ var wrapperStyle = {
49
+ boxSizing: 'border-box',
50
+ height: height,
51
+ paddingBottom: paddingBottom,
52
+ paddingLeft: paddingLeft,
53
+ paddingRight: paddingRight,
54
+ paddingTop: paddingTop,
55
+ width: width
56
+ };
57
+ mockOffsetSize(width, height);
58
+ return /*#__PURE__*/React.createElement("div", {
59
+ style: wrapperStyle
60
+ }, /*#__PURE__*/React.createElement(AutoSizer, {
61
+ className: className,
62
+ defaultHeight: defaultHeight,
63
+ defaultWidth: defaultWidth,
64
+ disableHeight: disableHeight,
65
+ disableWidth: disableWidth,
66
+ onResize: onResize,
67
+ style: style
68
+ }, function (_ref3) {
69
+ var height = _ref3.height,
70
+ width = _ref3.width;
71
+ return /*#__PURE__*/React.createElement(ChildComponent, {
72
+ width: disableWidth ? undefined : width,
73
+ height: disableHeight ? undefined : height,
74
+ bar: bar,
75
+ foo: foo
76
+ });
77
+ }));
78
+ }
79
+
80
+ // AutoSizer uses offsetWidth and offsetHeight.
81
+ // Jest runs in JSDom which doesn't support measurements APIs.
82
+ function mockOffsetSize(width, height) {
83
+ Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
84
+ configurable: true,
85
+ value: height
86
+ });
87
+ Object.defineProperty(HTMLElement.prototype, 'offsetWidth', {
88
+ configurable: true,
89
+ value: width
90
+ });
91
+ }
92
+ it('should relay properties to ChildComponent or React child', function () {
93
+ var rendered = findDOMNode(render(getMarkup()));
94
+ expect(rendered.textContent).toContain('foo:456');
95
+ expect(rendered.textContent).toContain('bar:123');
96
+ });
97
+ it('should set the correct initial width and height of ChildComponent or React child', function () {
98
+ var rendered = findDOMNode(render(getMarkup()));
99
+ expect(rendered.textContent).toContain('height:100');
100
+ expect(rendered.textContent).toContain('width:200');
101
+ });
102
+ it('should account for padding when calculating the available width and height', function () {
103
+ var rendered = findDOMNode(render(getMarkup({
104
+ paddingBottom: 10,
105
+ paddingLeft: 4,
106
+ paddingRight: 4,
107
+ paddingTop: 15
108
+ })));
109
+ expect(rendered.textContent).toContain('height:75');
110
+ expect(rendered.textContent).toContain('width:192');
111
+ });
112
+ it('should not update :width if :disableWidth is true', function () {
113
+ var rendered = findDOMNode(render(getMarkup({
114
+ disableWidth: true
115
+ })));
116
+ expect(rendered.textContent).toContain('height:100');
117
+ expect(rendered.textContent).toContain('width:undefined');
118
+ });
119
+ it('should not update :height if :disableHeight is true', function () {
120
+ var rendered = findDOMNode(render(getMarkup({
121
+ disableHeight: true
122
+ })));
123
+ expect(rendered.textContent).toContain('height:undefined');
124
+ expect(rendered.textContent).toContain('width:200');
125
+ });
126
+ function simulateResize(_x) {
127
+ return _simulateResize.apply(this, arguments);
128
+ }
129
+ function _simulateResize() {
130
+ _simulateResize = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(_ref4) {
131
+ var element, height, width, trigger;
132
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
133
+ while (1) switch (_context5.prev = _context5.next) {
134
+ case 0:
135
+ element = _ref4.element, height = _ref4.height, width = _ref4.width;
136
+ mockOffsetSize(width, height);
137
+
138
+ // Trigger detectElementResize library by faking a scroll event
139
+ // TestUtils Simulate doesn't work here in JSDom so we manually dispatch
140
+ trigger = element.querySelector('.contract-trigger');
141
+ trigger.dispatchEvent(new Event('scroll'));
142
+
143
+ // Allow requestAnimationFrame to be invoked before continuing
144
+ _context5.next = 6;
145
+ return new Promise(function (resolve) {
146
+ return setTimeout(resolve, 100);
147
+ });
148
+ case 6:
149
+ case "end":
150
+ return _context5.stop();
151
+ }
152
+ }, _callee5);
153
+ }));
154
+ return _simulateResize.apply(this, arguments);
155
+ }
156
+ it('should update :height after a resize event', /*#__PURE__*/function () {
157
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(done) {
158
+ var rendered;
159
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
160
+ while (1) switch (_context.prev = _context.next) {
161
+ case 0:
162
+ rendered = findDOMNode(render(getMarkup({
163
+ height: 100,
164
+ width: 200
165
+ })));
166
+ expect(rendered.textContent).toContain('height:100');
167
+ expect(rendered.textContent).toContain('width:200');
168
+ _context.next = 5;
169
+ return simulateResize({
170
+ element: rendered,
171
+ height: 400,
172
+ width: 300
173
+ });
174
+ case 5:
175
+ expect(rendered.textContent).toContain('height:400');
176
+ expect(rendered.textContent).toContain('width:300');
177
+ done();
178
+ case 8:
179
+ case "end":
180
+ return _context.stop();
181
+ }
182
+ }, _callee);
183
+ }));
184
+ return function (_x2) {
185
+ return _ref5.apply(this, arguments);
186
+ };
187
+ }());
188
+ describe('onResize and (re)render', function () {
189
+ it('should trigger when size changes', /*#__PURE__*/function () {
190
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(done) {
191
+ var onResize, ChildComponent, rendered;
192
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
193
+ while (1) switch (_context2.prev = _context2.next) {
194
+ case 0:
195
+ onResize = jest.fn();
196
+ ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
197
+ rendered = findDOMNode(render(getMarkup({
198
+ ChildComponent: ChildComponent,
199
+ height: 100,
200
+ onResize: onResize,
201
+ width: 200
202
+ })));
203
+ ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()
204
+ expect(onResize).toHaveBeenCalledTimes(1);
205
+ _context2.next = 7;
206
+ return simulateResize({
207
+ element: rendered,
208
+ height: 400,
209
+ width: 300
210
+ });
211
+ case 7:
212
+ expect(ChildComponent).toHaveBeenCalledTimes(1);
213
+ expect(onResize).toHaveBeenCalledTimes(2);
214
+ done();
215
+ case 10:
216
+ case "end":
217
+ return _context2.stop();
218
+ }
219
+ }, _callee2);
220
+ }));
221
+ return function (_x3) {
222
+ return _ref6.apply(this, arguments);
223
+ };
224
+ }());
225
+ it('should only trigger when height changes for disableWidth == true', /*#__PURE__*/function () {
226
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(done) {
227
+ var onResize, ChildComponent, rendered;
228
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
229
+ while (1) switch (_context3.prev = _context3.next) {
230
+ case 0:
231
+ onResize = jest.fn();
232
+ ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
233
+ rendered = findDOMNode(render(getMarkup({
234
+ ChildComponent: ChildComponent,
235
+ disableWidth: true,
236
+ height: 100,
237
+ onResize: onResize,
238
+ width: 200
239
+ })));
240
+ ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()
241
+ expect(onResize).toHaveBeenCalledTimes(1);
242
+ _context3.next = 7;
243
+ return simulateResize({
244
+ element: rendered,
245
+ height: 100,
246
+ width: 300
247
+ });
248
+ case 7:
249
+ expect(ChildComponent).toHaveBeenCalledTimes(0);
250
+ expect(onResize).toHaveBeenCalledTimes(1);
251
+ _context3.next = 11;
252
+ return simulateResize({
253
+ element: rendered,
254
+ height: 200,
255
+ width: 300
256
+ });
257
+ case 11:
258
+ expect(ChildComponent).toHaveBeenCalledTimes(1);
259
+ expect(onResize).toHaveBeenCalledTimes(2);
260
+ done();
261
+ case 14:
262
+ case "end":
263
+ return _context3.stop();
264
+ }
265
+ }, _callee3);
266
+ }));
267
+ return function (_x4) {
268
+ return _ref7.apply(this, arguments);
269
+ };
270
+ }());
271
+ it('should only trigger when width changes for disableHeight == true', /*#__PURE__*/function () {
272
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(done) {
273
+ var onResize, ChildComponent, rendered;
274
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
275
+ while (1) switch (_context4.prev = _context4.next) {
276
+ case 0:
277
+ onResize = jest.fn();
278
+ ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
279
+ rendered = findDOMNode(render(getMarkup({
280
+ ChildComponent: ChildComponent,
281
+ disableHeight: true,
282
+ height: 100,
283
+ onResize: onResize,
284
+ width: 200
285
+ })));
286
+ ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()
287
+ expect(onResize).toHaveBeenCalledTimes(1);
288
+ _context4.next = 7;
289
+ return simulateResize({
290
+ element: rendered,
291
+ height: 200,
292
+ width: 200
293
+ });
294
+ case 7:
295
+ expect(ChildComponent).toHaveBeenCalledTimes(0);
296
+ expect(onResize).toHaveBeenCalledTimes(1);
297
+ _context4.next = 11;
298
+ return simulateResize({
299
+ element: rendered,
300
+ height: 200,
301
+ width: 300
302
+ });
303
+ case 11:
304
+ expect(ChildComponent).toHaveBeenCalledTimes(1);
305
+ expect(onResize).toHaveBeenCalledTimes(2);
306
+ done();
307
+ case 14:
308
+ case "end":
309
+ return _context4.stop();
310
+ }
311
+ }, _callee4);
312
+ }));
313
+ return function (_x5) {
314
+ return _ref8.apply(this, arguments);
315
+ };
316
+ }());
317
+ });
318
+ describe('className and style', function () {
319
+ it('should use a custom :className if specified', function () {
320
+ var rendered = findDOMNode(render(getMarkup({
321
+ className: 'foo'
322
+ })));
323
+ expect(rendered.firstChild.className).toContain('foo');
324
+ });
325
+ it('should use a custom :style if specified', function () {
326
+ var style = {
327
+ backgroundColor: 'red'
328
+ };
329
+ var rendered = findDOMNode(render(getMarkup({
330
+ style: style
331
+ })));
332
+ expect(rendered.firstChild.style.backgroundColor).toEqual('red');
333
+ });
334
+ });
335
+ });