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

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