@hi-ui/table 4.3.1 → 4.3.2
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/CHANGELOG.md +40 -0
- package/lib/cjs/BaseTable.js +136 -189
- package/lib/cjs/ColGroupContent.js +5 -28
- package/lib/cjs/SettingDrawer.js +76 -127
- package/lib/cjs/Table.js +107 -171
- package/lib/cjs/TableAdvancedFilter.js +49 -85
- package/lib/cjs/TableBody.js +33 -69
- package/lib/cjs/TableCell.js +56 -102
- package/lib/cjs/TableColumnMenu.js +39 -77
- package/lib/cjs/TableEmbedRow.js +11 -38
- package/lib/cjs/TableHeader.js +8 -33
- package/lib/cjs/TableRow.js +48 -88
- package/lib/cjs/TableSettingMenu.js +48 -94
- package/lib/cjs/TbodyContent.js +28 -56
- package/lib/cjs/TheadContent.js +20 -49
- package/lib/cjs/_virtual/index.js +0 -3
- package/lib/cjs/_virtual/index2.js +0 -3
- package/lib/cjs/_virtual/react-is.development.js +0 -3
- package/lib/cjs/_virtual/react-is.production.min.js +0 -3
- package/lib/cjs/context.js +0 -9
- package/lib/cjs/hooks/use-async-switch.js +13 -51
- package/lib/cjs/hooks/use-check.js +47 -77
- package/lib/cjs/hooks/use-col-hidden.js +16 -28
- package/lib/cjs/hooks/use-col-set.js +5 -18
- package/lib/cjs/hooks/use-col-sorter.js +18 -32
- package/lib/cjs/hooks/use-col-width.js +21 -57
- package/lib/cjs/hooks/use-colgroup.js +63 -85
- package/lib/cjs/hooks/use-drag.js +10 -31
- package/lib/cjs/hooks/use-embed-expand.js +23 -68
- package/lib/cjs/hooks/use-expand.js +32 -64
- package/lib/cjs/hooks/use-pagination.js +19 -50
- package/lib/cjs/hooks/use-queue.js +2 -14
- package/lib/cjs/icons/index.js +4 -21
- package/lib/cjs/index.js +0 -4
- package/lib/cjs/node_modules/classnames/index.js +2 -11
- package/lib/cjs/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +31 -227
- package/lib/cjs/node_modules/rc-resize-observer/es/index.js +10 -68
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +1 -17
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +1 -25
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +1 -5
- package/lib/cjs/node_modules/rc-util/es/Dom/canUseDom.js +0 -2
- package/lib/cjs/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
- package/lib/cjs/node_modules/rc-util/es/hooks/useLayoutEffect.js +2 -9
- package/lib/cjs/node_modules/rc-util/es/raf.js +0 -11
- package/lib/cjs/node_modules/rc-virtual-list/es/Filler.js +6 -25
- package/lib/cjs/node_modules/rc-virtual-list/es/Item.js +3 -14
- package/lib/cjs/node_modules/rc-virtual-list/es/List.js +103 -194
- package/lib/cjs/node_modules/rc-virtual-list/es/ScrollBar.js +16 -96
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useChildren.js +2 -11
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +8 -34
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -10
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useHeights.js +6 -39
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -16
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -9
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +3 -28
- package/lib/cjs/node_modules/rc-virtual-list/es/index.js +0 -2
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -9
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +0 -15
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -2
- package/lib/cjs/node_modules/react-is/cjs/react-is.development.js +3 -29
- package/lib/cjs/node_modules/react-is/cjs/react-is.production.min.js +19 -45
- package/lib/cjs/node_modules/react-is/index.js +0 -5
- package/lib/cjs/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +83 -248
- package/lib/cjs/packages/hooks/use-merge-refs/lib/esm/index.js +3 -14
- package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +48 -86
- package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -15
- package/lib/cjs/packages/ui/scrollbar/lib/esm/utils/index.js +0 -13
- package/lib/cjs/styles/index.scss.js +1 -4
- package/lib/cjs/use-table.js +268 -355
- package/lib/cjs/utils/index.js +11 -45
- package/lib/esm/BaseTable.js +117 -138
- package/lib/esm/ColGroupContent.js +3 -9
- package/lib/esm/SettingDrawer.js +64 -83
- package/lib/esm/Table.js +97 -124
- package/lib/esm/TableAdvancedFilter.js +37 -47
- package/lib/esm/TableBody.js +24 -34
- package/lib/esm/TableCell.js +48 -72
- package/lib/esm/TableColumnMenu.js +24 -38
- package/lib/esm/TableEmbedRow.js +8 -15
- package/lib/esm/TableHeader.js +5 -11
- package/lib/esm/TableRow.js +36 -51
- package/lib/esm/TableSettingMenu.js +33 -49
- package/lib/esm/TbodyContent.js +20 -27
- package/lib/esm/TheadContent.js +14 -21
- package/lib/esm/context.js +0 -4
- package/lib/esm/hooks/use-async-switch.js +9 -28
- package/lib/esm/hooks/use-check.js +42 -55
- package/lib/esm/hooks/use-col-hidden.js +16 -21
- package/lib/esm/hooks/use-col-set.js +5 -13
- package/lib/esm/hooks/use-col-sorter.js +18 -23
- package/lib/esm/hooks/use-col-width.js +14 -34
- package/lib/esm/hooks/use-colgroup.js +60 -66
- package/lib/esm/hooks/use-drag.js +9 -13
- package/lib/esm/hooks/use-embed-expand.js +20 -42
- package/lib/esm/hooks/use-expand.js +32 -56
- package/lib/esm/hooks/use-pagination.js +13 -25
- package/lib/esm/hooks/use-queue.js +2 -10
- package/lib/esm/node_modules/classnames/index.js +2 -9
- package/lib/esm/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +31 -228
- package/lib/esm/node_modules/rc-resize-observer/es/index.js +3 -26
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +0 -3
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +0 -8
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +0 -5
- package/lib/esm/node_modules/rc-util/es/Dom/canUseDom.js +0 -1
- package/lib/esm/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
- package/lib/esm/node_modules/rc-util/es/hooks/useLayoutEffect.js +1 -0
- package/lib/esm/node_modules/rc-util/es/raf.js +0 -10
- package/lib/esm/node_modules/rc-virtual-list/es/Filler.js +4 -15
- package/lib/esm/node_modules/rc-virtual-list/es/Item.js +1 -3
- package/lib/esm/node_modules/rc-virtual-list/es/List.js +101 -174
- package/lib/esm/node_modules/rc-virtual-list/es/ScrollBar.js +14 -86
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useChildren.js +0 -2
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +6 -25
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -6
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +4 -28
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -13
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -8
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +1 -19
- package/lib/esm/node_modules/rc-virtual-list/es/index.js +1 -1
- package/lib/esm/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -8
- package/lib/esm/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +1 -12
- package/lib/esm/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -1
- package/lib/esm/node_modules/react-is/cjs/react-is.development.js +4 -27
- package/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +20 -44
- package/lib/esm/node_modules/react-is/index.js +0 -1
- package/lib/esm/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +82 -248
- package/lib/esm/packages/hooks/use-merge-refs/lib/esm/index.js +3 -9
- package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +47 -64
- package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -3
- package/lib/esm/packages/ui/scrollbar/lib/esm/utils/index.js +0 -10
- package/lib/esm/styles/index.scss.js +1 -3
- package/lib/esm/use-table.js +261 -318
- package/lib/esm/utils/index.js +11 -41
- package/lib/types/BaseTable.d.ts +2 -2
- package/package.json +33 -33
package/lib/cjs/use-table.js
CHANGED
|
@@ -9,52 +9,22 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var tslib = require('tslib');
|
|
19
|
-
|
|
20
13
|
var React = require('react');
|
|
21
|
-
|
|
22
14
|
var treeUtils = require('@hi-ui/tree-utils');
|
|
23
|
-
|
|
24
15
|
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
25
|
-
|
|
26
16
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
27
|
-
|
|
28
17
|
var useCheck = require('@hi-ui/use-check');
|
|
29
|
-
|
|
30
18
|
var env = require('@hi-ui/env');
|
|
31
|
-
|
|
32
19
|
var domUtils = require('@hi-ui/dom-utils');
|
|
33
|
-
|
|
34
20
|
var useCache = require('@hi-ui/use-cache');
|
|
35
|
-
|
|
36
21
|
var useLatest = require('@hi-ui/use-latest');
|
|
37
|
-
|
|
38
22
|
var index = require('./utils/index.js');
|
|
39
|
-
|
|
40
23
|
var useAsyncSwitch = require('./hooks/use-async-switch.js');
|
|
41
|
-
|
|
42
24
|
var useExpand = require('./hooks/use-expand.js');
|
|
43
|
-
|
|
44
25
|
var useColWidth = require('./hooks/use-col-width.js');
|
|
45
|
-
|
|
46
26
|
var useColgroup = require('./hooks/use-colgroup.js');
|
|
47
|
-
|
|
48
27
|
var useDrag = require('./hooks/use-drag.js');
|
|
49
|
-
|
|
50
|
-
function _interopDefaultLegacy(e) {
|
|
51
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
52
|
-
'default': e
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
57
|
-
|
|
58
28
|
var DEFAULT_COLUMNS = [];
|
|
59
29
|
var DEFAULT_DATA = [];
|
|
60
30
|
var DEFAULT_ERROR_ROW_KEYS = [];
|
|
@@ -62,75 +32,69 @@ var DEFAULT_HIGHLIGHTED_ROW_KEYS = [];
|
|
|
62
32
|
var DEFAULT_HIGHLIGHTED_COL_KEYS = [];
|
|
63
33
|
var DEFAULT_EXPAND_ROW_KEYS = [];
|
|
64
34
|
var DEFAULT_FIXED_TO_COLUMN = {};
|
|
65
|
-
|
|
66
35
|
var useTable = function useTable(_a) {
|
|
67
36
|
var _a$data = _a.data,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
37
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
|
38
|
+
_a$columns = _a.columns,
|
|
39
|
+
columnsProp = _a$columns === void 0 ? DEFAULT_COLUMNS : _a$columns,
|
|
40
|
+
_a$defaultFixedToColu = _a.defaultFixedToColumn,
|
|
41
|
+
defaultFixedToColumn = _a$defaultFixedToColu === void 0 ? DEFAULT_FIXED_TO_COLUMN : _a$defaultFixedToColu,
|
|
42
|
+
fixedToColumnProp = _a.fixedToColumn,
|
|
43
|
+
onFixedToColumn = _a.onFixedToColumn,
|
|
44
|
+
scrollWidth = _a.scrollWidth,
|
|
45
|
+
_a$resizable = _a.resizable,
|
|
46
|
+
resizable = _a$resizable === void 0 ? false : _a$resizable,
|
|
47
|
+
_a$errorRowKeys = _a.errorRowKeys,
|
|
48
|
+
errorRowKeys = _a$errorRowKeys === void 0 ? DEFAULT_ERROR_ROW_KEYS : _a$errorRowKeys,
|
|
49
|
+
highlightedColKeysProp = _a.highlightedColKeys,
|
|
50
|
+
highlightedRowKeysProp = _a.highlightedRowKeys,
|
|
51
|
+
_a$showColHighlight = _a.showColHighlight,
|
|
52
|
+
showColHighlight = _a$showColHighlight === void 0 ? false : _a$showColHighlight,
|
|
53
|
+
_a$showRowHighlight = _a.showRowHighlight,
|
|
54
|
+
showRowHighlight = _a$showRowHighlight === void 0 ? true : _a$showRowHighlight,
|
|
55
|
+
_a$highlightRowOnDoub = _a.highlightRowOnDoubleClick,
|
|
56
|
+
highlightRowOnDoubleClick = _a$highlightRowOnDoub === void 0 ? true : _a$highlightRowOnDoub,
|
|
57
|
+
_a$defaultExpandedRow = _a.defaultExpandedRowKeys,
|
|
58
|
+
defaultExpandedRowKeys = _a$defaultExpandedRow === void 0 ? DEFAULT_EXPAND_ROW_KEYS : _a$defaultExpandedRow,
|
|
59
|
+
expandRowKeysProp = _a.expandedRowKeys,
|
|
60
|
+
onExpand = _a.onExpand,
|
|
61
|
+
_a$defaultExpandAll = _a.defaultExpandAll,
|
|
62
|
+
defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
|
|
63
|
+
onLoadChildren = _a.onLoadChildren,
|
|
64
|
+
maxHeight = _a.maxHeight,
|
|
65
|
+
sticky = _a.sticky,
|
|
66
|
+
_a$stickyTop = _a.stickyTop,
|
|
67
|
+
stickyTop = _a$stickyTop === void 0 ? 0 : _a$stickyTop,
|
|
68
|
+
_a$draggable = _a.draggable,
|
|
69
|
+
draggable = _a$draggable === void 0 ? false : _a$draggable,
|
|
70
|
+
onDropProp = _a.onDrop,
|
|
71
|
+
onDropEnd = _a.onDropEnd,
|
|
72
|
+
showColMenu = _a.showColMenu,
|
|
73
|
+
rowSelection = _a.rowSelection,
|
|
74
|
+
cellRender = _a.cellRender,
|
|
75
|
+
footerRender = _a.footerRender,
|
|
76
|
+
_a$fieldKey = _a.fieldKey,
|
|
77
|
+
fieldKey = _a$fieldKey === void 0 ? 'key' : _a$fieldKey,
|
|
78
|
+
virtual = _a.virtual,
|
|
79
|
+
scrollbar = _a.scrollbar,
|
|
80
|
+
rootProps = tslib.__rest(_a, ["data", "columns", "defaultFixedToColumn", "fixedToColumn", "onFixedToColumn", "scrollWidth", "resizable", "errorRowKeys", "highlightedColKeys", "highlightedRowKeys", "showColHighlight", "showRowHighlight", "highlightRowOnDoubleClick", "defaultExpandedRowKeys", "expandedRowKeys", "onExpand", "defaultExpandAll", "onLoadChildren", "maxHeight", "sticky", "stickyTop", "draggable", "onDragStart", "onDrop", "onDropEnd", "showColMenu", "rowSelection", "cellRender", "footerRender", "fieldKey", "virtual", "scrollbar"]);
|
|
112
81
|
/**
|
|
113
82
|
* 获取 key 字段值
|
|
114
83
|
*/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
var getRowKeyField = React__default["default"].useCallback(function (item) {
|
|
84
|
+
var getRowKeyField = React.useCallback(function (item) {
|
|
118
85
|
var val = item[fieldKey];
|
|
119
86
|
env.invariant(!typeAssertion.isNullish(val), 'Not found for the unique %s attribute in each row of data prop.', fieldKey);
|
|
120
87
|
return val;
|
|
121
|
-
}, [fieldKey]);
|
|
122
|
-
|
|
88
|
+
}, [fieldKey]);
|
|
89
|
+
// ********************** cache *********************** //
|
|
123
90
|
var _useCache = useCache.useCache(data),
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
91
|
+
cacheData = _useCache[0],
|
|
92
|
+
setCacheData = _useCache[1];
|
|
127
93
|
var _useCache2 = useCache.useCache(columnsProp),
|
|
128
|
-
|
|
94
|
+
columns = _useCache2[0];
|
|
129
95
|
/**
|
|
130
96
|
* 扁平化数据,支持树形 table
|
|
131
97
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
98
|
var flattedData = React.useMemo(function () {
|
|
135
99
|
var clonedData = treeUtils.cloneTree(cacheData);
|
|
136
100
|
return treeUtils.flattenTree(clonedData, function (node) {
|
|
@@ -138,92 +102,81 @@ var useTable = function useTable(_a) {
|
|
|
138
102
|
id: getRowKeyField(node.raw)
|
|
139
103
|
});
|
|
140
104
|
});
|
|
141
|
-
}, [cacheData, getRowKeyField]);
|
|
142
|
-
|
|
105
|
+
}, [cacheData, getRowKeyField]);
|
|
106
|
+
// ********************** 树形表格 *********************** //
|
|
143
107
|
var _useExpand = useExpand.useExpand(flattedData, defaultExpandedRowKeys, expandRowKeysProp, onExpand, defaultExpandAll),
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
108
|
+
transitionData = _useExpand[0],
|
|
109
|
+
onExpandTreeRowsChange = _useExpand[1],
|
|
110
|
+
isExpandTreeRows = _useExpand[2];
|
|
111
|
+
// 异步展开子树
|
|
149
112
|
var _useAsyncSwitch = useAsyncSwitch.useAsyncSwitch({
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
113
|
+
setCascaderData: setCacheData,
|
|
114
|
+
onExpand: onExpandTreeRowsChange,
|
|
115
|
+
onLoadChildren: onLoadChildren,
|
|
116
|
+
fieldKey: fieldKey
|
|
117
|
+
}),
|
|
118
|
+
isLoadingTreeNodeId = _useAsyncSwitch[0],
|
|
119
|
+
onTreeNodeSwitch = _useAsyncSwitch[1];
|
|
120
|
+
// ************************ 拖拽 ************************ //
|
|
159
121
|
var _useTableDrag = useDrag.useTableDrag({
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
122
|
+
cacheData: cacheData,
|
|
123
|
+
setCacheData: setCacheData,
|
|
124
|
+
draggable: draggable,
|
|
125
|
+
flattedData: flattedData,
|
|
126
|
+
onDropEnd: onDropEnd,
|
|
127
|
+
onDrop: onDropProp,
|
|
128
|
+
fieldKey: fieldKey
|
|
129
|
+
}),
|
|
130
|
+
onDrop = _useTableDrag.onDrop,
|
|
131
|
+
dragRowRef = _useTableDrag.dragRowRef;
|
|
132
|
+
// ************************ colgroup ************************ //
|
|
172
133
|
var _useColumns = useColgroup.useColumns({
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
134
|
+
columns: columns
|
|
135
|
+
}),
|
|
136
|
+
flattedColumns = _useColumns.flattedColumns,
|
|
137
|
+
mergedColumns2 = _useColumns.mergedColumns,
|
|
138
|
+
leafColumns = _useColumns.leafColumns;
|
|
139
|
+
// ************************ 列高亮 ************************ //
|
|
179
140
|
/**
|
|
180
141
|
* 控制列高亮,依据 column 中的 dataKey 控制
|
|
181
142
|
*/
|
|
182
|
-
|
|
183
|
-
|
|
184
143
|
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(DEFAULT_HIGHLIGHTED_COL_KEYS, highlightedColKeysProp),
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
144
|
+
highlightedColKeys = _useUncontrolledState[0],
|
|
145
|
+
trySetHighlightedColKeys = _useUncontrolledState[1];
|
|
188
146
|
var _useCheck = useCheck.useCheck({
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
147
|
+
checkedIds: highlightedColKeys,
|
|
148
|
+
onCheck: trySetHighlightedColKeys,
|
|
149
|
+
idFieldName: 'dataKey'
|
|
150
|
+
}),
|
|
151
|
+
onHighlightedColChange = _useCheck[0],
|
|
152
|
+
isHighlightedCol = _useCheck[1];
|
|
195
153
|
/**
|
|
196
154
|
* 设置列 hover 时高亮,依据 column 中的 dataKey 控制
|
|
197
155
|
* 与 highlightedColKeys 互不影响
|
|
198
156
|
*/
|
|
199
|
-
|
|
200
|
-
|
|
201
157
|
var _useState = React.useState(''),
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
158
|
+
hoveredColKey = _useState[0],
|
|
159
|
+
setHoveredColKey = _useState[1];
|
|
205
160
|
var _useSelect = useCheck.useSelect({
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
161
|
+
disabled: !showColHighlight,
|
|
162
|
+
selectedId: hoveredColKey,
|
|
163
|
+
onSelect: setHoveredColKey
|
|
164
|
+
}),
|
|
165
|
+
onHoveredColChange = _useSelect[0],
|
|
166
|
+
isHoveredHighlightCol = _useSelect[1];
|
|
167
|
+
// ************************ 列宽 resizable ************************ //
|
|
214
168
|
var _useColWidth = useColWidth.useColWidth({
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
169
|
+
data: data,
|
|
170
|
+
columns: columns,
|
|
171
|
+
resizable: resizable,
|
|
172
|
+
virtual: virtual
|
|
173
|
+
}),
|
|
174
|
+
measureRowElementRef = _useColWidth.measureRowElementRef,
|
|
175
|
+
getColgroupProps = _useColWidth.getColgroupProps,
|
|
176
|
+
onColumnResizable = _useColWidth.onColumnResizable,
|
|
177
|
+
colWidths = _useColWidth.colWidths,
|
|
178
|
+
setHeaderTableElement = _useColWidth.setHeaderTableElement;
|
|
179
|
+
// ************************ 列冻结 ************************ //
|
|
227
180
|
var bodyTableRef = React.useRef(null);
|
|
228
181
|
var scrollBodyElementRef = React.useRef(null);
|
|
229
182
|
/**
|
|
@@ -231,173 +184,155 @@ var useTable = function useTable(_a) {
|
|
|
231
184
|
*
|
|
232
185
|
* TODO: 支持 2 种模式:从左往右冻结到指定列、只抽离并冻结指定列
|
|
233
186
|
*/
|
|
234
|
-
|
|
235
187
|
var _useUncontrolledState2 = useUncontrolledState.useUncontrolledState(defaultFixedToColumn, fixedToColumnProp, onFixedToColumn),
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
188
|
+
fixedToColumn = _useUncontrolledState2[0],
|
|
189
|
+
setFixedToColumn = _useUncontrolledState2[1];
|
|
239
190
|
var leftFreezeColumn = fixedToColumn.left;
|
|
240
191
|
var rightFreezeColumn = fixedToColumn.right;
|
|
241
192
|
var setLeftFreezeColumn = React.useCallback(function (columnKey) {
|
|
242
193
|
setFixedToColumn(function (prev) {
|
|
243
194
|
var next = Object.assign({}, prev);
|
|
244
195
|
next.left = columnKey;
|
|
245
|
-
|
|
246
196
|
if (next.right === columnKey) {
|
|
247
197
|
next.right = '';
|
|
248
198
|
}
|
|
249
|
-
|
|
250
199
|
return next;
|
|
251
200
|
});
|
|
252
201
|
}, [setFixedToColumn]);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
var leftFrozenColKey = leftFreezeColumn;
|
|
264
|
-
var rightFrozenKey = rightFreezeColumn; // 获取左右冻结列的下标
|
|
265
|
-
// 获取左右冻结列的下标
|
|
266
|
-
|
|
267
|
-
var leftFrozenColIndex;
|
|
268
|
-
var rightFrozenColIndex;
|
|
269
|
-
mergedColumns2.some(function (column, index) {
|
|
270
|
-
if (typeof leftFrozenColKey === 'string' && leftFrozenColKey === column.dataKey) {
|
|
271
|
-
leftFrozenColIndex = index;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
if (typeof rightFrozenKey === 'string' && rightFrozenKey === column.dataKey) {
|
|
275
|
-
rightFrozenColIndex = index;
|
|
202
|
+
var _React$useMemo = React.useMemo(function () {
|
|
203
|
+
if (!leftFreezeColumn && !rightFreezeColumn) {
|
|
204
|
+
return {
|
|
205
|
+
leftFrozenColKeys: [],
|
|
206
|
+
rightFrozenColKeys: [],
|
|
207
|
+
columns: mergedColumns2
|
|
208
|
+
};
|
|
276
209
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
210
|
+
var leftFrozenColKey = leftFreezeColumn;
|
|
211
|
+
var rightFrozenKey = rightFreezeColumn;
|
|
212
|
+
// 获取左右冻结列的下标
|
|
213
|
+
// 获取左右冻结列的下标
|
|
214
|
+
var leftFrozenColIndex;
|
|
215
|
+
var rightFrozenColIndex;
|
|
216
|
+
mergedColumns2.some(function (column, index) {
|
|
217
|
+
if (typeof leftFrozenColKey === 'string' && leftFrozenColKey === column.dataKey) {
|
|
218
|
+
leftFrozenColIndex = index;
|
|
219
|
+
}
|
|
220
|
+
if (typeof rightFrozenKey === 'string' && rightFrozenKey === column.dataKey) {
|
|
221
|
+
rightFrozenColIndex = index;
|
|
222
|
+
}
|
|
223
|
+
return leftFrozenColIndex !== undefined && rightFrozenColIndex !== undefined;
|
|
224
|
+
});
|
|
225
|
+
// 保持内部循环引用关系,如果 cloneTree,将破坏关系
|
|
226
|
+
// 保持内部循环引用关系,如果 cloneTree,将破坏关系
|
|
227
|
+
var nextColumns = [].concat(mergedColumns2);
|
|
228
|
+
if (typeof leftFrozenColIndex === 'number' || typeof rightFrozenColIndex === 'number' || scrollWidth) {
|
|
229
|
+
var lastColumns = mergedColumns2;
|
|
230
|
+
nextColumns = index.setColumnsDefaultWidth(nextColumns, scrollWidth ? scrollWidth / lastColumns.length : 100);
|
|
231
|
+
if (colWidths) {
|
|
232
|
+
// colWidths 记录的是最新的列宽,当它有值时,重置一下列宽,否则会导致冻结列动态调整宽度后定位不准
|
|
233
|
+
nextColumns = nextColumns.map(function (item, index) {
|
|
234
|
+
return Object.assign(Object.assign({}, item), {
|
|
235
|
+
width: colWidths[index]
|
|
236
|
+
});
|
|
293
237
|
});
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
var leftColumns = [];
|
|
241
|
+
// 左侧
|
|
242
|
+
// 左侧
|
|
243
|
+
if (typeof leftFrozenColIndex === 'number') {
|
|
244
|
+
// TODO: 支持嵌套冻结列
|
|
245
|
+
// const targetColumn = nextColumns[leftFrozenColIndex]
|
|
246
|
+
// const beforeColumns = nextColumns.filter((_, idx) => idx < leftFrozenColIndex!)
|
|
247
|
+
// // @ts-ignore
|
|
248
|
+
// const afterColumns = fFindNestedChildNodesByIndex(nextColumns, leftFrozenColIndex)
|
|
249
|
+
// // @ts-ignore
|
|
250
|
+
// leftColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
|
|
251
|
+
leftColumns = nextColumns.filter(function (item, index) {
|
|
252
|
+
return index <= leftFrozenColIndex && item.depth === 0;
|
|
253
|
+
});
|
|
254
|
+
leftColumns.forEach(function (currentItem, index$1) {
|
|
255
|
+
var item = index.parseFixedColumns(currentItem, index$1, nextColumns, leftColumns, 'leftStickyWidth');
|
|
256
|
+
leftColumns[index$1] = item;
|
|
257
|
+
nextColumns[item.index] = item;
|
|
294
258
|
});
|
|
295
259
|
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
//
|
|
303
|
-
//
|
|
304
|
-
//
|
|
305
|
-
//
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
})).reverse();
|
|
358
|
-
rightColumns.forEach(function (currentItem, index$1) {
|
|
359
|
-
var item = index.parseFixedColumns(currentItem, index$1, nextColumns, rightColumns, 'rightStickyWidth');
|
|
360
|
-
rightColumns[index$1] = item;
|
|
361
|
-
nextColumns[item.index] = item;
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
var rightLeafNodes = getLeafNodes(rightColumns);
|
|
366
|
-
var rightColIndex = rightLeafNodes.length;
|
|
367
|
-
var rightFixedColumnsWidth = [].concat(colWidths).reverse().reduce(function (acc, width, index) {
|
|
368
|
-
return acc += index < rightColIndex ? width : 0;
|
|
369
|
-
}, 0);
|
|
370
|
-
return {
|
|
371
|
-
leftFrozenColKeys: leftColumns,
|
|
372
|
-
rightFrozenColKeys: rightColumns,
|
|
373
|
-
columns: nextColumns,
|
|
374
|
-
leftFixedColumnsWidth: leftFixedColumnsWidth,
|
|
375
|
-
rightFixedColumnsWidth: rightFixedColumnsWidth
|
|
376
|
-
};
|
|
377
|
-
}, [mergedColumns2, scrollWidth, colWidths, leftFreezeColumn, rightFreezeColumn]),
|
|
378
|
-
leftFrozenColKeys = _React$useMemo.leftFrozenColKeys,
|
|
379
|
-
rightFrozenColKeys = _React$useMemo.rightFrozenColKeys,
|
|
380
|
-
mergedColumns1 = _React$useMemo.columns,
|
|
381
|
-
leftFixedColumnsWidth = _React$useMemo.leftFixedColumnsWidth,
|
|
382
|
-
rightFixedColumnsWidth = _React$useMemo.rightFixedColumnsWidth;
|
|
383
|
-
|
|
260
|
+
// @TODO: resizable 和 列冻结宽兼容,统一宽度设置来源
|
|
261
|
+
// const leftFixedColumnsWidth = colWidths.reduce(
|
|
262
|
+
// (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
|
|
263
|
+
// 0
|
|
264
|
+
// )
|
|
265
|
+
// @TODO: resizable 和 列冻结宽兼容,统一宽度设置来源
|
|
266
|
+
// const leftFixedColumnsWidth = colWidths.reduce(
|
|
267
|
+
// (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
|
|
268
|
+
// 0
|
|
269
|
+
// )
|
|
270
|
+
var getLeafNodes = function getLeafNodes(columns) {
|
|
271
|
+
return columns.reduce(function (acc, column) {
|
|
272
|
+
return acc.concat(treeUtils.getLeafChildren(column));
|
|
273
|
+
}, []);
|
|
274
|
+
};
|
|
275
|
+
var leftLeafNodes = getLeafNodes(leftColumns);
|
|
276
|
+
var leftColIndex = leftLeafNodes.length;
|
|
277
|
+
var leftFixedColumnsWidth = colWidths.reduce(function (acc, width, index) {
|
|
278
|
+
return acc += index < leftColIndex ? width : 0;
|
|
279
|
+
}, 0);
|
|
280
|
+
// 右侧
|
|
281
|
+
// 右侧
|
|
282
|
+
var rightColumns = [];
|
|
283
|
+
if (typeof rightFrozenColIndex === 'number') {
|
|
284
|
+
var targetColumn = nextColumns[rightFrozenColIndex];
|
|
285
|
+
// const beforeColumns = getNodeAncestors(targetColumn)
|
|
286
|
+
// const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
|
|
287
|
+
// // @ts-ignore
|
|
288
|
+
// rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
|
|
289
|
+
// const beforeColumns = getNodeAncestors(targetColumn)
|
|
290
|
+
// const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
|
|
291
|
+
// // @ts-ignore
|
|
292
|
+
// rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
|
|
293
|
+
var root = treeUtils.getNodeRootParent(targetColumn);
|
|
294
|
+
rightColumns = [root].concat(nextColumns.filter(function (item, index) {
|
|
295
|
+
return index > rightFrozenColIndex && item.depth === 0;
|
|
296
|
+
})).reverse();
|
|
297
|
+
rightColumns.forEach(function (currentItem, index$1) {
|
|
298
|
+
var item = index.parseFixedColumns(currentItem, index$1, nextColumns, rightColumns, 'rightStickyWidth');
|
|
299
|
+
rightColumns[index$1] = item;
|
|
300
|
+
nextColumns[item.index] = item;
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
var rightLeafNodes = getLeafNodes(rightColumns);
|
|
304
|
+
var rightColIndex = rightLeafNodes.length;
|
|
305
|
+
var rightFixedColumnsWidth = [].concat(colWidths).reverse().reduce(function (acc, width, index) {
|
|
306
|
+
return acc += index < rightColIndex ? width : 0;
|
|
307
|
+
}, 0);
|
|
308
|
+
return {
|
|
309
|
+
leftFrozenColKeys: leftColumns,
|
|
310
|
+
rightFrozenColKeys: rightColumns,
|
|
311
|
+
columns: nextColumns,
|
|
312
|
+
leftFixedColumnsWidth: leftFixedColumnsWidth,
|
|
313
|
+
rightFixedColumnsWidth: rightFixedColumnsWidth
|
|
314
|
+
};
|
|
315
|
+
}, [mergedColumns2, scrollWidth, colWidths, leftFreezeColumn, rightFreezeColumn]),
|
|
316
|
+
leftFrozenColKeys = _React$useMemo.leftFrozenColKeys,
|
|
317
|
+
rightFrozenColKeys = _React$useMemo.rightFrozenColKeys,
|
|
318
|
+
mergedColumns1 = _React$useMemo.columns,
|
|
319
|
+
leftFixedColumnsWidth = _React$useMemo.leftFixedColumnsWidth,
|
|
320
|
+
rightFixedColumnsWidth = _React$useMemo.rightFixedColumnsWidth;
|
|
384
321
|
var _useState2 = React.useState({
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
322
|
+
scrollLeft: 0,
|
|
323
|
+
scrollRight: 1
|
|
324
|
+
}),
|
|
325
|
+
scrollSize = _useState2[0],
|
|
326
|
+
setScrollSize = _useState2[1];
|
|
391
327
|
React.useEffect(function () {
|
|
392
328
|
var _a, _b, _c, _d, _e, _f;
|
|
393
|
-
|
|
394
329
|
if (leftFrozenColKeys.length > 0 || rightFrozenColKeys.length > 0) {
|
|
395
330
|
// 计算冻结列的宽度
|
|
396
331
|
// mutationObserver
|
|
397
332
|
var tableWidth = (_c = (_b = (_a = bodyTableRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect) === null || _b === void 0 ? void 0 : _b.call(_a).width) !== null && _c !== void 0 ? _c : 0;
|
|
398
333
|
var tableBodyWidth = (_f = (_e = (_d = scrollBodyElementRef.current) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect) === null || _e === void 0 ? void 0 : _e.call(_d).width) !== null && _f !== void 0 ? _f : 0;
|
|
399
|
-
var scrollRight = tableWidth - tableBodyWidth;
|
|
400
|
-
|
|
334
|
+
var scrollRight = tableWidth - tableBodyWidth;
|
|
335
|
+
// const scrollLeft = 0
|
|
401
336
|
setScrollSize(function (prev) {
|
|
402
337
|
return {
|
|
403
338
|
scrollLeft: prev.scrollLeft,
|
|
@@ -405,114 +340,100 @@ var useTable = function useTable(_a) {
|
|
|
405
340
|
};
|
|
406
341
|
});
|
|
407
342
|
}
|
|
408
|
-
}, [leftFrozenColKeys, rightFrozenColKeys]);
|
|
343
|
+
}, [leftFrozenColKeys, rightFrozenColKeys]);
|
|
344
|
+
// const canScroll = scrollSize.scrollRight > 0
|
|
409
345
|
// 实时计算
|
|
410
|
-
|
|
411
346
|
var canScroll = bodyTableRef.current && scrollBodyElementRef.current ? scrollBodyElementRef.current.clientWidth < bodyTableRef.current.clientWidth : false;
|
|
412
347
|
/**
|
|
413
348
|
* 同步 双 table 左右滚动偏移
|
|
414
349
|
*/
|
|
415
|
-
|
|
416
|
-
var syncScrollLeft = React__default["default"].useCallback(function (scrollLeft, syncTarget) {
|
|
350
|
+
var syncScrollLeft = React.useCallback(function (scrollLeft, syncTarget) {
|
|
417
351
|
var scrollRight = scrollSize.scrollRight;
|
|
418
|
-
|
|
419
352
|
if (syncTarget && syncTarget.scrollLeft !== scrollLeft) {
|
|
420
353
|
syncTarget.scrollLeft = scrollLeft;
|
|
421
354
|
}
|
|
422
|
-
|
|
423
355
|
if (bodyTableRef && bodyTableRef.current && scrollBodyElementRef && scrollBodyElementRef.current && typeAssertion.isArrayNonEmpty(rightFrozenColKeys)) {
|
|
424
356
|
var _bodyTableRef$current = bodyTableRef.current.getBoundingClientRect(),
|
|
425
|
-
|
|
426
|
-
|
|
357
|
+
tableTefRight = _bodyTableRef$current.right;
|
|
427
358
|
var _scrollBodyElementRef = scrollBodyElementRef.current.getBoundingClientRect(),
|
|
428
|
-
|
|
429
|
-
|
|
359
|
+
right = _scrollBodyElementRef.right;
|
|
430
360
|
scrollRight = tableTefRight - right;
|
|
431
361
|
}
|
|
432
|
-
|
|
433
362
|
setScrollSize({
|
|
434
363
|
scrollLeft: scrollLeft,
|
|
435
364
|
scrollRight: scrollRight
|
|
436
365
|
});
|
|
437
366
|
}, [rightFrozenColKeys, scrollSize]);
|
|
438
367
|
var scrollHeaderElementRef = React.useRef(null);
|
|
439
|
-
var onTableBodyScroll =
|
|
368
|
+
var onTableBodyScroll = React.useCallback(function (evt) {
|
|
440
369
|
evt.stopPropagation();
|
|
441
|
-
|
|
442
370
|
if (scrollBodyElementRef.current) {
|
|
443
371
|
syncScrollLeft(scrollBodyElementRef.current.scrollLeft, scrollHeaderElementRef.current);
|
|
444
372
|
}
|
|
445
|
-
}, [syncScrollLeft]);
|
|
373
|
+
}, [syncScrollLeft]);
|
|
374
|
+
// 1. 对于 sticky 的元素,触发滚轮滚动,需要模拟 onScroll 触发,比如 tableHeader 固定吸顶时
|
|
446
375
|
// 2. 同时不允许其出现滚动条
|
|
447
|
-
|
|
448
|
-
var onTableBodyScrollMock = React__default["default"].useCallback(function (evt) {
|
|
376
|
+
var onTableBodyScrollMock = React.useCallback(function (evt) {
|
|
449
377
|
if (!scrollHeaderElementRef.current) return;
|
|
450
378
|
evt.stopPropagation();
|
|
451
379
|
var deltaX = evt.deltaX;
|
|
452
380
|
scrollHeaderElementRef.current.scrollLeft = scrollHeaderElementRef.current.scrollLeft + deltaX;
|
|
453
381
|
syncScrollLeft(scrollHeaderElementRef.current.scrollLeft, scrollBodyElementRef.current);
|
|
454
|
-
}, [syncScrollLeft]);
|
|
455
|
-
|
|
382
|
+
}, [syncScrollLeft]);
|
|
383
|
+
// ************************ 行高亮 ************************ //
|
|
456
384
|
/**
|
|
457
385
|
* 控制行高亮,依据 data 中的 key 控制
|
|
458
386
|
*/
|
|
459
|
-
|
|
460
387
|
var _useUncontrolledState3 = useUncontrolledState.useUncontrolledState(DEFAULT_HIGHLIGHTED_ROW_KEYS, highlightedRowKeysProp),
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
388
|
+
highlightedRowKeys = _useUncontrolledState3[0],
|
|
389
|
+
trySetHighlightedRowKeys = _useUncontrolledState3[1];
|
|
464
390
|
var _useCheck2 = useCheck.useCheck({
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
391
|
+
disabled: !highlightRowOnDoubleClick,
|
|
392
|
+
checkedIds: highlightedRowKeys,
|
|
393
|
+
onCheck: trySetHighlightedRowKeys
|
|
394
|
+
}),
|
|
395
|
+
onHighlightedRowChange = _useCheck2[0],
|
|
396
|
+
isHighlightedRow = _useCheck2[1];
|
|
472
397
|
var isErrorRow = React.useCallback(function (key) {
|
|
473
398
|
return errorRowKeys.includes(key);
|
|
474
|
-
}, [errorRowKeys]);
|
|
475
|
-
|
|
476
|
-
var flattedColumnsWithoutChildren =
|
|
399
|
+
}, [errorRowKeys]);
|
|
400
|
+
// 末级 column
|
|
401
|
+
var flattedColumnsWithoutChildren = React.useMemo(function () {
|
|
477
402
|
return mergedColumns1.filter(function (col) {
|
|
478
403
|
return !typeAssertion.isArrayNonEmpty(col.children);
|
|
479
404
|
});
|
|
480
405
|
}, [mergedColumns1]);
|
|
481
|
-
var groupedColumns =
|
|
406
|
+
var groupedColumns = React.useMemo(function () {
|
|
482
407
|
return mergedColumns1.reduce(function (acc, cur) {
|
|
483
408
|
var depth = cur.depth;
|
|
484
|
-
|
|
485
409
|
if (!acc[depth]) {
|
|
486
410
|
acc[depth] = [];
|
|
487
411
|
}
|
|
488
|
-
|
|
489
412
|
acc[depth].push(cur);
|
|
490
413
|
return acc;
|
|
491
414
|
}, []);
|
|
492
415
|
}, [mergedColumns1]);
|
|
493
416
|
var getStickyColProps = useLatest.useLatestCallback(function (column) {
|
|
494
417
|
var rightStickyWidth = column.rightStickyWidth,
|
|
495
|
-
|
|
496
|
-
|
|
418
|
+
leftStickyWidth = column.leftStickyWidth,
|
|
419
|
+
align = column.align;
|
|
497
420
|
var sticky = canScroll && (typeof rightStickyWidth !== 'undefined' || typeof leftStickyWidth !== 'undefined');
|
|
498
421
|
var style = {
|
|
499
422
|
textAlign: align
|
|
500
423
|
};
|
|
501
|
-
|
|
502
424
|
if (sticky) {
|
|
503
425
|
style.position = 'sticky';
|
|
504
426
|
style.right = rightStickyWidth + 'px';
|
|
505
|
-
style.left = leftStickyWidth + 'px';
|
|
506
|
-
|
|
427
|
+
style.left = leftStickyWidth + 'px';
|
|
428
|
+
// the value is same with v3
|
|
507
429
|
style.zIndex = 5;
|
|
508
430
|
}
|
|
509
|
-
|
|
510
431
|
return {
|
|
511
432
|
style: style,
|
|
512
433
|
'data-sticky': domUtils.setAttrStatus(sticky)
|
|
513
434
|
};
|
|
514
435
|
});
|
|
515
|
-
var getTableHeaderProps =
|
|
436
|
+
var getTableHeaderProps = React.useCallback(function () {
|
|
516
437
|
var style = {
|
|
517
438
|
position: sticky ? 'sticky' : 'relative',
|
|
518
439
|
top: sticky ? stickyTop : undefined,
|
|
@@ -531,29 +452,23 @@ var useTable = function useTable(_a) {
|
|
|
531
452
|
return row.children && row.children.length || onLoadChildren && !row.isLeaf;
|
|
532
453
|
}) : false;
|
|
533
454
|
}, [data, onLoadChildren]);
|
|
534
|
-
|
|
535
455
|
var _useState3 = React.useState(null),
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
456
|
+
activeSorterColumn = _useState3[0],
|
|
457
|
+
setActiveSorterColumn = _useState3[1];
|
|
539
458
|
var _useState4 = React.useState(null),
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
459
|
+
activeSorterType = _useState4[0],
|
|
460
|
+
setActiveSorterType = _useState4[1];
|
|
461
|
+
//* *************** 根据排序列处理数据 ************** *//
|
|
544
462
|
var showData = React.useMemo(function () {
|
|
545
463
|
var _a;
|
|
546
|
-
|
|
547
464
|
var _data = [].concat(transitionData);
|
|
548
|
-
|
|
549
465
|
if (activeSorterColumn) {
|
|
550
466
|
var sorter = (_a = columns.filter(function (d) {
|
|
551
467
|
return d.dataKey === activeSorterColumn;
|
|
552
468
|
})[0]) === null || _a === void 0 ? void 0 : _a.sorter;
|
|
553
|
-
|
|
554
469
|
if (sorter) {
|
|
555
|
-
activeSorterType === 'ascend' ? _data.sort(sorter) : _data.sort(sorter).reverse();
|
|
556
|
-
|
|
470
|
+
activeSorterType === 'ascend' ? _data.sort(sorter) : _data.sort(sorter).reverse();
|
|
471
|
+
// 平铺的树形结构排序
|
|
557
472
|
if (_data.some(function (d) {
|
|
558
473
|
return d.depth !== 0;
|
|
559
474
|
})) {
|
|
@@ -561,7 +476,6 @@ var useTable = function useTable(_a) {
|
|
|
561
476
|
}
|
|
562
477
|
}
|
|
563
478
|
}
|
|
564
|
-
|
|
565
479
|
return _data;
|
|
566
480
|
}, [activeSorterColumn, activeSorterType, transitionData, columns]);
|
|
567
481
|
return Object.assign(Object.assign({
|
|
@@ -645,5 +559,4 @@ var useTable = function useTable(_a) {
|
|
|
645
559
|
scrollbar: scrollbar
|
|
646
560
|
});
|
|
647
561
|
};
|
|
648
|
-
|
|
649
562
|
exports.useTable = useTable;
|