@kdcloudjs/table 1.2.0-canary.6 → 1.2.0-canary.6-hotfix.2

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