@kdcloudjs/table 1.2.0-canary.15 → 1.2.0-canary.16-hotfix

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 (233) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +2051 -3489
  3. package/dist/@kdcloudjs/table.js.map +1 -1
  4. package/dist/@kdcloudjs/table.min.css +1 -1
  5. package/dist/@kdcloudjs/table.min.js +16 -16
  6. package/dist/@kdcloudjs/table.min.js.map +1 -1
  7. package/es/_utils/arrayUtil.js +0 -3
  8. package/es/_utils/devwarning.js +0 -1
  9. package/es/_utils/formatUtil.js +35 -96
  10. package/es/_utils/hooks.js +18 -42
  11. package/es/_utils/index.js +0 -2
  12. package/es/_utils/numberUtil.js +32 -55
  13. package/es/_utils/omit.js +0 -2
  14. package/es/_utils/type.js +0 -2
  15. package/es/_utils/usePopper.js +74 -137
  16. package/es/config-provider/compDefaultProps.js +0 -1
  17. package/es/config-provider/configProvider.js +2 -7
  18. package/es/config-provider/defaultConfig.js +0 -1
  19. package/es/index.js +0 -2
  20. package/es/locale/locale.js +5 -43
  21. package/es/table/base/calculations.js +22 -72
  22. package/es/table/base/colgroup.js +0 -1
  23. package/es/table/base/empty.js +4 -4
  24. package/es/table/base/header.js +14 -67
  25. package/es/table/base/helpers/SpanManager.js +3 -9
  26. package/es/table/base/helpers/TableDOMUtils.js +4 -27
  27. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  28. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  29. package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
  30. package/es/table/base/helpers/rowHeightManager.js +0 -28
  31. package/es/table/base/html-table.js +14 -35
  32. package/es/table/base/loading.js +6 -8
  33. package/es/table/base/renderTemplates.js +26 -44
  34. package/es/table/base/styles.js +1 -10
  35. package/es/table/base/table.js +96 -179
  36. package/es/table/base/utils.js +14 -54
  37. package/es/table/common-views.js +0 -7
  38. package/es/table/internals.js +0 -13
  39. package/es/table/pipeline/features/autoFill.js +11 -40
  40. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  41. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  42. package/es/table/pipeline/features/columnDrag.d.ts +1 -0
  43. package/es/table/pipeline/features/columnDrag.js +236 -303
  44. package/es/table/pipeline/features/columnFilter.js +11 -48
  45. package/es/table/pipeline/features/columnHover.js +1 -7
  46. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  47. package/es/table/pipeline/features/columnResizeWidth.js +51 -42
  48. package/es/table/pipeline/features/contextMenu.js +18 -89
  49. package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
  50. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  51. package/es/table/pipeline/features/filter/Filter.js +25 -48
  52. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  53. package/es/table/pipeline/features/filter/util.js +0 -4
  54. package/es/table/pipeline/features/footerDataSource.js +0 -3
  55. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  56. package/es/table/pipeline/features/multiSelect.js +15 -57
  57. package/es/table/pipeline/features/rangeSelection.js +65 -143
  58. package/es/table/pipeline/features/rowDetail.js +2 -41
  59. package/es/table/pipeline/features/rowDrag.js +36 -71
  60. package/es/table/pipeline/features/rowGrouping.js +2 -35
  61. package/es/table/pipeline/features/singleSelect.js +0 -24
  62. package/es/table/pipeline/features/sort.js +31 -83
  63. package/es/table/pipeline/features/tips.js +0 -6
  64. package/es/table/pipeline/features/treeMode.js +9 -44
  65. package/es/table/pipeline/features/treeSelect.js +0 -26
  66. package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
  67. package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
  68. package/es/table/pipeline/pipeline.js +11 -51
  69. package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
  70. package/es/table/pivot/cross-table/cross-table.js +22 -28
  71. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
  72. package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
  73. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  74. package/es/table/pivot/pivot-utils/builders.js +31 -71
  75. package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
  76. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  77. package/es/table/transforms/autoRowSpan.js +1 -15
  78. package/es/table/transforms/autoWidth.js +10 -32
  79. package/es/table/transforms/buildTree.js +1 -2
  80. package/es/table/transforms/columnHover.js +9 -15
  81. package/es/table/transforms/columnRangeHover.js +12 -19
  82. package/es/table/transforms/columnResize.js +15 -37
  83. package/es/table/transforms/flatten.js +0 -3
  84. package/es/table/transforms/orderField.js +0 -3
  85. package/es/table/transforms/sort.js +36 -88
  86. package/es/table/transforms/tips.js +1 -6
  87. package/es/table/transforms/treeMode.js +30 -69
  88. package/es/table/transforms/visible.js +0 -2
  89. package/es/table/use/useResizeObserver.js +1 -4
  90. package/es/table/utils/applyTransforms.js +0 -1
  91. package/es/table/utils/buildTree.js +4 -19
  92. package/es/table/utils/collectNodes.js +1 -10
  93. package/es/table/utils/console.js +0 -14
  94. package/es/table/utils/copyToClipboard.js +0 -4
  95. package/es/table/utils/element.js +14 -41
  96. package/es/table/utils/exportTableAsExcel.js +4 -40
  97. package/es/table/utils/getTreeDepth.js +1 -9
  98. package/es/table/utils/groupBy.js +1 -10
  99. package/es/table/utils/layeredFilter.js +0 -4
  100. package/es/table/utils/layeredSort.js +0 -5
  101. package/es/table/utils/makeRecursiveMapper.js +1 -12
  102. package/es/table/utils/mergeCellProps.js +6 -13
  103. package/es/table/utils/others.js +3 -16
  104. package/es/table/utils/proto.js +2 -30
  105. package/es/table/utils/smartCompare.js +4 -12
  106. package/es/table/utils/traverseColumn.js +2 -15
  107. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
  108. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
  109. package/lib/_utils/arrayUtil.js +0 -5
  110. package/lib/_utils/devwarning.js +0 -5
  111. package/lib/_utils/formatUtil.js +35 -100
  112. package/lib/_utils/hooks.js +18 -53
  113. package/lib/_utils/index.js +0 -6
  114. package/lib/_utils/numberUtil.js +32 -63
  115. package/lib/_utils/omit.js +0 -5
  116. package/lib/_utils/react-children.js +0 -5
  117. package/lib/_utils/type.js +0 -6
  118. package/lib/_utils/usePopper.js +74 -158
  119. package/lib/config-provider/ConfigContext.js +1 -4
  120. package/lib/config-provider/compDefaultProps.js +0 -1
  121. package/lib/config-provider/configProvider.js +3 -18
  122. package/lib/config-provider/defaultConfig.js +0 -5
  123. package/lib/config-provider/index.js +0 -6
  124. package/lib/index.js +2 -8
  125. package/lib/locale/index.js +0 -7
  126. package/lib/locale/locale.js +5 -57
  127. package/lib/table/base/calculations.js +22 -83
  128. package/lib/table/base/colgroup.js +0 -5
  129. package/lib/table/base/empty.js +4 -16
  130. package/lib/table/base/header.js +14 -77
  131. package/lib/table/base/helpers/SpanManager.js +3 -11
  132. package/lib/table/base/helpers/TableDOMUtils.js +2 -27
  133. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  134. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  135. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  136. package/lib/table/base/helpers/getRichVisibleRectsStream.js +11 -62
  137. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  138. package/lib/table/base/html-table.js +14 -45
  139. package/lib/table/base/index.js +0 -2
  140. package/lib/table/base/loading.js +6 -12
  141. package/lib/table/base/renderTemplates.js +27 -58
  142. package/lib/table/base/styles.js +1 -22
  143. package/lib/table/base/table.js +96 -212
  144. package/lib/table/base/utils.js +14 -89
  145. package/lib/table/common-views.js +0 -16
  146. package/lib/table/index.js +0 -13
  147. package/lib/table/internals.js +0 -14
  148. package/lib/table/pipeline/features/autoFill.js +11 -47
  149. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  150. package/lib/table/pipeline/features/buildTree.js +0 -2
  151. package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
  152. package/lib/table/pipeline/features/columnDrag.d.ts +1 -0
  153. package/lib/table/pipeline/features/columnDrag.js +236 -309
  154. package/lib/table/pipeline/features/columnFilter.js +11 -62
  155. package/lib/table/pipeline/features/columnHover.js +1 -11
  156. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  157. package/lib/table/pipeline/features/columnResizeWidth.js +51 -58
  158. package/lib/table/pipeline/features/contextMenu.js +18 -113
  159. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
  160. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  161. package/lib/table/pipeline/features/filter/Filter.js +25 -70
  162. package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
  163. package/lib/table/pipeline/features/filter/index.js +0 -5
  164. package/lib/table/pipeline/features/filter/util.js +0 -7
  165. package/lib/table/pipeline/features/footerDataSource.js +0 -10
  166. package/lib/table/pipeline/features/index.js +0 -23
  167. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  168. package/lib/table/pipeline/features/multiSelect.js +15 -71
  169. package/lib/table/pipeline/features/rangeSelection.js +65 -160
  170. package/lib/table/pipeline/features/rowDetail.js +2 -65
  171. package/lib/table/pipeline/features/rowDrag.js +36 -81
  172. package/lib/table/pipeline/features/rowGrouping.js +2 -55
  173. package/lib/table/pipeline/features/singleSelect.js +0 -34
  174. package/lib/table/pipeline/features/sort.js +31 -103
  175. package/lib/table/pipeline/features/tips.js +0 -15
  176. package/lib/table/pipeline/features/treeMode.js +9 -65
  177. package/lib/table/pipeline/features/treeSelect.js +0 -34
  178. package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
  179. package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
  180. package/lib/table/pipeline/index.js +0 -8
  181. package/lib/table/pipeline/pipeline.js +11 -60
  182. package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
  183. package/lib/table/pivot/cross-table/cross-table.js +22 -36
  184. package/lib/table/pivot/cross-table/index.js +0 -4
  185. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
  186. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
  187. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  188. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  189. package/lib/table/pivot/pivot-utils/builders.js +31 -82
  190. package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
  191. package/lib/table/pivot/pivot-utils/index.js +0 -7
  192. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  193. package/lib/table/style/css.js +0 -1
  194. package/lib/table/style/index.js +0 -1
  195. package/lib/table/transforms/autoRowSpan.js +1 -21
  196. package/lib/table/transforms/autoWidth.js +10 -53
  197. package/lib/table/transforms/buildTree.js +1 -4
  198. package/lib/table/transforms/columnHover.js +9 -22
  199. package/lib/table/transforms/columnRangeHover.js +12 -27
  200. package/lib/table/transforms/columnResize.js +15 -56
  201. package/lib/table/transforms/flatten.js +0 -5
  202. package/lib/table/transforms/index.js +0 -12
  203. package/lib/table/transforms/orderField.js +0 -7
  204. package/lib/table/transforms/sort.js +36 -112
  205. package/lib/table/transforms/tips.js +1 -16
  206. package/lib/table/transforms/treeMode.js +30 -96
  207. package/lib/table/transforms/visible.js +0 -7
  208. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  209. package/lib/table/use/useResizeObserver.js +1 -8
  210. package/lib/table/utils/applyTransforms.js +0 -2
  211. package/lib/table/utils/buildTree.js +4 -30
  212. package/lib/table/utils/collectNodes.js +1 -15
  213. package/lib/table/utils/console.js +0 -16
  214. package/lib/table/utils/copyToClipboard.js +0 -6
  215. package/lib/table/utils/element.js +14 -46
  216. package/lib/table/utils/exportTableAsExcel.js +4 -49
  217. package/lib/table/utils/getTreeDepth.js +1 -14
  218. package/lib/table/utils/groupBy.js +1 -14
  219. package/lib/table/utils/index.js +0 -21
  220. package/lib/table/utils/isGroupColumn.js +0 -3
  221. package/lib/table/utils/isLeafNode.js +0 -1
  222. package/lib/table/utils/layeredFilter.js +0 -10
  223. package/lib/table/utils/layeredSort.js +0 -10
  224. package/lib/table/utils/makeRecursiveMapper.js +1 -21
  225. package/lib/table/utils/mergeCellProps.js +6 -17
  226. package/lib/table/utils/others.js +3 -31
  227. package/lib/table/utils/proto.js +2 -33
  228. package/lib/table/utils/selectColumn.js +0 -1
  229. package/lib/table/utils/smartCompare.js +4 -13
  230. package/lib/table/utils/traverseColumn.js +2 -22
  231. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
  232. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
  233. package/package.json +2 -1
@@ -19,63 +19,50 @@ export function filter() {
19
19
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
20
  return function step(pipeline) {
21
21
  var _a, _b;
22
-
23
22
  var dataSource = pipeline.getDataSource();
24
23
  var columns = pipeline.getColumns();
25
24
  var filters = opts.filters,
26
- defaultFilters = opts.defaultFilters,
27
- onChangeFilters = opts.onChangeFilters,
28
- keepDataSource = opts.keepDataSource,
29
- mode = opts.mode,
30
- filterIcon = opts.filterIcon,
31
- stopClickEventPropagation = opts.stopClickEventPropagation,
32
- stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
33
- hideFilterPopupHeader = opts.hideFilterPopupHeader,
34
- getPopupParent = opts.getPopupParent;
25
+ defaultFilters = opts.defaultFilters,
26
+ onChangeFilters = opts.onChangeFilters,
27
+ keepDataSource = opts.keepDataSource,
28
+ mode = opts.mode,
29
+ filterIcon = opts.filterIcon,
30
+ stopClickEventPropagation = opts.stopClickEventPropagation,
31
+ stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
32
+ hideFilterPopupHeader = opts.hideFilterPopupHeader,
33
+ getPopupParent = opts.getPopupParent;
35
34
  var inputFilters = (_b = (_a = filters !== null && filters !== void 0 ? filters : pipeline.getStateAtKey(stateKey)) !== null && _a !== void 0 ? _a : defaultFilters) !== null && _b !== void 0 ? _b : [];
36
35
  inputFilters = mode === 'single' ? _sliceInstanceProperty(inputFilters).call(inputFilters, 0, 1) : inputFilters;
37
36
  var inputFiltersMap = new _Map(_mapInstanceProperty(inputFilters).call(inputFilters, function (filterItem) {
38
37
  return [filterItem.code, _extends({}, filterItem)];
39
38
  }));
40
39
  var localeText = pipeline.ctx.localeText;
41
-
42
40
  function processColumns(columns) {
43
41
  return _mapInstanceProperty(columns).call(columns, dfs);
44
-
45
42
  function dfs(col) {
46
43
  var _a, _b, _c, _d, _e, _f, _g;
47
-
48
44
  var result = _extends({}, col);
49
-
50
45
  var filterable = col.code && ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable);
51
46
  var filterActive = filterable && ((_c = (_b = inputFiltersMap === null || inputFiltersMap === void 0 ? void 0 : inputFiltersMap.get(col.code)) === null || _b === void 0 ? void 0 : _filterInstanceProperty(_b)) === null || _c === void 0 ? void 0 : _c.length) > 0;
52
-
53
47
  if (filterable) {
54
48
  var _cx;
55
-
56
49
  var handleFilterChanged = function handleFilterChanged(filterItem) {
57
50
  var nextFiltersMap = new _Map(inputFiltersMap);
58
-
59
51
  var currentFilter = _extends({
60
52
  code: col.code
61
53
  }, filterItem);
62
-
63
54
  if (filterItem == null) {
64
55
  nextFiltersMap.delete(col.code);
65
56
  } else {
66
57
  if (mode === 'single') {
67
58
  nextFiltersMap.clear();
68
59
  }
69
-
70
60
  nextFiltersMap.set(col.code, currentFilter);
71
61
  }
72
-
73
62
  var nextFilters = _Array$from(_valuesInstanceProperty(nextFiltersMap).call(nextFiltersMap));
74
-
75
63
  onChangeFilters === null || onChangeFilters === void 0 ? void 0 : onChangeFilters(nextFilters, currentFilter);
76
64
  pipeline.setStateAtKey(stateKey, nextFilters);
77
65
  };
78
-
79
66
  var setFilter = function setFilter(filter, filterCondition) {
80
67
  handleFilterChanged(!filter ? undefined : {
81
68
  code: col.code,
@@ -83,10 +70,8 @@ export function filter() {
83
70
  filterCondition: filterCondition
84
71
  });
85
72
  };
86
-
87
73
  var filterPanel = (_d = col.features) === null || _d === void 0 ? void 0 : _d.filterPanel;
88
74
  var colFilterIcon = (_f = (_e = col.features) === null || _e === void 0 ? void 0 : _e.filterIcon) !== null && _f !== void 0 ? _f : filterIcon;
89
-
90
75
  var _Filter = /*#__PURE__*/React.createElement(Filter, {
91
76
  key: "".concat(col.code, "_filter"),
92
77
  FilterPanelContent: filterPanel,
@@ -102,47 +87,38 @@ export function filter() {
102
87
  getPopupParent: getPopupParent,
103
88
  localeText: localeText
104
89
  });
105
-
106
90
  if (col.renderHeader) {
107
91
  result.title = col.renderHeader(result.title, _Filter);
108
92
  } else {
109
93
  var _context, _context2;
110
-
111
94
  result.title = _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(_concatInstanceProperty(_context2 = []).call(_context2, (_g = result.title) !== null && _g !== void 0 ? _g : [internals.safeRenderHeader(_extends({}, col))])), [_Filter]);
112
- } // result.headerCellProps = mergeCellProps(col.headerCellProps, {
95
+ }
96
+ // result.headerCellProps = mergeCellProps(col.headerCellProps, {
113
97
  // style: {
114
98
  // paddingRight: '18px'
115
99
  // }
116
100
  // })
117
-
118
101
  }
119
102
 
120
103
  if (!isLeafNode(col)) {
121
104
  var _context3;
122
-
123
105
  result.children = _mapInstanceProperty(_context3 = col.children).call(_context3, dfs);
124
106
  }
125
-
126
107
  return result;
127
108
  }
128
109
  }
129
-
130
110
  function processDataSource(dataSource) {
131
111
  var _context4, _context5;
132
-
133
112
  var filtersKeys = [];
134
113
  inputFiltersMap.forEach(function (value, key) {
135
114
  filtersKeys.push(key);
136
115
  });
137
-
138
116
  if (keepDataSource || filtersKeys.length <= 0) {
139
117
  return dataSource;
140
118
  }
141
-
142
119
  var columns = pipeline.getColumns();
143
120
  var columnsMap = new _Map(_mapInstanceProperty(_context4 = _filterInstanceProperty(_context5 = collectNodes(columns, 'leaf-only')).call(_context5, function (col) {
144
121
  var _a, _b;
145
-
146
122
  return ((_a = col.features) === null || _a === void 0 ? void 0 : _a.filterable) !== false && ((_b = col.features) === null || _b === void 0 ? void 0 : _b.filterable) != null;
147
123
  })).call(_context4, function (col) {
148
124
  return [col.code, col];
@@ -150,15 +126,12 @@ export function filter() {
150
126
  var defaultFilterOptionsMap = new _Map(_mapInstanceProperty(DEFAULT_FILTER_OPTIONS).call(DEFAULT_FILTER_OPTIONS, function (item) {
151
127
  return [item.key, _extends({}, item)];
152
128
  }));
153
-
154
129
  function isMatchedFilterCondition(record) {
155
130
  return filtersKeys.every(function (key) {
156
131
  var _a, _b;
157
-
158
132
  var filterItem = inputFiltersMap.get(key);
159
133
  var filterable = (_b = (_a = columnsMap.get(key)) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.filterable;
160
134
  var comparisonFn;
161
-
162
135
  if (typeof filterable === 'function') {
163
136
  comparisonFn = filterable;
164
137
  } else if (defaultFilterOptionsMap.get(filterItem.filterCondition)) {
@@ -167,40 +140,30 @@ export function filter() {
167
140
  console.warn("\u5217[".concat(key, "]\u672A\u914D\u7F6E\u7B5B\u9009\u51FD\u6570\uFF0C\u8BF7\u8BBE\u7F6E column.features.filterable \u6765\u4F5C\u4E3A\u8BE5\u5217\u7684\u7B5B\u9009\u51FD\u6570, \u76EE\u524D\u4F7F\u7528\u9ED8\u8BA4\u5305\u542B\u7B5B\u9009\u51FD\u6570"));
168
141
  comparisonFn = _filterInstanceProperty(defaultFilterOptionsMap.get('contain'));
169
142
  }
170
-
171
143
  return comparisonFn(_filterInstanceProperty(filterItem), filterItem)(internals.safeGetValue(columnsMap.get(key), record, -1), record);
172
144
  });
173
145
  }
174
-
175
146
  return layeredFilter(dataSource, isMatchedFilterCondition);
176
147
  }
177
-
178
148
  pipeline.dataSource(processDataSource(dataSource));
179
149
  pipeline.columns(processColumns(columns));
180
150
  return pipeline;
181
151
  };
182
152
  }
183
-
184
153
  function layeredFilter(array, matchFn) {
185
154
  return dfs(array);
186
-
187
155
  function dfs(rows) {
188
156
  var _context6;
189
-
190
157
  var parentMatched = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
191
158
  return _filterInstanceProperty(_context6 = _mapInstanceProperty(rows).call(rows, function (row) {
192
159
  var currentMatched = matchFn(row);
193
-
194
160
  if (isLeafNode(row)) {
195
161
  return (parentMatched || currentMatched) && _extends({}, row);
196
162
  }
197
-
198
163
  var children = row.children;
199
-
200
164
  var rowAfterFilterChildren = _extends(_extends({}, row), {
201
165
  children: dfs(children, parentMatched || currentMatched)
202
166
  });
203
-
204
167
  var matchedByChildren = !isLeafNode(rowAfterFilterChildren);
205
168
  return (parentMatched || currentMatched || matchedByChildren) && rowAfterFilterChildren;
206
169
  })).call(_context6, Boolean);
@@ -5,29 +5,23 @@ export function columnHover() {
5
5
  var stateKey = 'columnHover';
6
6
  return function (pipeline) {
7
7
  var _a, _b, _c, _d;
8
-
9
8
  var hoverColor = (_a = opts.hoverColor) !== null && _a !== void 0 ? _a : 'var(--hover-bgcolor)';
10
9
  var hoverColIndex = (_d = (_c = (_b = opts.hoverColIndex) !== null && _b !== void 0 ? _b : pipeline.getStateAtKey(stateKey)) !== null && _c !== void 0 ? _c : opts.defaultHoverColIndex) !== null && _d !== void 0 ? _d : -1;
11
-
12
10
  var onChangeHoverColIndex = function onChangeHoverColIndex(nextColIndex) {
13
11
  var _a;
14
-
15
12
  pipeline.setStateAtKey(stateKey, nextColIndex);
16
13
  (_a = opts.onChangeHoverColIndex) === null || _a === void 0 ? void 0 : _a.call(opts, nextColIndex);
17
14
  };
18
-
19
15
  return pipeline.mapColumns(makeRecursiveMapper(function (col, _ref) {
20
16
  var startIndex = _ref.startIndex,
21
- endIndex = _ref.endIndex;
17
+ endIndex = _ref.endIndex;
22
18
  var range = {
23
19
  start: startIndex,
24
20
  end: endIndex
25
21
  };
26
-
27
22
  if (!isLeafNode(col)) {
28
23
  return col;
29
24
  }
30
-
31
25
  var colIndexMatched = range.start <= hoverColIndex && hoverColIndex < range.end;
32
26
  var prevGetCellProps = col.getCellProps;
33
27
  return _extends(_extends({}, col), {
@@ -9,32 +9,26 @@ export function columnRangeHover() {
9
9
  var stateKey = 'columnHover';
10
10
  return function columnRangeHoverStep(pipeline) {
11
11
  var _a, _b, _c, _d, _e;
12
-
13
12
  var hoverRange = (_c = (_b = (_a = opts.hoverRange) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : opts.defaultHoverRange) !== null && _c !== void 0 ? _c : EMPTY_RANGE;
14
13
  var hoverColor = (_d = opts.hoverColor) !== null && _d !== void 0 ? _d : 'var(--hover-bgcolor)';
15
14
  var headerHoverColor = (_e = opts.headerHoverColor) !== null && _e !== void 0 ? _e : 'var(--header-hover-bgcolor)';
16
-
17
15
  var onChangeHoverRange = function onChangeHoverRange(nextColIndexRange) {
18
16
  var _a;
19
-
20
17
  pipeline.setStateAtKey(stateKey, nextColIndexRange);
21
18
  (_a = opts.onChangeHoverRange) === null || _a === void 0 ? void 0 : _a.call(opts, nextColIndexRange);
22
19
  };
23
-
24
20
  return pipeline.mapColumns(makeRecursiveMapper(function (col, _ref) {
25
21
  var startIndex = _ref.startIndex,
26
- endIndex = _ref.endIndex;
22
+ endIndex = _ref.endIndex;
27
23
  var colRange = {
28
24
  start: startIndex,
29
25
  end: endIndex
30
26
  };
31
27
  var match = colRange.end > hoverRange.start && hoverRange.end > colRange.start;
32
-
33
28
  if (!isLeafNode(col)) {
34
29
  if (headerHoverColor == null) {
35
30
  return col;
36
31
  }
37
-
38
32
  return _extends(_extends({}, col), {
39
33
  headerCellProps: mergeCellProps(col.headerCellProps, {
40
34
  onMouseEnter: function onMouseEnter() {
@@ -49,7 +43,6 @@ export function columnRangeHover() {
49
43
  })
50
44
  });
51
45
  }
52
-
53
46
  var prevGetCellProps = col.getCellProps;
54
47
  return _extends(_extends({}, col), {
55
48
  headerCellProps: mergeCellProps(col.headerCellProps, {
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime-corejs3/helpers/extends";
2
2
  import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplateLiteral";
3
-
4
3
  var _templateObject, _templateObject2;
5
-
6
4
  import _Set from "@babel/runtime-corejs3/core-js-stable/set";
7
5
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
8
6
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
@@ -13,40 +11,34 @@ import * as op from 'rxjs/operators';
13
11
  import { mergeCellProps, collectNodes, makeRecursiveMapper, isGroupColumn } from '../../utils';
14
12
  import { internals } from '../../internals';
15
13
  import { Classes } from '../../base/styles';
14
+ import { getEventCoordinates } from './utils/touchEventUtils';
16
15
  var TableHeaderCellResize = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: -5px;\n height: 100%;\n width: 10px;\n cursor: ew-resize;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index:1;\n\n &:after {\n content: \"\";\n position: absolute;\n display: block;\n left: calc(50% - 1px);\n width: 1px;\n height: calc(100% - 14px);\n top: 7px;\n }\n"])));
17
16
  var TableHeaderGroupCellResize = styled(function (props) {
18
17
  return /*#__PURE__*/React.createElement(TableHeaderCellResize, _extends({}, props));
19
18
  })(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:after {\n height: 100%;\n top: 0;\n }\n"])));
20
-
21
19
  function clamp(min, x, max) {
22
20
  return Math.max(min, Math.min(max, x));
23
21
  }
24
-
25
22
  function disableSelect(event) {
26
23
  event.preventDefault();
27
24
  }
28
-
29
25
  var stateKey = 'columnResize';
30
26
  export var COLUMN_SIZE_KEY = 'columnResize';
31
27
  export var RESIZED_COLUMN_KEY = 'resizedColumn';
32
28
  export var LAST_RESIZED_COLUMN_KEY = 'lastResizedColumn';
33
29
  export function columnResize() {
34
30
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
35
-
36
31
  var _a, _b, _c;
37
-
38
32
  var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
39
33
  var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
40
34
  var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
41
35
  return function columnResizeFeature(pipeline) {
42
36
  var _a, _b;
43
-
44
37
  var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
45
38
  var leafColumns = collectNodes(pipeline.getColumns(), 'leaf-only');
46
39
  leafColumns.forEach(function (_ref) {
47
40
  var code = _ref.code,
48
- width = _ref.width;
49
-
41
+ width = _ref.width;
50
42
  if (columnSize[code] === undefined) {
51
43
  if (typeof width === 'number') {
52
44
  columnSize[code] = width;
@@ -54,49 +46,56 @@ export function columnResize() {
54
46
  columnSize[code] = fallbackSize;
55
47
  }
56
48
  }
57
- }); // 实时存储一份最新的columnSize,与autoFill共用一份数据
49
+ });
50
+ // 实时存储一份最新的columnSize,与autoFill共用一份数据
58
51
  // 存在state里可能存到取不到最新的
59
-
60
52
  pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
61
-
62
53
  var onChangeSize = function onChangeSize(nextColumnSize) {
63
54
  window.requestAnimationFrame(function () {
64
55
  var _a;
65
-
66
56
  pipeline.setStateAtKey(stateKey, nextColumnSize);
67
57
  (_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
68
58
  });
69
59
  };
70
-
71
60
  var handleDoubleClick = function handleDoubleClick(e, col) {
72
61
  var _a;
73
-
74
62
  (_a = opts.doubleClickCallback) === null || _a === void 0 ? void 0 : _a.call(opts, e, col);
75
63
  };
76
-
77
- var handleMouseDown = function handleMouseDown(e, col) {
64
+ // 通用的拖拽处理逻辑
65
+ var handleResize = function handleResize(startEvent, col, eventType) {
78
66
  window.addEventListener('selectstart', disableSelect);
79
67
  var changedColumnSize = {};
80
- var startX = e.clientX;
68
+ var startCoordinates = getEventCoordinates(startEvent);
69
+ var startX = startCoordinates.clientX;
81
70
  var children = col.children,
82
- code = col.code,
83
- _col$features = col.features,
84
- features = _col$features === void 0 ? {} : _col$features;
71
+ code = col.code,
72
+ _col$features = col.features,
73
+ features = _col$features === void 0 ? {} : _col$features;
85
74
  var minWidth = features.minWidth,
86
- maxWidth = features.maxWidth;
75
+ maxWidth = features.maxWidth;
87
76
  var realMinSize = typeof minWidth === 'number' ? minWidth : minSize;
88
77
  var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
89
78
  var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
90
79
  var recordColumnSize = columnSize;
91
- e.stopPropagation();
92
- var nextSize$ = fromEvent(window, 'mousemove').pipe(op.takeUntil(fromEvent(window, 'mouseup')), op.map(function (e) {
93
- var movingX = e.clientX;
94
-
80
+ // 根据事件类型选择不同的事件监听器
81
+ var moveEventName = eventType === 'mouse' ? 'mousemove' : 'touchmove';
82
+ var endEventName = eventType === 'mouse' ? 'mouseup' : 'touchend';
83
+ var moveEventOptions = eventType === 'touch' ? {
84
+ passive: false
85
+ } : undefined;
86
+ var endEventOptions = eventType === 'touch' ? {
87
+ passive: false
88
+ } : undefined;
89
+ var nextSize$ = fromEvent(window, moveEventName, moveEventOptions).pipe(op.takeUntil(fromEvent(window, endEventName, endEventOptions)), op.map(function (e) {
90
+ // 触摸事件需要阻止默认行为,防止页面滚动
91
+ if (eventType === 'touch' && e.cancelable) {
92
+ e.preventDefault();
93
+ }
94
+ var coordinates = getEventCoordinates(e);
95
+ var movingX = coordinates.clientX;
95
96
  var nextColumnSize = _extends({}, columnSize);
96
-
97
97
  var deltaSum = movingX - startX;
98
98
  var deltaRemaining = deltaSum;
99
-
100
99
  if ((children === null || children === void 0 ? void 0 : children.length) > 0) {
101
100
  var leafChildColumns = collectNodes(children, 'leaf-only');
102
101
  var childrenWidthSum = leafChildColumns.reduce(function (sum, _ref2) {
@@ -107,7 +106,6 @@ export function columnResize() {
107
106
  var code = _ref3.code;
108
107
  var startSize = columnSize[code];
109
108
  var currentDeltaWidth = Math.round(deltaSum * startSize / childrenWidthSum);
110
-
111
109
  if (index < leafChildColumns.length - 1) {
112
110
  nextColumnSize[code] = clamp(realMinSize, startSize + currentDeltaWidth, realMaxSize);
113
111
  changedColumnSize[code] = nextColumnSize[code];
@@ -122,51 +120,56 @@ export function columnResize() {
122
120
  nextColumnSize[code] = clamp(realMinSize, startSize + deltaSum, realMaxSize);
123
121
  changedColumnSize[code] = nextColumnSize[code];
124
122
  }
125
-
126
123
  recordColumnSize = nextColumnSize;
127
124
  return nextColumnSize;
128
125
  }));
129
126
  nextSize$.subscribe({
130
127
  next: function next(nextColumnSize) {
131
- onChangeSize(nextColumnSize); // 由于COLUMN_RESIZE_KEY记录的是全量的列宽,此处记录被改变过的列宽
132
-
128
+ onChangeSize(nextColumnSize);
129
+ // 由于COLUMN_RESIZE_KEY记录的是全量的列宽,此处记录被改变过的列宽
133
130
  var resizedColumnSet = pipeline.getFeatureOptions(RESIZED_COLUMN_KEY) || new _Set();
134
-
135
131
  _Object$keys(changedColumnSize).forEach(function (code) {
136
132
  resizedColumnSet.add(code, changedColumnSize[code]);
137
133
  });
138
-
139
134
  pipeline.setFeatureOptions(RESIZED_COLUMN_KEY, resizedColumnSet);
140
135
  pipeline.setFeatureOptions(LAST_RESIZED_COLUMN_KEY, code);
141
136
  },
142
137
  complete: function complete() {
143
138
  var _context;
144
-
145
139
  var changedColumnSizes = _mapInstanceProperty(_context = _Object$keys(changedColumnSize)).call(_context, function (code) {
146
140
  return {
147
141
  code: code,
148
142
  width: changedColumnSize[code]
149
143
  };
150
144
  });
151
-
152
145
  window.requestAnimationFrame(function () {
153
146
  var _a;
154
-
155
147
  (_a = opts === null || opts === void 0 ? void 0 : opts.afterChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, recordColumnSize, changedColumnSizes);
156
148
  });
157
149
  window.removeEventListener('selectstart', disableSelect);
158
150
  }
159
151
  });
160
152
  };
161
-
153
+ var handleMouseDown = function handleMouseDown(e, col) {
154
+ e.stopPropagation();
155
+ handleResize(e.nativeEvent, col, 'mouse');
156
+ };
157
+ // 触摸事件处理函数
158
+ var handleTouchStart = function handleTouchStart(e, col) {
159
+ // 阻止触摸事件的默认行为
160
+ if (e.cancelable) {
161
+ e.preventDefault();
162
+ }
163
+ e.stopPropagation();
164
+ handleResize(e.nativeEvent, col, 'touch');
165
+ };
162
166
  var isGroup = isGroupColumn(pipeline.getColumns());
163
167
  return pipeline.mapColumns(makeRecursiveMapper(function (col) {
164
168
  var _a;
165
-
166
169
  var prevTitle = internals.safeRenderHeader(col);
167
170
  var code = col.code,
168
- features = col.features,
169
- width = col.width;
171
+ features = col.features,
172
+ width = col.width;
170
173
  return _extends(_extends({}, col), {
171
174
  width: (_a = columnSize[code]) !== null && _a !== void 0 ? _a : width,
172
175
  title: /*#__PURE__*/React.createElement(React.Fragment, null, prevTitle, (features === null || features === void 0 ? void 0 : features.resizeable) !== false && (isGroup ? /*#__PURE__*/React.createElement(TableHeaderGroupCellResize, {
@@ -176,6 +179,9 @@ export function columnResize() {
176
179
  },
177
180
  onMouseDown: function onMouseDown(e) {
178
181
  return handleMouseDown(e, col);
182
+ },
183
+ onTouchStart: function onTouchStart(e) {
184
+ return handleTouchStart(e, col);
179
185
  }
180
186
  }) : /*#__PURE__*/React.createElement(TableHeaderCellResize, {
181
187
  className: Classes.tableHeaderCellResize,
@@ -184,6 +190,9 @@ export function columnResize() {
184
190
  },
185
191
  onMouseDown: function onMouseDown(e) {
186
192
  return handleMouseDown(e, col);
193
+ },
194
+ onTouchStart: function onTouchStart(e) {
195
+ return handleTouchStart(e, col);
187
196
  }
188
197
  }))),
189
198
  headerCellProps: mergeCellProps(col.headerCellProps, {