@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/TableRow.js
CHANGED
|
@@ -19,49 +19,43 @@ import { SELECTION_DATA_KEY } from './Table.js';
|
|
|
19
19
|
import { EMBED_DATA_KEY } from './BaseTable.js';
|
|
20
20
|
import { isFunction } from '@hi-ui/type-assertion';
|
|
21
21
|
var _role = 'table';
|
|
22
|
-
|
|
23
22
|
var _prefix = getPrefixCls(_role);
|
|
24
|
-
|
|
25
23
|
var EMBED_ON_ROW_PROPS = {};
|
|
26
24
|
var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
27
25
|
var _ref$prefixCls = _ref.prefixCls,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
27
|
+
rowDataProp = _ref.rowData,
|
|
28
|
+
rowIndex = _ref.rowIndex,
|
|
29
|
+
expandedTree = _ref.expandedTree,
|
|
30
|
+
isSumRow = _ref.isSumRow,
|
|
31
|
+
isAvgRow = _ref.isAvgRow;
|
|
35
32
|
var _useTableContext = useTableContext(),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
striped = _useTableContext.striped,
|
|
34
|
+
showRowHighlight = _useTableContext.showRowHighlight,
|
|
35
|
+
onHighlightedRowChange = _useTableContext.onHighlightedRowChange,
|
|
36
|
+
isHighlightedRow = _useTableContext.isHighlightedRow,
|
|
37
|
+
flattedColumnsWithoutChildren = _useTableContext.flattedColumnsWithoutChildren,
|
|
38
|
+
isErrorRow = _useTableContext.isErrorRow,
|
|
39
|
+
columns = _useTableContext.columns,
|
|
40
|
+
embedExpandable = _useTableContext.embedExpandable,
|
|
41
|
+
draggable = _useTableContext.draggable,
|
|
42
|
+
onDragStartContext = _useTableContext.onDragStart,
|
|
43
|
+
onDragLeaveContext = _useTableContext.onDragLeave,
|
|
44
|
+
onDragEndContext = _useTableContext.onDragEnd,
|
|
45
|
+
onDropContext = _useTableContext.onDrop,
|
|
46
|
+
dragRowRef = _useTableContext.dragRowRef,
|
|
47
|
+
onRow = _useTableContext.onRow,
|
|
48
|
+
colWidths = _useTableContext.colWidths,
|
|
49
|
+
virtual = _useTableContext.virtual;
|
|
54
50
|
var rowData = rowDataProp.raw,
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
rowId = rowDataProp.id;
|
|
52
|
+
// ** ************** 拖拽管理 *************** *//
|
|
57
53
|
var _React$useState = React__default.useState(false),
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
dragging = _React$useState[0],
|
|
55
|
+
setDragging = _React$useState[1];
|
|
61
56
|
var _React$useState2 = React__default.useState(),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
dragDirection = _React$useState2[0],
|
|
58
|
+
setDragDirection = _React$useState2[1];
|
|
65
59
|
var onDragStartContextLatest = useLatestCallback(onDragStartContext);
|
|
66
60
|
var onDragStart = React__default.useCallback(function (evt) {
|
|
67
61
|
if (!draggable) return;
|
|
@@ -86,11 +80,10 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
86
80
|
evt.stopPropagation();
|
|
87
81
|
if (!dragRowRef.current) return;
|
|
88
82
|
var _dragRowRef$current = dragRowRef.current,
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
startClientY = _dragRowRef$current.startClientY,
|
|
84
|
+
dragId = _dragRowRef$current.dragId;
|
|
91
85
|
if (dragId === rowId) return;
|
|
92
86
|
var hoverClientY = evt.clientY;
|
|
93
|
-
|
|
94
87
|
if (hoverClientY < startClientY) {
|
|
95
88
|
setDragDirection('top');
|
|
96
89
|
} else {
|
|
@@ -116,8 +109,8 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
116
109
|
setDragging(false);
|
|
117
110
|
onDragEndContextLatest(evt);
|
|
118
111
|
}, [draggable, dragRowRef, onDragEndContextLatest]);
|
|
119
|
-
var onDropContextLatest = useLatestCallback(onDropContext);
|
|
120
|
-
|
|
112
|
+
var onDropContextLatest = useLatestCallback(onDropContext);
|
|
113
|
+
// 放置目标元素时触发事件
|
|
121
114
|
var onDrop = React__default.useCallback(function (evt) {
|
|
122
115
|
if (!draggable) return;
|
|
123
116
|
if (!dragRowRef.current) return;
|
|
@@ -128,17 +121,15 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
128
121
|
dragRowRef.current = null;
|
|
129
122
|
var targetId = rowId;
|
|
130
123
|
if (dragId === targetId) return;
|
|
131
|
-
|
|
132
124
|
try {
|
|
133
125
|
var _JSON$parse = JSON.parse(evt.dataTransfer.getData('tableRow')),
|
|
134
|
-
|
|
135
|
-
|
|
126
|
+
sourceId = _JSON$parse.sourceId;
|
|
136
127
|
onDropContextLatest(evt, sourceId, targetId, dragDirection);
|
|
137
128
|
} catch (error) {
|
|
138
129
|
console.error(error);
|
|
139
130
|
}
|
|
140
|
-
}, [draggable, dragRowRef, onDropContextLatest, dragDirection, rowId]);
|
|
141
|
-
|
|
131
|
+
}, [draggable, dragRowRef, onDropContextLatest, dragDirection, rowId]);
|
|
132
|
+
// ** ************** 行状态管理 *************** *//
|
|
142
133
|
var highlighted = isHighlightedRow(rowId);
|
|
143
134
|
var hasError = isErrorRow(rowId);
|
|
144
135
|
var cls = cx(prefixCls + "-row", showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 1 && prefixCls + "-row--striped", hasError && prefixCls + "-row--error", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg", virtual && prefixCls + "-row--virtual");
|
|
@@ -153,7 +144,6 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
153
144
|
});
|
|
154
145
|
return tmpWidth;
|
|
155
146
|
}, [colWidths]);
|
|
156
|
-
|
|
157
147
|
if (virtual) {
|
|
158
148
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", Object.assign({
|
|
159
149
|
ref: ref,
|
|
@@ -164,7 +154,6 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
164
154
|
if (rowExtraProps.onDoubleClick) {
|
|
165
155
|
rowExtraProps.onDoubleClick(evt);
|
|
166
156
|
}
|
|
167
|
-
|
|
168
157
|
onHighlightedRowChange(rowDataProp, !highlighted);
|
|
169
158
|
},
|
|
170
159
|
style: Object.assign(Object.assign({}, rowExtraProps.style), {
|
|
@@ -182,7 +171,6 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
182
171
|
});
|
|
183
172
|
})));
|
|
184
173
|
}
|
|
185
|
-
|
|
186
174
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("tr", Object.assign({
|
|
187
175
|
ref: ref,
|
|
188
176
|
className: cls,
|
|
@@ -192,7 +180,6 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
192
180
|
if (rowExtraProps.onDoubleClick) {
|
|
193
181
|
rowExtraProps.onDoubleClick(evt);
|
|
194
182
|
}
|
|
195
|
-
|
|
196
183
|
onHighlightedRowChange(rowDataProp, !highlighted);
|
|
197
184
|
},
|
|
198
185
|
draggable: setAttrAria(draggable),
|
|
@@ -217,9 +204,7 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
217
204
|
rowIndex: rowIndex
|
|
218
205
|
}) : null);
|
|
219
206
|
});
|
|
220
|
-
|
|
221
207
|
if (__DEV__) {
|
|
222
208
|
TableRow.displayName = 'TableRow';
|
|
223
209
|
}
|
|
224
|
-
|
|
225
210
|
export { TableRow };
|
|
@@ -22,27 +22,24 @@ import { useDrop, useDrag } from '@hi-ui/use-drag-sorter';
|
|
|
22
22
|
import { Drawer } from '@hi-ui/drawer';
|
|
23
23
|
import { Button } from '@hi-ui/button';
|
|
24
24
|
import { Checkbox } from '@hi-ui/checkbox';
|
|
25
|
-
|
|
26
25
|
var _prefix = getPrefixCls('table-setting');
|
|
27
26
|
/**
|
|
28
27
|
* 表头右侧高级设置菜单(抽屉式)
|
|
29
28
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
29
|
var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
33
30
|
var _ref$prefixCls = _ref.prefixCls,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
32
|
+
sortedCols = _ref.sortedCols,
|
|
33
|
+
setSortColKeys = _ref.setSortColKeys,
|
|
34
|
+
cacheSortedCols = _ref.cacheSortedCols,
|
|
35
|
+
setCacheSortedCols = _ref.setCacheSortedCols,
|
|
36
|
+
hiddenColKeys = _ref.hiddenColKeys,
|
|
37
|
+
setHiddenColKeys = _ref.setHiddenColKeys,
|
|
38
|
+
cacheHiddenColKeys = _ref.cacheHiddenColKeys,
|
|
39
|
+
setCacheHiddenColKeys = _ref.setCacheHiddenColKeys,
|
|
40
|
+
onSetColKeysChange = _ref.onSetColKeysChange,
|
|
41
|
+
_ref$checkDisabledCol = _ref.checkDisabledColKeys,
|
|
42
|
+
checkDisabledColKeys = _ref$checkDisabledCol === void 0 ? [] : _ref$checkDisabledCol;
|
|
46
43
|
var i18n = useLocaleContext();
|
|
47
44
|
var dropProps = useDrop({
|
|
48
45
|
draggable: true,
|
|
@@ -55,15 +52,12 @@ var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
55
52
|
case 0:
|
|
56
53
|
setCacheSortedCols(function (prev) {
|
|
57
54
|
var nextCacheSortCols = [].concat(prev);
|
|
58
|
-
|
|
59
55
|
var _nextCacheSortCols$sp = nextCacheSortCols.splice(info.dragIndex, 1),
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
removed = _nextCacheSortCols$sp[0];
|
|
62
57
|
nextCacheSortCols.splice(info.dropIndex, 0, removed);
|
|
63
58
|
return nextCacheSortCols;
|
|
64
59
|
});
|
|
65
60
|
return _context.abrupt("return", true);
|
|
66
|
-
|
|
67
61
|
case 2:
|
|
68
62
|
case "end":
|
|
69
63
|
return _context.stop();
|
|
@@ -73,25 +67,21 @@ var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
73
67
|
}));
|
|
74
68
|
}
|
|
75
69
|
});
|
|
76
|
-
|
|
77
70
|
var _useToggle = useToggle(),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
71
|
+
menuVisible = _useToggle[0],
|
|
72
|
+
menuVisibleAction = _useToggle[1];
|
|
81
73
|
var resetLatest = useLatestCallback(function () {
|
|
82
74
|
setCacheHiddenColKeys(hiddenColKeys);
|
|
83
75
|
setCacheSortedCols(sortedCols);
|
|
84
|
-
});
|
|
85
|
-
|
|
76
|
+
});
|
|
77
|
+
// 当 visible 由 false 变为 true 时触发
|
|
86
78
|
var prevShowPopperRef = useRef(!menuVisible);
|
|
87
79
|
useEffect(function () {
|
|
88
80
|
if (!prevShowPopperRef.current && menuVisible) {
|
|
89
81
|
resetLatest();
|
|
90
82
|
}
|
|
91
|
-
|
|
92
83
|
prevShowPopperRef.current = menuVisible;
|
|
93
84
|
}, [menuVisible, resetLatest]);
|
|
94
|
-
|
|
95
85
|
var onConfirm = function onConfirm() {
|
|
96
86
|
// 触发 table 更新列显隐及排序
|
|
97
87
|
setHiddenColKeys(cacheHiddenColKeys);
|
|
@@ -102,7 +92,6 @@ var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
102
92
|
onSetColKeysChange && onSetColKeysChange(newSortKeys, cacheHiddenColKeys);
|
|
103
93
|
menuVisibleAction.off();
|
|
104
94
|
};
|
|
105
|
-
|
|
106
95
|
var cls = cx(prefixCls);
|
|
107
96
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
108
97
|
ref: ref,
|
|
@@ -143,33 +132,29 @@ var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
143
132
|
});
|
|
144
133
|
}))));
|
|
145
134
|
});
|
|
146
|
-
|
|
147
135
|
if (__DEV__) {
|
|
148
136
|
TableSettingMenu.displayName = 'TableSettingMenu';
|
|
149
137
|
}
|
|
150
|
-
|
|
151
138
|
function TableSettingMenuItem(_ref2) {
|
|
152
139
|
var prefixCls = _ref2.prefixCls,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
140
|
+
column = _ref2.column,
|
|
141
|
+
cacheHiddenColKeys = _ref2.cacheHiddenColKeys,
|
|
142
|
+
setCacheHiddenColKeys = _ref2.setCacheHiddenColKeys,
|
|
143
|
+
dropProps = _ref2.dropProps,
|
|
144
|
+
index = _ref2.index,
|
|
145
|
+
checkDisabled = _ref2.checkDisabled;
|
|
159
146
|
var dataKey = column.dataKey,
|
|
160
|
-
|
|
161
|
-
|
|
147
|
+
title = column.title;
|
|
162
148
|
var _useDrag = useDrag(Object.assign(Object.assign({}, dropProps), {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
149
|
+
item: column,
|
|
150
|
+
index: index,
|
|
151
|
+
idFieldName: 'dataKey',
|
|
152
|
+
dataTransferKey: 'table-setting-data'
|
|
153
|
+
})),
|
|
154
|
+
dragging = _useDrag.dragging,
|
|
155
|
+
direction = _useDrag.direction,
|
|
156
|
+
getDragTriggerProps = _useDrag.getDragTriggerProps,
|
|
157
|
+
getDropTriggerProps = _useDrag.getDropTriggerProps;
|
|
173
158
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({
|
|
174
159
|
className: cx(prefixCls + "-item", dragging && prefixCls + "-item--dragging", direction && prefixCls + "-item--direction-" + direction)
|
|
175
160
|
}, getDragTriggerProps(), getDropTriggerProps()), /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -186,5 +171,4 @@ function TableSettingMenuItem(_ref2) {
|
|
|
186
171
|
}
|
|
187
172
|
}, /*#__PURE__*/React__default.createElement("span", null, runIfFunc(title))), /*#__PURE__*/React__default.createElement(MoveOutlined, null)));
|
|
188
173
|
}
|
|
189
|
-
|
|
190
174
|
export { TableSettingMenu };
|
package/lib/esm/TbodyContent.js
CHANGED
|
@@ -15,37 +15,33 @@ import { isArrayNonEmpty } from '@hi-ui/type-assertion';
|
|
|
15
15
|
import { EmptyState } from '@hi-ui/empty-state';
|
|
16
16
|
import { TableRow } from './TableRow.js';
|
|
17
17
|
import { useTableContext } from './context.js';
|
|
18
|
-
|
|
19
18
|
var _prefix = getPrefixCls('table-body');
|
|
20
|
-
|
|
21
19
|
var TbodyContent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
22
20
|
var _ref$prefixCls = _ref.prefixCls,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
22
|
+
emptyContent = _ref.emptyContent;
|
|
26
23
|
var _useTableContext = useTableContext(),
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
columns = _useTableContext.columns,
|
|
25
|
+
isExpandTreeRows = _useTableContext.isExpandTreeRows,
|
|
26
|
+
transitionData = _useTableContext.transitionData,
|
|
27
|
+
scrollBodyElementRef = _useTableContext.scrollBodyElementRef,
|
|
28
|
+
hasAvgColumn = _useTableContext.hasAvgColumn,
|
|
29
|
+
avgRow = _useTableContext.avgRow,
|
|
30
|
+
hasSumColumn = _useTableContext.hasSumColumn,
|
|
31
|
+
sumRow = _useTableContext.sumRow,
|
|
32
|
+
measureRowElementRef = _useTableContext.measureRowElementRef;
|
|
37
33
|
var getRequiredProps = useLatestCallback(function (id) {
|
|
38
34
|
return {
|
|
39
35
|
// @ts-ignore
|
|
40
|
-
expandedTree: isExpandTreeRows(id)
|
|
36
|
+
expandedTree: isExpandTreeRows(id)
|
|
37
|
+
// checked: isCheckedId(id),
|
|
41
38
|
// semiChecked: isSemiCheckedId(id),
|
|
42
39
|
// selected: selectedId === id,
|
|
43
40
|
// loading: isLoadingId(id),
|
|
44
41
|
// focused: focusedId === id,
|
|
45
|
-
|
|
46
42
|
};
|
|
47
|
-
});
|
|
48
|
-
|
|
43
|
+
});
|
|
44
|
+
// 外层增加 div 作为滚动容器
|
|
49
45
|
return /*#__PURE__*/React__default.createElement("tbody", null, isArrayNonEmpty(transitionData) ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, transitionData.map(function (row, index) {
|
|
50
46
|
return /*#__PURE__*/React__default.createElement(TableRow, Object.assign({
|
|
51
47
|
ref: index === 0 ? measureRowElementRef : null,
|
|
@@ -65,7 +61,8 @@ var TbodyContent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
65
61
|
rowIndex: transitionData.length + 1,
|
|
66
62
|
rowData: avgRow,
|
|
67
63
|
isAvgRow: true
|
|
68
|
-
}) : null) :
|
|
64
|
+
}) : null) :
|
|
65
|
+
// 空状态,colSpan 占满表格整行
|
|
69
66
|
renderEmptyContent(Object.assign({
|
|
70
67
|
className: prefixCls + "-empty-content",
|
|
71
68
|
colSpan: columns.length,
|
|
@@ -74,20 +71,17 @@ var TbodyContent = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
74
71
|
scrollBodyWidth: window.getComputedStyle(scrollBodyElementRef.current).getPropertyValue('width')
|
|
75
72
|
} : {})));
|
|
76
73
|
});
|
|
77
|
-
|
|
78
74
|
if (__DEV__) {
|
|
79
75
|
TbodyContent.displayName = 'TbodyContent';
|
|
80
76
|
}
|
|
81
77
|
/**
|
|
82
78
|
* 负责空状态渲染
|
|
83
79
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
80
|
var renderEmptyContent = function renderEmptyContent(_ref2) {
|
|
87
81
|
var className = _ref2.className,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
colSpan = _ref2.colSpan,
|
|
83
|
+
emptyContent = _ref2.emptyContent,
|
|
84
|
+
scrollBodyWidth = _ref2.scrollBodyWidth;
|
|
91
85
|
return /*#__PURE__*/React__default.createElement("tr", {
|
|
92
86
|
className: className
|
|
93
87
|
}, /*#__PURE__*/React__default.createElement("td", {
|
|
@@ -101,5 +95,4 @@ var renderEmptyContent = function renderEmptyContent(_ref2) {
|
|
|
101
95
|
}
|
|
102
96
|
}, emptyContent || /*#__PURE__*/React__default.createElement(EmptyState, null))));
|
|
103
97
|
};
|
|
104
|
-
|
|
105
98
|
export { TbodyContent, renderEmptyContent };
|
package/lib/esm/TheadContent.js
CHANGED
|
@@ -16,25 +16,21 @@ import { isFunction } from '@hi-ui/type-assertion';
|
|
|
16
16
|
import { useCheckState } from '@hi-ui/use-check-state';
|
|
17
17
|
import { useTableContext } from './context.js';
|
|
18
18
|
import { renderFilter } from './TableAdvancedFilter.js';
|
|
19
|
-
|
|
20
19
|
var _prefix = getPrefixCls('table-header');
|
|
21
|
-
|
|
22
20
|
var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
23
21
|
var _a$prefixCls = _a.prefixCls,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
23
|
+
rest = __rest(_a, ["prefixCls"]);
|
|
27
24
|
var _useTableContext = useTableContext(),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
groupedColumns = _useTableContext.groupedColumns,
|
|
26
|
+
resizable = _useTableContext.resizable,
|
|
27
|
+
colWidths = _useTableContext.colWidths,
|
|
28
|
+
isHoveredHighlightCol = _useTableContext.isHoveredHighlightCol,
|
|
29
|
+
isHighlightedCol = _useTableContext.isHighlightedCol,
|
|
30
|
+
onColumnResizable = _useTableContext.onColumnResizable,
|
|
31
|
+
getStickyColProps = _useTableContext.getStickyColProps,
|
|
32
|
+
showColMenu = _useTableContext.showColMenu,
|
|
33
|
+
setHeaderTableElement = _useTableContext.setHeaderTableElement;
|
|
38
34
|
var activeColumnKeysAction = useCheckState();
|
|
39
35
|
return /*#__PURE__*/React__default.createElement("thead", Object.assign({}, rest), groupedColumns.map(function (cols, colsIndex) {
|
|
40
36
|
return /*#__PURE__*/React__default.createElement("tr", {
|
|
@@ -42,10 +38,9 @@ var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
42
38
|
ref: setHeaderTableElement
|
|
43
39
|
}, cols.map(function (col, colIndex) {
|
|
44
40
|
var _ref = col || {},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
dataKey = _ref.dataKey,
|
|
42
|
+
title = _ref.title,
|
|
43
|
+
raw = _ref.raw;
|
|
49
44
|
var titleContent = isFunction(title) ? title(col) : title;
|
|
50
45
|
titleContent = resizable ? /*#__PURE__*/React__default.createElement("span", {
|
|
51
46
|
className: prefixCls + "-header__title"
|
|
@@ -88,9 +83,7 @@ var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
88
83
|
}));
|
|
89
84
|
}));
|
|
90
85
|
});
|
|
91
|
-
|
|
92
86
|
if (__DEV__) {
|
|
93
87
|
TheadContent.displayName = 'TheadContent';
|
|
94
88
|
}
|
|
95
|
-
|
|
96
89
|
export { TheadContent };
|
package/lib/esm/context.js
CHANGED
|
@@ -10,15 +10,11 @@
|
|
|
10
10
|
import { useContext, createContext } from 'react';
|
|
11
11
|
var TableContext = /*#__PURE__*/createContext(null);
|
|
12
12
|
var TableProvider = TableContext.Provider;
|
|
13
|
-
|
|
14
13
|
var useTableContext = function useTableContext() {
|
|
15
14
|
var context = useContext(TableContext);
|
|
16
|
-
|
|
17
15
|
if (!context) {
|
|
18
16
|
throw new Error('The TableContext context should using in Table.');
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
return context;
|
|
22
19
|
};
|
|
23
|
-
|
|
24
20
|
export { TableProvider, useTableContext };
|
|
@@ -13,15 +13,14 @@ import { useCallback } from 'react';
|
|
|
13
13
|
import { useLatestCallback } from '@hi-ui/use-latest';
|
|
14
14
|
import { cloneTree, addChildrenById } from '@hi-ui/tree-utils';
|
|
15
15
|
import { useCheckState } from '@hi-ui/use-check-state';
|
|
16
|
-
|
|
17
16
|
var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
18
17
|
var setCascaderData = _ref.setCascaderData,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var onLoadChildrenLatest = useLatestCallback(onLoadChildren);
|
|
24
|
-
|
|
18
|
+
onExpand = _ref.onExpand,
|
|
19
|
+
onLoadChildren = _ref.onLoadChildren,
|
|
20
|
+
_ref$fieldKey = _ref.fieldKey,
|
|
21
|
+
fieldKey = _ref$fieldKey === void 0 ? 'key' : _ref$fieldKey;
|
|
22
|
+
var onLoadChildrenLatest = useLatestCallback(onLoadChildren);
|
|
23
|
+
// 加载节点
|
|
25
24
|
var loadChildren = useCallback(function (node) {
|
|
26
25
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
27
26
|
var childrenNodes;
|
|
@@ -31,10 +30,8 @@ var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
|
31
30
|
case 0:
|
|
32
31
|
_context.next = 2;
|
|
33
32
|
return onLoadChildrenLatest(node);
|
|
34
|
-
|
|
35
33
|
case 2:
|
|
36
34
|
childrenNodes = _context.sent;
|
|
37
|
-
|
|
38
35
|
if (Array.isArray(childrenNodes)) {
|
|
39
36
|
setCascaderData(function (prev) {
|
|
40
37
|
var nextTreeData = cloneTree(prev);
|
|
@@ -42,7 +39,6 @@ var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
|
42
39
|
return nextTreeData;
|
|
43
40
|
});
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
case 4:
|
|
47
43
|
case "end":
|
|
48
44
|
return _context.stop();
|
|
@@ -51,18 +47,15 @@ var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
|
51
47
|
}, _callee);
|
|
52
48
|
}));
|
|
53
49
|
}, [fieldKey, onLoadChildrenLatest, setCascaderData]);
|
|
54
|
-
|
|
55
50
|
var _useCheckState = useCheckState(),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
loadingIds = _useCheckState.state,
|
|
52
|
+
addLoadingIds = _useCheckState.add,
|
|
53
|
+
removeLoadingIds = _useCheckState.remove;
|
|
60
54
|
var onExpandLatest = useLatestCallback(onExpand);
|
|
61
55
|
var onNodeSwitch = useCallback(function (node, onlyExpand) {
|
|
62
56
|
if (onlyExpand === void 0) {
|
|
63
57
|
onlyExpand = false;
|
|
64
58
|
}
|
|
65
|
-
|
|
66
59
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
67
60
|
var id, children, isLeaf;
|
|
68
61
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
@@ -72,43 +65,34 @@ var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
|
72
65
|
// 直接触发选中该节点
|
|
73
66
|
onExpandLatest(node, onlyExpand);
|
|
74
67
|
id = node.id, children = node.children, isLeaf = node.isLeaf;
|
|
75
|
-
|
|
76
68
|
if (!children) {
|
|
77
69
|
_context2.next = 4;
|
|
78
70
|
break;
|
|
79
71
|
}
|
|
80
|
-
|
|
81
72
|
return _context2.abrupt("return");
|
|
82
|
-
|
|
83
73
|
case 4:
|
|
84
74
|
if (!isLeaf) {
|
|
85
75
|
_context2.next = 6;
|
|
86
76
|
break;
|
|
87
77
|
}
|
|
88
|
-
|
|
89
78
|
return _context2.abrupt("return");
|
|
90
|
-
|
|
91
79
|
case 6:
|
|
92
80
|
if (!onLoadChildren) {
|
|
93
81
|
_context2.next = 17;
|
|
94
82
|
break;
|
|
95
83
|
}
|
|
96
|
-
|
|
97
84
|
addLoadingIds(id);
|
|
98
85
|
_context2.prev = 8;
|
|
99
86
|
_context2.next = 11;
|
|
100
87
|
return loadChildren(node);
|
|
101
|
-
|
|
102
88
|
case 11:
|
|
103
89
|
removeLoadingIds(id);
|
|
104
90
|
_context2.next = 17;
|
|
105
91
|
break;
|
|
106
|
-
|
|
107
92
|
case 14:
|
|
108
93
|
_context2.prev = 14;
|
|
109
94
|
_context2.t0 = _context2["catch"](8);
|
|
110
95
|
removeLoadingIds(id);
|
|
111
|
-
|
|
112
96
|
case 17:
|
|
113
97
|
case "end":
|
|
114
98
|
return _context2.stop();
|
|
@@ -117,12 +101,9 @@ var useAsyncSwitch = function useAsyncSwitch(_ref) {
|
|
|
117
101
|
}, _callee2, null, [[8, 14]]);
|
|
118
102
|
}));
|
|
119
103
|
}, [loadChildren, onLoadChildren, onExpandLatest, addLoadingIds, removeLoadingIds]);
|
|
120
|
-
|
|
121
104
|
var isLoadingId = function isLoadingId(id) {
|
|
122
105
|
return loadingIds.indexOf(id) !== -1;
|
|
123
106
|
};
|
|
124
|
-
|
|
125
107
|
return [isLoadingId, onNodeSwitch];
|
|
126
108
|
};
|
|
127
|
-
|
|
128
109
|
export { useAsyncSwitch };
|