@kdcloudjs/table 1.2.0-canary.16 → 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 +2047 -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 +0 -9
  35. package/es/table/base/table.js +95 -181
  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 +63 -142
  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 +0 -21
  143. package/lib/table/base/table.js +95 -214
  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 +63 -159
  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,71 +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
135
  var target = mouseDownEvent.target;
180
136
  var startDragCell = getTargetCell(target, columns);
181
- if (!startDragCell) return; // 每次点击时先确认初始生效的框选范围
182
-
137
+ if (!startDragCell) return;
138
+ // 每次点击时先确认初始生效的框选范围
183
139
  setStartSelectedCellRanges(isCtrlKey, isShiftKey);
184
-
185
140
  if (isShiftKey) {
186
141
  shiftKeySelect(mouseDownEvent);
187
142
  return;
188
143
  }
189
-
190
144
  pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
191
145
  var draggingCell = startDragCell;
192
146
  var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
@@ -198,11 +152,9 @@ function rangeSelection(opts) {
198
152
  clientX: mouseMoveEvent.clientX,
199
153
  clientY: mouseMoveEvent.clientY
200
154
  };
201
-
202
155
  if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
203
156
  updateScrollPosition(client);
204
157
  }
205
-
206
158
  return {
207
159
  startDragCell: startDragCell,
208
160
  draggingCell: draggingCell
@@ -211,7 +163,7 @@ function rangeSelection(opts) {
211
163
  rangeSelected$.subscribe({
212
164
  next: function next(_ref) {
213
165
  var startDragCell = _ref.startDragCell,
214
- draggingCell = _ref.draggingCell;
166
+ draggingCell = _ref.draggingCell;
215
167
  setRangeSelection(startDragCell, draggingCell, false);
216
168
  },
217
169
  complete: function complete() {
@@ -219,14 +171,12 @@ function rangeSelection(opts) {
219
171
  }
220
172
  });
221
173
  };
222
-
223
174
  var onKeyDown = function onKeyDown(e) {
224
175
  if (!((0, _utils.isElementInEventPath)(tableBody, e.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, e.nativeEvent))) return;
225
-
226
176
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
227
177
  var rowLen = pipeline.getDataSource().length;
228
- var footerDataSource = pipeline.getFooterDataSource() || []; // 焦点位于可编辑的单元格内不做全选
229
-
178
+ var footerDataSource = pipeline.getFooterDataSource() || [];
179
+ // 焦点位于可编辑的单元格内不做全选
230
180
  if (columns.length && rowLen && !getElementEditable(e.target)) {
231
181
  opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
232
182
  artTable.classList.add((0, _classnames.default)(_styles.Classes.rangeSelection));
@@ -243,14 +193,12 @@ function rangeSelection(opts) {
243
193
  }
244
194
  }
245
195
  };
246
-
247
196
  pipeline.addTableProps({
248
197
  onMouseDown: onMouseDown,
249
198
  onKeyDown: onKeyDown,
250
199
  tabIndex: -1,
251
200
  className: (0, _classnames.default)([_styles.Classes.rangeSelection])
252
201
  }); // todo: 后面可以把mousedown放到一个流里面
253
-
254
202
  return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
255
203
  var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
256
204
  var prevGetCellProps = col.getCellProps;
@@ -275,7 +223,6 @@ function rangeSelection(opts) {
275
223
  }));
276
224
  };
277
225
  }
278
-
279
226
  function getTargetCell(target, columns) {
280
227
  while (target) {
281
228
  if (target.getAttribute('data-role') === 'table-cell') {
@@ -297,32 +244,24 @@ function getTargetCell(target, columns) {
297
244
  }
298
245
  };
299
246
  }();
300
-
301
247
  if ((0, _typeof2.default)(_ret) === "object") return _ret.v;
302
248
  }
303
-
304
249
  target = target.parentElement;
305
250
  }
306
-
307
251
  return null;
308
252
  }
309
-
310
253
  function isSameCell(cell1, cell2) {
311
254
  return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
312
255
  }
313
-
314
256
  function isEleInFooter(target) {
315
257
  while (target && !target.classList.contains(_styles.Classes.artTable)) {
316
258
  if (target.classList.contains(_styles.Classes.tableFooter)) {
317
259
  return true;
318
260
  }
319
-
320
261
  target = target.parentElement;
321
262
  }
322
-
323
263
  return false;
324
264
  }
325
-
326
265
  function getRangeColumns(startCell, endCell, columns) {
327
266
  var flatColumns = (0, _utils.collectNodes)(columns, 'leaf-only');
328
267
  var startIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
@@ -331,24 +270,20 @@ function getRangeColumns(startCell, endCell, columns) {
331
270
  var endIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
332
271
  return col.code === endCell.code;
333
272
  });
334
-
335
273
  if (startIndex < endIndex) {
336
274
  return (0, _slice.default)(flatColumns).call(flatColumns, startIndex, endIndex + 1);
337
275
  } else {
338
276
  return (0, _slice.default)(flatColumns).call(flatColumns, endIndex, startIndex + 1);
339
277
  }
340
278
  }
341
-
342
279
  function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
343
280
  var footerRowRange = null;
344
281
  var startRow = -1;
345
282
  var endRow = -1;
346
-
347
283
  var _getCellRangeRow = getCellRangeRow(startCell, endCell),
348
- _startRow = _getCellRangeRow.startRow,
349
- _endRow = _getCellRangeRow.endRow; // 两个单元格都在表体
350
-
351
-
284
+ _startRow = _getCellRangeRow.startRow,
285
+ _endRow = _getCellRangeRow.endRow;
286
+ // 两个单元格都在表体
352
287
  if (!startCell.isFooterCell && !endCell.isFooterCell) {
353
288
  startRow = _startRow;
354
289
  endRow = _endRow;
@@ -376,7 +311,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
376
311
  };
377
312
  }
378
313
  }
379
-
380
314
  return {
381
315
  startRow: startRow,
382
316
  endRow: endRow,
@@ -389,8 +323,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
389
323
  * @param endCell 结束单元格
390
324
  * @returns
391
325
  */
392
-
393
-
394
326
  function getCellRangeRow(startCell, endCell) {
395
327
  if (isSameCell(startCell, endCell)) {
396
328
  return {
@@ -398,7 +330,6 @@ function getCellRangeRow(startCell, endCell) {
398
330
  endRow: startCell.rowIndex
399
331
  };
400
332
  }
401
-
402
333
  var isTopToBottom = startCell.rowIndex <= endCell.rowIndex;
403
334
  var startRow = isTopToBottom ? startCell.rowIndex : startCell.rowIndex + startCell.rowSpan - 1;
404
335
  var endRow = isTopToBottom ? endCell.rowIndex + endCell.rowSpan - 1 : endCell.rowIndex;
@@ -412,20 +343,17 @@ function getCellRangeRow(startCell, endCell) {
412
343
  * @param cellRanges
413
344
  * @returns
414
345
  */
415
-
416
-
417
346
  function isCellRangeSingleCell(cellRanges) {
418
347
  if (cellRanges.length !== 1) return false;
419
348
  var _cellRanges$ = cellRanges[0],
420
- startRow = _cellRanges$.startRow,
421
- endRow = _cellRanges$.endRow,
422
- columns = _cellRanges$.columns,
423
- footerRowRange = _cellRanges$.footerRowRange;
349
+ startRow = _cellRanges$.startRow,
350
+ endRow = _cellRanges$.endRow,
351
+ columns = _cellRanges$.columns,
352
+ footerRowRange = _cellRanges$.footerRowRange;
424
353
  var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
425
354
  var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
426
355
  return isBodySingleCell || isFooterSingleCell;
427
356
  }
428
-
429
357
  function getRowIndex(startRow, endRow) {
430
358
  var isReverse = startRow > endRow;
431
359
  var startRowIndex = isReverse ? endRow : startRow;
@@ -435,23 +363,18 @@ function getRowIndex(startRow, endRow) {
435
363
  endRowIndex: endRowIndex
436
364
  };
437
365
  }
438
-
439
366
  function getFooterRowIndex(footerRowRange) {
440
367
  if (footerRowRange) {
441
368
  return getRowIndex(footerRowRange.startRow, footerRowRange.endRow);
442
369
  }
443
-
444
370
  return {
445
371
  startRowIndex: -1,
446
372
  endRowIndex: -1
447
373
  };
448
374
  }
449
-
450
375
  function getElementEditable(target) {
451
376
  var _context;
452
-
453
377
  if (!target) return;
454
-
455
378
  if ((0, _includes.default)(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
456
379
  if (target.type === 'checkbox') return;
457
380
  return !target.disabled && !target.readOnly;
@@ -465,26 +388,21 @@ function getElementEditable(target) {
465
388
  * @param isFooterCell
466
389
  * @returns
467
390
  */
468
-
469
-
470
391
  function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
471
392
  var startRow = cellRange.startRow,
472
- endRow = cellRange.endRow,
473
- columns = cellRange.columns,
474
- footerRowRange = cellRange.footerRowRange;
393
+ endRow = cellRange.endRow,
394
+ columns = cellRange.columns,
395
+ footerRowRange = cellRange.footerRowRange;
475
396
  var isColInRanges = (0, _findIndex.default)(columns).call(columns, function (item) {
476
397
  return item.code === col.code;
477
398
  }) !== -1;
478
399
  if (!isColInRanges) return false;
479
-
480
400
  var _getRowIndex = getRowIndex(startRow, endRow),
481
- startRowIndex = _getRowIndex.startRowIndex,
482
- endRowIndex = _getRowIndex.endRowIndex;
483
-
401
+ startRowIndex = _getRowIndex.startRowIndex,
402
+ endRowIndex = _getRowIndex.endRowIndex;
484
403
  var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
485
- footerStartRowIndex = _getFooterRowIndex.startRowIndex,
486
- footerEndRowIndex = _getFooterRowIndex.endRowIndex;
487
-
404
+ footerStartRowIndex = _getFooterRowIndex.startRowIndex,
405
+ footerEndRowIndex = _getFooterRowIndex.endRowIndex;
488
406
  var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
489
407
  var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
490
408
  var isRowInRange = footerMatch || bodyMatch;
@@ -495,22 +413,17 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
495
413
  * @param {*} cellRange
496
414
  * @returns
497
415
  */
498
-
499
-
500
416
  function getCellRangeId(cellRange) {
501
417
  var startRow = cellRange.startRow,
502
- endRow = cellRange.endRow,
503
- footerRowRange = cellRange.footerRowRange,
504
- columns = cellRange.columns;
505
-
418
+ endRow = cellRange.endRow,
419
+ footerRowRange = cellRange.footerRowRange,
420
+ columns = cellRange.columns;
506
421
  var _getRowIndex2 = getRowIndex(startRow, endRow),
507
- startRowIndex = _getRowIndex2.startRowIndex,
508
- endRowIndex = _getRowIndex2.endRowIndex;
509
-
422
+ startRowIndex = _getRowIndex2.startRowIndex,
423
+ endRowIndex = _getRowIndex2.endRowIndex;
510
424
  var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
511
- footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
512
- footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
513
-
425
+ footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
426
+ footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
514
427
  var firstColId = columns[0].code;
515
428
  var endColId = columns[columns.length - 1].code;
516
429
  return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
@@ -521,59 +434,50 @@ function getCellRangeId(cellRange) {
521
434
  * @param param1
522
435
  * @returns
523
436
  */
524
-
525
-
526
437
  function getCellRangesClassName(cellRanges, _ref2) {
527
438
  var _cx;
528
-
529
439
  var isFooterCell = _ref2.isFooterCell,
530
- rowIndex = _ref2.rowIndex,
531
- col = _ref2.col,
532
- record = _ref2.record;
533
-
440
+ rowIndex = _ref2.rowIndex,
441
+ col = _ref2.col,
442
+ record = _ref2.record;
534
443
  var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
535
- isFooterCell: isFooterCell,
536
- rowIndex: rowIndex,
537
- col: col,
538
- record: record
539
- }),
540
- matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
541
- matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
542
- matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
543
- matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
544
-
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;
545
453
  var isSingleCell = isCellRangeSingleCell(cellRanges);
546
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));
547
455
  return className;
548
456
  }
549
-
550
457
  function getMatchBorderStyle(cellRanges, _ref3) {
551
458
  var isFooterCell = _ref3.isFooterCell,
552
- rowIndex = _ref3.rowIndex,
553
- col = _ref3.col,
554
- record = _ref3.record;
459
+ rowIndex = _ref3.rowIndex,
460
+ col = _ref3.col,
461
+ record = _ref3.record;
555
462
  return cellRanges.reduce(function (obj, cellRange) {
556
463
  if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
557
464
  var startRow = cellRange.startRow,
558
- endRow = cellRange.endRow,
559
- columns = cellRange.columns,
560
- footerRowRange = cellRange.footerRowRange;
561
-
465
+ endRow = cellRange.endRow,
466
+ columns = cellRange.columns,
467
+ footerRowRange = cellRange.footerRowRange;
562
468
  var _getRowIndex3 = getRowIndex(startRow, endRow),
563
- startRowIndex = _getRowIndex3.startRowIndex,
564
- endRowIndex = _getRowIndex3.endRowIndex;
565
-
469
+ startRowIndex = _getRowIndex3.startRowIndex,
470
+ endRowIndex = _getRowIndex3.endRowIndex;
566
471
  var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
567
- footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
568
- footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
569
-
472
+ footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
473
+ footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
570
474
  var startCol = columns[0];
571
475
  var endCol = columns[columns.length - 1];
572
476
  var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
573
477
  var matchCellRangeLeft = col.code === startCol.code;
574
478
  var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
575
- var matchCellRangeRight = col.code === endCol.code; // 如果样式已经匹配上了,就不需要再取计算的样式
576
-
479
+ var matchCellRangeRight = col.code === endCol.code;
480
+ // 如果样式已经匹配上了,就不需要再取计算的样式
577
481
  obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
578
482
  obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
579
483
  obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;