@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,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/map");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -11,75 +9,48 @@ exports.getCellRangeId = getCellRangeId;
11
9
  exports.lastClickCellKey = void 0;
12
10
  exports.rangeSelection = rangeSelection;
13
11
  exports.rangeSelectionKey = void 0;
14
-
15
12
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
16
-
17
13
  var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
18
-
19
14
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
20
-
21
15
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
22
-
23
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
24
-
25
- var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
26
-
27
17
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
28
-
29
18
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
30
-
31
19
  var _utils = require("../../utils");
32
-
33
20
  var _others = require("../../utils/others");
34
-
35
21
  var _rxjs = require("rxjs");
36
-
37
22
  var _operators = require("rxjs/operators");
38
-
39
23
  var _styles = require("../../base/styles");
40
-
41
24
  var _classnames = _interopRequireDefault(require("classnames"));
42
-
43
- var rangeSelectionKey = 'rangeSelection';
44
- exports.rangeSelectionKey = rangeSelectionKey;
45
- var lastClickCellKey = 'lastClickCell';
46
- exports.lastClickCellKey = lastClickCellKey;
25
+ var rangeSelectionKey = exports.rangeSelectionKey = 'rangeSelection';
26
+ var lastClickCellKey = exports.lastClickCellKey = 'lastClickCell';
47
27
  var startSelectedCellRangesKey = 'startSelectedCellRanges';
48
28
  var SCROLL_OFFSET = 30;
49
-
50
29
  function rangeSelection(opts) {
51
30
  return function step(pipeline) {
52
31
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
53
32
  var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
54
33
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
55
-
56
34
  if (!tableBody) {
57
35
  return pipeline;
58
36
  }
59
-
60
37
  var columns = pipeline.getColumns();
61
38
  var dataSource = pipeline.getDataSource();
62
-
63
39
  var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
64
40
  var _a;
65
-
66
41
  if (isFinished) {
67
42
  pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
68
43
  }
69
-
70
44
  pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
71
45
  (_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection, isFinished);
72
46
  };
73
-
74
47
  var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
75
48
  if (!startDragCell || !draggingCell) return;
76
49
  var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
77
-
78
50
  var _getRangeSelectionRow = getRangeSelectionRowInfo(startDragCell, draggingCell, dataSource),
79
- startRow = _getRangeSelectionRow.startRow,
80
- endRow = _getRangeSelectionRow.endRow,
81
- footerRowRange = _getRangeSelectionRow.footerRowRange;
82
-
51
+ startRow = _getRangeSelectionRow.startRow,
52
+ endRow = _getRangeSelectionRow.endRow,
53
+ footerRowRange = _getRangeSelectionRow.footerRowRange;
83
54
  var cellRange = {
84
55
  startRow: startRow,
85
56
  endRow: endRow,
@@ -88,32 +59,25 @@ function rangeSelection(opts) {
88
59
  footerRowRange: footerRowRange
89
60
  };
90
61
  var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? (0, _toConsumableArray2.default)(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
91
-
92
62
  if (isCellRangeSingleCell([cellRange])) {
93
63
  var singleCellRangeId = getCellRangeId(cellRange);
94
64
  cellRanges = (0, _filter.default)(cellRanges).call(cellRanges, function (item) {
95
65
  return getCellRangeId(item) !== singleCellRangeId;
96
66
  });
97
67
  }
98
-
99
68
  cellRanges.push(cellRange);
100
-
101
69
  if (isCellRangeSingleCell(cellRanges)) {
102
70
  artTable.classList.remove((0, _classnames.default)(_styles.Classes.rangeSelection));
103
71
  } else {
104
72
  artTable.classList.add((0, _classnames.default)(_styles.Classes.rangeSelection));
105
73
  }
106
-
107
74
  rangeSelectedChange(cellRanges, isFinished);
108
75
  };
109
-
110
76
  var shiftKeySelect = function shiftKeySelect(event) {
111
77
  var target = event.target;
112
78
  var clickCell = getTargetCell(target, columns);
113
-
114
79
  if (clickCell) {
115
80
  var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
116
-
117
81
  if (_lastClickCell) {
118
82
  setRangeSelection(_lastClickCell, clickCell, true);
119
83
  } else {
@@ -122,71 +86,58 @@ function rangeSelection(opts) {
122
86
  }
123
87
  }
124
88
  };
125
-
126
89
  var updateScrollPosition = function updateScrollPosition(client) {
127
90
  var clientX = client.clientX,
128
- clientY = client.clientY;
91
+ clientY = client.clientY;
129
92
  var tableBodyClientRect = tableBody.getBoundingClientRect();
130
93
  var left = tableBodyClientRect.left,
131
- top = tableBodyClientRect.top,
132
- height = tableBodyClientRect.height,
133
- width = tableBodyClientRect.width;
134
-
94
+ top = tableBodyClientRect.top,
95
+ height = tableBodyClientRect.height,
96
+ width = tableBodyClientRect.width;
135
97
  if (clientX + SCROLL_OFFSET >= left + width) {
136
98
  pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
137
99
  }
138
-
139
100
  if (clientX - SCROLL_OFFSET <= left) {
140
101
  pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
141
102
  }
142
-
143
103
  if (clientY + SCROLL_OFFSET >= top + height) {
144
104
  pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
145
105
  }
146
-
147
106
  if (clientY + SCROLL_OFFSET <= top) {
148
107
  pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
149
108
  }
150
109
  };
151
-
152
110
  var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
153
111
  if (opts === null || opts === void 0 ? void 0 : opts.suppressMultiRangeSelection) {
154
112
  pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
155
113
  return;
156
- } // ctrl 和shift 同时按时,优先生效shift
114
+ }
115
+ // ctrl 和shift 同时按时,优先生效shift
157
116
  // 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
158
-
159
-
160
117
  if (!isCtrlKey && !isShiftKey) {
161
118
  pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
162
- } // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
163
-
164
-
119
+ }
120
+ // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
165
121
  if (isShiftKey) {
166
122
  var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? (0, _toConsumableArray2.default)(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
167
-
168
123
  _startDragCellRanges.pop();
169
-
170
124
  pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
171
125
  }
172
126
  };
173
-
174
127
  var onMouseDown = function onMouseDown(mouseDownEvent) {
175
- if (mouseDownEvent.button !== 0 || !((0, _utils.isElementInEventPath)(tableBody, mouseDownEvent.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
176
-
128
+ if (mouseDownEvent.button !== 0 || !((0, _utils.isElementInEventPath)(tableBody, mouseDownEvent.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, mouseDownEvent.nativeEvent))) return;
129
+ // mouseDownEvent.preventDefault()
177
130
  var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
178
131
  var isShiftKey = mouseDownEvent.shiftKey;
179
132
  var target = mouseDownEvent.target;
180
133
  var startDragCell = getTargetCell(target, columns);
181
- if (!startDragCell) return; // 每次点击时先确认初始生效的框选范围
182
-
134
+ if (!startDragCell) return;
135
+ // 每次点击时先确认初始生效的框选范围
183
136
  setStartSelectedCellRanges(isCtrlKey, isShiftKey);
184
-
185
137
  if (isShiftKey) {
186
138
  shiftKeySelect(mouseDownEvent);
187
139
  return;
188
140
  }
189
-
190
141
  pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
191
142
  var draggingCell = startDragCell;
192
143
  var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
@@ -198,11 +149,9 @@ function rangeSelection(opts) {
198
149
  clientX: mouseMoveEvent.clientX,
199
150
  clientY: mouseMoveEvent.clientY
200
151
  };
201
-
202
152
  if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
203
153
  updateScrollPosition(client);
204
154
  }
205
-
206
155
  return {
207
156
  startDragCell: startDragCell,
208
157
  draggingCell: draggingCell
@@ -211,7 +160,7 @@ function rangeSelection(opts) {
211
160
  rangeSelected$.subscribe({
212
161
  next: function next(_ref) {
213
162
  var startDragCell = _ref.startDragCell,
214
- draggingCell = _ref.draggingCell;
163
+ draggingCell = _ref.draggingCell;
215
164
  setRangeSelection(startDragCell, draggingCell, false);
216
165
  },
217
166
  complete: function complete() {
@@ -219,14 +168,12 @@ function rangeSelection(opts) {
219
168
  }
220
169
  });
221
170
  };
222
-
223
171
  var onKeyDown = function onKeyDown(e) {
224
172
  if (!((0, _utils.isElementInEventPath)(tableBody, e.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, e.nativeEvent))) return;
225
-
226
173
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
227
174
  var rowLen = pipeline.getDataSource().length;
228
- var footerDataSource = pipeline.getFooterDataSource() || []; // 焦点位于可编辑的单元格内不做全选
229
-
175
+ var footerDataSource = pipeline.getFooterDataSource() || [];
176
+ // 焦点位于可编辑的单元格内不做全选
230
177
  if (columns.length && rowLen && !getElementEditable(e.target)) {
231
178
  opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
232
179
  artTable.classList.add((0, _classnames.default)(_styles.Classes.rangeSelection));
@@ -243,13 +190,11 @@ function rangeSelection(opts) {
243
190
  }
244
191
  }
245
192
  };
246
-
247
193
  pipeline.addTableProps({
248
194
  onMouseDown: onMouseDown,
249
195
  onKeyDown: onKeyDown,
250
196
  tabIndex: -1
251
197
  }); // todo: 后面可以把mousedown放到一个流里面
252
-
253
198
  return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
254
199
  var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
255
200
  var prevGetCellProps = col.getCellProps;
@@ -274,11 +219,9 @@ function rangeSelection(opts) {
274
219
  }));
275
220
  };
276
221
  }
277
-
278
222
  function getTargetCell(target, columns) {
279
- while (target) {
280
- if (target.getAttribute('data-role') === 'table-cell') {
281
- var _ret = function () {
223
+ var _loop = function _loop() {
224
+ if (target.getAttribute('data-role') === 'table-cell') {
282
225
  var columnCode = target.getAttribute('data-code');
283
226
  var column = (0, _others.findByTree)(columns, function (item, index) {
284
227
  return item.code === columnCode;
@@ -295,33 +238,28 @@ function getTargetCell(target, columns) {
295
238
  isFooterCell: isEleInFooter(target)
296
239
  }
297
240
  };
298
- }();
299
-
300
- if ((0, _typeof2.default)(_ret) === "object") return _ret.v;
301
- }
302
-
303
- target = target.parentElement;
241
+ }
242
+ target = target.parentElement;
243
+ },
244
+ _ret;
245
+ while (target) {
246
+ _ret = _loop();
247
+ if (_ret) return _ret.v;
304
248
  }
305
-
306
249
  return null;
307
250
  }
308
-
309
251
  function isSameCell(cell1, cell2) {
310
252
  return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
311
253
  }
312
-
313
254
  function isEleInFooter(target) {
314
255
  while (target && !target.classList.contains(_styles.Classes.artTable)) {
315
256
  if (target.classList.contains(_styles.Classes.tableFooter)) {
316
257
  return true;
317
258
  }
318
-
319
259
  target = target.parentElement;
320
260
  }
321
-
322
261
  return false;
323
262
  }
324
-
325
263
  function getRangeColumns(startCell, endCell, columns) {
326
264
  var flatColumns = (0, _utils.collectNodes)(columns, 'leaf-only');
327
265
  var startIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
@@ -330,24 +268,20 @@ function getRangeColumns(startCell, endCell, columns) {
330
268
  var endIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
331
269
  return col.code === endCell.code;
332
270
  });
333
-
334
271
  if (startIndex < endIndex) {
335
272
  return (0, _slice.default)(flatColumns).call(flatColumns, startIndex, endIndex + 1);
336
273
  } else {
337
274
  return (0, _slice.default)(flatColumns).call(flatColumns, endIndex, startIndex + 1);
338
275
  }
339
276
  }
340
-
341
277
  function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
342
278
  var footerRowRange = null;
343
279
  var startRow = -1;
344
280
  var endRow = -1;
345
-
346
281
  var _getCellRangeRow = getCellRangeRow(startCell, endCell),
347
- _startRow = _getCellRangeRow.startRow,
348
- _endRow = _getCellRangeRow.endRow; // 两个单元格都在表体
349
-
350
-
282
+ _startRow = _getCellRangeRow.startRow,
283
+ _endRow = _getCellRangeRow.endRow;
284
+ // 两个单元格都在表体
351
285
  if (!startCell.isFooterCell && !endCell.isFooterCell) {
352
286
  startRow = _startRow;
353
287
  endRow = _endRow;
@@ -375,7 +309,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
375
309
  };
376
310
  }
377
311
  }
378
-
379
312
  return {
380
313
  startRow: startRow,
381
314
  endRow: endRow,
@@ -388,8 +321,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
388
321
  * @param endCell 结束单元格
389
322
  * @returns
390
323
  */
391
-
392
-
393
324
  function getCellRangeRow(startCell, endCell) {
394
325
  if (isSameCell(startCell, endCell)) {
395
326
  return {
@@ -397,7 +328,6 @@ function getCellRangeRow(startCell, endCell) {
397
328
  endRow: startCell.rowIndex
398
329
  };
399
330
  }
400
-
401
331
  var isTopToBottom = startCell.rowIndex <= endCell.rowIndex;
402
332
  var startRow = isTopToBottom ? startCell.rowIndex : startCell.rowIndex + startCell.rowSpan - 1;
403
333
  var endRow = isTopToBottom ? endCell.rowIndex + endCell.rowSpan - 1 : endCell.rowIndex;
@@ -411,20 +341,17 @@ function getCellRangeRow(startCell, endCell) {
411
341
  * @param cellRanges
412
342
  * @returns
413
343
  */
414
-
415
-
416
344
  function isCellRangeSingleCell(cellRanges) {
417
345
  if (cellRanges.length !== 1) return false;
418
346
  var _cellRanges$ = cellRanges[0],
419
- startRow = _cellRanges$.startRow,
420
- endRow = _cellRanges$.endRow,
421
- columns = _cellRanges$.columns,
422
- footerRowRange = _cellRanges$.footerRowRange;
347
+ startRow = _cellRanges$.startRow,
348
+ endRow = _cellRanges$.endRow,
349
+ columns = _cellRanges$.columns,
350
+ footerRowRange = _cellRanges$.footerRowRange;
423
351
  var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
424
352
  var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
425
353
  return isBodySingleCell || isFooterSingleCell;
426
354
  }
427
-
428
355
  function getRowIndex(startRow, endRow) {
429
356
  var isReverse = startRow > endRow;
430
357
  var startRowIndex = isReverse ? endRow : startRow;
@@ -434,23 +361,18 @@ function getRowIndex(startRow, endRow) {
434
361
  endRowIndex: endRowIndex
435
362
  };
436
363
  }
437
-
438
364
  function getFooterRowIndex(footerRowRange) {
439
365
  if (footerRowRange) {
440
366
  return getRowIndex(footerRowRange.startRow, footerRowRange.endRow);
441
367
  }
442
-
443
368
  return {
444
369
  startRowIndex: -1,
445
370
  endRowIndex: -1
446
371
  };
447
372
  }
448
-
449
373
  function getElementEditable(target) {
450
374
  var _context;
451
-
452
375
  if (!target) return;
453
-
454
376
  if ((0, _includes.default)(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
455
377
  if (target.type === 'checkbox') return;
456
378
  return !target.disabled && !target.readOnly;
@@ -464,26 +386,21 @@ function getElementEditable(target) {
464
386
  * @param isFooterCell
465
387
  * @returns
466
388
  */
467
-
468
-
469
389
  function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
470
390
  var startRow = cellRange.startRow,
471
- endRow = cellRange.endRow,
472
- columns = cellRange.columns,
473
- footerRowRange = cellRange.footerRowRange;
391
+ endRow = cellRange.endRow,
392
+ columns = cellRange.columns,
393
+ footerRowRange = cellRange.footerRowRange;
474
394
  var isColInRanges = (0, _findIndex.default)(columns).call(columns, function (item) {
475
395
  return item.code === col.code;
476
396
  }) !== -1;
477
397
  if (!isColInRanges) return false;
478
-
479
398
  var _getRowIndex = getRowIndex(startRow, endRow),
480
- startRowIndex = _getRowIndex.startRowIndex,
481
- endRowIndex = _getRowIndex.endRowIndex;
482
-
399
+ startRowIndex = _getRowIndex.startRowIndex,
400
+ endRowIndex = _getRowIndex.endRowIndex;
483
401
  var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
484
- footerStartRowIndex = _getFooterRowIndex.startRowIndex,
485
- footerEndRowIndex = _getFooterRowIndex.endRowIndex;
486
-
402
+ footerStartRowIndex = _getFooterRowIndex.startRowIndex,
403
+ footerEndRowIndex = _getFooterRowIndex.endRowIndex;
487
404
  var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
488
405
  var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
489
406
  var isRowInRange = footerMatch || bodyMatch;
@@ -494,22 +411,17 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
494
411
  * @param {*} cellRange
495
412
  * @returns
496
413
  */
497
-
498
-
499
414
  function getCellRangeId(cellRange) {
500
415
  var startRow = cellRange.startRow,
501
- endRow = cellRange.endRow,
502
- footerRowRange = cellRange.footerRowRange,
503
- columns = cellRange.columns;
504
-
416
+ endRow = cellRange.endRow,
417
+ footerRowRange = cellRange.footerRowRange,
418
+ columns = cellRange.columns;
505
419
  var _getRowIndex2 = getRowIndex(startRow, endRow),
506
- startRowIndex = _getRowIndex2.startRowIndex,
507
- endRowIndex = _getRowIndex2.endRowIndex;
508
-
420
+ startRowIndex = _getRowIndex2.startRowIndex,
421
+ endRowIndex = _getRowIndex2.endRowIndex;
509
422
  var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
510
- footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
511
- footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
512
-
423
+ footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
424
+ footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
513
425
  var firstColId = columns[0].code;
514
426
  var endColId = columns[columns.length - 1].code;
515
427
  return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
@@ -520,59 +432,49 @@ function getCellRangeId(cellRange) {
520
432
  * @param param1
521
433
  * @returns
522
434
  */
523
-
524
-
525
435
  function getCellRangesClassName(cellRanges, _ref2) {
526
- var _cx;
527
-
528
436
  var isFooterCell = _ref2.isFooterCell,
529
- rowIndex = _ref2.rowIndex,
530
- col = _ref2.col,
531
- record = _ref2.record;
532
-
437
+ rowIndex = _ref2.rowIndex,
438
+ col = _ref2.col,
439
+ record = _ref2.record;
533
440
  var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
534
- isFooterCell: isFooterCell,
535
- rowIndex: rowIndex,
536
- col: col,
537
- record: record
538
- }),
539
- matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
540
- matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
541
- matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
542
- matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
543
-
441
+ isFooterCell: isFooterCell,
442
+ rowIndex: rowIndex,
443
+ col: col,
444
+ record: record
445
+ }),
446
+ matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
447
+ matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
448
+ matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
449
+ matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
544
450
  var isSingleCell = isCellRangeSingleCell(cellRanges);
545
- var className = (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeSingleCell, isSingleCell), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeSelected, !isSingleCell), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight), _cx));
451
+ var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.tableCellRangeSingleCell, isSingleCell), _styles.Classes.tableCellRangeSelected, !isSingleCell), _styles.Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), _styles.Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), _styles.Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), _styles.Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight));
546
452
  return className;
547
453
  }
548
-
549
454
  function getMatchBorderStyle(cellRanges, _ref3) {
550
455
  var isFooterCell = _ref3.isFooterCell,
551
- rowIndex = _ref3.rowIndex,
552
- col = _ref3.col,
553
- record = _ref3.record;
456
+ rowIndex = _ref3.rowIndex,
457
+ col = _ref3.col,
458
+ record = _ref3.record;
554
459
  return cellRanges.reduce(function (obj, cellRange) {
555
460
  if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
556
461
  var startRow = cellRange.startRow,
557
- endRow = cellRange.endRow,
558
- columns = cellRange.columns,
559
- footerRowRange = cellRange.footerRowRange;
560
-
462
+ endRow = cellRange.endRow,
463
+ columns = cellRange.columns,
464
+ footerRowRange = cellRange.footerRowRange;
561
465
  var _getRowIndex3 = getRowIndex(startRow, endRow),
562
- startRowIndex = _getRowIndex3.startRowIndex,
563
- endRowIndex = _getRowIndex3.endRowIndex;
564
-
466
+ startRowIndex = _getRowIndex3.startRowIndex,
467
+ endRowIndex = _getRowIndex3.endRowIndex;
565
468
  var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
566
- footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
567
- footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
568
-
469
+ footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
470
+ footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
569
471
  var startCol = columns[0];
570
472
  var endCol = columns[columns.length - 1];
571
473
  var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
572
474
  var matchCellRangeLeft = col.code === startCol.code;
573
475
  var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
574
- var matchCellRangeRight = col.code === endCol.code; // 如果样式已经匹配上了,就不需要再取计算的样式
575
-
476
+ var matchCellRangeRight = col.code === endCol.code;
477
+ // 如果样式已经匹配上了,就不需要再取计算的样式
576
478
  obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
577
479
  obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
578
480
  obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;