@hi-ui/table 4.3.4 → 4.4.0-alpha.1

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/BaseTable.js +2 -2
  3. package/lib/cjs/ColGroupContent.js +2 -2
  4. package/lib/cjs/SettingDrawer.js +29 -20
  5. package/lib/cjs/Table.js +7 -5
  6. package/lib/cjs/TableAdvancedFilter.js +4 -4
  7. package/lib/cjs/TableBody.js +5 -5
  8. package/lib/cjs/TableCell.js +2 -2
  9. package/lib/cjs/TableColumnMenu.js +3 -3
  10. package/lib/cjs/TableEmbedRow.js +3 -3
  11. package/lib/cjs/TableHeader.js +2 -2
  12. package/lib/cjs/TableRow.js +7 -4
  13. package/lib/cjs/TableSettingMenu.js +3 -3
  14. package/lib/cjs/TbodyContent.js +5 -3
  15. package/lib/cjs/TheadContent.js +2 -2
  16. package/lib/cjs/hooks/use-async-switch.js +2 -2
  17. package/lib/cjs/hooks/use-check.js +2 -2
  18. package/lib/cjs/hooks/use-col-width.js +46 -17
  19. package/lib/cjs/hooks/use-colgroup.js +2 -2
  20. package/lib/cjs/hooks/use-drag.js +2 -2
  21. package/lib/cjs/hooks/use-embed-expand.js +3 -3
  22. package/lib/cjs/hooks/use-pagination.js +3 -3
  23. package/lib/cjs/icons/index.js +2 -2
  24. package/lib/cjs/node_modules/rc-resize-observer/es/index.js +9 -9
  25. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +2 -2
  26. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +2 -2
  27. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +2 -2
  28. package/lib/cjs/node_modules/rc-util/es/Dom/findDOMNode.js +2 -2
  29. package/lib/cjs/node_modules/rc-util/es/hooks/useLayoutEffect.js +4 -3
  30. package/lib/cjs/node_modules/rc-virtual-list/es/Filler.js +4 -3
  31. package/lib/cjs/node_modules/rc-virtual-list/es/Item.js +4 -3
  32. package/lib/cjs/node_modules/rc-virtual-list/es/List.js +4 -3
  33. package/lib/cjs/node_modules/rc-virtual-list/es/ScrollBar.js +4 -3
  34. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useChildren.js +4 -3
  35. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +4 -3
  36. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useHeights.js +7 -17
  37. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +4 -3
  38. package/lib/cjs/styles/index.scss.js +1 -1
  39. package/lib/cjs/use-table.js +8 -4
  40. package/lib/esm/SettingDrawer.js +26 -17
  41. package/lib/esm/Table.js +2 -0
  42. package/lib/esm/TableBody.js +1 -2
  43. package/lib/esm/TableRow.js +5 -2
  44. package/lib/esm/TbodyContent.js +3 -1
  45. package/lib/esm/hooks/use-col-width.js +44 -15
  46. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +3 -14
  47. package/lib/esm/node_modules/rc-virtual-list/es/index.js +1 -1
  48. package/lib/esm/node_modules/react-is/cjs/react-is.development.js +1 -1
  49. package/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +1 -1
  50. package/lib/esm/styles/index.scss.js +1 -1
  51. package/lib/esm/use-table.js +6 -2
  52. package/lib/types/SettingDrawer.d.ts +5 -0
  53. package/lib/types/TableRow.d.ts +4 -0
  54. package/lib/types/context.d.ts +6 -2
  55. package/lib/types/types.d.ts +4 -0
  56. package/lib/types/use-table.d.ts +11 -1
  57. package/package.json +2 -1
  58. package/lib/cjs/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +0 -1090
  59. package/lib/cjs/packages/hooks/use-merge-refs/lib/esm/index.js +0 -68
  60. package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +0 -157
  61. package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +0 -35
  62. package/lib/cjs/packages/ui/scrollbar/lib/esm/utils/index.js +0 -72
  63. package/lib/esm/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +0 -1084
  64. package/lib/esm/packages/hooks/use-merge-refs/lib/esm/index.js +0 -62
  65. package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +0 -145
  66. package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +0 -23
  67. package/lib/esm/packages/ui/scrollbar/lib/esm/utils/index.js +0 -66
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @hi-ui/table
2
2
 
3
+ ## 4.4.0-alpha.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 02ef793ee: feat: add fixed and rowClassName api
8
+
3
9
  ## 4.3.4
4
10
 
5
11
  ### Patch Changes
@@ -31,12 +31,12 @@ var useEmbedExpand = require('./hooks/use-embed-expand.js');
31
31
  var TheadContent = require('./TheadContent.js');
32
32
  var ColGroupContent = require('./ColGroupContent.js');
33
33
  var TbodyContent = require('./TbodyContent.js');
34
- function _interopDefaultLegacy(e) {
34
+ function _interopDefaultCompat(e) {
35
35
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
36
36
  'default': e
37
37
  };
38
38
  }
39
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
39
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
40
40
  var _role = 'table';
41
41
  var _prefix = classname.getPrefixCls('table');
42
42
  var EMBED_DATA_KEY = "TABLE_EMBED_DATA_KEY_" + index.uuid();
@@ -17,12 +17,12 @@ var React = require('react');
17
17
  var classname = require('@hi-ui/classname');
18
18
  var env = require('@hi-ui/env');
19
19
  var context = require('./context.js');
20
- function _interopDefaultLegacy(e) {
20
+ function _interopDefaultCompat(e) {
21
21
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
22
22
  'default': e
23
23
  };
24
24
  }
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
26
26
  var _prefix = classname.getPrefixCls('table-colgroup');
27
27
  var ColGroupContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
28
28
  var _ref$prefixCls = _ref.prefixCls,
@@ -23,20 +23,21 @@ var useLatest = require('@hi-ui/use-latest');
23
23
  var core = require('@hi-ui/core');
24
24
  var funcUtils = require('@hi-ui/func-utils');
25
25
  var useDragSorter = require('@hi-ui/use-drag-sorter');
26
+ var typeAssertion = require('@hi-ui/type-assertion');
26
27
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
27
- var useColSorter = require('./hooks/use-col-sorter.js');
28
- var useColHidden = require('./hooks/use-col-hidden.js');
29
28
  var drawer = require('@hi-ui/drawer');
30
29
  var button = require('@hi-ui/button');
31
30
  var Checkbox = require('@hi-ui/checkbox');
32
31
  var useColSet = require('./hooks/use-col-set.js');
33
- function _interopDefaultLegacy(e) {
32
+ var useColSorter = require('./hooks/use-col-sorter.js');
33
+ var useColHidden = require('./hooks/use-col-hidden.js');
34
+ function _interopDefaultCompat(e) {
34
35
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
35
36
  'default': e
36
37
  };
37
38
  }
38
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
39
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
39
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultCompat(_regeneratorRuntime);
40
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
40
41
  var _prefix = classname.getPrefixCls('setting');
41
42
  /**
42
43
  * 设置抽屉
@@ -54,10 +55,18 @@ var SettingDrawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
54
55
  sortedColKeysPropBeforeVerify = _ref.sortedColKeys,
55
56
  onSortedColKeysChange = _ref.onSortedColKeysChange,
56
57
  onSetColKeysChange = _ref.onSetColKeysChange,
58
+ cacheHiddenColKeysProp = _ref.cacheHiddenColKeys,
59
+ onCacheHiddenColKeysChange = _ref.onCacheHiddenColKeysChange,
57
60
  _ref$checkDisabledCol = _ref.checkDisabledColKeys,
58
61
  checkDisabledColKeys = _ref$checkDisabledCol === void 0 ? [] : _ref$checkDisabledCol,
62
+ extraHeader = _ref.extraHeader,
63
+ extraFooter = _ref.extraFooter,
64
+ itemRender = _ref.itemRender,
59
65
  drawerProps = _ref.drawerProps;
60
66
  var i18n = core.useLocaleContext();
67
+ var _useUncontrolledState = useUncontrolledState.useUncontrolledState(hiddenColKeysPropBeforeVerify !== null && hiddenColKeysPropBeforeVerify !== void 0 ? hiddenColKeysPropBeforeVerify : [], cacheHiddenColKeysProp, onCacheHiddenColKeysChange),
68
+ cacheHiddenColKeys = _useUncontrolledState[0],
69
+ setCacheHiddenColKeys = _useUncontrolledState[1];
61
70
  // 根据列字段合并 sortedColKeys、hiddenColKeys
62
71
  var _useColSet = useColSet.useColSet({
63
72
  columns: columnsProp,
@@ -84,9 +93,7 @@ var SettingDrawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
84
93
  onHiddenColKeysChange: onHiddenColKeysChange
85
94
  }),
86
95
  hiddenColKeys = _useColHidden.hiddenColKeys,
87
- setHiddenColKeys = _useColHidden.setHiddenColKeys,
88
- cacheHiddenColKeys = _useColHidden.cacheHiddenColKeys,
89
- setCacheHiddenColKeys = _useColHidden.setCacheHiddenColKeys;
96
+ setHiddenColKeys = _useColHidden.setHiddenColKeys;
90
97
  var dropProps = useDragSorter.useDrop({
91
98
  draggable: true,
92
99
  idFieldName: 'dataKey',
@@ -113,9 +120,9 @@ var SettingDrawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
113
120
  }));
114
121
  }
115
122
  });
116
- var _useUncontrolledState = useUncontrolledState.useUncontrolledState(false, visibleProp, _onClose),
117
- visible = _useUncontrolledState[0],
118
- setVisible = _useUncontrolledState[1];
123
+ var _useUncontrolledState2 = useUncontrolledState.useUncontrolledState(false, visibleProp, _onClose),
124
+ visible = _useUncontrolledState2[0],
125
+ setVisible = _useUncontrolledState2[1];
119
126
  var resetLatest = useLatest.useLatestCallback(function () {
120
127
  setCacheHiddenColKeys(hiddenColKeys);
121
128
  setCacheSortedCols(sortedCols);
@@ -152,25 +159,26 @@ var SettingDrawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
152
159
  },
153
160
  width: 304,
154
161
  footer: /*#__PURE__*/React__default["default"].createElement("div", {
155
- className: prefixCls + "__btn-group"
162
+ className: prefixCls + "-footer"
163
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
164
+ className: prefixCls + "-footer__extra"
165
+ }, extraFooter), /*#__PURE__*/React__default["default"].createElement("div", {
166
+ className: prefixCls + "-footer__action"
156
167
  }, /*#__PURE__*/React__default["default"].createElement(button.Button, {
157
- key: 0,
158
- className: prefixCls + "__btn-cancel",
159
168
  onClick: resetLatest
160
169
  }, i18n.get('table.reset')), /*#__PURE__*/React__default["default"].createElement(button.Button, {
161
- key: 1,
162
- className: prefixCls + "__btn-confirm",
163
170
  onClick: onConfirm,
164
171
  type: "primary"
165
- }, i18n.get('table.confirm')))
172
+ }, i18n.get('table.confirm'))))
166
173
  }, drawerProps), /*#__PURE__*/React__default["default"].createElement("div", {
167
174
  className: prefixCls + "__content"
168
- }, cacheSortedCols.map(function (col, index) {
175
+ }, extraHeader, cacheSortedCols.map(function (col, index) {
169
176
  return /*#__PURE__*/React__default["default"].createElement(SettingItem, {
170
177
  key: col.dataKey,
171
178
  prefixCls: prefixCls,
172
179
  column: col,
173
180
  index: index,
181
+ render: itemRender,
174
182
  dropProps: dropProps,
175
183
  cacheHiddenColKeys: cacheHiddenColKeys,
176
184
  setCacheHiddenColKeys: setCacheHiddenColKeys,
@@ -188,7 +196,8 @@ function SettingItem(_ref2) {
188
196
  setCacheHiddenColKeys = _ref2.setCacheHiddenColKeys,
189
197
  dropProps = _ref2.dropProps,
190
198
  index = _ref2.index,
191
- checkDisabled = _ref2.checkDisabled;
199
+ checkDisabled = _ref2.checkDisabled,
200
+ render = _ref2.render;
192
201
  var dataKey = column.dataKey,
193
202
  title = column.title;
194
203
  var _useDrag = useDragSorter.useDrag(Object.assign(Object.assign({}, dropProps), {
@@ -215,6 +224,6 @@ function SettingItem(_ref2) {
215
224
  }) : cacheHiddenColKeys.concat(dataKey);
216
225
  setCacheHiddenColKeys(nextCacheHiddenColKeys);
217
226
  }
218
- }, /*#__PURE__*/React__default["default"].createElement("span", null, funcUtils.runIfFunc(title))), /*#__PURE__*/React__default["default"].createElement(icons.MoveOutlined, null)));
227
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, typeAssertion.isFunction(render) ? render(column) : funcUtils.runIfFunc(title))), /*#__PURE__*/React__default["default"].createElement(icons.MoveOutlined, null)));
219
228
  }
220
229
  exports.SettingDrawer = SettingDrawer;
package/lib/cjs/Table.js CHANGED
@@ -31,15 +31,15 @@ var treeUtils = require('@hi-ui/tree-utils');
31
31
  var BaseTable = require('./BaseTable.js');
32
32
  var index = require('./utils/index.js');
33
33
  var useColSet = require('./hooks/use-col-set.js');
34
- function _interopDefaultLegacy(e) {
34
+ function _interopDefaultCompat(e) {
35
35
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
36
36
  'default': e
37
37
  };
38
38
  }
39
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
40
- var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
41
- var Loading__default = /*#__PURE__*/_interopDefaultLegacy(Loading);
42
- var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
39
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
40
+ var Pagination__default = /*#__PURE__*/_interopDefaultCompat(Pagination);
41
+ var Loading__default = /*#__PURE__*/_interopDefaultCompat(Loading);
42
+ var Checkbox__default = /*#__PURE__*/_interopDefaultCompat(Checkbox);
43
43
  var _prefix = classname.getPrefixCls('table');
44
44
  /**
45
45
  * 需要使用双表格的场景对应的 API
@@ -258,6 +258,8 @@ var Table = /*#__PURE__*/React.forwardRef(function (_a, ref) {
258
258
  var selectionColumn = {
259
259
  dataKey: SELECTION_DATA_KEY,
260
260
  width: checkboxColWidth,
261
+ // selectionColumn 宽度固定,防止自动被拉伸
262
+ fixed: true,
261
263
  className: prefixCls + "__selection-col",
262
264
  title: renderSelectionTitleCell,
263
265
  // @ts-ignore
@@ -22,14 +22,14 @@ var icons = require('@hi-ui/icons');
22
22
  var Popper = require('@hi-ui/popper');
23
23
  var useToggle = require('@hi-ui/use-toggle');
24
24
  var typeAssertion = require('@hi-ui/type-assertion');
25
- function _interopDefaultLegacy(e) {
25
+ function _interopDefaultCompat(e) {
26
26
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
27
27
  'default': e
28
28
  };
29
29
  }
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
- var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
32
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
30
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
+ var Select__default = /*#__PURE__*/_interopDefaultCompat(Select);
32
+ var Popper__default = /*#__PURE__*/_interopDefaultCompat(Popper);
33
33
  var renderFilter = function renderFilter(_ref) {
34
34
  var prefixCls = _ref.prefixCls,
35
35
  column = _ref.column,
@@ -19,18 +19,18 @@ var classname = require('@hi-ui/classname');
19
19
  var env = require('@hi-ui/env');
20
20
  var useLatest = require('@hi-ui/use-latest');
21
21
  var typeAssertion = require('@hi-ui/type-assertion');
22
- require('./packages/ui/scrollbar/lib/esm/styles/index.scss.js');
23
- var Scrollbar = require('./packages/ui/scrollbar/lib/esm/Scrollbar.js');
22
+ var Scrollbar = require('@hi-ui/scrollbar');
24
23
  var TableRow = require('./TableRow.js');
25
24
  var context = require('./context.js');
26
25
  var ColGroupContent = require('./ColGroupContent.js');
27
26
  var TbodyContent = require('./TbodyContent.js');
28
- function _interopDefaultLegacy(e) {
27
+ function _interopDefaultCompat(e) {
29
28
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
30
29
  'default': e
31
30
  };
32
31
  }
33
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
33
+ var Scrollbar__default = /*#__PURE__*/_interopDefaultCompat(Scrollbar);
34
34
  var _role = 'table';
35
35
  var _prefix = classname.getPrefixCls(_role);
36
36
  var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
@@ -158,7 +158,7 @@ var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
158
158
  }
159
159
  };
160
160
  // 外层增加 div 作为滚动容器
161
- return !scrollbar ? ( /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, scrollBodyProps), bodyContent)) : ( /*#__PURE__*/React__default["default"].createElement(Scrollbar.Scrollbar, Object.assign({}, scrollBodyProps, typeAssertion.isObject(scrollbar) ? scrollbar : null), bodyContent));
161
+ return !scrollbar ? ( /*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, scrollBodyProps), bodyContent)) : ( /*#__PURE__*/React__default["default"].createElement(Scrollbar__default["default"], Object.assign({}, scrollBodyProps, typeAssertion.isObject(scrollbar) ? scrollbar : null), bodyContent));
162
162
  });
163
163
  if (env.__DEV__) {
164
164
  TableBody.displayName = 'TableBody';
@@ -22,12 +22,12 @@ var iconButton = require('@hi-ui/icon-button');
22
22
  var context = require('./context.js');
23
23
  var index = require('./icons/index.js');
24
24
  var BaseTable = require('./BaseTable.js');
25
- function _interopDefaultLegacy(e) {
25
+ function _interopDefaultCompat(e) {
26
26
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
27
27
  'default': e
28
28
  };
29
29
  }
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
31
  var _prefix = classname.getPrefixCls('table-cell');
32
32
  /**
33
33
  * 表格 body 单元格渲染
@@ -22,13 +22,13 @@ var Popper = require('@hi-ui/popper');
22
22
  var useToggle = require('@hi-ui/use-toggle');
23
23
  var context = require('./context.js');
24
24
  var core = require('@hi-ui/core');
25
- function _interopDefaultLegacy(e) {
25
+ function _interopDefaultCompat(e) {
26
26
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
27
27
  'default': e
28
28
  };
29
29
  }
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
- var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
30
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
+ var Popper__default = /*#__PURE__*/_interopDefaultCompat(Popper);
32
32
  var _prefix = classname.getPrefixCls('table-column-menu');
33
33
  /**
34
34
  * 表头每列下拉式菜单,包含冻结、高亮、递增、递减操作
@@ -18,13 +18,13 @@ var classname = require('@hi-ui/classname');
18
18
  var env = require('@hi-ui/env');
19
19
  var context = require('./context.js');
20
20
  var Loading = require('@hi-ui/loading');
21
- function _interopDefaultLegacy(e) {
21
+ function _interopDefaultCompat(e) {
22
22
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
23
23
  'default': e
24
24
  };
25
25
  }
26
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
- var Loading__default = /*#__PURE__*/_interopDefaultLegacy(Loading);
26
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
27
+ var Loading__default = /*#__PURE__*/_interopDefaultCompat(Loading);
28
28
  var _prefix = classname.getPrefixCls('table-embed-row');
29
29
  /**
30
30
  * 可展开的内嵌面板
@@ -19,12 +19,12 @@ var env = require('@hi-ui/env');
19
19
  var context = require('./context.js');
20
20
  var ColGroupContent = require('./ColGroupContent.js');
21
21
  var TheadContent = require('./TheadContent.js');
22
- function _interopDefaultLegacy(e) {
22
+ function _interopDefaultCompat(e) {
23
23
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
24
24
  'default': e
25
25
  };
26
26
  }
27
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
28
28
  var _prefix = classname.getPrefixCls('table-header');
29
29
  var TableHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
30
30
  var _ref$prefixCls = _ref.prefixCls,
@@ -24,18 +24,19 @@ var domUtils = require('@hi-ui/dom-utils');
24
24
  var Table = require('./Table.js');
25
25
  var BaseTable = require('./BaseTable.js');
26
26
  var typeAssertion = require('@hi-ui/type-assertion');
27
- function _interopDefaultLegacy(e) {
27
+ function _interopDefaultCompat(e) {
28
28
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
29
29
  'default': e
30
30
  };
31
31
  }
32
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
33
33
  var _role = 'table';
34
34
  var _prefix = classname.getPrefixCls(_role);
35
35
  var EMBED_ON_ROW_PROPS = {};
36
36
  var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
37
37
  var _ref$prefixCls = _ref.prefixCls,
38
38
  prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
39
+ className = _ref.className,
39
40
  rowDataProp = _ref.rowData,
40
41
  rowIndex = _ref.rowIndex,
41
42
  expandedTree = _ref.expandedTree,
@@ -58,7 +59,8 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
58
59
  dragRowRef = _useTableContext.dragRowRef,
59
60
  onRow = _useTableContext.onRow,
60
61
  colWidths = _useTableContext.colWidths,
61
- virtual = _useTableContext.virtual;
62
+ virtual = _useTableContext.virtual,
63
+ cellClassName = _useTableContext.cellClassName;
62
64
  var rowData = rowDataProp.raw,
63
65
  rowId = rowDataProp.id;
64
66
  // ** ************** 拖拽管理 *************** *//
@@ -144,7 +146,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
144
146
  // ** ************** 行状态管理 *************** *//
145
147
  var highlighted = isHighlightedRow(rowId);
146
148
  var hasError = isErrorRow(rowId);
147
- var cls = classname.cx(prefixCls + "-row", showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 1 && 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");
149
+ var cls = classname.cx(prefixCls + "-row", showRowHighlight && prefixCls + "-row--hover", striped && (rowIndex & 1) === 1 && 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);
148
150
  var firstColumn = flattedColumnsWithoutChildren.find(function (item) {
149
151
  return item.dataKey !== Table.SELECTION_DATA_KEY && item.dataKey !== BaseTable.EMBED_DATA_KEY;
150
152
  });
@@ -203,6 +205,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
203
205
  }), flattedColumnsWithoutChildren.map(function (column, idx) {
204
206
  return /*#__PURE__*/React__default["default"].createElement(TableCell.TableCell, {
205
207
  key: idx,
208
+ className: cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(rowDataProp, column, idx),
206
209
  column: column,
207
210
  isSwitcherCol: firstColumn ? firstColumn.id === column.id : false,
208
211
  rowData: rowDataProp,
@@ -28,13 +28,13 @@ var useDragSorter = require('@hi-ui/use-drag-sorter');
28
28
  var drawer = require('@hi-ui/drawer');
29
29
  var button = require('@hi-ui/button');
30
30
  var Checkbox = require('@hi-ui/checkbox');
31
- function _interopDefaultLegacy(e) {
31
+ function _interopDefaultCompat(e) {
32
32
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
33
33
  'default': e
34
34
  };
35
35
  }
36
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
37
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
36
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultCompat(_regeneratorRuntime);
37
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
38
38
  var _prefix = classname.getPrefixCls('table-setting');
39
39
  /**
40
40
  * 表头右侧高级设置菜单(抽屉式)
@@ -21,12 +21,12 @@ var typeAssertion = require('@hi-ui/type-assertion');
21
21
  var emptyState = require('@hi-ui/empty-state');
22
22
  var TableRow = require('./TableRow.js');
23
23
  var context = require('./context.js');
24
- function _interopDefaultLegacy(e) {
24
+ function _interopDefaultCompat(e) {
25
25
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
26
  'default': e
27
27
  };
28
28
  }
29
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
30
30
  var _prefix = classname.getPrefixCls('table-body');
31
31
  var TbodyContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
32
32
  var _ref$prefixCls = _ref.prefixCls,
@@ -41,7 +41,8 @@ var TbodyContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
41
41
  avgRow = _useTableContext.avgRow,
42
42
  hasSumColumn = _useTableContext.hasSumColumn,
43
43
  sumRow = _useTableContext.sumRow,
44
- measureRowElementRef = _useTableContext.measureRowElementRef;
44
+ measureRowElementRef = _useTableContext.measureRowElementRef,
45
+ rowClassName = _useTableContext.rowClassName;
45
46
  var getRequiredProps = useLatest.useLatestCallback(function (id) {
46
47
  return {
47
48
  // @ts-ignore
@@ -59,6 +60,7 @@ var TbodyContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
59
60
  ref: index === 0 ? measureRowElementRef : null,
60
61
  // key={depth + index}
61
62
  key: row.id,
63
+ className: rowClassName === null || rowClassName === void 0 ? void 0 : rowClassName(row, index),
62
64
  // @ts-ignore
63
65
  rowIndex: index,
64
66
  rowData: row
@@ -22,12 +22,12 @@ var typeAssertion = require('@hi-ui/type-assertion');
22
22
  var useCheckState = require('@hi-ui/use-check-state');
23
23
  var context = require('./context.js');
24
24
  var TableAdvancedFilter = require('./TableAdvancedFilter.js');
25
- function _interopDefaultLegacy(e) {
25
+ function _interopDefaultCompat(e) {
26
26
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
27
27
  'default': e
28
28
  };
29
29
  }
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
31
31
  var _prefix = classname.getPrefixCls('table-header');
32
32
  var TheadContent = /*#__PURE__*/React.forwardRef(function (_a, ref) {
33
33
  var _a$prefixCls = _a.prefixCls,
@@ -19,12 +19,12 @@ var React = require('react');
19
19
  var useLatest = require('@hi-ui/use-latest');
20
20
  var treeUtils = require('@hi-ui/tree-utils');
21
21
  var useCheckState = require('@hi-ui/use-check-state');
22
- function _interopDefaultLegacy(e) {
22
+ function _interopDefaultCompat(e) {
23
23
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
24
24
  'default': e
25
25
  };
26
26
  }
27
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
27
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultCompat(_regeneratorRuntime);
28
28
  var useAsyncSwitch = function useAsyncSwitch(_ref) {
29
29
  var setCascaderData = _ref.setCascaderData,
30
30
  onExpand = _ref.onExpand,
@@ -16,12 +16,12 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var useCheck = require('@hi-ui/use-check');
17
17
  var React = require('react');
18
18
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
19
- function _interopDefaultLegacy(e) {
19
+ function _interopDefaultCompat(e) {
20
20
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
21
  'default': e
22
22
  };
23
23
  }
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
25
  var DEFAULT_CHECKED_ROW_KEYS = [];
26
26
  var useTableCheck = function useTableCheck(_ref) {
27
27
  var rowSelection = _ref.rowSelection,
@@ -16,17 +16,19 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var React = require('react');
17
17
  var index = require('../utils/index.js');
18
18
  var useUpdateEffect = require('@hi-ui/use-update-effect');
19
- function _interopDefaultLegacy(e) {
19
+ function _interopDefaultCompat(e) {
20
20
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
21
  'default': e
22
22
  };
23
23
  }
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
25
  var useColWidth = function useColWidth(_ref) {
26
26
  var resizable = _ref.resizable,
27
27
  columns = _ref.columns,
28
28
  virtual = _ref.virtual;
29
29
  var measureRowElementRef = React__default["default"].useRef(null);
30
+ // 是否重新设置过表格每列宽度
31
+ var hasResetWidths = React__default["default"].useRef(false);
30
32
  var _React$useState = React__default["default"].useState(function () {
31
33
  return index.getGroupItemWidth(columns);
32
34
  }),
@@ -59,7 +61,7 @@ var useColWidth = function useColWidth(_ref) {
59
61
  }, [columns]);
60
62
  useUpdateEffect.useUpdateEffect(function () {
61
63
  if (virtual) {
62
- // 虚拟滚动的计算需要根据容器来做分配,不能使用没有witdh默认设置为0的方式来做表格平均分配
64
+ // 虚拟滚动的计算需要根据容器来做分配,不能使用没有width默认设置为0的方式来做表格平均分配
63
65
  setColWidths(getVirtualWidths());
64
66
  }
65
67
  }, [getVirtualWidths, virtual]);
@@ -75,24 +77,51 @@ var useColWidth = function useColWidth(_ref) {
75
77
  var _resizeObserver = new ResizeObserver(function () {
76
78
  if (virtual) {
77
79
  setColWidths(getVirtualWidths());
80
+ } else {
81
+ // 当第一行有内容时并且没有重新设置列宽时,在去设置列宽
82
+ // todo 临时方案:hasResetWidths.current 作用是防止某些浏览器下,下面逻辑死循环
83
+ if ((measureRowElement === null || measureRowElement === void 0 ? void 0 : measureRowElement.childNodes) && hasResetWidths.current === false) {
84
+ hasResetWidths.current = true;
85
+ // 超出的宽度,真实的表格宽度超出的每列总和的宽度
86
+ var exceedWidth = 0;
87
+ var _realColumnsWidth = Array.from(measureRowElement.childNodes).map(function (node, index) {
88
+ var _a;
89
+ var realWidth = node.getBoundingClientRect().width || 0;
90
+ var _ref2 = (_a = columns[index]) !== null && _a !== void 0 ? _a : {},
91
+ width = _ref2.width,
92
+ fixed = _ref2.fixed;
93
+ // 如果该列设置了 fixed 并且真实宽度大于设置的 width 则设置为 width
94
+ if (fixed && width && width < realWidth) {
95
+ exceedWidth += realWidth - width;
96
+ return width;
97
+ }
98
+ return realWidth;
99
+ });
100
+ // 如果有多余的宽度,则将多余的宽度平分到没有设置 maxWidth 的列上
101
+ if (exceedWidth > 0) {
102
+ var noFixedColumns = columns.filter(function (item) {
103
+ return !item.fixed;
104
+ });
105
+ _realColumnsWidth.map(function (item, index) {
106
+ if (!columns[index].fixed) {
107
+ return item + Math.floor(exceedWidth / noFixedColumns.length);
108
+ }
109
+ return item;
110
+ });
111
+ }
112
+ if (_realColumnsWidth.some(function (width) {
113
+ return width && width > 0;
114
+ })) {
115
+ setColWidths(_realColumnsWidth);
116
+ }
117
+ }
78
118
  }
79
- // else {
80
- // if (measureRowElement.childNodes) {
81
- // const _realColumnsWidth = Array.from(measureRowElement.childNodes).map((node) => {
82
- // return (node as HTMLElement).getBoundingClientRect().width || 0
83
- // })
84
- // if (_realColumnsWidth.some((width) => width && width > 0)) {
85
- // setColWidths(_realColumnsWidth)
86
- // }
87
- // }
88
- // }
89
119
  });
90
-
91
120
  _resizeObserver.observe(measureRowElement);
92
121
  }
93
122
  return function () {};
94
123
  // 测量元素在内容列为空时会是空,切换会使测量元素变化,导致后续的resize时间无法响应,此处测量元素变化时需要重新绑定
95
- }, [getVirtualWidths, virtual]);
124
+ }, [columns, getVirtualWidths, virtual]);
96
125
  var _React$useState2 = React__default["default"].useState(null),
97
126
  headerTableElement = _React$useState2[0],
98
127
  setHeaderTableElement = _React$useState2[1];
@@ -118,8 +147,8 @@ var useColWidth = function useColWidth(_ref) {
118
147
  /**
119
148
  * 列宽拖拽 resize,只处理拖拽线两边的列宽度
120
149
  */
121
- var onColumnResizable = React__default["default"].useCallback(function (_, _ref2, index) {
122
- var size = _ref2.size;
150
+ var onColumnResizable = React__default["default"].useCallback(function (_, _ref3, index) {
151
+ var size = _ref3.size;
123
152
  var minWidth = minColWidth[index];
124
153
  var anotherMinWidth = minColWidth[index + 1];
125
154
  var nextWidth = size.width > minWidth ? size.width : minWidth;
@@ -16,12 +16,12 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var React = require('react');
17
17
  var treeUtils = require('@hi-ui/tree-utils');
18
18
  var typeAssertion = require('@hi-ui/type-assertion');
19
- function _interopDefaultLegacy(e) {
19
+ function _interopDefaultCompat(e) {
20
20
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
21
  'default': e
22
22
  };
23
23
  }
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
25
25
  var useColumns = function useColumns(_ref) {
26
26
  var columns = _ref.columns;
27
27
  // 拉平后的数据
@@ -17,12 +17,12 @@ var React = require('react');
17
17
  var useLatest = require('@hi-ui/use-latest');
18
18
  var treeUtils = require('@hi-ui/tree-utils');
19
19
  var typeAssertion = require('@hi-ui/type-assertion');
20
- function _interopDefaultLegacy(e) {
20
+ function _interopDefaultCompat(e) {
21
21
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
22
22
  'default': e
23
23
  };
24
24
  }
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
26
26
  var useTableDrag = function useTableDrag(_ref) {
27
27
  var cacheData = _ref.cacheData,
28
28
  setCacheData = _ref.setCacheData,
@@ -20,13 +20,13 @@ var typeAssertion = require('@hi-ui/type-assertion');
20
20
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
21
21
  var useCheck = require('@hi-ui/use-check');
22
22
  var useCheckState = require('@hi-ui/use-check-state');
23
- function _interopDefaultLegacy(e) {
23
+ function _interopDefaultCompat(e) {
24
24
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
25
25
  'default': e
26
26
  };
27
27
  }
28
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
29
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultCompat(_regeneratorRuntime);
29
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
30
30
  var DEFAULT_EXPAND_EMBED_ROW_KEYS = [];
31
31
  /**
32
32
  * 行内嵌面板展开
@@ -17,13 +17,13 @@ var React = require('react');
17
17
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
18
18
  var useLatest = require('@hi-ui/use-latest');
19
19
  var axios = require('axios');
20
- function _interopDefaultLegacy(e) {
20
+ function _interopDefaultCompat(e) {
21
21
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
22
22
  'default': e
23
23
  };
24
24
  }
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
- var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
25
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
26
+ var axios__default = /*#__PURE__*/_interopDefaultCompat(axios);
27
27
  var useTablePagination = function useTablePagination(_ref) {
28
28
  var pagination = _ref.pagination,
29
29
  loadingProp = _ref.loadingProp,