@hi-ui/table 4.1.3-alpha.1 → 4.2.0
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 +13 -0
- package/lib/cjs/BaseTable.js +73 -127
- package/lib/cjs/Table.js +3 -14
- package/lib/cjs/TableBody.js +64 -6
- package/lib/cjs/TableHeader.js +71 -5
- package/lib/cjs/hooks/use-col-width.js +13 -11
- package/lib/cjs/styles/index.scss.js +1 -1
- package/lib/cjs/use-table.js +8 -18
- package/lib/esm/BaseTable.js +73 -124
- package/lib/esm/Table.js +3 -14
- package/lib/esm/TableBody.js +62 -3
- package/lib/esm/TableHeader.js +69 -5
- package/lib/esm/hooks/use-col-width.js +13 -11
- package/lib/esm/styles/index.scss.js +1 -1
- package/lib/esm/use-table.js +8 -18
- package/lib/types/BaseTable.d.ts +0 -4
- package/lib/types/context.d.ts +8 -8
- package/lib/types/use-table.d.ts +4 -4
- package/package.json +4 -4
- package/lib/cjs/ColGroupContent.js +0 -56
- package/lib/cjs/TbodyContent.js +0 -129
- package/lib/cjs/TheadContent.js +0 -115
- package/lib/esm/ColGroupContent.js +0 -37
- package/lib/esm/TbodyContent.js +0 -105
- package/lib/esm/TheadContent.js +0 -91
- package/lib/types/ColGroupContent.d.ts +0 -8
- package/lib/types/TbodyContent.d.ts +0 -18
- package/lib/types/TheadContent.d.ts +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @hi-ui/table
|
|
2
2
|
|
|
3
|
+
## 4.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2597](https://github.com/XiaoMi/hiui/pull/2597) [`0ddf24960`](https://github.com/XiaoMi/hiui/commit/0ddf24960194fdd15653e34e0a6cef54b1586748) Thanks [@zyprepare](https://github.com/zyprepare)! - chore: axios 升级为 1.5.0
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#2608](https://github.com/XiaoMi/hiui/pull/2608) [`fb9b1281d`](https://github.com/XiaoMi/hiui/commit/fb9b1281d99ba0d21b5cb32c87b5e671272c1c8e) Thanks [@zyprepare](https://github.com/zyprepare)! - fix: 修复紧凑模式下多选项间距问题
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`b3b36813a`](https://github.com/XiaoMi/hiui/commit/b3b36813a6968c5c96c39d1100935372e3aa5b4d)]:
|
|
14
|
+
- @hi-ui/select@4.2.0
|
|
15
|
+
|
|
3
16
|
## 4.1.2
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/lib/cjs/BaseTable.js
CHANGED
|
@@ -45,12 +45,6 @@ var useTable = require('./use-table.js');
|
|
|
45
45
|
|
|
46
46
|
var useEmbedExpand = require('./hooks/use-embed-expand.js');
|
|
47
47
|
|
|
48
|
-
var TheadContent = require('./TheadContent.js');
|
|
49
|
-
|
|
50
|
-
var ColGroupContent = require('./ColGroupContent.js');
|
|
51
|
-
|
|
52
|
-
var TbodyContent = require('./TbodyContent.js');
|
|
53
|
-
|
|
54
48
|
function _interopDefaultLegacy(e) {
|
|
55
49
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
56
50
|
'default': e
|
|
@@ -67,6 +61,7 @@ var EMBED_DATA_KEY = "TABLE_EMBED_DATA_KEY_" + index.uuid();
|
|
|
67
61
|
var DEFAULT_COLUMNS = [];
|
|
68
62
|
var DEFAULT_DATA = [];
|
|
69
63
|
var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
64
|
+
// ********************** 内嵌式面板 *********************** //
|
|
70
65
|
var _a$prefixCls = _a.prefixCls,
|
|
71
66
|
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
72
67
|
_a$role = _a.role,
|
|
@@ -84,7 +79,8 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
84
79
|
expandedEmbedRowKeys = _a.expandedEmbedRowKeys,
|
|
85
80
|
onEmbedExpand = _a.onEmbedExpand,
|
|
86
81
|
expandedRender = _a.expandedRender,
|
|
87
|
-
size = _a.size,
|
|
82
|
+
_a$size = _a.size,
|
|
83
|
+
size = _a$size === void 0 ? 'md' : _a$size,
|
|
88
84
|
extra = _a.extra,
|
|
89
85
|
onRow = _a.onRow,
|
|
90
86
|
stickyFooter = _a.stickyFooter,
|
|
@@ -94,9 +90,7 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
94
90
|
fixedColumnTrigger = _a$fixedColumnTrigger === void 0 ? 'auto' : _a$fixedColumnTrigger,
|
|
95
91
|
emptyContent = _a.emptyContent,
|
|
96
92
|
virtual = _a.virtual,
|
|
97
|
-
|
|
98
|
-
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "columns", "data", "striped", "bordered", "rowExpandable", "defaultExpandedEmbedRowKeys", "expandedEmbedRowKeys", "onEmbedExpand", "expandedRender", "size", "extra", "onRow", "onHeaderRow", "stickyFooter", "stickyFooterBottom", "fixedColumnTrigger", "emptyContent", "virtual", "needDoubleTable"]); // ********************** 内嵌式面板 *********************** //
|
|
99
|
-
|
|
93
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "columns", "data", "striped", "bordered", "rowExpandable", "defaultExpandedEmbedRowKeys", "expandedEmbedRowKeys", "onEmbedExpand", "expandedRender", "size", "extra", "onRow", "onHeaderRow", "stickyFooter", "stickyFooterBottom", "fixedColumnTrigger", "emptyContent", "virtual"]);
|
|
100
94
|
|
|
101
95
|
var _useEmbedExpand = useEmbedExpand.useEmbedExpand({
|
|
102
96
|
defaultExpandedEmbedRowKeys: defaultExpandedEmbedRowKeys,
|
|
@@ -152,70 +146,48 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
152
146
|
|
|
153
147
|
return columns;
|
|
154
148
|
}, [embedExpandable, getEmbedPanelColumn, columns]);
|
|
155
|
-
var i18n = core.useLocaleContext();
|
|
156
|
-
|
|
157
|
-
var _useMemo = React.useMemo(function () {
|
|
158
|
-
// 确保包含 avg 属性,且值为数字类型的字符串
|
|
159
|
-
var avgRow = {
|
|
160
|
-
id: 'avg',
|
|
161
|
-
raw: {
|
|
162
|
-
key: 'avg'
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
var hasAvgColumn = false;
|
|
166
|
-
columns.forEach(function (column, index$1) {
|
|
167
|
-
if (index$1 === 0) {
|
|
168
|
-
// @ts-ignore
|
|
169
|
-
avgRow.raw[column.dataKey] = i18n.get('table.average');
|
|
170
|
-
}
|
|
149
|
+
var i18n = core.useLocaleContext(); // 确保包含 avg 属性,且值为数字类型的字符串
|
|
171
150
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
151
|
+
var avgRow = {
|
|
152
|
+
id: 'avg',
|
|
153
|
+
raw: {
|
|
154
|
+
key: 'avg'
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
var hasAvgColumn = false;
|
|
158
|
+
columns.forEach(function (column, index$1) {
|
|
159
|
+
if (index$1 === 0) {
|
|
160
|
+
// @ts-ignore
|
|
161
|
+
avgRow.raw[column.dataKey] = i18n.get('table.average');
|
|
162
|
+
}
|
|
175
163
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
});
|
|
179
|
-
return {
|
|
180
|
-
avgRow: avgRow,
|
|
181
|
-
hasAvgColumn: hasAvgColumn
|
|
182
|
-
};
|
|
183
|
-
}, [columns, data, i18n]),
|
|
184
|
-
avgRow = _useMemo.avgRow,
|
|
185
|
-
hasAvgColumn = _useMemo.hasAvgColumn;
|
|
186
|
-
|
|
187
|
-
var _useMemo2 = React.useMemo(function () {
|
|
188
|
-
// 确保包含total属性,且值为数字类型的字符串
|
|
189
|
-
var sumRow = {
|
|
190
|
-
id: 'sum',
|
|
191
|
-
raw: {
|
|
192
|
-
key: 'sum'
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
var hasSumColumn = false;
|
|
196
|
-
columns.forEach(function (column, index$1) {
|
|
197
|
-
if (index$1 === 0) {
|
|
198
|
-
// @ts-ignore
|
|
199
|
-
sumRow.raw[column.dataKey] = i18n.get('table.total');
|
|
200
|
-
}
|
|
164
|
+
if (index.checkNeedTotalOrEvg(data, column, 'avg')) {
|
|
165
|
+
hasAvgColumn = true; // @ts-ignore
|
|
201
166
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
// 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
206
|
-
// @ts-ignore
|
|
167
|
+
avgRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, true);
|
|
168
|
+
}
|
|
169
|
+
}); // 确保包含total属性,且值为数字类型的字符串
|
|
207
170
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
171
|
+
var sumRow = {
|
|
172
|
+
id: 'sum',
|
|
173
|
+
raw: {
|
|
174
|
+
key: 'sum'
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
var hasSumColumn = false;
|
|
178
|
+
columns.forEach(function (column, index$1) {
|
|
179
|
+
if (index$1 === 0) {
|
|
180
|
+
// @ts-ignore
|
|
181
|
+
sumRow.raw[column.dataKey] = i18n.get('table.total');
|
|
182
|
+
}
|
|
218
183
|
|
|
184
|
+
if (index.checkNeedTotalOrEvg(data, column, 'total')) {
|
|
185
|
+
hasSumColumn = true; // 获取当前数据最大小数点个数,并设置最后总和值小数点
|
|
186
|
+
// @ts-ignore
|
|
187
|
+
|
|
188
|
+
sumRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, false);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
219
191
|
var providedValue = useTable.useTable(Object.assign(Object.assign({}, rest), {
|
|
220
192
|
columns: mergedColumns,
|
|
221
193
|
data: data,
|
|
@@ -228,67 +200,11 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
228
200
|
leftFixedColumnsWidth = providedValue.leftFixedColumnsWidth,
|
|
229
201
|
rightFixedColumnsWidth = providedValue.rightFixedColumnsWidth,
|
|
230
202
|
scrollSize = providedValue.scrollSize,
|
|
231
|
-
getTableHeaderProps = providedValue.getTableHeaderProps
|
|
232
|
-
scrollBodyElementRef = providedValue.scrollBodyElementRef,
|
|
233
|
-
onTableBodyScroll = providedValue.onTableBodyScroll,
|
|
234
|
-
canScroll = providedValue.canScroll,
|
|
235
|
-
bodyTableRef = providedValue.bodyTableRef,
|
|
236
|
-
scrollWidth = providedValue.scrollWidth;
|
|
203
|
+
getTableHeaderProps = providedValue.getTableHeaderProps;
|
|
237
204
|
var hasBorder = borderedProp !== null && borderedProp !== void 0 ? borderedProp : bordered;
|
|
238
205
|
var extraHeader = extra && extra.header;
|
|
239
206
|
var extraFooter = extra && extra.footer;
|
|
240
207
|
var alwaysFixedColumn = fixedColumnTrigger === 'always';
|
|
241
|
-
|
|
242
|
-
var renderTable = function renderTable() {
|
|
243
|
-
return needDoubleTable ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, getTableHeaderProps()), /*#__PURE__*/React__default["default"].createElement(TableHeader.TableHeader, null), extraHeader ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
244
|
-
style: {
|
|
245
|
-
position: 'absolute',
|
|
246
|
-
right: 0,
|
|
247
|
-
zIndex: 11,
|
|
248
|
-
bottom: 0,
|
|
249
|
-
top: 0
|
|
250
|
-
}
|
|
251
|
-
}, extraHeader) : null), /*#__PURE__*/React__default["default"].createElement(TableBody.TableBody, {
|
|
252
|
-
emptyContent: emptyContent
|
|
253
|
-
})) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
254
|
-
ref: scrollBodyElementRef,
|
|
255
|
-
className: prefixCls + "-content",
|
|
256
|
-
onScroll: onTableBodyScroll,
|
|
257
|
-
style: {
|
|
258
|
-
// 表格宽度大于div宽度才出现横向滚动条
|
|
259
|
-
overflowX: canScroll ? 'scroll' : undefined
|
|
260
|
-
}
|
|
261
|
-
}, /*#__PURE__*/React__default["default"].createElement("table", {
|
|
262
|
-
ref: bodyTableRef,
|
|
263
|
-
style: {
|
|
264
|
-
width: canScroll && scrollWidth !== undefined ? scrollWidth : '100%'
|
|
265
|
-
}
|
|
266
|
-
}, /*#__PURE__*/React__default["default"].createElement(ColGroupContent.ColGroupContent, null), /*#__PURE__*/React__default["default"].createElement(TheadContent.TheadContent, null), /*#__PURE__*/React__default["default"].createElement(TbodyContent.TbodyContent, {
|
|
267
|
-
emptyContent: emptyContent
|
|
268
|
-
})));
|
|
269
|
-
};
|
|
270
|
-
|
|
271
|
-
var renderFreezeShadow = function renderFreezeShadow() {
|
|
272
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (alwaysFixedColumn || scrollSize.scrollLeft > 0) && leftFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
273
|
-
className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--left",
|
|
274
|
-
style: {
|
|
275
|
-
width: leftFixedColumnsWidth + 'px'
|
|
276
|
-
}
|
|
277
|
-
}) : null, (alwaysFixedColumn || scrollSize.scrollRight > 0) && rightFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
278
|
-
className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--right",
|
|
279
|
-
style: {
|
|
280
|
-
width: rightFixedColumnsWidth + 'px'
|
|
281
|
-
}
|
|
282
|
-
}) : null);
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
var tableFooter = /*#__PURE__*/React__default["default"].createElement("div", {
|
|
286
|
-
className: prefixCls + "-footer",
|
|
287
|
-
style: stickyFooter ? {
|
|
288
|
-
position: 'sticky',
|
|
289
|
-
bottom: stickyFooterBottom
|
|
290
|
-
} : undefined
|
|
291
|
-
}, extraFooter);
|
|
292
208
|
var cls = classname.cx(prefixCls, className, hasBorder && prefixCls + "--bordered", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual");
|
|
293
209
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
294
210
|
ref: ref,
|
|
@@ -312,7 +228,37 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
312
228
|
hasSumColumn: hasSumColumn,
|
|
313
229
|
virtual: virtual
|
|
314
230
|
})
|
|
315
|
-
},
|
|
231
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, getTableHeaderProps()), /*#__PURE__*/React__default["default"].createElement(TableHeader.TableHeader, {
|
|
232
|
+
prefixCls: prefixCls + "-header"
|
|
233
|
+
}), extraHeader ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
234
|
+
style: {
|
|
235
|
+
position: 'absolute',
|
|
236
|
+
right: 0,
|
|
237
|
+
zIndex: 11,
|
|
238
|
+
bottom: 0,
|
|
239
|
+
top: 0
|
|
240
|
+
}
|
|
241
|
+
}, extraHeader) : null), /*#__PURE__*/React__default["default"].createElement(TableBody.TableBody, {
|
|
242
|
+
prefixCls: prefixCls,
|
|
243
|
+
emptyContent: emptyContent
|
|
244
|
+
})), (alwaysFixedColumn || scrollSize.scrollLeft > 0) && leftFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
245
|
+
className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--left",
|
|
246
|
+
style: {
|
|
247
|
+
width: leftFixedColumnsWidth + 'px'
|
|
248
|
+
}
|
|
249
|
+
}) : null, (alwaysFixedColumn || scrollSize.scrollRight > 0) && rightFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
250
|
+
className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--right",
|
|
251
|
+
style: {
|
|
252
|
+
width: rightFixedColumnsWidth + 'px'
|
|
253
|
+
}
|
|
254
|
+
}) : null), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
255
|
+
className: prefixCls + "-footer",
|
|
256
|
+
style: stickyFooter ? {
|
|
257
|
+
position: 'sticky',
|
|
258
|
+
bottom: stickyFooterBottom // boxShadow: '0 5px 15px 0 rgba(0, 0, 0, 0.1)'
|
|
259
|
+
|
|
260
|
+
} : undefined
|
|
261
|
+
}, extraFooter));
|
|
316
262
|
});
|
|
317
263
|
|
|
318
264
|
if (env.__DEV__) {
|
package/lib/cjs/Table.js
CHANGED
|
@@ -66,13 +66,7 @@ var Loading__default = /*#__PURE__*/_interopDefaultLegacy(Loading);
|
|
|
66
66
|
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
|
67
67
|
|
|
68
68
|
var _prefix = classname.getPrefixCls('table');
|
|
69
|
-
/**
|
|
70
|
-
* 需要使用双表格的场景对应的 API
|
|
71
|
-
* 这些场景下的功能无法通过单表格实现,故而设计成双表格,即表头和表体分别用一个 table 实现
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
69
|
|
|
75
|
-
var DOUBLE_TABLE_SCENE = ['maxHeight', 'sticky', 'stickyTop', 'setting', 'virtual'];
|
|
76
70
|
var STANDARD_PRESET = {
|
|
77
71
|
striped: true,
|
|
78
72
|
bordered: true,
|
|
@@ -91,6 +85,7 @@ var DEFAULT_PAGINATION = {
|
|
|
91
85
|
*/
|
|
92
86
|
|
|
93
87
|
var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
88
|
+
// ************************ 预置标准模式 ************************ //
|
|
94
89
|
var _a$prefixCls = _a.prefixCls,
|
|
95
90
|
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
96
91
|
_a$standard = _a.standard,
|
|
@@ -113,13 +108,8 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
113
108
|
extra = _a.extra,
|
|
114
109
|
_a$data = _a.data,
|
|
115
110
|
data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
|
|
120
|
-
return !!rest[prop];
|
|
121
|
-
});
|
|
122
|
-
var virtual = rest.virtual; // ************************ 预置标准模式 ************************ //
|
|
111
|
+
virtual = _a.virtual,
|
|
112
|
+
rest = tslib.__rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data", "virtual"]);
|
|
123
113
|
|
|
124
114
|
var tableProps = reactUtils.withDefaultProps(rest, standard ? STANDARD_PRESET : undefined);
|
|
125
115
|
|
|
@@ -331,7 +321,6 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
331
321
|
data: mergedData,
|
|
332
322
|
fieldKey: fieldKey,
|
|
333
323
|
virtual: virtual,
|
|
334
|
-
needDoubleTable: needDoubleTable,
|
|
335
324
|
extra: Object.assign({
|
|
336
325
|
header: setting ? /*#__PURE__*/React__default["default"].createElement(TableSettingMenu.TableSettingMenu, {
|
|
337
326
|
prefixCls: prefixCls + "-setting",
|
package/lib/cjs/TableBody.js
CHANGED
|
@@ -27,14 +27,12 @@ var useLatest = require('@hi-ui/use-latest');
|
|
|
27
27
|
|
|
28
28
|
var typeAssertion = require('@hi-ui/type-assertion');
|
|
29
29
|
|
|
30
|
+
var emptyState = require('@hi-ui/empty-state');
|
|
31
|
+
|
|
30
32
|
var TableRow = require('./TableRow.js');
|
|
31
33
|
|
|
32
34
|
var context = require('./context.js');
|
|
33
35
|
|
|
34
|
-
var ColGroupContent = require('./ColGroupContent.js');
|
|
35
|
-
|
|
36
|
-
var TbodyContent = require('./TbodyContent.js');
|
|
37
|
-
|
|
38
36
|
function _interopDefaultLegacy(e) {
|
|
39
37
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
40
38
|
'default': e
|
|
@@ -56,8 +54,10 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
56
54
|
|
|
57
55
|
var _useTableContext = context.useTableContext(),
|
|
58
56
|
columns = _useTableContext.columns,
|
|
57
|
+
leafColumns = _useTableContext.leafColumns,
|
|
59
58
|
isExpandTreeRows = _useTableContext.isExpandTreeRows,
|
|
60
59
|
transitionData = _useTableContext.transitionData,
|
|
60
|
+
getColgroupProps = _useTableContext.getColgroupProps,
|
|
61
61
|
bodyTableRef = _useTableContext.bodyTableRef,
|
|
62
62
|
scrollBodyElementRef = _useTableContext.scrollBodyElementRef,
|
|
63
63
|
onTableBodyScroll = _useTableContext.onTableBodyScroll,
|
|
@@ -65,6 +65,10 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
65
65
|
maxHeight = _useTableContext.maxHeight,
|
|
66
66
|
canScroll = _useTableContext.canScroll,
|
|
67
67
|
scrollWidth = _useTableContext.scrollWidth,
|
|
68
|
+
hasAvgColumn = _useTableContext.hasAvgColumn,
|
|
69
|
+
avgRow = _useTableContext.avgRow,
|
|
70
|
+
hasSumColumn = _useTableContext.hasSumColumn,
|
|
71
|
+
sumRow = _useTableContext.sumRow,
|
|
68
72
|
colWidths = _useTableContext.colWidths,
|
|
69
73
|
virtual = _useTableContext.virtual,
|
|
70
74
|
measureRowElementRef = _useTableContext.measureRowElementRef;
|
|
@@ -153,7 +157,7 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
153
157
|
rowData: row
|
|
154
158
|
}, getRequiredProps(row.id))));
|
|
155
159
|
}
|
|
156
|
-
})) :
|
|
160
|
+
})) : renderEmptyContent(Object.assign({
|
|
157
161
|
className: prefixCls + "-empty-content",
|
|
158
162
|
colSpan: columns.length,
|
|
159
163
|
emptyContent: emptyContent
|
|
@@ -177,11 +181,65 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
177
181
|
style: {
|
|
178
182
|
width: canScroll && scrollWidth !== undefined ? scrollWidth : '100%'
|
|
179
183
|
}
|
|
180
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
184
|
+
}, /*#__PURE__*/React__default["default"].createElement("colgroup", null, leafColumns.map(function (col, idx) {
|
|
185
|
+
return /*#__PURE__*/React__default["default"].createElement("col", Object.assign({
|
|
186
|
+
key: idx,
|
|
187
|
+
className: prefixCls + "-col"
|
|
188
|
+
}, getColgroupProps(col, idx)));
|
|
189
|
+
})), /*#__PURE__*/React__default["default"].createElement("tbody", null, typeAssertion.isArrayNonEmpty(transitionData) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, transitionData.map(function (row, index) {
|
|
190
|
+
return /*#__PURE__*/React__default["default"].createElement(TableRow.TableRow, Object.assign({
|
|
191
|
+
ref: index === 0 ? measureRowElementRef : null,
|
|
192
|
+
// key={depth + index}
|
|
193
|
+
key: row.id,
|
|
194
|
+
// @ts-ignore
|
|
195
|
+
rowIndex: index,
|
|
196
|
+
rowData: row
|
|
197
|
+
}, getRequiredProps(row.id)));
|
|
198
|
+
}), hasSumColumn ? /*#__PURE__*/React__default["default"].createElement(TableRow.TableRow, {
|
|
199
|
+
key: sumRow.id,
|
|
200
|
+
rowIndex: transitionData.length,
|
|
201
|
+
rowData: sumRow,
|
|
202
|
+
isSumRow: true
|
|
203
|
+
}) : null, hasAvgColumn ? /*#__PURE__*/React__default["default"].createElement(TableRow.TableRow, {
|
|
204
|
+
key: avgRow.id,
|
|
205
|
+
rowIndex: transitionData.length + 1,
|
|
206
|
+
rowData: avgRow,
|
|
207
|
+
isAvgRow: true
|
|
208
|
+
}) : null) : // 空状态,colSpan 占满表格整行
|
|
209
|
+
renderEmptyContent(Object.assign({
|
|
210
|
+
className: prefixCls + "-empty-content",
|
|
211
|
+
colSpan: columns.length,
|
|
212
|
+
emptyContent: emptyContent
|
|
213
|
+
}, scrollBodyElementRef.current ? {
|
|
214
|
+
scrollBodyWidth: window.getComputedStyle(scrollBodyElementRef.current).getPropertyValue('width')
|
|
215
|
+
} : {})))));
|
|
181
216
|
});
|
|
182
217
|
|
|
183
218
|
if (env.__DEV__) {
|
|
184
219
|
TableBody.displayName = 'TableBody';
|
|
185
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* 负责空状态渲染
|
|
223
|
+
*/
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
var renderEmptyContent = function renderEmptyContent(_ref2) {
|
|
227
|
+
var className = _ref2.className,
|
|
228
|
+
colSpan = _ref2.colSpan,
|
|
229
|
+
emptyContent = _ref2.emptyContent,
|
|
230
|
+
scrollBodyWidth = _ref2.scrollBodyWidth;
|
|
231
|
+
return /*#__PURE__*/React__default["default"].createElement("tr", {
|
|
232
|
+
className: className
|
|
233
|
+
}, /*#__PURE__*/React__default["default"].createElement("td", {
|
|
234
|
+
colSpan: colSpan
|
|
235
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
236
|
+
style: {
|
|
237
|
+
position: 'sticky',
|
|
238
|
+
left: 0,
|
|
239
|
+
width: scrollBodyWidth !== null && scrollBodyWidth !== void 0 ? scrollBodyWidth : '100%',
|
|
240
|
+
overflow: 'hidden'
|
|
241
|
+
}
|
|
242
|
+
}, emptyContent || /*#__PURE__*/React__default["default"].createElement(emptyState.EmptyState, null))));
|
|
243
|
+
};
|
|
186
244
|
|
|
187
245
|
exports.TableBody = TableBody;
|
package/lib/cjs/TableHeader.js
CHANGED
|
@@ -17,15 +17,19 @@ Object.defineProperty(exports, '__esModule', {
|
|
|
17
17
|
|
|
18
18
|
var React = require('react');
|
|
19
19
|
|
|
20
|
+
var reactResizable = require('react-resizable');
|
|
21
|
+
|
|
20
22
|
var classname = require('@hi-ui/classname');
|
|
21
23
|
|
|
22
24
|
var env = require('@hi-ui/env');
|
|
23
25
|
|
|
26
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
|
27
|
+
|
|
24
28
|
var context = require('./context.js');
|
|
25
29
|
|
|
26
|
-
var
|
|
30
|
+
var TableAdvancedFilter = require('./TableAdvancedFilter.js');
|
|
27
31
|
|
|
28
|
-
var
|
|
32
|
+
var useCheckState = require('@hi-ui/use-check-state');
|
|
29
33
|
|
|
30
34
|
function _interopDefaultLegacy(e) {
|
|
31
35
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
@@ -43,10 +47,21 @@ var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
43
47
|
className = _ref.className;
|
|
44
48
|
|
|
45
49
|
var _useTableContext = context.useTableContext(),
|
|
50
|
+
groupedColumns = _useTableContext.groupedColumns,
|
|
51
|
+
resizable = _useTableContext.resizable,
|
|
52
|
+
colWidths = _useTableContext.colWidths,
|
|
53
|
+
isHoveredHighlightCol = _useTableContext.isHoveredHighlightCol,
|
|
54
|
+
isHighlightedCol = _useTableContext.isHighlightedCol,
|
|
55
|
+
getColgroupProps = _useTableContext.getColgroupProps,
|
|
56
|
+
onColumnResizable = _useTableContext.onColumnResizable,
|
|
57
|
+
getStickyColProps = _useTableContext.getStickyColProps,
|
|
46
58
|
onTableBodyScrollMock = _useTableContext.onTableBodyScrollMock,
|
|
47
59
|
scrollHeaderElementRef = _useTableContext.scrollHeaderElementRef,
|
|
48
|
-
|
|
60
|
+
leafColumns = _useTableContext.leafColumns,
|
|
61
|
+
getTableHeaderProps = _useTableContext.getTableHeaderProps,
|
|
62
|
+
showColMenu = _useTableContext.showColMenu;
|
|
49
63
|
|
|
64
|
+
var activeColumnKeysAction = useCheckState.useCheckState();
|
|
50
65
|
var cls = classname.cx(prefixCls, className);
|
|
51
66
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
52
67
|
className: cls,
|
|
@@ -56,9 +71,60 @@ var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
56
71
|
width: '100%',
|
|
57
72
|
position: 'relative'
|
|
58
73
|
}
|
|
59
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
74
|
+
}, /*#__PURE__*/React__default["default"].createElement("colgroup", null, leafColumns.map(function (col, idx) {
|
|
75
|
+
return /*#__PURE__*/React__default["default"].createElement("col", Object.assign({
|
|
76
|
+
key: idx,
|
|
77
|
+
className: prefixCls + "-col"
|
|
78
|
+
}, getColgroupProps(col, idx)));
|
|
79
|
+
})), /*#__PURE__*/React__default["default"].createElement("thead", {
|
|
60
80
|
onWheel: onTableBodyScrollMock
|
|
61
|
-
})
|
|
81
|
+
}, groupedColumns.map(function (cols, colsIndex) {
|
|
82
|
+
return /*#__PURE__*/React__default["default"].createElement("tr", {
|
|
83
|
+
key: colsIndex
|
|
84
|
+
}, cols.map(function (col, colIndex) {
|
|
85
|
+
var _ref2 = col || {},
|
|
86
|
+
dataKey = _ref2.dataKey,
|
|
87
|
+
title = _ref2.title,
|
|
88
|
+
raw = _ref2.raw;
|
|
89
|
+
|
|
90
|
+
var titleContent = typeAssertion.isFunction(title) ? title(col) : title;
|
|
91
|
+
var cell = /*#__PURE__*/React__default["default"].createElement("th", Object.assign({
|
|
92
|
+
key: dataKey
|
|
93
|
+
}, getStickyColProps(col), {
|
|
94
|
+
className: classname.cx(prefixCls + "-cell", raw.className, isHighlightedCol(dataKey) && prefixCls + "-cell__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "-cell__col--hovered-highlight", activeColumnKeysAction.has(dataKey) && prefixCls + "-cell__col--active"),
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
colSpan: col.colSpan,
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
rowSpan: col.rowSpan
|
|
99
|
+
}), titleContent, TableAdvancedFilter.renderFilter({
|
|
100
|
+
prefixCls: prefixCls + "-filter",
|
|
101
|
+
columnKey: dataKey,
|
|
102
|
+
showColMenu: showColMenu,
|
|
103
|
+
column: col,
|
|
104
|
+
onOpen: function onOpen() {
|
|
105
|
+
return activeColumnKeysAction.add(dataKey);
|
|
106
|
+
},
|
|
107
|
+
onClose: function onClose() {
|
|
108
|
+
return activeColumnKeysAction.remove(dataKey);
|
|
109
|
+
}
|
|
110
|
+
}));
|
|
111
|
+
return resizable && colIndex !== colWidths.length - 1 ? /*#__PURE__*/React__default["default"].createElement(reactResizable.Resizable, {
|
|
112
|
+
key: colIndex,
|
|
113
|
+
className: prefixCls + "__resizable",
|
|
114
|
+
draggableOpts: {
|
|
115
|
+
enableUserSelectHack: false
|
|
116
|
+
},
|
|
117
|
+
handle: /*#__PURE__*/React__default["default"].createElement("span", {
|
|
118
|
+
className: prefixCls + "__resizable-handle"
|
|
119
|
+
}),
|
|
120
|
+
height: 0,
|
|
121
|
+
width: colWidths[colIndex],
|
|
122
|
+
onResize: function onResize(evt, options) {
|
|
123
|
+
onColumnResizable(evt, options, colIndex);
|
|
124
|
+
}
|
|
125
|
+
}, cell) : cell;
|
|
126
|
+
}));
|
|
127
|
+
}))));
|
|
62
128
|
});
|
|
63
129
|
|
|
64
130
|
if (env.__DEV__) {
|
|
@@ -90,17 +90,19 @@ var useColWidth = function useColWidth(_ref) {
|
|
|
90
90
|
var _resizeObserver = new ResizeObserver(function () {
|
|
91
91
|
if (virtual) {
|
|
92
92
|
setColWidths(getVirtualWidths());
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
93
|
+
} else {
|
|
94
|
+
if (measureRowElement.childNodes) {
|
|
95
|
+
var _realColumnsWidth = Array.from(measureRowElement.childNodes).map(function (node) {
|
|
96
|
+
return node.getBoundingClientRect().width || 0;
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
if (_realColumnsWidth.some(function (width) {
|
|
100
|
+
return width && width > 0;
|
|
101
|
+
})) {
|
|
102
|
+
setColWidths(_realColumnsWidth);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
104
106
|
});
|
|
105
107
|
|
|
106
108
|
_resizeObserver.observe(measureRowElement);
|