@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,248 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
7
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
|
|
10
|
+
import AutoSizer from '../AutoSizer';
|
|
11
|
+
import Grid from '../Grid';
|
|
12
|
+
import ScrollSync from './ScrollSync';
|
|
13
|
+
import clsx from 'clsx';
|
|
14
|
+
import styles from './ScrollSync.example.css';
|
|
15
|
+
import scrollbarSize from 'dom-helpers/scrollbarSize';
|
|
16
|
+
var LEFT_COLOR_FROM = hexToRgb('#471061');
|
|
17
|
+
var LEFT_COLOR_TO = hexToRgb('#BC3959');
|
|
18
|
+
var TOP_COLOR_FROM = hexToRgb('#000000');
|
|
19
|
+
var TOP_COLOR_TO = hexToRgb('#333333');
|
|
20
|
+
var GridExample = /*#__PURE__*/function (_React$PureComponent) {
|
|
21
|
+
function GridExample(props, context) {
|
|
22
|
+
var _this;
|
|
23
|
+
_classCallCheck(this, GridExample);
|
|
24
|
+
_this = _callSuper(this, GridExample, [props, context]);
|
|
25
|
+
_this.state = {
|
|
26
|
+
columnWidth: 75,
|
|
27
|
+
columnCount: 50,
|
|
28
|
+
height: 300,
|
|
29
|
+
overscanColumnCount: 0,
|
|
30
|
+
overscanRowCount: 5,
|
|
31
|
+
rowHeight: 40,
|
|
32
|
+
rowCount: 100
|
|
33
|
+
};
|
|
34
|
+
_this._renderBodyCell = _this._renderBodyCell.bind(_this);
|
|
35
|
+
_this._renderHeaderCell = _this._renderHeaderCell.bind(_this);
|
|
36
|
+
_this._renderLeftSideCell = _this._renderLeftSideCell.bind(_this);
|
|
37
|
+
return _this;
|
|
38
|
+
}
|
|
39
|
+
_inherits(GridExample, _React$PureComponent);
|
|
40
|
+
return _createClass(GridExample, [{
|
|
41
|
+
key: "render",
|
|
42
|
+
value: function render() {
|
|
43
|
+
var _this2 = this;
|
|
44
|
+
var _this$state = this.state,
|
|
45
|
+
columnCount = _this$state.columnCount,
|
|
46
|
+
columnWidth = _this$state.columnWidth,
|
|
47
|
+
height = _this$state.height,
|
|
48
|
+
overscanColumnCount = _this$state.overscanColumnCount,
|
|
49
|
+
overscanRowCount = _this$state.overscanRowCount,
|
|
50
|
+
rowHeight = _this$state.rowHeight,
|
|
51
|
+
rowCount = _this$state.rowCount;
|
|
52
|
+
return /*#__PURE__*/React.createElement(ContentBox, null, /*#__PURE__*/React.createElement(ContentBoxHeader, {
|
|
53
|
+
text: "ScrollSync",
|
|
54
|
+
sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ScrollSync/ScrollSync.example.js",
|
|
55
|
+
docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ScrollSync.md"
|
|
56
|
+
}), /*#__PURE__*/React.createElement(ContentBoxParagraph, null, "High order component that simplifies the process of synchronizing scrolling between two or more virtualized components."), /*#__PURE__*/React.createElement(ContentBoxParagraph, null, "This example shows two ", /*#__PURE__*/React.createElement("code", null, "Grid"), "s and one ", /*#__PURE__*/React.createElement("code", null, "List"), ' ', "configured to mimic a spreadsheet with a fixed header and first column. It also shows how a scroll callback can be used to control UI properties such as background color."), /*#__PURE__*/React.createElement(ScrollSync, null, function (_ref) {
|
|
57
|
+
var clientHeight = _ref.clientHeight,
|
|
58
|
+
clientWidth = _ref.clientWidth,
|
|
59
|
+
onScroll = _ref.onScroll,
|
|
60
|
+
scrollHeight = _ref.scrollHeight,
|
|
61
|
+
scrollLeft = _ref.scrollLeft,
|
|
62
|
+
scrollTop = _ref.scrollTop,
|
|
63
|
+
scrollWidth = _ref.scrollWidth;
|
|
64
|
+
var x = scrollLeft / (scrollWidth - clientWidth);
|
|
65
|
+
var y = scrollTop / (scrollHeight - clientHeight);
|
|
66
|
+
var leftBackgroundColor = mixColors(LEFT_COLOR_FROM, LEFT_COLOR_TO, y);
|
|
67
|
+
var leftColor = '#ffffff';
|
|
68
|
+
var topBackgroundColor = mixColors(TOP_COLOR_FROM, TOP_COLOR_TO, x);
|
|
69
|
+
var topColor = '#ffffff';
|
|
70
|
+
var middleBackgroundColor = mixColors(leftBackgroundColor, topBackgroundColor, 0.5);
|
|
71
|
+
var middleColor = '#ffffff';
|
|
72
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
73
|
+
className: styles.GridRow
|
|
74
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
75
|
+
className: styles.LeftSideGridContainer,
|
|
76
|
+
style: {
|
|
77
|
+
position: 'absolute',
|
|
78
|
+
left: 0,
|
|
79
|
+
top: 0,
|
|
80
|
+
color: leftColor,
|
|
81
|
+
backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")")
|
|
82
|
+
}
|
|
83
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
84
|
+
cellRenderer: _this2._renderLeftHeaderCell,
|
|
85
|
+
className: styles.HeaderGrid,
|
|
86
|
+
width: columnWidth,
|
|
87
|
+
height: rowHeight,
|
|
88
|
+
rowHeight: rowHeight,
|
|
89
|
+
columnWidth: columnWidth,
|
|
90
|
+
rowCount: 1,
|
|
91
|
+
columnCount: 1
|
|
92
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
93
|
+
className: styles.LeftSideGridContainer,
|
|
94
|
+
style: {
|
|
95
|
+
position: 'absolute',
|
|
96
|
+
left: 0,
|
|
97
|
+
top: rowHeight,
|
|
98
|
+
color: leftColor,
|
|
99
|
+
backgroundColor: "rgb(".concat(leftBackgroundColor.r, ",").concat(leftBackgroundColor.g, ",").concat(leftBackgroundColor.b, ")")
|
|
100
|
+
}
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
102
|
+
overscanColumnCount: overscanColumnCount,
|
|
103
|
+
overscanRowCount: overscanRowCount,
|
|
104
|
+
cellRenderer: _this2._renderLeftSideCell,
|
|
105
|
+
columnWidth: columnWidth,
|
|
106
|
+
columnCount: 1,
|
|
107
|
+
className: styles.LeftSideGrid,
|
|
108
|
+
height: height - scrollbarSize(),
|
|
109
|
+
rowHeight: rowHeight,
|
|
110
|
+
rowCount: rowCount,
|
|
111
|
+
scrollTop: scrollTop,
|
|
112
|
+
width: columnWidth
|
|
113
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
className: styles.GridColumn
|
|
115
|
+
}, /*#__PURE__*/React.createElement(AutoSizer, {
|
|
116
|
+
disableHeight: true
|
|
117
|
+
}, function (_ref2) {
|
|
118
|
+
var width = _ref2.width;
|
|
119
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
120
|
+
style: {
|
|
121
|
+
backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")"),
|
|
122
|
+
color: topColor,
|
|
123
|
+
height: rowHeight,
|
|
124
|
+
width: width - scrollbarSize()
|
|
125
|
+
}
|
|
126
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
127
|
+
className: styles.HeaderGrid,
|
|
128
|
+
columnWidth: columnWidth,
|
|
129
|
+
columnCount: columnCount,
|
|
130
|
+
height: rowHeight,
|
|
131
|
+
overscanColumnCount: overscanColumnCount,
|
|
132
|
+
cellRenderer: _this2._renderHeaderCell,
|
|
133
|
+
rowHeight: rowHeight,
|
|
134
|
+
rowCount: 1,
|
|
135
|
+
scrollLeft: scrollLeft,
|
|
136
|
+
width: width - scrollbarSize()
|
|
137
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
style: {
|
|
139
|
+
backgroundColor: "rgb(".concat(middleBackgroundColor.r, ",").concat(middleBackgroundColor.g, ",").concat(middleBackgroundColor.b, ")"),
|
|
140
|
+
color: middleColor,
|
|
141
|
+
height: height,
|
|
142
|
+
width: width
|
|
143
|
+
}
|
|
144
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
145
|
+
className: styles.BodyGrid,
|
|
146
|
+
columnWidth: columnWidth,
|
|
147
|
+
columnCount: columnCount,
|
|
148
|
+
height: height,
|
|
149
|
+
onScroll: onScroll,
|
|
150
|
+
overscanColumnCount: overscanColumnCount,
|
|
151
|
+
overscanRowCount: overscanRowCount,
|
|
152
|
+
cellRenderer: _this2._renderBodyCell,
|
|
153
|
+
rowHeight: rowHeight,
|
|
154
|
+
rowCount: rowCount,
|
|
155
|
+
width: width
|
|
156
|
+
})));
|
|
157
|
+
})));
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
}, {
|
|
161
|
+
key: "_renderBodyCell",
|
|
162
|
+
value: function _renderBodyCell(_ref3) {
|
|
163
|
+
var columnIndex = _ref3.columnIndex,
|
|
164
|
+
key = _ref3.key,
|
|
165
|
+
rowIndex = _ref3.rowIndex,
|
|
166
|
+
style = _ref3.style;
|
|
167
|
+
if (columnIndex < 1) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
return this._renderLeftSideCell({
|
|
171
|
+
columnIndex: columnIndex,
|
|
172
|
+
key: key,
|
|
173
|
+
rowIndex: rowIndex,
|
|
174
|
+
style: style
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}, {
|
|
178
|
+
key: "_renderHeaderCell",
|
|
179
|
+
value: function _renderHeaderCell(_ref4) {
|
|
180
|
+
var columnIndex = _ref4.columnIndex,
|
|
181
|
+
key = _ref4.key,
|
|
182
|
+
rowIndex = _ref4.rowIndex,
|
|
183
|
+
style = _ref4.style;
|
|
184
|
+
if (columnIndex < 1) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
return this._renderLeftHeaderCell({
|
|
188
|
+
columnIndex: columnIndex,
|
|
189
|
+
key: key,
|
|
190
|
+
rowIndex: rowIndex,
|
|
191
|
+
style: style
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}, {
|
|
195
|
+
key: "_renderLeftHeaderCell",
|
|
196
|
+
value: function _renderLeftHeaderCell(_ref5) {
|
|
197
|
+
var columnIndex = _ref5.columnIndex,
|
|
198
|
+
key = _ref5.key,
|
|
199
|
+
style = _ref5.style;
|
|
200
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
201
|
+
className: styles.headerCell,
|
|
202
|
+
key: key,
|
|
203
|
+
style: style
|
|
204
|
+
}, "C".concat(columnIndex));
|
|
205
|
+
}
|
|
206
|
+
}, {
|
|
207
|
+
key: "_renderLeftSideCell",
|
|
208
|
+
value: function _renderLeftSideCell(_ref6) {
|
|
209
|
+
var columnIndex = _ref6.columnIndex,
|
|
210
|
+
key = _ref6.key,
|
|
211
|
+
rowIndex = _ref6.rowIndex,
|
|
212
|
+
style = _ref6.style;
|
|
213
|
+
var rowClass = rowIndex % 2 === 0 ? columnIndex % 2 === 0 ? styles.evenRow : styles.oddRow : columnIndex % 2 !== 0 ? styles.evenRow : styles.oddRow;
|
|
214
|
+
var classNames = clsx(rowClass, styles.cell);
|
|
215
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
216
|
+
className: classNames,
|
|
217
|
+
key: key,
|
|
218
|
+
style: style
|
|
219
|
+
}, "R".concat(rowIndex, ", C").concat(columnIndex));
|
|
220
|
+
}
|
|
221
|
+
}]);
|
|
222
|
+
}(React.PureComponent);
|
|
223
|
+
export { GridExample as default };
|
|
224
|
+
function hexToRgb(hex) {
|
|
225
|
+
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
226
|
+
return result ? {
|
|
227
|
+
r: parseInt(result[1], 16),
|
|
228
|
+
g: parseInt(result[2], 16),
|
|
229
|
+
b: parseInt(result[3], 16)
|
|
230
|
+
} : null;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Ported from sass implementation in C
|
|
235
|
+
* https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209
|
|
236
|
+
*/
|
|
237
|
+
function mixColors(color1, color2, amount) {
|
|
238
|
+
var weight1 = amount;
|
|
239
|
+
var weight2 = 1 - amount;
|
|
240
|
+
var r = Math.round(weight1 * color1.r + weight2 * color2.r);
|
|
241
|
+
var g = Math.round(weight1 * color1.g + weight2 * color2.g);
|
|
242
|
+
var b = Math.round(weight1 * color1.b + weight2 * color2.b);
|
|
243
|
+
return {
|
|
244
|
+
r: r,
|
|
245
|
+
g: g,
|
|
246
|
+
b: b
|
|
247
|
+
};
|
|
248
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { findDOMNode } from 'react-dom';
|
|
3
|
+
import { render } from '../TestUtils';
|
|
4
|
+
import ScrollSync from './ScrollSync';
|
|
5
|
+
function ChildComponent(_ref) {
|
|
6
|
+
var clientHeight = _ref.clientHeight,
|
|
7
|
+
clientWidth = _ref.clientWidth,
|
|
8
|
+
scrollHeight = _ref.scrollHeight,
|
|
9
|
+
scrollLeft = _ref.scrollLeft,
|
|
10
|
+
scrollTop = _ref.scrollTop,
|
|
11
|
+
scrollWidth = _ref.scrollWidth;
|
|
12
|
+
return /*#__PURE__*/React.createElement("div", null, "clientHeight:".concat(clientHeight), "clientWidth:".concat(clientWidth), "scrollHeight:".concat(scrollHeight), "scrollLeft:".concat(scrollLeft), "scrollTop:".concat(scrollTop), "scrollWidth:".concat(scrollWidth));
|
|
13
|
+
}
|
|
14
|
+
describe('ScrollSync', function () {
|
|
15
|
+
it('should pass through an initial value of 0 for :scrollLeft and :scrollTop', function () {
|
|
16
|
+
var component = render(/*#__PURE__*/React.createElement(ScrollSync, null, function (_ref2) {
|
|
17
|
+
var clientHeight = _ref2.clientHeight,
|
|
18
|
+
clientWidth = _ref2.clientWidth,
|
|
19
|
+
scrollHeight = _ref2.scrollHeight,
|
|
20
|
+
scrollLeft = _ref2.scrollLeft,
|
|
21
|
+
scrollTop = _ref2.scrollTop,
|
|
22
|
+
scrollWidth = _ref2.scrollWidth;
|
|
23
|
+
return /*#__PURE__*/React.createElement(ChildComponent, {
|
|
24
|
+
clientHeight: clientHeight,
|
|
25
|
+
clientWidth: clientWidth,
|
|
26
|
+
scrollHeight: scrollHeight,
|
|
27
|
+
scrollLeft: scrollLeft,
|
|
28
|
+
scrollTop: scrollTop,
|
|
29
|
+
scrollWidth: scrollWidth
|
|
30
|
+
});
|
|
31
|
+
}));
|
|
32
|
+
expect(findDOMNode(component).textContent).toContain('clientHeight:0');
|
|
33
|
+
expect(findDOMNode(component).textContent).toContain('clientWidth:0');
|
|
34
|
+
expect(findDOMNode(component).textContent).toContain('scrollHeight:0');
|
|
35
|
+
expect(findDOMNode(component).textContent).toContain('scrollLeft:0');
|
|
36
|
+
expect(findDOMNode(component).textContent).toContain('scrollTop:0');
|
|
37
|
+
expect(findDOMNode(component).textContent).toContain('scrollWidth:0');
|
|
38
|
+
});
|
|
39
|
+
it('should update :scrollLeft and :scrollTop when :onScroll is called', function () {
|
|
40
|
+
var onScroll;
|
|
41
|
+
var component = render(/*#__PURE__*/React.createElement(ScrollSync, null, function (params) {
|
|
42
|
+
onScroll = params.onScroll;
|
|
43
|
+
return /*#__PURE__*/React.createElement(ChildComponent, params);
|
|
44
|
+
}));
|
|
45
|
+
onScroll({
|
|
46
|
+
clientHeight: 400,
|
|
47
|
+
clientWidth: 200,
|
|
48
|
+
scrollHeight: 1000,
|
|
49
|
+
scrollLeft: 50,
|
|
50
|
+
scrollTop: 100,
|
|
51
|
+
scrollWidth: 500
|
|
52
|
+
});
|
|
53
|
+
expect(findDOMNode(component).textContent).toContain('clientHeight:400');
|
|
54
|
+
expect(findDOMNode(component).textContent).toContain('clientWidth:200');
|
|
55
|
+
expect(findDOMNode(component).textContent).toContain('scrollHeight:1000');
|
|
56
|
+
expect(findDOMNode(component).textContent).toContain('scrollLeft:50');
|
|
57
|
+
expect(findDOMNode(component).textContent).toContain('scrollTop:100');
|
|
58
|
+
expect(findDOMNode(component).textContent).toContain('scrollWidth:500');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
7
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.
|
|
13
|
+
*/
|
|
14
|
+
var ScrollSync = /*#__PURE__*/function (_React$PureComponent) {
|
|
15
|
+
function ScrollSync(props, context) {
|
|
16
|
+
var _this;
|
|
17
|
+
_classCallCheck(this, ScrollSync);
|
|
18
|
+
_this = _callSuper(this, ScrollSync, [props, context]);
|
|
19
|
+
_this.state = {
|
|
20
|
+
clientHeight: 0,
|
|
21
|
+
clientWidth: 0,
|
|
22
|
+
scrollHeight: 0,
|
|
23
|
+
scrollLeft: 0,
|
|
24
|
+
scrollTop: 0,
|
|
25
|
+
scrollWidth: 0
|
|
26
|
+
};
|
|
27
|
+
_this._onScroll = _this._onScroll.bind(_this);
|
|
28
|
+
return _this;
|
|
29
|
+
}
|
|
30
|
+
_inherits(ScrollSync, _React$PureComponent);
|
|
31
|
+
return _createClass(ScrollSync, [{
|
|
32
|
+
key: "render",
|
|
33
|
+
value: function render() {
|
|
34
|
+
var children = this.props.children;
|
|
35
|
+
var _this$state = this.state,
|
|
36
|
+
clientHeight = _this$state.clientHeight,
|
|
37
|
+
clientWidth = _this$state.clientWidth,
|
|
38
|
+
scrollHeight = _this$state.scrollHeight,
|
|
39
|
+
scrollLeft = _this$state.scrollLeft,
|
|
40
|
+
scrollTop = _this$state.scrollTop,
|
|
41
|
+
scrollWidth = _this$state.scrollWidth;
|
|
42
|
+
return children({
|
|
43
|
+
clientHeight: clientHeight,
|
|
44
|
+
clientWidth: clientWidth,
|
|
45
|
+
onScroll: this._onScroll,
|
|
46
|
+
scrollHeight: scrollHeight,
|
|
47
|
+
scrollLeft: scrollLeft,
|
|
48
|
+
scrollTop: scrollTop,
|
|
49
|
+
scrollWidth: scrollWidth
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}, {
|
|
53
|
+
key: "_onScroll",
|
|
54
|
+
value: function _onScroll(_ref) {
|
|
55
|
+
var clientHeight = _ref.clientHeight,
|
|
56
|
+
clientWidth = _ref.clientWidth,
|
|
57
|
+
scrollHeight = _ref.scrollHeight,
|
|
58
|
+
scrollLeft = _ref.scrollLeft,
|
|
59
|
+
scrollTop = _ref.scrollTop,
|
|
60
|
+
scrollWidth = _ref.scrollWidth;
|
|
61
|
+
this.setState({
|
|
62
|
+
clientHeight: clientHeight,
|
|
63
|
+
clientWidth: clientWidth,
|
|
64
|
+
scrollHeight: scrollHeight,
|
|
65
|
+
scrollLeft: scrollLeft,
|
|
66
|
+
scrollTop: scrollTop,
|
|
67
|
+
scrollWidth: scrollWidth
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}]);
|
|
71
|
+
}(React.PureComponent);
|
|
72
|
+
export { ScrollSync as default };
|
|
73
|
+
ScrollSync.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
74
|
+
/**
|
|
75
|
+
* Function responsible for rendering 2 or more virtualized components.
|
|
76
|
+
* This function should implement the following signature:
|
|
77
|
+
* ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element
|
|
78
|
+
*/
|
|
79
|
+
children: PropTypes.func.isRequired
|
|
80
|
+
} : {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Immutable from 'immutable';
|
|
3
|
+
import defaultCellDataGetter from './defaultCellDataGetter';
|
|
4
|
+
import defaultCellRenderer from './defaultCellRenderer';
|
|
5
|
+
import defaultHeaderRenderer from './defaultHeaderRenderer';
|
|
6
|
+
describe('Column', function () {
|
|
7
|
+
var rowData = Immutable.Map({
|
|
8
|
+
foo: 'Foo',
|
|
9
|
+
bar: 1
|
|
10
|
+
});
|
|
11
|
+
describe('defaultCellDataGetter', function () {
|
|
12
|
+
it('should return a value for specified attributes', function () {
|
|
13
|
+
expect(defaultCellDataGetter({
|
|
14
|
+
dataKey: 'foo',
|
|
15
|
+
rowData: rowData
|
|
16
|
+
})).toEqual('Foo');
|
|
17
|
+
expect(defaultCellDataGetter({
|
|
18
|
+
dataKey: 'bar',
|
|
19
|
+
rowData: rowData
|
|
20
|
+
})).toEqual(1);
|
|
21
|
+
});
|
|
22
|
+
it('should return undefined for missing attributes', function () {
|
|
23
|
+
expect(defaultCellDataGetter({
|
|
24
|
+
dataKey: 'baz',
|
|
25
|
+
rowData: rowData
|
|
26
|
+
})).toEqual(undefined);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('defaultCellRenderer', function () {
|
|
30
|
+
it('should render a value for specified attributes', function () {
|
|
31
|
+
expect(defaultCellRenderer({
|
|
32
|
+
cellData: 'Foo',
|
|
33
|
+
dataKey: 'foo',
|
|
34
|
+
rowData: rowData,
|
|
35
|
+
rowIndex: 0
|
|
36
|
+
})).toEqual('Foo');
|
|
37
|
+
expect(defaultCellRenderer({
|
|
38
|
+
cellData: 1,
|
|
39
|
+
dataKey: 'bar',
|
|
40
|
+
rowData: rowData,
|
|
41
|
+
rowIndex: 0
|
|
42
|
+
})).toEqual('1');
|
|
43
|
+
});
|
|
44
|
+
it('should render empty string for null or missing attributes', function () {
|
|
45
|
+
expect(defaultCellRenderer({
|
|
46
|
+
cellData: null,
|
|
47
|
+
dataKey: 'baz',
|
|
48
|
+
rowData: rowData,
|
|
49
|
+
rowIndex: 0
|
|
50
|
+
})).toEqual('');
|
|
51
|
+
expect(defaultCellRenderer({
|
|
52
|
+
cellData: undefined,
|
|
53
|
+
dataKey: 'baz',
|
|
54
|
+
rowData: rowData,
|
|
55
|
+
rowIndex: 0
|
|
56
|
+
})).toEqual('');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('defaultHeaderRenderer', function () {
|
|
60
|
+
it('should render a value for specified attributes', function () {
|
|
61
|
+
expect(defaultHeaderRenderer({
|
|
62
|
+
dataKey: 'foo',
|
|
63
|
+
label: 'squirrel'
|
|
64
|
+
})[0].props.children).toEqual('squirrel');
|
|
65
|
+
var label = /*#__PURE__*/React.createElement("div", {
|
|
66
|
+
className: "rabbit"
|
|
67
|
+
}, "Rabbit");
|
|
68
|
+
expect(defaultHeaderRenderer({
|
|
69
|
+
dataKey: 'bar',
|
|
70
|
+
label: label
|
|
71
|
+
})[0].props.children).toEqual(label);
|
|
72
|
+
});
|
|
73
|
+
it('should render empty string for null or missing attributes', function () {
|
|
74
|
+
expect(defaultHeaderRenderer({
|
|
75
|
+
dataKey: 'foo',
|
|
76
|
+
label: null
|
|
77
|
+
})[0].props.children).toBeNull();
|
|
78
|
+
expect(defaultHeaderRenderer({
|
|
79
|
+
dataKey: 'bar',
|
|
80
|
+
label: undefined
|
|
81
|
+
})[0].props.children).toBeUndefined();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
|
+
import * as React from 'react';
|
|
11
|
+
import defaultHeaderRenderer from './defaultHeaderRenderer';
|
|
12
|
+
import defaultCellRenderer from './defaultCellRenderer';
|
|
13
|
+
import defaultCellDataGetter from './defaultCellDataGetter';
|
|
14
|
+
import SortDirection from './SortDirection';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Describes the header and cell contents of a table column.
|
|
18
|
+
*/
|
|
19
|
+
var Column = /*#__PURE__*/function (_React$Component) {
|
|
20
|
+
function Column() {
|
|
21
|
+
_classCallCheck(this, Column);
|
|
22
|
+
return _callSuper(this, Column, arguments);
|
|
23
|
+
}
|
|
24
|
+
_inherits(Column, _React$Component);
|
|
25
|
+
return _createClass(Column);
|
|
26
|
+
}(React.Component);
|
|
27
|
+
_defineProperty(Column, "defaultProps", {
|
|
28
|
+
cellDataGetter: defaultCellDataGetter,
|
|
29
|
+
cellRenderer: defaultCellRenderer,
|
|
30
|
+
defaultSortDirection: SortDirection.ASC,
|
|
31
|
+
flexGrow: 0,
|
|
32
|
+
flexShrink: 1,
|
|
33
|
+
headerRenderer: defaultHeaderRenderer,
|
|
34
|
+
style: {}
|
|
35
|
+
});
|
|
36
|
+
export { Column as default };
|
|
37
|
+
Column.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
38
|
+
/** Optional aria-label value to set on the column header */
|
|
39
|
+
'aria-label': PropTypes.string,
|
|
40
|
+
/**
|
|
41
|
+
* Callback responsible for returning a cell's data, given its :dataKey
|
|
42
|
+
* ({ columnData: any, dataKey: string, rowData: any }): any
|
|
43
|
+
*/
|
|
44
|
+
cellDataGetter: PropTypes.func,
|
|
45
|
+
/**
|
|
46
|
+
* Callback responsible for rendering a cell's contents.
|
|
47
|
+
* ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node
|
|
48
|
+
*/
|
|
49
|
+
cellRenderer: PropTypes.func,
|
|
50
|
+
/** Optional CSS class to apply to cell */
|
|
51
|
+
className: PropTypes.string,
|
|
52
|
+
/** Optional additional data passed to this column's :cellDataGetter */
|
|
53
|
+
columnData: PropTypes.object,
|
|
54
|
+
/** Uniquely identifies the row-data attribute corresponding to this cell */
|
|
55
|
+
dataKey: PropTypes.any.isRequired,
|
|
56
|
+
/** Optional direction to be used when clicked the first time */
|
|
57
|
+
defaultSortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),
|
|
58
|
+
/** If sort is enabled for the table at large, disable it for this column */
|
|
59
|
+
disableSort: PropTypes.bool,
|
|
60
|
+
/** Flex grow style; defaults to 0 */
|
|
61
|
+
flexGrow: PropTypes.number,
|
|
62
|
+
/** Flex shrink style; defaults to 1 */
|
|
63
|
+
flexShrink: PropTypes.number,
|
|
64
|
+
/** Optional CSS class to apply to this column's header */
|
|
65
|
+
headerClassName: PropTypes.string,
|
|
66
|
+
/**
|
|
67
|
+
* Optional callback responsible for rendering a column header contents.
|
|
68
|
+
* ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node
|
|
69
|
+
*/
|
|
70
|
+
headerRenderer: PropTypes.func.isRequired,
|
|
71
|
+
/** Optional inline style to apply to this column's header */
|
|
72
|
+
headerStyle: PropTypes.object,
|
|
73
|
+
/** Optional id to set on the column header */
|
|
74
|
+
id: PropTypes.string,
|
|
75
|
+
/** Header label for this column */
|
|
76
|
+
label: PropTypes.node,
|
|
77
|
+
/** Maximum width of column; this property will only be used if :flexGrow is > 0. */
|
|
78
|
+
maxWidth: PropTypes.number,
|
|
79
|
+
/** Minimum width of column. */
|
|
80
|
+
minWidth: PropTypes.number,
|
|
81
|
+
/** Optional inline style to apply to cell */
|
|
82
|
+
style: PropTypes.object,
|
|
83
|
+
/** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */
|
|
84
|
+
width: PropTypes.number.isRequired
|
|
85
|
+
} : {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var SortDirection = {
|
|
2
|
+
/**
|
|
3
|
+
* Sort items in ascending order.
|
|
4
|
+
* This means arranging from the lowest value to the highest (e.g. a-z, 0-9).
|
|
5
|
+
*/
|
|
6
|
+
ASC: 'ASC',
|
|
7
|
+
/**
|
|
8
|
+
* Sort items in descending order.
|
|
9
|
+
* This means arranging from the highest value to the lowest (e.g. z-a, 9-0).
|
|
10
|
+
*/
|
|
11
|
+
DESC: 'DESC'
|
|
12
|
+
};
|
|
13
|
+
export default SortDirection;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import SortDirection from './SortDirection';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Displayed beside a header to indicate that a Table is currently sorted by this column.
|
|
8
|
+
*/
|
|
9
|
+
export default function SortIndicator(_ref) {
|
|
10
|
+
var sortDirection = _ref.sortDirection;
|
|
11
|
+
var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {
|
|
12
|
+
'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,
|
|
13
|
+
'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC
|
|
14
|
+
});
|
|
15
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
16
|
+
className: classNames,
|
|
17
|
+
width: 18,
|
|
18
|
+
height: 18,
|
|
19
|
+
viewBox: "0 0 24 24"
|
|
20
|
+
}, sortDirection === SortDirection.ASC ? /*#__PURE__*/React.createElement("path", {
|
|
21
|
+
d: "M7 14l5-5 5 5z"
|
|
22
|
+
}) : /*#__PURE__*/React.createElement("path", {
|
|
23
|
+
d: "M7 10l5 5 5-5z"
|
|
24
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
25
|
+
d: "M0 0h24v24H0z",
|
|
26
|
+
fill: "none"
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
SortIndicator.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
30
|
+
sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])
|
|
31
|
+
} : {};
|