@kdcloudjs/table 1.2.1-canary.6 → 1.2.2-canary.3

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