@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,318 @@
|
|
|
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 _Grid = _interopRequireWildcard(require("../Grid"));
|
|
17
|
+
var React = _interopRequireWildcard(require("react"));
|
|
18
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
19
|
+
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); }
|
|
20
|
+
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; }
|
|
21
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
22
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*:: import type {
|
|
23
|
+
NoContentRenderer,
|
|
24
|
+
Alignment,
|
|
25
|
+
CellSize,
|
|
26
|
+
CellPosition,
|
|
27
|
+
OverscanIndicesGetter,
|
|
28
|
+
RenderedSection,
|
|
29
|
+
CellRendererParams,
|
|
30
|
+
Scroll as GridScroll,
|
|
31
|
+
} from '../Grid';*/ /*:: import type {RowRenderer, RenderedRows, Scroll} from './types';*/
|
|
32
|
+
/**
|
|
33
|
+
* It is inefficient to create and manage a large list of DOM elements within a scrolling container
|
|
34
|
+
* if only a few of those elements are visible. The primary purpose of this component is to improve
|
|
35
|
+
* performance by only rendering the DOM nodes that a user is able to see based on their current
|
|
36
|
+
* scroll position.
|
|
37
|
+
*
|
|
38
|
+
* This component renders a virtualized list of elements with either fixed or dynamic heights.
|
|
39
|
+
*/
|
|
40
|
+
/*:: type Props = {
|
|
41
|
+
'aria-label'?: string,
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Removes fixed height from the scrollingContainer so that the total height
|
|
45
|
+
* of rows can stretch the window. Intended for use with WindowScroller
|
|
46
|
+
*-/
|
|
47
|
+
autoHeight: boolean,
|
|
48
|
+
|
|
49
|
+
/** Optional CSS class name *-/
|
|
50
|
+
className?: string,
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Used to estimate the total height of a List before all of its rows have actually been measured.
|
|
54
|
+
* The estimated total height is adjusted as rows are rendered.
|
|
55
|
+
*-/
|
|
56
|
+
estimatedRowSize: number,
|
|
57
|
+
|
|
58
|
+
/** Height constraint for list (determines how many actual rows are rendered) *-/
|
|
59
|
+
height: number,
|
|
60
|
+
|
|
61
|
+
/** Optional renderer to be used in place of rows when rowCount is 0 *-/
|
|
62
|
+
noRowsRenderer: NoContentRenderer,
|
|
63
|
+
|
|
64
|
+
/** Callback invoked with information about the slice of rows that were just rendered. *-/
|
|
65
|
+
|
|
66
|
+
onRowsRendered: (params: RenderedRows) => void,
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Callback invoked whenever the scroll offset changes within the inner scrollable region.
|
|
70
|
+
* This callback can be used to sync scrolling between lists, tables, or grids.
|
|
71
|
+
*-/
|
|
72
|
+
onScroll: (params: Scroll) => void,
|
|
73
|
+
|
|
74
|
+
/** See Grid#overscanIndicesGetter *-/
|
|
75
|
+
overscanIndicesGetter: OverscanIndicesGetter,
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Number of rows to render above/below the visible bounds of the list.
|
|
79
|
+
* These rows can help for smoother scrolling on touch devices.
|
|
80
|
+
*-/
|
|
81
|
+
overscanRowCount: number,
|
|
82
|
+
|
|
83
|
+
/** Either a fixed row height (number) or a function that returns the height of a row given its index. *-/
|
|
84
|
+
rowHeight: CellSize,
|
|
85
|
+
|
|
86
|
+
/** Responsible for rendering a row given an index; ({ index: number }): node *-/
|
|
87
|
+
rowRenderer: RowRenderer,
|
|
88
|
+
|
|
89
|
+
/** Number of rows in list. *-/
|
|
90
|
+
rowCount: number,
|
|
91
|
+
|
|
92
|
+
/** See Grid#scrollToAlignment *-/
|
|
93
|
+
scrollToAlignment: Alignment,
|
|
94
|
+
|
|
95
|
+
/** Row index to ensure visible (by forcefully scrolling if necessary) *-/
|
|
96
|
+
scrollToIndex: number,
|
|
97
|
+
|
|
98
|
+
/** Vertical offset. *-/
|
|
99
|
+
scrollTop?: number,
|
|
100
|
+
|
|
101
|
+
/** Optional inline style *-/
|
|
102
|
+
style: Object,
|
|
103
|
+
|
|
104
|
+
/** Tab index for focus *-/
|
|
105
|
+
tabIndex?: number,
|
|
106
|
+
|
|
107
|
+
/** Width of list *-/
|
|
108
|
+
width: number,
|
|
109
|
+
};*/
|
|
110
|
+
var List = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
|
|
111
|
+
function List() {
|
|
112
|
+
var _this;
|
|
113
|
+
(0, _classCallCheck2["default"])(this, List);
|
|
114
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
115
|
+
args[_key] = arguments[_key];
|
|
116
|
+
}
|
|
117
|
+
_this = _callSuper(this, List, [].concat(args));
|
|
118
|
+
(0, _defineProperty2["default"])(_this, "Grid", void 0);
|
|
119
|
+
(0, _defineProperty2["default"])(_this, "_cellRenderer", function (_ref /*:: */) {
|
|
120
|
+
var parent = _ref /*:: */.parent,
|
|
121
|
+
rowIndex = _ref /*:: */.rowIndex,
|
|
122
|
+
style = _ref /*:: */.style,
|
|
123
|
+
isScrolling = _ref /*:: */.isScrolling,
|
|
124
|
+
isVisible = _ref /*:: */.isVisible,
|
|
125
|
+
key = _ref /*:: */.key;
|
|
126
|
+
var rowRenderer = _this.props.rowRenderer;
|
|
127
|
+
|
|
128
|
+
// TRICKY The style object is sometimes cached by Grid.
|
|
129
|
+
// This prevents new style objects from bypassing shallowCompare().
|
|
130
|
+
// However as of React 16, style props are auto-frozen (at least in dev mode)
|
|
131
|
+
// Check to make sure we can still modify the style before proceeding.
|
|
132
|
+
// https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713
|
|
133
|
+
var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');
|
|
134
|
+
if (widthDescriptor && widthDescriptor.writable) {
|
|
135
|
+
// By default, List cells should be 100% width.
|
|
136
|
+
// This prevents them from flowing under a scrollbar (if present).
|
|
137
|
+
style.width = '100%';
|
|
138
|
+
}
|
|
139
|
+
return rowRenderer({
|
|
140
|
+
index: rowIndex,
|
|
141
|
+
style: style,
|
|
142
|
+
isScrolling: isScrolling,
|
|
143
|
+
isVisible: isVisible,
|
|
144
|
+
key: key,
|
|
145
|
+
parent: parent
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
(0, _defineProperty2["default"])(_this, "_setRef", function (ref /*: ?React.ElementRef<typeof Grid>*/) {
|
|
149
|
+
_this.Grid = ref;
|
|
150
|
+
});
|
|
151
|
+
(0, _defineProperty2["default"])(_this, "_onScroll", function (_ref2 /*:: */) {
|
|
152
|
+
var clientHeight = _ref2 /*:: */.clientHeight,
|
|
153
|
+
scrollHeight = _ref2 /*:: */.scrollHeight,
|
|
154
|
+
scrollTop = _ref2 /*:: */.scrollTop;
|
|
155
|
+
var onScroll = _this.props.onScroll;
|
|
156
|
+
onScroll({
|
|
157
|
+
clientHeight: clientHeight,
|
|
158
|
+
scrollHeight: scrollHeight,
|
|
159
|
+
scrollTop: scrollTop
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
(0, _defineProperty2["default"])(_this, "_onSectionRendered", function (_ref3 /*:: */) {
|
|
163
|
+
var rowOverscanStartIndex = _ref3 /*:: */.rowOverscanStartIndex,
|
|
164
|
+
rowOverscanStopIndex = _ref3 /*:: */.rowOverscanStopIndex,
|
|
165
|
+
rowStartIndex = _ref3 /*:: */.rowStartIndex,
|
|
166
|
+
rowStopIndex = _ref3 /*:: */.rowStopIndex;
|
|
167
|
+
var onRowsRendered = _this.props.onRowsRendered;
|
|
168
|
+
onRowsRendered({
|
|
169
|
+
overscanStartIndex: rowOverscanStartIndex,
|
|
170
|
+
overscanStopIndex: rowOverscanStopIndex,
|
|
171
|
+
startIndex: rowStartIndex,
|
|
172
|
+
stopIndex: rowStopIndex
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
return _this;
|
|
176
|
+
}
|
|
177
|
+
(0, _inherits2["default"])(List, _React$PureComponent);
|
|
178
|
+
return (0, _createClass2["default"])(List, [{
|
|
179
|
+
key: "forceUpdateGrid",
|
|
180
|
+
value: function forceUpdateGrid() {
|
|
181
|
+
if (this.Grid) {
|
|
182
|
+
this.Grid.forceUpdate();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/** See Grid#getOffsetForCell */
|
|
187
|
+
}, {
|
|
188
|
+
key: "getOffsetForRow",
|
|
189
|
+
value: function getOffsetForRow(_ref4 /*:: */) {
|
|
190
|
+
var alignment = _ref4 /*:: */.alignment,
|
|
191
|
+
index = _ref4 /*:: */.index;
|
|
192
|
+
if (this.Grid) {
|
|
193
|
+
var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
|
|
194
|
+
alignment: alignment,
|
|
195
|
+
rowIndex: index,
|
|
196
|
+
columnIndex: 0
|
|
197
|
+
}),
|
|
198
|
+
scrollTop = _this$Grid$getOffsetF.scrollTop;
|
|
199
|
+
return scrollTop;
|
|
200
|
+
}
|
|
201
|
+
return 0;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/** CellMeasurer compatibility */
|
|
205
|
+
}, {
|
|
206
|
+
key: "invalidateCellSizeAfterRender",
|
|
207
|
+
value: function invalidateCellSizeAfterRender(_ref5 /*:: */) {
|
|
208
|
+
var columnIndex = _ref5 /*:: */.columnIndex,
|
|
209
|
+
rowIndex = _ref5 /*:: */.rowIndex;
|
|
210
|
+
if (this.Grid) {
|
|
211
|
+
this.Grid.invalidateCellSizeAfterRender({
|
|
212
|
+
rowIndex: rowIndex,
|
|
213
|
+
columnIndex: columnIndex
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/** See Grid#measureAllCells */
|
|
219
|
+
}, {
|
|
220
|
+
key: "measureAllRows",
|
|
221
|
+
value: function measureAllRows() {
|
|
222
|
+
if (this.Grid) {
|
|
223
|
+
this.Grid.measureAllCells();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/** CellMeasurer compatibility */
|
|
228
|
+
}, {
|
|
229
|
+
key: "recomputeGridSize",
|
|
230
|
+
value: function recomputeGridSize() {
|
|
231
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
232
|
+
_ref6$columnIndex = _ref6.columnIndex,
|
|
233
|
+
columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,
|
|
234
|
+
_ref6$rowIndex = _ref6.rowIndex,
|
|
235
|
+
rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;
|
|
236
|
+
if (this.Grid) {
|
|
237
|
+
this.Grid.recomputeGridSize({
|
|
238
|
+
rowIndex: rowIndex,
|
|
239
|
+
columnIndex: columnIndex
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/** See Grid#recomputeGridSize */
|
|
245
|
+
}, {
|
|
246
|
+
key: "recomputeRowHeights",
|
|
247
|
+
value: function recomputeRowHeights() {
|
|
248
|
+
var index /*: number*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
249
|
+
if (this.Grid) {
|
|
250
|
+
this.Grid.recomputeGridSize({
|
|
251
|
+
rowIndex: index,
|
|
252
|
+
columnIndex: 0
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** See Grid#scrollToPosition */
|
|
258
|
+
}, {
|
|
259
|
+
key: "scrollToPosition",
|
|
260
|
+
value: function scrollToPosition() {
|
|
261
|
+
var scrollTop /*: number*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
262
|
+
if (this.Grid) {
|
|
263
|
+
this.Grid.scrollToPosition({
|
|
264
|
+
scrollTop: scrollTop
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/** See Grid#scrollToCell */
|
|
270
|
+
}, {
|
|
271
|
+
key: "scrollToRow",
|
|
272
|
+
value: function scrollToRow() {
|
|
273
|
+
var index /*: number*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
274
|
+
if (this.Grid) {
|
|
275
|
+
this.Grid.scrollToCell({
|
|
276
|
+
columnIndex: 0,
|
|
277
|
+
rowIndex: index
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}, {
|
|
282
|
+
key: "render",
|
|
283
|
+
value: function render() {
|
|
284
|
+
var _this$props = this.props,
|
|
285
|
+
className = _this$props.className,
|
|
286
|
+
noRowsRenderer = _this$props.noRowsRenderer,
|
|
287
|
+
scrollToIndex = _this$props.scrollToIndex,
|
|
288
|
+
width = _this$props.width;
|
|
289
|
+
var classNames = (0, _clsx["default"])('ReactVirtualized__List', className);
|
|
290
|
+
return /*#__PURE__*/React.createElement(_Grid["default"], (0, _extends2["default"])({}, this.props, {
|
|
291
|
+
autoContainerWidth: true,
|
|
292
|
+
cellRenderer: this._cellRenderer,
|
|
293
|
+
className: classNames,
|
|
294
|
+
columnWidth: width,
|
|
295
|
+
columnCount: 1,
|
|
296
|
+
noContentRenderer: noRowsRenderer,
|
|
297
|
+
onScroll: this._onScroll,
|
|
298
|
+
onSectionRendered: this._onSectionRendered,
|
|
299
|
+
ref: this._setRef,
|
|
300
|
+
scrollToRow: scrollToIndex
|
|
301
|
+
}));
|
|
302
|
+
}
|
|
303
|
+
}]);
|
|
304
|
+
}(React.PureComponent);
|
|
305
|
+
(0, _defineProperty2["default"])(List, "defaultProps", {
|
|
306
|
+
autoHeight: false,
|
|
307
|
+
estimatedRowSize: 30,
|
|
308
|
+
onScroll: function onScroll() {},
|
|
309
|
+
noRowsRenderer: function noRowsRenderer() {
|
|
310
|
+
return null;
|
|
311
|
+
},
|
|
312
|
+
onRowsRendered: function onRowsRendered() {},
|
|
313
|
+
overscanIndicesGetter: _Grid.accessibilityOverscanIndicesGetter,
|
|
314
|
+
overscanRowCount: 10,
|
|
315
|
+
scrollToAlignment: 'auto',
|
|
316
|
+
scrollToIndex: -1,
|
|
317
|
+
style: {}
|
|
318
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "List", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _List["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "default", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _List["default"];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _List = _interopRequireDefault(require("./List"));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
var React = _interopRequireWildcard(require("react"));
|
|
5
|
+
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); }
|
|
6
|
+
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; }
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _immutable = _interopRequireDefault(require("immutable"));
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
var React = _interopRequireWildcard(require("react"));
|
|
18
|
+
var _ContentBox = require("../demo/ContentBox");
|
|
19
|
+
var _LabeledInput = require("../demo/LabeledInput");
|
|
20
|
+
var _CellMeasurer = require("../CellMeasurer");
|
|
21
|
+
var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));
|
|
22
|
+
var _WindowScroller = _interopRequireDefault(require("../WindowScroller"));
|
|
23
|
+
var _createCellPositioner = _interopRequireDefault(require("./createCellPositioner"));
|
|
24
|
+
var _Masonry = _interopRequireDefault(require("./Masonry"));
|
|
25
|
+
var _MasonryExample = _interopRequireDefault(require("./Masonry.example.css"));
|
|
26
|
+
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); }
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
29
|
+
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; }
|
|
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 GridExample = exports["default"] = /*#__PURE__*/function (_React$PureComponent) {
|
|
33
|
+
function GridExample(props, context) {
|
|
34
|
+
var _this;
|
|
35
|
+
(0, _classCallCheck2["default"])(this, GridExample);
|
|
36
|
+
_this = _callSuper(this, GridExample, [props, context]);
|
|
37
|
+
// This is a bit of a hack to simulate newly loaded cells
|
|
38
|
+
(0, _defineProperty2["default"])(_this, "_resetList", function () {
|
|
39
|
+
var ROW_HEIGHTS = [25, 50, 75, 100];
|
|
40
|
+
var list = _this.context.list;
|
|
41
|
+
list.forEach(function (datum) {
|
|
42
|
+
datum.size = ROW_HEIGHTS[Math.floor(Math.random() * ROW_HEIGHTS.length)];
|
|
43
|
+
});
|
|
44
|
+
_this._cache.clearAll();
|
|
45
|
+
_this._resetCellPositioner();
|
|
46
|
+
_this._masonry.clearCellPositions();
|
|
47
|
+
});
|
|
48
|
+
_this._columnCount = 0;
|
|
49
|
+
_this._cache = new _CellMeasurer.CellMeasurerCache({
|
|
50
|
+
defaultHeight: 250,
|
|
51
|
+
defaultWidth: 200,
|
|
52
|
+
fixedWidth: true
|
|
53
|
+
});
|
|
54
|
+
_this.state = {
|
|
55
|
+
columnWidth: 200,
|
|
56
|
+
height: 300,
|
|
57
|
+
gutterSize: 10,
|
|
58
|
+
overscanByPixels: 0,
|
|
59
|
+
windowScrollerEnabled: false
|
|
60
|
+
};
|
|
61
|
+
_this._cellRenderer = _this._cellRenderer.bind(_this);
|
|
62
|
+
_this._onResize = _this._onResize.bind(_this);
|
|
63
|
+
_this._renderAutoSizer = _this._renderAutoSizer.bind(_this);
|
|
64
|
+
_this._renderMasonry = _this._renderMasonry.bind(_this);
|
|
65
|
+
_this._setMasonryRef = _this._setMasonryRef.bind(_this);
|
|
66
|
+
return _this;
|
|
67
|
+
}
|
|
68
|
+
(0, _inherits2["default"])(GridExample, _React$PureComponent);
|
|
69
|
+
return (0, _createClass2["default"])(GridExample, [{
|
|
70
|
+
key: "render",
|
|
71
|
+
value: function render() {
|
|
72
|
+
var _this2 = this;
|
|
73
|
+
var _this$state = this.state,
|
|
74
|
+
columnWidth = _this$state.columnWidth,
|
|
75
|
+
height = _this$state.height,
|
|
76
|
+
gutterSize = _this$state.gutterSize,
|
|
77
|
+
overscanByPixels = _this$state.overscanByPixels,
|
|
78
|
+
windowScrollerEnabled = _this$state.windowScrollerEnabled;
|
|
79
|
+
var child;
|
|
80
|
+
if (windowScrollerEnabled) {
|
|
81
|
+
child = /*#__PURE__*/React.createElement(_WindowScroller["default"], {
|
|
82
|
+
overscanByPixels: overscanByPixels
|
|
83
|
+
}, this._renderAutoSizer);
|
|
84
|
+
} else {
|
|
85
|
+
child = this._renderAutoSizer({
|
|
86
|
+
height: height
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return /*#__PURE__*/React.createElement(_ContentBox.ContentBox, null, /*#__PURE__*/React.createElement(_ContentBox.ContentBoxHeader, {
|
|
90
|
+
text: "Masonry",
|
|
91
|
+
sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Masonry/Masonry.example.js",
|
|
92
|
+
docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Masonry.md"
|
|
93
|
+
}), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, "Optimized for masonry layouts. Cells are j.i.t. measured and layed out as a user scrolls. Sizes are cached so that resize/reflow is fast and does not require re-measuring."), /*#__PURE__*/React.createElement(_ContentBox.ContentBoxParagraph, null, /*#__PURE__*/React.createElement("label", {
|
|
94
|
+
className: _MasonryExample["default"].checkboxLabel
|
|
95
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
96
|
+
"aria-label": "Use WindowScroller?",
|
|
97
|
+
checked: windowScrollerEnabled,
|
|
98
|
+
className: _MasonryExample["default"].checkbox,
|
|
99
|
+
type: "checkbox",
|
|
100
|
+
onChange: function onChange(event) {
|
|
101
|
+
// HACK Because this demo switches between using WindowScroller and not,
|
|
102
|
+
// It's easier to clear the cache when toggling modes to avoid a partially stale state.
|
|
103
|
+
_this2._cache.clearAll();
|
|
104
|
+
_this2.setState({
|
|
105
|
+
windowScrollerEnabled: event.target.checked
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}), "Use ", /*#__PURE__*/React.createElement("code", null, "WindowScroller"), "?"), /*#__PURE__*/React.createElement("label", {
|
|
109
|
+
className: _MasonryExample["default"].checkboxLabel
|
|
110
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
111
|
+
onClick: this._resetList
|
|
112
|
+
}, "Reset List Data"))), /*#__PURE__*/React.createElement(_LabeledInput.InputRow, null, /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
113
|
+
label: "Height",
|
|
114
|
+
name: "height",
|
|
115
|
+
onChange: function onChange(event) {
|
|
116
|
+
_this2.setState({
|
|
117
|
+
height: parseInt(event.target.value, 10) || 300
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
value: height
|
|
121
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
122
|
+
label: "Column Width",
|
|
123
|
+
name: "columnWidth",
|
|
124
|
+
onChange: function onChange(event) {
|
|
125
|
+
_this2._cache.clearAll();
|
|
126
|
+
_this2.setState({
|
|
127
|
+
columnWidth: parseInt(event.target.value, 10) || 200
|
|
128
|
+
}, function () {
|
|
129
|
+
_this2._calculateColumnCount();
|
|
130
|
+
_this2._resetCellPositioner();
|
|
131
|
+
_this2._masonry.clearCellPositions();
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
value: columnWidth
|
|
135
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
136
|
+
label: "Gutter Size",
|
|
137
|
+
name: "gutterSize",
|
|
138
|
+
onChange: function onChange(event) {
|
|
139
|
+
_this2.setState({
|
|
140
|
+
gutterSize: parseInt(event.target.value, 10) || 10
|
|
141
|
+
}, function () {
|
|
142
|
+
_this2._calculateColumnCount();
|
|
143
|
+
_this2._resetCellPositioner();
|
|
144
|
+
_this2._masonry.recomputeCellPositions();
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
value: gutterSize
|
|
148
|
+
}), /*#__PURE__*/React.createElement(_LabeledInput.LabeledInput, {
|
|
149
|
+
label: "Overscan (px)",
|
|
150
|
+
name: "overscanByPixels",
|
|
151
|
+
onChange: function onChange(event) {
|
|
152
|
+
_this2.setState({
|
|
153
|
+
overscanByPixels: parseInt(event.target.value, 10) || 0
|
|
154
|
+
});
|
|
155
|
+
},
|
|
156
|
+
value: overscanByPixels
|
|
157
|
+
})), child);
|
|
158
|
+
}
|
|
159
|
+
}, {
|
|
160
|
+
key: "_calculateColumnCount",
|
|
161
|
+
value: function _calculateColumnCount() {
|
|
162
|
+
var _this$state2 = this.state,
|
|
163
|
+
columnWidth = _this$state2.columnWidth,
|
|
164
|
+
gutterSize = _this$state2.gutterSize;
|
|
165
|
+
this._columnCount = Math.floor(this._width / (columnWidth + gutterSize));
|
|
166
|
+
}
|
|
167
|
+
}, {
|
|
168
|
+
key: "_cellRenderer",
|
|
169
|
+
value: function _cellRenderer(_ref) {
|
|
170
|
+
var index = _ref.index,
|
|
171
|
+
key = _ref.key,
|
|
172
|
+
parent = _ref.parent,
|
|
173
|
+
style = _ref.style;
|
|
174
|
+
var list = this.context.list;
|
|
175
|
+
var columnWidth = this.state.columnWidth;
|
|
176
|
+
var datum = list.get(index % list.size);
|
|
177
|
+
return /*#__PURE__*/React.createElement(_CellMeasurer.CellMeasurer, {
|
|
178
|
+
cache: this._cache,
|
|
179
|
+
index: index,
|
|
180
|
+
key: key,
|
|
181
|
+
parent: parent
|
|
182
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
183
|
+
className: _MasonryExample["default"].Cell,
|
|
184
|
+
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
185
|
+
width: columnWidth
|
|
186
|
+
})
|
|
187
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
188
|
+
style: {
|
|
189
|
+
backgroundColor: datum.color,
|
|
190
|
+
borderRadius: '0.5rem',
|
|
191
|
+
height: datum.size * 3,
|
|
192
|
+
marginBottom: '0.5rem',
|
|
193
|
+
width: '100%',
|
|
194
|
+
fontSize: 20,
|
|
195
|
+
color: 'white',
|
|
196
|
+
display: 'flex',
|
|
197
|
+
alignItems: 'center',
|
|
198
|
+
justifyContent: 'center'
|
|
199
|
+
}
|
|
200
|
+
}, index), datum.random));
|
|
201
|
+
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "_initCellPositioner",
|
|
204
|
+
value: function _initCellPositioner() {
|
|
205
|
+
if (typeof this._cellPositioner === 'undefined') {
|
|
206
|
+
var _this$state3 = this.state,
|
|
207
|
+
columnWidth = _this$state3.columnWidth,
|
|
208
|
+
gutterSize = _this$state3.gutterSize;
|
|
209
|
+
this._cellPositioner = (0, _createCellPositioner["default"])({
|
|
210
|
+
cellMeasurerCache: this._cache,
|
|
211
|
+
columnCount: this._columnCount,
|
|
212
|
+
columnWidth: columnWidth,
|
|
213
|
+
spacer: gutterSize
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}, {
|
|
218
|
+
key: "_onResize",
|
|
219
|
+
value: function _onResize(_ref2) {
|
|
220
|
+
var width = _ref2.width;
|
|
221
|
+
this._width = width;
|
|
222
|
+
this._calculateColumnCount();
|
|
223
|
+
this._resetCellPositioner();
|
|
224
|
+
this._masonry.recomputeCellPositions();
|
|
225
|
+
}
|
|
226
|
+
}, {
|
|
227
|
+
key: "_renderAutoSizer",
|
|
228
|
+
value: function _renderAutoSizer(_ref3) {
|
|
229
|
+
var height = _ref3.height,
|
|
230
|
+
scrollTop = _ref3.scrollTop;
|
|
231
|
+
this._height = height;
|
|
232
|
+
this._scrollTop = scrollTop;
|
|
233
|
+
var overscanByPixels = this.state.overscanByPixels;
|
|
234
|
+
return /*#__PURE__*/React.createElement(_AutoSizer["default"], {
|
|
235
|
+
disableHeight: true,
|
|
236
|
+
height: height,
|
|
237
|
+
onResize: this._onResize,
|
|
238
|
+
overscanByPixels: overscanByPixels,
|
|
239
|
+
scrollTop: this._scrollTop
|
|
240
|
+
}, this._renderMasonry);
|
|
241
|
+
}
|
|
242
|
+
}, {
|
|
243
|
+
key: "_renderMasonry",
|
|
244
|
+
value: function _renderMasonry(_ref4) {
|
|
245
|
+
var width = _ref4.width;
|
|
246
|
+
this._width = width;
|
|
247
|
+
this._calculateColumnCount();
|
|
248
|
+
this._initCellPositioner();
|
|
249
|
+
var _this$state4 = this.state,
|
|
250
|
+
height = _this$state4.height,
|
|
251
|
+
overscanByPixels = _this$state4.overscanByPixels,
|
|
252
|
+
windowScrollerEnabled = _this$state4.windowScrollerEnabled;
|
|
253
|
+
return /*#__PURE__*/React.createElement(_Masonry["default"], {
|
|
254
|
+
autoHeight: windowScrollerEnabled,
|
|
255
|
+
cellCount: 1000,
|
|
256
|
+
cellMeasurerCache: this._cache,
|
|
257
|
+
cellPositioner: this._cellPositioner,
|
|
258
|
+
cellRenderer: this._cellRenderer,
|
|
259
|
+
height: windowScrollerEnabled ? this._height : height,
|
|
260
|
+
overscanByPixels: overscanByPixels,
|
|
261
|
+
ref: this._setMasonryRef,
|
|
262
|
+
scrollTop: this._scrollTop,
|
|
263
|
+
width: width
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
}, {
|
|
267
|
+
key: "_resetCellPositioner",
|
|
268
|
+
value: function _resetCellPositioner() {
|
|
269
|
+
var _this$state5 = this.state,
|
|
270
|
+
columnWidth = _this$state5.columnWidth,
|
|
271
|
+
gutterSize = _this$state5.gutterSize;
|
|
272
|
+
this._cellPositioner.reset({
|
|
273
|
+
columnCount: this._columnCount,
|
|
274
|
+
columnWidth: columnWidth,
|
|
275
|
+
spacer: gutterSize
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}, {
|
|
279
|
+
key: "_setMasonryRef",
|
|
280
|
+
value: function _setMasonryRef(ref) {
|
|
281
|
+
this._masonry = ref;
|
|
282
|
+
}
|
|
283
|
+
}]);
|
|
284
|
+
}(React.PureComponent);
|
|
285
|
+
(0, _defineProperty2["default"])(GridExample, "contextTypes", {
|
|
286
|
+
list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
|
|
287
|
+
});
|