@hi-ui/table 4.1.2 → 4.1.3-alpha.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.
@@ -45,6 +45,12 @@ 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
+
48
54
  function _interopDefaultLegacy(e) {
49
55
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
50
56
  'default': e
@@ -61,7 +67,6 @@ var EMBED_DATA_KEY = "TABLE_EMBED_DATA_KEY_" + index.uuid();
61
67
  var DEFAULT_COLUMNS = [];
62
68
  var DEFAULT_DATA = [];
63
69
  var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
64
- // ********************** 内嵌式面板 *********************** //
65
70
  var _a$prefixCls = _a.prefixCls,
66
71
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
67
72
  _a$role = _a.role,
@@ -89,7 +94,9 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
89
94
  fixedColumnTrigger = _a$fixedColumnTrigger === void 0 ? 'auto' : _a$fixedColumnTrigger,
90
95
  emptyContent = _a.emptyContent,
91
96
  virtual = _a.virtual,
92
- 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"]);
97
+ needDoubleTable = _a.needDoubleTable,
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
100
 
94
101
  var _useEmbedExpand = useEmbedExpand.useEmbedExpand({
95
102
  defaultExpandedEmbedRowKeys: defaultExpandedEmbedRowKeys,
@@ -145,48 +152,70 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
145
152
 
146
153
  return columns;
147
154
  }, [embedExpandable, getEmbedPanelColumn, columns]);
148
- var i18n = core.useLocaleContext(); // 确保包含 avg 属性,且值为数字类型的字符串
149
-
150
- var avgRow = {
151
- id: 'avg',
152
- raw: {
153
- key: 'avg'
154
- }
155
- };
156
- var hasAvgColumn = false;
157
- columns.forEach(function (column, index$1) {
158
- if (index$1 === 0) {
159
- // @ts-ignore
160
- avgRow.raw[column.dataKey] = i18n.get('table.average');
161
- }
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
+ }
162
171
 
163
- if (index.checkNeedTotalOrEvg(data, column, 'avg')) {
164
- hasAvgColumn = true; // @ts-ignore
172
+ if (index.checkNeedTotalOrEvg(data, column, 'avg')) {
173
+ hasAvgColumn = true; // @ts-ignore
174
+ // @ts-ignore
165
175
 
166
- avgRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, true);
167
- }
168
- }); // 确保包含total属性,且值为数字类型的字符串
176
+ avgRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, true);
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
+ }
169
201
 
170
- var sumRow = {
171
- id: 'sum',
172
- raw: {
173
- key: 'sum'
174
- }
175
- };
176
- var hasSumColumn = false;
177
- columns.forEach(function (column, index$1) {
178
- if (index$1 === 0) {
179
- // @ts-ignore
180
- sumRow.raw[column.dataKey] = i18n.get('table.total');
181
- }
202
+ if (index.checkNeedTotalOrEvg(data, column, 'total')) {
203
+ hasSumColumn = true; // 获取当前数据最大小数点个数,并设置最后总和值小数点
204
+ // @ts-ignore
205
+ // 获取当前数据最大小数点个数,并设置最后总和值小数点
206
+ // @ts-ignore
182
207
 
183
- if (index.checkNeedTotalOrEvg(data, column, 'total')) {
184
- hasSumColumn = true; // 获取当前数据最大小数点个数,并设置最后总和值小数点
185
- // @ts-ignore
208
+ sumRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, false);
209
+ }
210
+ });
211
+ return {
212
+ sumRow: sumRow,
213
+ hasSumColumn: hasSumColumn
214
+ };
215
+ }, [columns, data, i18n]),
216
+ sumRow = _useMemo2.sumRow,
217
+ hasSumColumn = _useMemo2.hasSumColumn;
186
218
 
187
- sumRow.raw[column.dataKey] = index.getTotalOrEvgRowData(data, column, false);
188
- }
189
- });
190
219
  var providedValue = useTable.useTable(Object.assign(Object.assign({}, rest), {
191
220
  columns: mergedColumns,
192
221
  data: data,
@@ -199,11 +228,67 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
199
228
  leftFixedColumnsWidth = providedValue.leftFixedColumnsWidth,
200
229
  rightFixedColumnsWidth = providedValue.rightFixedColumnsWidth,
201
230
  scrollSize = providedValue.scrollSize,
202
- getTableHeaderProps = providedValue.getTableHeaderProps;
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
237
  var hasBorder = borderedProp !== null && borderedProp !== void 0 ? borderedProp : bordered;
204
238
  var extraHeader = extra && extra.header;
205
239
  var extraFooter = extra && extra.footer;
206
240
  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);
207
292
  var cls = classname.cx(prefixCls, className, hasBorder && prefixCls + "--bordered", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual");
208
293
  return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
209
294
  ref: ref,
@@ -227,37 +312,7 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
227
312
  hasSumColumn: hasSumColumn,
228
313
  virtual: virtual
229
314
  })
230
- }, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, getTableHeaderProps()), /*#__PURE__*/React__default["default"].createElement(TableHeader.TableHeader, {
231
- prefixCls: prefixCls + "-header"
232
- }), extraHeader ? /*#__PURE__*/React__default["default"].createElement("div", {
233
- style: {
234
- position: 'absolute',
235
- right: 0,
236
- zIndex: 11,
237
- bottom: 0,
238
- top: 0
239
- }
240
- }, extraHeader) : null), /*#__PURE__*/React__default["default"].createElement(TableBody.TableBody, {
241
- prefixCls: prefixCls,
242
- emptyContent: emptyContent
243
- })), (alwaysFixedColumn || scrollSize.scrollLeft > 0) && leftFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
244
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--left",
245
- style: {
246
- width: leftFixedColumnsWidth + 'px'
247
- }
248
- }) : null, (alwaysFixedColumn || scrollSize.scrollRight > 0) && rightFrozenColKeys.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
249
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--right",
250
- style: {
251
- width: rightFixedColumnsWidth + 'px'
252
- }
253
- }) : null), /*#__PURE__*/React__default["default"].createElement("div", {
254
- className: prefixCls + "-footer",
255
- style: stickyFooter ? {
256
- position: 'sticky',
257
- bottom: stickyFooterBottom // boxShadow: '0 5px 15px 0 rgba(0, 0, 0, 0.1)'
258
-
259
- } : undefined
260
- }, extraFooter));
315
+ }, renderTable()), renderFreezeShadow()), tableFooter);
261
316
  });
262
317
 
263
318
  if (env.__DEV__) {
@@ -0,0 +1,56 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var React = require('react');
19
+
20
+ var classname = require('@hi-ui/classname');
21
+
22
+ var env = require('@hi-ui/env');
23
+
24
+ var context = require('./context.js');
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 _prefix = classname.getPrefixCls('table-colgroup');
35
+
36
+ var ColGroupContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
37
+ var _ref$prefixCls = _ref.prefixCls,
38
+ prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls;
39
+
40
+ var _useTableContext = context.useTableContext(),
41
+ getColgroupProps = _useTableContext.getColgroupProps,
42
+ leafColumns = _useTableContext.leafColumns;
43
+
44
+ return /*#__PURE__*/React__default["default"].createElement("colgroup", null, leafColumns.map(function (col, idx) {
45
+ return /*#__PURE__*/React__default["default"].createElement("col", Object.assign({
46
+ key: idx,
47
+ className: prefixCls + "-col"
48
+ }, getColgroupProps(col, idx)));
49
+ }));
50
+ });
51
+
52
+ if (env.__DEV__) {
53
+ ColGroupContent.displayName = 'ColGroupContent';
54
+ }
55
+
56
+ exports.ColGroupContent = ColGroupContent;
package/lib/cjs/Table.js CHANGED
@@ -66,7 +66,13 @@ 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
+
69
74
 
75
+ var DOUBLE_TABLE_SCENE = ['maxHeight', 'sticky', 'stickyTop', 'setting', 'virtual'];
70
76
  var STANDARD_PRESET = {
71
77
  striped: true,
72
78
  bordered: true,
@@ -85,7 +91,6 @@ var DEFAULT_PAGINATION = {
85
91
  */
86
92
 
87
93
  var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
88
- // ************************ 预置标准模式 ************************ //
89
94
  var _a$prefixCls = _a.prefixCls,
90
95
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
91
96
  _a$standard = _a.standard,
@@ -108,8 +113,13 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
108
113
  extra = _a.extra,
109
114
  _a$data = _a.data,
110
115
  data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
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"]);
116
+ rest = tslib.__rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data"]); // 是否需要双表格
117
+
118
+
119
+ var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
120
+ return !!rest[prop];
121
+ });
122
+ var virtual = rest.virtual; // ************************ 预置标准模式 ************************ //
113
123
 
114
124
  var tableProps = reactUtils.withDefaultProps(rest, standard ? STANDARD_PRESET : undefined);
115
125
 
@@ -321,6 +331,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
321
331
  data: mergedData,
322
332
  fieldKey: fieldKey,
323
333
  virtual: virtual,
334
+ needDoubleTable: needDoubleTable,
324
335
  extra: Object.assign({
325
336
  header: setting ? /*#__PURE__*/React__default["default"].createElement(TableSettingMenu.TableSettingMenu, {
326
337
  prefixCls: prefixCls + "-setting",
@@ -27,12 +27,14 @@ 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
-
32
30
  var TableRow = require('./TableRow.js');
33
31
 
34
32
  var context = require('./context.js');
35
33
 
34
+ var ColGroupContent = require('./ColGroupContent.js');
35
+
36
+ var TbodyContent = require('./TbodyContent.js');
37
+
36
38
  function _interopDefaultLegacy(e) {
37
39
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
38
40
  'default': e
@@ -54,10 +56,8 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
54
56
 
55
57
  var _useTableContext = context.useTableContext(),
56
58
  columns = _useTableContext.columns,
57
- leafColumns = _useTableContext.leafColumns,
58
59
  isExpandTreeRows = _useTableContext.isExpandTreeRows,
59
60
  transitionData = _useTableContext.transitionData,
60
- getColgroupProps = _useTableContext.getColgroupProps,
61
61
  bodyTableRef = _useTableContext.bodyTableRef,
62
62
  scrollBodyElementRef = _useTableContext.scrollBodyElementRef,
63
63
  onTableBodyScroll = _useTableContext.onTableBodyScroll,
@@ -65,10 +65,6 @@ 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,
72
68
  colWidths = _useTableContext.colWidths,
73
69
  virtual = _useTableContext.virtual,
74
70
  measureRowElementRef = _useTableContext.measureRowElementRef;
@@ -157,7 +153,7 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
157
153
  rowData: row
158
154
  }, getRequiredProps(row.id))));
159
155
  }
160
- })) : renderEmptyContent(Object.assign({
156
+ })) : TbodyContent.renderEmptyContent(Object.assign({
161
157
  className: prefixCls + "-empty-content",
162
158
  colSpan: columns.length,
163
159
  emptyContent: emptyContent
@@ -181,65 +177,11 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
181
177
  style: {
182
178
  width: canScroll && scrollWidth !== undefined ? scrollWidth : '100%'
183
179
  }
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
- } : {})))));
180
+ }, /*#__PURE__*/React__default["default"].createElement(ColGroupContent.ColGroupContent, null), /*#__PURE__*/React__default["default"].createElement(TbodyContent.TbodyContent, null)));
216
181
  });
217
182
 
218
183
  if (env.__DEV__) {
219
184
  TableBody.displayName = 'TableBody';
220
185
  }
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
- };
244
186
 
245
187
  exports.TableBody = TableBody;
@@ -17,19 +17,15 @@ Object.defineProperty(exports, '__esModule', {
17
17
 
18
18
  var React = require('react');
19
19
 
20
- var reactResizable = require('react-resizable');
21
-
22
20
  var classname = require('@hi-ui/classname');
23
21
 
24
22
  var env = require('@hi-ui/env');
25
23
 
26
- var typeAssertion = require('@hi-ui/type-assertion');
27
-
28
24
  var context = require('./context.js');
29
25
 
30
- var TableAdvancedFilter = require('./TableAdvancedFilter.js');
26
+ var ColGroupContent = require('./ColGroupContent.js');
31
27
 
32
- var useCheckState = require('@hi-ui/use-check-state');
28
+ var TheadContent = require('./TheadContent.js');
33
29
 
34
30
  function _interopDefaultLegacy(e) {
35
31
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
@@ -47,21 +43,10 @@ var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
47
43
  className = _ref.className;
48
44
 
49
45
  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,
58
46
  onTableBodyScrollMock = _useTableContext.onTableBodyScrollMock,
59
47
  scrollHeaderElementRef = _useTableContext.scrollHeaderElementRef,
60
- leafColumns = _useTableContext.leafColumns,
61
- getTableHeaderProps = _useTableContext.getTableHeaderProps,
62
- showColMenu = _useTableContext.showColMenu;
48
+ getTableHeaderProps = _useTableContext.getTableHeaderProps;
63
49
 
64
- var activeColumnKeysAction = useCheckState.useCheckState();
65
50
  var cls = classname.cx(prefixCls, className);
66
51
  return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
67
52
  className: cls,
@@ -71,60 +56,9 @@ var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
71
56
  width: '100%',
72
57
  position: 'relative'
73
58
  }
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", {
59
+ }, /*#__PURE__*/React__default["default"].createElement(ColGroupContent.ColGroupContent, null), /*#__PURE__*/React__default["default"].createElement(TheadContent.TheadContent, {
80
60
  onWheel: onTableBodyScrollMock
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
- }))));
61
+ })));
128
62
  });
129
63
 
130
64
  if (env.__DEV__) {