@hi-ui/table 5.0.0-experimental.1 → 5.0.0-experimental.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 CHANGED
@@ -1,5 +1,36 @@
1
1
  # @hi-ui/table
2
2
 
3
+ ## 5.0.0-experimental.2
4
+
5
+ ### Minor Changes
6
+
7
+ - 59cef699f: feat: 组件语义化样式改造,增加 styles 和 classNames 属性 (5.0)
8
+
9
+ ### Patch Changes
10
+
11
+ - eb17c4697: style: 修复 UI/样式问题 (5.0)
12
+ - Updated dependencies [7f204c892]
13
+ - Updated dependencies [eb17c4697]
14
+ - Updated dependencies [eb17c4697]
15
+ - Updated dependencies [c407744fe]
16
+ - Updated dependencies [ec647a5ee]
17
+ - Updated dependencies [59cef699f]
18
+ - @hi-ui/icons@5.0.0-experimental.1
19
+ - @hi-ui/core@5.0.0-experimental.1
20
+ - @hi-ui/button@5.0.0-experimental.1
21
+ - @hi-ui/checkbox@5.0.0-experimental.1
22
+ - @hi-ui/drawer@5.0.0-experimental.1
23
+ - @hi-ui/empty-state@5.0.0-experimental.1
24
+ - @hi-ui/icon-button@5.0.0-experimental.1
25
+ - @hi-ui/loading@5.0.0-experimental.1
26
+ - @hi-ui/pagination@5.0.0-experimental.1
27
+ - @hi-ui/popper@5.0.0-experimental.1
28
+ - @hi-ui/radio@5.0.0-experimental.1
29
+ - @hi-ui/scrollbar@5.0.0-experimental.1
30
+ - @hi-ui/select@5.0.0-experimental.2
31
+ - @hi-ui/use-merge-semantic@5.0.0-experimental.0
32
+ - @hi-ui/spinner@5.0.0-experimental.1
33
+
3
34
  ## 5.0.0-experimental.1
4
35
 
5
36
  ### Patch Changes
@@ -78,7 +78,9 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
78
78
  onResizeStop = _a.onResizeStop,
79
79
  fixedToRow = _a.fixedToRow,
80
80
  onScroll = _a.onScroll,
81
- 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", "onResizeStop", "fixedToRow", "onScroll"]);
81
+ classNames = _a.classNames,
82
+ styles = _a.styles,
83
+ 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", "onResizeStop", "fixedToRow", "onScroll", "classNames", "styles"]);
82
84
  var _useGlobalContext = core.useGlobalContext(),
83
85
  globalSize = _useGlobalContext.size;
84
86
  var size = (_b = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _b !== void 0 ? _b : 'md';
@@ -247,7 +249,8 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
247
249
  style = _a2.style,
248
250
  restTableHeaderProps = tslib.__rest(_a2, ["style"]);
249
251
  var doubleTableContent = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, restTableHeaderProps, {
250
- style: Object.assign(Object.assign({}, style), {
252
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.content,
253
+ style: Object.assign(Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.content), {
251
254
  overflow: undefined
252
255
  })
253
256
  }), /*#__PURE__*/React__default["default"].createElement(TableHeader.TableHeader, null), extraHeader ? ( /*#__PURE__*/React__default["default"].createElement("div", {
@@ -265,21 +268,22 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
265
268
  }
266
269
  var tableContent = /*#__PURE__*/React__default["default"].createElement("table", {
267
270
  ref: bodyTableRef,
268
- style: {
271
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.table,
272
+ style: Object.assign({
269
273
  width: canScroll && scrollWidth !== undefined ? scrollWidth : '100%'
270
- }
274
+ }, styles === null || styles === void 0 ? void 0 : styles.table)
271
275
  }, /*#__PURE__*/React__default["default"].createElement(ColGroupContent.ColGroupContent, null), /*#__PURE__*/React__default["default"].createElement(TheadContent.TheadContent, null), /*#__PURE__*/React__default["default"].createElement(TbodyContent.TbodyContent, {
272
276
  emptyContent: emptyContent
273
277
  }));
274
278
  var singleTableContent = /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
275
- className: prefixCls + "-content"
276
- }, !scrollbar ? {
277
- ref: scrollBodyElementRef,
278
- onScroll: onTableBodyScroll,
279
- style: {
279
+ className: classname.cx(prefixCls + "-content", classNames === null || classNames === void 0 ? void 0 : classNames.content),
280
+ style: Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.content), !scrollbar ? {
280
281
  // 表格宽度大于div宽度才出现横向滚动条
281
282
  overflowX: canScroll ? 'scroll' : undefined
282
- }
283
+ } : {})
284
+ }, !scrollbar ? {
285
+ ref: scrollBodyElementRef,
286
+ onScroll: onTableBodyScroll
283
287
  } : {}), !scrollbar ? tableContent : ( /*#__PURE__*/React__default["default"].createElement(Scrollbar__default["default"], Object.assign({
284
288
  ref: scrollBodyElementRef,
285
289
  onScroll: onTableBodyScroll
@@ -288,32 +292,35 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
288
292
  };
289
293
  var renderFreezeShadow = function renderFreezeShadow() {
290
294
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (alwaysFixedColumn || scrollSize.scrollLeft > 0) && leftFrozenColKeys.length > 0 ? ( /*#__PURE__*/React__default["default"].createElement("div", {
291
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--left",
292
- style: {
295
+ className: classname.cx(prefixCls + "-freeze-shadow", prefixCls + "-freeze-shadow--left", classNames === null || classNames === void 0 ? void 0 : classNames.freezeShadowLeft),
296
+ style: Object.assign({
293
297
  width: leftFixedColumnsWidth + 'px'
294
- }
298
+ }, styles === null || styles === void 0 ? void 0 : styles.freezeShadowLeft)
295
299
  })) : null, (alwaysFixedColumn || scrollSize.scrollRight > 0) && rightFrozenColKeys.length > 0 ? ( /*#__PURE__*/React__default["default"].createElement("div", {
296
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--right",
297
- style: {
300
+ className: classname.cx(prefixCls + "-freeze-shadow", prefixCls + "-freeze-shadow--right", classNames === null || classNames === void 0 ? void 0 : classNames.freezeShadowRight),
301
+ style: Object.assign({
298
302
  width: rightFixedColumnsWidth + 'px'
299
- }
303
+ }, styles === null || styles === void 0 ? void 0 : styles.freezeShadowRight)
300
304
  })) : null);
301
305
  };
302
306
  var tableFooter = /*#__PURE__*/React__default["default"].createElement("div", {
303
- className: prefixCls + "-footer",
304
- style: stickyFooter ? {
307
+ className: classname.cx(prefixCls + "-footer", classNames === null || classNames === void 0 ? void 0 : classNames.footer),
308
+ style: Object.assign(Object.assign({}, stickyFooter ? {
305
309
  position: 'sticky',
306
310
  bottom: stickyFooterBottom
307
- } : undefined
311
+ } : {}), styles === null || styles === void 0 ? void 0 : styles.footer)
308
312
  }, typeAssertion.isFunction(footerRender) ? footerRender( /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, extraFooter)) : extraFooter);
309
- var cls = classname.cx(prefixCls, className, hasBorder && prefixCls + "--bordered", (hasScrollToLeft || hasLeftFixedColumns) && data.length > 0 && prefixCls + "--bordered-left-none", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual", data.length === 0 && prefixCls + "--empty", prefixCls + "--" + (needDoubleTable ? 'double' : 'single'), stretchHeight && prefixCls + "--stretch-height");
313
+ var cls = classname.cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.root, hasBorder && prefixCls + "--bordered", (hasScrollToLeft || hasLeftFixedColumns) && data.length > 0 && prefixCls + "--bordered-left-none", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual", data.length === 0 && prefixCls + "--empty", prefixCls + "--" + (needDoubleTable ? 'double' : 'single'), stretchHeight && prefixCls + "--stretch-height");
310
314
  return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
311
315
  ref: ref,
312
316
  role: role,
313
317
  className: cls
314
- }, rootProps), /*#__PURE__*/React__default["default"].createElement("div", {
318
+ }, rootProps, {
319
+ style: styles === null || styles === void 0 ? void 0 : styles.root
320
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
315
321
  ref: wrapperRef,
316
- className: classname.cx(prefixCls + "__wrapper", isTableContentExceedWrapperHeight && prefixCls + "--exceed-wrapper-height")
322
+ className: classname.cx(prefixCls + "__wrapper", classNames === null || classNames === void 0 ? void 0 : classNames.wrapper, isTableContentExceedWrapperHeight && prefixCls + "--exceed-wrapper-height"),
323
+ style: styles === null || styles === void 0 ? void 0 : styles.wrapper
317
324
  }, /*#__PURE__*/React__default["default"].createElement(context.TableProvider, {
318
325
  value: Object.assign(Object.assign({}, providedValue), {
319
326
  striped: striped,
@@ -331,7 +338,9 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
331
338
  virtual: virtual,
332
339
  onScroll: onScroll,
333
340
  onResizeStop: onResizeStop,
334
- fixedToRow: fixedToRow
341
+ fixedToRow: fixedToRow,
342
+ semanticClassNames: classNames,
343
+ semanticStyles: styles
335
344
  })
336
345
  }, renderTable()), renderFreezeShadow()), tableFooter);
337
346
  });
package/lib/cjs/Table.js CHANGED
@@ -17,6 +17,8 @@ var tslib = require('tslib');
17
17
  var React = require('react');
18
18
  var classname = require('@hi-ui/classname');
19
19
  var env = require('@hi-ui/env');
20
+ var core = require('@hi-ui/core');
21
+ var useMergeSemantic = require('@hi-ui/use-merge-semantic');
20
22
  var Pagination = require('@hi-ui/pagination');
21
23
  var useColHidden = require('./hooks/use-col-hidden.js');
22
24
  var useColSorter = require('./hooks/use-col-sorter.js');
@@ -88,7 +90,23 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
88
90
  _a$data = _a.data,
89
91
  data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
90
92
  onScroll = _a.onScroll,
91
- rest = tslib.__rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data", "onScroll"]);
93
+ classNamesProp = _a.classNames,
94
+ stylesProp = _a.styles,
95
+ rest = tslib.__rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data", "onScroll", "classNames", "styles"]);
96
+ var globalContext = core.useGlobalContext();
97
+ var tableConfig = globalContext.table;
98
+ var _useMergeSemantic = useMergeSemantic.useMergeSemantic({
99
+ classNamesList: [tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.classNames, classNamesProp],
100
+ stylesList: [tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.styles, stylesProp],
101
+ info: {
102
+ props: Object.assign(Object.assign({}, rest), {
103
+ standard: standard,
104
+ loading: loadingProp
105
+ })
106
+ }
107
+ }),
108
+ classNames = _useMergeSemantic.classNames,
109
+ styles = _useMergeSemantic.styles;
92
110
  // 是否需要双表格
93
111
  var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
94
112
  return !!rest[prop];
@@ -307,6 +325,8 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
307
325
  virtual: virtual,
308
326
  onScroll: onScroll,
309
327
  needDoubleTable: needDoubleTable,
328
+ classNames: classNames,
329
+ styles: styles,
310
330
  extra: Object.assign({
311
331
  header: setting ? ( /*#__PURE__*/React__default["default"].createElement(TableSettingMenu.TableSettingMenu, {
312
332
  prefixCls: prefixCls + "-setting",
@@ -56,9 +56,12 @@ var TableBody = function TableBody(_ref) {
56
56
  virtualListRef = _useTableContext.virtualListRef,
57
57
  rowClassName = _useTableContext.rowClassName,
58
58
  stretchHeight = _useTableContext.stretchHeight,
59
- _onScroll = _useTableContext.onScroll;
59
+ _onScroll = _useTableContext.onScroll,
60
+ semanticClassNames = _useTableContext.semanticClassNames,
61
+ semanticStyles = _useTableContext.semanticStyles;
60
62
  var virtualListWrapperRef = React.useRef(null);
61
- var cls = classname.cx(prefixCls + "-body");
63
+ var cls = classname.cx(prefixCls + "-body", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.body);
64
+ var bodyStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.body;
62
65
  var getRequiredProps = useLatest.useLatestCallback(function (id) {
63
66
  return {
64
67
  // @ts-ignore
@@ -114,11 +117,10 @@ var TableBody = function TableBody(_ref) {
114
117
  className: cls,
115
118
  onScroll: onTableBodyScroll,
116
119
  onWheel: onTableBodyScrollMock,
117
- style: {
118
- // 表格宽度大于div宽度才出现横向滚动条
120
+ style: Object.assign(Object.assign({}, bodyStyle), {
119
121
  overflowX: canScroll ? 'scroll' : undefined,
120
122
  overflowY: 'hidden'
121
- }
123
+ })
122
124
  }, /*#__PURE__*/React__default["default"].createElement("div", {
123
125
  ref: measureRowElementRef,
124
126
  style: {
@@ -193,14 +195,15 @@ var TableBody = function TableBody(_ref) {
193
195
  var scrollBodyProps = {
194
196
  ref: scrollBodyElementRef,
195
197
  onScroll: onTableBodyScroll,
196
- style: {
198
+ style: Object.assign(Object.assign({}, bodyStyle), {
197
199
  maxHeight: maxHeight
198
- }
200
+ })
199
201
  };
200
202
  return !scrollbar ? ( /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
201
203
  className: cls
202
204
  }, scrollBodyProps), bodyContent)) : ( /*#__PURE__*/React__default["default"].createElement("div", {
203
- className: cls
205
+ className: cls,
206
+ style: bodyStyle
204
207
  }, /*#__PURE__*/React__default["default"].createElement(Scrollbar__default["default"], Object.assign({}, scrollBodyProps, typeAssertion.isObject(scrollbar) ? scrollbar : null), bodyContent)));
205
208
  };
206
209
  if (env.__DEV__) {
@@ -63,7 +63,9 @@ var TableCell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
63
63
  cellRender = _useTableContext.cellRender,
64
64
  isLoadingTreeNodeId = _useTableContext.isLoadingTreeNodeId,
65
65
  colWidths = _useTableContext.colWidths,
66
- virtual = _useTableContext.virtual;
66
+ virtual = _useTableContext.virtual,
67
+ semanticClassNames = _useTableContext.semanticClassNames,
68
+ semanticStyles = _useTableContext.semanticStyles;
67
69
  var dataKey = column.id,
68
70
  leftStickyWidth = column.leftStickyWidth,
69
71
  rightStickyWidth = column.rightStickyWidth,
@@ -101,7 +103,8 @@ var TableCell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
101
103
  }
102
104
  var loading = isLoadingTreeNodeId(rowId);
103
105
  var sticky = typeof rightStickyWidth !== 'undefined' || typeof leftStickyWidth !== 'undefined';
104
- var cls = classname.cx(prefixCls, className, raw.className, canScroll && sticky && prefixCls + "__col--sticky", isHighlightedCol(dataKey) && prefixCls + "__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "__col--hovered-highlight");
106
+ var cls = classname.cx(prefixCls, className, raw.className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.bodyCell, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.cell, canScroll && sticky && prefixCls + "__col--sticky", isHighlightedCol(dataKey) && prefixCls + "__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "__col--hovered-highlight");
107
+ var cellStyle = Object.assign(Object.assign({}, semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.bodyCell), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.cell);
105
108
  if (virtual) {
106
109
  var width = colWidths[colIndex];
107
110
  var colProps = getStickyColProps(column, 'td');
@@ -110,14 +113,13 @@ var TableCell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
110
113
  key: dataKey,
111
114
  className: cls
112
115
  }, colProps, {
113
- // 按需绑定函数,避免频繁调用 setState 特别消耗性能
114
116
  onMouseEnter: showColHighlight ? function () {
115
117
  return onHoveredColChange(column, true);
116
118
  } : undefined,
117
119
  onMouseLeave: showColHighlight ? function () {
118
120
  return onHoveredColChange(column, false);
119
121
  } : undefined,
120
- style: Object.assign(Object.assign({}, colProps.style), {
122
+ style: Object.assign(Object.assign(Object.assign({}, colProps.style), cellStyle), {
121
123
  width: width
122
124
  })
123
125
  }), isSwitcherCol && depth > 0 ? renderIndent({
@@ -138,14 +140,15 @@ var TableCell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
138
140
  }
139
141
  }) : null, cellContent.children);
140
142
  }
143
+ var stickyColProps = getStickyColProps(column, 'td');
141
144
  return /*#__PURE__*/React__default["default"].createElement("td", Object.assign({
142
145
  ref: ref,
143
146
  key: dataKey,
144
147
  className: cls
145
- }, getStickyColProps(column, 'td'), {
148
+ }, stickyColProps, {
149
+ style: Object.assign(Object.assign({}, stickyColProps.style), cellStyle),
146
150
  colSpan: cellContent.props.colSpan,
147
151
  rowSpan: cellContent.props.rowSpan,
148
- // 按需绑定函数,避免频繁调用 setState 特别消耗性能
149
152
  onMouseEnter: showColHighlight ? function () {
150
153
  return onHoveredColChange(column, true);
151
154
  } : undefined,
@@ -33,12 +33,17 @@ var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
33
33
  var _useTableContext = context.useTableContext(),
34
34
  onTableBodyScrollMock = _useTableContext.onTableBodyScrollMock,
35
35
  scrollHeaderElementRef = _useTableContext.scrollHeaderElementRef,
36
- getTableHeaderProps = _useTableContext.getTableHeaderProps;
37
- var cls = classname.cx(prefixCls, className);
38
- return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
36
+ getTableHeaderProps = _useTableContext.getTableHeaderProps,
37
+ semanticClassNames = _useTableContext.semanticClassNames,
38
+ semanticStyles = _useTableContext.semanticStyles;
39
+ var headerProps = getTableHeaderProps();
40
+ var cls = classname.cx(prefixCls, className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.header);
41
+ var headerStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.header;
42
+ return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, headerProps, {
39
43
  className: cls,
40
- ref: scrollHeaderElementRef
41
- }, getTableHeaderProps()), /*#__PURE__*/React__default["default"].createElement("table", {
44
+ ref: scrollHeaderElementRef,
45
+ style: Object.assign(Object.assign({}, headerProps === null || headerProps === void 0 ? void 0 : headerProps.style), headerStyle)
46
+ }), /*#__PURE__*/React__default["default"].createElement("table", {
42
47
  style: {
43
48
  width: '100%',
44
49
  position: 'relative'
@@ -60,7 +60,9 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
60
60
  onRow = _useTableContext.onRow,
61
61
  colWidths = _useTableContext.colWidths,
62
62
  virtual = _useTableContext.virtual,
63
- cellClassName = _useTableContext.cellClassName;
63
+ cellClassName = _useTableContext.cellClassName,
64
+ semanticClassNames = _useTableContext.semanticClassNames,
65
+ semanticStyles = _useTableContext.semanticStyles;
64
66
  var rowData = rowDataProp.raw,
65
67
  rowId = rowDataProp.id;
66
68
  // ** ************** 拖拽管理 *************** *//
@@ -146,7 +148,8 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
146
148
  // ** ************** 行状态管理 *************** *//
147
149
  var highlighted = isHighlightedRow(rowId);
148
150
  var hasError = isErrorRow(rowId);
149
- var cls = classname.cx(prefixCls + "-row", showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 0 && prefixCls + "-row--striped", hasError && prefixCls + "-row--error", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg", virtual && prefixCls + "-row--virtual", className);
151
+ var cls = classname.cx(prefixCls + "-row", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.bodyRow, showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 0 && prefixCls + "-row--striped", hasError && prefixCls + "-row--error", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg", virtual && prefixCls + "-row--virtual", className);
152
+ var bodyRowStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.bodyRow;
150
153
  var firstColumn = flattedColumnsWithoutChildren.find(function (item) {
151
154
  return item.dataKey !== Table.SELECTION_DATA_KEY && item.dataKey !== BaseTable.EMBED_DATA_KEY;
152
155
  });
@@ -170,7 +173,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
170
173
  }
171
174
  onHighlightedRowChange(rowDataProp, !highlighted);
172
175
  },
173
- style: Object.assign(Object.assign({}, rowExtraProps.style), {
176
+ style: Object.assign(Object.assign(Object.assign({}, bodyRowStyle), rowExtraProps.style), {
174
177
  width: rowWidth
175
178
  })
176
179
  }), flattedColumnsWithoutChildren.map(function (column, idx) {
@@ -191,6 +194,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
191
194
  className: cls,
192
195
  key: "row"
193
196
  }, rowExtraProps, {
197
+ style: Object.assign(Object.assign({}, bodyRowStyle), rowExtraProps.style),
194
198
  onDoubleClick: function onDoubleClick(evt) {
195
199
  if (rowExtraProps.onDoubleClick) {
196
200
  rowExtraProps.onDoubleClick(evt);
@@ -49,7 +49,9 @@ var TheadContent = /*#__PURE__*/React.forwardRef(function (_a, ref) {
49
49
  sticky = _useTableContext.sticky,
50
50
  stickyTop = _useTableContext.stickyTop,
51
51
  stickyFooter = _useTableContext.stickyFooter,
52
- stretchHeight = _useTableContext.stretchHeight;
52
+ stretchHeight = _useTableContext.stretchHeight,
53
+ semanticClassNames = _useTableContext.semanticClassNames,
54
+ semanticStyles = _useTableContext.semanticStyles;
53
55
  var activeColumnKeysAction = useCheckState.useCheckState();
54
56
  var trRefs = React.useRef([]);
55
57
  var needSticky = React.useMemo(function () {
@@ -65,7 +67,9 @@ var TheadContent = /*#__PURE__*/React.forwardRef(function (_a, ref) {
65
67
  setHeaderTableElement(el);
66
68
  }
67
69
  }
68
- }
70
+ },
71
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.headerRow,
72
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.headerRow
69
73
  }, cols.map(function (col, colIndex) {
70
74
  var _a, _b;
71
75
  var _ref = col || {},
@@ -88,12 +92,11 @@ var TheadContent = /*#__PURE__*/React.forwardRef(function (_a, ref) {
88
92
  var cell = /*#__PURE__*/React__default["default"].createElement("th", Object.assign({
89
93
  key: dataKey
90
94
  }, stickyColProps, {
91
- style: Object.assign(Object.assign({}, stickyColProps.style), {
92
- // 表头合并场景下,被合并的表头需要隐藏
95
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, stickyColProps.style), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.headerCell), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.cell), {
93
96
  display: (col === null || col === void 0 ? void 0 : col.colSpan) === 0 ? 'none' : undefined,
94
97
  insetBlockStart: needSticky ? (_b = trRefs.current[colsIndex]) === null || _b === void 0 ? void 0 : _b.offsetTop : undefined
95
98
  }),
96
- 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", groupLastColumn && prefixCls + "-cell--group-last-column"),
99
+ className: classname.cx(prefixCls + "-cell", raw.className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.headerCell, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.cell, isHighlightedCol(dataKey) && prefixCls + "-cell__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "-cell__col--hovered-highlight", activeColumnKeysAction.has(dataKey) && prefixCls + "-cell__col--active", groupLastColumn && prefixCls + "-cell--group-last-column"),
97
100
  // @ts-ignore
98
101
  colSpan: col.colSpan,
99
102
  // @ts-ignore
@@ -65,7 +65,9 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
65
65
  onResizeStop = _a.onResizeStop,
66
66
  fixedToRow = _a.fixedToRow,
67
67
  onScroll = _a.onScroll,
68
- rest = __rest(_a, ["prefixCls", "role", "className", "columns", "data", "striped", "bordered", "rowExpandable", "defaultExpandedEmbedRowKeys", "expandedEmbedRowKeys", "onEmbedExpand", "expandedRender", "size", "extra", "onRow", "onHeaderRow", "stickyFooter", "stickyFooterBottom", "fixedColumnTrigger", "emptyContent", "virtual", "needDoubleTable", "onResizeStop", "fixedToRow", "onScroll"]);
68
+ classNames = _a.classNames,
69
+ styles = _a.styles,
70
+ rest = __rest(_a, ["prefixCls", "role", "className", "columns", "data", "striped", "bordered", "rowExpandable", "defaultExpandedEmbedRowKeys", "expandedEmbedRowKeys", "onEmbedExpand", "expandedRender", "size", "extra", "onRow", "onHeaderRow", "stickyFooter", "stickyFooterBottom", "fixedColumnTrigger", "emptyContent", "virtual", "needDoubleTable", "onResizeStop", "fixedToRow", "onScroll", "classNames", "styles"]);
69
71
  var _useGlobalContext = useGlobalContext(),
70
72
  globalSize = _useGlobalContext.size;
71
73
  var size = (_b = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _b !== void 0 ? _b : 'md';
@@ -234,7 +236,8 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
234
236
  style = _a2.style,
235
237
  restTableHeaderProps = __rest(_a2, ["style"]);
236
238
  var doubleTableContent = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", Object.assign({}, restTableHeaderProps, {
237
- style: Object.assign(Object.assign({}, style), {
239
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.content,
240
+ style: Object.assign(Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.content), {
238
241
  overflow: undefined
239
242
  })
240
243
  }), /*#__PURE__*/React__default.createElement(TableHeader, null), extraHeader ? ( /*#__PURE__*/React__default.createElement("div", {
@@ -252,21 +255,22 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
252
255
  }
253
256
  var tableContent = /*#__PURE__*/React__default.createElement("table", {
254
257
  ref: bodyTableRef,
255
- style: {
258
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.table,
259
+ style: Object.assign({
256
260
  width: canScroll && scrollWidth !== undefined ? scrollWidth : '100%'
257
- }
261
+ }, styles === null || styles === void 0 ? void 0 : styles.table)
258
262
  }, /*#__PURE__*/React__default.createElement(ColGroupContent, null), /*#__PURE__*/React__default.createElement(TheadContent, null), /*#__PURE__*/React__default.createElement(TbodyContent, {
259
263
  emptyContent: emptyContent
260
264
  }));
261
265
  var singleTableContent = /*#__PURE__*/React__default.createElement("div", Object.assign({
262
- className: prefixCls + "-content"
263
- }, !scrollbar ? {
264
- ref: scrollBodyElementRef,
265
- onScroll: onTableBodyScroll,
266
- style: {
266
+ className: cx(prefixCls + "-content", classNames === null || classNames === void 0 ? void 0 : classNames.content),
267
+ style: Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.content), !scrollbar ? {
267
268
  // 表格宽度大于div宽度才出现横向滚动条
268
269
  overflowX: canScroll ? 'scroll' : undefined
269
- }
270
+ } : {})
271
+ }, !scrollbar ? {
272
+ ref: scrollBodyElementRef,
273
+ onScroll: onTableBodyScroll
270
274
  } : {}), !scrollbar ? tableContent : ( /*#__PURE__*/React__default.createElement(Scrollbar, Object.assign({
271
275
  ref: scrollBodyElementRef,
272
276
  onScroll: onTableBodyScroll
@@ -275,32 +279,35 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
275
279
  };
276
280
  var renderFreezeShadow = function renderFreezeShadow() {
277
281
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, (alwaysFixedColumn || scrollSize.scrollLeft > 0) && leftFrozenColKeys.length > 0 ? ( /*#__PURE__*/React__default.createElement("div", {
278
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--left",
279
- style: {
282
+ className: cx(prefixCls + "-freeze-shadow", prefixCls + "-freeze-shadow--left", classNames === null || classNames === void 0 ? void 0 : classNames.freezeShadowLeft),
283
+ style: Object.assign({
280
284
  width: leftFixedColumnsWidth + 'px'
281
- }
285
+ }, styles === null || styles === void 0 ? void 0 : styles.freezeShadowLeft)
282
286
  })) : null, (alwaysFixedColumn || scrollSize.scrollRight > 0) && rightFrozenColKeys.length > 0 ? ( /*#__PURE__*/React__default.createElement("div", {
283
- className: prefixCls + "-freeze-shadow " + prefixCls + "-freeze-shadow--right",
284
- style: {
287
+ className: cx(prefixCls + "-freeze-shadow", prefixCls + "-freeze-shadow--right", classNames === null || classNames === void 0 ? void 0 : classNames.freezeShadowRight),
288
+ style: Object.assign({
285
289
  width: rightFixedColumnsWidth + 'px'
286
- }
290
+ }, styles === null || styles === void 0 ? void 0 : styles.freezeShadowRight)
287
291
  })) : null);
288
292
  };
289
293
  var tableFooter = /*#__PURE__*/React__default.createElement("div", {
290
- className: prefixCls + "-footer",
291
- style: stickyFooter ? {
294
+ className: cx(prefixCls + "-footer", classNames === null || classNames === void 0 ? void 0 : classNames.footer),
295
+ style: Object.assign(Object.assign({}, stickyFooter ? {
292
296
  position: 'sticky',
293
297
  bottom: stickyFooterBottom
294
- } : undefined
298
+ } : {}), styles === null || styles === void 0 ? void 0 : styles.footer)
295
299
  }, isFunction(footerRender) ? footerRender( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, extraFooter)) : extraFooter);
296
- var cls = cx(prefixCls, className, hasBorder && prefixCls + "--bordered", (hasScrollToLeft || hasLeftFixedColumns) && data.length > 0 && prefixCls + "--bordered-left-none", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual", data.length === 0 && prefixCls + "--empty", prefixCls + "--" + (needDoubleTable ? 'double' : 'single'), stretchHeight && prefixCls + "--stretch-height");
300
+ var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.root, hasBorder && prefixCls + "--bordered", (hasScrollToLeft || hasLeftFixedColumns) && data.length > 0 && prefixCls + "--bordered-left-none", striped && prefixCls + "--striped", size && prefixCls + "--size-" + size, virtual && prefixCls + "--virtual", data.length === 0 && prefixCls + "--empty", prefixCls + "--" + (needDoubleTable ? 'double' : 'single'), stretchHeight && prefixCls + "--stretch-height");
297
301
  return /*#__PURE__*/React__default.createElement("div", Object.assign({
298
302
  ref: ref,
299
303
  role: role,
300
304
  className: cls
301
- }, rootProps), /*#__PURE__*/React__default.createElement("div", {
305
+ }, rootProps, {
306
+ style: styles === null || styles === void 0 ? void 0 : styles.root
307
+ }), /*#__PURE__*/React__default.createElement("div", {
302
308
  ref: wrapperRef,
303
- className: cx(prefixCls + "__wrapper", isTableContentExceedWrapperHeight && prefixCls + "--exceed-wrapper-height")
309
+ className: cx(prefixCls + "__wrapper", classNames === null || classNames === void 0 ? void 0 : classNames.wrapper, isTableContentExceedWrapperHeight && prefixCls + "--exceed-wrapper-height"),
310
+ style: styles === null || styles === void 0 ? void 0 : styles.wrapper
304
311
  }, /*#__PURE__*/React__default.createElement(TableProvider, {
305
312
  value: Object.assign(Object.assign({}, providedValue), {
306
313
  striped: striped,
@@ -318,7 +325,9 @@ var BaseTable = /*#__PURE__*/forwardRef(function (_a, ref) {
318
325
  virtual: virtual,
319
326
  onScroll: onScroll,
320
327
  onResizeStop: onResizeStop,
321
- fixedToRow: fixedToRow
328
+ fixedToRow: fixedToRow,
329
+ semanticClassNames: classNames,
330
+ semanticStyles: styles
322
331
  })
323
332
  }, renderTable()), renderFreezeShadow()), tableFooter);
324
333
  });
package/lib/esm/Table.js CHANGED
@@ -12,6 +12,8 @@ import { __rest } from 'tslib';
12
12
  import React__default, { forwardRef, useCallback, useMemo, Fragment } from 'react';
13
13
  import { getPrefixCls, cx } from '@hi-ui/classname';
14
14
  import { __DEV__, invariant } from '@hi-ui/env';
15
+ import { useGlobalContext } from '@hi-ui/core';
16
+ import { useMergeSemantic } from '@hi-ui/use-merge-semantic';
15
17
  import Pagination from '@hi-ui/pagination';
16
18
  import { useColHidden } from './hooks/use-col-hidden.js';
17
19
  import { useColSorter } from './hooks/use-col-sorter.js';
@@ -73,7 +75,23 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
73
75
  _a$data = _a.data,
74
76
  data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
75
77
  onScroll = _a.onScroll,
76
- rest = __rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data", "onScroll"]);
78
+ classNamesProp = _a.classNames,
79
+ stylesProp = _a.styles,
80
+ rest = __rest(_a, ["prefixCls", "standard", "loading", "dataSource", "pagination", "uniqueId", "columns", "hiddenColKeys", "onHiddenColKeysChange", "sortedColKeys", "onSortedColKeysChange", "checkDisabledColKeys", "onSetColKeysChange", "rowSelection", "fieldKey", "extra", "data", "onScroll", "classNames", "styles"]);
81
+ var globalContext = useGlobalContext();
82
+ var tableConfig = globalContext.table;
83
+ var _useMergeSemantic = useMergeSemantic({
84
+ classNamesList: [tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.classNames, classNamesProp],
85
+ stylesList: [tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.styles, stylesProp],
86
+ info: {
87
+ props: Object.assign(Object.assign({}, rest), {
88
+ standard: standard,
89
+ loading: loadingProp
90
+ })
91
+ }
92
+ }),
93
+ classNames = _useMergeSemantic.classNames,
94
+ styles = _useMergeSemantic.styles;
77
95
  // 是否需要双表格
78
96
  var needDoubleTable = DOUBLE_TABLE_SCENE.some(function (prop) {
79
97
  return !!rest[prop];
@@ -292,6 +310,8 @@ var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
292
310
  virtual: virtual,
293
311
  onScroll: onScroll,
294
312
  needDoubleTable: needDoubleTable,
313
+ classNames: classNames,
314
+ styles: styles,
295
315
  extra: Object.assign({
296
316
  header: setting ? ( /*#__PURE__*/React__default.createElement(TableSettingMenu, {
297
317
  prefixCls: prefixCls + "-setting",
@@ -43,9 +43,12 @@ var TableBody = function TableBody(_ref) {
43
43
  virtualListRef = _useTableContext.virtualListRef,
44
44
  rowClassName = _useTableContext.rowClassName,
45
45
  stretchHeight = _useTableContext.stretchHeight,
46
- _onScroll = _useTableContext.onScroll;
46
+ _onScroll = _useTableContext.onScroll,
47
+ semanticClassNames = _useTableContext.semanticClassNames,
48
+ semanticStyles = _useTableContext.semanticStyles;
47
49
  var virtualListWrapperRef = useRef(null);
48
- var cls = cx(prefixCls + "-body");
50
+ var cls = cx(prefixCls + "-body", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.body);
51
+ var bodyStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.body;
49
52
  var getRequiredProps = useLatestCallback(function (id) {
50
53
  return {
51
54
  // @ts-ignore
@@ -101,11 +104,10 @@ var TableBody = function TableBody(_ref) {
101
104
  className: cls,
102
105
  onScroll: onTableBodyScroll,
103
106
  onWheel: onTableBodyScrollMock,
104
- style: {
105
- // 表格宽度大于div宽度才出现横向滚动条
107
+ style: Object.assign(Object.assign({}, bodyStyle), {
106
108
  overflowX: canScroll ? 'scroll' : undefined,
107
109
  overflowY: 'hidden'
108
- }
110
+ })
109
111
  }, /*#__PURE__*/React__default.createElement("div", {
110
112
  ref: measureRowElementRef,
111
113
  style: {
@@ -180,14 +182,15 @@ var TableBody = function TableBody(_ref) {
180
182
  var scrollBodyProps = {
181
183
  ref: scrollBodyElementRef,
182
184
  onScroll: onTableBodyScroll,
183
- style: {
185
+ style: Object.assign(Object.assign({}, bodyStyle), {
184
186
  maxHeight: maxHeight
185
- }
187
+ })
186
188
  };
187
189
  return !scrollbar ? ( /*#__PURE__*/React__default.createElement("div", Object.assign({
188
190
  className: cls
189
191
  }, scrollBodyProps), bodyContent)) : ( /*#__PURE__*/React__default.createElement("div", {
190
- className: cls
192
+ className: cls,
193
+ style: bodyStyle
191
194
  }, /*#__PURE__*/React__default.createElement(Scrollbar, Object.assign({}, scrollBodyProps, isObject(scrollbar) ? scrollbar : null), bodyContent)));
192
195
  };
193
196
  if (__DEV__) {
@@ -51,7 +51,9 @@ var TableCell = /*#__PURE__*/forwardRef(function (_ref, ref) {
51
51
  cellRender = _useTableContext.cellRender,
52
52
  isLoadingTreeNodeId = _useTableContext.isLoadingTreeNodeId,
53
53
  colWidths = _useTableContext.colWidths,
54
- virtual = _useTableContext.virtual;
54
+ virtual = _useTableContext.virtual,
55
+ semanticClassNames = _useTableContext.semanticClassNames,
56
+ semanticStyles = _useTableContext.semanticStyles;
55
57
  var dataKey = column.id,
56
58
  leftStickyWidth = column.leftStickyWidth,
57
59
  rightStickyWidth = column.rightStickyWidth,
@@ -89,7 +91,8 @@ var TableCell = /*#__PURE__*/forwardRef(function (_ref, ref) {
89
91
  }
90
92
  var loading = isLoadingTreeNodeId(rowId);
91
93
  var sticky = typeof rightStickyWidth !== 'undefined' || typeof leftStickyWidth !== 'undefined';
92
- var cls = cx(prefixCls, className, raw.className, canScroll && sticky && prefixCls + "__col--sticky", isHighlightedCol(dataKey) && prefixCls + "__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "__col--hovered-highlight");
94
+ var cls = cx(prefixCls, className, raw.className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.bodyCell, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.cell, canScroll && sticky && prefixCls + "__col--sticky", isHighlightedCol(dataKey) && prefixCls + "__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "__col--hovered-highlight");
95
+ var cellStyle = Object.assign(Object.assign({}, semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.bodyCell), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.cell);
93
96
  if (virtual) {
94
97
  var width = colWidths[colIndex];
95
98
  var colProps = getStickyColProps(column, 'td');
@@ -98,14 +101,13 @@ var TableCell = /*#__PURE__*/forwardRef(function (_ref, ref) {
98
101
  key: dataKey,
99
102
  className: cls
100
103
  }, colProps, {
101
- // 按需绑定函数,避免频繁调用 setState 特别消耗性能
102
104
  onMouseEnter: showColHighlight ? function () {
103
105
  return onHoveredColChange(column, true);
104
106
  } : undefined,
105
107
  onMouseLeave: showColHighlight ? function () {
106
108
  return onHoveredColChange(column, false);
107
109
  } : undefined,
108
- style: Object.assign(Object.assign({}, colProps.style), {
110
+ style: Object.assign(Object.assign(Object.assign({}, colProps.style), cellStyle), {
109
111
  width: width
110
112
  })
111
113
  }), isSwitcherCol && depth > 0 ? renderIndent({
@@ -126,14 +128,15 @@ var TableCell = /*#__PURE__*/forwardRef(function (_ref, ref) {
126
128
  }
127
129
  }) : null, cellContent.children);
128
130
  }
131
+ var stickyColProps = getStickyColProps(column, 'td');
129
132
  return /*#__PURE__*/React__default.createElement("td", Object.assign({
130
133
  ref: ref,
131
134
  key: dataKey,
132
135
  className: cls
133
- }, getStickyColProps(column, 'td'), {
136
+ }, stickyColProps, {
137
+ style: Object.assign(Object.assign({}, stickyColProps.style), cellStyle),
134
138
  colSpan: cellContent.props.colSpan,
135
139
  rowSpan: cellContent.props.rowSpan,
136
- // 按需绑定函数,避免频繁调用 setState 特别消耗性能
137
140
  onMouseEnter: showColHighlight ? function () {
138
141
  return onHoveredColChange(column, true);
139
142
  } : undefined,
@@ -21,12 +21,17 @@ var TableHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
21
21
  var _useTableContext = useTableContext(),
22
22
  onTableBodyScrollMock = _useTableContext.onTableBodyScrollMock,
23
23
  scrollHeaderElementRef = _useTableContext.scrollHeaderElementRef,
24
- getTableHeaderProps = _useTableContext.getTableHeaderProps;
25
- var cls = cx(prefixCls, className);
26
- return /*#__PURE__*/React__default.createElement("div", Object.assign({
24
+ getTableHeaderProps = _useTableContext.getTableHeaderProps,
25
+ semanticClassNames = _useTableContext.semanticClassNames,
26
+ semanticStyles = _useTableContext.semanticStyles;
27
+ var headerProps = getTableHeaderProps();
28
+ var cls = cx(prefixCls, className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.header);
29
+ var headerStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.header;
30
+ return /*#__PURE__*/React__default.createElement("div", Object.assign({}, headerProps, {
27
31
  className: cls,
28
- ref: scrollHeaderElementRef
29
- }, getTableHeaderProps()), /*#__PURE__*/React__default.createElement("table", {
32
+ ref: scrollHeaderElementRef,
33
+ style: Object.assign(Object.assign({}, headerProps === null || headerProps === void 0 ? void 0 : headerProps.style), headerStyle)
34
+ }), /*#__PURE__*/React__default.createElement("table", {
30
35
  style: {
31
36
  width: '100%',
32
37
  position: 'relative'
@@ -48,7 +48,9 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
48
48
  onRow = _useTableContext.onRow,
49
49
  colWidths = _useTableContext.colWidths,
50
50
  virtual = _useTableContext.virtual,
51
- cellClassName = _useTableContext.cellClassName;
51
+ cellClassName = _useTableContext.cellClassName,
52
+ semanticClassNames = _useTableContext.semanticClassNames,
53
+ semanticStyles = _useTableContext.semanticStyles;
52
54
  var rowData = rowDataProp.raw,
53
55
  rowId = rowDataProp.id;
54
56
  // ** ************** 拖拽管理 *************** *//
@@ -134,7 +136,8 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
134
136
  // ** ************** 行状态管理 *************** *//
135
137
  var highlighted = isHighlightedRow(rowId);
136
138
  var hasError = isErrorRow(rowId);
137
- var cls = cx(prefixCls + "-row", showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 0 && prefixCls + "-row--striped", hasError && prefixCls + "-row--error", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg", virtual && prefixCls + "-row--virtual", className);
139
+ var cls = cx(prefixCls + "-row", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.bodyRow, showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 0 && prefixCls + "-row--striped", hasError && prefixCls + "-row--error", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg", virtual && prefixCls + "-row--virtual", className);
140
+ var bodyRowStyle = semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.bodyRow;
138
141
  var firstColumn = flattedColumnsWithoutChildren.find(function (item) {
139
142
  return item.dataKey !== SELECTION_DATA_KEY && item.dataKey !== EMBED_DATA_KEY;
140
143
  });
@@ -158,7 +161,7 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
158
161
  }
159
162
  onHighlightedRowChange(rowDataProp, !highlighted);
160
163
  },
161
- style: Object.assign(Object.assign({}, rowExtraProps.style), {
164
+ style: Object.assign(Object.assign(Object.assign({}, bodyRowStyle), rowExtraProps.style), {
162
165
  width: rowWidth
163
166
  })
164
167
  }), flattedColumnsWithoutChildren.map(function (column, idx) {
@@ -179,6 +182,7 @@ var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
179
182
  className: cls,
180
183
  key: "row"
181
184
  }, rowExtraProps, {
185
+ style: Object.assign(Object.assign({}, bodyRowStyle), rowExtraProps.style),
182
186
  onDoubleClick: function onDoubleClick(evt) {
183
187
  if (rowExtraProps.onDoubleClick) {
184
188
  rowExtraProps.onDoubleClick(evt);
@@ -37,7 +37,9 @@ var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
37
37
  sticky = _useTableContext.sticky,
38
38
  stickyTop = _useTableContext.stickyTop,
39
39
  stickyFooter = _useTableContext.stickyFooter,
40
- stretchHeight = _useTableContext.stretchHeight;
40
+ stretchHeight = _useTableContext.stretchHeight,
41
+ semanticClassNames = _useTableContext.semanticClassNames,
42
+ semanticStyles = _useTableContext.semanticStyles;
41
43
  var activeColumnKeysAction = useCheckState();
42
44
  var trRefs = useRef([]);
43
45
  var needSticky = useMemo(function () {
@@ -53,7 +55,9 @@ var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
53
55
  setHeaderTableElement(el);
54
56
  }
55
57
  }
56
- }
58
+ },
59
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.headerRow,
60
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.headerRow
57
61
  }, cols.map(function (col, colIndex) {
58
62
  var _a, _b;
59
63
  var _ref = col || {},
@@ -76,12 +80,11 @@ var TheadContent = /*#__PURE__*/forwardRef(function (_a, ref) {
76
80
  var cell = /*#__PURE__*/React__default.createElement("th", Object.assign({
77
81
  key: dataKey
78
82
  }, stickyColProps, {
79
- style: Object.assign(Object.assign({}, stickyColProps.style), {
80
- // 表头合并场景下,被合并的表头需要隐藏
83
+ style: Object.assign(Object.assign(Object.assign(Object.assign({}, stickyColProps.style), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.headerCell), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.cell), {
81
84
  display: (col === null || col === void 0 ? void 0 : col.colSpan) === 0 ? 'none' : undefined,
82
85
  insetBlockStart: needSticky ? (_b = trRefs.current[colsIndex]) === null || _b === void 0 ? void 0 : _b.offsetTop : undefined
83
86
  }),
84
- 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", groupLastColumn && prefixCls + "-cell--group-last-column"),
87
+ className: cx(prefixCls + "-cell", raw.className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.headerCell, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.cell, isHighlightedCol(dataKey) && prefixCls + "-cell__col--highlight", isHoveredHighlightCol(dataKey) && prefixCls + "-cell__col--hovered-highlight", activeColumnKeysAction.has(dataKey) && prefixCls + "-cell__col--active", groupLastColumn && prefixCls + "-cell--group-last-column"),
85
88
  // @ts-ignore
86
89
  colSpan: col.colSpan,
87
90
  // @ts-ignore
@@ -7,6 +7,14 @@ import { ResizeCallbackData } from 'react-resizable';
7
7
  export declare const EMBED_DATA_KEY: string;
8
8
  export declare const BaseTable: React.ForwardRefExoticComponent<BaseTableProps & React.RefAttributes<HTMLDivElement | null>>;
9
9
  export interface BaseTableProps extends Omit<HiBaseHTMLProps<'div'>, 'onDrop' | 'draggable' | 'onDragStart'>, UseTableProps, UseEmbedExpandProps {
10
+ /**
11
+ * 语义化 classNames(由 Table 透传)
12
+ */
13
+ classNames?: any;
14
+ /**
15
+ * 语义化 styles(由 Table 透传)
16
+ */
17
+ styles?: any;
10
18
  /**
11
19
  * 覆盖 header 的setting icon 和 footer 的 pagination。暂不对外暴露
12
20
  * @private
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { ComponentSemantic, SemanticClassNamesType, SemanticStylesType } from '@hi-ui/use-merge-semantic';
2
3
  import { TablePaginationProps, TableDataSource } from './types';
3
4
  import { BaseTableProps } from './BaseTable';
4
5
  export declare const SELECTION_DATA_KEY: string;
@@ -6,7 +7,11 @@ export declare const SELECTION_DATA_KEY: string;
6
7
  * 表格
7
8
  */
8
9
  export declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLDivElement | null>>;
9
- export interface TableProps extends BaseTableProps {
10
+ export type TableSemanticName = 'root' | 'wrapper' | 'content' | 'table' | 'header' | 'headerRow' | 'headerCell' | 'body' | 'bodyRow' | 'bodyCell' | 'cell' | 'footer' | 'freezeShadowLeft' | 'freezeShadowRight';
11
+ export type TableSemanticClassNames = SemanticClassNamesType<TableProps, TableSemanticName>;
12
+ export type TableSemanticStyles = SemanticStylesType<TableProps, TableSemanticName>;
13
+ export type TableSemantic = ComponentSemantic<TableSemanticClassNames, TableSemanticStyles>;
14
+ export interface TableProps extends Omit<BaseTableProps, 'classNames' | 'styles'>, TableSemantic {
10
15
  /**
11
16
  * 加载中状态
12
17
  */
@@ -139,6 +139,10 @@ export declare const TableProvider: React.Provider<(Omit<{
139
139
  sticky?: boolean;
140
140
  stickyTop?: number;
141
141
  stickyFooter?: boolean;
142
+ /** 语义化 classNames(由 BaseTable 透传) */
143
+ semanticClassNames?: Record<string, any>;
144
+ /** 语义化 styles(由 BaseTable 透传) */
145
+ semanticStyles?: Record<string, any>;
142
146
  }) | null>;
143
147
  export declare const useTableContext: () => Omit<{
144
148
  getColgroupProps: (column: import("./types").FlattedTableColumnItemData, index: number) => {
@@ -278,4 +282,8 @@ export declare const useTableContext: () => Omit<{
278
282
  sticky?: boolean;
279
283
  stickyTop?: number;
280
284
  stickyFooter?: boolean;
285
+ /** 语义化 classNames(由 BaseTable 透传) */
286
+ semanticClassNames?: Record<string, any>;
287
+ /** 语义化 styles(由 BaseTable 透传) */
288
+ semanticStyles?: Record<string, any>;
281
289
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/table",
3
- "version": "5.0.0-experimental.1",
3
+ "version": "5.0.0-experimental.2",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -45,25 +45,25 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@hi-ui/array-utils": "^5.0.0-experimental.0",
48
- "@hi-ui/button": "^5.0.0-experimental.0",
49
- "@hi-ui/checkbox": "^5.0.0-experimental.0",
48
+ "@hi-ui/button": "^5.0.0-experimental.1",
49
+ "@hi-ui/checkbox": "^5.0.0-experimental.1",
50
50
  "@hi-ui/classname": "^5.0.0-experimental.0",
51
51
  "@hi-ui/dom-utils": "^5.0.0-experimental.0",
52
- "@hi-ui/drawer": "^5.0.0-experimental.0",
53
- "@hi-ui/empty-state": "^5.0.0-experimental.0",
52
+ "@hi-ui/drawer": "^5.0.0-experimental.1",
53
+ "@hi-ui/empty-state": "^5.0.0-experimental.1",
54
54
  "@hi-ui/env": "^5.0.0-experimental.0",
55
55
  "@hi-ui/func-utils": "^5.0.0-experimental.0",
56
- "@hi-ui/icon-button": "^5.0.0-experimental.0",
57
- "@hi-ui/icons": "^5.0.0-experimental.0",
58
- "@hi-ui/loading": "^5.0.0-experimental.0",
56
+ "@hi-ui/icon-button": "^5.0.0-experimental.1",
57
+ "@hi-ui/icons": "^5.0.0-experimental.1",
58
+ "@hi-ui/loading": "^5.0.0-experimental.1",
59
59
  "@hi-ui/object-utils": "^5.0.0-experimental.0",
60
- "@hi-ui/pagination": "^5.0.0-experimental.0",
61
- "@hi-ui/popper": "^5.0.0-experimental.0",
62
- "@hi-ui/radio": "^5.0.0-experimental.0",
60
+ "@hi-ui/pagination": "^5.0.0-experimental.1",
61
+ "@hi-ui/popper": "^5.0.0-experimental.1",
62
+ "@hi-ui/radio": "^5.0.0-experimental.1",
63
63
  "@hi-ui/react-utils": "^5.0.0-experimental.0",
64
- "@hi-ui/scrollbar": "^5.0.0-experimental.0",
65
- "@hi-ui/select": "^5.0.0-experimental.1",
66
- "@hi-ui/spinner": "^5.0.0-experimental.0",
64
+ "@hi-ui/scrollbar": "^5.0.0-experimental.1",
65
+ "@hi-ui/select": "^5.0.0-experimental.2",
66
+ "@hi-ui/spinner": "^5.0.0-experimental.1",
67
67
  "@hi-ui/times": "^5.0.0-experimental.0",
68
68
  "@hi-ui/tree-utils": "^5.0.0-experimental.0",
69
69
  "@hi-ui/type-assertion": "^5.0.0-experimental.0",
@@ -76,16 +76,17 @@
76
76
  "@hi-ui/use-uncontrolled-state": "^5.0.0-experimental.0",
77
77
  "@hi-ui/use-update-effect": "^5.0.0-experimental.0",
78
78
  "axios": "^1.5.0",
79
- "react-resizable": "^3.0.4"
79
+ "react-resizable": "^3.0.4",
80
+ "@hi-ui/use-merge-semantic": "^5.0.0-experimental.0"
80
81
  },
81
82
  "peerDependencies": {
82
- "@hi-ui/core": ">=5.0.0-experimental.0",
83
+ "@hi-ui/core": ">=5.0.0-experimental.1",
83
84
  "react": ">=16.8.6",
84
85
  "react-dom": ">=16.8.6"
85
86
  },
86
87
  "devDependencies": {
87
- "@hi-ui/core": "^5.0.0-experimental.0",
88
- "@hi-ui/core-css": "^5.0.0-experimental.1",
88
+ "@hi-ui/core": "^5.0.0-experimental.1",
89
+ "@hi-ui/core-css": "^5.0.0-experimental.2",
89
90
  "@types/react-resizable": "^1.7.4",
90
91
  "react": "^17.0.1",
91
92
  "react-dom": "^17.0.1"