@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/esm/SettingDrawer.js
CHANGED
|
@@ -24,62 +24,56 @@ import { Drawer } from '@hi-ui/drawer';
|
|
|
24
24
|
import { Button } from '@hi-ui/button';
|
|
25
25
|
import { Checkbox } from '@hi-ui/checkbox';
|
|
26
26
|
import { useColSet } from './hooks/use-col-set.js';
|
|
27
|
-
|
|
28
27
|
var _prefix = getPrefixCls('setting');
|
|
29
28
|
/**
|
|
30
29
|
* 设置抽屉
|
|
31
30
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
31
|
var SettingDrawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
35
32
|
var _ref$prefixCls = _ref.prefixCls,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var i18n = useLocaleContext();
|
|
51
|
-
|
|
33
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
34
|
+
className = _ref.className,
|
|
35
|
+
visibleProp = _ref.visible,
|
|
36
|
+
_onClose = _ref.onClose,
|
|
37
|
+
_ref$columns = _ref.columns,
|
|
38
|
+
columnsProp = _ref$columns === void 0 ? [] : _ref$columns,
|
|
39
|
+
hiddenColKeysPropBeforeVerify = _ref.hiddenColKeys,
|
|
40
|
+
onHiddenColKeysChange = _ref.onHiddenColKeysChange,
|
|
41
|
+
sortedColKeysPropBeforeVerify = _ref.sortedColKeys,
|
|
42
|
+
onSortedColKeysChange = _ref.onSortedColKeysChange,
|
|
43
|
+
onSetColKeysChange = _ref.onSetColKeysChange,
|
|
44
|
+
_ref$checkDisabledCol = _ref.checkDisabledColKeys,
|
|
45
|
+
checkDisabledColKeys = _ref$checkDisabledCol === void 0 ? [] : _ref$checkDisabledCol,
|
|
46
|
+
drawerProps = _ref.drawerProps;
|
|
47
|
+
var i18n = useLocaleContext();
|
|
48
|
+
// 根据列字段合并 sortedColKeys、hiddenColKeys
|
|
52
49
|
var _useColSet = useColSet({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
columns: columnsProp,
|
|
51
|
+
sortedColKeys: sortedColKeysPropBeforeVerify,
|
|
52
|
+
hiddenColKeys: hiddenColKeysPropBeforeVerify
|
|
53
|
+
}),
|
|
54
|
+
sortedColKeysProp = _useColSet.sortedColKeys,
|
|
55
|
+
hiddenColKeysProp = _useColSet.hiddenColKeys;
|
|
56
|
+
// 列排序
|
|
61
57
|
var _useColSorter = useColSorter({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
58
|
+
columns: columnsProp,
|
|
59
|
+
sortedColKeys: sortedColKeysProp,
|
|
60
|
+
onSortedColKeysChange: onSortedColKeysChange
|
|
61
|
+
}),
|
|
62
|
+
sortedCols = _useColSorter.sortedCols,
|
|
63
|
+
setSortColKeys = _useColSorter.setSortColKeys,
|
|
64
|
+
cacheSortedCols = _useColSorter.cacheSortedCols,
|
|
65
|
+
setCacheSortedCols = _useColSorter.setCacheSortedCols;
|
|
66
|
+
// 列隐藏
|
|
72
67
|
var _useColHidden = useColHidden({
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
68
|
+
// 基于排序的 columns,隐藏的也能排序
|
|
69
|
+
columns: sortedCols,
|
|
70
|
+
hiddenColKeys: hiddenColKeysProp,
|
|
71
|
+
onHiddenColKeysChange: onHiddenColKeysChange
|
|
72
|
+
}),
|
|
73
|
+
hiddenColKeys = _useColHidden.hiddenColKeys,
|
|
74
|
+
setHiddenColKeys = _useColHidden.setHiddenColKeys,
|
|
75
|
+
cacheHiddenColKeys = _useColHidden.cacheHiddenColKeys,
|
|
76
|
+
setCacheHiddenColKeys = _useColHidden.setCacheHiddenColKeys;
|
|
83
77
|
var dropProps = useDrop({
|
|
84
78
|
draggable: true,
|
|
85
79
|
idFieldName: 'dataKey',
|
|
@@ -91,15 +85,12 @@ var SettingDrawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
91
85
|
case 0:
|
|
92
86
|
setCacheSortedCols(function (prev) {
|
|
93
87
|
var nextCacheSortCols = [].concat(prev);
|
|
94
|
-
|
|
95
88
|
var _nextCacheSortCols$sp = nextCacheSortCols.splice(info.dragIndex, 1),
|
|
96
|
-
|
|
97
|
-
|
|
89
|
+
removed = _nextCacheSortCols$sp[0];
|
|
98
90
|
nextCacheSortCols.splice(info.dropIndex, 0, removed);
|
|
99
91
|
return nextCacheSortCols;
|
|
100
92
|
});
|
|
101
93
|
return _context.abrupt("return", true);
|
|
102
|
-
|
|
103
94
|
case 2:
|
|
104
95
|
case "end":
|
|
105
96
|
return _context.stop();
|
|
@@ -109,39 +100,34 @@ var SettingDrawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
109
100
|
}));
|
|
110
101
|
}
|
|
111
102
|
});
|
|
112
|
-
|
|
113
103
|
var _useUncontrolledState = useUncontrolledState(false, visibleProp, _onClose),
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
104
|
+
visible = _useUncontrolledState[0],
|
|
105
|
+
setVisible = _useUncontrolledState[1];
|
|
117
106
|
var resetLatest = useLatestCallback(function () {
|
|
118
107
|
setCacheHiddenColKeys(hiddenColKeys);
|
|
119
108
|
setCacheSortedCols(sortedCols);
|
|
120
|
-
});
|
|
121
|
-
|
|
109
|
+
});
|
|
110
|
+
// 当 visible 由 false 变为 true 时触发
|
|
122
111
|
var prevShowPopperRef = useRef(!visible);
|
|
123
112
|
useEffect(function () {
|
|
124
113
|
if (!prevShowPopperRef.current && visible) {
|
|
125
114
|
resetLatest();
|
|
126
115
|
}
|
|
127
|
-
|
|
128
116
|
prevShowPopperRef.current = visible;
|
|
129
117
|
}, [visible, resetLatest]);
|
|
130
|
-
|
|
131
118
|
var onConfirm = function onConfirm() {
|
|
132
119
|
var newSortKeys = cacheSortedCols.map(function (col) {
|
|
133
120
|
return col.dataKey;
|
|
134
121
|
});
|
|
135
122
|
var visibleCols = cacheSortedCols.filter(function (col) {
|
|
136
123
|
return !cacheHiddenColKeys.includes(col.dataKey);
|
|
137
|
-
});
|
|
138
|
-
|
|
124
|
+
});
|
|
125
|
+
// 触发 table 更新列显隐及排序
|
|
139
126
|
setHiddenColKeys(cacheHiddenColKeys);
|
|
140
127
|
setSortColKeys(newSortKeys);
|
|
141
128
|
onSetColKeysChange === null || onSetColKeysChange === void 0 ? void 0 : onSetColKeysChange(newSortKeys, cacheHiddenColKeys, visibleCols);
|
|
142
129
|
setVisible(false);
|
|
143
130
|
};
|
|
144
|
-
|
|
145
131
|
var cls = cx(prefixCls + "-drawer", className);
|
|
146
132
|
return /*#__PURE__*/React__default.createElement(Drawer, Object.assign({
|
|
147
133
|
ref: ref,
|
|
@@ -179,33 +165,29 @@ var SettingDrawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
179
165
|
});
|
|
180
166
|
})));
|
|
181
167
|
});
|
|
182
|
-
|
|
183
168
|
if (__DEV__) {
|
|
184
169
|
SettingDrawer.displayName = 'SettingDrawer';
|
|
185
170
|
}
|
|
186
|
-
|
|
187
171
|
function SettingItem(_ref2) {
|
|
188
172
|
var prefixCls = _ref2.prefixCls,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
173
|
+
column = _ref2.column,
|
|
174
|
+
cacheHiddenColKeys = _ref2.cacheHiddenColKeys,
|
|
175
|
+
setCacheHiddenColKeys = _ref2.setCacheHiddenColKeys,
|
|
176
|
+
dropProps = _ref2.dropProps,
|
|
177
|
+
index = _ref2.index,
|
|
178
|
+
checkDisabled = _ref2.checkDisabled;
|
|
195
179
|
var dataKey = column.dataKey,
|
|
196
|
-
|
|
197
|
-
|
|
180
|
+
title = column.title;
|
|
198
181
|
var _useDrag = useDrag(Object.assign(Object.assign({}, dropProps), {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
182
|
+
item: column,
|
|
183
|
+
index: index,
|
|
184
|
+
idFieldName: 'dataKey',
|
|
185
|
+
dataTransferKey: 'table-setting-data'
|
|
186
|
+
})),
|
|
187
|
+
dragging = _useDrag.dragging,
|
|
188
|
+
direction = _useDrag.direction,
|
|
189
|
+
getDragTriggerProps = _useDrag.getDragTriggerProps,
|
|
190
|
+
getDropTriggerProps = _useDrag.getDropTriggerProps;
|
|
209
191
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({
|
|
210
192
|
className: cx(prefixCls + "-item", dragging && prefixCls + "-item--dragging", direction && prefixCls + "-item--direction-" + direction)
|
|
211
193
|
}, getDragTriggerProps(), getDropTriggerProps()), /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -222,5 +204,4 @@ function SettingItem(_ref2) {
|
|
|
222
204
|
}
|
|
223
205
|
}, /*#__PURE__*/React__default.createElement("span", null, runIfFunc(title))), /*#__PURE__*/React__default.createElement(MoveOutlined, null)));
|
|
224
206
|
}
|
|
225
|
-
|
|
226
207
|
export { SettingDrawer };
|
package/lib/esm/Table.js
CHANGED
|
@@ -25,14 +25,11 @@ import { cloneTree, flattenTree } from '@hi-ui/tree-utils';
|
|
|
25
25
|
import { BaseTable } from './BaseTable.js';
|
|
26
26
|
import { uuid } from './utils/index.js';
|
|
27
27
|
import { useColSet } from './hooks/use-col-set.js';
|
|
28
|
-
|
|
29
28
|
var _prefix = getPrefixCls('table');
|
|
30
29
|
/**
|
|
31
30
|
* 需要使用双表格的场景对应的 API
|
|
32
31
|
* 这些场景下的功能无法通过单表格实现,故而设计成双表格,即表头和表体分别用一个 table 实现
|
|
33
32
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
33
|
var DOUBLE_TABLE_SCENE = ['maxHeight', 'sticky', 'stickyTop', 'setting', 'virtual'];
|
|
37
34
|
var STANDARD_PRESET = {
|
|
38
35
|
striped: true,
|
|
@@ -50,114 +47,104 @@ var DEFAULT_PAGINATION = {
|
|
|
50
47
|
/**
|
|
51
48
|
* 表格
|
|
52
49
|
*/
|
|
53
|
-
|
|
54
50
|
var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
55
51
|
var _a$prefixCls = _a.prefixCls,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
52
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
53
|
+
_a$standard = _a.standard,
|
|
54
|
+
standard = _a$standard === void 0 ? false : _a$standard,
|
|
55
|
+
_a$loading = _a.loading,
|
|
56
|
+
loadingProp = _a$loading === void 0 ? false : _a$loading,
|
|
57
|
+
dataSource = _a.dataSource,
|
|
58
|
+
paginationProp = _a.pagination,
|
|
59
|
+
uniqueId = _a.uniqueId,
|
|
60
|
+
columnsProp = _a.columns,
|
|
61
|
+
hiddenColKeysPropBeforeVerify = _a.hiddenColKeys,
|
|
62
|
+
onHiddenColKeysChange = _a.onHiddenColKeysChange,
|
|
63
|
+
sortedColKeysPropBeforeVerify = _a.sortedColKeys,
|
|
64
|
+
onSortedColKeysChange = _a.onSortedColKeysChange,
|
|
65
|
+
checkDisabledColKeys = _a.checkDisabledColKeys,
|
|
66
|
+
onSetColKeysChange = _a.onSetColKeysChange,
|
|
67
|
+
rowSelection = _a.rowSelection,
|
|
68
|
+
_a$fieldKey = _a.fieldKey,
|
|
69
|
+
fieldKey = _a$fieldKey === void 0 ? 'key' : _a$fieldKey,
|
|
70
|
+
extra = _a.extra,
|
|
71
|
+
_a$data = _a.data,
|
|
72
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
|
73
|
+
rest = __rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data"]);
|
|
74
|
+
// 是否需要双表格
|
|
80
75
|
var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
|
|
81
76
|
return !!rest[prop];
|
|
82
77
|
});
|
|
83
|
-
var virtual = rest.virtual;
|
|
84
|
-
|
|
78
|
+
var virtual = rest.virtual;
|
|
79
|
+
// ************************ 预置标准模式 ************************ //
|
|
85
80
|
var tableProps = withDefaultProps(rest, standard ? STANDARD_PRESET : undefined);
|
|
86
|
-
|
|
87
81
|
var _tableProps$setting = tableProps.setting,
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
setting = _tableProps$setting === void 0 ? false : _tableProps$setting,
|
|
83
|
+
baseTableProps = __rest(tableProps
|
|
84
|
+
// ************************ 高级功能 ************************ //
|
|
85
|
+
// ***根据列字段合并sortedColKeysProp,和hiddenColKeys
|
|
86
|
+
, ["setting"]);
|
|
87
|
+
// ************************ 高级功能 ************************ //
|
|
90
88
|
// ***根据列字段合并sortedColKeysProp,和hiddenColKeys
|
|
91
|
-
, ["setting"]); // ************************ 高级功能 ************************ //
|
|
92
|
-
// ***根据列字段合并sortedColKeysProp,和hiddenColKeys
|
|
93
|
-
|
|
94
|
-
|
|
95
89
|
var _useColSet = useColSet({
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
90
|
+
columns: columnsProp,
|
|
91
|
+
sortedColKeys: sortedColKeysPropBeforeVerify,
|
|
92
|
+
hiddenColKeys: hiddenColKeysPropBeforeVerify
|
|
93
|
+
}),
|
|
94
|
+
sortedColKeysProp = _useColSet.sortedColKeys,
|
|
95
|
+
hiddenColKeysProp = _useColSet.hiddenColKeys;
|
|
102
96
|
/**
|
|
103
97
|
* 列排序
|
|
104
98
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
99
|
var _useColSorter = useColSorter({
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
100
|
+
uniqueId: uniqueId,
|
|
101
|
+
columns: columnsProp,
|
|
102
|
+
sortedColKeys: sortedColKeysProp,
|
|
103
|
+
onSortedColKeysChange: onSortedColKeysChange
|
|
104
|
+
}),
|
|
105
|
+
sortedCols = _useColSorter.sortedCols,
|
|
106
|
+
setSortColKeys = _useColSorter.setSortColKeys,
|
|
107
|
+
cacheSortedCols = _useColSorter.cacheSortedCols,
|
|
108
|
+
setCacheSortedCols = _useColSorter.setCacheSortedCols;
|
|
117
109
|
/**
|
|
118
110
|
* 列隐藏
|
|
119
111
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
122
112
|
var _useColHidden = useColHidden({
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
113
|
+
uniqueId: uniqueId,
|
|
114
|
+
// 基于排序的 columns,隐藏的也能排序
|
|
115
|
+
columns: sortedCols,
|
|
116
|
+
hiddenColKeys: hiddenColKeysProp,
|
|
117
|
+
onHiddenColKeysChange: onHiddenColKeysChange
|
|
118
|
+
}),
|
|
119
|
+
visibleCols = _useColHidden.visibleCols,
|
|
120
|
+
hiddenColKeys = _useColHidden.hiddenColKeys,
|
|
121
|
+
setHiddenColKeys = _useColHidden.setHiddenColKeys,
|
|
122
|
+
cacheHiddenColKeys = _useColHidden.cacheHiddenColKeys,
|
|
123
|
+
setCacheHiddenColKeys = _useColHidden.setCacheHiddenColKeys;
|
|
135
124
|
var pagination = withDefaultProps(paginationProp, DEFAULT_PAGINATION);
|
|
136
125
|
/**
|
|
137
126
|
* 数据分页
|
|
138
127
|
*/
|
|
139
|
-
|
|
140
128
|
var _useTablePagination = useTablePagination({
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
129
|
+
loadingProp: loadingProp,
|
|
130
|
+
pagination: pagination,
|
|
131
|
+
data: data,
|
|
132
|
+
dataSource: dataSource
|
|
133
|
+
}),
|
|
134
|
+
loading = _useTablePagination.loading,
|
|
135
|
+
mergedData = _useTablePagination.mergedData,
|
|
136
|
+
currentPage = _useTablePagination.currentPage,
|
|
137
|
+
trySetCurrentPage = _useTablePagination.trySetCurrentPage,
|
|
138
|
+
pageSize = _useTablePagination.pageSize,
|
|
139
|
+
trySetPageSize = _useTablePagination.trySetPageSize,
|
|
140
|
+
total = _useTablePagination.total;
|
|
141
|
+
// 可能是从 dataSource 中拿到的 total 值,在此更新该值
|
|
155
142
|
pagination = Object.assign(Object.assign({}, pagination), {
|
|
156
143
|
total: total
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
var hiddenPagination = !paginationProp || pagination.autoHide && currentPage === 1 && typeof pagination.pageSize === 'number' && typeof pagination.total === 'number' && pagination.total <= pagination.pageSize && data.length <= pagination.pageSize;
|
|
160
|
-
|
|
144
|
+
});
|
|
145
|
+
// 优化数据在第一页且数据一页内时,不展示 pagination 配置项
|
|
146
|
+
var hiddenPagination = !paginationProp || pagination.autoHide && currentPage === 1 && typeof pagination.pageSize === 'number' && typeof pagination.total === 'number' && pagination.total <= pagination.pageSize && data.length <= pagination.pageSize;
|
|
147
|
+
// 获取 key 字段值
|
|
161
148
|
var getRowKeyField = useCallback(function (item) {
|
|
162
149
|
var val = item[fieldKey];
|
|
163
150
|
invariant(!isNullish(val), 'Not found for the unique %s attribute in each row of data prop.', fieldKey);
|
|
@@ -166,7 +153,6 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
166
153
|
/**
|
|
167
154
|
* 扁平化数据,支持树形 table
|
|
168
155
|
*/
|
|
169
|
-
|
|
170
156
|
var flattedData = useMemo(function () {
|
|
171
157
|
// 对于分页来讲,flattedData 应该是当前页的数据
|
|
172
158
|
var clonedData = cloneTree(mergedData);
|
|
@@ -176,26 +162,25 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
176
162
|
id: getRowKeyField(node.raw)
|
|
177
163
|
});
|
|
178
164
|
});
|
|
179
|
-
}, [mergedData, getRowKeyField]);
|
|
165
|
+
}, [mergedData, getRowKeyField]);
|
|
166
|
+
// ************************ 行多选 ************************ //
|
|
180
167
|
// 自定义设置 checkbox 列宽度
|
|
181
|
-
|
|
182
168
|
var checkboxColWidth = React__default.useMemo(function () {
|
|
183
169
|
return rowSelection && typeof rowSelection.checkboxColWidth === 'number' ? rowSelection.checkboxColWidth : 38;
|
|
184
|
-
}, [rowSelection]);
|
|
185
|
-
|
|
170
|
+
}, [rowSelection]);
|
|
171
|
+
// 预处理 column 支持 多选渲染
|
|
186
172
|
var _useTableCheck = useTableCheck({
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
173
|
+
rowSelection: rowSelection,
|
|
174
|
+
flattedData: flattedData,
|
|
175
|
+
fieldKey: fieldKey
|
|
176
|
+
}),
|
|
177
|
+
checkedAll = _useTableCheck.checkedAll,
|
|
178
|
+
semiChecked = _useTableCheck.semiChecked,
|
|
179
|
+
tryCheckAllRow = _useTableCheck.tryCheckAllRow,
|
|
180
|
+
isCheckedRowKey = _useTableCheck.isCheckedRowKey,
|
|
181
|
+
onCheckedRowKeysChange = _useTableCheck.onCheckedRowKeysChange,
|
|
182
|
+
checkRowIsDisabledCheckbox = _useTableCheck.checkRowIsDisabledCheckbox;
|
|
183
|
+
// 表格列多选操作区
|
|
199
184
|
var getSelectionColumn = React__default.useCallback(function (rowSelection) {
|
|
200
185
|
var renderCell = function renderCell(_, rowItem, rowIndex) {
|
|
201
186
|
var rowKey = getRowKeyField(rowItem);
|
|
@@ -214,16 +199,14 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
214
199
|
}),
|
|
215
200
|
checked: checked
|
|
216
201
|
};
|
|
217
|
-
};
|
|
218
|
-
|
|
219
|
-
|
|
202
|
+
};
|
|
203
|
+
// TODO: && isFixed !== 'right' && !isSumRow && !isAvgRow
|
|
220
204
|
var renderSelectionCell = function renderSelectionCell(_, rowItem, rowIndex, dataKey) {
|
|
221
205
|
var _renderCell = renderCell(_, rowItem),
|
|
222
|
-
|
|
223
|
-
|
|
206
|
+
node = _renderCell.node,
|
|
207
|
+
checked = _renderCell.checked;
|
|
208
|
+
// 自定义渲染
|
|
224
209
|
// @ts-ignore
|
|
225
|
-
|
|
226
|
-
|
|
227
210
|
if (rowSelection.render) {
|
|
228
211
|
// TODO: 获取 requiredProps 方法
|
|
229
212
|
// @ts-ignore
|
|
@@ -231,10 +214,8 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
231
214
|
checked: checked
|
|
232
215
|
}), rowIndex, dataKey);
|
|
233
216
|
}
|
|
234
|
-
|
|
235
217
|
return node;
|
|
236
218
|
};
|
|
237
|
-
|
|
238
219
|
var renderTitleCell = function renderTitleCell() {
|
|
239
220
|
return {
|
|
240
221
|
node: /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
@@ -246,24 +227,19 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
246
227
|
semiChecked: semiChecked
|
|
247
228
|
};
|
|
248
229
|
};
|
|
249
|
-
|
|
250
230
|
var renderSelectionTitleCell = function renderSelectionTitleCell() {
|
|
251
231
|
var _renderTitleCell = renderTitleCell(),
|
|
252
|
-
|
|
253
|
-
|
|
232
|
+
node = _renderTitleCell.node;
|
|
254
233
|
if (rowSelection.checkAllOptions) {
|
|
255
234
|
if (rowSelection.checkAllOptions.render) {
|
|
256
235
|
return rowSelection.checkAllOptions.render(node);
|
|
257
236
|
}
|
|
258
|
-
|
|
259
237
|
if (rowSelection.checkAllOptions.filterIcon) {
|
|
260
238
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, node, rowSelection.checkAllOptions.filterIcon);
|
|
261
239
|
}
|
|
262
240
|
}
|
|
263
|
-
|
|
264
241
|
return node;
|
|
265
242
|
};
|
|
266
|
-
|
|
267
243
|
var selectionColumn = {
|
|
268
244
|
dataKey: SELECTION_DATA_KEY,
|
|
269
245
|
width: checkboxColWidth,
|
|
@@ -279,10 +255,9 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
279
255
|
var selectionColumn = getSelectionColumn(rowSelection);
|
|
280
256
|
return [selectionColumn].concat(visibleCols);
|
|
281
257
|
}
|
|
282
|
-
|
|
283
258
|
return visibleCols;
|
|
284
|
-
}, [rowSelection, getSelectionColumn, visibleCols]);
|
|
285
|
-
|
|
259
|
+
}, [rowSelection, getSelectionColumn, visibleCols]);
|
|
260
|
+
// ************************ loading ************************ //
|
|
286
261
|
var TableWrapper = loading ? Loading : Fragment;
|
|
287
262
|
return /*#__PURE__*/React__default.createElement(TableWrapper, null, /*#__PURE__*/React__default.createElement(BaseTable, Object.assign({
|
|
288
263
|
ref: ref
|
|
@@ -320,9 +295,7 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
320
295
|
}, extra)
|
|
321
296
|
})));
|
|
322
297
|
});
|
|
323
|
-
|
|
324
298
|
if (__DEV__) {
|
|
325
299
|
Table.displayName = 'Table';
|
|
326
300
|
}
|
|
327
|
-
|
|
328
301
|
export { SELECTION_DATA_KEY, Table };
|