@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.17-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 (259) hide show
  1. package/LICENSE +568 -568
  2. package/README.md +111 -111
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.js +4596 -5714
  5. package/dist/@kdcloudjs/table.js.map +1 -1
  6. package/dist/@kdcloudjs/table.min.css +1 -1
  7. package/dist/@kdcloudjs/table.min.js +18 -16
  8. package/dist/@kdcloudjs/table.min.js.map +1 -1
  9. package/dist/kd-ui-complete.less +777 -777
  10. package/es/_utils/arrayUtil.js +0 -3
  11. package/es/_utils/devwarning.js +0 -1
  12. package/es/_utils/formatUtil.js +36 -101
  13. package/es/_utils/hooks.js +21 -45
  14. package/es/_utils/index.js +0 -2
  15. package/es/_utils/numberUtil.js +32 -55
  16. package/es/_utils/omit.js +0 -2
  17. package/es/_utils/type.js +0 -2
  18. package/es/_utils/usePopper.js +74 -137
  19. package/es/config-provider/compDefaultProps.js +0 -1
  20. package/es/config-provider/configProvider.js +2 -7
  21. package/es/config-provider/defaultConfig.js +0 -1
  22. package/es/index.js +0 -2
  23. package/es/locale/locale.js +9 -48
  24. package/es/style/color/colors.less +1 -1
  25. package/es/style/core/index.less +1 -1
  26. package/es/style/core/motion/other.less +27 -27
  27. package/es/style/core/motion/slide.less +53 -53
  28. package/es/style/core/motion.less +1 -1
  29. package/es/style/core/reset.less +185 -185
  30. package/es/style/index.less +1 -1
  31. package/es/style/mixins/index.less +18 -18
  32. package/es/style/mixins/overlay.less +21 -21
  33. package/es/style/mixins/reset.less +12 -12
  34. package/es/style/themes/default.less +445 -445
  35. package/es/table/base/calculations.js +25 -75
  36. package/es/table/base/colgroup.js +0 -1
  37. package/es/table/base/empty.js +6 -6
  38. package/es/table/base/header.js +19 -74
  39. package/es/table/base/helpers/SpanManager.js +4 -11
  40. package/es/table/base/helpers/TableDOMUtils.js +7 -30
  41. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  42. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  43. package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
  44. package/es/table/base/helpers/rowHeightManager.js +0 -28
  45. package/es/table/base/html-table.js +17 -39
  46. package/es/table/base/loading.js +8 -10
  47. package/es/table/base/renderTemplates.js +41 -59
  48. package/es/table/base/styles.js +0 -9
  49. package/es/table/base/table.js +110 -199
  50. package/es/table/base/utils.js +17 -57
  51. package/es/table/common-views.js +0 -7
  52. package/es/table/internals.js +0 -13
  53. package/es/table/pipeline/features/autoFill.js +11 -40
  54. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  55. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  56. package/es/table/pipeline/features/columnDrag.js +41 -97
  57. package/es/table/pipeline/features/columnFilter.js +12 -51
  58. package/es/table/pipeline/features/columnHover.js +1 -7
  59. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  60. package/es/table/pipeline/features/columnResizeWidth.js +13 -39
  61. package/es/table/pipeline/features/contextMenu.js +18 -91
  62. package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
  63. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  64. package/es/table/pipeline/features/filter/Filter.js +26 -50
  65. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  66. package/es/table/pipeline/features/filter/util.js +0 -4
  67. package/es/table/pipeline/features/footerDataSource.js +0 -3
  68. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  69. package/es/table/pipeline/features/multiSelect.js +15 -57
  70. package/es/table/pipeline/features/rangeSelection.js +74 -154
  71. package/es/table/pipeline/features/rowDetail.js +4 -43
  72. package/es/table/pipeline/features/rowDrag.js +64 -80
  73. package/es/table/pipeline/features/rowGrouping.js +4 -37
  74. package/es/table/pipeline/features/singleSelect.js +0 -24
  75. package/es/table/pipeline/features/sort.js +37 -90
  76. package/es/table/pipeline/features/tips.js +4 -10
  77. package/es/table/pipeline/features/treeMode.js +14 -49
  78. package/es/table/pipeline/features/treeSelect.js +2 -28
  79. package/es/table/pipeline/pipeline.js +12 -53
  80. package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
  81. package/es/table/pivot/cross-table/cross-table.js +23 -31
  82. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
  83. package/es/table/pivot/cross-tree-table/cross-tree-table.js +35 -61
  84. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  85. package/es/table/pivot/pivot-utils/builders.js +34 -74
  86. package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
  87. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  88. package/es/table/style/index.less +1 -1
  89. package/es/table/transforms/autoRowSpan.js +1 -15
  90. package/es/table/transforms/autoWidth.js +13 -35
  91. package/es/table/transforms/buildTree.js +1 -2
  92. package/es/table/transforms/columnHover.js +9 -15
  93. package/es/table/transforms/columnRangeHover.js +12 -19
  94. package/es/table/transforms/columnResize.js +18 -42
  95. package/es/table/transforms/flatten.js +0 -3
  96. package/es/table/transforms/orderField.js +0 -3
  97. package/es/table/transforms/sort.js +42 -96
  98. package/es/table/transforms/tips.js +5 -10
  99. package/es/table/transforms/treeMode.js +36 -77
  100. package/es/table/transforms/visible.js +0 -2
  101. package/es/table/use/useResizeObserver.js +1 -4
  102. package/es/table/utils/applyTransforms.js +0 -1
  103. package/es/table/utils/buildTree.js +7 -22
  104. package/es/table/utils/collectNodes.js +4 -13
  105. package/es/table/utils/console.js +0 -14
  106. package/es/table/utils/copyToClipboard.js +0 -4
  107. package/es/table/utils/element.js +14 -41
  108. package/es/table/utils/exportTableAsExcel.js +7 -43
  109. package/es/table/utils/getTreeDepth.js +4 -12
  110. package/es/table/utils/groupBy.js +4 -13
  111. package/es/table/utils/layeredFilter.js +0 -4
  112. package/es/table/utils/layeredSort.js +0 -5
  113. package/es/table/utils/makeRecursiveMapper.js +4 -15
  114. package/es/table/utils/mergeCellProps.js +6 -14
  115. package/es/table/utils/others.js +6 -19
  116. package/es/table/utils/proto.js +2 -30
  117. package/es/table/utils/smartCompare.js +4 -12
  118. package/es/table/utils/traverseColumn.js +5 -18
  119. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -27
  120. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
  121. package/lib/_utils/arrayUtil.js +2 -8
  122. package/lib/_utils/devwarning.js +0 -5
  123. package/lib/_utils/formatUtil.js +36 -105
  124. package/lib/_utils/hooks.js +21 -56
  125. package/lib/_utils/index.js +2 -9
  126. package/lib/_utils/numberUtil.js +32 -63
  127. package/lib/_utils/omit.js +0 -5
  128. package/lib/_utils/react-children.js +0 -5
  129. package/lib/_utils/type.js +3 -11
  130. package/lib/_utils/usePopper.js +79 -166
  131. package/lib/config-provider/ConfigContext.js +2 -6
  132. package/lib/config-provider/compDefaultProps.js +1 -3
  133. package/lib/config-provider/configProvider.js +6 -22
  134. package/lib/config-provider/defaultConfig.js +1 -7
  135. package/lib/config-provider/index.js +1 -8
  136. package/lib/index.js +2 -8
  137. package/lib/locale/index.js +3 -11
  138. package/lib/locale/locale.js +13 -69
  139. package/lib/locale/zh-CN.js +1 -2
  140. package/lib/style/color/colors.less +1 -1
  141. package/lib/style/components.less +1 -1
  142. package/lib/style/core/index.less +1 -1
  143. package/lib/style/core/motion/other.less +27 -27
  144. package/lib/style/core/motion/slide.less +53 -53
  145. package/lib/style/core/motion.less +1 -1
  146. package/lib/style/core/reset.less +185 -185
  147. package/lib/style/index.less +1 -1
  148. package/lib/style/mixins/index.less +18 -18
  149. package/lib/style/mixins/overlay.less +21 -21
  150. package/lib/style/mixins/reset.less +12 -12
  151. package/lib/style/themes/default.less +445 -445
  152. package/lib/table/base/calculations.js +25 -86
  153. package/lib/table/base/colgroup.js +0 -5
  154. package/lib/table/base/empty.js +8 -20
  155. package/lib/table/base/header.js +19 -84
  156. package/lib/table/base/helpers/SpanManager.js +6 -16
  157. package/lib/table/base/helpers/TableDOMUtils.js +7 -33
  158. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  159. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  160. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  161. package/lib/table/base/helpers/getRichVisibleRectsStream.js +13 -64
  162. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  163. package/lib/table/base/html-table.js +17 -49
  164. package/lib/table/base/index.js +0 -2
  165. package/lib/table/base/loading.js +8 -14
  166. package/lib/table/base/renderTemplates.js +44 -75
  167. package/lib/table/base/styles.js +9 -37
  168. package/lib/table/base/table.js +122 -243
  169. package/lib/table/base/utils.js +27 -109
  170. package/lib/table/common-views.js +4 -24
  171. package/lib/table/index.js +0 -13
  172. package/lib/table/internals.js +2 -17
  173. package/lib/table/pipeline/features/autoFill.js +14 -53
  174. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  175. package/lib/table/pipeline/features/buildTree.js +0 -2
  176. package/lib/table/pipeline/features/colGroupExtendable.js +6 -35
  177. package/lib/table/pipeline/features/columnDrag.js +41 -103
  178. package/lib/table/pipeline/features/columnFilter.js +12 -65
  179. package/lib/table/pipeline/features/columnHover.js +1 -11
  180. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  181. package/lib/table/pipeline/features/columnResizeWidth.js +18 -63
  182. package/lib/table/pipeline/features/contextMenu.js +20 -117
  183. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
  184. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  185. package/lib/table/pipeline/features/filter/Filter.js +29 -76
  186. package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
  187. package/lib/table/pipeline/features/filter/index.js +0 -5
  188. package/lib/table/pipeline/features/filter/util.js +2 -10
  189. package/lib/table/pipeline/features/footerDataSource.js +1 -12
  190. package/lib/table/pipeline/features/index.js +0 -23
  191. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  192. package/lib/table/pipeline/features/multiSelect.js +15 -71
  193. package/lib/table/pipeline/features/rangeSelection.js +76 -175
  194. package/lib/table/pipeline/features/rowDetail.js +4 -67
  195. package/lib/table/pipeline/features/rowDrag.js +66 -94
  196. package/lib/table/pipeline/features/rowGrouping.js +4 -57
  197. package/lib/table/pipeline/features/singleSelect.js +0 -34
  198. package/lib/table/pipeline/features/sort.js +37 -110
  199. package/lib/table/pipeline/features/tips.js +4 -19
  200. package/lib/table/pipeline/features/treeMode.js +15 -72
  201. package/lib/table/pipeline/features/treeSelect.js +2 -36
  202. package/lib/table/pipeline/index.js +2 -10
  203. package/lib/table/pipeline/pipeline.js +13 -64
  204. package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
  205. package/lib/table/pivot/cross-table/constants.js +1 -2
  206. package/lib/table/pivot/cross-table/cross-table.js +25 -42
  207. package/lib/table/pivot/cross-table/index.js +0 -4
  208. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
  209. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +36 -73
  210. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  211. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  212. package/lib/table/pivot/pivot-utils/builders.js +34 -85
  213. package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
  214. package/lib/table/pivot/pivot-utils/index.js +0 -7
  215. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  216. package/lib/table/style/css.js +0 -1
  217. package/lib/table/style/index.js +0 -1
  218. package/lib/table/style/index.less +1 -1
  219. package/lib/table/transforms/autoRowSpan.js +1 -21
  220. package/lib/table/transforms/autoWidth.js +15 -58
  221. package/lib/table/transforms/buildTree.js +1 -4
  222. package/lib/table/transforms/columnHover.js +9 -22
  223. package/lib/table/transforms/columnRangeHover.js +12 -27
  224. package/lib/table/transforms/columnResize.js +20 -63
  225. package/lib/table/transforms/flatten.js +0 -5
  226. package/lib/table/transforms/index.js +0 -12
  227. package/lib/table/transforms/orderField.js +0 -7
  228. package/lib/table/transforms/sort.js +44 -122
  229. package/lib/table/transforms/tips.js +5 -20
  230. package/lib/table/transforms/treeMode.js +38 -106
  231. package/lib/table/transforms/visible.js +0 -7
  232. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  233. package/lib/table/use/useResizeObserver.js +2 -10
  234. package/lib/table/utils/applyTransforms.js +0 -2
  235. package/lib/table/utils/browserType.js +2 -3
  236. package/lib/table/utils/buildTree.js +7 -33
  237. package/lib/table/utils/collectNodes.js +4 -18
  238. package/lib/table/utils/console.js +2 -19
  239. package/lib/table/utils/copyToClipboard.js +1 -8
  240. package/lib/table/utils/element.js +14 -46
  241. package/lib/table/utils/exportTableAsExcel.js +7 -52
  242. package/lib/table/utils/getTreeDepth.js +4 -17
  243. package/lib/table/utils/groupBy.js +4 -17
  244. package/lib/table/utils/index.js +0 -21
  245. package/lib/table/utils/isGroupColumn.js +0 -3
  246. package/lib/table/utils/isLeafNode.js +0 -1
  247. package/lib/table/utils/keyCode.js +1 -2
  248. package/lib/table/utils/layeredFilter.js +0 -10
  249. package/lib/table/utils/layeredSort.js +0 -10
  250. package/lib/table/utils/makeRecursiveMapper.js +4 -24
  251. package/lib/table/utils/mergeCellProps.js +6 -18
  252. package/lib/table/utils/others.js +7 -36
  253. package/lib/table/utils/proto.js +3 -35
  254. package/lib/table/utils/selectColumn.js +2 -5
  255. package/lib/table/utils/smartCompare.js +4 -13
  256. package/lib/table/utils/traverseColumn.js +5 -25
  257. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +7 -38
  258. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
  259. package/package.json +219 -218
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
3
2
  import _extends from "@babel/runtime-corejs3/helpers/extends";
4
3
  import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
5
4
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
@@ -21,34 +20,26 @@ export function rangeSelection(opts) {
21
20
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
22
21
  var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
23
22
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
24
-
25
23
  if (!tableBody) {
26
24
  return pipeline;
27
25
  }
28
-
29
26
  var columns = pipeline.getColumns();
30
27
  var dataSource = pipeline.getDataSource();
31
-
32
28
  var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
33
29
  var _a;
34
-
35
30
  if (isFinished) {
36
31
  pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
37
32
  }
38
-
39
33
  pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
40
34
  (_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection, isFinished);
41
35
  };
42
-
43
36
  var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
44
37
  if (!startDragCell || !draggingCell) return;
45
38
  var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
46
-
47
39
  var _getRangeSelectionRow = getRangeSelectionRowInfo(startDragCell, draggingCell, dataSource),
48
- startRow = _getRangeSelectionRow.startRow,
49
- endRow = _getRangeSelectionRow.endRow,
50
- footerRowRange = _getRangeSelectionRow.footerRowRange;
51
-
40
+ startRow = _getRangeSelectionRow.startRow,
41
+ endRow = _getRangeSelectionRow.endRow,
42
+ footerRowRange = _getRangeSelectionRow.footerRowRange;
52
43
  var cellRange = {
53
44
  startRow: startRow,
54
45
  endRow: endRow,
@@ -57,32 +48,25 @@ export function rangeSelection(opts) {
57
48
  footerRowRange: footerRowRange
58
49
  };
59
50
  var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _toConsumableArray(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
60
-
61
51
  if (isCellRangeSingleCell([cellRange])) {
62
52
  var singleCellRangeId = getCellRangeId(cellRange);
63
53
  cellRanges = _filterInstanceProperty(cellRanges).call(cellRanges, function (item) {
64
54
  return getCellRangeId(item) !== singleCellRangeId;
65
55
  });
66
56
  }
67
-
68
57
  cellRanges.push(cellRange);
69
-
70
58
  if (isCellRangeSingleCell(cellRanges)) {
71
59
  artTable.classList.remove(cx(Classes.rangeSelection));
72
60
  } else {
73
61
  artTable.classList.add(cx(Classes.rangeSelection));
74
62
  }
75
-
76
63
  rangeSelectedChange(cellRanges, isFinished);
77
64
  };
78
-
79
65
  var shiftKeySelect = function shiftKeySelect(event) {
80
66
  var target = event.target;
81
67
  var clickCell = getTargetCell(target, columns);
82
-
83
68
  if (clickCell) {
84
69
  var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
85
-
86
70
  if (_lastClickCell) {
87
71
  setRangeSelection(_lastClickCell, clickCell, true);
88
72
  } else {
@@ -91,71 +75,58 @@ export function rangeSelection(opts) {
91
75
  }
92
76
  }
93
77
  };
94
-
95
78
  var updateScrollPosition = function updateScrollPosition(client) {
96
79
  var clientX = client.clientX,
97
- clientY = client.clientY;
80
+ clientY = client.clientY;
98
81
  var tableBodyClientRect = tableBody.getBoundingClientRect();
99
82
  var left = tableBodyClientRect.left,
100
- top = tableBodyClientRect.top,
101
- height = tableBodyClientRect.height,
102
- width = tableBodyClientRect.width;
103
-
83
+ top = tableBodyClientRect.top,
84
+ height = tableBodyClientRect.height,
85
+ width = tableBodyClientRect.width;
104
86
  if (clientX + SCROLL_OFFSET >= left + width) {
105
87
  pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
106
88
  }
107
-
108
89
  if (clientX - SCROLL_OFFSET <= left) {
109
90
  pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
110
91
  }
111
-
112
92
  if (clientY + SCROLL_OFFSET >= top + height) {
113
93
  pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
114
94
  }
115
-
116
95
  if (clientY + SCROLL_OFFSET <= top) {
117
96
  pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
118
97
  }
119
98
  };
120
-
121
99
  var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
122
100
  if (opts === null || opts === void 0 ? void 0 : opts.suppressMultiRangeSelection) {
123
101
  pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
124
102
  return;
125
- } // ctrl 和shift 同时按时,优先生效shift
103
+ }
104
+ // ctrl 和shift 同时按时,优先生效shift
126
105
  // 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
127
-
128
-
129
106
  if (!isCtrlKey && !isShiftKey) {
130
107
  pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
131
- } // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
132
-
133
-
108
+ }
109
+ // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
134
110
  if (isShiftKey) {
135
111
  var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _toConsumableArray(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
136
-
137
112
  _startDragCellRanges.pop();
138
-
139
113
  pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
140
114
  }
141
115
  };
142
-
143
116
  var onMouseDown = function onMouseDown(mouseDownEvent) {
144
- if (mouseDownEvent.button !== 0 || !(isElementInEventPath(tableBody, mouseDownEvent.nativeEvent) || isElementInEventPath(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
145
-
117
+ if (mouseDownEvent.button !== 0 || !(isElementInEventPath(tableBody, mouseDownEvent.nativeEvent) || isElementInEventPath(tableFooter, mouseDownEvent.nativeEvent))) return;
118
+ // mouseDownEvent.preventDefault()
146
119
  var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
147
120
  var isShiftKey = mouseDownEvent.shiftKey;
148
121
  var target = mouseDownEvent.target;
149
122
  var startDragCell = getTargetCell(target, columns);
150
- if (!startDragCell) return; // 每次点击时先确认初始生效的框选范围
151
-
123
+ if (!startDragCell) return;
124
+ // 每次点击时先确认初始生效的框选范围
152
125
  setStartSelectedCellRanges(isCtrlKey, isShiftKey);
153
-
154
126
  if (isShiftKey) {
155
127
  shiftKeySelect(mouseDownEvent);
156
128
  return;
157
129
  }
158
-
159
130
  pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
160
131
  var draggingCell = startDragCell;
161
132
  var mousemove$ = fromEvent(window, 'mousemove');
@@ -167,11 +138,9 @@ export function rangeSelection(opts) {
167
138
  clientX: mouseMoveEvent.clientX,
168
139
  clientY: mouseMoveEvent.clientY
169
140
  };
170
-
171
141
  if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
172
142
  updateScrollPosition(client);
173
143
  }
174
-
175
144
  return {
176
145
  startDragCell: startDragCell,
177
146
  draggingCell: draggingCell
@@ -180,7 +149,7 @@ export function rangeSelection(opts) {
180
149
  rangeSelected$.subscribe({
181
150
  next: function next(_ref) {
182
151
  var startDragCell = _ref.startDragCell,
183
- draggingCell = _ref.draggingCell;
152
+ draggingCell = _ref.draggingCell;
184
153
  setRangeSelection(startDragCell, draggingCell, false);
185
154
  },
186
155
  complete: function complete() {
@@ -188,14 +157,12 @@ export function rangeSelection(opts) {
188
157
  }
189
158
  });
190
159
  };
191
-
192
160
  var onKeyDown = function onKeyDown(e) {
193
161
  if (!(isElementInEventPath(tableBody, e.nativeEvent) || isElementInEventPath(tableFooter, e.nativeEvent))) return;
194
-
195
162
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
196
163
  var rowLen = pipeline.getDataSource().length;
197
- var footerDataSource = pipeline.getFooterDataSource() || []; // 焦点位于可编辑的单元格内不做全选
198
-
164
+ var footerDataSource = pipeline.getFooterDataSource() || [];
165
+ // 焦点位于可编辑的单元格内不做全选
199
166
  if (columns.length && rowLen && !getElementEditable(e.target)) {
200
167
  opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
201
168
  artTable.classList.add(cx(Classes.rangeSelection));
@@ -212,14 +179,11 @@ export function rangeSelection(opts) {
212
179
  }
213
180
  }
214
181
  };
215
-
216
182
  pipeline.addTableProps({
217
183
  onMouseDown: onMouseDown,
218
184
  onKeyDown: onKeyDown,
219
- tabIndex: -1,
220
- className: cx([Classes.rangeSelection])
185
+ tabIndex: -1
221
186
  }); // todo: 后面可以把mousedown放到一个流里面
222
-
223
187
  return pipeline.mapColumns(makeRecursiveMapper(function (col) {
224
188
  var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
225
189
  var prevGetCellProps = col.getCellProps;
@@ -244,11 +208,9 @@ export function rangeSelection(opts) {
244
208
  }));
245
209
  };
246
210
  }
247
-
248
211
  function getTargetCell(target, columns) {
249
- while (target) {
250
- if (target.getAttribute('data-role') === 'table-cell') {
251
- var _ret = function () {
212
+ var _loop = function _loop() {
213
+ if (target.getAttribute('data-role') === 'table-cell') {
252
214
  var columnCode = target.getAttribute('data-code');
253
215
  var column = findByTree(columns, function (item, index) {
254
216
  return item.code === columnCode;
@@ -265,61 +227,50 @@ function getTargetCell(target, columns) {
265
227
  isFooterCell: isEleInFooter(target)
266
228
  }
267
229
  };
268
- }();
269
-
270
- if (_typeof(_ret) === "object") return _ret.v;
271
- }
272
-
273
- target = target.parentElement;
230
+ }
231
+ target = target.parentElement;
232
+ },
233
+ _ret;
234
+ while (target) {
235
+ _ret = _loop();
236
+ if (_ret) return _ret.v;
274
237
  }
275
-
276
238
  return null;
277
239
  }
278
-
279
240
  function isSameCell(cell1, cell2) {
280
241
  return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
281
242
  }
282
-
283
243
  function isEleInFooter(target) {
284
244
  while (target && !target.classList.contains(Classes.artTable)) {
285
245
  if (target.classList.contains(Classes.tableFooter)) {
286
246
  return true;
287
247
  }
288
-
289
248
  target = target.parentElement;
290
249
  }
291
-
292
250
  return false;
293
251
  }
294
-
295
252
  function getRangeColumns(startCell, endCell, columns) {
296
253
  var flatColumns = collectNodes(columns, 'leaf-only');
297
-
298
254
  var startIndex = _findIndexInstanceProperty(flatColumns).call(flatColumns, function (col) {
299
255
  return col.code === startCell.code;
300
256
  });
301
-
302
257
  var endIndex = _findIndexInstanceProperty(flatColumns).call(flatColumns, function (col) {
303
258
  return col.code === endCell.code;
304
259
  });
305
-
306
260
  if (startIndex < endIndex) {
307
261
  return _sliceInstanceProperty(flatColumns).call(flatColumns, startIndex, endIndex + 1);
308
262
  } else {
309
263
  return _sliceInstanceProperty(flatColumns).call(flatColumns, endIndex, startIndex + 1);
310
264
  }
311
265
  }
312
-
313
266
  function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
314
267
  var footerRowRange = null;
315
268
  var startRow = -1;
316
269
  var endRow = -1;
317
-
318
270
  var _getCellRangeRow = getCellRangeRow(startCell, endCell),
319
- _startRow = _getCellRangeRow.startRow,
320
- _endRow = _getCellRangeRow.endRow; // 两个单元格都在表体
321
-
322
-
271
+ _startRow = _getCellRangeRow.startRow,
272
+ _endRow = _getCellRangeRow.endRow;
273
+ // 两个单元格都在表体
323
274
  if (!startCell.isFooterCell && !endCell.isFooterCell) {
324
275
  startRow = _startRow;
325
276
  endRow = _endRow;
@@ -347,7 +298,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
347
298
  };
348
299
  }
349
300
  }
350
-
351
301
  return {
352
302
  startRow: startRow,
353
303
  endRow: endRow,
@@ -360,8 +310,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
360
310
  * @param endCell 结束单元格
361
311
  * @returns
362
312
  */
363
-
364
-
365
313
  function getCellRangeRow(startCell, endCell) {
366
314
  if (isSameCell(startCell, endCell)) {
367
315
  return {
@@ -369,7 +317,6 @@ function getCellRangeRow(startCell, endCell) {
369
317
  endRow: startCell.rowIndex
370
318
  };
371
319
  }
372
-
373
320
  var isTopToBottom = startCell.rowIndex <= endCell.rowIndex;
374
321
  var startRow = isTopToBottom ? startCell.rowIndex : startCell.rowIndex + startCell.rowSpan - 1;
375
322
  var endRow = isTopToBottom ? endCell.rowIndex + endCell.rowSpan - 1 : endCell.rowIndex;
@@ -383,20 +330,17 @@ function getCellRangeRow(startCell, endCell) {
383
330
  * @param cellRanges
384
331
  * @returns
385
332
  */
386
-
387
-
388
333
  function isCellRangeSingleCell(cellRanges) {
389
334
  if (cellRanges.length !== 1) return false;
390
335
  var _cellRanges$ = cellRanges[0],
391
- startRow = _cellRanges$.startRow,
392
- endRow = _cellRanges$.endRow,
393
- columns = _cellRanges$.columns,
394
- footerRowRange = _cellRanges$.footerRowRange;
336
+ startRow = _cellRanges$.startRow,
337
+ endRow = _cellRanges$.endRow,
338
+ columns = _cellRanges$.columns,
339
+ footerRowRange = _cellRanges$.footerRowRange;
395
340
  var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
396
341
  var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
397
342
  return isBodySingleCell || isFooterSingleCell;
398
343
  }
399
-
400
344
  function getRowIndex(startRow, endRow) {
401
345
  var isReverse = startRow > endRow;
402
346
  var startRowIndex = isReverse ? endRow : startRow;
@@ -406,23 +350,18 @@ function getRowIndex(startRow, endRow) {
406
350
  endRowIndex: endRowIndex
407
351
  };
408
352
  }
409
-
410
353
  function getFooterRowIndex(footerRowRange) {
411
354
  if (footerRowRange) {
412
355
  return getRowIndex(footerRowRange.startRow, footerRowRange.endRow);
413
356
  }
414
-
415
357
  return {
416
358
  startRowIndex: -1,
417
359
  endRowIndex: -1
418
360
  };
419
361
  }
420
-
421
362
  function getElementEditable(target) {
422
363
  var _context;
423
-
424
364
  if (!target) return;
425
-
426
365
  if (_includesInstanceProperty(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
427
366
  if (target.type === 'checkbox') return;
428
367
  return !target.disabled && !target.readOnly;
@@ -436,26 +375,21 @@ function getElementEditable(target) {
436
375
  * @param isFooterCell
437
376
  * @returns
438
377
  */
439
-
440
-
441
378
  function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
442
379
  var startRow = cellRange.startRow,
443
- endRow = cellRange.endRow,
444
- columns = cellRange.columns,
445
- footerRowRange = cellRange.footerRowRange;
380
+ endRow = cellRange.endRow,
381
+ columns = cellRange.columns,
382
+ footerRowRange = cellRange.footerRowRange;
446
383
  var isColInRanges = _findIndexInstanceProperty(columns).call(columns, function (item) {
447
384
  return item.code === col.code;
448
385
  }) !== -1;
449
386
  if (!isColInRanges) return false;
450
-
451
387
  var _getRowIndex = getRowIndex(startRow, endRow),
452
- startRowIndex = _getRowIndex.startRowIndex,
453
- endRowIndex = _getRowIndex.endRowIndex;
454
-
388
+ startRowIndex = _getRowIndex.startRowIndex,
389
+ endRowIndex = _getRowIndex.endRowIndex;
455
390
  var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
456
- footerStartRowIndex = _getFooterRowIndex.startRowIndex,
457
- footerEndRowIndex = _getFooterRowIndex.endRowIndex;
458
-
391
+ footerStartRowIndex = _getFooterRowIndex.startRowIndex,
392
+ footerEndRowIndex = _getFooterRowIndex.endRowIndex;
459
393
  var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
460
394
  var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
461
395
  var isRowInRange = footerMatch || bodyMatch;
@@ -466,22 +400,17 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
466
400
  * @param {*} cellRange
467
401
  * @returns
468
402
  */
469
-
470
-
471
403
  export function getCellRangeId(cellRange) {
472
404
  var startRow = cellRange.startRow,
473
- endRow = cellRange.endRow,
474
- footerRowRange = cellRange.footerRowRange,
475
- columns = cellRange.columns;
476
-
405
+ endRow = cellRange.endRow,
406
+ footerRowRange = cellRange.footerRowRange,
407
+ columns = cellRange.columns;
477
408
  var _getRowIndex2 = getRowIndex(startRow, endRow),
478
- startRowIndex = _getRowIndex2.startRowIndex,
479
- endRowIndex = _getRowIndex2.endRowIndex;
480
-
409
+ startRowIndex = _getRowIndex2.startRowIndex,
410
+ endRowIndex = _getRowIndex2.endRowIndex;
481
411
  var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
482
- footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
483
- footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
484
-
412
+ footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
413
+ footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
485
414
  var firstColId = columns[0].code;
486
415
  var endColId = columns[columns.length - 1].code;
487
416
  return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
@@ -492,58 +421,49 @@ export function getCellRangeId(cellRange) {
492
421
  * @param param1
493
422
  * @returns
494
423
  */
495
-
496
424
  function getCellRangesClassName(cellRanges, _ref2) {
497
- var _cx;
498
-
499
425
  var isFooterCell = _ref2.isFooterCell,
500
- rowIndex = _ref2.rowIndex,
501
- col = _ref2.col,
502
- record = _ref2.record;
503
-
426
+ rowIndex = _ref2.rowIndex,
427
+ col = _ref2.col,
428
+ record = _ref2.record;
504
429
  var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
505
- isFooterCell: isFooterCell,
506
- rowIndex: rowIndex,
507
- col: col,
508
- record: record
509
- }),
510
- matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
511
- matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
512
- matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
513
- matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
514
-
430
+ isFooterCell: isFooterCell,
431
+ rowIndex: rowIndex,
432
+ col: col,
433
+ record: record
434
+ }),
435
+ matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
436
+ matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
437
+ matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
438
+ matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
515
439
  var isSingleCell = isCellRangeSingleCell(cellRanges);
516
- var className = cx((_cx = {}, _defineProperty(_cx, Classes.tableCellRangeSingleCell, isSingleCell), _defineProperty(_cx, Classes.tableCellRangeSelected, !isSingleCell), _defineProperty(_cx, Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), _defineProperty(_cx, Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), _defineProperty(_cx, Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), _defineProperty(_cx, Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight), _cx));
440
+ var className = cx(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Classes.tableCellRangeSingleCell, isSingleCell), Classes.tableCellRangeSelected, !isSingleCell), Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight));
517
441
  return className;
518
442
  }
519
-
520
443
  function getMatchBorderStyle(cellRanges, _ref3) {
521
444
  var isFooterCell = _ref3.isFooterCell,
522
- rowIndex = _ref3.rowIndex,
523
- col = _ref3.col,
524
- record = _ref3.record;
445
+ rowIndex = _ref3.rowIndex,
446
+ col = _ref3.col,
447
+ record = _ref3.record;
525
448
  return cellRanges.reduce(function (obj, cellRange) {
526
449
  if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
527
450
  var startRow = cellRange.startRow,
528
- endRow = cellRange.endRow,
529
- columns = cellRange.columns,
530
- footerRowRange = cellRange.footerRowRange;
531
-
451
+ endRow = cellRange.endRow,
452
+ columns = cellRange.columns,
453
+ footerRowRange = cellRange.footerRowRange;
532
454
  var _getRowIndex3 = getRowIndex(startRow, endRow),
533
- startRowIndex = _getRowIndex3.startRowIndex,
534
- endRowIndex = _getRowIndex3.endRowIndex;
535
-
455
+ startRowIndex = _getRowIndex3.startRowIndex,
456
+ endRowIndex = _getRowIndex3.endRowIndex;
536
457
  var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
537
- footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
538
- footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
539
-
458
+ footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
459
+ footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
540
460
  var startCol = columns[0];
541
461
  var endCol = columns[columns.length - 1];
542
462
  var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
543
463
  var matchCellRangeLeft = col.code === startCol.code;
544
464
  var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
545
- var matchCellRangeRight = col.code === endCol.code; // 如果样式已经匹配上了,就不需要再取计算的样式
546
-
465
+ var matchCellRangeRight = col.code === endCol.code;
466
+ // 如果样式已经匹配上了,就不需要再取计算的样式
547
467
  obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
548
468
  obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
549
469
  obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;