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