@hi-ui/table 4.3.1 → 4.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/lib/cjs/BaseTable.js +136 -189
- package/lib/cjs/ColGroupContent.js +5 -28
- package/lib/cjs/SettingDrawer.js +76 -127
- package/lib/cjs/Table.js +107 -171
- package/lib/cjs/TableAdvancedFilter.js +49 -85
- package/lib/cjs/TableBody.js +33 -69
- package/lib/cjs/TableCell.js +56 -102
- package/lib/cjs/TableColumnMenu.js +39 -77
- package/lib/cjs/TableEmbedRow.js +11 -38
- package/lib/cjs/TableHeader.js +8 -33
- package/lib/cjs/TableRow.js +48 -88
- package/lib/cjs/TableSettingMenu.js +48 -94
- package/lib/cjs/TbodyContent.js +28 -56
- package/lib/cjs/TheadContent.js +20 -49
- package/lib/cjs/_virtual/index.js +0 -3
- package/lib/cjs/_virtual/index2.js +0 -3
- package/lib/cjs/_virtual/react-is.development.js +0 -3
- package/lib/cjs/_virtual/react-is.production.min.js +0 -3
- package/lib/cjs/context.js +0 -9
- package/lib/cjs/hooks/use-async-switch.js +13 -51
- package/lib/cjs/hooks/use-check.js +47 -77
- package/lib/cjs/hooks/use-col-hidden.js +16 -28
- package/lib/cjs/hooks/use-col-set.js +5 -18
- package/lib/cjs/hooks/use-col-sorter.js +18 -32
- package/lib/cjs/hooks/use-col-width.js +21 -57
- package/lib/cjs/hooks/use-colgroup.js +63 -85
- package/lib/cjs/hooks/use-drag.js +10 -31
- package/lib/cjs/hooks/use-embed-expand.js +23 -68
- package/lib/cjs/hooks/use-expand.js +32 -64
- package/lib/cjs/hooks/use-pagination.js +19 -50
- package/lib/cjs/hooks/use-queue.js +2 -14
- package/lib/cjs/icons/index.js +4 -21
- package/lib/cjs/index.js +0 -4
- package/lib/cjs/node_modules/classnames/index.js +2 -11
- package/lib/cjs/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +31 -227
- package/lib/cjs/node_modules/rc-resize-observer/es/index.js +10 -68
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +1 -17
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +1 -25
- package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +1 -5
- package/lib/cjs/node_modules/rc-util/es/Dom/canUseDom.js +0 -2
- package/lib/cjs/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
- package/lib/cjs/node_modules/rc-util/es/hooks/useLayoutEffect.js +2 -9
- package/lib/cjs/node_modules/rc-util/es/raf.js +0 -11
- package/lib/cjs/node_modules/rc-virtual-list/es/Filler.js +6 -25
- package/lib/cjs/node_modules/rc-virtual-list/es/Item.js +3 -14
- package/lib/cjs/node_modules/rc-virtual-list/es/List.js +103 -194
- package/lib/cjs/node_modules/rc-virtual-list/es/ScrollBar.js +16 -96
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useChildren.js +2 -11
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +8 -34
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -10
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useHeights.js +6 -39
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -16
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -9
- package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +3 -28
- package/lib/cjs/node_modules/rc-virtual-list/es/index.js +0 -2
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -9
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +0 -15
- package/lib/cjs/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -2
- package/lib/cjs/node_modules/react-is/cjs/react-is.development.js +3 -29
- package/lib/cjs/node_modules/react-is/cjs/react-is.production.min.js +19 -45
- package/lib/cjs/node_modules/react-is/index.js +0 -5
- package/lib/cjs/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +83 -248
- package/lib/cjs/packages/hooks/use-merge-refs/lib/esm/index.js +3 -14
- package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +48 -86
- package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -15
- package/lib/cjs/packages/ui/scrollbar/lib/esm/utils/index.js +0 -13
- package/lib/cjs/styles/index.scss.js +1 -4
- package/lib/cjs/use-table.js +268 -355
- package/lib/cjs/utils/index.js +11 -45
- package/lib/esm/BaseTable.js +117 -138
- package/lib/esm/ColGroupContent.js +3 -9
- package/lib/esm/SettingDrawer.js +64 -83
- package/lib/esm/Table.js +97 -124
- package/lib/esm/TableAdvancedFilter.js +37 -47
- package/lib/esm/TableBody.js +24 -34
- package/lib/esm/TableCell.js +48 -72
- package/lib/esm/TableColumnMenu.js +24 -38
- package/lib/esm/TableEmbedRow.js +8 -15
- package/lib/esm/TableHeader.js +5 -11
- package/lib/esm/TableRow.js +36 -51
- package/lib/esm/TableSettingMenu.js +33 -49
- package/lib/esm/TbodyContent.js +20 -27
- package/lib/esm/TheadContent.js +14 -21
- package/lib/esm/context.js +0 -4
- package/lib/esm/hooks/use-async-switch.js +9 -28
- package/lib/esm/hooks/use-check.js +42 -55
- package/lib/esm/hooks/use-col-hidden.js +16 -21
- package/lib/esm/hooks/use-col-set.js +5 -13
- package/lib/esm/hooks/use-col-sorter.js +18 -23
- package/lib/esm/hooks/use-col-width.js +14 -34
- package/lib/esm/hooks/use-colgroup.js +60 -66
- package/lib/esm/hooks/use-drag.js +9 -13
- package/lib/esm/hooks/use-embed-expand.js +20 -42
- package/lib/esm/hooks/use-expand.js +32 -56
- package/lib/esm/hooks/use-pagination.js +13 -25
- package/lib/esm/hooks/use-queue.js +2 -10
- package/lib/esm/node_modules/classnames/index.js +2 -9
- package/lib/esm/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +31 -228
- package/lib/esm/node_modules/rc-resize-observer/es/index.js +3 -26
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +0 -3
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +0 -8
- package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +0 -5
- package/lib/esm/node_modules/rc-util/es/Dom/canUseDom.js +0 -1
- package/lib/esm/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
- package/lib/esm/node_modules/rc-util/es/hooks/useLayoutEffect.js +1 -0
- package/lib/esm/node_modules/rc-util/es/raf.js +0 -10
- package/lib/esm/node_modules/rc-virtual-list/es/Filler.js +4 -15
- package/lib/esm/node_modules/rc-virtual-list/es/Item.js +1 -3
- package/lib/esm/node_modules/rc-virtual-list/es/List.js +101 -174
- package/lib/esm/node_modules/rc-virtual-list/es/ScrollBar.js +14 -86
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useChildren.js +0 -2
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +6 -25
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -6
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +4 -28
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -13
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -8
- package/lib/esm/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +1 -19
- package/lib/esm/node_modules/rc-virtual-list/es/index.js +1 -1
- package/lib/esm/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -8
- package/lib/esm/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +1 -12
- package/lib/esm/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -1
- package/lib/esm/node_modules/react-is/cjs/react-is.development.js +4 -27
- package/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +20 -44
- package/lib/esm/node_modules/react-is/index.js +0 -1
- package/lib/esm/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +82 -248
- package/lib/esm/packages/hooks/use-merge-refs/lib/esm/index.js +3 -9
- package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +47 -64
- package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -3
- package/lib/esm/packages/ui/scrollbar/lib/esm/utils/index.js +0 -10
- package/lib/esm/styles/index.scss.js +1 -3
- package/lib/esm/use-table.js +261 -318
- package/lib/esm/utils/index.js +11 -41
- package/lib/types/BaseTable.d.ts +2 -2
- package/package.json +33 -33
package/lib/cjs/Table.js
CHANGED
|
@@ -9,69 +9,29 @@
|
|
|
9
9
|
*/
|
|
10
10
|
'use strict';
|
|
11
11
|
|
|
12
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, '__esModule', {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
12
|
var tslib = require('tslib');
|
|
19
|
-
|
|
20
13
|
var React = require('react');
|
|
21
|
-
|
|
22
14
|
var classname = require('@hi-ui/classname');
|
|
23
|
-
|
|
24
15
|
var env = require('@hi-ui/env');
|
|
25
|
-
|
|
26
16
|
var Pagination = require('@hi-ui/pagination');
|
|
27
|
-
|
|
28
17
|
var useColHidden = require('./hooks/use-col-hidden.js');
|
|
29
|
-
|
|
30
18
|
var useColSorter = require('./hooks/use-col-sorter.js');
|
|
31
|
-
|
|
32
19
|
var usePagination = require('./hooks/use-pagination.js');
|
|
33
|
-
|
|
34
20
|
var reactUtils = require('@hi-ui/react-utils');
|
|
35
|
-
|
|
36
21
|
var TableSettingMenu = require('./TableSettingMenu.js');
|
|
37
|
-
|
|
38
22
|
var Loading = require('@hi-ui/loading');
|
|
39
|
-
|
|
40
23
|
var Checkbox = require('@hi-ui/checkbox');
|
|
41
|
-
|
|
42
24
|
var useCheck = require('./hooks/use-check.js');
|
|
43
|
-
|
|
44
25
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
45
|
-
|
|
46
26
|
var treeUtils = require('@hi-ui/tree-utils');
|
|
47
|
-
|
|
48
27
|
var BaseTable = require('./BaseTable.js');
|
|
49
|
-
|
|
50
28
|
var index = require('./utils/index.js');
|
|
51
|
-
|
|
52
29
|
var useColSet = require('./hooks/use-col-set.js');
|
|
53
|
-
|
|
54
|
-
function _interopDefaultLegacy(e) {
|
|
55
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
56
|
-
'default': e
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
61
|
-
|
|
62
|
-
var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
|
|
63
|
-
|
|
64
|
-
var Loading__default = /*#__PURE__*/_interopDefaultLegacy(Loading);
|
|
65
|
-
|
|
66
|
-
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
|
67
|
-
|
|
68
30
|
var _prefix = classname.getPrefixCls('table');
|
|
69
31
|
/**
|
|
70
32
|
* 需要使用双表格的场景对应的 API
|
|
71
33
|
* 这些场景下的功能无法通过单表格实现,故而设计成双表格,即表头和表体分别用一个 table 实现
|
|
72
34
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
35
|
var DOUBLE_TABLE_SCENE = ['maxHeight', 'sticky', 'stickyTop', 'setting', 'virtual'];
|
|
76
36
|
var STANDARD_PRESET = {
|
|
77
37
|
striped: true,
|
|
@@ -89,114 +49,104 @@ var DEFAULT_PAGINATION = {
|
|
|
89
49
|
/**
|
|
90
50
|
* 表格
|
|
91
51
|
*/
|
|
92
|
-
|
|
93
52
|
var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
94
53
|
var _a$prefixCls = _a.prefixCls,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
54
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
55
|
+
_a$standard = _a.standard,
|
|
56
|
+
standard = _a$standard === void 0 ? false : _a$standard,
|
|
57
|
+
_a$loading = _a.loading,
|
|
58
|
+
loadingProp = _a$loading === void 0 ? false : _a$loading,
|
|
59
|
+
dataSource = _a.dataSource,
|
|
60
|
+
paginationProp = _a.pagination,
|
|
61
|
+
uniqueId = _a.uniqueId,
|
|
62
|
+
columnsProp = _a.columns,
|
|
63
|
+
hiddenColKeysPropBeforeVerify = _a.hiddenColKeys,
|
|
64
|
+
onHiddenColKeysChange = _a.onHiddenColKeysChange,
|
|
65
|
+
sortedColKeysPropBeforeVerify = _a.sortedColKeys,
|
|
66
|
+
onSortedColKeysChange = _a.onSortedColKeysChange,
|
|
67
|
+
checkDisabledColKeys = _a.checkDisabledColKeys,
|
|
68
|
+
onSetColKeysChange = _a.onSetColKeysChange,
|
|
69
|
+
rowSelection = _a.rowSelection,
|
|
70
|
+
_a$fieldKey = _a.fieldKey,
|
|
71
|
+
fieldKey = _a$fieldKey === void 0 ? 'key' : _a$fieldKey,
|
|
72
|
+
extra = _a.extra,
|
|
73
|
+
_a$data = _a.data,
|
|
74
|
+
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
|
75
|
+
rest = tslib.__rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data"]);
|
|
76
|
+
// 是否需要双表格
|
|
119
77
|
var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
|
|
120
78
|
return !!rest[prop];
|
|
121
79
|
});
|
|
122
|
-
var virtual = rest.virtual;
|
|
123
|
-
|
|
80
|
+
var virtual = rest.virtual;
|
|
81
|
+
// ************************ 预置标准模式 ************************ //
|
|
124
82
|
var tableProps = reactUtils.withDefaultProps(rest, standard ? STANDARD_PRESET : undefined);
|
|
125
|
-
|
|
126
83
|
var _tableProps$setting = tableProps.setting,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
84
|
+
setting = _tableProps$setting === void 0 ? false : _tableProps$setting,
|
|
85
|
+
baseTableProps = tslib.__rest(tableProps
|
|
86
|
+
// ************************ 高级功能 ************************ //
|
|
87
|
+
// ***根据列字段合并sortedColKeysProp,和hiddenColKeys
|
|
88
|
+
, ["setting"]);
|
|
89
|
+
// ************************ 高级功能 ************************ //
|
|
131
90
|
// ***根据列字段合并sortedColKeysProp,和hiddenColKeys
|
|
132
|
-
|
|
133
|
-
|
|
134
91
|
var _useColSet = useColSet.useColSet({
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
92
|
+
columns: columnsProp,
|
|
93
|
+
sortedColKeys: sortedColKeysPropBeforeVerify,
|
|
94
|
+
hiddenColKeys: hiddenColKeysPropBeforeVerify
|
|
95
|
+
}),
|
|
96
|
+
sortedColKeysProp = _useColSet.sortedColKeys,
|
|
97
|
+
hiddenColKeysProp = _useColSet.hiddenColKeys;
|
|
141
98
|
/**
|
|
142
99
|
* 列排序
|
|
143
100
|
*/
|
|
144
|
-
|
|
145
|
-
|
|
146
101
|
var _useColSorter = useColSorter.useColSorter({
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
102
|
+
uniqueId: uniqueId,
|
|
103
|
+
columns: columnsProp,
|
|
104
|
+
sortedColKeys: sortedColKeysProp,
|
|
105
|
+
onSortedColKeysChange: onSortedColKeysChange
|
|
106
|
+
}),
|
|
107
|
+
sortedCols = _useColSorter.sortedCols,
|
|
108
|
+
setSortColKeys = _useColSorter.setSortColKeys,
|
|
109
|
+
cacheSortedCols = _useColSorter.cacheSortedCols,
|
|
110
|
+
setCacheSortedCols = _useColSorter.setCacheSortedCols;
|
|
156
111
|
/**
|
|
157
112
|
* 列隐藏
|
|
158
113
|
*/
|
|
159
|
-
|
|
160
|
-
|
|
161
114
|
var _useColHidden = useColHidden.useColHidden({
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
115
|
+
uniqueId: uniqueId,
|
|
116
|
+
// 基于排序的 columns,隐藏的也能排序
|
|
117
|
+
columns: sortedCols,
|
|
118
|
+
hiddenColKeys: hiddenColKeysProp,
|
|
119
|
+
onHiddenColKeysChange: onHiddenColKeysChange
|
|
120
|
+
}),
|
|
121
|
+
visibleCols = _useColHidden.visibleCols,
|
|
122
|
+
hiddenColKeys = _useColHidden.hiddenColKeys,
|
|
123
|
+
setHiddenColKeys = _useColHidden.setHiddenColKeys,
|
|
124
|
+
cacheHiddenColKeys = _useColHidden.cacheHiddenColKeys,
|
|
125
|
+
setCacheHiddenColKeys = _useColHidden.setCacheHiddenColKeys;
|
|
174
126
|
var pagination = reactUtils.withDefaultProps(paginationProp, DEFAULT_PAGINATION);
|
|
175
127
|
/**
|
|
176
128
|
* 数据分页
|
|
177
129
|
*/
|
|
178
|
-
|
|
179
130
|
var _useTablePagination = usePagination.useTablePagination({
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
131
|
+
loadingProp: loadingProp,
|
|
132
|
+
pagination: pagination,
|
|
133
|
+
data: data,
|
|
134
|
+
dataSource: dataSource
|
|
135
|
+
}),
|
|
136
|
+
loading = _useTablePagination.loading,
|
|
137
|
+
mergedData = _useTablePagination.mergedData,
|
|
138
|
+
currentPage = _useTablePagination.currentPage,
|
|
139
|
+
trySetCurrentPage = _useTablePagination.trySetCurrentPage,
|
|
140
|
+
pageSize = _useTablePagination.pageSize,
|
|
141
|
+
trySetPageSize = _useTablePagination.trySetPageSize,
|
|
142
|
+
total = _useTablePagination.total;
|
|
143
|
+
// 可能是从 dataSource 中拿到的 total 值,在此更新该值
|
|
194
144
|
pagination = Object.assign(Object.assign({}, pagination), {
|
|
195
145
|
total: total
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
var hiddenPagination = !paginationProp || pagination.autoHide && currentPage === 1 && typeof pagination.pageSize === 'number' && typeof pagination.total === 'number' && pagination.total <= pagination.pageSize && data.length <= pagination.pageSize;
|
|
199
|
-
|
|
146
|
+
});
|
|
147
|
+
// 优化数据在第一页且数据一页内时,不展示 pagination 配置项
|
|
148
|
+
var hiddenPagination = !paginationProp || pagination.autoHide && currentPage === 1 && typeof pagination.pageSize === 'number' && typeof pagination.total === 'number' && pagination.total <= pagination.pageSize && data.length <= pagination.pageSize;
|
|
149
|
+
// 获取 key 字段值
|
|
200
150
|
var getRowKeyField = React.useCallback(function (item) {
|
|
201
151
|
var val = item[fieldKey];
|
|
202
152
|
env.invariant(!typeAssertion.isNullish(val), 'Not found for the unique %s attribute in each row of data prop.', fieldKey);
|
|
@@ -205,7 +155,6 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
205
155
|
/**
|
|
206
156
|
* 扁平化数据,支持树形 table
|
|
207
157
|
*/
|
|
208
|
-
|
|
209
158
|
var flattedData = React.useMemo(function () {
|
|
210
159
|
// 对于分页来讲,flattedData 应该是当前页的数据
|
|
211
160
|
var clonedData = treeUtils.cloneTree(mergedData);
|
|
@@ -215,33 +164,32 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
215
164
|
id: getRowKeyField(node.raw)
|
|
216
165
|
});
|
|
217
166
|
});
|
|
218
|
-
}, [mergedData, getRowKeyField]);
|
|
167
|
+
}, [mergedData, getRowKeyField]);
|
|
168
|
+
// ************************ 行多选 ************************ //
|
|
219
169
|
// 自定义设置 checkbox 列宽度
|
|
220
|
-
|
|
221
|
-
var checkboxColWidth = React__default["default"].useMemo(function () {
|
|
170
|
+
var checkboxColWidth = React.useMemo(function () {
|
|
222
171
|
return rowSelection && typeof rowSelection.checkboxColWidth === 'number' ? rowSelection.checkboxColWidth : 38;
|
|
223
|
-
}, [rowSelection]);
|
|
224
|
-
|
|
172
|
+
}, [rowSelection]);
|
|
173
|
+
// 预处理 column 支持 多选渲染
|
|
225
174
|
var _useTableCheck = useCheck.useTableCheck({
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
var getSelectionColumn = React__default["default"].useCallback(function (rowSelection) {
|
|
175
|
+
rowSelection: rowSelection,
|
|
176
|
+
flattedData: flattedData,
|
|
177
|
+
fieldKey: fieldKey
|
|
178
|
+
}),
|
|
179
|
+
checkedAll = _useTableCheck.checkedAll,
|
|
180
|
+
semiChecked = _useTableCheck.semiChecked,
|
|
181
|
+
tryCheckAllRow = _useTableCheck.tryCheckAllRow,
|
|
182
|
+
isCheckedRowKey = _useTableCheck.isCheckedRowKey,
|
|
183
|
+
onCheckedRowKeysChange = _useTableCheck.onCheckedRowKeysChange,
|
|
184
|
+
checkRowIsDisabledCheckbox = _useTableCheck.checkRowIsDisabledCheckbox;
|
|
185
|
+
// 表格列多选操作区
|
|
186
|
+
var getSelectionColumn = React.useCallback(function (rowSelection) {
|
|
239
187
|
var renderCell = function renderCell(_, rowItem, rowIndex) {
|
|
240
188
|
var rowKey = getRowKeyField(rowItem);
|
|
241
189
|
var checked = isCheckedRowKey(rowKey);
|
|
242
190
|
var disabledCheckbox = checkRowIsDisabledCheckbox(rowItem);
|
|
243
191
|
return {
|
|
244
|
-
node: /*#__PURE__*/
|
|
192
|
+
node: /*#__PURE__*/React.createElement(Checkbox, {
|
|
245
193
|
checked: isCheckedRowKey(rowKey),
|
|
246
194
|
disabled: disabledCheckbox,
|
|
247
195
|
onChange: function onChange(evt) {
|
|
@@ -253,16 +201,14 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
253
201
|
}),
|
|
254
202
|
checked: checked
|
|
255
203
|
};
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
|
|
204
|
+
};
|
|
205
|
+
// TODO: && isFixed !== 'right' && !isSumRow && !isAvgRow
|
|
259
206
|
var renderSelectionCell = function renderSelectionCell(_, rowItem, rowIndex, dataKey) {
|
|
260
207
|
var _renderCell = renderCell(_, rowItem),
|
|
261
|
-
|
|
262
|
-
|
|
208
|
+
node = _renderCell.node,
|
|
209
|
+
checked = _renderCell.checked;
|
|
210
|
+
// 自定义渲染
|
|
263
211
|
// @ts-ignore
|
|
264
|
-
|
|
265
|
-
|
|
266
212
|
if (rowSelection.render) {
|
|
267
213
|
// TODO: 获取 requiredProps 方法
|
|
268
214
|
// @ts-ignore
|
|
@@ -270,13 +216,11 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
270
216
|
checked: checked
|
|
271
217
|
}), rowIndex, dataKey);
|
|
272
218
|
}
|
|
273
|
-
|
|
274
219
|
return node;
|
|
275
220
|
};
|
|
276
|
-
|
|
277
221
|
var renderTitleCell = function renderTitleCell() {
|
|
278
222
|
return {
|
|
279
|
-
node: /*#__PURE__*/
|
|
223
|
+
node: /*#__PURE__*/React.createElement(Checkbox, {
|
|
280
224
|
checked: checkedAll,
|
|
281
225
|
indeterminate: semiChecked,
|
|
282
226
|
onChange: tryCheckAllRow
|
|
@@ -285,24 +229,19 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
285
229
|
semiChecked: semiChecked
|
|
286
230
|
};
|
|
287
231
|
};
|
|
288
|
-
|
|
289
232
|
var renderSelectionTitleCell = function renderSelectionTitleCell() {
|
|
290
233
|
var _renderTitleCell = renderTitleCell(),
|
|
291
|
-
|
|
292
|
-
|
|
234
|
+
node = _renderTitleCell.node;
|
|
293
235
|
if (rowSelection.checkAllOptions) {
|
|
294
236
|
if (rowSelection.checkAllOptions.render) {
|
|
295
237
|
return rowSelection.checkAllOptions.render(node);
|
|
296
238
|
}
|
|
297
|
-
|
|
298
239
|
if (rowSelection.checkAllOptions.filterIcon) {
|
|
299
|
-
return /*#__PURE__*/
|
|
240
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, node, rowSelection.checkAllOptions.filterIcon);
|
|
300
241
|
}
|
|
301
242
|
}
|
|
302
|
-
|
|
303
243
|
return node;
|
|
304
244
|
};
|
|
305
|
-
|
|
306
245
|
var selectionColumn = {
|
|
307
246
|
dataKey: SELECTION_DATA_KEY,
|
|
308
247
|
width: checkboxColWidth,
|
|
@@ -313,17 +252,16 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
313
252
|
};
|
|
314
253
|
return selectionColumn;
|
|
315
254
|
}, [getRowKeyField, checkedAll, semiChecked, tryCheckAllRow, checkboxColWidth, isCheckedRowKey, onCheckedRowKeysChange, checkRowIsDisabledCheckbox, prefixCls]);
|
|
316
|
-
var mergedColumns =
|
|
255
|
+
var mergedColumns = React.useMemo(function () {
|
|
317
256
|
if (rowSelection) {
|
|
318
257
|
var selectionColumn = getSelectionColumn(rowSelection);
|
|
319
258
|
return [selectionColumn].concat(visibleCols);
|
|
320
259
|
}
|
|
321
|
-
|
|
322
260
|
return visibleCols;
|
|
323
|
-
}, [rowSelection, getSelectionColumn, visibleCols]);
|
|
324
|
-
|
|
325
|
-
var TableWrapper = loading ?
|
|
326
|
-
return /*#__PURE__*/
|
|
261
|
+
}, [rowSelection, getSelectionColumn, visibleCols]);
|
|
262
|
+
// ************************ loading ************************ //
|
|
263
|
+
var TableWrapper = loading ? Loading : React.Fragment;
|
|
264
|
+
return /*#__PURE__*/React.createElement(TableWrapper, null, /*#__PURE__*/React.createElement(BaseTable.BaseTable, Object.assign({
|
|
327
265
|
ref: ref
|
|
328
266
|
}, baseTableProps, {
|
|
329
267
|
prefixCls: prefixCls,
|
|
@@ -333,7 +271,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
333
271
|
virtual: virtual,
|
|
334
272
|
needDoubleTable: needDoubleTable,
|
|
335
273
|
extra: Object.assign({
|
|
336
|
-
header: setting ? /*#__PURE__*/
|
|
274
|
+
header: setting ? /*#__PURE__*/React.createElement(TableSettingMenu.TableSettingMenu, {
|
|
337
275
|
prefixCls: prefixCls + "-setting",
|
|
338
276
|
// sort
|
|
339
277
|
sortedCols: sortedCols,
|
|
@@ -348,7 +286,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
348
286
|
checkDisabledColKeys: checkDisabledColKeys,
|
|
349
287
|
onSetColKeysChange: onSetColKeysChange
|
|
350
288
|
}) : null,
|
|
351
|
-
footer: dataSource || !hiddenPagination ? /*#__PURE__*/
|
|
289
|
+
footer: dataSource || !hiddenPagination ? /*#__PURE__*/React.createElement(Pagination, Object.assign({
|
|
352
290
|
className: classname.cx(prefixCls + "-pagination", pagination.placement && prefixCls + "-pagination--placement-" + pagination.placement)
|
|
353
291
|
}, pagination, {
|
|
354
292
|
current: currentPage,
|
|
@@ -359,10 +297,8 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
359
297
|
}, extra)
|
|
360
298
|
})));
|
|
361
299
|
});
|
|
362
|
-
|
|
363
300
|
if (env.__DEV__) {
|
|
364
301
|
Table.displayName = 'Table';
|
|
365
302
|
}
|
|
366
|
-
|
|
367
303
|
exports.SELECTION_DATA_KEY = SELECTION_DATA_KEY;
|
|
368
304
|
exports.Table = Table;
|
|
@@ -9,66 +9,39 @@
|
|
|
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 classname = require('@hi-ui/classname');
|
|
21
|
-
|
|
22
14
|
var context = require('./context.js');
|
|
23
|
-
|
|
24
15
|
var TableColumnMenu = require('./TableColumnMenu.js');
|
|
25
|
-
|
|
26
16
|
var Select = require('@hi-ui/select');
|
|
27
|
-
|
|
28
17
|
var icons = require('@hi-ui/icons');
|
|
29
|
-
|
|
30
18
|
var Popper = require('@hi-ui/popper');
|
|
31
|
-
|
|
32
19
|
var useToggle = require('@hi-ui/use-toggle');
|
|
33
|
-
|
|
34
20
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
35
|
-
|
|
36
|
-
function _interopDefaultLegacy(e) {
|
|
37
|
-
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
38
|
-
'default': e
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
43
|
-
|
|
44
|
-
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
45
|
-
|
|
46
|
-
var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
|
|
47
|
-
|
|
48
21
|
var renderFilter = function renderFilter(_ref) {
|
|
49
22
|
var prefixCls = _ref.prefixCls,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
23
|
+
column = _ref.column,
|
|
24
|
+
showColMenu = _ref.showColMenu,
|
|
25
|
+
onOpen = _ref.onOpen,
|
|
26
|
+
onClose = _ref.onClose;
|
|
54
27
|
var _column$raw = column.raw,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return [showColMenu && /*#__PURE__*/
|
|
28
|
+
sorter = _column$raw.sorter,
|
|
29
|
+
filterIcon = _column$raw.filterIcon,
|
|
30
|
+
selectFilters = _column$raw.selectFilters;
|
|
31
|
+
return [showColMenu && /*#__PURE__*/React.createElement(TableColumnMenu.TableColumnMenu, {
|
|
59
32
|
prefixCls: prefixCls + "-dropdown",
|
|
60
33
|
key: "0",
|
|
61
34
|
column: column,
|
|
62
35
|
onOpen: onOpen,
|
|
63
36
|
onClose: onClose
|
|
64
|
-
}), sorter && !showColMenu && /*#__PURE__*/
|
|
37
|
+
}), sorter && !showColMenu && /*#__PURE__*/React.createElement(SorterMenu, {
|
|
65
38
|
prefixCls: prefixCls + "-sorter",
|
|
66
39
|
key: "1",
|
|
67
40
|
column: column
|
|
68
|
-
}), selectFilters && /*#__PURE__*/
|
|
41
|
+
}), selectFilters && /*#__PURE__*/React.createElement(Select, Object.assign({
|
|
69
42
|
prefixCls: prefixCls + "-select",
|
|
70
43
|
key: "2"
|
|
71
|
-
}, selectFilters)), filterIcon && /*#__PURE__*/
|
|
44
|
+
}, selectFilters)), filterIcon && /*#__PURE__*/React.createElement(FilterDropdown, {
|
|
72
45
|
prefixCls: prefixCls + "-custom",
|
|
73
46
|
key: "3",
|
|
74
47
|
column: column,
|
|
@@ -76,23 +49,19 @@ var renderFilter = function renderFilter(_ref) {
|
|
|
76
49
|
onClose: onClose
|
|
77
50
|
})].filter(Boolean);
|
|
78
51
|
};
|
|
79
|
-
|
|
80
52
|
var SorterMenu = function SorterMenu(_ref2) {
|
|
81
53
|
var _cx, _cx2;
|
|
82
|
-
|
|
83
54
|
var prefixCls = _ref2.prefixCls,
|
|
84
|
-
|
|
55
|
+
column = _ref2.column;
|
|
85
56
|
var columnKey = column.dataKey;
|
|
86
|
-
|
|
87
57
|
var _useTableContext = context.useTableContext(),
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
58
|
+
activeSorterColumn = _useTableContext.activeSorterColumn,
|
|
59
|
+
activeSorterType = _useTableContext.activeSorterType,
|
|
60
|
+
setActiveSorterColumn = _useTableContext.setActiveSorterColumn,
|
|
61
|
+
setActiveSorterType = _useTableContext.setActiveSorterType;
|
|
62
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
94
63
|
className: prefixCls
|
|
95
|
-
}, /*#__PURE__*/
|
|
64
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
96
65
|
className: classname.cx(prefixCls + "__icon", (_cx = {}, _cx[prefixCls + "__icon--active"] = activeSorterType === 'ascend' && activeSorterColumn === columnKey, _cx)),
|
|
97
66
|
onClick: function onClick(e) {
|
|
98
67
|
if (activeSorterType === 'ascend' && activeSorterColumn === columnKey) {
|
|
@@ -103,7 +72,7 @@ var SorterMenu = function SorterMenu(_ref2) {
|
|
|
103
72
|
setActiveSorterColumn(columnKey);
|
|
104
73
|
}
|
|
105
74
|
}
|
|
106
|
-
}, /*#__PURE__*/
|
|
75
|
+
}, /*#__PURE__*/React.createElement(icons.CaretUpFilled, null)), /*#__PURE__*/React.createElement("span", {
|
|
107
76
|
className: classname.cx(prefixCls + "__icon", (_cx2 = {}, _cx2[prefixCls + "__icon--active"] = activeSorterType === 'descend' && activeSorterColumn === columnKey, _cx2)),
|
|
108
77
|
onClick: function onClick(e) {
|
|
109
78
|
if (activeSorterType === 'descend' && activeSorterColumn === columnKey) {
|
|
@@ -114,47 +83,43 @@ var SorterMenu = function SorterMenu(_ref2) {
|
|
|
114
83
|
setActiveSorterColumn(columnKey);
|
|
115
84
|
}
|
|
116
85
|
}
|
|
117
|
-
}, /*#__PURE__*/
|
|
86
|
+
}, /*#__PURE__*/React.createElement(icons.CaretDownFilled, null)));
|
|
118
87
|
};
|
|
119
|
-
|
|
120
88
|
var FilterDropdown = function FilterDropdown(_ref3) {
|
|
121
89
|
var prefixCls = _ref3.prefixCls,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
90
|
+
column = _ref3.column,
|
|
91
|
+
_onOpen = _ref3.onOpen,
|
|
92
|
+
_onClose = _ref3.onClose;
|
|
125
93
|
var _column$raw2 = column.raw,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
94
|
+
filterIcon = _column$raw2.filterIcon,
|
|
95
|
+
filterDropdown = _column$raw2.filterDropdown,
|
|
96
|
+
filterDropdownWidth = _column$raw2.filterDropdownWidth,
|
|
97
|
+
filterDropdownVisible = _column$raw2.filterDropdownVisible,
|
|
98
|
+
filterDropdownOverlay = _column$raw2.filterDropdownOverlay,
|
|
99
|
+
onFilterDropdownVisibleChange = _column$raw2.onFilterDropdownVisibleChange,
|
|
100
|
+
filterDropdownClassName = _column$raw2.filterDropdownClassName;
|
|
134
101
|
var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
102
|
+
defaultVisible: false,
|
|
103
|
+
visible: filterDropdownVisible,
|
|
104
|
+
onOpen: function onOpen() {
|
|
105
|
+
_onOpen === null || _onOpen === void 0 ? void 0 : _onOpen();
|
|
106
|
+
onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(true, column.raw);
|
|
107
|
+
},
|
|
108
|
+
onClose: function onClose() {
|
|
109
|
+
_onClose === null || _onClose === void 0 ? void 0 : _onClose();
|
|
110
|
+
onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(false, column.raw);
|
|
111
|
+
}
|
|
112
|
+
}),
|
|
113
|
+
menuVisible = _useUncontrolledToggl[0],
|
|
114
|
+
menuVisibleAction = _useUncontrolledToggl[1];
|
|
115
|
+
var _React$useState = React.useState(null),
|
|
116
|
+
menuTrigger = _React$useState[0],
|
|
117
|
+
setMenuTrigger = _React$useState[1];
|
|
118
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
|
|
154
119
|
className: prefixCls + "__trigger",
|
|
155
120
|
ref: setMenuTrigger,
|
|
156
121
|
onClick: menuVisibleAction.not
|
|
157
|
-
}, filterIcon), /*#__PURE__*/
|
|
122
|
+
}, filterIcon), /*#__PURE__*/React.createElement(Popper, Object.assign({
|
|
158
123
|
className: prefixCls + "__popper",
|
|
159
124
|
// @DesignToken zIndex: `overlay`
|
|
160
125
|
zIndex: 1050
|
|
@@ -162,7 +127,7 @@ var FilterDropdown = function FilterDropdown(_ref3) {
|
|
|
162
127
|
visible: menuVisible,
|
|
163
128
|
attachEl: menuTrigger,
|
|
164
129
|
onClose: menuVisibleAction.off
|
|
165
|
-
}), /*#__PURE__*/
|
|
130
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
166
131
|
className: classname.cx(prefixCls + "__content", filterDropdownClassName),
|
|
167
132
|
style: {
|
|
168
133
|
width: filterDropdownWidth
|
|
@@ -172,7 +137,6 @@ var FilterDropdown = function FilterDropdown(_ref3) {
|
|
|
172
137
|
setFilterDropdownVisible: menuVisibleAction.set
|
|
173
138
|
}) : null)));
|
|
174
139
|
};
|
|
175
|
-
|
|
176
140
|
exports.FilterDropdown = FilterDropdown;
|
|
177
141
|
exports.SorterMenu = SorterMenu;
|
|
178
142
|
exports.renderFilter = renderFilter;
|