@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,107 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
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 _immutable = _interopRequireDefault(require("immutable"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var React = _interopRequireWildcard(require("react"));
18
+ var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));
19
+ var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));
20
+ var _MultiGrid = _interopRequireDefault(require("../MultiGrid"));
21
+ var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));
22
+ 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); }
23
+ 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; }
24
+ 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; }
25
+ 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; }
26
+ 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)); }
27
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
28
+ var DynamicWidthMultiGrid = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
29
+ function DynamicWidthMultiGrid(props, context) {
30
+ var _this;
31
+ (0, _classCallCheck2["default"])(this, DynamicWidthMultiGrid);
32
+ _this = _callSuper(this, DynamicWidthMultiGrid, [props, context]);
33
+ _this._cache = new _CellMeasurerCache["default"]({
34
+ defaultHeight: 30,
35
+ defaultWidth: 150,
36
+ fixedHeight: true
37
+ });
38
+ _this._cellRenderer = _this._cellRenderer.bind(_this);
39
+ return _this;
40
+ }
41
+ (0, _inherits2["default"])(DynamicWidthMultiGrid, _React$PureComponent);
42
+ return (0, _createClass2["default"])(DynamicWidthMultiGrid, [{
43
+ key: "render",
44
+ value: function render() {
45
+ var width = this.props.width;
46
+ return /*#__PURE__*/React.createElement(_MultiGrid["default"], {
47
+ className: _CellMeasurerExample["default"].BodyGrid,
48
+ columnCount: 50,
49
+ columnWidth: this._cache.columnWidth,
50
+ deferredMeasurementCache: this._cache,
51
+ fixedColumnCount: 1,
52
+ fixedRowCount: 0,
53
+ height: 400,
54
+ overscanColumnCount: 0,
55
+ overscanRowCount: 0,
56
+ cellRenderer: this._cellRenderer,
57
+ rowCount: 50,
58
+ rowHeight: 30,
59
+ width: width
60
+ });
61
+ }
62
+ }, {
63
+ key: "_cellRenderer",
64
+ value: function _cellRenderer(_ref) {
65
+ var columnIndex = _ref.columnIndex,
66
+ key = _ref.key,
67
+ parent = _ref.parent,
68
+ rowIndex = _ref.rowIndex,
69
+ style = _ref.style;
70
+ var _this$props = this.props,
71
+ getClassName = _this$props.getClassName,
72
+ getContent = _this$props.getContent,
73
+ list = _this$props.list;
74
+ var datum = list.get((rowIndex + columnIndex) % list.size);
75
+ var classNames = getClassName({
76
+ columnIndex: columnIndex,
77
+ rowIndex: rowIndex
78
+ });
79
+ var content = getContent({
80
+ index: rowIndex,
81
+ datum: datum,
82
+ "long": false
83
+ });
84
+ if (columnIndex === 0) {
85
+ content = content.substr(0, 50);
86
+ }
87
+ return /*#__PURE__*/React.createElement(_CellMeasurer["default"], {
88
+ cache: this._cache,
89
+ columnIndex: columnIndex,
90
+ key: key,
91
+ parent: parent,
92
+ rowIndex: rowIndex
93
+ }, /*#__PURE__*/React.createElement("div", {
94
+ className: classNames,
95
+ style: _objectSpread(_objectSpread({}, style), {}, {
96
+ whiteSpace: 'nowrap'
97
+ })
98
+ }, content));
99
+ }
100
+ }]);
101
+ }(React.PureComponent);
102
+ DynamicWidthMultiGrid.propTypes = process.env.NODE_ENV !== "production" ? {
103
+ getClassName: _propTypes["default"].func.isRequired,
104
+ getContent: _propTypes["default"].func.isRequired,
105
+ list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
106
+ width: _propTypes["default"].number.isRequired
107
+ } : {};
@@ -0,0 +1,129 @@
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 = _interopRequireDefault(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 _clsx3 = _interopRequireDefault(require("clsx"));
22
+ var _CellMeasurerExample2 = _interopRequireDefault(require("./CellMeasurer.example.css"));
23
+ var _CellMeasurerDynamicWidthGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicWidthGrid.example.js"));
24
+ var _CellMeasurerDynamicHeightGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightGrid.example.js"));
25
+ var _CellMeasurerDynamicWidthMultiGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicWidthMultiGrid.example.js"));
26
+ var _CellMeasurerDynamicHeightListExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightList.example.js"));
27
+ var _CellMeasurerDynamicHeightTableColumnExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightTableColumn.example.js"));
28
+ 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); }
29
+ 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; }
30
+ 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)); }
31
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
+ var demoComponents = [_CellMeasurerDynamicWidthGridExample["default"], _CellMeasurerDynamicHeightGridExample["default"], _CellMeasurerDynamicWidthMultiGridExample["default"], _CellMeasurerDynamicHeightListExample["default"], _CellMeasurerDynamicHeightTableColumnExample["default"]];
33
+ var CellMeasurerExample = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
34
+ function CellMeasurerExample(props, context) {
35
+ var _this;
36
+ (0, _classCallCheck2["default"])(this, CellMeasurerExample);
37
+ _this = _callSuper(this, CellMeasurerExample, [props, context]);
38
+ _this.state = {
39
+ currentTab: 0
40
+ };
41
+ _this._onClick = _this._onClick.bind(_this);
42
+ return _this;
43
+ }
44
+ (0, _inherits2["default"])(CellMeasurerExample, _React$PureComponent);
45
+ return (0, _createClass2["default"])(CellMeasurerExample, [{
46
+ key: "render",
47
+ value: function render() {
48
+ var list = this.context.list;
49
+ var currentTab = this.state.currentTab;
50
+ var buttonProps = {
51
+ currentTab: currentTab,
52
+ onClick: this._onClick
53
+ };
54
+ var DemoComponent = demoComponents[currentTab];
55
+ return /*#__PURE__*/React.createElement(_ContentBox.ContentBox, null, /*#__PURE__*/React.createElement(_ContentBox.ContentBoxHeader, {
56
+ text: "CellMeasurer",
57
+ sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/CellMeasurer/CellMeasurer.example.js",
58
+ docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md"
59
+ }), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, "This component can be used to just-in-time measure dynamic content (eg. messages in a chat interface)."), /*#__PURE__*/React.createElement(_AutoSizer["default"], {
60
+ disableHeight: true
61
+ }, function (_ref) {
62
+ var width = _ref.width;
63
+ return /*#__PURE__*/React.createElement("div", {
64
+ style: {
65
+ width: width
66
+ }
67
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("strong", null, "Grid"), ":", /*#__PURE__*/React.createElement(Tab, (0, _extends2["default"])({
68
+ id: 0
69
+ }, buttonProps), "dynamic width text"), /*#__PURE__*/React.createElement(Tab, (0, _extends2["default"])({
70
+ id: 1
71
+ }, buttonProps), "dynamic height text"), /*#__PURE__*/React.createElement("strong", null, "MultiGrid"), ":", /*#__PURE__*/React.createElement(Tab, (0, _extends2["default"])({
72
+ id: 2
73
+ }, buttonProps), "dynamic width text"), /*#__PURE__*/React.createElement("strong", null, "List"), ":", /*#__PURE__*/React.createElement(Tab, (0, _extends2["default"])({
74
+ id: 3
75
+ }, buttonProps), "dynamic height image"), /*#__PURE__*/React.createElement("strong", null, "Table"), ":", /*#__PURE__*/React.createElement(Tab, (0, _extends2["default"])({
76
+ id: 4
77
+ }, buttonProps), "mixed fixed and dynamic height text")), /*#__PURE__*/React.createElement(DemoComponent, {
78
+ getClassName: getClassName,
79
+ getContent: getContent,
80
+ list: list,
81
+ width: width
82
+ }));
83
+ }));
84
+ }
85
+ }, {
86
+ key: "_onClick",
87
+ value: function _onClick(id) {
88
+ this.setState({
89
+ currentTab: id
90
+ });
91
+ }
92
+ }]);
93
+ }(React.PureComponent);
94
+ (0, _defineProperty2["default"])(CellMeasurerExample, "contextTypes", {
95
+ list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
96
+ });
97
+ function getClassName(_ref2) {
98
+ var columnIndex = _ref2.columnIndex,
99
+ rowIndex = _ref2.rowIndex;
100
+ var rowClass = rowIndex % 2 === 0 ? _CellMeasurerExample2["default"].evenRow : _CellMeasurerExample2["default"].oddRow;
101
+ return (0, _clsx3["default"])(rowClass, _CellMeasurerExample2["default"].cell, (0, _defineProperty2["default"])({}, _CellMeasurerExample2["default"].centeredCell, columnIndex > 2));
102
+ }
103
+ function getContent(_ref3) {
104
+ var index = _ref3.index,
105
+ datum = _ref3.datum,
106
+ _ref3$long = _ref3["long"],
107
+ _long = _ref3$long === void 0 ? true : _ref3$long;
108
+ switch (index % 3) {
109
+ case 0:
110
+ return datum.color;
111
+ case 1:
112
+ return datum.name;
113
+ case 2:
114
+ return _long ? datum.randomLong : datum.random;
115
+ }
116
+ }
117
+ function Tab(_ref4) {
118
+ var children = _ref4.children,
119
+ currentTab = _ref4.currentTab,
120
+ id = _ref4.id,
121
+ _onClick2 = _ref4.onClick;
122
+ var classNames = (0, _clsx3["default"])(_CellMeasurerExample2["default"].Tab, (0, _defineProperty2["default"])({}, _CellMeasurerExample2["default"].ActiveTab, currentTab === id));
123
+ return /*#__PURE__*/React.createElement("button", {
124
+ className: classNames,
125
+ onClick: function onClick() {
126
+ return _onClick2(id);
127
+ }
128
+ }, children);
129
+ }
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var React = _interopRequireWildcard(require("react"));
6
+ var _reactDom = require("react-dom");
7
+ var _TestUtils = require("../TestUtils");
8
+ var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));
9
+ var _CellMeasurerCache = _interopRequireWildcard(require("./CellMeasurerCache"));
10
+ 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); }
11
+ 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; }
12
+ // Accounts for the fact that JSDom doesn't support measurements.
13
+ function mockClientWidthAndHeight(_ref) {
14
+ var height = _ref.height,
15
+ width = _ref.width;
16
+ var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : HTMLElement.prototype;
17
+ var heightFn = jest.fn().mockReturnValue(height);
18
+ var widthFn = jest.fn().mockReturnValue(width);
19
+ Object.defineProperty(object, 'offsetHeight', {
20
+ configurable: true,
21
+ get: heightFn
22
+ });
23
+ Object.defineProperty(object, 'offsetWidth', {
24
+ configurable: true,
25
+ get: widthFn
26
+ });
27
+ return {
28
+ heightFn: heightFn,
29
+ widthFn: widthFn
30
+ };
31
+ }
32
+ function createParent() {
33
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
34
+ cache = _ref2.cache,
35
+ _ref2$invalidateCellS = _ref2.invalidateCellSizeAfterRender,
36
+ invalidateCellSizeAfterRender = _ref2$invalidateCellS === void 0 ? jest.fn() : _ref2$invalidateCellS;
37
+ return {
38
+ invalidateCellSizeAfterRender: invalidateCellSizeAfterRender,
39
+ props: {
40
+ deferredMeasurementCache: cache
41
+ }
42
+ };
43
+ }
44
+ function renderHelper() {
45
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
46
+ _ref3$cache = _ref3.cache,
47
+ cache = _ref3$cache === void 0 ? new _CellMeasurerCache["default"]({
48
+ fixedWidth: true
49
+ }) : _ref3$cache,
50
+ _ref3$children = _ref3.children,
51
+ children = _ref3$children === void 0 ? /*#__PURE__*/React.createElement("div", null) : _ref3$children,
52
+ parent = _ref3.parent;
53
+ (0, _TestUtils.render)(/*#__PURE__*/React.createElement(_CellMeasurer["default"], {
54
+ cache: cache,
55
+ columnIndex: 0,
56
+ parent: parent,
57
+ rowIndex: 0,
58
+ style: {}
59
+ }, children));
60
+ }
61
+ describe('CellMeasurer', function () {
62
+ it('componentDidMount() should measure content that is not already in the cache', function () {
63
+ var cache = new _CellMeasurerCache["default"]({
64
+ fixedWidth: true
65
+ });
66
+ var parent = createParent({
67
+ cache: cache
68
+ });
69
+ var _mockClientWidthAndHe = mockClientWidthAndHeight({
70
+ height: 20,
71
+ width: 100
72
+ }),
73
+ heightFn = _mockClientWidthAndHe.heightFn,
74
+ widthFn = _mockClientWidthAndHe.widthFn;
75
+ expect(heightFn).toHaveBeenCalledTimes(0);
76
+ expect(widthFn).toHaveBeenCalledTimes(0);
77
+ expect(cache.has(0, 0)).toBe(false);
78
+ renderHelper({
79
+ cache: cache,
80
+ parent: parent
81
+ });
82
+ expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
83
+ expect(heightFn).toHaveBeenCalledTimes(1);
84
+ expect(widthFn).toHaveBeenCalledTimes(1);
85
+ expect(cache.has(0, 0)).toBe(true);
86
+ expect(cache.getWidth(0, 0)).toBe(100);
87
+ expect(cache.getHeight(0, 0)).toBe(20);
88
+ });
89
+ it('componentDidMount() should not measure content that is already in the cache', function () {
90
+ var cache = new _CellMeasurerCache["default"]({
91
+ fixedWidth: true
92
+ });
93
+ cache.set(0, 0, 100, 20);
94
+ var parent = createParent({
95
+ cache: cache
96
+ });
97
+ var _mockClientWidthAndHe2 = mockClientWidthAndHeight({
98
+ height: 20,
99
+ width: 100
100
+ }),
101
+ heightFn = _mockClientWidthAndHe2.heightFn,
102
+ widthFn = _mockClientWidthAndHe2.widthFn;
103
+ expect(cache.has(0, 0)).toBe(true);
104
+ renderHelper({
105
+ cache: cache,
106
+ parent: parent
107
+ });
108
+ expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
109
+ expect(heightFn).toHaveBeenCalledTimes(0);
110
+ expect(widthFn).toHaveBeenCalledTimes(0);
111
+ });
112
+ it('componentDidUpdate() should measure content that is not already in the cache', function () {
113
+ var cache = new _CellMeasurerCache["default"]({
114
+ fixedWidth: true
115
+ });
116
+ var parent = createParent({
117
+ cache: cache
118
+ });
119
+ renderHelper({
120
+ cache: cache,
121
+ parent: parent
122
+ });
123
+ cache.clear(0, 0);
124
+ parent.invalidateCellSizeAfterRender.mockReset();
125
+ expect(cache.has(0, 0)).toBe(false);
126
+ expect(cache.getWidth(0, 0)).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
127
+ expect(cache.getHeight(0, 0)).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
128
+ var _mockClientWidthAndHe3 = mockClientWidthAndHeight({
129
+ height: 20,
130
+ width: 100
131
+ }),
132
+ heightFn = _mockClientWidthAndHe3.heightFn,
133
+ widthFn = _mockClientWidthAndHe3.widthFn;
134
+ renderHelper({
135
+ cache: cache,
136
+ parent: parent
137
+ });
138
+ expect(cache.has(0, 0)).toBe(true);
139
+ expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
140
+ expect(heightFn).toHaveBeenCalledTimes(1);
141
+ expect(widthFn).toHaveBeenCalledTimes(1);
142
+ expect(cache.getWidth(0, 0)).toBe(100);
143
+ expect(cache.getHeight(0, 0)).toBe(20);
144
+ });
145
+ it('componentDidUpdate() should not measure content that is already in the cache', function () {
146
+ var cache = new _CellMeasurerCache["default"]({
147
+ fixedWidth: true
148
+ });
149
+ cache.set(0, 0, 100, 20);
150
+ var parent = createParent({
151
+ cache: cache
152
+ });
153
+ expect(cache.has(0, 0)).toBe(true);
154
+ var _mockClientWidthAndHe4 = mockClientWidthAndHeight({
155
+ height: 20,
156
+ width: 100
157
+ }),
158
+ heightFn = _mockClientWidthAndHe4.heightFn,
159
+ widthFn = _mockClientWidthAndHe4.widthFn;
160
+ renderHelper({
161
+ cache: cache,
162
+ parent: parent
163
+ });
164
+ renderHelper({
165
+ cache: cache,
166
+ parent: parent
167
+ });
168
+ expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
169
+ expect(heightFn).toHaveBeenCalledTimes(0);
170
+ expect(widthFn).toHaveBeenCalledTimes(0);
171
+ });
172
+ it('registerChild() should measure content that is not already in the cache', function () {
173
+ var cache = new _CellMeasurerCache["default"]({
174
+ fixedWidth: true
175
+ });
176
+ var parent = createParent({
177
+ cache: cache
178
+ });
179
+ var element = document.createElement('div');
180
+ var _mockClientWidthAndHe5 = mockClientWidthAndHeight({
181
+ height: 20,
182
+ width: 100
183
+ }, element),
184
+ heightFn = _mockClientWidthAndHe5.heightFn,
185
+ widthFn = _mockClientWidthAndHe5.widthFn;
186
+ expect(heightFn).toHaveBeenCalledTimes(0);
187
+ expect(widthFn).toHaveBeenCalledTimes(0);
188
+ expect(cache.has(0, 0)).toBe(false);
189
+ renderHelper({
190
+ cache: cache,
191
+ parent: parent,
192
+ children: function children(_ref4) {
193
+ var registerChild = _ref4.registerChild;
194
+ registerChild(element);
195
+ return null;
196
+ }
197
+ });
198
+ expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
199
+ expect(heightFn).toHaveBeenCalledTimes(1);
200
+ expect(widthFn).toHaveBeenCalledTimes(1);
201
+ expect(cache.has(0, 0)).toBe(true);
202
+ expect(cache.getWidth(0, 0)).toBe(100);
203
+ expect(cache.getHeight(0, 0)).toBe(20);
204
+ });
205
+ it('registerChild() should not measure content that is already in the cache', function () {
206
+ var cache = new _CellMeasurerCache["default"]({
207
+ fixedWidth: true
208
+ });
209
+ cache.set(0, 0, 100, 20);
210
+ var parent = createParent({
211
+ cache: cache
212
+ });
213
+ var element = document.createElement('div');
214
+ var _mockClientWidthAndHe6 = mockClientWidthAndHeight({
215
+ height: 20,
216
+ width: 100
217
+ }, element),
218
+ heightFn = _mockClientWidthAndHe6.heightFn,
219
+ widthFn = _mockClientWidthAndHe6.widthFn;
220
+ expect(cache.has(0, 0)).toBe(true);
221
+ renderHelper({
222
+ cache: cache,
223
+ parent: parent,
224
+ children: function children(_ref5) {
225
+ var registerChild = _ref5.registerChild;
226
+ registerChild(element);
227
+ return null;
228
+ }
229
+ });
230
+ expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
231
+ expect(heightFn).toHaveBeenCalledTimes(0);
232
+ expect(widthFn).toHaveBeenCalledTimes(0);
233
+ });
234
+ it('should pass a :measure param to a function child', function () {
235
+ var cache = new _CellMeasurerCache["default"]({
236
+ fixedWidth: true
237
+ });
238
+ var children = jest.fn().mockReturnValue(/*#__PURE__*/React.createElement("div", null));
239
+ renderHelper({
240
+ cache: cache,
241
+ children: children
242
+ });
243
+ expect(children).toHaveBeenCalled();
244
+ var params = children.mock.calls[0][0];
245
+ expect(typeof params.measure === 'function').toBe(true);
246
+ });
247
+ it('should still update cache without a parent Grid', function () {
248
+ jest.spyOn(console, 'warn');
249
+ mockClientWidthAndHeight({
250
+ height: 20,
251
+ width: 100
252
+ });
253
+ var cache = new _CellMeasurerCache["default"]({
254
+ fixedWidth: true
255
+ });
256
+ renderHelper({
257
+ cache: cache
258
+ }); // No parent Grid
259
+
260
+ expect(cache.has(0, 0)).toBe(true);
261
+ expect(console.warn).not.toHaveBeenCalled();
262
+ });
263
+
264
+ // See issue #593
265
+ it('should explicitly set width/height style to "auto" before re-measuring', function () {
266
+ var cache = new _CellMeasurerCache["default"]({
267
+ fixedWidth: true
268
+ });
269
+ var parent = createParent({
270
+ cache: cache
271
+ });
272
+ var child = jest.fn().mockReturnValue(/*#__PURE__*/React.createElement("div", {
273
+ style: {
274
+ width: 100,
275
+ height: 30
276
+ }
277
+ }));
278
+ var measurer;
279
+ var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(/*#__PURE__*/React.createElement(_CellMeasurer["default"], {
280
+ ref: function ref(_ref6) {
281
+ measurer = _ref6;
282
+ },
283
+ cache: cache,
284
+ columnIndex: 0,
285
+ parent: parent,
286
+ rowIndex: 0,
287
+ style: {}
288
+ }, child)));
289
+ var styleHeights = [30];
290
+ var styleWidths = [100];
291
+ Object.defineProperties(node.style, {
292
+ height: {
293
+ get: function get() {
294
+ return styleHeights[styleHeights.length - 1];
295
+ },
296
+ set: function set(value) {
297
+ return styleHeights.push(value);
298
+ }
299
+ },
300
+ width: {
301
+ get: function get() {
302
+ return styleWidths[styleWidths.length - 1];
303
+ },
304
+ set: function set(value) {
305
+ return styleWidths.push(value);
306
+ }
307
+ }
308
+ });
309
+ var _measurer$_getCellMea = measurer._getCellMeasurements(node),
310
+ height = _measurer$_getCellMea.height,
311
+ width = _measurer$_getCellMea.width;
312
+ expect(height).toBeGreaterThan(0);
313
+ expect(width).toBeGreaterThan(0);
314
+ expect(styleHeights).toEqual([30, 'auto', 30]);
315
+ expect(styleWidths).toEqual([100, 100]);
316
+ });
317
+
318
+ // See issue #660
319
+ it('should reset width/height style values after measuring with style "auto"', function () {
320
+ var cache = new _CellMeasurerCache["default"]({
321
+ fixedHeight: true
322
+ });
323
+ var parent = createParent({
324
+ cache: cache
325
+ });
326
+ var child = jest.fn().mockReturnValue(/*#__PURE__*/React.createElement("div", {
327
+ style: {
328
+ width: 100,
329
+ height: 30
330
+ }
331
+ }));
332
+ var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(/*#__PURE__*/React.createElement(_CellMeasurer["default"], {
333
+ cache: cache,
334
+ columnIndex: 0,
335
+ parent: parent,
336
+ rowIndex: 0,
337
+ style: {}
338
+ }, child)));
339
+ node.style.width = 200;
340
+ node.style.height = 60;
341
+ child.mock.calls[0][0].measure();
342
+ expect(node.style.height).toBe('30px');
343
+ expect(node.style.width).toBe('100px');
344
+ });
345
+ });