@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.17-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 (259) 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 +4596 -5714
  5. package/dist/@kdcloudjs/table.js.map +1 -1
  6. package/dist/@kdcloudjs/table.min.css +1 -1
  7. package/dist/@kdcloudjs/table.min.js +18 -16
  8. package/dist/@kdcloudjs/table.min.js.map +1 -1
  9. package/dist/kd-ui-complete.less +777 -777
  10. package/es/_utils/arrayUtil.js +0 -3
  11. package/es/_utils/devwarning.js +0 -1
  12. package/es/_utils/formatUtil.js +36 -101
  13. package/es/_utils/hooks.js +21 -45
  14. package/es/_utils/index.js +0 -2
  15. package/es/_utils/numberUtil.js +32 -55
  16. package/es/_utils/omit.js +0 -2
  17. package/es/_utils/type.js +0 -2
  18. package/es/_utils/usePopper.js +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 +9 -48
  24. package/es/style/color/colors.less +1 -1
  25. package/es/style/core/index.less +1 -1
  26. package/es/style/core/motion/other.less +27 -27
  27. package/es/style/core/motion/slide.less +53 -53
  28. package/es/style/core/motion.less +1 -1
  29. package/es/style/core/reset.less +185 -185
  30. package/es/style/index.less +1 -1
  31. package/es/style/mixins/index.less +18 -18
  32. package/es/style/mixins/overlay.less +21 -21
  33. package/es/style/mixins/reset.less +12 -12
  34. package/es/style/themes/default.less +445 -445
  35. package/es/table/base/calculations.js +25 -75
  36. package/es/table/base/colgroup.js +0 -1
  37. package/es/table/base/empty.js +6 -6
  38. package/es/table/base/header.js +19 -74
  39. package/es/table/base/helpers/SpanManager.js +4 -11
  40. package/es/table/base/helpers/TableDOMUtils.js +7 -30
  41. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  42. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  43. package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
  44. package/es/table/base/helpers/rowHeightManager.js +0 -28
  45. package/es/table/base/html-table.js +17 -39
  46. package/es/table/base/loading.js +8 -10
  47. package/es/table/base/renderTemplates.js +41 -59
  48. package/es/table/base/styles.js +0 -9
  49. package/es/table/base/table.js +110 -199
  50. package/es/table/base/utils.js +17 -57
  51. package/es/table/common-views.js +0 -7
  52. package/es/table/internals.js +0 -13
  53. package/es/table/pipeline/features/autoFill.js +11 -40
  54. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  55. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  56. package/es/table/pipeline/features/columnDrag.js +41 -97
  57. package/es/table/pipeline/features/columnFilter.js +12 -51
  58. package/es/table/pipeline/features/columnHover.js +1 -7
  59. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  60. package/es/table/pipeline/features/columnResizeWidth.js +13 -39
  61. package/es/table/pipeline/features/contextMenu.js +18 -91
  62. package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
  63. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  64. package/es/table/pipeline/features/filter/Filter.js +26 -50
  65. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  66. package/es/table/pipeline/features/filter/util.js +0 -4
  67. package/es/table/pipeline/features/footerDataSource.js +0 -3
  68. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  69. package/es/table/pipeline/features/multiSelect.js +15 -57
  70. package/es/table/pipeline/features/rangeSelection.js +74 -154
  71. package/es/table/pipeline/features/rowDetail.js +4 -43
  72. package/es/table/pipeline/features/rowDrag.js +64 -80
  73. package/es/table/pipeline/features/rowGrouping.js +4 -37
  74. package/es/table/pipeline/features/singleSelect.js +0 -24
  75. package/es/table/pipeline/features/sort.js +37 -90
  76. package/es/table/pipeline/features/tips.js +4 -10
  77. package/es/table/pipeline/features/treeMode.js +14 -49
  78. package/es/table/pipeline/features/treeSelect.js +2 -28
  79. package/es/table/pipeline/pipeline.js +12 -53
  80. package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
  81. package/es/table/pivot/cross-table/cross-table.js +23 -31
  82. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
  83. package/es/table/pivot/cross-tree-table/cross-tree-table.js +35 -61
  84. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  85. package/es/table/pivot/pivot-utils/builders.js +34 -74
  86. package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
  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 +13 -35
  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 +18 -42
  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 +42 -96
  98. package/es/table/transforms/tips.js +5 -10
  99. package/es/table/transforms/treeMode.js +36 -77
  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 +7 -22
  104. package/es/table/utils/collectNodes.js +4 -13
  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 +7 -43
  109. package/es/table/utils/getTreeDepth.js +4 -12
  110. package/es/table/utils/groupBy.js +4 -13
  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 +4 -15
  114. package/es/table/utils/mergeCellProps.js +6 -14
  115. package/es/table/utils/others.js +6 -19
  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 +5 -18
  119. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -27
  120. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
  121. package/lib/_utils/arrayUtil.js +2 -8
  122. package/lib/_utils/devwarning.js +0 -5
  123. package/lib/_utils/formatUtil.js +36 -105
  124. package/lib/_utils/hooks.js +21 -56
  125. package/lib/_utils/index.js +2 -9
  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 +3 -11
  130. package/lib/_utils/usePopper.js +79 -166
  131. package/lib/config-provider/ConfigContext.js +2 -6
  132. package/lib/config-provider/compDefaultProps.js +1 -3
  133. package/lib/config-provider/configProvider.js +6 -22
  134. package/lib/config-provider/defaultConfig.js +1 -7
  135. package/lib/config-provider/index.js +1 -8
  136. package/lib/index.js +2 -8
  137. package/lib/locale/index.js +3 -11
  138. package/lib/locale/locale.js +13 -69
  139. package/lib/locale/zh-CN.js +1 -2
  140. package/lib/style/color/colors.less +1 -1
  141. package/lib/style/components.less +1 -1
  142. package/lib/style/core/index.less +1 -1
  143. package/lib/style/core/motion/other.less +27 -27
  144. package/lib/style/core/motion/slide.less +53 -53
  145. package/lib/style/core/motion.less +1 -1
  146. package/lib/style/core/reset.less +185 -185
  147. package/lib/style/index.less +1 -1
  148. package/lib/style/mixins/index.less +18 -18
  149. package/lib/style/mixins/overlay.less +21 -21
  150. package/lib/style/mixins/reset.less +12 -12
  151. package/lib/style/themes/default.less +445 -445
  152. package/lib/table/base/calculations.js +25 -86
  153. package/lib/table/base/colgroup.js +0 -5
  154. package/lib/table/base/empty.js +8 -20
  155. package/lib/table/base/header.js +19 -84
  156. package/lib/table/base/helpers/SpanManager.js +6 -16
  157. package/lib/table/base/helpers/TableDOMUtils.js +7 -33
  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 +13 -64
  162. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  163. package/lib/table/base/html-table.js +17 -49
  164. package/lib/table/base/index.js +0 -2
  165. package/lib/table/base/loading.js +8 -14
  166. package/lib/table/base/renderTemplates.js +44 -75
  167. package/lib/table/base/styles.js +9 -37
  168. package/lib/table/base/table.js +122 -243
  169. package/lib/table/base/utils.js +27 -109
  170. package/lib/table/common-views.js +4 -24
  171. package/lib/table/index.js +0 -13
  172. package/lib/table/internals.js +2 -17
  173. package/lib/table/pipeline/features/autoFill.js +14 -53
  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 +6 -35
  177. package/lib/table/pipeline/features/columnDrag.js +41 -103
  178. package/lib/table/pipeline/features/columnFilter.js +12 -65
  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 +18 -63
  182. package/lib/table/pipeline/features/contextMenu.js +20 -117
  183. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
  184. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  185. package/lib/table/pipeline/features/filter/Filter.js +29 -76
  186. package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
  187. package/lib/table/pipeline/features/filter/index.js +0 -5
  188. package/lib/table/pipeline/features/filter/util.js +2 -10
  189. package/lib/table/pipeline/features/footerDataSource.js +1 -12
  190. package/lib/table/pipeline/features/index.js +0 -23
  191. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  192. package/lib/table/pipeline/features/multiSelect.js +15 -71
  193. package/lib/table/pipeline/features/rangeSelection.js +76 -175
  194. package/lib/table/pipeline/features/rowDetail.js +4 -67
  195. package/lib/table/pipeline/features/rowDrag.js +66 -94
  196. package/lib/table/pipeline/features/rowGrouping.js +4 -57
  197. package/lib/table/pipeline/features/singleSelect.js +0 -34
  198. package/lib/table/pipeline/features/sort.js +37 -110
  199. package/lib/table/pipeline/features/tips.js +4 -19
  200. package/lib/table/pipeline/features/treeMode.js +15 -72
  201. package/lib/table/pipeline/features/treeSelect.js +2 -36
  202. package/lib/table/pipeline/index.js +2 -10
  203. package/lib/table/pipeline/pipeline.js +13 -64
  204. package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
  205. package/lib/table/pivot/cross-table/constants.js +1 -2
  206. package/lib/table/pivot/cross-table/cross-table.js +25 -42
  207. package/lib/table/pivot/cross-table/index.js +0 -4
  208. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
  209. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +36 -73
  210. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  211. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  212. package/lib/table/pivot/pivot-utils/builders.js +34 -85
  213. package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
  214. package/lib/table/pivot/pivot-utils/index.js +0 -7
  215. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  216. package/lib/table/style/css.js +0 -1
  217. package/lib/table/style/index.js +0 -1
  218. package/lib/table/style/index.less +1 -1
  219. package/lib/table/transforms/autoRowSpan.js +1 -21
  220. package/lib/table/transforms/autoWidth.js +15 -58
  221. package/lib/table/transforms/buildTree.js +1 -4
  222. package/lib/table/transforms/columnHover.js +9 -22
  223. package/lib/table/transforms/columnRangeHover.js +12 -27
  224. package/lib/table/transforms/columnResize.js +20 -63
  225. package/lib/table/transforms/flatten.js +0 -5
  226. package/lib/table/transforms/index.js +0 -12
  227. package/lib/table/transforms/orderField.js +0 -7
  228. package/lib/table/transforms/sort.js +44 -122
  229. package/lib/table/transforms/tips.js +5 -20
  230. package/lib/table/transforms/treeMode.js +38 -106
  231. package/lib/table/transforms/visible.js +0 -7
  232. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  233. package/lib/table/use/useResizeObserver.js +2 -10
  234. package/lib/table/utils/applyTransforms.js +0 -2
  235. package/lib/table/utils/browserType.js +2 -3
  236. package/lib/table/utils/buildTree.js +7 -33
  237. package/lib/table/utils/collectNodes.js +4 -18
  238. package/lib/table/utils/console.js +2 -19
  239. package/lib/table/utils/copyToClipboard.js +1 -8
  240. package/lib/table/utils/element.js +14 -46
  241. package/lib/table/utils/exportTableAsExcel.js +7 -52
  242. package/lib/table/utils/getTreeDepth.js +4 -17
  243. package/lib/table/utils/groupBy.js +4 -17
  244. package/lib/table/utils/index.js +0 -21
  245. package/lib/table/utils/isGroupColumn.js +0 -3
  246. package/lib/table/utils/isLeafNode.js +0 -1
  247. package/lib/table/utils/keyCode.js +1 -2
  248. package/lib/table/utils/layeredFilter.js +0 -10
  249. package/lib/table/utils/layeredSort.js +0 -10
  250. package/lib/table/utils/makeRecursiveMapper.js +4 -24
  251. package/lib/table/utils/mergeCellProps.js +6 -18
  252. package/lib/table/utils/others.js +7 -36
  253. package/lib/table/utils/proto.js +3 -35
  254. package/lib/table/utils/selectColumn.js +2 -5
  255. package/lib/table/utils/smartCompare.js +4 -13
  256. package/lib/table/utils/traverseColumn.js +5 -25
  257. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +7 -38
  258. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
  259. package/package.json +219 -218
@@ -18,9 +18,7 @@ import { always, flatMap } from '../../utils/others';
18
18
  import console from '../../utils/console';
19
19
  import getTableRenderTemplate from '../../base/renderTemplates';
20
20
  import { Classes } from '../../base';
21
-
22
21
  var rowDetailSymbol = _Symbol('row-detail');
23
-
24
22
  var fallbackRenderDetail = function fallbackRenderDetail() {
25
23
  return /*#__PURE__*/React.createElement("div", {
26
24
  style: {
@@ -32,14 +30,11 @@ var fallbackRenderDetail = function fallbackRenderDetail() {
32
30
  }
33
31
  }, "\u8BBE\u7F6E ", /*#__PURE__*/React.createElement("code", null, "rowDetail.renderDetail"), " \u6765\u81EA\u5B9A\u4E49\u8BE6\u60C5\u5185\u5BB9"));
34
32
  };
35
-
36
33
  export function rowDetail() {
37
34
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
38
35
  return function rowDetailStep(pipeline) {
39
36
  var _context, _context2;
40
-
41
37
  var _a, _b, _c, _d, _e, _f, _g, _h;
42
-
43
38
  var stateKey = 'rowDetail';
44
39
  var rowDetailMetaKey = (_a = opts.rowDetailMetaKey) !== null && _a !== void 0 ? _a : rowDetailSymbol;
45
40
  var primaryKey = pipeline.ensurePrimaryKey('rowDetail');
@@ -54,33 +49,26 @@ export function rowDetail() {
54
49
  var openKeys = (_h = (_g = (_f = opts.openKeys) !== null && _f !== void 0 ? _f : pipeline.getStateAtKey(stateKey)) !== null && _g !== void 0 ? _g : opts.defaultOpenAll ? _mapInstanceProperty(_context = _filterInstanceProperty(_context2 = pipeline.getDataSource()).call(_context2, hasDetail)).call(_context, function (row, rowIndex) {
55
50
  return internals.safeGetRowKey(primaryKey, row, rowIndex);
56
51
  }) : opts.defaultOpenKeys) !== null && _h !== void 0 ? _h : [];
57
-
58
52
  var onChangeOpenKeys = function onChangeOpenKeys(nextKeys, key, action) {
59
53
  var _a;
60
-
61
54
  (_a = opts.onChangeOpenKeys) === null || _a === void 0 ? void 0 : _a.call(opts, nextKeys, key, action);
62
55
  pipeline.setStateAtKey(stateKey, nextKeys, {
63
56
  key: key,
64
57
  action: action
65
58
  });
66
59
  };
67
-
68
60
  var openKeySet = new _Set(openKeys);
69
-
70
61
  var toggle = function toggle(rowKey) {
71
62
  var expanded = openKeySet.has(rowKey);
72
-
73
63
  if (expanded) {
74
64
  onChangeOpenKeys(_filterInstanceProperty(openKeys).call(openKeys, function (key) {
75
65
  return key !== rowKey;
76
66
  }), rowKey, 'collapse');
77
67
  } else {
78
68
  var _context3;
79
-
80
69
  onChangeOpenKeys(_concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(openKeys), [rowKey]), rowKey, 'expand');
81
70
  }
82
71
  };
83
-
84
72
  var detailPrimaryKey = typeof primaryKey === 'string' ? primaryKey : rowDetailMetaKey.toString() + 'PrimaryKey';
85
73
  return pipeline.dataSource(flatMap(pipeline.getDataSource(), function (row, rowIndex) {
86
74
  if (openKeySet.has(internals.safeGetRowKey(primaryKey, row, rowIndex))) {
@@ -96,35 +84,27 @@ export function rowDetail() {
96
84
  };
97
85
  }
98
86
  });
99
-
100
87
  function processColumns(columns) {
101
88
  if (columns.length === 0) {
102
89
  return columns;
103
90
  }
104
-
105
91
  var expandColumnIndex = 0;
106
-
107
92
  if (opts.expandColumnCode) {
108
93
  expandColumnIndex = _findIndexInstanceProperty(columns).call(columns, function (col) {
109
94
  return col.code === opts.expandColumnCode;
110
95
  });
111
-
112
96
  if (expandColumnIndex < 0) {
113
97
  console.warn('没找到可展开的列,请检查设置的展开列code');
114
98
  return columns;
115
99
  }
116
100
  }
117
-
118
101
  var expandCol = columns[expandColumnIndex];
119
-
120
102
  var tableColumns = _toConsumableArray(columns);
121
-
122
103
  var render = function render(value, row, rowIndex) {
123
104
  if (row[rowDetailMetaKey]) {
124
105
  // 第一列内容已经渲染
125
106
  if (expandColumnIndex !== 0) return;
126
107
  var renderRowDetail = getTableRenderTemplate('rowDetail');
127
-
128
108
  if (typeof renderRowDetail === 'function') {
129
109
  return renderRowDetail({
130
110
  row: row,
@@ -133,12 +113,9 @@ export function rowDetail() {
133
113
  renderDetail: renderDetail
134
114
  });
135
115
  }
136
-
137
116
  return renderDetail(row, rowIndex);
138
117
  }
139
-
140
118
  var content = internals.safeRender(expandCol, row, rowIndex);
141
-
142
119
  if (!hasDetail(row, rowIndex)) {
143
120
  return /*#__PURE__*/React.createElement(InlineFlexCell, {
144
121
  style: {
@@ -146,18 +123,14 @@ export function rowDetail() {
146
123
  }
147
124
  }, content);
148
125
  }
149
-
150
126
  var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
151
127
  var expanded = openKeySet.has(rowKey);
152
-
153
128
  var onClick = function onClick(e) {
154
129
  if (opts.stopClickEventPropagation) {
155
130
  e.stopPropagation();
156
131
  }
157
-
158
132
  toggle(rowKey);
159
133
  };
160
-
161
134
  var expandCls = expanded ? Classes.expanded : Classes.collapsed;
162
135
  var ExpandIcon = opts.expandIcon;
163
136
  return /*#__PURE__*/React.createElement(ExpansionCell, {
@@ -179,10 +152,8 @@ export function rowDetail() {
179
152
  onClick: clickArea === 'icon' ? onClick : undefined
180
153
  }), content);
181
154
  };
182
-
183
155
  var getCellProps = function getCellProps(value, row, rowIndex) {
184
156
  var _a;
185
-
186
157
  if (row[rowDetailMetaKey]) {
187
158
  return {
188
159
  style: _extends({
@@ -191,19 +162,15 @@ export function rowDetail() {
191
162
  }, opts.detailCellStyle)
192
163
  };
193
164
  }
194
-
195
165
  var prevProps = (_a = expandCol.getCellProps) === null || _a === void 0 ? void 0 : _a.call(expandCol, value, row, rowIndex);
196
-
197
166
  if (!hasDetail(row, rowIndex)) {
198
167
  return prevProps;
199
168
  }
200
-
201
169
  return mergeCellProps(prevProps, {
202
170
  onClick: function onClick(e) {
203
171
  if (opts.stopClickEventPropagation) {
204
172
  e.stopPropagation();
205
173
  }
206
-
207
174
  toggle(internals.safeGetRowKey(primaryKey, row, rowIndex));
208
175
  },
209
176
  style: {
@@ -211,15 +178,12 @@ export function rowDetail() {
211
178
  }
212
179
  });
213
180
  };
214
-
215
181
  var _tableColumns = _toArray(tableColumns),
216
- firstCol = _tableColumns[0],
217
- others = _sliceInstanceProperty(_tableColumns).call(_tableColumns, 1);
218
-
182
+ firstCol = _tableColumns[0],
183
+ others = _sliceInstanceProperty(_tableColumns).call(_tableColumns, 1);
219
184
  var firstColRender = function firstColRender(value, row, rowIndex) {
220
185
  if (row[rowDetailMetaKey]) {
221
186
  var renderRowDetail = getTableRenderTemplate('rowDetail');
222
-
223
187
  if (typeof renderRowDetail === 'function') {
224
188
  return renderRowDetail({
225
189
  row: row,
@@ -228,14 +192,11 @@ export function rowDetail() {
228
192
  renderDetail: renderDetail
229
193
  });
230
194
  }
231
-
232
195
  return renderDetail(row, rowIndex);
233
196
  }
234
-
235
197
  var content = internals.safeRender(firstCol, row, rowIndex);
236
198
  return content;
237
199
  };
238
-
239
200
  tableColumns[0] = _extends(_extends({}, firstCol), {
240
201
  render: firstColRender,
241
202
  getSpanRect: function getSpanRect(value, row, rowIndex) {
@@ -251,12 +212,12 @@ export function rowDetail() {
251
212
  }
252
213
  });
253
214
  tableColumns[expandColumnIndex] = _extends(_extends({}, expandCol), {
254
- title: /*#__PURE__*/React.createElement("div", {
215
+ title: ( /*#__PURE__*/React.createElement("div", {
255
216
  style: {
256
217
  display: 'inline-block',
257
218
  marginLeft: textOffset
258
219
  }
259
- }, internals.safeRenderHeader(expandCol)),
220
+ }, internals.safeRenderHeader(expandCol))),
260
221
  render: render,
261
222
  getCellProps: clickArea === 'cell' ? getCellProps : expandCol.getCellProps,
262
223
  getSpanRect: function getSpanRect(value, row, rowIndex) {
@@ -38,43 +38,35 @@ var defaultRowDragColumn = {
38
38
  export function rowDrag(opt) {
39
39
  return function rowDragStep(pipeline) {
40
40
  var _context;
41
-
42
41
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
43
42
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
44
43
  if (!tableBody) return pipeline;
45
44
  var dataSource = pipeline.getDataSource();
46
45
  var rowHeight = (opt === null || opt === void 0 ? void 0 : opt.rowHeight) || 48;
47
-
48
46
  var handleDragStrat = function handleDragStrat(event) {
49
- var _a; // 开始拖拽
50
-
51
-
47
+ var _a;
48
+ // 开始拖拽
52
49
  artTable.classList.add(cx(Classes.rowDragging));
53
50
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragStart) === null || _a === void 0 ? void 0 : _a.call(opt, event);
54
51
  };
55
-
56
52
  var handleDragMove = function handleDragMove(event) {
57
53
  var _a;
58
-
59
54
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, event);
60
55
  pipeline.setStateAtKey(rowDragKey, event);
61
56
  };
62
-
63
57
  var handleDragEnd = function handleDragEnd(event, isOutOfRange) {
64
58
  var _a;
65
-
66
59
  artTable.classList.remove(cx(Classes.rowDragging));
67
- pipeline.setStateAtKey(rowDragKey, event); // 超出拖拽范围不触发dragend事件
68
-
60
+ pipeline.setStateAtKey(rowDragKey, event);
61
+ // 超出拖拽范围不触发dragend事件
69
62
  if (!isOutOfRange) {
70
63
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, event);
71
64
  }
72
65
  };
73
-
74
66
  var getDragEvent = function getDragEvent(startRowInfo, endRowInfo, _ref) {
75
67
  var isFinished = _ref.isFinished,
76
- _ref$dragPosition = _ref.dragPosition,
77
- dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
68
+ _ref$dragPosition = _ref.dragPosition,
69
+ dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
78
70
  return {
79
71
  startRowIndex: startRowInfo.rowIndex,
80
72
  startRow: startRowInfo.row,
@@ -84,31 +76,26 @@ export function rowDrag(opt) {
84
76
  isFinished: isFinished
85
77
  };
86
78
  };
87
-
88
79
  var updateScrollPosition = function updateScrollPosition(mouseMoveEvent) {
89
80
  if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
90
81
  var clientY = mouseMoveEvent.clientY;
91
82
  var tableBodyClientRect = tableBody.getBoundingClientRect();
92
83
  var top = tableBodyClientRect.top,
93
- height = tableBodyClientRect.height;
94
-
84
+ height = tableBodyClientRect.height;
95
85
  if (clientY + SCROLL_OFFSET >= top + height) {
96
86
  pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
97
87
  }
98
-
99
88
  if (clientY + SCROLL_OFFSET <= top) {
100
89
  pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
101
90
  }
102
91
  };
103
-
104
92
  var onMouseDown = function onMouseDown(mouseDownEvent) {
105
93
  var _a;
106
-
107
94
  var startRowInfo = getTargetRowInfo(mouseDownEvent.target, tableBody, dataSource);
108
95
  var endRowInfo = startRowInfo;
109
96
  if (!startRowInfo || startRowInfo.code !== rowDragColumn.code) return;
110
- if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return; // 默认拖拽插入的位置是向下
111
-
97
+ if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return;
98
+ // 默认拖拽插入的位置是向下
112
99
  var dragPosition = 'bottom';
113
100
  var isOutOfRange = false;
114
101
  var dragStartEvent = getDragEvent(startRowInfo, endRowInfo, {
@@ -117,36 +104,52 @@ export function rowDrag(opt) {
117
104
  });
118
105
  handleDragStrat(dragStartEvent);
119
106
  var tableWidth = tableBody.clientWidth;
120
- var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
121
-
122
- var startOffset = mouseDownEvent.clientY - startRowRects.y;
123
- var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
124
-
107
+ var startRowRects = startRowInfo.cell.getBoundingClientRect();
108
+ // 光标位置距离初始拖拽行的偏移量
109
+ var startOffset = mouseDownEvent.clientY - startRowRects.top;
110
+ var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
111
+ // 可拖拽的范围
125
112
  var dragRange = getDragRange(tableBody, {
126
113
  startOffset: startOffset,
127
- rowHeight: startRowRects.height
114
+ rowHeight: rowHeight
128
115
  });
116
+ var mousePosition = {
117
+ x: mouseDownEvent.clientX,
118
+ y: mouseDownEvent.clientY
119
+ };
129
120
  var mousemove$ = fromEvent(window, 'mousemove');
130
121
  var mouseup$ = fromEvent(window, 'mouseup');
122
+ var scrollCallback = function scrollCallback(event) {
123
+ // 在当前表格内滚动不处理
124
+ if (event.target === tableBody) return;
125
+ dragRange = getDragRange(tableBody, {
126
+ startOffset: startOffset,
127
+ rowHeight: rowHeight
128
+ });
129
+ var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
130
+ updateCurSorStyle(isOutOfRange);
131
+ };
132
+ document.addEventListener('scroll', scrollCallback, true);
131
133
  var rowDrag$ = mousemove$.pipe(map(function (mouseMoveEvent) {
132
134
  var clientX = mouseMoveEvent.clientX,
133
- clientY = mouseMoveEvent.clientY;
135
+ clientY = mouseMoveEvent.clientY;
134
136
  var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
135
-
136
137
  if (tagretRow) {
137
138
  endRowInfo = tagretRow;
138
139
  }
139
-
140
- var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
141
-
142
- var isMoveToTop = clientY - startOffset < targetRowRects.y;
140
+ var targetRowRects = endRowInfo.cell.getBoundingClientRect();
141
+ // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
142
+ var isMoveToTop = clientY - startOffset < targetRowRects.top;
143
143
  dragPosition = isMoveToTop ? 'top' : 'bottom';
144
144
  isOutOfRange = isOutOfDragRange({
145
145
  x: clientX,
146
146
  y: clientY
147
147
  }, dragRange);
148
+ mousePosition = {
149
+ x: clientX,
150
+ y: clientY
151
+ };
148
152
  updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
149
-
150
153
  updateDragElementPosition(dragElement, dragRange, {
151
154
  x: clientX,
152
155
  y: clientY,
@@ -162,8 +165,8 @@ export function rowDrag(opt) {
162
165
  rowDrag$.subscribe({
163
166
  next: function next(_ref2) {
164
167
  var startRowInfo = _ref2.startRowInfo,
165
- endRowInfo = _ref2.endRowInfo,
166
- dragPosition = _ref2.dragPosition;
168
+ endRowInfo = _ref2.endRowInfo,
169
+ dragPosition = _ref2.dragPosition;
167
170
  var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
168
171
  isFinished: false,
169
172
  dragPosition: dragPosition
@@ -178,31 +181,27 @@ export function rowDrag(opt) {
178
181
  handleDragEnd(dragEndEvent, isOutOfRange);
179
182
  removeDragElement(dragElement);
180
183
  removeCurSorStyle();
184
+ document.removeEventListener('scroll', scrollCallback, true);
181
185
  }
182
186
  });
183
187
  };
184
-
185
188
  var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
186
189
  pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
187
-
188
190
  var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
189
-
190
191
  nextColumns.unshift(rowDragColumn);
191
192
  pipeline.columns(nextColumns);
192
193
  pipeline.addTableProps({
193
194
  onMouseDown: onMouseDown
194
195
  });
195
196
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
196
- var _cx;
197
-
198
197
  var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
199
198
  var startRowIndex = rowDragEvent.startRowIndex,
200
- endRowIndex = rowDragEvent.endRowIndex,
201
- isFinished = rowDragEvent.isFinished,
202
- dragPosition = rowDragEvent.dragPosition;
199
+ endRowIndex = rowDragEvent.endRowIndex,
200
+ isFinished = rowDragEvent.isFinished,
201
+ dragPosition = rowDragEvent.dragPosition;
203
202
  var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
204
203
  if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
205
- var className = cx((_cx = {}, _defineProperty(_cx, Classes.rowDragStart, rowIndex === startRowIndex), _defineProperty(_cx, Classes.rowDragEnd, rowIndex === endRowIndex), _defineProperty(_cx, Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _defineProperty(_cx, Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'), _cx));
204
+ var className = cx(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Classes.rowDragStart, rowIndex === startRowIndex), Classes.rowDragEnd, rowIndex === endRowIndex), Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
206
205
  return {
207
206
  className: className
208
207
  };
@@ -210,7 +209,6 @@ export function rowDrag(opt) {
210
209
  return pipeline;
211
210
  };
212
211
  }
213
-
214
212
  function getTargetRowInfo(target, tableBody, record) {
215
213
  while (target && tableBody.contains(target)) {
216
214
  if (target.getAttribute('data-role') === 'table-cell') {
@@ -226,41 +224,33 @@ function getTargetRowInfo(target, tableBody, record) {
226
224
  cell: target
227
225
  };
228
226
  }
229
-
230
227
  target = target.parentElement;
231
228
  }
232
-
233
229
  return null;
234
230
  }
235
-
236
231
  function isEleInFooter(target) {
237
232
  while (target && !target.classList.contains(Classes.artTable)) {
238
233
  if (target.classList.contains(Classes.tableFooter)) {
239
234
  return true;
240
235
  }
241
-
242
236
  target = target.parentElement;
243
237
  }
244
-
245
238
  return false;
246
239
  }
247
-
248
240
  function createDragElement(rects, tableWidth, rowHeight) {
249
241
  var _context2, _context3, _context4;
250
-
251
242
  var x = rects.x,
252
- y = rects.y;
243
+ y = rects.y;
253
244
  var dragMoveElement = document.createElement('div');
254
245
  dragMoveElement.className = cx(Classes.rowDragElement);
255
246
  dragMoveElement.style.cssText = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = _concatInstanceProperty(_context4 = "position:fixed;z-index:9999;left:".concat(x, "px;top:")).call(_context4, y, "px;pointer-events:none;width:")).call(_context3, tableWidth, "px;height:")).call(_context2, rowHeight, "px;background:var(--primary-color);opacity: 0.1;");
256
247
  document.body.appendChild(dragMoveElement);
257
248
  return dragMoveElement;
258
249
  }
259
-
260
250
  function updateDragElementPosition(element, dragRange, _ref3) {
261
251
  var x = _ref3.x,
262
- y = _ref3.y,
263
- startOffset = _ref3.startOffset;
252
+ y = _ref3.y,
253
+ startOffset = _ref3.startOffset;
264
254
  var validPosition = getValidPosition({
265
255
  x: x,
266
256
  y: y
@@ -268,11 +258,9 @@ function updateDragElementPosition(element, dragRange, _ref3) {
268
258
  element.style.top = validPosition.y - startOffset + 'px';
269
259
  return element;
270
260
  }
271
-
272
261
  function removeDragElement(element) {
273
262
  document.body.removeChild(element);
274
263
  }
275
-
276
264
  function updateCurSorStyle(isOutOfRange) {
277
265
  if (isOutOfRange) {
278
266
  document.body.style.cursor = 'no-drop';
@@ -280,34 +268,31 @@ function updateCurSorStyle(isOutOfRange) {
280
268
  document.body.style.cursor = 'move';
281
269
  }
282
270
  }
283
-
284
271
  function removeCurSorStyle() {
285
272
  document.body.style.cursor = 'default';
286
273
  }
287
-
288
274
  function getDragRange(tableBody, _ref4) {
289
275
  var startOffset = _ref4.startOffset,
290
- rowHeight = _ref4.rowHeight;
276
+ rowHeight = _ref4.rowHeight;
291
277
  var tableBodyClientRect = tableBody.getBoundingClientRect();
292
278
  var height = tableBodyClientRect.height,
293
- width = tableBodyClientRect.width,
294
- x = tableBodyClientRect.x,
295
- y = tableBodyClientRect.y;
279
+ width = tableBodyClientRect.width,
280
+ top = tableBodyClientRect.top,
281
+ left = tableBodyClientRect.left;
296
282
  return {
297
- minX: x,
298
- maxX: x + width,
299
- minY: y - rowHeight + startOffset,
300
- maxY: y + height + startOffset
283
+ minX: left,
284
+ maxX: left + width,
285
+ minY: top - rowHeight + startOffset,
286
+ maxY: top + height + startOffset
301
287
  };
302
288
  }
303
-
304
289
  function getValidPosition(position, dragRange) {
305
290
  var x = position.x,
306
- y = position.y;
291
+ y = position.y;
307
292
  var minX = dragRange.minX,
308
- maxX = dragRange.maxX,
309
- minY = dragRange.minY,
310
- maxY = dragRange.maxY;
293
+ maxX = dragRange.maxX,
294
+ minY = dragRange.minY,
295
+ maxY = dragRange.maxY;
311
296
  var newX = x < minX ? minX : x > maxX ? maxX : x;
312
297
  var newY = y < minY ? minY : y > maxY ? maxY : y;
313
298
  return {
@@ -315,13 +300,12 @@ function getValidPosition(position, dragRange) {
315
300
  y: newY
316
301
  };
317
302
  }
318
-
319
303
  function isOutOfDragRange(position, dragRange) {
320
304
  var x = position.x,
321
- y = position.y;
305
+ y = position.y;
322
306
  var minX = dragRange.minX,
323
- maxX = dragRange.maxX,
324
- minY = dragRange.minY,
325
- maxY = dragRange.maxY;
307
+ maxX = dragRange.maxX,
308
+ minY = dragRange.minY,
309
+ maxY = dragRange.maxY;
326
310
  return x > maxX || x < minX || y > maxY || y < minY;
327
311
  }