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