@hi-ui/table 4.3.1 → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +40 -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 +33 -69
  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 +31 -227
  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 +3 -14
  66. package/lib/cjs/packages/ui/scrollbar/lib/esm/Scrollbar.js +48 -86
  67. package/lib/cjs/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -15
  68. package/lib/cjs/packages/ui/scrollbar/lib/esm/utils/index.js +0 -13
  69. package/lib/cjs/styles/index.scss.js +1 -4
  70. package/lib/cjs/use-table.js +268 -355
  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 +24 -34
  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 +31 -228
  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 +3 -9
  130. package/lib/esm/packages/ui/scrollbar/lib/esm/Scrollbar.js +47 -64
  131. package/lib/esm/packages/ui/scrollbar/lib/esm/styles/index.scss.js +1 -3
  132. package/lib/esm/packages/ui/scrollbar/lib/esm/utils/index.js +0 -10
  133. package/lib/esm/styles/index.scss.js +1 -3
  134. package/lib/esm/use-table.js +261 -318
  135. package/lib/esm/utils/index.js +11 -41
  136. package/lib/types/BaseTable.d.ts +2 -2
  137. package/package.json +33 -33
@@ -9,56 +9,31 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
-
14
- Object.defineProperty(exports, '__esModule', {
15
- value: true
16
- });
17
-
18
12
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
19
-
20
13
  var tslib = require('tslib');
21
-
22
14
  var React = require('react');
23
-
24
15
  var typeAssertion = require('@hi-ui/type-assertion');
25
-
26
16
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
27
-
28
17
  var useCheck = require('@hi-ui/use-check');
29
-
30
18
  var useCheckState = require('@hi-ui/use-check-state');
31
-
32
- function _interopDefaultLegacy(e) {
33
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
34
- 'default': e
35
- };
36
- }
37
-
38
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
39
-
40
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
41
-
42
19
  var DEFAULT_EXPAND_EMBED_ROW_KEYS = [];
43
20
  /**
44
21
  * 行内嵌面板展开
45
22
  */
46
-
47
23
  var useEmbedExpand = function useEmbedExpand(_ref) {
48
24
  var _ref$rowExpandable = _ref.rowExpandable,
49
- rowExpandable = _ref$rowExpandable === void 0 ? true : _ref$rowExpandable,
50
- _ref$defaultExpandedE = _ref.defaultExpandedEmbedRowKeys,
51
- defaultExpandedEmbedRowKeys = _ref$defaultExpandedE === void 0 ? DEFAULT_EXPAND_EMBED_ROW_KEYS : _ref$defaultExpandedE,
52
- expandEmbedRowKeysProp = _ref.expandedEmbedRowKeys,
53
- onEmbedExpand = _ref.onEmbedExpand,
54
- expandedRender = _ref.expandedRender;
25
+ rowExpandable = _ref$rowExpandable === void 0 ? true : _ref$rowExpandable,
26
+ _ref$defaultExpandedE = _ref.defaultExpandedEmbedRowKeys,
27
+ defaultExpandedEmbedRowKeys = _ref$defaultExpandedE === void 0 ? DEFAULT_EXPAND_EMBED_ROW_KEYS : _ref$defaultExpandedE,
28
+ expandEmbedRowKeysProp = _ref.expandedEmbedRowKeys,
29
+ onEmbedExpand = _ref.onEmbedExpand,
30
+ expandedRender = _ref.expandedRender;
55
31
  /**
56
32
  * 收敛行内嵌面板配置开关
57
33
  */
58
-
59
34
  var embedExpandable = React.useMemo(function () {
60
- if (!rowExpandable) return false; // 不传入 render 方法,则不开启内嵌面板
61
-
35
+ if (!rowExpandable) return false;
36
+ // 不传入 render 方法,则不开启内嵌面板
62
37
  if (!typeAssertion.isFunction(expandedRender)) return false;
63
38
  return {
64
39
  rowExpandable: rowExpandable,
@@ -68,47 +43,39 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
68
43
  /**
69
44
  * 是否展开状态控制
70
45
  */
71
-
72
46
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultExpandedEmbedRowKeys, expandEmbedRowKeysProp, onEmbedExpand),
73
- expandEmbedRows = _useUncontrolledState[0],
74
- trySetExpandEmbedRows = _useUncontrolledState[1];
75
-
47
+ expandEmbedRows = _useUncontrolledState[0],
48
+ trySetExpandEmbedRows = _useUncontrolledState[1];
76
49
  var _useCheck = useCheck.useCheck({
77
- checkedIds: expandEmbedRows,
78
- onCheck: trySetExpandEmbedRows
79
- }),
80
- onExpandEmbedRowsChange = _useCheck[0],
81
- isExpandEmbedRows = _useCheck[1];
50
+ checkedIds: expandEmbedRows,
51
+ onCheck: trySetExpandEmbedRows
52
+ }),
53
+ onExpandEmbedRowsChange = _useCheck[0],
54
+ isExpandEmbedRows = _useCheck[1];
82
55
  /**
83
56
  * 异步展开中状态控制
84
57
  */
85
-
86
-
87
58
  var _useCheckState = useCheckState.useCheckState(),
88
- addLoadingIds = _useCheckState.add,
89
- removeLoadingIds = _useCheckState.remove,
90
- isLoadingId = _useCheckState.has;
59
+ addLoadingIds = _useCheckState.add,
60
+ removeLoadingIds = _useCheckState.remove,
61
+ isLoadingId = _useCheckState.has;
91
62
  /**
92
63
  * 内嵌面板数据
93
64
  * 结构:{ [id]: 内嵌数据 }
94
65
  */
95
-
96
-
97
- var _React$useState = React__default["default"].useState({}),
98
- embedPanelRecord = _React$useState[0],
99
- setEmbedPanelRecord = _React$useState[1];
100
-
66
+ var _React$useState = React.useState({}),
67
+ embedPanelRecord = _React$useState[0],
68
+ setEmbedPanelRecord = _React$useState[1];
101
69
  var getEmbedPanelById = React.useCallback(function (id) {
102
70
  return embedPanelRecord[id] || null;
103
71
  }, [embedPanelRecord]);
104
72
  /**
105
73
  * 异步展开逻辑处理
106
74
  */
107
-
108
75
  var onEmbedSwitch = React.useCallback(function (node, rowIndex) {
109
- return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
76
+ return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
110
77
  var embedContentMaybePromise;
111
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
78
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
112
79
  while (1) {
113
80
  switch (_context.prev = _context.next) {
114
81
  case 0:
@@ -116,24 +83,19 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
116
83
  _context.next = 2;
117
84
  break;
118
85
  }
119
-
120
86
  return _context.abrupt("return");
121
-
122
87
  case 2:
123
88
  embedContentMaybePromise = embedExpandable.expandedRender(node.raw, rowIndex); // TODO: 复用 use-dataSource 逻辑
124
-
125
89
  if (!typeAssertion.isPromise(embedContentMaybePromise)) {
126
90
  _context.next = 8;
127
91
  break;
128
92
  }
129
-
130
93
  addLoadingIds(node.id);
131
94
  embedContentMaybePromise.then(function (jsxElement) {
132
95
  removeLoadingIds(node.id);
133
96
  if (typeof jsxElement === 'undefined') return;
134
97
  setEmbedPanelRecord(function (prev) {
135
98
  var _Object$assign;
136
-
137
99
  return Object.assign(Object.assign({}, prev), (_Object$assign = {}, _Object$assign[node.id] = jsxElement, _Object$assign));
138
100
  });
139
101
  })["catch"](function (jsxElement) {
@@ -141,28 +103,22 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
141
103
  if (typeof jsxElement === 'undefined') return;
142
104
  setEmbedPanelRecord(function (prev) {
143
105
  var _Object$assign2;
144
-
145
106
  return Object.assign(Object.assign({}, prev), (_Object$assign2 = {}, _Object$assign2[node.id] = jsxElement, _Object$assign2));
146
107
  });
147
108
  });
148
109
  _context.next = 11;
149
110
  break;
150
-
151
111
  case 8:
152
112
  if (!(typeof embedContentMaybePromise === 'undefined')) {
153
113
  _context.next = 10;
154
114
  break;
155
115
  }
156
-
157
116
  return _context.abrupt("return");
158
-
159
117
  case 10:
160
118
  setEmbedPanelRecord(function (prev) {
161
119
  var _Object$assign3;
162
-
163
120
  return Object.assign(Object.assign({}, prev), (_Object$assign3 = {}, _Object$assign3[node.id] = embedContentMaybePromise, _Object$assign3));
164
121
  });
165
-
166
122
  case 11:
167
123
  case "end":
168
124
  return _context.stop();
@@ -180,5 +136,4 @@ var useEmbedExpand = function useEmbedExpand(_ref) {
180
136
  onExpandEmbedRowsChange: onExpandEmbedRowsChange
181
137
  };
182
138
  };
183
-
184
139
  exports.useEmbedExpand = useEmbedExpand;
@@ -9,20 +9,13 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- Object.defineProperty(exports, '__esModule', {
13
- value: true
14
- });
15
-
16
12
  var useQueue = require('./use-queue.js');
17
-
18
13
  var React = require('react');
19
-
20
14
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
21
-
22
15
  var treeUtils = require('@hi-ui/tree-utils');
23
-
24
16
  var useLatest = require('@hi-ui/use-latest');
25
17
 
18
+ // TODO: 抽离成 useDefaultExpandAll
26
19
  var useExpandProps = function useExpandProps(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll) {
27
20
  return useUncontrolledState.useUncontrolledState(function getDefaultExpandedIds() {
28
21
  // 开启默认展开全部
@@ -31,91 +24,76 @@ var useExpandProps = function useExpandProps(flattedData, defaultExpandedIds, ex
31
24
  return node.id;
32
25
  });
33
26
  }
34
-
35
27
  return defaultExpandedIds;
36
28
  }, expandedIdsProp, onExpand);
37
29
  };
38
30
  /**
39
31
  * 树形节点展开
40
32
  */
41
-
42
-
43
33
  var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll) {
44
34
  var _useExpandProps = useExpandProps(flattedData, defaultExpandedIds, expandedIdsProp, onExpand, defaultExpandAll),
45
- expandedIds = _useExpandProps[0],
46
- tryToggleExpandedIds = _useExpandProps[1]; // const [onExpandTreeRowsChange, isExpandTreeRows] = useCheck({
35
+ expandedIds = _useExpandProps[0],
36
+ tryToggleExpandedIds = _useExpandProps[1];
37
+ // const [onExpandTreeRowsChange, isExpandTreeRows] = useCheck({
47
38
  // checkedIds: expandTreeRows,
48
39
  // onCheck: trySetExpandTreeRows as any,
49
40
  // idFieldName: 'key',
50
41
  // })
51
-
52
-
53
42
  var expandedNodeIdSet = React.useMemo(function () {
54
43
  return new Set(expandedIds);
55
44
  }, [expandedIds]);
56
-
57
45
  var isExpandedId = function isExpandedId(id) {
58
46
  return expandedNodeIdSet.has(id);
59
47
  };
60
-
61
- var expandedIdsRef = useLatest.useLatestRef(expandedIds); // 更新展示数据,只展示被展开的所有节点
62
-
48
+ var expandedIdsRef = useLatest.useLatestRef(expandedIds);
49
+ // 更新展示数据,只展示被展开的所有节点
63
50
  var _useState = React.useState(flattedData),
64
- transitionData = _useState[0],
65
- setTransitionData = _useState[1];
66
-
51
+ transitionData = _useState[0],
52
+ setTransitionData = _useState[1];
67
53
  var transitionDataRef = useLatest.useLatestRef(transitionData);
68
54
  var trySetTransitionData = React.useCallback(function (data, expandedIds) {
69
- var nextData = data; // 当有 children 时,在构造新的数据,防止重复刷新组件
70
-
55
+ var nextData = data;
56
+ // 当有 children 时,在构造新的数据,防止重复刷新组件
71
57
  if (data.some(function (item) {
72
58
  return !!item.children && item.children.length > 0;
73
59
  })) {
74
60
  nextData = flattenTreeDataWithExpand(data, expandedIds);
75
61
  }
76
-
77
62
  setTransitionData(nextData);
78
- }, []); // 用来确保一次折叠动画是一次加锁的单元任务
63
+ }, []);
64
+ // 用来确保一次折叠动画是一次加锁的单元任务
79
65
  // 防止用户频繁折叠展开导致动画渲染(存在 DOM 操作)异常
80
-
81
66
  var _useState2 = React.useState(false),
82
- isExpanding = _useState2[0],
83
- setIsExpanding = _useState2[1];
84
-
67
+ isExpanding = _useState2[0],
68
+ setIsExpanding = _useState2[1];
85
69
  var isExpandingRef = React.useRef(false);
86
-
87
70
  var _useQueue = useQueue.useQueue([]),
88
- enqueue = _useQueue.enqueue,
89
- top = _useQueue.top,
90
- dequeue = _useQueue.dequeue; // 用户传入 data 或 expandedIds 被改变时,同步更新要展示的所有节点
91
-
92
-
71
+ enqueue = _useQueue.enqueue,
72
+ top = _useQueue.top,
73
+ dequeue = _useQueue.dequeue;
74
+ // 用户传入 data 或 expandedIds 被改变时,同步更新要展示的所有节点
93
75
  React.useEffect(function () {
94
76
  trySetTransitionData(flattedData, expandedIds);
95
77
  }, [flattedData, trySetTransitionData, expandedIds]);
96
78
  var onNodeToggleStart = React.useCallback(function (expandedNode, shouldExpanded) {
97
79
  if (isExpandingRef.current) return;
98
80
  var expanded = expandedIdsRef.current.indexOf(expandedNode.id) !== -1;
99
-
100
81
  if (shouldExpanded === expanded) {
101
82
  dequeue();
102
83
  return;
103
- } // isExpandingRef.current = true
104
-
105
-
84
+ }
85
+ // isExpandingRef.current = true
106
86
  setIsExpanding(true);
107
87
  var expandedIds = expandedIdsRef.current;
108
88
  var transitionData = transitionDataRef.current;
109
89
  var expandedNodeIdSet = new Set(expandedIds);
110
90
  var expandedNodeId = expandedNode.id;
111
-
112
91
  if (shouldExpanded) {
113
- expandedNodeIdSet.add(expandedNodeId); // 设置展开的子节点集合用一个容器节点包裹,用来实现动画展开效果
92
+ expandedNodeIdSet.add(expandedNodeId);
93
+ // 设置展开的子节点集合用一个容器节点包裹,用来实现动画展开效果
114
94
  // @ts-ignore
115
-
116
95
  var _fFindNestedChildNode = treeUtils.fFindNestedChildNodesById(flattedData, expandedNodeId),
117
- rangeData = _fFindNestedChildNode[0];
118
-
96
+ rangeData = _fFindNestedChildNode[0];
119
97
  var expandedNodeIndex = transitionData.findIndex(function (node) {
120
98
  return node.id === expandedNodeId;
121
99
  });
@@ -124,22 +102,18 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
124
102
  newTransitionData.splice.apply(newTransitionData, [childrenStartIndex, 0].concat(flattenTreeDataWithExpand(rangeData, expandedIds)));
125
103
  trySetTransitionData(newTransitionData, Array.from(expandedNodeIdSet));
126
104
  } else {
127
- expandedNodeIdSet["delete"](expandedNodeId); // 设置隐藏的子节点集合用一个 节点 包裹,用来实现动画隐藏效果
128
-
129
- var _fFindNestedChildNode2 = treeUtils.fFindNestedChildNodesById( // @ts-ignore
130
- transitionData, expandedNodeId),
131
- _rangeData = _fFindNestedChildNode2[0],
132
- _expandedNodeIndex = _fFindNestedChildNode2[1];
133
-
105
+ expandedNodeIdSet["delete"](expandedNodeId);
106
+ // 设置隐藏的子节点集合用一个 节点 包裹,用来实现动画隐藏效果
107
+ var _fFindNestedChildNode2 = treeUtils.fFindNestedChildNodesById(
108
+ // @ts-ignore
109
+ transitionData, expandedNodeId),
110
+ _rangeData = _fFindNestedChildNode2[0],
111
+ _expandedNodeIndex = _fFindNestedChildNode2[1];
134
112
  var _childrenStartIndex = _expandedNodeIndex + 1;
135
-
136
113
  var _newTransitionData = treeUtils.cloneTree(transitionData);
137
-
138
114
  _newTransitionData.splice.apply(_newTransitionData, [_childrenStartIndex, _rangeData.length].concat(_rangeData));
139
-
140
115
  trySetTransitionData(_newTransitionData, Array.from(expandedNodeIdSet));
141
116
  }
142
-
143
117
  tryToggleExpandedIds(Array.from(expandedNodeIdSet), expandedNode, shouldExpanded);
144
118
  }, [tryToggleExpandedIds, flattedData, trySetTransitionData, dequeue, expandedIdsRef, transitionDataRef]);
145
119
  var onNodeToggleStartLatest = useLatest.useLatestCallback(onNodeToggleStart);
@@ -149,7 +123,6 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
149
123
  React.useEffect(function () {
150
124
  window.requestAnimationFrame(function () {
151
125
  if (isExpanding) return;
152
-
153
126
  if (top) {
154
127
  onNodeToggleStartLatest(top[0], top[1]);
155
128
  dequeue();
@@ -159,29 +132,24 @@ var useExpand = function useExpand(flattedData, defaultExpandedIds, expandedIdsP
159
132
  }, [isExpanding, top, onNodeToggleStartLatest, dequeue]);
160
133
  return [transitionData, onNodeExpand, isExpandedId];
161
134
  };
162
-
163
135
  function flattenTreeDataWithExpand(flattedTreeData, expandedIds) {
164
136
  var expandedKeySet = new Set(expandedIds);
165
137
  var length = flattedTreeData.length;
166
- var nextData = []; // 处理只展示未折叠的节点或动画节点
167
-
138
+ var nextData = [];
139
+ // 处理只展示未折叠的节点或动画节点
168
140
  for (var i = 0; i < length;) {
169
141
  var node = flattedTreeData[i];
170
142
  nextData.push(node);
171
-
172
143
  if (expandedKeySet.has(node.id)) {
173
144
  i++;
174
145
  } else {
175
146
  var child = flattedTreeData[++i];
176
-
177
147
  while (child && child.depth > node.depth) {
178
148
  child = flattedTreeData[++i];
179
149
  }
180
150
  }
181
151
  }
182
-
183
152
  return nextData;
184
153
  }
185
-
186
154
  exports.useExpand = useExpand;
187
155
  exports.useExpandProps = useExpandProps;
@@ -9,72 +9,42 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
-
14
- Object.defineProperty(exports, '__esModule', {
15
- value: true
16
- });
17
-
18
12
  var React = require('react');
19
-
20
13
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
21
-
22
14
  var useLatest = require('@hi-ui/use-latest');
23
-
24
15
  var axios = require('axios');
25
-
26
- function _interopDefaultLegacy(e) {
27
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
28
- 'default': e
29
- };
30
- }
31
-
32
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
-
34
- var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
35
-
36
16
  var useTablePagination = function useTablePagination(_ref) {
37
17
  var pagination = _ref.pagination,
38
- loadingProp = _ref.loadingProp,
39
- dataProp = _ref.data,
40
- dataSource = _ref.dataSource;
41
-
18
+ loadingProp = _ref.loadingProp,
19
+ dataProp = _ref.data,
20
+ dataSource = _ref.dataSource;
42
21
  var _a, _b;
43
-
44
22
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(1, pagination.current, pagination.onChange),
45
- currentPage = _useUncontrolledState[0],
46
- trySetCurrentPage = _useUncontrolledState[1];
47
-
23
+ currentPage = _useUncontrolledState[0],
24
+ trySetCurrentPage = _useUncontrolledState[1];
48
25
  var _useUncontrolledState2 = useUncontrolledState.useUncontrolledState((_b = (_a = pagination === null || pagination === void 0 ? void 0 : pagination.pageSizeOptions) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 10, pagination.pageSize, pagination.onPageSizeChange),
49
- pageSize = _useUncontrolledState2[0],
50
- trySetPageSize = _useUncontrolledState2[1];
51
-
52
- var _React$useState = React__default["default"].useState(false),
53
- internalLoading = _React$useState[0],
54
- setInternalLoading = _React$useState[1];
55
-
26
+ pageSize = _useUncontrolledState2[0],
27
+ trySetPageSize = _useUncontrolledState2[1];
28
+ var _React$useState = React.useState(false),
29
+ internalLoading = _React$useState[0],
30
+ setInternalLoading = _React$useState[1];
56
31
  var loading = dataSource ? internalLoading : loadingProp;
57
-
58
- var _React$useState2 = React__default["default"].useState(0),
59
- internalTotal = _React$useState2[0],
60
- setInternalTotal = _React$useState2[1];
61
-
32
+ var _React$useState2 = React.useState(0),
33
+ internalTotal = _React$useState2[0],
34
+ setInternalTotal = _React$useState2[1];
62
35
  var total = dataSource ? internalTotal : pagination.total;
63
-
64
- var _React$useState3 = React__default["default"].useState([]),
65
- remoteTableData = _React$useState3[0],
66
- setRemoteTableData = _React$useState3[1];
67
-
36
+ var _React$useState3 = React.useState([]),
37
+ remoteTableData = _React$useState3[0],
38
+ setRemoteTableData = _React$useState3[1];
68
39
  var mergedData = dataSource ? remoteTableData : dataProp;
69
40
  /**
70
41
  * 当设置 dataSource 后,则自动获取数据
71
42
  */
72
-
73
43
  var getData = useLatest.useLatestCallback(function () {
74
44
  if (dataSource) {
75
45
  var requestConfig = dataSource(currentPage, pageSize);
76
46
  setInternalLoading(true);
77
- axios__default["default"](requestConfig).then(function (res) {
47
+ axios(requestConfig).then(function (res) {
78
48
  var data = res.data;
79
49
  setRemoteTableData(data === null || data === void 0 ? void 0 : data.list);
80
50
  setInternalTotal(data === null || data === void 0 ? void 0 : data.total);
@@ -83,10 +53,10 @@ var useTablePagination = function useTablePagination(_ref) {
83
53
  });
84
54
  }
85
55
  });
86
- React__default["default"].useEffect(function () {
56
+ React.useEffect(function () {
87
57
  getData();
88
58
  }, [currentPage, getData, pageSize]);
89
- React__default["default"].useEffect(function () {
59
+ React.useEffect(function () {
90
60
  if (dataSource) {
91
61
  // 如果已经在第一页则直接刷新数据,否则重置到第一页
92
62
  currentPage === 1 ? getData() : trySetCurrentPage(1);
@@ -103,5 +73,4 @@ var useTablePagination = function useTablePagination(_ref) {
103
73
  total: total
104
74
  };
105
75
  };
106
-
107
76
  exports.useTablePagination = useTablePagination;
@@ -9,21 +9,14 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- Object.defineProperty(exports, '__esModule', {
13
- value: true
14
- });
15
-
16
12
  var React = require('react');
17
-
18
13
  var useQueue = function useQueue(initialValue) {
19
14
  if (initialValue === void 0) {
20
15
  initialValue = [];
21
16
  }
22
-
23
17
  var _useState = React.useState(initialValue),
24
- queue = _useState[0],
25
- setQueue = _useState[1];
26
-
18
+ queue = _useState[0],
19
+ setQueue = _useState[1];
27
20
  var enqueue = React.useCallback(function (value) {
28
21
  setQueue(function (prevQueue) {
29
22
  return [].concat(prevQueue, [value]);
@@ -32,23 +25,18 @@ var useQueue = function useQueue(initialValue) {
32
25
  var dequeue = React.useCallback(function () {
33
26
  setQueue(function (_ref) {
34
27
  var nextQueue = _ref.slice(1);
35
-
36
28
  return nextQueue;
37
29
  });
38
30
  }, []);
39
31
  return {
40
32
  enqueue: enqueue,
41
33
  dequeue: dequeue,
42
-
43
34
  get top() {
44
35
  return queue[0];
45
36
  },
46
-
47
37
  get empty() {
48
38
  return queue.length === 0;
49
39
  }
50
-
51
40
  };
52
41
  };
53
-
54
42
  exports.useQueue = useQueue;
@@ -9,45 +9,28 @@
9
9
  */
10
10
  'use strict';
11
11
 
12
- var _typeof = require("@babel/runtime/helpers/typeof");
13
-
14
- Object.defineProperty(exports, '__esModule', {
15
- value: true
16
- });
17
-
18
12
  var React = require('react');
19
-
20
13
  var icons = require('@hi-ui/icons');
21
-
22
14
  var spinner = require('@hi-ui/spinner');
23
-
24
- function _interopDefaultLegacy(e) {
25
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
- 'default': e
27
- };
28
- }
29
-
30
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
-
32
- var defaultCollapseIcon = /*#__PURE__*/React__default["default"].createElement(icons.CaretDownFilled, {
15
+ var defaultCollapseIcon = /*#__PURE__*/React.createElement(icons.CaretDownFilled, {
33
16
  style: {
34
17
  transition: 'transform 0.3s',
35
18
  transform: 'rotate(-90deg)'
36
19
  }
37
20
  });
38
- var defaultExpandIcon = /*#__PURE__*/React__default["default"].createElement(icons.CaretDownFilled, {
21
+ var defaultExpandIcon = /*#__PURE__*/React.createElement(icons.CaretDownFilled, {
39
22
  style: {
40
23
  transition: 'transform 0.3s',
41
24
  transform: 'rotate(0)'
42
25
  }
43
26
  });
44
- var defaultLeafIcon = /*#__PURE__*/React__default["default"].createElement("span", {
27
+ var defaultLeafIcon = /*#__PURE__*/React.createElement("span", {
45
28
  style: {
46
29
  display: 'inline-block',
47
30
  width: 16
48
31
  }
49
32
  });
50
- var defaultLoadingIcon = /*#__PURE__*/React__default["default"].createElement(spinner.Spinner, null);
33
+ var defaultLoadingIcon = /*#__PURE__*/React.createElement(spinner.Spinner, null);
51
34
  exports.defaultCollapseIcon = defaultCollapseIcon;
52
35
  exports.defaultExpandIcon = defaultExpandIcon;
53
36
  exports.defaultLeafIcon = defaultLeafIcon;
package/lib/cjs/index.js CHANGED
@@ -12,13 +12,9 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
-
16
15
  require('./styles/index.scss.js');
17
-
18
16
  var Table = require('./Table.js');
19
-
20
17
  var SettingDrawer = require('./SettingDrawer.js');
21
-
22
18
  exports.SELECTION_DATA_KEY = Table.SELECTION_DATA_KEY;
23
19
  exports.Table = Table.Table;
24
20
  exports["default"] = Table.Table;
@@ -10,39 +10,33 @@
10
10
  'use strict';
11
11
 
12
12
  var _typeof = require("@babel/runtime/helpers/typeof");
13
-
14
13
  Object.defineProperty(exports, '__esModule', {
15
14
  value: true
16
15
  });
17
-
18
16
  var index = require('../../_virtual/index.js');
17
+
19
18
  /*!
20
19
  Copyright (c) 2018 Jed Watson.
21
20
  Licensed under the MIT License (MIT), see
22
21
  http://jedwatson.github.io/classnames
23
22
  */
24
23
 
25
-
26
24
  (function (module) {
27
25
  /* global define */
26
+
28
27
  (function () {
29
28
  var hasOwn = {}.hasOwnProperty;
30
-
31
29
  function classNames() {
32
30
  var classes = [];
33
-
34
31
  for (var i = 0; i < arguments.length; i++) {
35
32
  var arg = arguments[i];
36
33
  if (!arg) continue;
37
-
38
34
  var argType = _typeof(arg);
39
-
40
35
  if (argType === 'string' || argType === 'number') {
41
36
  classes.push(arg);
42
37
  } else if (Array.isArray(arg)) {
43
38
  if (arg.length) {
44
39
  var inner = classNames.apply(null, arg);
45
-
46
40
  if (inner) {
47
41
  classes.push(inner);
48
42
  }
@@ -59,10 +53,8 @@ var index = require('../../_virtual/index.js');
59
53
  }
60
54
  }
61
55
  }
62
-
63
56
  return classes.join(' ');
64
57
  }
65
-
66
58
  if (module.exports) {
67
59
  classNames["default"] = classNames;
68
60
  module.exports = classNames;
@@ -71,6 +63,5 @@ var index = require('../../_virtual/index.js');
71
63
  }
72
64
  })();
73
65
  })(index.classnames);
74
-
75
66
  var classNames = index.classnames.exports;
76
67
  exports["default"] = classNames;