@hi-ui/table 4.3.4 → 4.4.0-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.
Files changed (54) 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 +3 -3
  5. package/lib/cjs/Table.js +5 -5
  6. package/lib/cjs/TableAdvancedFilter.js +4 -4
  7. package/lib/cjs/TableBody.js +2 -2
  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 +4 -3
  37. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +4 -3
  38. package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +7 -4
  39. package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +3 -3
  40. package/lib/cjs/use-table.js +8 -4
  41. package/lib/esm/TableRow.js +5 -2
  42. package/lib/esm/TbodyContent.js +3 -1
  43. package/lib/esm/hooks/use-col-width.js +44 -15
  44. package/lib/esm/node_modules/rc-virtual-list/es/index.js +1 -1
  45. package/lib/esm/node_modules/react-is/cjs/react-is.development.js +1 -1
  46. package/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +1 -1
  47. package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +5 -2
  48. package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -1
  49. package/lib/esm/use-table.js +6 -2
  50. package/lib/types/TableRow.d.ts +4 -0
  51. package/lib/types/context.d.ts +4 -0
  52. package/lib/types/types.d.ts +4 -0
  53. package/lib/types/use-table.d.ts +11 -1
  54. package/package.json +1 -1
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,
@@ -30,13 +30,13 @@ var drawer = require('@hi-ui/drawer');
30
30
  var button = require('@hi-ui/button');
31
31
  var Checkbox = require('@hi-ui/checkbox');
32
32
  var useColSet = require('./hooks/use-col-set.js');
33
- function _interopDefaultLegacy(e) {
33
+ function _interopDefaultCompat(e) {
34
34
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
35
35
  'default': e
36
36
  };
37
37
  }
38
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
39
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultCompat(_regeneratorRuntime);
39
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
40
40
  var _prefix = classname.getPrefixCls('setting');
41
41
  /**
42
42
  * 设置抽屉
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
@@ -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,
@@ -25,12 +25,12 @@ var TableRow = require('./TableRow.js');
25
25
  var context = require('./context.js');
26
26
  var ColGroupContent = require('./ColGroupContent.js');
27
27
  var TbodyContent = require('./TbodyContent.js');
28
- function _interopDefaultLegacy(e) {
28
+ function _interopDefaultCompat(e) {
29
29
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
30
30
  'default': e
31
31
  };
32
32
  }
33
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
34
34
  var _role = 'table';
35
35
  var _prefix = classname.getPrefixCls(_role);
36
36
  var TableBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
@@ -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,
@@ -16,12 +16,12 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var React = require('react');
17
17
  var icons = require('@hi-ui/icons');
18
18
  var spinner = require('@hi-ui/spinner');
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 defaultCollapseIcon = /*#__PURE__*/React__default["default"].createElement(icons.CaretDownFilled, {
26
26
  style: {
27
27
  transition: 'transform 0.3s',
@@ -24,13 +24,13 @@ var toArray = require('../node_modules/rc-util/es/Children/toArray.js');
24
24
  var warning = require('../node_modules/rc-util/es/warning.js');
25
25
  var ref = require('../node_modules/rc-util/es/ref.js');
26
26
  var ResizeObserver_es = require('../../resize-observer-polyfill/dist/ResizeObserver.es.js');
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
- function _interopNamespace(e) {
33
- if (e && e.__esModule) return e;
32
+ function _interopNamespaceCompat(e) {
33
+ if (e && _typeof(e) === 'object' && 'default' in e) return e;
34
34
  var n = Object.create(null);
35
35
  if (e) {
36
36
  Object.keys(e).forEach(function (k) {
@@ -48,12 +48,12 @@ function _interopNamespace(e) {
48
48
  n["default"] = e;
49
49
  return Object.freeze(n);
50
50
  }
51
- var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
52
- var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
53
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
54
- var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
55
- var _createSuper__default = /*#__PURE__*/_interopDefaultLegacy(_createSuper);
56
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
51
+ var _objectSpread__default = /*#__PURE__*/_interopDefaultCompat(_objectSpread);
52
+ var _classCallCheck__default = /*#__PURE__*/_interopDefaultCompat(_classCallCheck);
53
+ var _createClass__default = /*#__PURE__*/_interopDefaultCompat(_createClass);
54
+ var _inherits__default = /*#__PURE__*/_interopDefaultCompat(_inherits);
55
+ var _createSuper__default = /*#__PURE__*/_interopDefaultCompat(_createSuper);
56
+ var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);
57
57
  var INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here
58
58
 
59
59
  var ReactResizeObserver = /*#__PURE__*/function (_React$Component) {
@@ -16,12 +16,12 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var React = require('react');
17
17
  require('../../../../../react-is/index.js');
18
18
  var index = require('../../../../../../_virtual/index2.js');
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
  function toArray(children) {
26
26
  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27
27
  var ret = [];
@@ -14,12 +14,12 @@ Object.defineProperty(exports, '__esModule', {
14
14
  value: true
15
15
  });
16
16
  var ReactDOM = require('react-dom');
17
- function _interopDefaultLegacy(e) {
17
+ function _interopDefaultCompat(e) {
18
18
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
19
19
  'default': e
20
20
  };
21
21
  }
22
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
22
+ var ReactDOM__default = /*#__PURE__*/_interopDefaultCompat(ReactDOM);
23
23
 
24
24
  /**
25
25
  * Return if a node is a DOM node. Else will return by `findDOMNode`
@@ -16,12 +16,12 @@ Object.defineProperty(exports, '__esModule', {
16
16
  var _typeof = require('@babel/runtime/helpers/esm/typeof');
17
17
  require('../../../../react-is/index.js');
18
18
  var index = require('../../../../../_virtual/index2.js');
19
- function _interopDefaultLegacy(e) {
19
+ function _interopDefaultCompat(e) {
20
20
  return e && _typeof2(e) === 'object' && 'default' in e ? e : {
21
21
  'default': e
22
22
  };
23
23
  }
24
- var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
24
+ var _typeof__default = /*#__PURE__*/_interopDefaultCompat(_typeof);
25
25
  function fillRef(ref, node) {
26
26
  if (typeof ref === 'function') {
27
27
  ref(node);
@@ -14,12 +14,12 @@ Object.defineProperty(exports, '__esModule', {
14
14
  value: true
15
15
  });
16
16
  var ReactDOM = require('react-dom');
17
- function _interopDefaultLegacy(e) {
17
+ function _interopDefaultCompat(e) {
18
18
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
19
19
  'default': e
20
20
  };
21
21
  }
22
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
22
+ var ReactDOM__default = /*#__PURE__*/_interopDefaultCompat(ReactDOM);
23
23
 
24
24
  /**
25
25
  * Return if a node is a DOM node. Else will return by `findDOMNode`