@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,584 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactDom = require("react-dom");
|
|
9
|
+
var _TestUtils = require("../TestUtils");
|
|
10
|
+
var _MultiGrid = _interopRequireDefault(require("./MultiGrid"));
|
|
11
|
+
var _CellMeasurer = require("../CellMeasurer");
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
// These tests only focus on what MultiGrid does specifically.
|
|
15
|
+
// The inner Grid component is tested in depth elsewhere.
|
|
16
|
+
describe('MultiGrid', function () {
|
|
17
|
+
function defaultCellRenderer(_ref) {
|
|
18
|
+
var columnIndex = _ref.columnIndex,
|
|
19
|
+
key = _ref.key,
|
|
20
|
+
rowIndex = _ref.rowIndex,
|
|
21
|
+
style = _ref.style;
|
|
22
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
className: "gridItem",
|
|
24
|
+
key: key,
|
|
25
|
+
style: style
|
|
26
|
+
}, "row:".concat(rowIndex, ", column:").concat(columnIndex));
|
|
27
|
+
}
|
|
28
|
+
function getMarkup() {
|
|
29
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
|
+
return /*#__PURE__*/React.createElement(_MultiGrid["default"], (0, _extends2["default"])({
|
|
31
|
+
cellRenderer: defaultCellRenderer,
|
|
32
|
+
columnCount: 50,
|
|
33
|
+
columnWidth: 50,
|
|
34
|
+
fixedColumnCount: 2,
|
|
35
|
+
fixedRowCount: 1,
|
|
36
|
+
height: 300,
|
|
37
|
+
overscanColumnCount: 0,
|
|
38
|
+
overscanRowCount: 0,
|
|
39
|
+
autoHeight: false,
|
|
40
|
+
rowHeight: 20,
|
|
41
|
+
rowCount: 100,
|
|
42
|
+
width: 400
|
|
43
|
+
}, props));
|
|
44
|
+
}
|
|
45
|
+
describe('fixed columns and rows', function () {
|
|
46
|
+
it('should render 4 Grids when configured for fixed columns and rows', function () {
|
|
47
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
48
|
+
fixedColumnCount: 1,
|
|
49
|
+
fixedRowCount: 1
|
|
50
|
+
})));
|
|
51
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
52
|
+
expect(grids.length).toEqual(4);
|
|
53
|
+
var _grids = (0, _slicedToArray2["default"])(grids, 4),
|
|
54
|
+
topLeft = _grids[0],
|
|
55
|
+
topRight = _grids[1],
|
|
56
|
+
bottomLeft = _grids[2],
|
|
57
|
+
bottomRight = _grids[3];
|
|
58
|
+
expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
59
|
+
expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
60
|
+
expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
61
|
+
expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
62
|
+
expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
63
|
+
expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
64
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
65
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
66
|
+
});
|
|
67
|
+
it('should render 2 Grids when configured for fixed columns only', function () {
|
|
68
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
69
|
+
fixedColumnCount: 1,
|
|
70
|
+
fixedRowCount: 0
|
|
71
|
+
})));
|
|
72
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
73
|
+
expect(grids.length).toEqual(2);
|
|
74
|
+
var _grids2 = (0, _slicedToArray2["default"])(grids, 2),
|
|
75
|
+
bottomLeft = _grids2[0],
|
|
76
|
+
bottomRight = _grids2[1];
|
|
77
|
+
expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
78
|
+
expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
79
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
80
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
81
|
+
});
|
|
82
|
+
it('should render 2 Grids when configured for fixed rows only', function () {
|
|
83
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
84
|
+
fixedColumnCount: 0,
|
|
85
|
+
fixedRowCount: 1
|
|
86
|
+
})));
|
|
87
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
88
|
+
expect(grids.length).toEqual(2);
|
|
89
|
+
var _grids3 = (0, _slicedToArray2["default"])(grids, 2),
|
|
90
|
+
topRight = _grids3[0],
|
|
91
|
+
bottomRight = _grids3[1];
|
|
92
|
+
expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
93
|
+
expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
94
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
95
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
96
|
+
});
|
|
97
|
+
it('should render 1 Grid when configured for neither fixed columns and rows', function () {
|
|
98
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
99
|
+
fixedColumnCount: 0,
|
|
100
|
+
fixedRowCount: 0
|
|
101
|
+
})));
|
|
102
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
103
|
+
expect(grids.length).toEqual(1);
|
|
104
|
+
var _grids4 = (0, _slicedToArray2["default"])(grids, 1),
|
|
105
|
+
bottomRight = _grids4[0];
|
|
106
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
107
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
108
|
+
});
|
|
109
|
+
it('should adjust the number of Grids when fixed column or row counts change', function () {
|
|
110
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
111
|
+
fixedColumnCount: 2,
|
|
112
|
+
fixedRowCount: 1
|
|
113
|
+
})));
|
|
114
|
+
expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(4);
|
|
115
|
+
rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
116
|
+
fixedColumnCount: 0,
|
|
117
|
+
fixedRowCount: 0
|
|
118
|
+
})));
|
|
119
|
+
expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(1);
|
|
120
|
+
rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
121
|
+
fixedColumnCount: 0,
|
|
122
|
+
fixedRowCount: 2
|
|
123
|
+
})));
|
|
124
|
+
expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(2);
|
|
125
|
+
});
|
|
126
|
+
it('should allow scrolling of fixed Grids when configured for fixed columns and rows with scroll interaction', function () {
|
|
127
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
128
|
+
enableFixedColumnScroll: true,
|
|
129
|
+
enableFixedRowScroll: true,
|
|
130
|
+
fixedColumnCount: 1,
|
|
131
|
+
fixedRowCount: 1
|
|
132
|
+
})));
|
|
133
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
134
|
+
expect(grids.length).toEqual(4);
|
|
135
|
+
var _grids5 = (0, _slicedToArray2["default"])(grids, 4),
|
|
136
|
+
topLeft = _grids5[0],
|
|
137
|
+
topRight = _grids5[1],
|
|
138
|
+
bottomLeft = _grids5[2],
|
|
139
|
+
bottomRight = _grids5[3];
|
|
140
|
+
expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
141
|
+
expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
142
|
+
expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
143
|
+
expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
144
|
+
expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
145
|
+
expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
146
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
147
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe('hideTopRightGridScrollbar, hideBottomLeftGridScrollbar should hide the scrollbars', function () {
|
|
151
|
+
function getScrollbarSize20() {
|
|
152
|
+
return 20;
|
|
153
|
+
}
|
|
154
|
+
it('should add scroll wrappers to hide scroll bar when configured for fixed columns and rows with scroll interaction', function () {
|
|
155
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
156
|
+
enableFixedColumnScroll: true,
|
|
157
|
+
enableFixedRowScroll: true,
|
|
158
|
+
fixedColumnCount: 1,
|
|
159
|
+
fixedRowCount: 1,
|
|
160
|
+
hideTopRightGridScrollbar: true,
|
|
161
|
+
hideBottomLeftGridScrollbar: true,
|
|
162
|
+
getScrollbarSize: getScrollbarSize20
|
|
163
|
+
})));
|
|
164
|
+
var wrappers = rendered.querySelectorAll('.TopRightGrid_ScrollWrapper');
|
|
165
|
+
expect(wrappers.length).toEqual(1);
|
|
166
|
+
var _wrappers = wrappers,
|
|
167
|
+
_wrappers2 = (0, _slicedToArray2["default"])(_wrappers, 1),
|
|
168
|
+
topRightWrapper = _wrappers2[0];
|
|
169
|
+
wrappers = rendered.querySelectorAll('.BottomLeftGrid_ScrollWrapper');
|
|
170
|
+
expect(wrappers.length).toEqual(1);
|
|
171
|
+
var _wrappers3 = wrappers,
|
|
172
|
+
_wrappers4 = (0, _slicedToArray2["default"])(_wrappers3, 1),
|
|
173
|
+
bottomLeftWrapper = _wrappers4[0];
|
|
174
|
+
expect(topRightWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
175
|
+
expect(topRightWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
176
|
+
expect(bottomLeftWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
177
|
+
expect(bottomLeftWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
178
|
+
expect(topRightWrapper.style.getPropertyValue('height')).toEqual('20px');
|
|
179
|
+
expect(bottomLeftWrapper.style.getPropertyValue('height')).toEqual('280px');
|
|
180
|
+
expect(topRightWrapper.style.getPropertyValue('width')).toEqual('350px');
|
|
181
|
+
expect(bottomLeftWrapper.style.getPropertyValue('width')).toEqual('50px');
|
|
182
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
183
|
+
expect(grids.length).toEqual(4);
|
|
184
|
+
var _grids6 = (0, _slicedToArray2["default"])(grids, 4),
|
|
185
|
+
topLeft = _grids6[0],
|
|
186
|
+
topRight = _grids6[1],
|
|
187
|
+
bottomLeft = _grids6[2],
|
|
188
|
+
bottomRight = _grids6[3];
|
|
189
|
+
expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
190
|
+
expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
191
|
+
expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
192
|
+
expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
|
|
193
|
+
expect(topRight.style.getPropertyValue('height')).toEqual('40px');
|
|
194
|
+
expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
|
|
195
|
+
expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
196
|
+
expect(bottomLeft.style.getPropertyValue('width')).toEqual('70px');
|
|
197
|
+
expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
|
|
198
|
+
expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
describe('#recomputeGridSize', function () {
|
|
202
|
+
it('should clear calculated cached styles in recomputeGridSize', function () {
|
|
203
|
+
var fixedRowHeight = 75;
|
|
204
|
+
var fixedColumnWidth = 100;
|
|
205
|
+
function variableRowHeight(_ref2) {
|
|
206
|
+
var index = _ref2.index;
|
|
207
|
+
if (index === 0) {
|
|
208
|
+
return fixedRowHeight;
|
|
209
|
+
}
|
|
210
|
+
return 20;
|
|
211
|
+
}
|
|
212
|
+
function variableColumnWidth(_ref3) {
|
|
213
|
+
var index = _ref3.index;
|
|
214
|
+
if (index === 0) {
|
|
215
|
+
return fixedColumnWidth;
|
|
216
|
+
}
|
|
217
|
+
return 50;
|
|
218
|
+
}
|
|
219
|
+
var multiGrid;
|
|
220
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
221
|
+
fixedColumnCount: 1,
|
|
222
|
+
fixedRowCount: 1,
|
|
223
|
+
rowHeight: variableRowHeight,
|
|
224
|
+
columnWidth: variableColumnWidth,
|
|
225
|
+
ref: function ref(_ref4) {
|
|
226
|
+
multiGrid = _ref4;
|
|
227
|
+
}
|
|
228
|
+
})));
|
|
229
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
230
|
+
expect(grids.length).toEqual(4);
|
|
231
|
+
var _grids7 = (0, _slicedToArray2["default"])(grids, 4),
|
|
232
|
+
topLeft = _grids7[0],
|
|
233
|
+
topRight = _grids7[1],
|
|
234
|
+
bottomLeft = _grids7[2],
|
|
235
|
+
bottomRight = _grids7[3];
|
|
236
|
+
expect(topLeft.style.getPropertyValue('height')).toEqual('75px');
|
|
237
|
+
expect(topRight.style.getPropertyValue('height')).toEqual('75px');
|
|
238
|
+
expect(bottomLeft.style.getPropertyValue('height')).toEqual('225px');
|
|
239
|
+
expect(bottomRight.style.getPropertyValue('height')).toEqual('225px');
|
|
240
|
+
expect(topLeft.style.getPropertyValue('width')).toEqual('100px');
|
|
241
|
+
expect(topRight.style.getPropertyValue('width')).toEqual('300px');
|
|
242
|
+
expect(bottomLeft.style.getPropertyValue('width')).toEqual('100px');
|
|
243
|
+
expect(bottomRight.style.getPropertyValue('width')).toEqual('300px');
|
|
244
|
+
expect(multiGrid._topGridHeight).toEqual(75);
|
|
245
|
+
expect(multiGrid._leftGridWidth).toEqual(100);
|
|
246
|
+
fixedRowHeight = 125;
|
|
247
|
+
fixedColumnWidth = 75;
|
|
248
|
+
multiGrid.recomputeGridSize();
|
|
249
|
+
expect(multiGrid._topGridHeight).toEqual(125);
|
|
250
|
+
expect(multiGrid._leftGridWidth).toEqual(75);
|
|
251
|
+
multiGrid.forceUpdate();
|
|
252
|
+
var gridsAfter = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
253
|
+
expect(gridsAfter.length).toEqual(4);
|
|
254
|
+
var _gridsAfter = (0, _slicedToArray2["default"])(gridsAfter, 4),
|
|
255
|
+
topLeftAfter = _gridsAfter[0],
|
|
256
|
+
topRightAfter = _gridsAfter[1],
|
|
257
|
+
bottomLeftAfter = _gridsAfter[2],
|
|
258
|
+
bottomRightAfter = _gridsAfter[3];
|
|
259
|
+
expect(topLeftAfter.style.getPropertyValue('height')).toEqual('125px');
|
|
260
|
+
expect(topRightAfter.style.getPropertyValue('height')).toEqual('125px');
|
|
261
|
+
expect(bottomLeftAfter.style.getPropertyValue('height')).toEqual('175px');
|
|
262
|
+
expect(bottomRightAfter.style.getPropertyValue('height')).toEqual('175px');
|
|
263
|
+
expect(topLeftAfter.style.getPropertyValue('width')).toEqual('75px');
|
|
264
|
+
expect(topRightAfter.style.getPropertyValue('width')).toEqual('325px');
|
|
265
|
+
expect(bottomLeftAfter.style.getPropertyValue('width')).toEqual('75px');
|
|
266
|
+
expect(bottomRightAfter.style.getPropertyValue('width')).toEqual('325px');
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
describe('scrollToColumn and scrollToRow', function () {
|
|
270
|
+
it('should adjust :scrollLeft for the main Grid when scrollToColumn is used', function () {
|
|
271
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
272
|
+
columnWidth: 50,
|
|
273
|
+
fixedColumnCount: 2,
|
|
274
|
+
scrollToAlignment: 'start',
|
|
275
|
+
scrollToColumn: 19
|
|
276
|
+
})));
|
|
277
|
+
// Bottom-right Grid is the last Grid
|
|
278
|
+
var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3];
|
|
279
|
+
// 20th column, less 2 for the fixed-column Grid, 50px column width
|
|
280
|
+
expect(grid.scrollLeft).toEqual(850);
|
|
281
|
+
});
|
|
282
|
+
it('should adjust :scrollTop for the main Grid when scrollToRow is used', function () {
|
|
283
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
284
|
+
fixedRowCount: 1,
|
|
285
|
+
rowHeight: 50,
|
|
286
|
+
scrollToAlignment: 'start',
|
|
287
|
+
scrollToRow: 19
|
|
288
|
+
})));
|
|
289
|
+
// Bottom-right Grid is the last Grid
|
|
290
|
+
var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3];
|
|
291
|
+
// 20th row, less 1 for the fixed-row Grid, 50px row width
|
|
292
|
+
expect(grid.scrollTop).toEqual(900);
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
describe('#forceUpdateGrids', function () {
|
|
296
|
+
it('should call forceUpdate() on inner Grids', function () {
|
|
297
|
+
var cellRenderer = jest.fn();
|
|
298
|
+
cellRenderer.mockImplementation(function (_ref5) {
|
|
299
|
+
var key = _ref5.key;
|
|
300
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
301
|
+
key: key,
|
|
302
|
+
style: {}
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
var rendered = (0, _TestUtils.render)(getMarkup({
|
|
306
|
+
cellRenderer: cellRenderer,
|
|
307
|
+
columnCount: 2,
|
|
308
|
+
fixedColumnCount: 1,
|
|
309
|
+
fixedRowCount: 1,
|
|
310
|
+
rowCount: 2
|
|
311
|
+
}));
|
|
312
|
+
expect(cellRenderer.mock.calls).toHaveLength(4);
|
|
313
|
+
cellRenderer.mockReset();
|
|
314
|
+
rendered.forceUpdateGrids();
|
|
315
|
+
expect(cellRenderer.mock.calls).toHaveLength(4);
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
describe('#invalidateCellSizeAfterRender', function () {
|
|
319
|
+
it('should call invalidateCellSizeAfterRender() on inner Grids', function () {
|
|
320
|
+
var cellRenderer = jest.fn();
|
|
321
|
+
cellRenderer.mockImplementation(function (_ref6) {
|
|
322
|
+
var key = _ref6.key;
|
|
323
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
324
|
+
key: key,
|
|
325
|
+
style: {}
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
var rendered = (0, _TestUtils.render)(getMarkup({
|
|
329
|
+
cellRenderer: cellRenderer,
|
|
330
|
+
columnCount: 2,
|
|
331
|
+
fixedColumnCount: 1,
|
|
332
|
+
fixedRowCount: 1,
|
|
333
|
+
rowCount: 2
|
|
334
|
+
}));
|
|
335
|
+
cellRenderer.mockReset();
|
|
336
|
+
rendered.invalidateCellSizeAfterRender({
|
|
337
|
+
columnIndex: 0,
|
|
338
|
+
rowIndex: 0
|
|
339
|
+
});
|
|
340
|
+
rendered.forceUpdate();
|
|
341
|
+
expect(cellRenderer.mock.calls).toHaveLength(4);
|
|
342
|
+
});
|
|
343
|
+
it('should specify itself as the :parent for CellMeasurer rendered cells', function () {
|
|
344
|
+
// HACK For some reason, using Jest mock broke here
|
|
345
|
+
var savedParent;
|
|
346
|
+
function cellRenderer(_ref7) {
|
|
347
|
+
var key = _ref7.key,
|
|
348
|
+
parent = _ref7.parent;
|
|
349
|
+
savedParent = parent;
|
|
350
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
351
|
+
key: key,
|
|
352
|
+
style: {}
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
var rendered = (0, _TestUtils.render)(getMarkup({
|
|
356
|
+
cellRenderer: cellRenderer,
|
|
357
|
+
columnCount: 2,
|
|
358
|
+
fixedColumnCount: 1,
|
|
359
|
+
fixedRowCount: 1,
|
|
360
|
+
rowCount: 2
|
|
361
|
+
}));
|
|
362
|
+
expect(savedParent).toBe(rendered);
|
|
363
|
+
});
|
|
364
|
+
});
|
|
365
|
+
describe('styles', function () {
|
|
366
|
+
it('should support custom style for the outer MultiGrid wrapper element', function () {
|
|
367
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
368
|
+
style: {
|
|
369
|
+
backgroundColor: 'black'
|
|
370
|
+
}
|
|
371
|
+
})));
|
|
372
|
+
expect(rendered.style.backgroundColor).toEqual('black');
|
|
373
|
+
});
|
|
374
|
+
it('should support custom styles for each Grid', function () {
|
|
375
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
376
|
+
fixedColumnCount: 2,
|
|
377
|
+
fixedRowCount: 1,
|
|
378
|
+
styleBottomLeftGrid: {
|
|
379
|
+
backgroundColor: 'green'
|
|
380
|
+
},
|
|
381
|
+
styleBottomRightGrid: {
|
|
382
|
+
backgroundColor: 'red'
|
|
383
|
+
},
|
|
384
|
+
styleTopLeftGrid: {
|
|
385
|
+
backgroundColor: 'blue'
|
|
386
|
+
},
|
|
387
|
+
styleTopRightGrid: {
|
|
388
|
+
backgroundColor: 'purple'
|
|
389
|
+
}
|
|
390
|
+
})));
|
|
391
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
392
|
+
var topLeftGrid = grids[0];
|
|
393
|
+
var topRightGrid = grids[1];
|
|
394
|
+
var bottomLeftGrid = grids[2];
|
|
395
|
+
var bottomRightGrid = grids[3];
|
|
396
|
+
expect(topLeftGrid.style.backgroundColor).toEqual('blue');
|
|
397
|
+
expect(topRightGrid.style.backgroundColor).toEqual('purple');
|
|
398
|
+
expect(bottomLeftGrid.style.backgroundColor).toEqual('green');
|
|
399
|
+
expect(bottomRightGrid.style.backgroundColor).toEqual('red');
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
describe('scrollTop and scrollLeft', function () {
|
|
403
|
+
it('should adjust :scrollLeft for top-right and main grids when scrollLeft is used', function () {
|
|
404
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
405
|
+
columnWidth: 50,
|
|
406
|
+
fixedColumnCount: 2,
|
|
407
|
+
scrollLeft: 850
|
|
408
|
+
})));
|
|
409
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
410
|
+
var topRightGrid = grids[1];
|
|
411
|
+
var bottomRightGrid = grids[3];
|
|
412
|
+
expect(topRightGrid.scrollLeft).toEqual(850);
|
|
413
|
+
expect(bottomRightGrid.scrollLeft).toEqual(850);
|
|
414
|
+
});
|
|
415
|
+
it('should adjust :scrollTop for bottom-left and main grids when scrollTop is used', function () {
|
|
416
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
417
|
+
columnWidth: 50,
|
|
418
|
+
fixedColumnCount: 2,
|
|
419
|
+
scrollTop: 500
|
|
420
|
+
})));
|
|
421
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
422
|
+
var bottomLeftGrid = grids[2];
|
|
423
|
+
var bottomRightGrid = grids[3];
|
|
424
|
+
expect(bottomLeftGrid.scrollTop).toEqual(500);
|
|
425
|
+
expect(bottomRightGrid.scrollTop).toEqual(500);
|
|
426
|
+
});
|
|
427
|
+
it('should adjust :scrollTop and :scrollLeft when scrollTop and scrollLeft change', function () {
|
|
428
|
+
(0, _TestUtils.render)(getMarkup());
|
|
429
|
+
var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
|
|
430
|
+
scrollTop: 750,
|
|
431
|
+
scrollLeft: 900
|
|
432
|
+
})));
|
|
433
|
+
var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
|
|
434
|
+
var topRightGrid = grids[1];
|
|
435
|
+
var bottomLeftGrid = grids[2];
|
|
436
|
+
var bottomRightGrid = grids[3];
|
|
437
|
+
expect(topRightGrid.scrollLeft).toEqual(900);
|
|
438
|
+
expect(bottomRightGrid.scrollLeft).toEqual(900);
|
|
439
|
+
expect(bottomLeftGrid.scrollTop).toEqual(750);
|
|
440
|
+
expect(bottomRightGrid.scrollTop).toEqual(750);
|
|
441
|
+
});
|
|
442
|
+
it('should not crash when decreasing :rowCount', function () {
|
|
443
|
+
(0, _TestUtils.render)(getMarkup());
|
|
444
|
+
var updated = (0, _TestUtils.render)(getMarkup({
|
|
445
|
+
rowCount: 2
|
|
446
|
+
}));
|
|
447
|
+
expect(updated.props.rowCount).toEqual(2);
|
|
448
|
+
});
|
|
449
|
+
it('should not crash when decreasing :columnCount', function () {
|
|
450
|
+
(0, _TestUtils.render)(getMarkup());
|
|
451
|
+
var updated = (0, _TestUtils.render)(getMarkup({
|
|
452
|
+
columnCount: 3
|
|
453
|
+
}));
|
|
454
|
+
expect(updated.props.columnCount).toEqual(3);
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
describe('deferredMeasurementCache', function () {
|
|
458
|
+
function getDeferredMeasurementCache() {
|
|
459
|
+
var deferredMeasurementCache = new _CellMeasurer.CellMeasurerCache({
|
|
460
|
+
fixedHeight: true,
|
|
461
|
+
fixedWidth: true
|
|
462
|
+
});
|
|
463
|
+
deferredMeasurementCache._columnIndices = {};
|
|
464
|
+
deferredMeasurementCache._rowIndices = {};
|
|
465
|
+
deferredMeasurementCache.has = function (rowIndex, columnIndex) {
|
|
466
|
+
deferredMeasurementCache._columnIndices[columnIndex] = columnIndex;
|
|
467
|
+
deferredMeasurementCache._rowIndices[rowIndex] = rowIndex;
|
|
468
|
+
return true;
|
|
469
|
+
};
|
|
470
|
+
return deferredMeasurementCache;
|
|
471
|
+
}
|
|
472
|
+
it('should wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is > 0', function () {
|
|
473
|
+
var deferredMeasurementCache = getDeferredMeasurementCache();
|
|
474
|
+
(0, _TestUtils.render)(getMarkup({
|
|
475
|
+
deferredMeasurementCache: deferredMeasurementCache,
|
|
476
|
+
columnCount: 3,
|
|
477
|
+
fixedColumnCount: 1,
|
|
478
|
+
fixedRowCount: 0,
|
|
479
|
+
rowCount: 1
|
|
480
|
+
}));
|
|
481
|
+
expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1', '2']);
|
|
482
|
+
});
|
|
483
|
+
it('should not wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is 0', function () {
|
|
484
|
+
var deferredMeasurementCache = getDeferredMeasurementCache();
|
|
485
|
+
(0, _TestUtils.render)(getMarkup({
|
|
486
|
+
deferredMeasurementCache: deferredMeasurementCache,
|
|
487
|
+
columnCount: 2,
|
|
488
|
+
fixedColumnCount: 0,
|
|
489
|
+
fixedRowCount: 0,
|
|
490
|
+
rowCount: 1
|
|
491
|
+
}));
|
|
492
|
+
expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1']);
|
|
493
|
+
});
|
|
494
|
+
it('should wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is > 0', function () {
|
|
495
|
+
var deferredMeasurementCache = getDeferredMeasurementCache();
|
|
496
|
+
(0, _TestUtils.render)(getMarkup({
|
|
497
|
+
deferredMeasurementCache: deferredMeasurementCache,
|
|
498
|
+
columnCount: 1,
|
|
499
|
+
fixedColumnCount: 0,
|
|
500
|
+
fixedRowCount: 1,
|
|
501
|
+
rowCount: 3
|
|
502
|
+
}));
|
|
503
|
+
expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1', '2']);
|
|
504
|
+
});
|
|
505
|
+
it('should not wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is 0', function () {
|
|
506
|
+
var deferredMeasurementCache = getDeferredMeasurementCache();
|
|
507
|
+
(0, _TestUtils.render)(getMarkup({
|
|
508
|
+
deferredMeasurementCache: deferredMeasurementCache,
|
|
509
|
+
columnCount: 1,
|
|
510
|
+
fixedColumnCount: 0,
|
|
511
|
+
fixedRowCount: 0,
|
|
512
|
+
rowCount: 2
|
|
513
|
+
}));
|
|
514
|
+
expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1']);
|
|
515
|
+
});
|
|
516
|
+
});
|
|
517
|
+
describe('onScrollbarPresenceChange', function () {
|
|
518
|
+
function getScrollbarSize20() {
|
|
519
|
+
return 20;
|
|
520
|
+
}
|
|
521
|
+
it('should not trigger on-mount if scrollbars are hidden', function () {
|
|
522
|
+
var onScrollbarPresenceChange = jest.fn();
|
|
523
|
+
(0, _TestUtils.render)(getMarkup({
|
|
524
|
+
columnCount: 1,
|
|
525
|
+
getScrollbarSize: getScrollbarSize20,
|
|
526
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
527
|
+
rowCount: 1
|
|
528
|
+
}));
|
|
529
|
+
expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
|
|
530
|
+
});
|
|
531
|
+
it('should trigger on-mount if scrollbars are visible', function () {
|
|
532
|
+
var onScrollbarPresenceChange = jest.fn();
|
|
533
|
+
(0, _TestUtils.render)(getMarkup({
|
|
534
|
+
columnCount: 100,
|
|
535
|
+
getScrollbarSize: getScrollbarSize20,
|
|
536
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
537
|
+
rowCount: 100
|
|
538
|
+
}));
|
|
539
|
+
expect(onScrollbarPresenceChange).toHaveBeenCalled();
|
|
540
|
+
var args = onScrollbarPresenceChange.mock.calls[0][0];
|
|
541
|
+
expect(args.horizontal).toBe(true);
|
|
542
|
+
expect(args.size).toBe(getScrollbarSize20());
|
|
543
|
+
expect(args.vertical).toBe(true);
|
|
544
|
+
});
|
|
545
|
+
it('should trigger on-update if scrollbar visibility has changed', function () {
|
|
546
|
+
var onScrollbarPresenceChange = jest.fn();
|
|
547
|
+
(0, _TestUtils.render)(getMarkup({
|
|
548
|
+
columnCount: 1,
|
|
549
|
+
getScrollbarSize: getScrollbarSize20,
|
|
550
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
551
|
+
rowCount: 1
|
|
552
|
+
}));
|
|
553
|
+
expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
|
|
554
|
+
(0, _TestUtils.render)(getMarkup({
|
|
555
|
+
columnCount: 100,
|
|
556
|
+
getScrollbarSize: getScrollbarSize20,
|
|
557
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
558
|
+
rowCount: 100
|
|
559
|
+
}));
|
|
560
|
+
expect(onScrollbarPresenceChange).toHaveBeenCalled();
|
|
561
|
+
var args = onScrollbarPresenceChange.mock.calls[0][0];
|
|
562
|
+
expect(args.horizontal).toBe(true);
|
|
563
|
+
expect(args.size).toBe(getScrollbarSize20());
|
|
564
|
+
expect(args.vertical).toBe(true);
|
|
565
|
+
});
|
|
566
|
+
it('should not trigger on-update if scrollbar visibility does not change', function () {
|
|
567
|
+
var onScrollbarPresenceChange = jest.fn();
|
|
568
|
+
(0, _TestUtils.render)(getMarkup({
|
|
569
|
+
columnCount: 1,
|
|
570
|
+
getScrollbarSize: getScrollbarSize20,
|
|
571
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
572
|
+
rowCount: 1
|
|
573
|
+
}));
|
|
574
|
+
expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
|
|
575
|
+
(0, _TestUtils.render)(getMarkup({
|
|
576
|
+
columnCount: 2,
|
|
577
|
+
getScrollbarSize: getScrollbarSize20,
|
|
578
|
+
onScrollbarPresenceChange: onScrollbarPresenceChange,
|
|
579
|
+
rowCount: 2
|
|
580
|
+
}));
|
|
581
|
+
expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
|
|
582
|
+
});
|
|
583
|
+
});
|
|
584
|
+
});
|