@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.
- package/LICENSE +22 -0
- package/README.md +34 -0
- package/changes.json +22 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js +184 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js +338 -0
- package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.js +204 -0
- package/dist/commonjs/ArrowKeyStepper/index.js +19 -0
- package/dist/commonjs/ArrowKeyStepper/types.js +5 -0
- package/dist/commonjs/AutoSizer/AutoSizer.example.js +104 -0
- package/dist/commonjs/AutoSizer/AutoSizer.jest.js +341 -0
- package/dist/commonjs/AutoSizer/AutoSizer.js +199 -0
- package/dist/commonjs/AutoSizer/AutoSizer.ssr.js +25 -0
- package/dist/commonjs/AutoSizer/index.js +19 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +100 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +99 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +107 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +102 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +107 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.example.js +129 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.jest.js +345 -0
- package/dist/commonjs/CellMeasurer/CellMeasurer.js +195 -0
- package/dist/commonjs/CellMeasurer/CellMeasurerCache.jest.js +298 -0
- package/dist/commonjs/CellMeasurer/CellMeasurerCache.js +202 -0
- package/dist/commonjs/CellMeasurer/index.js +22 -0
- package/dist/commonjs/CellMeasurer/types.js +14 -0
- package/dist/commonjs/Collection/Collection.example.js +231 -0
- package/dist/commonjs/Collection/Collection.jest.js +829 -0
- package/dist/commonjs/Collection/Collection.js +266 -0
- package/dist/commonjs/Collection/CollectionView.js +553 -0
- package/dist/commonjs/Collection/Section.jest.js +63 -0
- package/dist/commonjs/Collection/Section.js +57 -0
- package/dist/commonjs/Collection/SectionManager.jest.js +121 -0
- package/dist/commonjs/Collection/SectionManager.js +134 -0
- package/dist/commonjs/Collection/TestData.js +77 -0
- package/dist/commonjs/Collection/index.js +15 -0
- package/dist/commonjs/Collection/types.js +22 -0
- package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.jest.js +34 -0
- package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.js +38 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.example.js +159 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.jest.js +129 -0
- package/dist/commonjs/ColumnSizer/ColumnSizer.js +103 -0
- package/dist/commonjs/ColumnSizer/index.js +15 -0
- package/dist/commonjs/Grid/Grid.example.js +330 -0
- package/dist/commonjs/Grid/Grid.jest.js +2561 -0
- package/dist/commonjs/Grid/Grid.js +1432 -0
- package/dist/commonjs/Grid/Grid.ssr.js +62 -0
- package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js +92 -0
- package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js +40 -0
- package/dist/commonjs/Grid/defaultCellRangeRenderer.js +139 -0
- package/dist/commonjs/Grid/defaultOverscanIndicesGetter.jest.js +92 -0
- package/dist/commonjs/Grid/defaultOverscanIndicesGetter.js +36 -0
- package/dist/commonjs/Grid/index.js +40 -0
- package/dist/commonjs/Grid/types.js +8 -0
- package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.jest.js +375 -0
- package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js +296 -0
- package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +201 -0
- package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js +204 -0
- package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +84 -0
- package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +59 -0
- package/dist/commonjs/Grid/utils/maxElementSize.js +22 -0
- package/dist/commonjs/Grid/utils/updateScrollIndexHelper.jest.js +180 -0
- package/dist/commonjs/Grid/utils/updateScrollIndexHelper.js +85 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.example.js +179 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.jest.js +571 -0
- package/dist/commonjs/InfiniteLoader/InfiniteLoader.js +274 -0
- package/dist/commonjs/InfiniteLoader/index.js +15 -0
- package/dist/commonjs/List/List.example.js +236 -0
- package/dist/commonjs/List/List.jest.js +517 -0
- package/dist/commonjs/List/List.js +318 -0
- package/dist/commonjs/List/index.js +19 -0
- package/dist/commonjs/List/types.js +6 -0
- package/dist/commonjs/Masonry/Masonry.example.js +287 -0
- package/dist/commonjs/Masonry/Masonry.jest.js +450 -0
- package/dist/commonjs/Masonry/Masonry.js +431 -0
- package/dist/commonjs/Masonry/PositionCache.js +88 -0
- package/dist/commonjs/Masonry/createCellPositioner.js +59 -0
- package/dist/commonjs/Masonry/index.js +22 -0
- package/dist/commonjs/MultiGrid/CellMeasurerCacheDecorator.js +106 -0
- package/dist/commonjs/MultiGrid/MultiGrid.example.js +131 -0
- package/dist/commonjs/MultiGrid/MultiGrid.jest.js +584 -0
- package/dist/commonjs/MultiGrid/MultiGrid.js +743 -0
- package/dist/commonjs/MultiGrid/index.js +15 -0
- package/dist/commonjs/ScrollSync/ScrollSync.example.js +257 -0
- package/dist/commonjs/ScrollSync/ScrollSync.jest.js +66 -0
- package/dist/commonjs/ScrollSync/ScrollSync.js +88 -0
- package/dist/commonjs/ScrollSync/index.js +15 -0
- package/dist/commonjs/Table/Column.jest.js +90 -0
- package/dist/commonjs/Table/Column.js +93 -0
- package/dist/commonjs/Table/SortDirection.js +19 -0
- package/dist/commonjs/Table/SortIndicator.js +40 -0
- package/dist/commonjs/Table/Table.example.js +325 -0
- package/dist/commonjs/Table/Table.jest.js +1257 -0
- package/dist/commonjs/Table/Table.js +742 -0
- package/dist/commonjs/Table/createMultiSort.jest.js +165 -0
- package/dist/commonjs/Table/createMultiSort.js +99 -0
- package/dist/commonjs/Table/defaultCellDataGetter.js +21 -0
- package/dist/commonjs/Table/defaultCellRenderer.js +19 -0
- package/dist/commonjs/Table/defaultHeaderRenderer.js +35 -0
- package/dist/commonjs/Table/defaultHeaderRowRenderer.js +21 -0
- package/dist/commonjs/Table/defaultRowRenderer.js +87 -0
- package/dist/commonjs/Table/index.js +78 -0
- package/dist/commonjs/Table/types.js +39 -0
- package/dist/commonjs/WindowScroller/WindowScroller.e2e.js +298 -0
- package/dist/commonjs/WindowScroller/WindowScroller.example.js +167 -0
- package/dist/commonjs/WindowScroller/WindowScroller.header-resize.e2e.js +359 -0
- package/dist/commonjs/WindowScroller/WindowScroller.jest.js +536 -0
- package/dist/commonjs/WindowScroller/WindowScroller.js +268 -0
- package/dist/commonjs/WindowScroller/WindowScroller.ssr.js +25 -0
- package/dist/commonjs/WindowScroller/index.js +23 -0
- package/dist/commonjs/WindowScroller/utils/dimensions.js +89 -0
- package/dist/commonjs/WindowScroller/utils/onScroll.js +70 -0
- package/dist/commonjs/index.js +180 -0
- package/dist/commonjs/jest-setup.js +7 -0
- package/dist/commonjs/utils/TestHelper.js +36 -0
- package/dist/commonjs/utils/animationFrame.js +29 -0
- package/dist/commonjs/utils/createCallbackMemoizer.jest.js +219 -0
- package/dist/commonjs/utils/createCallbackMemoizer.js +31 -0
- package/dist/commonjs/utils/getUpdatedOffsetForIndex.jest.js +68 -0
- package/dist/commonjs/utils/getUpdatedOffsetForIndex.js +38 -0
- package/dist/commonjs/utils/initCellMetadata.js +37 -0
- package/dist/commonjs/utils/requestAnimationTimeout.js +38 -0
- package/dist/commonjs/vendor/binarySearchBounds.js +200 -0
- package/dist/commonjs/vendor/detectElementResize.js +192 -0
- package/dist/commonjs/vendor/intervalTree.js +361 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.example.js +176 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.jest.js +332 -0
- package/dist/es/ArrowKeyStepper/ArrowKeyStepper.js +197 -0
- package/dist/es/ArrowKeyStepper/index.js +3 -0
- package/dist/es/ArrowKeyStepper/types.js +4 -0
- package/dist/es/AutoSizer/AutoSizer.example.js +96 -0
- package/dist/es/AutoSizer/AutoSizer.jest.js +335 -0
- package/dist/es/AutoSizer/AutoSizer.js +190 -0
- package/dist/es/AutoSizer/AutoSizer.js.flow +200 -0
- package/dist/es/AutoSizer/AutoSizer.ssr.js +19 -0
- package/dist/es/AutoSizer/index.js +2 -0
- package/dist/es/AutoSizer/index.js.flow +4 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +91 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +90 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +98 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +93 -0
- package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +98 -0
- package/dist/es/CellMeasurer/CellMeasurer.example.js +120 -0
- package/dist/es/CellMeasurer/CellMeasurer.jest.js +340 -0
- package/dist/es/CellMeasurer/CellMeasurer.js +187 -0
- package/dist/es/CellMeasurer/CellMeasurerCache.jest.js +293 -0
- package/dist/es/CellMeasurer/CellMeasurerCache.js +196 -0
- package/dist/es/CellMeasurer/index.js +4 -0
- package/dist/es/CellMeasurer/types.js +13 -0
- package/dist/es/Collection/Collection.example.js +223 -0
- package/dist/es/Collection/Collection.jest.js +824 -0
- package/dist/es/Collection/Collection.js +257 -0
- package/dist/es/Collection/CollectionView.js +544 -0
- package/dist/es/Collection/Section.jest.js +60 -0
- package/dist/es/Collection/Section.js +51 -0
- package/dist/es/Collection/SectionManager.jest.js +118 -0
- package/dist/es/Collection/SectionManager.js +128 -0
- package/dist/es/Collection/TestData.js +71 -0
- package/dist/es/Collection/index.js +3 -0
- package/dist/es/Collection/types.js +21 -0
- package/dist/es/Collection/utils/calculateSizeAndPositionData.jest.js +31 -0
- package/dist/es/Collection/utils/calculateSizeAndPositionData.js +31 -0
- package/dist/es/ColumnSizer/ColumnSizer.example.js +150 -0
- package/dist/es/ColumnSizer/ColumnSizer.jest.js +123 -0
- package/dist/es/ColumnSizer/ColumnSizer.js +95 -0
- package/dist/es/ColumnSizer/index.js +3 -0
- package/dist/es/Grid/Grid.example.js +321 -0
- package/dist/es/Grid/Grid.jest.js +2555 -0
- package/dist/es/Grid/Grid.js +1425 -0
- package/dist/es/Grid/Grid.ssr.js +57 -0
- package/dist/es/Grid/accessibilityOverscanIndicesGetter.jest.js +87 -0
- package/dist/es/Grid/accessibilityOverscanIndicesGetter.js +33 -0
- package/dist/es/Grid/defaultCellRangeRenderer.js +134 -0
- package/dist/es/Grid/defaultOverscanIndicesGetter.jest.js +87 -0
- package/dist/es/Grid/defaultOverscanIndicesGetter.js +29 -0
- package/dist/es/Grid/index.js +15 -0
- package/dist/es/Grid/types.js +96 -0
- package/dist/es/Grid/utils/CellSizeAndPositionManager.jest.js +372 -0
- package/dist/es/Grid/utils/CellSizeAndPositionManager.js +290 -0
- package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +198 -0
- package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js +198 -0
- package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +81 -0
- package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +53 -0
- package/dist/es/Grid/utils/maxElementSize.js +16 -0
- package/dist/es/Grid/utils/updateScrollIndexHelper.jest.js +174 -0
- package/dist/es/Grid/utils/updateScrollIndexHelper.js +79 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.example.js +170 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.jest.js +565 -0
- package/dist/es/InfiniteLoader/InfiniteLoader.js +263 -0
- package/dist/es/InfiniteLoader/index.js +3 -0
- package/dist/es/List/List.example.js +227 -0
- package/dist/es/List/List.jest.js +511 -0
- package/dist/es/List/List.js +312 -0
- package/dist/es/List/index.js +3 -0
- package/dist/es/List/types.js +21 -0
- package/dist/es/Masonry/Masonry.example.js +278 -0
- package/dist/es/Masonry/Masonry.jest.js +444 -0
- package/dist/es/Masonry/Masonry.js +421 -0
- package/dist/es/Masonry/PositionCache.js +82 -0
- package/dist/es/Masonry/createCellPositioner.js +53 -0
- package/dist/es/Masonry/index.js +4 -0
- package/dist/es/MultiGrid/CellMeasurerCacheDecorator.js +100 -0
- package/dist/es/MultiGrid/MultiGrid.example.js +122 -0
- package/dist/es/MultiGrid/MultiGrid.jest.js +579 -0
- package/dist/es/MultiGrid/MultiGrid.js +733 -0
- package/dist/es/MultiGrid/index.js +3 -0
- package/dist/es/ScrollSync/ScrollSync.example.js +248 -0
- package/dist/es/ScrollSync/ScrollSync.jest.js +60 -0
- package/dist/es/ScrollSync/ScrollSync.js +80 -0
- package/dist/es/ScrollSync/index.js +3 -0
- package/dist/es/Table/Column.jest.js +84 -0
- package/dist/es/Table/Column.js +85 -0
- package/dist/es/Table/SortDirection.js +13 -0
- package/dist/es/Table/SortIndicator.js +31 -0
- package/dist/es/Table/Table.example.js +316 -0
- package/dist/es/Table/Table.jest.js +1251 -0
- package/dist/es/Table/Table.js +735 -0
- package/dist/es/Table/createMultiSort.jest.js +162 -0
- package/dist/es/Table/createMultiSort.js +93 -0
- package/dist/es/Table/defaultCellDataGetter.js +15 -0
- package/dist/es/Table/defaultCellRenderer.js +13 -0
- package/dist/es/Table/defaultHeaderRenderer.js +25 -0
- package/dist/es/Table/defaultHeaderRowRenderer.js +12 -0
- package/dist/es/Table/defaultRowRenderer.js +77 -0
- package/dist/es/Table/index.js +12 -0
- package/dist/es/Table/types.js +38 -0
- package/dist/es/WindowScroller/WindowScroller.e2e.js +295 -0
- package/dist/es/WindowScroller/WindowScroller.example.js +158 -0
- package/dist/es/WindowScroller/WindowScroller.header-resize.e2e.js +356 -0
- package/dist/es/WindowScroller/WindowScroller.jest.js +530 -0
- package/dist/es/WindowScroller/WindowScroller.js +259 -0
- package/dist/es/WindowScroller/WindowScroller.js.flow +277 -0
- package/dist/es/WindowScroller/WindowScroller.ssr.js +19 -0
- package/dist/es/WindowScroller/index.js +3 -0
- package/dist/es/WindowScroller/index.js.flow +6 -0
- package/dist/es/WindowScroller/utils/dimensions.js +81 -0
- package/dist/es/WindowScroller/utils/dimensions.js.flow +91 -0
- package/dist/es/WindowScroller/utils/onScroll.js +64 -0
- package/dist/es/WindowScroller/utils/onScroll.js.flow +94 -0
- package/dist/es/index.js +13 -0
- package/dist/es/jest-setup.js +5 -0
- package/dist/es/utils/TestHelper.js +30 -0
- package/dist/es/utils/animationFrame.js +23 -0
- package/dist/es/utils/createCallbackMemoizer.jest.js +216 -0
- package/dist/es/utils/createCallbackMemoizer.js +25 -0
- package/dist/es/utils/getUpdatedOffsetForIndex.jest.js +65 -0
- package/dist/es/utils/getUpdatedOffsetForIndex.js +32 -0
- package/dist/es/utils/initCellMetadata.js +31 -0
- package/dist/es/utils/requestAnimationTimeout.js +32 -0
- package/dist/es/vendor/binarySearchBounds.js +194 -0
- package/dist/es/vendor/detectElementResize.js +186 -0
- package/dist/es/vendor/intervalTree.js +354 -0
- package/dist/umd/react-virtualized.js +4638 -0
- package/package.json +188 -0
- package/styles.css +80 -0
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
var React = _interopRequireWildcard(require("react"));
|
|
7
|
+
var _reactDom = require("react-dom");
|
|
8
|
+
var _TestUtils = require("../TestUtils");
|
|
9
|
+
var _testUtils = require("react-dom/test-utils");
|
|
10
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
11
|
+
var _List = _interopRequireDefault(require("./List"));
|
|
12
|
+
var _Grid = require("../Grid");
|
|
13
|
+
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); }
|
|
14
|
+
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; }
|
|
15
|
+
describe('List', function () {
|
|
16
|
+
var array = [];
|
|
17
|
+
for (var i = 0; i < 100; i++) {
|
|
18
|
+
array.push("Name ".concat(i));
|
|
19
|
+
}
|
|
20
|
+
var names = _immutable["default"].fromJS(array);
|
|
21
|
+
|
|
22
|
+
// Override default behavior of overscanning by at least 1 (for accessibility)
|
|
23
|
+
// Because it makes for simple tests below
|
|
24
|
+
function overscanIndicesGetter(_ref) {
|
|
25
|
+
var startIndex = _ref.startIndex,
|
|
26
|
+
stopIndex = _ref.stopIndex;
|
|
27
|
+
return {
|
|
28
|
+
overscanStartIndex: startIndex,
|
|
29
|
+
overscanStopIndex: stopIndex
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function getMarkup() {
|
|
33
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
34
|
+
function rowRenderer(_ref2) {
|
|
35
|
+
var index = _ref2.index,
|
|
36
|
+
key = _ref2.key,
|
|
37
|
+
style = _ref2.style;
|
|
38
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: "listItem",
|
|
40
|
+
key: key,
|
|
41
|
+
style: style
|
|
42
|
+
}, names.get(index));
|
|
43
|
+
}
|
|
44
|
+
return /*#__PURE__*/React.createElement(_List["default"], (0, _extends2["default"])({
|
|
45
|
+
height: 100,
|
|
46
|
+
overscanIndicesGetter: overscanIndicesGetter,
|
|
47
|
+
overscanRowCount: 0,
|
|
48
|
+
rowHeight: 10,
|
|
49
|
+
rowCount: names.size,
|
|
50
|
+
rowRenderer: rowRenderer,
|
|
51
|
+
width: 100
|
|
52
|
+
}, props));
|
|
53
|
+
}
|
|
54
|
+
describe('number of rendered children', function () {
|
|
55
|
+
it('should render enough children to fill the view', function () {
|
|
56
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
57
|
+
expect(rendered.querySelectorAll('.listItem').length).toEqual(10);
|
|
58
|
+
});
|
|
59
|
+
it('should not render more children than available if the list is not filled', function () {
|
|
60
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
61
|
+
rowCount: 5
|
|
62
|
+
})));
|
|
63
|
+
expect(rendered.querySelectorAll('.listItem').length).toEqual(5);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('scrollToPosition', function () {
|
|
67
|
+
it('should scroll to the top', function () {
|
|
68
|
+
var instance = (0, _TestUtils.render)(getMarkup({
|
|
69
|
+
rowHeight: 10
|
|
70
|
+
}));
|
|
71
|
+
instance.scrollToPosition(100);
|
|
72
|
+
var rendered = (0, _reactDom.findDOMNode)(instance);
|
|
73
|
+
expect(rendered.textContent).toContain('Name 10');
|
|
74
|
+
expect(rendered.textContent).toContain('Name 19');
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
/** Tests scrolling via initial props */
|
|
79
|
+
describe('scrollToIndex', function () {
|
|
80
|
+
it('should scroll to the top', function () {
|
|
81
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
82
|
+
scrollToIndex: 0
|
|
83
|
+
})));
|
|
84
|
+
expect(rendered.textContent).toContain('Name 0');
|
|
85
|
+
});
|
|
86
|
+
it('should scroll down to the middle', function () {
|
|
87
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
88
|
+
scrollToIndex: 49
|
|
89
|
+
})));
|
|
90
|
+
// 100 items * 10 item height = 1,000 total item height
|
|
91
|
+
// 10 items can be visible at a time and :scrollTop is initially 0,
|
|
92
|
+
// So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).
|
|
93
|
+
expect(rendered.textContent).toContain('Name 49');
|
|
94
|
+
});
|
|
95
|
+
it('should scroll to the bottom', function () {
|
|
96
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
97
|
+
scrollToIndex: 99
|
|
98
|
+
})));
|
|
99
|
+
// 100 height - 10 header = 90 available scroll space.
|
|
100
|
+
// 100 items * 10 item height = 1,000 total item height
|
|
101
|
+
// Target height for the last item then is 1000 - 90
|
|
102
|
+
expect(rendered.textContent).toContain('Name 99');
|
|
103
|
+
});
|
|
104
|
+
it('should scroll to the correct position for :scrollToAlignment "start"', function () {
|
|
105
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
106
|
+
scrollToAlignment: 'start',
|
|
107
|
+
scrollToIndex: 49
|
|
108
|
+
})));
|
|
109
|
+
// 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.
|
|
110
|
+
expect(rendered.textContent).toContain('Name 49');
|
|
111
|
+
expect(rendered.textContent).toContain('Name 58');
|
|
112
|
+
});
|
|
113
|
+
it('should scroll to the correct position for :scrollToAlignment "end"', function () {
|
|
114
|
+
(0, _TestUtils.render)(getMarkup({
|
|
115
|
+
scrollToIndex: 99
|
|
116
|
+
}));
|
|
117
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
118
|
+
scrollToAlignment: 'end',
|
|
119
|
+
scrollToIndex: 49
|
|
120
|
+
})));
|
|
121
|
+
// 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.
|
|
122
|
+
expect(rendered.textContent).toContain('Name 40');
|
|
123
|
+
expect(rendered.textContent).toContain('Name 49');
|
|
124
|
+
});
|
|
125
|
+
it('should scroll to the correct position for :scrollToAlignment "center"', function () {
|
|
126
|
+
(0, _TestUtils.render)(getMarkup({
|
|
127
|
+
scrollToIndex: 99
|
|
128
|
+
}));
|
|
129
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
130
|
+
scrollToAlignment: 'center',
|
|
131
|
+
scrollToIndex: 49
|
|
132
|
+
})));
|
|
133
|
+
// 100 items * 10 item height = 1,000 total item height; 11 items can be visible at a time (the first and last item are only partially visible)
|
|
134
|
+
expect(rendered.textContent).toContain('Name 44');
|
|
135
|
+
expect(rendered.textContent).toContain('Name 54');
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('property updates', function () {
|
|
139
|
+
it('should update :scrollToIndex position when :rowHeight changes', function () {
|
|
140
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
141
|
+
scrollToIndex: 50
|
|
142
|
+
})));
|
|
143
|
+
expect(rendered.textContent).toContain('Name 50');
|
|
144
|
+
// Making rows taller pushes name off/beyond the scrolled area
|
|
145
|
+
rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
146
|
+
scrollToIndex: 50,
|
|
147
|
+
rowHeight: 20
|
|
148
|
+
})));
|
|
149
|
+
expect(rendered.textContent).toContain('Name 50');
|
|
150
|
+
});
|
|
151
|
+
it('should update :scrollToIndex position when :height changes', function () {
|
|
152
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
153
|
+
scrollToIndex: 50
|
|
154
|
+
})));
|
|
155
|
+
expect(rendered.textContent).toContain('Name 50');
|
|
156
|
+
// Making the list shorter leaves only room for 1 item
|
|
157
|
+
rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
158
|
+
scrollToIndex: 50,
|
|
159
|
+
height: 20
|
|
160
|
+
})));
|
|
161
|
+
expect(rendered.textContent).toContain('Name 50');
|
|
162
|
+
});
|
|
163
|
+
it('should update :scrollToIndex position when :scrollToIndex changes', function () {
|
|
164
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
165
|
+
expect(rendered.textContent).not.toContain('Name 50');
|
|
166
|
+
rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
167
|
+
scrollToIndex: 50
|
|
168
|
+
})));
|
|
169
|
+
expect(rendered.textContent).toContain('Name 50');
|
|
170
|
+
});
|
|
171
|
+
it('should update scroll position if size shrinks smaller than the current scroll', function () {
|
|
172
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
173
|
+
scrollToIndex: 500
|
|
174
|
+
})));
|
|
175
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
176
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
177
|
+
scrollToIndex: 500,
|
|
178
|
+
rowCount: 10
|
|
179
|
+
})));
|
|
180
|
+
expect(rendered.textContent).toContain('Name 9');
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
describe('noRowsRenderer', function () {
|
|
184
|
+
it('should call :noRowsRenderer if :rowCount is 0', function () {
|
|
185
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
186
|
+
noRowsRenderer: function noRowsRenderer() {
|
|
187
|
+
return /*#__PURE__*/React.createElement("div", null, "No rows!");
|
|
188
|
+
},
|
|
189
|
+
rowCount: 0
|
|
190
|
+
})));
|
|
191
|
+
expect(rendered.textContent).toEqual('No rows!');
|
|
192
|
+
});
|
|
193
|
+
it('should render an empty body if :rowCount is 0 and there is no :noRowsRenderer', function () {
|
|
194
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
195
|
+
rowCount: 0
|
|
196
|
+
})));
|
|
197
|
+
expect(rendered.textContent).toEqual('');
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
describe('onRowsRendered', function () {
|
|
201
|
+
it('should call :onRowsRendered if at least one row is rendered', function () {
|
|
202
|
+
var startIndex, stopIndex;
|
|
203
|
+
(0, _TestUtils.render)(getMarkup({
|
|
204
|
+
onRowsRendered: function onRowsRendered(params) {
|
|
205
|
+
var _params;
|
|
206
|
+
return _params = params, startIndex = _params.startIndex, stopIndex = _params.stopIndex, _params;
|
|
207
|
+
}
|
|
208
|
+
}));
|
|
209
|
+
expect(startIndex).toEqual(0);
|
|
210
|
+
expect(stopIndex).toEqual(9);
|
|
211
|
+
});
|
|
212
|
+
it('should not call :onRowsRendered unless the start or stop indices have changed', function () {
|
|
213
|
+
var numCalls = 0;
|
|
214
|
+
var startIndex;
|
|
215
|
+
var stopIndex;
|
|
216
|
+
var onRowsRendered = function onRowsRendered(params) {
|
|
217
|
+
startIndex = params.startIndex;
|
|
218
|
+
stopIndex = params.stopIndex;
|
|
219
|
+
numCalls++;
|
|
220
|
+
};
|
|
221
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
222
|
+
onRowsRendered: onRowsRendered
|
|
223
|
+
})));
|
|
224
|
+
expect(numCalls).toEqual(1);
|
|
225
|
+
expect(startIndex).toEqual(0);
|
|
226
|
+
expect(stopIndex).toEqual(9);
|
|
227
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
228
|
+
onRowsRendered: onRowsRendered
|
|
229
|
+
})));
|
|
230
|
+
expect(numCalls).toEqual(1);
|
|
231
|
+
expect(startIndex).toEqual(0);
|
|
232
|
+
expect(stopIndex).toEqual(9);
|
|
233
|
+
});
|
|
234
|
+
it('should call :onRowsRendered if the start or stop indices have changed', function () {
|
|
235
|
+
var numCalls = 0;
|
|
236
|
+
var startIndex;
|
|
237
|
+
var stopIndex;
|
|
238
|
+
var onRowsRendered = function onRowsRendered(params) {
|
|
239
|
+
startIndex = params.startIndex;
|
|
240
|
+
stopIndex = params.stopIndex;
|
|
241
|
+
numCalls++;
|
|
242
|
+
};
|
|
243
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
244
|
+
onRowsRendered: onRowsRendered
|
|
245
|
+
})));
|
|
246
|
+
expect(numCalls).toEqual(1);
|
|
247
|
+
expect(startIndex).toEqual(0);
|
|
248
|
+
expect(stopIndex).toEqual(9);
|
|
249
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
250
|
+
height: 50,
|
|
251
|
+
onRowsRendered: onRowsRendered
|
|
252
|
+
})));
|
|
253
|
+
expect(numCalls).toEqual(2);
|
|
254
|
+
expect(startIndex).toEqual(0);
|
|
255
|
+
expect(stopIndex).toEqual(4);
|
|
256
|
+
});
|
|
257
|
+
it('should not call :onRowsRendered if no rows are rendered', function () {
|
|
258
|
+
var startIndex, stopIndex;
|
|
259
|
+
(0, _TestUtils.render)(getMarkup({
|
|
260
|
+
height: 0,
|
|
261
|
+
onRowsRendered: function onRowsRendered(params) {
|
|
262
|
+
var _params2;
|
|
263
|
+
return _params2 = params, startIndex = _params2.startIndex, stopIndex = _params2.stopIndex, _params2;
|
|
264
|
+
}
|
|
265
|
+
}));
|
|
266
|
+
expect(startIndex).toEqual(undefined);
|
|
267
|
+
expect(stopIndex).toEqual(undefined);
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
describe(':scrollTop property', function () {
|
|
271
|
+
it('should render correctly when an initial :scrollTop property is specified', function () {
|
|
272
|
+
var startIndex, stopIndex;
|
|
273
|
+
(0, _TestUtils.render)(getMarkup({
|
|
274
|
+
onRowsRendered: function onRowsRendered(params) {
|
|
275
|
+
var _params3;
|
|
276
|
+
return _params3 = params, startIndex = _params3.startIndex, stopIndex = _params3.stopIndex, _params3;
|
|
277
|
+
},
|
|
278
|
+
scrollTop: 100
|
|
279
|
+
}));
|
|
280
|
+
expect(startIndex).toEqual(10);
|
|
281
|
+
expect(stopIndex).toEqual(19);
|
|
282
|
+
});
|
|
283
|
+
it('should render correctly when :scrollTop property is updated', function () {
|
|
284
|
+
var startIndex, stopIndex;
|
|
285
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
286
|
+
onRowsRendered: function onRowsRendered(params) {
|
|
287
|
+
var _params4;
|
|
288
|
+
return _params4 = params, startIndex = _params4.startIndex, stopIndex = _params4.stopIndex, _params4;
|
|
289
|
+
}
|
|
290
|
+
})));
|
|
291
|
+
expect(startIndex).toEqual(0);
|
|
292
|
+
expect(stopIndex).toEqual(9);
|
|
293
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
294
|
+
onRowsRendered: function onRowsRendered(params) {
|
|
295
|
+
var _params5;
|
|
296
|
+
return _params5 = params, startIndex = _params5.startIndex, stopIndex = _params5.stopIndex, _params5;
|
|
297
|
+
},
|
|
298
|
+
scrollTop: 100
|
|
299
|
+
})));
|
|
300
|
+
expect(startIndex).toEqual(10);
|
|
301
|
+
expect(stopIndex).toEqual(19);
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
describe('styles, classNames, and ids', function () {
|
|
305
|
+
it('should use the expected global CSS classNames', function () {
|
|
306
|
+
var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
307
|
+
expect(node.className).toContain('ReactVirtualized__List');
|
|
308
|
+
});
|
|
309
|
+
it('should use a custom :className if specified', function () {
|
|
310
|
+
var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
311
|
+
className: 'foo'
|
|
312
|
+
})));
|
|
313
|
+
expect(node.className).toContain('foo');
|
|
314
|
+
});
|
|
315
|
+
it('should use a custom :id if specified', function () {
|
|
316
|
+
var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
317
|
+
id: 'bar'
|
|
318
|
+
})));
|
|
319
|
+
expect(node.getAttribute('id')).toEqual('bar');
|
|
320
|
+
});
|
|
321
|
+
it('should use a custom :style if specified', function () {
|
|
322
|
+
var style = {
|
|
323
|
+
backgroundColor: 'red'
|
|
324
|
+
};
|
|
325
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
326
|
+
style: style
|
|
327
|
+
})));
|
|
328
|
+
expect(rendered.style.backgroundColor).toEqual('red');
|
|
329
|
+
});
|
|
330
|
+
it('should set the width of a row to be 100% by default', function () {
|
|
331
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
332
|
+
var cell = rendered.querySelector('.listItem');
|
|
333
|
+
expect(cell.style.width).toEqual('100%');
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
describe('overscanRowCount', function () {
|
|
337
|
+
it('should not overscan by default', function () {
|
|
338
|
+
var mock = jest.fn();
|
|
339
|
+
mock.mockImplementation(overscanIndicesGetter);
|
|
340
|
+
(0, _TestUtils.render)(getMarkup({
|
|
341
|
+
overscanIndicesGetter: mock
|
|
342
|
+
}));
|
|
343
|
+
expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
|
|
344
|
+
expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(0);
|
|
345
|
+
});
|
|
346
|
+
it('should overscan the specified amount', function () {
|
|
347
|
+
var mock = jest.fn();
|
|
348
|
+
mock.mockImplementation(overscanIndicesGetter);
|
|
349
|
+
(0, _TestUtils.render)(getMarkup({
|
|
350
|
+
overscanIndicesGetter: mock,
|
|
351
|
+
overscanRowCount: 10
|
|
352
|
+
}));
|
|
353
|
+
expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
|
|
354
|
+
expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(10);
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
describe('onScroll', function () {
|
|
358
|
+
it('should trigger callback when component initially mounts', function () {
|
|
359
|
+
var onScrollCalls = [];
|
|
360
|
+
(0, _TestUtils.render)(getMarkup({
|
|
361
|
+
onScroll: function onScroll(params) {
|
|
362
|
+
return onScrollCalls.push(params);
|
|
363
|
+
}
|
|
364
|
+
}));
|
|
365
|
+
expect(onScrollCalls).toEqual([{
|
|
366
|
+
clientHeight: 100,
|
|
367
|
+
scrollHeight: 1000,
|
|
368
|
+
scrollTop: 0
|
|
369
|
+
}]);
|
|
370
|
+
});
|
|
371
|
+
it('should trigger callback when component scrolls', function () {
|
|
372
|
+
var onScrollCalls = [];
|
|
373
|
+
var rendered = (0, _TestUtils.render)(getMarkup({
|
|
374
|
+
onScroll: function onScroll(params) {
|
|
375
|
+
return onScrollCalls.push(params);
|
|
376
|
+
}
|
|
377
|
+
}));
|
|
378
|
+
var target = {
|
|
379
|
+
scrollLeft: 0,
|
|
380
|
+
scrollTop: 100
|
|
381
|
+
};
|
|
382
|
+
rendered.Grid._scrollingContainer = target; // HACK to work around _onScroll target check
|
|
383
|
+
_testUtils.Simulate.scroll((0, _reactDom.findDOMNode)(rendered), {
|
|
384
|
+
target: target
|
|
385
|
+
});
|
|
386
|
+
expect(onScrollCalls[onScrollCalls.length - 1]).toEqual({
|
|
387
|
+
clientHeight: 100,
|
|
388
|
+
scrollHeight: 1000,
|
|
389
|
+
scrollTop: 100
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
});
|
|
393
|
+
describe('measureAllRows', function () {
|
|
394
|
+
it('should measure any unmeasured rows', function () {
|
|
395
|
+
var rendered = (0, _TestUtils.render)(getMarkup({
|
|
396
|
+
estimatedRowSize: 15,
|
|
397
|
+
height: 0,
|
|
398
|
+
rowCount: 10,
|
|
399
|
+
rowHeight: function rowHeight() {
|
|
400
|
+
return 20;
|
|
401
|
+
},
|
|
402
|
+
width: 0
|
|
403
|
+
}));
|
|
404
|
+
expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
|
|
405
|
+
rendered.measureAllRows();
|
|
406
|
+
expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
|
|
407
|
+
});
|
|
408
|
+
});
|
|
409
|
+
describe('recomputeRowHeights', function () {
|
|
410
|
+
it('should recompute row heights and other values when called', function () {
|
|
411
|
+
var indices = [];
|
|
412
|
+
var rowHeight = function rowHeight(_ref3) {
|
|
413
|
+
var index = _ref3.index;
|
|
414
|
+
indices.push(index);
|
|
415
|
+
return 10;
|
|
416
|
+
};
|
|
417
|
+
var component = (0, _TestUtils.render)(getMarkup({
|
|
418
|
+
rowHeight: rowHeight,
|
|
419
|
+
rowCount: 50
|
|
420
|
+
}));
|
|
421
|
+
indices.splice(0);
|
|
422
|
+
component.recomputeRowHeights();
|
|
423
|
+
|
|
424
|
+
// Only the rows required to fill the current viewport will be rendered
|
|
425
|
+
expect(indices[0]).toEqual(0);
|
|
426
|
+
expect(indices[indices.length - 1]).toEqual(9);
|
|
427
|
+
indices.splice(0);
|
|
428
|
+
component.recomputeRowHeights(4);
|
|
429
|
+
expect(indices[0]).toEqual(4);
|
|
430
|
+
expect(indices[indices.length - 1]).toEqual(9);
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
describe('forceUpdateGrid', function () {
|
|
434
|
+
it('should refresh inner Grid content when called', function () {
|
|
435
|
+
var marker = 'a';
|
|
436
|
+
function rowRenderer(_ref4) {
|
|
437
|
+
var index = _ref4.index,
|
|
438
|
+
key = _ref4.key,
|
|
439
|
+
style = _ref4.style;
|
|
440
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
441
|
+
key: key,
|
|
442
|
+
style: style
|
|
443
|
+
}, index, marker);
|
|
444
|
+
}
|
|
445
|
+
var component = (0, _TestUtils.render)(getMarkup({
|
|
446
|
+
rowRenderer: rowRenderer
|
|
447
|
+
}));
|
|
448
|
+
var node = (0, _reactDom.findDOMNode)(component);
|
|
449
|
+
expect(node.textContent).toContain('1a');
|
|
450
|
+
marker = 'b';
|
|
451
|
+
component.forceUpdateGrid();
|
|
452
|
+
expect(node.textContent).toContain('1b');
|
|
453
|
+
});
|
|
454
|
+
});
|
|
455
|
+
describe('tabIndex', function () {
|
|
456
|
+
it('should be focusable by default', function () {
|
|
457
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
458
|
+
expect(rendered.tabIndex).toEqual(0);
|
|
459
|
+
});
|
|
460
|
+
it('should allow tabIndex to be overridden', function () {
|
|
461
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
462
|
+
tabIndex: -1
|
|
463
|
+
})));
|
|
464
|
+
expect(rendered.tabIndex).toEqual(-1);
|
|
465
|
+
});
|
|
466
|
+
});
|
|
467
|
+
it('should pass the cellRenderer an :isVisible flag', function () {
|
|
468
|
+
var rowRendererCalls = [];
|
|
469
|
+
function rowRenderer(props) {
|
|
470
|
+
rowRendererCalls.push(props);
|
|
471
|
+
return null;
|
|
472
|
+
}
|
|
473
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
474
|
+
height: 50,
|
|
475
|
+
overscanIndicesGetter: _Grid.defaultOverscanIndicesGetter,
|
|
476
|
+
overscanRowCount: 1,
|
|
477
|
+
rowHeight: 50,
|
|
478
|
+
rowRenderer: rowRenderer
|
|
479
|
+
})));
|
|
480
|
+
expect(rowRendererCalls[0].isVisible).toEqual(true);
|
|
481
|
+
expect(rowRendererCalls[1].isVisible).toEqual(false);
|
|
482
|
+
});
|
|
483
|
+
it('should relay the Grid :parent param to the :rowRenderer', function () {
|
|
484
|
+
var rowRenderer = jest.fn().mockReturnValue(null);
|
|
485
|
+
(0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
486
|
+
rowRenderer: rowRenderer
|
|
487
|
+
})));
|
|
488
|
+
expect(rowRenderer.mock.calls[0][0].parent).not.toBeUndefined();
|
|
489
|
+
});
|
|
490
|
+
describe('pure', function () {
|
|
491
|
+
it('should not re-render unless props have changed', function () {
|
|
492
|
+
var rowRendererCalled = false;
|
|
493
|
+
function rowRenderer(_ref5) {
|
|
494
|
+
var index = _ref5.index,
|
|
495
|
+
key = _ref5.key,
|
|
496
|
+
style = _ref5.style;
|
|
497
|
+
rowRendererCalled = true;
|
|
498
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
499
|
+
key: key,
|
|
500
|
+
style: style
|
|
501
|
+
}, index);
|
|
502
|
+
}
|
|
503
|
+
var markup = getMarkup({
|
|
504
|
+
rowRenderer: rowRenderer
|
|
505
|
+
});
|
|
506
|
+
(0, _TestUtils.render)(markup);
|
|
507
|
+
expect(rowRendererCalled).toEqual(true);
|
|
508
|
+
rowRendererCalled = false;
|
|
509
|
+
(0, _TestUtils.render)(markup);
|
|
510
|
+
expect(rowRendererCalled).toEqual(false);
|
|
511
|
+
});
|
|
512
|
+
});
|
|
513
|
+
it('should set the width of the single-column inner Grid to auto', function () {
|
|
514
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
|
|
515
|
+
expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
|
|
516
|
+
});
|
|
517
|
+
});
|