@hi-ui/table 4.3.0 → 4.3.2-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 (138) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/cjs/BaseTable.js +136 -189
  3. package/lib/cjs/ColGroupContent.js +5 -28
  4. package/lib/cjs/SettingDrawer.js +76 -127
  5. package/lib/cjs/Table.js +107 -171
  6. package/lib/cjs/TableAdvancedFilter.js +49 -85
  7. package/lib/cjs/TableBody.js +42 -73
  8. package/lib/cjs/TableCell.js +56 -102
  9. package/lib/cjs/TableColumnMenu.js +39 -77
  10. package/lib/cjs/TableEmbedRow.js +11 -38
  11. package/lib/cjs/TableHeader.js +8 -33
  12. package/lib/cjs/TableRow.js +48 -88
  13. package/lib/cjs/TableSettingMenu.js +48 -94
  14. package/lib/cjs/TbodyContent.js +28 -56
  15. package/lib/cjs/TheadContent.js +20 -49
  16. package/lib/cjs/_virtual/index.js +0 -3
  17. package/lib/cjs/_virtual/index2.js +0 -3
  18. package/lib/cjs/_virtual/react-is.development.js +0 -3
  19. package/lib/cjs/_virtual/react-is.production.min.js +0 -3
  20. package/lib/cjs/context.js +0 -9
  21. package/lib/cjs/hooks/use-async-switch.js +13 -51
  22. package/lib/cjs/hooks/use-check.js +47 -77
  23. package/lib/cjs/hooks/use-col-hidden.js +16 -28
  24. package/lib/cjs/hooks/use-col-set.js +5 -18
  25. package/lib/cjs/hooks/use-col-sorter.js +18 -32
  26. package/lib/cjs/hooks/use-col-width.js +21 -57
  27. package/lib/cjs/hooks/use-colgroup.js +63 -85
  28. package/lib/cjs/hooks/use-drag.js +10 -31
  29. package/lib/cjs/hooks/use-embed-expand.js +23 -68
  30. package/lib/cjs/hooks/use-expand.js +32 -64
  31. package/lib/cjs/hooks/use-pagination.js +19 -50
  32. package/lib/cjs/hooks/use-queue.js +2 -14
  33. package/lib/cjs/icons/index.js +4 -21
  34. package/lib/cjs/index.js +0 -4
  35. package/lib/cjs/node_modules/classnames/index.js +2 -11
  36. package/lib/cjs/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +1090 -0
  37. package/lib/cjs/node_modules/rc-resize-observer/es/index.js +10 -68
  38. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +1 -17
  39. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
  40. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +1 -25
  41. package/lib/cjs/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +1 -5
  42. package/lib/cjs/node_modules/rc-util/es/Dom/canUseDom.js +0 -2
  43. package/lib/cjs/node_modules/rc-util/es/Dom/findDOMNode.js +1 -14
  44. package/lib/cjs/node_modules/rc-util/es/hooks/useLayoutEffect.js +2 -9
  45. package/lib/cjs/node_modules/rc-util/es/raf.js +0 -11
  46. package/lib/cjs/node_modules/rc-virtual-list/es/Filler.js +6 -25
  47. package/lib/cjs/node_modules/rc-virtual-list/es/Item.js +3 -14
  48. package/lib/cjs/node_modules/rc-virtual-list/es/List.js +103 -194
  49. package/lib/cjs/node_modules/rc-virtual-list/es/ScrollBar.js +16 -96
  50. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useChildren.js +2 -11
  51. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +8 -34
  52. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -10
  53. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useHeights.js +6 -39
  54. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -16
  55. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -9
  56. package/lib/cjs/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +3 -28
  57. package/lib/cjs/node_modules/rc-virtual-list/es/index.js +0 -2
  58. package/lib/cjs/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -9
  59. package/lib/cjs/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +0 -15
  60. package/lib/cjs/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -2
  61. package/lib/cjs/node_modules/react-is/cjs/react-is.development.js +3 -29
  62. package/lib/cjs/node_modules/react-is/cjs/react-is.production.min.js +19 -45
  63. package/lib/cjs/node_modules/react-is/index.js +0 -5
  64. package/lib/cjs/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +83 -248
  65. package/lib/cjs/packages/hooks/use-merge-refs/lib/esm/index.js +65 -0
  66. package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +147 -0
  67. package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +28 -0
  68. package/lib/cjs/packages/ui/scrollbar/lib/esm/utils/index.js +68 -0
  69. package/lib/cjs/styles/index.scss.js +1 -4
  70. package/lib/cjs/use-table.js +276 -361
  71. package/lib/cjs/utils/index.js +11 -45
  72. package/lib/esm/BaseTable.js +117 -138
  73. package/lib/esm/ColGroupContent.js +3 -9
  74. package/lib/esm/SettingDrawer.js +64 -83
  75. package/lib/esm/Table.js +97 -124
  76. package/lib/esm/TableAdvancedFilter.js +37 -47
  77. package/lib/esm/TableBody.js +37 -44
  78. package/lib/esm/TableCell.js +48 -72
  79. package/lib/esm/TableColumnMenu.js +24 -38
  80. package/lib/esm/TableEmbedRow.js +8 -15
  81. package/lib/esm/TableHeader.js +5 -11
  82. package/lib/esm/TableRow.js +36 -51
  83. package/lib/esm/TableSettingMenu.js +33 -49
  84. package/lib/esm/TbodyContent.js +20 -27
  85. package/lib/esm/TheadContent.js +14 -21
  86. package/lib/esm/context.js +0 -4
  87. package/lib/esm/hooks/use-async-switch.js +9 -28
  88. package/lib/esm/hooks/use-check.js +42 -55
  89. package/lib/esm/hooks/use-col-hidden.js +16 -21
  90. package/lib/esm/hooks/use-col-set.js +5 -13
  91. package/lib/esm/hooks/use-col-sorter.js +18 -23
  92. package/lib/esm/hooks/use-col-width.js +14 -34
  93. package/lib/esm/hooks/use-colgroup.js +60 -66
  94. package/lib/esm/hooks/use-drag.js +9 -13
  95. package/lib/esm/hooks/use-embed-expand.js +20 -42
  96. package/lib/esm/hooks/use-expand.js +32 -56
  97. package/lib/esm/hooks/use-pagination.js +13 -25
  98. package/lib/esm/hooks/use-queue.js +2 -10
  99. package/lib/esm/node_modules/classnames/index.js +2 -9
  100. package/lib/esm/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js +1084 -0
  101. package/lib/esm/node_modules/rc-resize-observer/es/index.js +3 -26
  102. package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Children/toArray.js +0 -3
  103. package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
  104. package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/ref.js +0 -8
  105. package/lib/esm/node_modules/rc-resize-observer/node_modules/rc-util/es/warning.js +0 -5
  106. package/lib/esm/node_modules/rc-util/es/Dom/canUseDom.js +0 -1
  107. package/lib/esm/node_modules/rc-util/es/Dom/findDOMNode.js +1 -2
  108. package/lib/esm/node_modules/rc-util/es/hooks/useLayoutEffect.js +1 -0
  109. package/lib/esm/node_modules/rc-util/es/raf.js +0 -10
  110. package/lib/esm/node_modules/rc-virtual-list/es/Filler.js +4 -15
  111. package/lib/esm/node_modules/rc-virtual-list/es/Item.js +1 -3
  112. package/lib/esm/node_modules/rc-virtual-list/es/List.js +101 -174
  113. package/lib/esm/node_modules/rc-virtual-list/es/ScrollBar.js +14 -86
  114. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useChildren.js +0 -2
  115. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useDiffItem.js +6 -25
  116. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useFrameWheel.js +0 -6
  117. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useHeights.js +4 -28
  118. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js +0 -13
  119. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useOriginScroll.js +4 -8
  120. package/lib/esm/node_modules/rc-virtual-list/es/hooks/useScrollTo.js +1 -19
  121. package/lib/esm/node_modules/rc-virtual-list/es/index.js +1 -1
  122. package/lib/esm/node_modules/rc-virtual-list/es/utils/CacheMap.js +2 -8
  123. package/lib/esm/node_modules/rc-virtual-list/es/utils/algorithmUtil.js +1 -12
  124. package/lib/esm/node_modules/rc-virtual-list/es/utils/isFirefox.js +0 -1
  125. package/lib/esm/node_modules/react-is/cjs/react-is.development.js +4 -27
  126. package/lib/esm/node_modules/react-is/cjs/react-is.production.min.js +20 -44
  127. package/lib/esm/node_modules/react-is/index.js +0 -1
  128. package/lib/esm/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +82 -248
  129. package/lib/esm/packages/hooks/use-merge-refs/lib/esm/index.js +62 -0
  130. package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +145 -0
  131. package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +23 -0
  132. package/lib/esm/packages/ui/scrollbar/lib/esm/utils/index.js +66 -0
  133. package/lib/esm/styles/index.scss.js +1 -3
  134. package/lib/esm/use-table.js +268 -323
  135. package/lib/esm/utils/index.js +11 -41
  136. package/lib/types/context.d.ts +2 -0
  137. package/lib/types/use-table.d.ts +8 -2
  138. package/package.json +5 -5
@@ -8,21 +8,21 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import { cloneTree, flattenTree, getLeafChildren, getNodeRootParent, flattedTreeSort } from '@hi-ui/tree-utils';
12
11
  import React__default, { useMemo, useState, useRef, useCallback, useEffect } from 'react';
12
+ import { cloneTree, flattenTree, getNodeRootParent, flattedTreeSort, getLeafChildren } from '@hi-ui/tree-utils';
13
13
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
14
- import { useColWidth } from './hooks/use-col-width.js';
15
- import { setColumnsDefaultWidth, parseFixedColumns } from './utils/index.js';
16
14
  import { isNullish, isArrayNonEmpty } from '@hi-ui/type-assertion';
17
15
  import { useCheck, useSelect } from '@hi-ui/use-check';
18
16
  import { invariant } from '@hi-ui/env';
17
+ import { setAttrStatus } from '@hi-ui/dom-utils';
18
+ import { useCache } from '@hi-ui/use-cache';
19
+ import { useLatestCallback } from '@hi-ui/use-latest';
20
+ import { setColumnsDefaultWidth, parseFixedColumns } from './utils/index.js';
19
21
  import { useAsyncSwitch } from './hooks/use-async-switch.js';
20
22
  import { useExpand } from './hooks/use-expand.js';
23
+ import { useColWidth } from './hooks/use-col-width.js';
21
24
  import { useColumns } from './hooks/use-colgroup.js';
22
- import { setAttrStatus } from '@hi-ui/dom-utils';
23
- import { useCache } from '@hi-ui/use-cache';
24
25
  import { useTableDrag } from './hooks/use-drag.js';
25
- import { useLatestCallback } from '@hi-ui/use-latest';
26
26
  var DEFAULT_COLUMNS = [];
27
27
  var DEFAULT_DATA = [];
28
28
  var DEFAULT_ERROR_ROW_KEYS = [];
@@ -30,74 +30,69 @@ var DEFAULT_HIGHLIGHTED_ROW_KEYS = [];
30
30
  var DEFAULT_HIGHLIGHTED_COL_KEYS = [];
31
31
  var DEFAULT_EXPAND_ROW_KEYS = [];
32
32
  var DEFAULT_FIXED_TO_COLUMN = {};
33
-
34
33
  var useTable = function useTable(_a) {
35
34
  var _a$data = _a.data,
36
- data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
37
- _a$columns = _a.columns,
38
- columnsProp = _a$columns === void 0 ? DEFAULT_COLUMNS : _a$columns,
39
- _a$defaultFixedToColu = _a.defaultFixedToColumn,
40
- defaultFixedToColumn = _a$defaultFixedToColu === void 0 ? DEFAULT_FIXED_TO_COLUMN : _a$defaultFixedToColu,
41
- fixedToColumnProp = _a.fixedToColumn,
42
- onFixedToColumn = _a.onFixedToColumn,
43
- scrollWidth = _a.scrollWidth,
44
- _a$resizable = _a.resizable,
45
- resizable = _a$resizable === void 0 ? false : _a$resizable,
46
- _a$errorRowKeys = _a.errorRowKeys,
47
- errorRowKeys = _a$errorRowKeys === void 0 ? DEFAULT_ERROR_ROW_KEYS : _a$errorRowKeys,
48
- highlightedColKeysProp = _a.highlightedColKeys,
49
- highlightedRowKeysProp = _a.highlightedRowKeys,
50
- _a$showColHighlight = _a.showColHighlight,
51
- showColHighlight = _a$showColHighlight === void 0 ? false : _a$showColHighlight,
52
- _a$showRowHighlight = _a.showRowHighlight,
53
- showRowHighlight = _a$showRowHighlight === void 0 ? true : _a$showRowHighlight,
54
- _a$highlightRowOnDoub = _a.highlightRowOnDoubleClick,
55
- highlightRowOnDoubleClick = _a$highlightRowOnDoub === void 0 ? true : _a$highlightRowOnDoub,
56
- _a$defaultExpandedRow = _a.defaultExpandedRowKeys,
57
- defaultExpandedRowKeys = _a$defaultExpandedRow === void 0 ? DEFAULT_EXPAND_ROW_KEYS : _a$defaultExpandedRow,
58
- expandRowKeysProp = _a.expandedRowKeys,
59
- onExpand = _a.onExpand,
60
- _a$defaultExpandAll = _a.defaultExpandAll,
61
- defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
62
- onLoadChildren = _a.onLoadChildren,
63
- maxHeight = _a.maxHeight,
64
- sticky = _a.sticky,
65
- _a$stickyTop = _a.stickyTop,
66
- stickyTop = _a$stickyTop === void 0 ? 0 : _a$stickyTop,
67
- _a$draggable = _a.draggable,
68
- draggable = _a$draggable === void 0 ? false : _a$draggable,
69
- onDropProp = _a.onDrop,
70
- onDropEnd = _a.onDropEnd,
71
- showColMenu = _a.showColMenu,
72
- rowSelection = _a.rowSelection,
73
- cellRender = _a.cellRender,
74
- footerRender = _a.footerRender,
75
- _a$fieldKey = _a.fieldKey,
76
- fieldKey = _a$fieldKey === void 0 ? 'key' : _a$fieldKey,
77
- virtual = _a.virtual,
78
- rootProps = __rest(_a, ["data", "columns", "defaultFixedToColumn", "fixedToColumn", "onFixedToColumn", "scrollWidth", "resizable", "errorRowKeys", "highlightedColKeys", "highlightedRowKeys", "showColHighlight", "showRowHighlight", "highlightRowOnDoubleClick", "defaultExpandedRowKeys", "expandedRowKeys", "onExpand", "defaultExpandAll", "onLoadChildren", "maxHeight", "sticky", "stickyTop", "draggable", "onDragStart", "onDrop", "onDropEnd", "showColMenu", "rowSelection", "cellRender", "footerRender", "fieldKey", "virtual"]);
35
+ data = _a$data === void 0 ? DEFAULT_DATA : _a$data,
36
+ _a$columns = _a.columns,
37
+ columnsProp = _a$columns === void 0 ? DEFAULT_COLUMNS : _a$columns,
38
+ _a$defaultFixedToColu = _a.defaultFixedToColumn,
39
+ defaultFixedToColumn = _a$defaultFixedToColu === void 0 ? DEFAULT_FIXED_TO_COLUMN : _a$defaultFixedToColu,
40
+ fixedToColumnProp = _a.fixedToColumn,
41
+ onFixedToColumn = _a.onFixedToColumn,
42
+ scrollWidth = _a.scrollWidth,
43
+ _a$resizable = _a.resizable,
44
+ resizable = _a$resizable === void 0 ? false : _a$resizable,
45
+ _a$errorRowKeys = _a.errorRowKeys,
46
+ errorRowKeys = _a$errorRowKeys === void 0 ? DEFAULT_ERROR_ROW_KEYS : _a$errorRowKeys,
47
+ highlightedColKeysProp = _a.highlightedColKeys,
48
+ highlightedRowKeysProp = _a.highlightedRowKeys,
49
+ _a$showColHighlight = _a.showColHighlight,
50
+ showColHighlight = _a$showColHighlight === void 0 ? false : _a$showColHighlight,
51
+ _a$showRowHighlight = _a.showRowHighlight,
52
+ showRowHighlight = _a$showRowHighlight === void 0 ? true : _a$showRowHighlight,
53
+ _a$highlightRowOnDoub = _a.highlightRowOnDoubleClick,
54
+ highlightRowOnDoubleClick = _a$highlightRowOnDoub === void 0 ? true : _a$highlightRowOnDoub,
55
+ _a$defaultExpandedRow = _a.defaultExpandedRowKeys,
56
+ defaultExpandedRowKeys = _a$defaultExpandedRow === void 0 ? DEFAULT_EXPAND_ROW_KEYS : _a$defaultExpandedRow,
57
+ expandRowKeysProp = _a.expandedRowKeys,
58
+ onExpand = _a.onExpand,
59
+ _a$defaultExpandAll = _a.defaultExpandAll,
60
+ defaultExpandAll = _a$defaultExpandAll === void 0 ? false : _a$defaultExpandAll,
61
+ onLoadChildren = _a.onLoadChildren,
62
+ maxHeight = _a.maxHeight,
63
+ sticky = _a.sticky,
64
+ _a$stickyTop = _a.stickyTop,
65
+ stickyTop = _a$stickyTop === void 0 ? 0 : _a$stickyTop,
66
+ _a$draggable = _a.draggable,
67
+ draggable = _a$draggable === void 0 ? false : _a$draggable,
68
+ onDropProp = _a.onDrop,
69
+ onDropEnd = _a.onDropEnd,
70
+ showColMenu = _a.showColMenu,
71
+ rowSelection = _a.rowSelection,
72
+ cellRender = _a.cellRender,
73
+ footerRender = _a.footerRender,
74
+ _a$fieldKey = _a.fieldKey,
75
+ fieldKey = _a$fieldKey === void 0 ? 'key' : _a$fieldKey,
76
+ virtual = _a.virtual,
77
+ scrollbar = _a.scrollbar,
78
+ rootProps = __rest(_a, ["data", "columns", "defaultFixedToColumn", "fixedToColumn", "onFixedToColumn", "scrollWidth", "resizable", "errorRowKeys", "highlightedColKeys", "highlightedRowKeys", "showColHighlight", "showRowHighlight", "highlightRowOnDoubleClick", "defaultExpandedRowKeys", "expandedRowKeys", "onExpand", "defaultExpandAll", "onLoadChildren", "maxHeight", "sticky", "stickyTop", "draggable", "onDragStart", "onDrop", "onDropEnd", "showColMenu", "rowSelection", "cellRender", "footerRender", "fieldKey", "virtual", "scrollbar"]);
79
79
  /**
80
80
  * 获取 key 字段值
81
81
  */
82
-
83
-
84
82
  var getRowKeyField = React__default.useCallback(function (item) {
85
83
  var val = item[fieldKey];
86
84
  invariant(!isNullish(val), 'Not found for the unique %s attribute in each row of data prop.', fieldKey);
87
85
  return val;
88
- }, [fieldKey]); // ********************** cache *********************** //
89
-
86
+ }, [fieldKey]);
87
+ // ********************** cache *********************** //
90
88
  var _useCache = useCache(data),
91
- cacheData = _useCache[0],
92
- setCacheData = _useCache[1];
93
-
89
+ cacheData = _useCache[0],
90
+ setCacheData = _useCache[1];
94
91
  var _useCache2 = useCache(columnsProp),
95
- columns = _useCache2[0];
92
+ columns = _useCache2[0];
96
93
  /**
97
94
  * 扁平化数据,支持树形 table
98
95
  */
99
-
100
-
101
96
  var flattedData = useMemo(function () {
102
97
  var clonedData = cloneTree(cacheData);
103
98
  return flattenTree(clonedData, function (node) {
@@ -105,92 +100,81 @@ var useTable = function useTable(_a) {
105
100
  id: getRowKeyField(node.raw)
106
101
  });
107
102
  });
108
- }, [cacheData, getRowKeyField]); // ********************** 树形表格 *********************** //
109
-
103
+ }, [cacheData, getRowKeyField]);
104
+ // ********************** 树形表格 *********************** //
110
105
  var _useExpand = useExpand(flattedData, defaultExpandedRowKeys, expandRowKeysProp, onExpand, defaultExpandAll),
111
- transitionData = _useExpand[0],
112
- onExpandTreeRowsChange = _useExpand[1],
113
- isExpandTreeRows = _useExpand[2]; // 异步展开子树
114
-
115
-
106
+ transitionData = _useExpand[0],
107
+ onExpandTreeRowsChange = _useExpand[1],
108
+ isExpandTreeRows = _useExpand[2];
109
+ // 异步展开子树
116
110
  var _useAsyncSwitch = useAsyncSwitch({
117
- setCascaderData: setCacheData,
118
- onExpand: onExpandTreeRowsChange,
119
- onLoadChildren: onLoadChildren,
120
- fieldKey: fieldKey
121
- }),
122
- isLoadingTreeNodeId = _useAsyncSwitch[0],
123
- onTreeNodeSwitch = _useAsyncSwitch[1]; // ************************ 拖拽 ************************ //
124
-
125
-
111
+ setCascaderData: setCacheData,
112
+ onExpand: onExpandTreeRowsChange,
113
+ onLoadChildren: onLoadChildren,
114
+ fieldKey: fieldKey
115
+ }),
116
+ isLoadingTreeNodeId = _useAsyncSwitch[0],
117
+ onTreeNodeSwitch = _useAsyncSwitch[1];
118
+ // ************************ 拖拽 ************************ //
126
119
  var _useTableDrag = useTableDrag({
127
- cacheData: cacheData,
128
- setCacheData: setCacheData,
129
- draggable: draggable,
130
- flattedData: flattedData,
131
- onDropEnd: onDropEnd,
132
- onDrop: onDropProp,
133
- fieldKey: fieldKey
134
- }),
135
- onDrop = _useTableDrag.onDrop,
136
- dragRowRef = _useTableDrag.dragRowRef; // ************************ colgroup ************************ //
137
-
138
-
120
+ cacheData: cacheData,
121
+ setCacheData: setCacheData,
122
+ draggable: draggable,
123
+ flattedData: flattedData,
124
+ onDropEnd: onDropEnd,
125
+ onDrop: onDropProp,
126
+ fieldKey: fieldKey
127
+ }),
128
+ onDrop = _useTableDrag.onDrop,
129
+ dragRowRef = _useTableDrag.dragRowRef;
130
+ // ************************ colgroup ************************ //
139
131
  var _useColumns = useColumns({
140
- columns: columns
141
- }),
142
- flattedColumns = _useColumns.flattedColumns,
143
- mergedColumns2 = _useColumns.mergedColumns,
144
- leafColumns = _useColumns.leafColumns; // ************************ 列高亮 ************************ //
145
-
132
+ columns: columns
133
+ }),
134
+ flattedColumns = _useColumns.flattedColumns,
135
+ mergedColumns2 = _useColumns.mergedColumns,
136
+ leafColumns = _useColumns.leafColumns;
137
+ // ************************ 列高亮 ************************ //
146
138
  /**
147
139
  * 控制列高亮,依据 column 中的 dataKey 控制
148
140
  */
149
-
150
-
151
141
  var _useUncontrolledState = useUncontrolledState(DEFAULT_HIGHLIGHTED_COL_KEYS, highlightedColKeysProp),
152
- highlightedColKeys = _useUncontrolledState[0],
153
- trySetHighlightedColKeys = _useUncontrolledState[1];
154
-
142
+ highlightedColKeys = _useUncontrolledState[0],
143
+ trySetHighlightedColKeys = _useUncontrolledState[1];
155
144
  var _useCheck = useCheck({
156
- checkedIds: highlightedColKeys,
157
- onCheck: trySetHighlightedColKeys,
158
- idFieldName: 'dataKey'
159
- }),
160
- onHighlightedColChange = _useCheck[0],
161
- isHighlightedCol = _useCheck[1];
145
+ checkedIds: highlightedColKeys,
146
+ onCheck: trySetHighlightedColKeys,
147
+ idFieldName: 'dataKey'
148
+ }),
149
+ onHighlightedColChange = _useCheck[0],
150
+ isHighlightedCol = _useCheck[1];
162
151
  /**
163
152
  * 设置列 hover 时高亮,依据 column 中的 dataKey 控制
164
153
  * 与 highlightedColKeys 互不影响
165
154
  */
166
-
167
-
168
155
  var _useState = useState(''),
169
- hoveredColKey = _useState[0],
170
- setHoveredColKey = _useState[1];
171
-
156
+ hoveredColKey = _useState[0],
157
+ setHoveredColKey = _useState[1];
172
158
  var _useSelect = useSelect({
173
- disabled: !showColHighlight,
174
- selectedId: hoveredColKey,
175
- onSelect: setHoveredColKey
176
- }),
177
- onHoveredColChange = _useSelect[0],
178
- isHoveredHighlightCol = _useSelect[1]; // ************************ 列宽 resizable ************************ //
179
-
180
-
159
+ disabled: !showColHighlight,
160
+ selectedId: hoveredColKey,
161
+ onSelect: setHoveredColKey
162
+ }),
163
+ onHoveredColChange = _useSelect[0],
164
+ isHoveredHighlightCol = _useSelect[1];
165
+ // ************************ 列宽 resizable ************************ //
181
166
  var _useColWidth = useColWidth({
182
- data: data,
183
- columns: columns,
184
- resizable: resizable,
185
- virtual: virtual
186
- }),
187
- measureRowElementRef = _useColWidth.measureRowElementRef,
188
- getColgroupProps = _useColWidth.getColgroupProps,
189
- onColumnResizable = _useColWidth.onColumnResizable,
190
- colWidths = _useColWidth.colWidths,
191
- setHeaderTableElement = _useColWidth.setHeaderTableElement; // ************************ 列冻结 ************************ //
192
-
193
-
167
+ data: data,
168
+ columns: columns,
169
+ resizable: resizable,
170
+ virtual: virtual
171
+ }),
172
+ measureRowElementRef = _useColWidth.measureRowElementRef,
173
+ getColgroupProps = _useColWidth.getColgroupProps,
174
+ onColumnResizable = _useColWidth.onColumnResizable,
175
+ colWidths = _useColWidth.colWidths,
176
+ setHeaderTableElement = _useColWidth.setHeaderTableElement;
177
+ // ************************ 列冻结 ************************ //
194
178
  var bodyTableRef = useRef(null);
195
179
  var scrollBodyElementRef = useRef(null);
196
180
  /**
@@ -198,173 +182,155 @@ var useTable = function useTable(_a) {
198
182
  *
199
183
  * TODO: 支持 2 种模式:从左往右冻结到指定列、只抽离并冻结指定列
200
184
  */
201
-
202
185
  var _useUncontrolledState2 = useUncontrolledState(defaultFixedToColumn, fixedToColumnProp, onFixedToColumn),
203
- fixedToColumn = _useUncontrolledState2[0],
204
- setFixedToColumn = _useUncontrolledState2[1];
205
-
186
+ fixedToColumn = _useUncontrolledState2[0],
187
+ setFixedToColumn = _useUncontrolledState2[1];
206
188
  var leftFreezeColumn = fixedToColumn.left;
207
189
  var rightFreezeColumn = fixedToColumn.right;
208
190
  var setLeftFreezeColumn = useCallback(function (columnKey) {
209
191
  setFixedToColumn(function (prev) {
210
192
  var next = Object.assign({}, prev);
211
193
  next.left = columnKey;
212
-
213
194
  if (next.right === columnKey) {
214
195
  next.right = '';
215
196
  }
216
-
217
197
  return next;
218
198
  });
219
199
  }, [setFixedToColumn]);
220
-
221
200
  var _React$useMemo = React__default.useMemo(function () {
222
- if (!leftFreezeColumn && !rightFreezeColumn) {
223
- return {
224
- leftFrozenColKeys: [],
225
- rightFrozenColKeys: [],
226
- columns: mergedColumns2
227
- };
228
- }
229
-
230
- var leftFrozenColKey = leftFreezeColumn;
231
- var rightFrozenKey = rightFreezeColumn; // 获取左右冻结列的下标
232
- // 获取左右冻结列的下标
233
-
234
- var leftFrozenColIndex;
235
- var rightFrozenColIndex;
236
- mergedColumns2.some(function (column, index) {
237
- if (typeof leftFrozenColKey === 'string' && leftFrozenColKey === column.dataKey) {
238
- leftFrozenColIndex = index;
239
- }
240
-
241
- if (typeof rightFrozenKey === 'string' && rightFrozenKey === column.dataKey) {
242
- rightFrozenColIndex = index;
201
+ if (!leftFreezeColumn && !rightFreezeColumn) {
202
+ return {
203
+ leftFrozenColKeys: [],
204
+ rightFrozenColKeys: [],
205
+ columns: mergedColumns2
206
+ };
243
207
  }
244
-
245
- return leftFrozenColIndex !== undefined && rightFrozenColIndex !== undefined;
246
- }); // 保持内部循环引用关系,如果 cloneTree,将破坏关系
247
- // 保持内部循环引用关系,如果 cloneTree,将破坏关系
248
-
249
- var nextColumns = [].concat(mergedColumns2);
250
-
251
- if (typeof leftFrozenColIndex === 'number' || typeof rightFrozenColIndex === 'number' || scrollWidth) {
252
- var lastColumns = mergedColumns2;
253
- nextColumns = setColumnsDefaultWidth(nextColumns, scrollWidth ? scrollWidth / lastColumns.length : 100);
254
-
255
- if (colWidths) {
256
- // colWidths 记录的是最新的列宽,当它有值时,重置一下列宽,否则会导致冻结列动态调整宽度后定位不准
257
- nextColumns = nextColumns.map(function (item, index) {
258
- return Object.assign(Object.assign({}, item), {
259
- width: colWidths[index]
208
+ var leftFrozenColKey = leftFreezeColumn;
209
+ var rightFrozenKey = rightFreezeColumn;
210
+ // 获取左右冻结列的下标
211
+ // 获取左右冻结列的下标
212
+ var leftFrozenColIndex;
213
+ var rightFrozenColIndex;
214
+ mergedColumns2.some(function (column, index) {
215
+ if (typeof leftFrozenColKey === 'string' && leftFrozenColKey === column.dataKey) {
216
+ leftFrozenColIndex = index;
217
+ }
218
+ if (typeof rightFrozenKey === 'string' && rightFrozenKey === column.dataKey) {
219
+ rightFrozenColIndex = index;
220
+ }
221
+ return leftFrozenColIndex !== undefined && rightFrozenColIndex !== undefined;
222
+ });
223
+ // 保持内部循环引用关系,如果 cloneTree,将破坏关系
224
+ // 保持内部循环引用关系,如果 cloneTree,将破坏关系
225
+ var nextColumns = [].concat(mergedColumns2);
226
+ if (typeof leftFrozenColIndex === 'number' || typeof rightFrozenColIndex === 'number' || scrollWidth) {
227
+ var lastColumns = mergedColumns2;
228
+ nextColumns = setColumnsDefaultWidth(nextColumns, scrollWidth ? scrollWidth / lastColumns.length : 100);
229
+ if (colWidths) {
230
+ // colWidths 记录的是最新的列宽,当它有值时,重置一下列宽,否则会导致冻结列动态调整宽度后定位不准
231
+ nextColumns = nextColumns.map(function (item, index) {
232
+ return Object.assign(Object.assign({}, item), {
233
+ width: colWidths[index]
234
+ });
260
235
  });
236
+ }
237
+ }
238
+ var leftColumns = [];
239
+ // 左侧
240
+ // 左侧
241
+ if (typeof leftFrozenColIndex === 'number') {
242
+ // TODO: 支持嵌套冻结列
243
+ // const targetColumn = nextColumns[leftFrozenColIndex]
244
+ // const beforeColumns = nextColumns.filter((_, idx) => idx < leftFrozenColIndex!)
245
+ // // @ts-ignore
246
+ // const afterColumns = fFindNestedChildNodesByIndex(nextColumns, leftFrozenColIndex)
247
+ // // @ts-ignore
248
+ // leftColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
249
+ leftColumns = nextColumns.filter(function (item, index) {
250
+ return index <= leftFrozenColIndex && item.depth === 0;
251
+ });
252
+ leftColumns.forEach(function (currentItem, index) {
253
+ var item = parseFixedColumns(currentItem, index, nextColumns, leftColumns, 'leftStickyWidth');
254
+ leftColumns[index] = item;
255
+ nextColumns[item.index] = item;
261
256
  });
262
257
  }
263
- }
264
-
265
- var leftColumns = []; // 左侧
266
- // 左侧
267
-
268
- if (typeof leftFrozenColIndex === 'number') {
269
- // TODO: 支持嵌套冻结列
270
- // const targetColumn = nextColumns[leftFrozenColIndex]
271
- // const beforeColumns = nextColumns.filter((_, idx) => idx < leftFrozenColIndex!)
272
- // // @ts-ignore
273
- // const afterColumns = fFindNestedChildNodesByIndex(nextColumns, leftFrozenColIndex)
274
- // // @ts-ignore
275
- // leftColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
276
- leftColumns = nextColumns.filter(function (item, index) {
277
- return index <= leftFrozenColIndex && item.depth === 0;
278
- });
279
- leftColumns.forEach(function (currentItem, index) {
280
- var item = parseFixedColumns(currentItem, index, nextColumns, leftColumns, 'leftStickyWidth');
281
- leftColumns[index] = item;
282
- nextColumns[item.index] = item;
283
- });
284
- } // @TODO: resizable 和 列冻结宽兼容,统一宽度设置来源
285
- // const leftFixedColumnsWidth = colWidths.reduce(
286
- // (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
287
- // 0
288
- // )
289
- // @TODO: resizable 列冻结宽兼容,统一宽度设置来源
290
- // const leftFixedColumnsWidth = colWidths.reduce(
291
- // (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
292
- // 0
293
- // )
294
-
295
-
296
- var getLeafNodes = function getLeafNodes(columns) {
297
- return columns.reduce(function (acc, column) {
298
- return acc.concat(getLeafChildren(column));
299
- }, []);
300
- };
301
-
302
- var leftLeafNodes = getLeafNodes(leftColumns);
303
- var leftColIndex = leftLeafNodes.length;
304
- var leftFixedColumnsWidth = colWidths.reduce(function (acc, width, index) {
305
- return acc += index < leftColIndex ? width : 0;
306
- }, 0); // 右侧
307
- // 右侧
308
-
309
- var rightColumns = [];
310
-
311
- if (typeof rightFrozenColIndex === 'number') {
312
- var targetColumn = nextColumns[rightFrozenColIndex]; // const beforeColumns = getNodeAncestors(targetColumn)
313
- // const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
314
- // // @ts-ignore
315
- // rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
316
- // const beforeColumns = getNodeAncestors(targetColumn)
317
- // const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
318
- // // @ts-ignore
319
- // rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
320
-
321
- var root = getNodeRootParent(targetColumn);
322
- rightColumns = [root].concat(nextColumns.filter(function (item, index) {
323
- return index > rightFrozenColIndex && item.depth === 0;
324
- })).reverse();
325
- rightColumns.forEach(function (currentItem, index) {
326
- var item = parseFixedColumns(currentItem, index, nextColumns, rightColumns, 'rightStickyWidth');
327
- rightColumns[index] = item;
328
- nextColumns[item.index] = item;
329
- });
330
- }
331
-
332
- var rightLeafNodes = getLeafNodes(rightColumns);
333
- var rightColIndex = rightLeafNodes.length;
334
- var rightFixedColumnsWidth = [].concat(colWidths).reverse().reduce(function (acc, width, index) {
335
- return acc += index < rightColIndex ? width : 0;
336
- }, 0);
337
- return {
338
- leftFrozenColKeys: leftColumns,
339
- rightFrozenColKeys: rightColumns,
340
- columns: nextColumns,
341
- leftFixedColumnsWidth: leftFixedColumnsWidth,
342
- rightFixedColumnsWidth: rightFixedColumnsWidth
343
- };
344
- }, [mergedColumns2, scrollWidth, colWidths, leftFreezeColumn, rightFreezeColumn]),
345
- leftFrozenColKeys = _React$useMemo.leftFrozenColKeys,
346
- rightFrozenColKeys = _React$useMemo.rightFrozenColKeys,
347
- mergedColumns1 = _React$useMemo.columns,
348
- leftFixedColumnsWidth = _React$useMemo.leftFixedColumnsWidth,
349
- rightFixedColumnsWidth = _React$useMemo.rightFixedColumnsWidth;
350
-
258
+ // @TODO: resizable 和 列冻结宽兼容,统一宽度设置来源
259
+ // const leftFixedColumnsWidth = colWidths.reduce(
260
+ // (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
261
+ // 0
262
+ // )
263
+ // @TODO: resizable 列冻结宽兼容,统一宽度设置来源
264
+ // const leftFixedColumnsWidth = colWidths.reduce(
265
+ // (acc, width, index) => (acc += index <= leftFrozenColIndex! ? width : 0),
266
+ // 0
267
+ // )
268
+ var getLeafNodes = function getLeafNodes(columns) {
269
+ return columns.reduce(function (acc, column) {
270
+ return acc.concat(getLeafChildren(column));
271
+ }, []);
272
+ };
273
+ var leftLeafNodes = getLeafNodes(leftColumns);
274
+ var leftColIndex = leftLeafNodes.length;
275
+ var leftFixedColumnsWidth = colWidths.reduce(function (acc, width, index) {
276
+ return acc += index < leftColIndex ? width : 0;
277
+ }, 0);
278
+ // 右侧
279
+ // 右侧
280
+ var rightColumns = [];
281
+ if (typeof rightFrozenColIndex === 'number') {
282
+ var targetColumn = nextColumns[rightFrozenColIndex];
283
+ // const beforeColumns = getNodeAncestors(targetColumn)
284
+ // const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
285
+ // // @ts-ignore
286
+ // rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
287
+ // const beforeColumns = getNodeAncestors(targetColumn)
288
+ // const afterColumns = nextColumns.filter((_, idx) => idx > rightFrozenColIndex!)
289
+ // // @ts-ignore
290
+ // rightColumns = beforeColumns.concat(targetColumn).concat(afterColumns)
291
+ var root = getNodeRootParent(targetColumn);
292
+ rightColumns = [root].concat(nextColumns.filter(function (item, index) {
293
+ return index > rightFrozenColIndex && item.depth === 0;
294
+ })).reverse();
295
+ rightColumns.forEach(function (currentItem, index) {
296
+ var item = parseFixedColumns(currentItem, index, nextColumns, rightColumns, 'rightStickyWidth');
297
+ rightColumns[index] = item;
298
+ nextColumns[item.index] = item;
299
+ });
300
+ }
301
+ var rightLeafNodes = getLeafNodes(rightColumns);
302
+ var rightColIndex = rightLeafNodes.length;
303
+ var rightFixedColumnsWidth = [].concat(colWidths).reverse().reduce(function (acc, width, index) {
304
+ return acc += index < rightColIndex ? width : 0;
305
+ }, 0);
306
+ return {
307
+ leftFrozenColKeys: leftColumns,
308
+ rightFrozenColKeys: rightColumns,
309
+ columns: nextColumns,
310
+ leftFixedColumnsWidth: leftFixedColumnsWidth,
311
+ rightFixedColumnsWidth: rightFixedColumnsWidth
312
+ };
313
+ }, [mergedColumns2, scrollWidth, colWidths, leftFreezeColumn, rightFreezeColumn]),
314
+ leftFrozenColKeys = _React$useMemo.leftFrozenColKeys,
315
+ rightFrozenColKeys = _React$useMemo.rightFrozenColKeys,
316
+ mergedColumns1 = _React$useMemo.columns,
317
+ leftFixedColumnsWidth = _React$useMemo.leftFixedColumnsWidth,
318
+ rightFixedColumnsWidth = _React$useMemo.rightFixedColumnsWidth;
351
319
  var _useState2 = useState({
352
- scrollLeft: 0,
353
- scrollRight: 1
354
- }),
355
- scrollSize = _useState2[0],
356
- setScrollSize = _useState2[1];
357
-
320
+ scrollLeft: 0,
321
+ scrollRight: 1
322
+ }),
323
+ scrollSize = _useState2[0],
324
+ setScrollSize = _useState2[1];
358
325
  useEffect(function () {
359
326
  var _a, _b, _c, _d, _e, _f;
360
-
361
327
  if (leftFrozenColKeys.length > 0 || rightFrozenColKeys.length > 0) {
362
328
  // 计算冻结列的宽度
363
329
  // mutationObserver
364
330
  var tableWidth = (_c = (_b = (_a = bodyTableRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect) === null || _b === void 0 ? void 0 : _b.call(_a).width) !== null && _c !== void 0 ? _c : 0;
365
331
  var tableBodyWidth = (_f = (_e = (_d = scrollBodyElementRef.current) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect) === null || _e === void 0 ? void 0 : _e.call(_d).width) !== null && _f !== void 0 ? _f : 0;
366
- var scrollRight = tableWidth - tableBodyWidth; // const scrollLeft = 0
367
-
332
+ var scrollRight = tableWidth - tableBodyWidth;
333
+ // const scrollLeft = 0
368
334
  setScrollSize(function (prev) {
369
335
  return {
370
336
  scrollLeft: prev.scrollLeft,
@@ -372,31 +338,25 @@ var useTable = function useTable(_a) {
372
338
  };
373
339
  });
374
340
  }
375
- }, [leftFrozenColKeys, rightFrozenColKeys]); // const canScroll = scrollSize.scrollRight > 0
341
+ }, [leftFrozenColKeys, rightFrozenColKeys]);
342
+ // const canScroll = scrollSize.scrollRight > 0
376
343
  // 实时计算
377
-
378
344
  var canScroll = bodyTableRef.current && scrollBodyElementRef.current ? scrollBodyElementRef.current.clientWidth < bodyTableRef.current.clientWidth : false;
379
345
  /**
380
346
  * 同步 双 table 左右滚动偏移
381
347
  */
382
-
383
348
  var syncScrollLeft = React__default.useCallback(function (scrollLeft, syncTarget) {
384
349
  var scrollRight = scrollSize.scrollRight;
385
-
386
350
  if (syncTarget && syncTarget.scrollLeft !== scrollLeft) {
387
351
  syncTarget.scrollLeft = scrollLeft;
388
352
  }
389
-
390
353
  if (bodyTableRef && bodyTableRef.current && scrollBodyElementRef && scrollBodyElementRef.current && isArrayNonEmpty(rightFrozenColKeys)) {
391
354
  var _bodyTableRef$current = bodyTableRef.current.getBoundingClientRect(),
392
- tableTefRight = _bodyTableRef$current.right;
393
-
355
+ tableTefRight = _bodyTableRef$current.right;
394
356
  var _scrollBodyElementRef = scrollBodyElementRef.current.getBoundingClientRect(),
395
- right = _scrollBodyElementRef.right;
396
-
357
+ right = _scrollBodyElementRef.right;
397
358
  scrollRight = tableTefRight - right;
398
359
  }
399
-
400
360
  setScrollSize({
401
361
  scrollLeft: scrollLeft,
402
362
  scrollRight: scrollRight
@@ -405,41 +365,37 @@ var useTable = function useTable(_a) {
405
365
  var scrollHeaderElementRef = useRef(null);
406
366
  var onTableBodyScroll = React__default.useCallback(function (evt) {
407
367
  evt.stopPropagation();
408
-
409
368
  if (scrollBodyElementRef.current) {
410
369
  syncScrollLeft(scrollBodyElementRef.current.scrollLeft, scrollHeaderElementRef.current);
411
370
  }
412
- }, [syncScrollLeft]); // 1. 对于 sticky 的元素,触发滚轮滚动,需要模拟 onScroll 触发,比如 tableHeader 固定吸顶时
371
+ }, [syncScrollLeft]);
372
+ // 1. 对于 sticky 的元素,触发滚轮滚动,需要模拟 onScroll 触发,比如 tableHeader 固定吸顶时
413
373
  // 2. 同时不允许其出现滚动条
414
-
415
374
  var onTableBodyScrollMock = React__default.useCallback(function (evt) {
416
375
  if (!scrollHeaderElementRef.current) return;
417
376
  evt.stopPropagation();
418
377
  var deltaX = evt.deltaX;
419
378
  scrollHeaderElementRef.current.scrollLeft = scrollHeaderElementRef.current.scrollLeft + deltaX;
420
379
  syncScrollLeft(scrollHeaderElementRef.current.scrollLeft, scrollBodyElementRef.current);
421
- }, [syncScrollLeft]); // ************************ 行高亮 ************************ //
422
-
380
+ }, [syncScrollLeft]);
381
+ // ************************ 行高亮 ************************ //
423
382
  /**
424
383
  * 控制行高亮,依据 data 中的 key 控制
425
384
  */
426
-
427
385
  var _useUncontrolledState3 = useUncontrolledState(DEFAULT_HIGHLIGHTED_ROW_KEYS, highlightedRowKeysProp),
428
- highlightedRowKeys = _useUncontrolledState3[0],
429
- trySetHighlightedRowKeys = _useUncontrolledState3[1];
430
-
386
+ highlightedRowKeys = _useUncontrolledState3[0],
387
+ trySetHighlightedRowKeys = _useUncontrolledState3[1];
431
388
  var _useCheck2 = useCheck({
432
- disabled: !highlightRowOnDoubleClick,
433
- checkedIds: highlightedRowKeys,
434
- onCheck: trySetHighlightedRowKeys
435
- }),
436
- onHighlightedRowChange = _useCheck2[0],
437
- isHighlightedRow = _useCheck2[1];
438
-
389
+ disabled: !highlightRowOnDoubleClick,
390
+ checkedIds: highlightedRowKeys,
391
+ onCheck: trySetHighlightedRowKeys
392
+ }),
393
+ onHighlightedRowChange = _useCheck2[0],
394
+ isHighlightedRow = _useCheck2[1];
439
395
  var isErrorRow = useCallback(function (key) {
440
396
  return errorRowKeys.includes(key);
441
- }, [errorRowKeys]); // 末级 column
442
-
397
+ }, [errorRowKeys]);
398
+ // 末级 column
443
399
  var flattedColumnsWithoutChildren = React__default.useMemo(function () {
444
400
  return mergedColumns1.filter(function (col) {
445
401
  return !isArrayNonEmpty(col.children);
@@ -448,32 +404,28 @@ var useTable = function useTable(_a) {
448
404
  var groupedColumns = React__default.useMemo(function () {
449
405
  return mergedColumns1.reduce(function (acc, cur) {
450
406
  var depth = cur.depth;
451
-
452
407
  if (!acc[depth]) {
453
408
  acc[depth] = [];
454
409
  }
455
-
456
410
  acc[depth].push(cur);
457
411
  return acc;
458
412
  }, []);
459
413
  }, [mergedColumns1]);
460
414
  var getStickyColProps = useLatestCallback(function (column) {
461
415
  var rightStickyWidth = column.rightStickyWidth,
462
- leftStickyWidth = column.leftStickyWidth,
463
- align = column.align;
416
+ leftStickyWidth = column.leftStickyWidth,
417
+ align = column.align;
464
418
  var sticky = canScroll && (typeof rightStickyWidth !== 'undefined' || typeof leftStickyWidth !== 'undefined');
465
419
  var style = {
466
420
  textAlign: align
467
421
  };
468
-
469
422
  if (sticky) {
470
423
  style.position = 'sticky';
471
424
  style.right = rightStickyWidth + 'px';
472
- style.left = leftStickyWidth + 'px'; // the value is same with v3
473
-
425
+ style.left = leftStickyWidth + 'px';
426
+ // the value is same with v3
474
427
  style.zIndex = 5;
475
428
  }
476
-
477
429
  return {
478
430
  style: style,
479
431
  'data-sticky': setAttrStatus(sticky)
@@ -498,29 +450,23 @@ var useTable = function useTable(_a) {
498
450
  return row.children && row.children.length || onLoadChildren && !row.isLeaf;
499
451
  }) : false;
500
452
  }, [data, onLoadChildren]);
501
-
502
453
  var _useState3 = useState(null),
503
- activeSorterColumn = _useState3[0],
504
- setActiveSorterColumn = _useState3[1];
505
-
454
+ activeSorterColumn = _useState3[0],
455
+ setActiveSorterColumn = _useState3[1];
506
456
  var _useState4 = useState(null),
507
- activeSorterType = _useState4[0],
508
- setActiveSorterType = _useState4[1]; //* *************** 根据排序列处理数据 ************** *//
509
-
510
-
457
+ activeSorterType = _useState4[0],
458
+ setActiveSorterType = _useState4[1];
459
+ //* *************** 根据排序列处理数据 ************** *//
511
460
  var showData = useMemo(function () {
512
461
  var _a;
513
-
514
462
  var _data = [].concat(transitionData);
515
-
516
463
  if (activeSorterColumn) {
517
464
  var sorter = (_a = columns.filter(function (d) {
518
465
  return d.dataKey === activeSorterColumn;
519
466
  })[0]) === null || _a === void 0 ? void 0 : _a.sorter;
520
-
521
467
  if (sorter) {
522
- activeSorterType === 'ascend' ? _data.sort(sorter) : _data.sort(sorter).reverse(); // 平铺的树形结构排序
523
-
468
+ activeSorterType === 'ascend' ? _data.sort(sorter) : _data.sort(sorter).reverse();
469
+ // 平铺的树形结构排序
524
470
  if (_data.some(function (d) {
525
471
  return d.depth !== 0;
526
472
  })) {
@@ -528,7 +474,6 @@ var useTable = function useTable(_a) {
528
474
  }
529
475
  }
530
476
  }
531
-
532
477
  return _data;
533
478
  }, [activeSorterColumn, activeSorterType, transitionData, columns]);
534
479
  return Object.assign(Object.assign({
@@ -608,8 +553,8 @@ var useTable = function useTable(_a) {
608
553
  footerRender: footerRender,
609
554
  showColMenu: showColMenu,
610
555
  onLoadChildren: onLoadChildren,
611
- setHeaderTableElement: setHeaderTableElement
556
+ setHeaderTableElement: setHeaderTableElement,
557
+ scrollbar: scrollbar
612
558
  });
613
559
  };
614
-
615
560
  export { useTable };