@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
|
@@ -18,22 +18,20 @@ var DEFAULT_EXPAND_EMBED_ROW_KEYS = [];
|
|
|
18
18
|
/**
|
|
19
19
|
* 行内嵌面板展开
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
21
|
var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
23
22
|
var _ref$rowExpandable = _ref.rowExpandable,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
rowExpandable = _ref$rowExpandable === void 0 ? true : _ref$rowExpandable,
|
|
24
|
+
_ref$defaultExpandedE = _ref.defaultExpandedEmbedRowKeys,
|
|
25
|
+
defaultExpandedEmbedRowKeys = _ref$defaultExpandedE === void 0 ? DEFAULT_EXPAND_EMBED_ROW_KEYS : _ref$defaultExpandedE,
|
|
26
|
+
expandEmbedRowKeysProp = _ref.expandedEmbedRowKeys,
|
|
27
|
+
onEmbedExpand = _ref.onEmbedExpand,
|
|
28
|
+
expandedRender = _ref.expandedRender;
|
|
30
29
|
/**
|
|
31
30
|
* 收敛行内嵌面板配置开关
|
|
32
31
|
*/
|
|
33
|
-
|
|
34
32
|
var embedExpandable = useMemo(function () {
|
|
35
|
-
if (!rowExpandable) return false;
|
|
36
|
-
|
|
33
|
+
if (!rowExpandable) return false;
|
|
34
|
+
// 不传入 render 方法,则不开启内嵌面板
|
|
37
35
|
if (!isFunction(expandedRender)) return false;
|
|
38
36
|
return {
|
|
39
37
|
rowExpandable: rowExpandable,
|
|
@@ -43,43 +41,35 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
|
43
41
|
/**
|
|
44
42
|
* 是否展开状态控制
|
|
45
43
|
*/
|
|
46
|
-
|
|
47
44
|
var _useUncontrolledState = useUncontrolledState(defaultExpandedEmbedRowKeys, expandEmbedRowKeysProp, onEmbedExpand),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
expandEmbedRows = _useUncontrolledState[0],
|
|
46
|
+
trySetExpandEmbedRows = _useUncontrolledState[1];
|
|
51
47
|
var _useCheck = useCheck({
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
checkedIds: expandEmbedRows,
|
|
49
|
+
onCheck: trySetExpandEmbedRows
|
|
50
|
+
}),
|
|
51
|
+
onExpandEmbedRowsChange = _useCheck[0],
|
|
52
|
+
isExpandEmbedRows = _useCheck[1];
|
|
57
53
|
/**
|
|
58
54
|
* 异步展开中状态控制
|
|
59
55
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
56
|
var _useCheckState = useCheckState(),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
addLoadingIds = _useCheckState.add,
|
|
58
|
+
removeLoadingIds = _useCheckState.remove,
|
|
59
|
+
isLoadingId = _useCheckState.has;
|
|
66
60
|
/**
|
|
67
61
|
* 内嵌面板数据
|
|
68
62
|
* 结构:{ [id]: 内嵌数据 }
|
|
69
63
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
64
|
var _React$useState = React__default.useState({}),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
65
|
+
embedPanelRecord = _React$useState[0],
|
|
66
|
+
setEmbedPanelRecord = _React$useState[1];
|
|
76
67
|
var getEmbedPanelById = useCallback(function (id) {
|
|
77
68
|
return embedPanelRecord[id] || null;
|
|
78
69
|
}, [embedPanelRecord]);
|
|
79
70
|
/**
|
|
80
71
|
* 异步展开逻辑处理
|
|
81
72
|
*/
|
|
82
|
-
|
|
83
73
|
var onEmbedSwitch = useCallback(function (node, rowIndex) {
|
|
84
74
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
85
75
|
var embedContentMaybePromise;
|
|
@@ -91,24 +81,19 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
|
91
81
|
_context.next = 2;
|
|
92
82
|
break;
|
|
93
83
|
}
|
|
94
|
-
|
|
95
84
|
return _context.abrupt("return");
|
|
96
|
-
|
|
97
85
|
case 2:
|
|
98
86
|
embedContentMaybePromise = embedExpandable.expandedRender(node.raw, rowIndex); // TODO: 复用 use-dataSource 逻辑
|
|
99
|
-
|
|
100
87
|
if (!isPromise(embedContentMaybePromise)) {
|
|
101
88
|
_context.next = 8;
|
|
102
89
|
break;
|
|
103
90
|
}
|
|
104
|
-
|
|
105
91
|
addLoadingIds(node.id);
|
|
106
92
|
embedContentMaybePromise.then(function (jsxElement) {
|
|
107
93
|
removeLoadingIds(node.id);
|
|
108
94
|
if (typeof jsxElement === 'undefined') return;
|
|
109
95
|
setEmbedPanelRecord(function (prev) {
|
|
110
96
|
var _Object$assign;
|
|
111
|
-
|
|
112
97
|
return Object.assign(Object.assign({}, prev), (_Object$assign = {}, _Object$assign[node.id] = jsxElement, _Object$assign));
|
|
113
98
|
});
|
|
114
99
|
})["catch"](function (jsxElement) {
|
|
@@ -116,28 +101,22 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
|
116
101
|
if (typeof jsxElement === 'undefined') return;
|
|
117
102
|
setEmbedPanelRecord(function (prev) {
|
|
118
103
|
var _Object$assign2;
|
|
119
|
-
|
|
120
104
|
return Object.assign(Object.assign({}, prev), (_Object$assign2 = {}, _Object$assign2[node.id] = jsxElement, _Object$assign2));
|
|
121
105
|
});
|
|
122
106
|
});
|
|
123
107
|
_context.next = 11;
|
|
124
108
|
break;
|
|
125
|
-
|
|
126
109
|
case 8:
|
|
127
110
|
if (!(typeof embedContentMaybePromise === 'undefined')) {
|
|
128
111
|
_context.next = 10;
|
|
129
112
|
break;
|
|
130
113
|
}
|
|
131
|
-
|
|
132
114
|
return _context.abrupt("return");
|
|
133
|
-
|
|
134
115
|
case 10:
|
|
135
116
|
setEmbedPanelRecord(function (prev) {
|
|
136
117
|
var _Object$assign3;
|
|
137
|
-
|
|
138
118
|
return Object.assign(Object.assign({}, prev), (_Object$assign3 = {}, _Object$assign3[node.id] = embedContentMaybePromise, _Object$assign3));
|
|
139
119
|
});
|
|
140
|
-
|
|
141
120
|
case 11:
|
|
142
121
|
case "end":
|
|
143
122
|
return _context.stop();
|
|
@@ -155,5 +134,4 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
|
155
134
|
onExpandEmbedRowsChange: onExpandEmbedRowsChange
|
|
156
135
|
};
|
|
157
136
|
};
|
|
158
|
-
|
|
159
137
|
export { useEmbedExpand };
|
|
@@ -13,6 +13,7 @@ import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
|
|
13
13
|
import { fFindNestedChildNodesById, cloneTree } from '@hi-ui/tree-utils';
|
|
14
14
|
import { useLatestRef, useLatestCallback } from '@hi-ui/use-latest';
|
|
15
15
|
|
|
16
|
+
// TODO: 抽离成 useDefaultExpandAll
|
|
16
17
|
var useExpandProps = function useExpandProps(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll) {
|
|
17
18
|
return useUncontrolledState(function getDefaultExpandedIds() {
|
|
18
19
|
// 开启默认展开全部
|
|
@@ -21,91 +22,76 @@ var useExpandProps = function useExpandProps(flattedData, defaultExpandedIds, ex
|
|
|
21
22
|
return node.id;
|
|
22
23
|
});
|
|
23
24
|
}
|
|
24
|
-
|
|
25
25
|
return defaultExpandedIds;
|
|
26
26
|
}, expandedIdsProp, onExpand);
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
29
29
|
* 树形节点展开
|
|
30
30
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
31
|
var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll) {
|
|
34
32
|
var _useExpandProps = useExpandProps(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll),
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
expandedIds = _useExpandProps[0],
|
|
34
|
+
tryToggleExpandedIds = _useExpandProps[1];
|
|
35
|
+
// const [onExpandTreeRowsChange, isExpandTreeRows] = useCheck({
|
|
37
36
|
// checkedIds: expandTreeRows,
|
|
38
37
|
// onCheck: trySetExpandTreeRows as any,
|
|
39
38
|
// idFieldName: 'key',
|
|
40
39
|
// })
|
|
41
|
-
|
|
42
|
-
|
|
43
40
|
var expandedNodeIdSet = useMemo(function () {
|
|
44
41
|
return new Set(expandedIds);
|
|
45
42
|
}, [expandedIds]);
|
|
46
|
-
|
|
47
43
|
var isExpandedId = function isExpandedId(id) {
|
|
48
44
|
return expandedNodeIdSet.has(id);
|
|
49
45
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
var expandedIdsRef = useLatestRef(expandedIds);
|
|
47
|
+
// 更新展示数据,只展示被展开的所有节点
|
|
53
48
|
var _useState = useState(flattedData),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
transitionData = _useState[0],
|
|
50
|
+
setTransitionData = _useState[1];
|
|
57
51
|
var transitionDataRef = useLatestRef(transitionData);
|
|
58
52
|
var trySetTransitionData = useCallback(function (data, expandedIds) {
|
|
59
|
-
var nextData = data;
|
|
60
|
-
|
|
53
|
+
var nextData = data;
|
|
54
|
+
// 当有 children 时,在构造新的数据,防止重复刷新组件
|
|
61
55
|
if (data.some(function (item) {
|
|
62
56
|
return !!item.children && item.children.length > 0;
|
|
63
57
|
})) {
|
|
64
58
|
nextData = flattenTreeDataWithExpand(data, expandedIds);
|
|
65
59
|
}
|
|
66
|
-
|
|
67
60
|
setTransitionData(nextData);
|
|
68
|
-
}, []);
|
|
61
|
+
}, []);
|
|
62
|
+
// 用来确保一次折叠动画是一次加锁的单元任务
|
|
69
63
|
// 防止用户频繁折叠展开导致动画渲染(存在 DOM 操作)异常
|
|
70
|
-
|
|
71
64
|
var _useState2 = useState(false),
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
65
|
+
isExpanding = _useState2[0],
|
|
66
|
+
setIsExpanding = _useState2[1];
|
|
75
67
|
var isExpandingRef = useRef(false);
|
|
76
|
-
|
|
77
68
|
var _useQueue = useQueue([]),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
69
|
+
enqueue = _useQueue.enqueue,
|
|
70
|
+
top = _useQueue.top,
|
|
71
|
+
dequeue = _useQueue.dequeue;
|
|
72
|
+
// 用户传入 data 或 expandedIds 被改变时,同步更新要展示的所有节点
|
|
83
73
|
useEffect(function () {
|
|
84
74
|
trySetTransitionData(flattedData, expandedIds);
|
|
85
75
|
}, [flattedData, trySetTransitionData, expandedIds]);
|
|
86
76
|
var onNodeToggleStart = useCallback(function (expandedNode, shouldExpanded) {
|
|
87
77
|
if (isExpandingRef.current) return;
|
|
88
78
|
var expanded = expandedIdsRef.current.indexOf(expandedNode.id) !== -1;
|
|
89
|
-
|
|
90
79
|
if (shouldExpanded === expanded) {
|
|
91
80
|
dequeue();
|
|
92
81
|
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
82
|
+
}
|
|
83
|
+
// isExpandingRef.current = true
|
|
96
84
|
setIsExpanding(true);
|
|
97
85
|
var expandedIds = expandedIdsRef.current;
|
|
98
86
|
var transitionData = transitionDataRef.current;
|
|
99
87
|
var expandedNodeIdSet = new Set(expandedIds);
|
|
100
88
|
var expandedNodeId = expandedNode.id;
|
|
101
|
-
|
|
102
89
|
if (shouldExpanded) {
|
|
103
|
-
expandedNodeIdSet.add(expandedNodeId);
|
|
90
|
+
expandedNodeIdSet.add(expandedNodeId);
|
|
91
|
+
// 设置展开的子节点集合用一个容器节点包裹,用来实现动画展开效果
|
|
104
92
|
// @ts-ignore
|
|
105
|
-
|
|
106
93
|
var _fFindNestedChildNode = fFindNestedChildNodesById(flattedData, expandedNodeId),
|
|
107
|
-
|
|
108
|
-
|
|
94
|
+
rangeData = _fFindNestedChildNode[0];
|
|
109
95
|
var expandedNodeIndex = transitionData.findIndex(function (node) {
|
|
110
96
|
return node.id === expandedNodeId;
|
|
111
97
|
});
|
|
@@ -114,22 +100,18 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
|
|
|
114
100
|
newTransitionData.splice.apply(newTransitionData, [childrenStartIndex, 0].concat(flattenTreeDataWithExpand(rangeData, expandedIds)));
|
|
115
101
|
trySetTransitionData(newTransitionData, Array.from(expandedNodeIdSet));
|
|
116
102
|
} else {
|
|
117
|
-
expandedNodeIdSet["delete"](expandedNodeId);
|
|
118
|
-
|
|
119
|
-
var _fFindNestedChildNode2 = fFindNestedChildNodesById(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
103
|
+
expandedNodeIdSet["delete"](expandedNodeId);
|
|
104
|
+
// 设置隐藏的子节点集合用一个 节点 包裹,用来实现动画隐藏效果
|
|
105
|
+
var _fFindNestedChildNode2 = fFindNestedChildNodesById(
|
|
106
|
+
// @ts-ignore
|
|
107
|
+
transitionData, expandedNodeId),
|
|
108
|
+
_rangeData = _fFindNestedChildNode2[0],
|
|
109
|
+
_expandedNodeIndex = _fFindNestedChildNode2[1];
|
|
124
110
|
var _childrenStartIndex = _expandedNodeIndex + 1;
|
|
125
|
-
|
|
126
111
|
var _newTransitionData = cloneTree(transitionData);
|
|
127
|
-
|
|
128
112
|
_newTransitionData.splice.apply(_newTransitionData, [_childrenStartIndex, _rangeData.length].concat(_rangeData));
|
|
129
|
-
|
|
130
113
|
trySetTransitionData(_newTransitionData, Array.from(expandedNodeIdSet));
|
|
131
114
|
}
|
|
132
|
-
|
|
133
115
|
tryToggleExpandedIds(Array.from(expandedNodeIdSet), expandedNode, shouldExpanded);
|
|
134
116
|
}, [tryToggleExpandedIds, flattedData, trySetTransitionData, dequeue, expandedIdsRef, transitionDataRef]);
|
|
135
117
|
var onNodeToggleStartLatest = useLatestCallback(onNodeToggleStart);
|
|
@@ -139,7 +121,6 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
|
|
|
139
121
|
useEffect(function () {
|
|
140
122
|
window.requestAnimationFrame(function () {
|
|
141
123
|
if (isExpanding) return;
|
|
142
|
-
|
|
143
124
|
if (top) {
|
|
144
125
|
onNodeToggleStartLatest(top[0], top[1]);
|
|
145
126
|
dequeue();
|
|
@@ -149,28 +130,23 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
|
|
|
149
130
|
}, [isExpanding, top, onNodeToggleStartLatest, dequeue]);
|
|
150
131
|
return [transitionData, onNodeExpand, isExpandedId];
|
|
151
132
|
};
|
|
152
|
-
|
|
153
133
|
function flattenTreeDataWithExpand(flattedTreeData, expandedIds) {
|
|
154
134
|
var expandedKeySet = new Set(expandedIds);
|
|
155
135
|
var length = flattedTreeData.length;
|
|
156
|
-
var nextData = [];
|
|
157
|
-
|
|
136
|
+
var nextData = [];
|
|
137
|
+
// 处理只展示未折叠的节点或动画节点
|
|
158
138
|
for (var i = 0; i < length;) {
|
|
159
139
|
var node = flattedTreeData[i];
|
|
160
140
|
nextData.push(node);
|
|
161
|
-
|
|
162
141
|
if (expandedKeySet.has(node.id)) {
|
|
163
142
|
i++;
|
|
164
143
|
} else {
|
|
165
144
|
var child = flattedTreeData[++i];
|
|
166
|
-
|
|
167
145
|
while (child && child.depth > node.depth) {
|
|
168
146
|
child = flattedTreeData[++i];
|
|
169
147
|
}
|
|
170
148
|
}
|
|
171
149
|
}
|
|
172
|
-
|
|
173
150
|
return nextData;
|
|
174
151
|
}
|
|
175
|
-
|
|
176
152
|
export { useExpand, useExpandProps };
|
|
@@ -11,44 +11,33 @@ import React__default from 'react';
|
|
|
11
11
|
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
|
12
12
|
import { useLatestCallback } from '@hi-ui/use-latest';
|
|
13
13
|
import axios from 'axios';
|
|
14
|
-
|
|
15
14
|
var useTablePagination = function useTablePagination(_ref) {
|
|
16
15
|
var pagination = _ref.pagination,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
loadingProp = _ref.loadingProp,
|
|
17
|
+
dataProp = _ref.data,
|
|
18
|
+
dataSource = _ref.dataSource;
|
|
21
19
|
var _a, _b;
|
|
22
|
-
|
|
23
20
|
var _useUncontrolledState = useUncontrolledState(1, pagination.current, pagination.onChange),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
currentPage = _useUncontrolledState[0],
|
|
22
|
+
trySetCurrentPage = _useUncontrolledState[1];
|
|
27
23
|
var _useUncontrolledState2 = useUncontrolledState((_b = (_a = pagination === null || pagination === void 0 ? void 0 : pagination.pageSizeOptions) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 10, pagination.pageSize, pagination.onPageSizeChange),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
pageSize = _useUncontrolledState2[0],
|
|
25
|
+
trySetPageSize = _useUncontrolledState2[1];
|
|
31
26
|
var _React$useState = React__default.useState(false),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
internalLoading = _React$useState[0],
|
|
28
|
+
setInternalLoading = _React$useState[1];
|
|
35
29
|
var loading = dataSource ? internalLoading : loadingProp;
|
|
36
|
-
|
|
37
30
|
var _React$useState2 = React__default.useState(0),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
internalTotal = _React$useState2[0],
|
|
32
|
+
setInternalTotal = _React$useState2[1];
|
|
41
33
|
var total = dataSource ? internalTotal : pagination.total;
|
|
42
|
-
|
|
43
34
|
var _React$useState3 = React__default.useState([]),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
remoteTableData = _React$useState3[0],
|
|
36
|
+
setRemoteTableData = _React$useState3[1];
|
|
47
37
|
var mergedData = dataSource ? remoteTableData : dataProp;
|
|
48
38
|
/**
|
|
49
39
|
* 当设置 dataSource 后,则自动获取数据
|
|
50
40
|
*/
|
|
51
|
-
|
|
52
41
|
var getData = useLatestCallback(function () {
|
|
53
42
|
if (dataSource) {
|
|
54
43
|
var requestConfig = dataSource(currentPage, pageSize);
|
|
@@ -82,5 +71,4 @@ var useTablePagination = function useTablePagination(_ref) {
|
|
|
82
71
|
total: total
|
|
83
72
|
};
|
|
84
73
|
};
|
|
85
|
-
|
|
86
74
|
export { useTablePagination };
|
|
@@ -8,16 +8,13 @@
|
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
9
|
*/
|
|
10
10
|
import { useState, useCallback } from 'react';
|
|
11
|
-
|
|
12
11
|
var useQueue = function useQueue(initialValue) {
|
|
13
12
|
if (initialValue === void 0) {
|
|
14
13
|
initialValue = [];
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
var _useState = useState(initialValue),
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
queue = _useState[0],
|
|
17
|
+
setQueue = _useState[1];
|
|
21
18
|
var enqueue = useCallback(function (value) {
|
|
22
19
|
setQueue(function (prevQueue) {
|
|
23
20
|
return [].concat(prevQueue, [value]);
|
|
@@ -26,23 +23,18 @@ var useQueue = function useQueue(initialValue) {
|
|
|
26
23
|
var dequeue = useCallback(function () {
|
|
27
24
|
setQueue(function (_ref) {
|
|
28
25
|
var nextQueue = _ref.slice(1);
|
|
29
|
-
|
|
30
26
|
return nextQueue;
|
|
31
27
|
});
|
|
32
28
|
}, []);
|
|
33
29
|
return {
|
|
34
30
|
enqueue: enqueue,
|
|
35
31
|
dequeue: dequeue,
|
|
36
|
-
|
|
37
32
|
get top() {
|
|
38
33
|
return queue[0];
|
|
39
34
|
},
|
|
40
|
-
|
|
41
35
|
get empty() {
|
|
42
36
|
return queue.length === 0;
|
|
43
37
|
}
|
|
44
|
-
|
|
45
38
|
};
|
|
46
39
|
};
|
|
47
|
-
|
|
48
40
|
export { useQueue };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
-
|
|
3
2
|
/** @LICENSE
|
|
4
3
|
* @hi-ui/table
|
|
5
4
|
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
@@ -10,6 +9,7 @@ import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
|
10
9
|
* LICENSE file in the root directory of this source tree.
|
|
11
10
|
*/
|
|
12
11
|
import { c as classnames } from '../../_virtual/index.js';
|
|
12
|
+
|
|
13
13
|
/*!
|
|
14
14
|
Copyright (c) 2018 Jed Watson.
|
|
15
15
|
Licensed under the MIT License (MIT), see
|
|
@@ -18,24 +18,20 @@ import { c as classnames } from '../../_virtual/index.js';
|
|
|
18
18
|
|
|
19
19
|
(function (module) {
|
|
20
20
|
/* global define */
|
|
21
|
+
|
|
21
22
|
(function () {
|
|
22
23
|
var hasOwn = {}.hasOwnProperty;
|
|
23
|
-
|
|
24
24
|
function classNames() {
|
|
25
25
|
var classes = [];
|
|
26
|
-
|
|
27
26
|
for (var i = 0; i < arguments.length; i++) {
|
|
28
27
|
var arg = arguments[i];
|
|
29
28
|
if (!arg) continue;
|
|
30
|
-
|
|
31
29
|
var argType = _typeof(arg);
|
|
32
|
-
|
|
33
30
|
if (argType === 'string' || argType === 'number') {
|
|
34
31
|
classes.push(arg);
|
|
35
32
|
} else if (Array.isArray(arg)) {
|
|
36
33
|
if (arg.length) {
|
|
37
34
|
var inner = classNames.apply(null, arg);
|
|
38
|
-
|
|
39
35
|
if (inner) {
|
|
40
36
|
classes.push(inner);
|
|
41
37
|
}
|
|
@@ -52,10 +48,8 @@ import { c as classnames } from '../../_virtual/index.js';
|
|
|
52
48
|
}
|
|
53
49
|
}
|
|
54
50
|
}
|
|
55
|
-
|
|
56
51
|
return classes.join(' ');
|
|
57
52
|
}
|
|
58
|
-
|
|
59
53
|
if (module.exports) {
|
|
60
54
|
classNames["default"] = classNames;
|
|
61
55
|
module.exports = classNames;
|
|
@@ -64,6 +58,5 @@ import { c as classnames } from '../../_virtual/index.js';
|
|
|
64
58
|
}
|
|
65
59
|
})();
|
|
66
60
|
})(classnames);
|
|
67
|
-
|
|
68
61
|
var classNames = classnames.exports;
|
|
69
62
|
export { classNames as default };
|