@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
@@ -1,56 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _flatMapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/flat-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
  });
10
8
  exports.rowDetail = rowDetail;
11
-
12
9
  var _toArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toArray"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
15
-
16
11
  var _extends4 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
-
18
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
19
-
20
13
  var _symbol = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/symbol"));
21
-
22
14
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
23
-
24
15
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
25
-
26
16
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
27
-
28
17
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
29
-
30
18
  var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
31
-
32
19
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
33
-
34
20
  var _classnames = _interopRequireDefault(require("classnames"));
35
-
36
21
  var _react = _interopRequireDefault(require("react"));
37
-
38
22
  var _commonViews = require("../../common-views");
39
-
40
23
  var _internals = require("../../internals");
41
-
42
24
  var _utils = require("../../utils");
43
-
44
25
  var _others = require("../../utils/others");
45
-
46
26
  var _console = _interopRequireDefault(require("../../utils/console"));
47
-
48
27
  var _renderTemplates = _interopRequireDefault(require("../../base/renderTemplates"));
49
-
50
28
  var _base = require("../../base");
51
-
52
29
  var rowDetailSymbol = (0, _symbol.default)('row-detail');
53
-
54
30
  var fallbackRenderDetail = function fallbackRenderDetail() {
55
31
  return /*#__PURE__*/_react.default.createElement("div", {
56
32
  style: {
@@ -62,14 +38,11 @@ var fallbackRenderDetail = function fallbackRenderDetail() {
62
38
  }
63
39
  }, "\u8BBE\u7F6E ", /*#__PURE__*/_react.default.createElement("code", null, "rowDetail.renderDetail"), " \u6765\u81EA\u5B9A\u4E49\u8BE6\u60C5\u5185\u5BB9"));
64
40
  };
65
-
66
41
  function rowDetail() {
67
42
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
68
43
  return function rowDetailStep(pipeline) {
69
44
  var _context, _context2;
70
-
71
45
  var _a, _b, _c, _d, _e, _f, _g, _h;
72
-
73
46
  var stateKey = 'rowDetail';
74
47
  var rowDetailMetaKey = (_a = opts.rowDetailMetaKey) !== null && _a !== void 0 ? _a : rowDetailSymbol;
75
48
  var primaryKey = pipeline.ensurePrimaryKey('rowDetail');
@@ -84,33 +57,26 @@ function rowDetail() {
84
57
  var openKeys = (_h = (_g = (_f = opts.openKeys) !== null && _f !== void 0 ? _f : pipeline.getStateAtKey(stateKey)) !== null && _g !== void 0 ? _g : opts.defaultOpenAll ? (0, _map.default)(_context = (0, _filter.default)(_context2 = pipeline.getDataSource()).call(_context2, hasDetail)).call(_context, function (row, rowIndex) {
85
58
  return _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
86
59
  }) : opts.defaultOpenKeys) !== null && _h !== void 0 ? _h : [];
87
-
88
60
  var onChangeOpenKeys = function onChangeOpenKeys(nextKeys, key, action) {
89
61
  var _a;
90
-
91
62
  (_a = opts.onChangeOpenKeys) === null || _a === void 0 ? void 0 : _a.call(opts, nextKeys, key, action);
92
63
  pipeline.setStateAtKey(stateKey, nextKeys, {
93
64
  key: key,
94
65
  action: action
95
66
  });
96
67
  };
97
-
98
68
  var openKeySet = new _set.default(openKeys);
99
-
100
69
  var toggle = function toggle(rowKey) {
101
70
  var expanded = openKeySet.has(rowKey);
102
-
103
71
  if (expanded) {
104
72
  onChangeOpenKeys((0, _filter.default)(openKeys).call(openKeys, function (key) {
105
73
  return key !== rowKey;
106
74
  }), rowKey, 'collapse');
107
75
  } else {
108
76
  var _context3;
109
-
110
77
  onChangeOpenKeys((0, _concat.default)(_context3 = []).call(_context3, (0, _toConsumableArray2.default)(openKeys), [rowKey]), rowKey, 'expand');
111
78
  }
112
79
  };
113
-
114
80
  var detailPrimaryKey = typeof primaryKey === 'string' ? primaryKey : rowDetailMetaKey.toString() + 'PrimaryKey';
115
81
  return pipeline.dataSource((0, _flatMapInstanceProperty(_others))(pipeline.getDataSource(), function (row, rowIndex) {
116
82
  if (openKeySet.has(_internals.internals.safeGetRowKey(primaryKey, row, rowIndex))) {
@@ -126,35 +92,27 @@ function rowDetail() {
126
92
  };
127
93
  }
128
94
  });
129
-
130
95
  function processColumns(columns) {
131
96
  if (columns.length === 0) {
132
97
  return columns;
133
98
  }
134
-
135
99
  var expandColumnIndex = 0;
136
-
137
100
  if (opts.expandColumnCode) {
138
101
  expandColumnIndex = (0, _findIndex.default)(columns).call(columns, function (col) {
139
102
  return col.code === opts.expandColumnCode;
140
103
  });
141
-
142
104
  if (expandColumnIndex < 0) {
143
105
  _console.default.warn('没找到可展开的列,请检查设置的展开列code');
144
-
145
106
  return columns;
146
107
  }
147
108
  }
148
-
149
109
  var expandCol = columns[expandColumnIndex];
150
110
  var tableColumns = (0, _toConsumableArray2.default)(columns);
151
-
152
111
  var render = function render(value, row, rowIndex) {
153
112
  if (row[rowDetailMetaKey]) {
154
113
  // 第一列内容已经渲染
155
114
  if (expandColumnIndex !== 0) return;
156
115
  var renderRowDetail = (0, _renderTemplates.default)('rowDetail');
157
-
158
116
  if (typeof renderRowDetail === 'function') {
159
117
  return renderRowDetail({
160
118
  row: row,
@@ -163,12 +121,9 @@ function rowDetail() {
163
121
  renderDetail: renderDetail
164
122
  });
165
123
  }
166
-
167
124
  return renderDetail(row, rowIndex);
168
125
  }
169
-
170
126
  var content = _internals.internals.safeRender(expandCol, row, rowIndex);
171
-
172
127
  if (!hasDetail(row, rowIndex)) {
173
128
  return /*#__PURE__*/_react.default.createElement(_commonViews.InlineFlexCell, {
174
129
  style: {
@@ -176,19 +131,14 @@ function rowDetail() {
176
131
  }
177
132
  }, content);
178
133
  }
179
-
180
134
  var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
181
-
182
135
  var expanded = openKeySet.has(rowKey);
183
-
184
136
  var onClick = function onClick(e) {
185
137
  if (opts.stopClickEventPropagation) {
186
138
  e.stopPropagation();
187
139
  }
188
-
189
140
  toggle(rowKey);
190
141
  };
191
-
192
142
  var expandCls = expanded ? _base.Classes.expanded : _base.Classes.collapsed;
193
143
  var ExpandIcon = opts.expandIcon;
194
144
  return /*#__PURE__*/_react.default.createElement(_commonViews.ExpansionCell, {
@@ -210,10 +160,8 @@ function rowDetail() {
210
160
  onClick: clickArea === 'icon' ? onClick : undefined
211
161
  }), content);
212
162
  };
213
-
214
163
  var getCellProps = function getCellProps(value, row, rowIndex) {
215
164
  var _a;
216
-
217
165
  if (row[rowDetailMetaKey]) {
218
166
  return {
219
167
  style: (0, _extends4.default)({
@@ -222,19 +170,15 @@ function rowDetail() {
222
170
  }, opts.detailCellStyle)
223
171
  };
224
172
  }
225
-
226
173
  var prevProps = (_a = expandCol.getCellProps) === null || _a === void 0 ? void 0 : _a.call(expandCol, value, row, rowIndex);
227
-
228
174
  if (!hasDetail(row, rowIndex)) {
229
175
  return prevProps;
230
176
  }
231
-
232
177
  return (0, _utils.mergeCellProps)(prevProps, {
233
178
  onClick: function onClick(e) {
234
179
  if (opts.stopClickEventPropagation) {
235
180
  e.stopPropagation();
236
181
  }
237
-
238
182
  toggle(_internals.internals.safeGetRowKey(primaryKey, row, rowIndex));
239
183
  },
240
184
  style: {
@@ -242,15 +186,12 @@ function rowDetail() {
242
186
  }
243
187
  });
244
188
  };
245
-
246
189
  var _tableColumns = (0, _toArray2.default)(tableColumns),
247
- firstCol = _tableColumns[0],
248
- others = (0, _slice.default)(_tableColumns).call(_tableColumns, 1);
249
-
190
+ firstCol = _tableColumns[0],
191
+ others = (0, _slice.default)(_tableColumns).call(_tableColumns, 1);
250
192
  var firstColRender = function firstColRender(value, row, rowIndex) {
251
193
  if (row[rowDetailMetaKey]) {
252
194
  var renderRowDetail = (0, _renderTemplates.default)('rowDetail');
253
-
254
195
  if (typeof renderRowDetail === 'function') {
255
196
  return renderRowDetail({
256
197
  row: row,
@@ -259,15 +200,11 @@ function rowDetail() {
259
200
  renderDetail: renderDetail
260
201
  });
261
202
  }
262
-
263
203
  return renderDetail(row, rowIndex);
264
204
  }
265
-
266
205
  var content = _internals.internals.safeRender(firstCol, row, rowIndex);
267
-
268
206
  return content;
269
207
  };
270
-
271
208
  tableColumns[0] = (0, _extends4.default)((0, _extends4.default)({}, firstCol), {
272
209
  render: firstColRender,
273
210
  getSpanRect: function getSpanRect(value, row, rowIndex) {
@@ -283,12 +220,12 @@ function rowDetail() {
283
220
  }
284
221
  });
285
222
  tableColumns[expandColumnIndex] = (0, _extends4.default)((0, _extends4.default)({}, expandCol), {
286
- title: /*#__PURE__*/_react.default.createElement("div", {
223
+ title: ( /*#__PURE__*/_react.default.createElement("div", {
287
224
  style: {
288
225
  display: 'inline-block',
289
226
  marginLeft: textOffset
290
227
  }
291
- }, _internals.internals.safeRenderHeader(expandCol)),
228
+ }, _internals.internals.safeRenderHeader(expandCol))),
292
229
  render: render,
293
230
  getCellProps: clickArea === 'cell' ? getCellProps : expandCol.getCellProps,
294
231
  getSpanRect: function getSpanRect(value, row, rowIndex) {
@@ -1,36 +1,23 @@
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
  });
10
8
  exports.ROW_DRAG_COLUMN_CODE = void 0;
11
9
  exports.rowDrag = rowDrag;
12
10
  exports.rowDragKey = void 0;
13
-
14
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
15
-
16
12
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
17
-
18
13
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
19
-
20
14
  var _react = _interopRequireDefault(require("react"));
21
-
22
15
  var _rxjs = require("rxjs");
23
-
24
16
  var _operators = require("rxjs/operators");
25
-
26
17
  var _classnames = _interopRequireDefault(require("classnames"));
27
-
28
18
  var _styles = require("../../base/styles");
29
-
30
- var ROW_DRAG_COLUMN_CODE = '$_row_drag_column_&';
31
- exports.ROW_DRAG_COLUMN_CODE = ROW_DRAG_COLUMN_CODE;
32
- var rowDragKey = 'rowDragKey';
33
- exports.rowDragKey = rowDragKey;
19
+ var ROW_DRAG_COLUMN_CODE = exports.ROW_DRAG_COLUMN_CODE = '$_row_drag_column_&';
20
+ var rowDragKey = exports.rowDragKey = 'rowDragKey';
34
21
  var SCROLL_OFFSET = 30;
35
22
  var defaultRowDragColumn = {
36
23
  name: '拖拽列',
@@ -58,47 +45,38 @@ var defaultRowDragColumn = {
58
45
  }));
59
46
  }
60
47
  };
61
-
62
48
  function rowDrag(opt) {
63
49
  return function rowDragStep(pipeline) {
64
50
  var _context;
65
-
66
51
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
67
52
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
68
53
  if (!tableBody) return pipeline;
69
54
  var dataSource = pipeline.getDataSource();
70
55
  var rowHeight = (opt === null || opt === void 0 ? void 0 : opt.rowHeight) || 48;
71
-
72
56
  var handleDragStrat = function handleDragStrat(event) {
73
- var _a; // 开始拖拽
74
-
75
-
57
+ var _a;
58
+ // 开始拖拽
76
59
  artTable.classList.add((0, _classnames.default)(_styles.Classes.rowDragging));
77
60
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragStart) === null || _a === void 0 ? void 0 : _a.call(opt, event);
78
61
  };
79
-
80
62
  var handleDragMove = function handleDragMove(event) {
81
63
  var _a;
82
-
83
64
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, event);
84
65
  pipeline.setStateAtKey(rowDragKey, event);
85
66
  };
86
-
87
67
  var handleDragEnd = function handleDragEnd(event, isOutOfRange) {
88
68
  var _a;
89
-
90
69
  artTable.classList.remove((0, _classnames.default)(_styles.Classes.rowDragging));
91
- pipeline.setStateAtKey(rowDragKey, event); // 超出拖拽范围不触发dragend事件
92
-
70
+ pipeline.setStateAtKey(rowDragKey, event);
71
+ // 超出拖拽范围不触发dragend事件
93
72
  if (!isOutOfRange) {
94
73
  (_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, event);
95
74
  }
96
75
  };
97
-
98
76
  var getDragEvent = function getDragEvent(startRowInfo, endRowInfo, _ref) {
99
77
  var isFinished = _ref.isFinished,
100
- _ref$dragPosition = _ref.dragPosition,
101
- dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
78
+ _ref$dragPosition = _ref.dragPosition,
79
+ dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
102
80
  return {
103
81
  startRowIndex: startRowInfo.rowIndex,
104
82
  startRow: startRowInfo.row,
@@ -108,31 +86,26 @@ function rowDrag(opt) {
108
86
  isFinished: isFinished
109
87
  };
110
88
  };
111
-
112
89
  var updateScrollPosition = function updateScrollPosition(mouseMoveEvent) {
113
90
  if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
114
91
  var clientY = mouseMoveEvent.clientY;
115
92
  var tableBodyClientRect = tableBody.getBoundingClientRect();
116
93
  var top = tableBodyClientRect.top,
117
- height = tableBodyClientRect.height;
118
-
94
+ height = tableBodyClientRect.height;
119
95
  if (clientY + SCROLL_OFFSET >= top + height) {
120
96
  pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
121
97
  }
122
-
123
98
  if (clientY + SCROLL_OFFSET <= top) {
124
99
  pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
125
100
  }
126
101
  };
127
-
128
102
  var onMouseDown = function onMouseDown(mouseDownEvent) {
129
103
  var _a;
130
-
131
104
  var startRowInfo = getTargetRowInfo(mouseDownEvent.target, tableBody, dataSource);
132
105
  var endRowInfo = startRowInfo;
133
106
  if (!startRowInfo || startRowInfo.code !== rowDragColumn.code) return;
134
- 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; // 默认拖拽插入的位置是向下
135
-
107
+ 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;
108
+ // 默认拖拽插入的位置是向下
136
109
  var dragPosition = 'bottom';
137
110
  var isOutOfRange = false;
138
111
  var dragStartEvent = getDragEvent(startRowInfo, endRowInfo, {
@@ -141,36 +114,52 @@ function rowDrag(opt) {
141
114
  });
142
115
  handleDragStrat(dragStartEvent);
143
116
  var tableWidth = tableBody.clientWidth;
144
- var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
145
-
146
- var startOffset = mouseDownEvent.clientY - startRowRects.y;
147
- var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
148
-
117
+ var startRowRects = startRowInfo.cell.getBoundingClientRect();
118
+ // 光标位置距离初始拖拽行的偏移量
119
+ var startOffset = mouseDownEvent.clientY - startRowRects.top;
120
+ var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
121
+ // 可拖拽的范围
149
122
  var dragRange = getDragRange(tableBody, {
150
123
  startOffset: startOffset,
151
- rowHeight: startRowRects.height
124
+ rowHeight: rowHeight
152
125
  });
126
+ var mousePosition = {
127
+ x: mouseDownEvent.clientX,
128
+ y: mouseDownEvent.clientY
129
+ };
153
130
  var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
154
131
  var mouseup$ = (0, _rxjs.fromEvent)(window, 'mouseup');
132
+ var scrollCallback = function scrollCallback(event) {
133
+ // 在当前表格内滚动不处理
134
+ if (event.target === tableBody) return;
135
+ dragRange = getDragRange(tableBody, {
136
+ startOffset: startOffset,
137
+ rowHeight: rowHeight
138
+ });
139
+ var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
140
+ updateCurSorStyle(isOutOfRange);
141
+ };
142
+ document.addEventListener('scroll', scrollCallback, true);
155
143
  var rowDrag$ = mousemove$.pipe((0, _mapInstanceProperty(_operators))(function (mouseMoveEvent) {
156
144
  var clientX = mouseMoveEvent.clientX,
157
- clientY = mouseMoveEvent.clientY;
145
+ clientY = mouseMoveEvent.clientY;
158
146
  var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
159
-
160
147
  if (tagretRow) {
161
148
  endRowInfo = tagretRow;
162
149
  }
163
-
164
- var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
165
-
166
- var isMoveToTop = clientY - startOffset < targetRowRects.y;
150
+ var targetRowRects = endRowInfo.cell.getBoundingClientRect();
151
+ // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
152
+ var isMoveToTop = clientY - startOffset < targetRowRects.top;
167
153
  dragPosition = isMoveToTop ? 'top' : 'bottom';
168
154
  isOutOfRange = isOutOfDragRange({
169
155
  x: clientX,
170
156
  y: clientY
171
157
  }, dragRange);
158
+ mousePosition = {
159
+ x: clientX,
160
+ y: clientY
161
+ };
172
162
  updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
173
-
174
163
  updateDragElementPosition(dragElement, dragRange, {
175
164
  x: clientX,
176
165
  y: clientY,
@@ -186,8 +175,8 @@ function rowDrag(opt) {
186
175
  rowDrag$.subscribe({
187
176
  next: function next(_ref2) {
188
177
  var startRowInfo = _ref2.startRowInfo,
189
- endRowInfo = _ref2.endRowInfo,
190
- dragPosition = _ref2.dragPosition;
178
+ endRowInfo = _ref2.endRowInfo,
179
+ dragPosition = _ref2.dragPosition;
191
180
  var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
192
181
  isFinished: false,
193
182
  dragPosition: dragPosition
@@ -202,10 +191,10 @@ function rowDrag(opt) {
202
191
  handleDragEnd(dragEndEvent, isOutOfRange);
203
192
  removeDragElement(dragElement);
204
193
  removeCurSorStyle();
194
+ document.removeEventListener('scroll', scrollCallback, true);
205
195
  }
206
196
  });
207
197
  };
208
-
209
198
  var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
210
199
  pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
211
200
  var nextColumns = (0, _slice.default)(_context = pipeline.getColumns()).call(_context);
@@ -215,16 +204,14 @@ function rowDrag(opt) {
215
204
  onMouseDown: onMouseDown
216
205
  });
217
206
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
218
- var _cx;
219
-
220
207
  var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
221
208
  var startRowIndex = rowDragEvent.startRowIndex,
222
- endRowIndex = rowDragEvent.endRowIndex,
223
- isFinished = rowDragEvent.isFinished,
224
- dragPosition = rowDragEvent.dragPosition;
209
+ endRowIndex = rowDragEvent.endRowIndex,
210
+ isFinished = rowDragEvent.isFinished,
211
+ dragPosition = rowDragEvent.dragPosition;
225
212
  var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
226
213
  if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
227
- var className = (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.rowDragStart, rowIndex === startRowIndex), (0, _defineProperty2.default)(_cx, _styles.Classes.rowDragEnd, rowIndex === endRowIndex), (0, _defineProperty2.default)(_cx, _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), (0, _defineProperty2.default)(_cx, _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'), _cx));
214
+ var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.rowDragStart, rowIndex === startRowIndex), _styles.Classes.rowDragEnd, rowIndex === endRowIndex), _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
228
215
  return {
229
216
  className: className
230
217
  };
@@ -232,7 +219,6 @@ function rowDrag(opt) {
232
219
  return pipeline;
233
220
  };
234
221
  }
235
-
236
222
  function getTargetRowInfo(target, tableBody, record) {
237
223
  while (target && tableBody.contains(target)) {
238
224
  if (target.getAttribute('data-role') === 'table-cell') {
@@ -248,41 +234,33 @@ function getTargetRowInfo(target, tableBody, record) {
248
234
  cell: target
249
235
  };
250
236
  }
251
-
252
237
  target = target.parentElement;
253
238
  }
254
-
255
239
  return null;
256
240
  }
257
-
258
241
  function isEleInFooter(target) {
259
242
  while (target && !target.classList.contains(_styles.Classes.artTable)) {
260
243
  if (target.classList.contains(_styles.Classes.tableFooter)) {
261
244
  return true;
262
245
  }
263
-
264
246
  target = target.parentElement;
265
247
  }
266
-
267
248
  return false;
268
249
  }
269
-
270
250
  function createDragElement(rects, tableWidth, rowHeight) {
271
251
  var _context2, _context3, _context4;
272
-
273
252
  var x = rects.x,
274
- y = rects.y;
253
+ y = rects.y;
275
254
  var dragMoveElement = document.createElement('div');
276
255
  dragMoveElement.className = (0, _classnames.default)(_styles.Classes.rowDragElement);
277
256
  dragMoveElement.style.cssText = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_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;");
278
257
  document.body.appendChild(dragMoveElement);
279
258
  return dragMoveElement;
280
259
  }
281
-
282
260
  function updateDragElementPosition(element, dragRange, _ref3) {
283
261
  var x = _ref3.x,
284
- y = _ref3.y,
285
- startOffset = _ref3.startOffset;
262
+ y = _ref3.y,
263
+ startOffset = _ref3.startOffset;
286
264
  var validPosition = getValidPosition({
287
265
  x: x,
288
266
  y: y
@@ -290,11 +268,9 @@ function updateDragElementPosition(element, dragRange, _ref3) {
290
268
  element.style.top = validPosition.y - startOffset + 'px';
291
269
  return element;
292
270
  }
293
-
294
271
  function removeDragElement(element) {
295
272
  document.body.removeChild(element);
296
273
  }
297
-
298
274
  function updateCurSorStyle(isOutOfRange) {
299
275
  if (isOutOfRange) {
300
276
  document.body.style.cursor = 'no-drop';
@@ -302,34 +278,31 @@ function updateCurSorStyle(isOutOfRange) {
302
278
  document.body.style.cursor = 'move';
303
279
  }
304
280
  }
305
-
306
281
  function removeCurSorStyle() {
307
282
  document.body.style.cursor = 'default';
308
283
  }
309
-
310
284
  function getDragRange(tableBody, _ref4) {
311
285
  var startOffset = _ref4.startOffset,
312
- rowHeight = _ref4.rowHeight;
286
+ rowHeight = _ref4.rowHeight;
313
287
  var tableBodyClientRect = tableBody.getBoundingClientRect();
314
288
  var height = tableBodyClientRect.height,
315
- width = tableBodyClientRect.width,
316
- x = tableBodyClientRect.x,
317
- y = tableBodyClientRect.y;
289
+ width = tableBodyClientRect.width,
290
+ top = tableBodyClientRect.top,
291
+ left = tableBodyClientRect.left;
318
292
  return {
319
- minX: x,
320
- maxX: x + width,
321
- minY: y - rowHeight + startOffset,
322
- maxY: y + height + startOffset
293
+ minX: left,
294
+ maxX: left + width,
295
+ minY: top - rowHeight + startOffset,
296
+ maxY: top + height + startOffset
323
297
  };
324
298
  }
325
-
326
299
  function getValidPosition(position, dragRange) {
327
300
  var x = position.x,
328
- y = position.y;
301
+ y = position.y;
329
302
  var minX = dragRange.minX,
330
- maxX = dragRange.maxX,
331
- minY = dragRange.minY,
332
- maxY = dragRange.maxY;
303
+ maxX = dragRange.maxX,
304
+ minY = dragRange.minY,
305
+ maxY = dragRange.maxY;
333
306
  var newX = x < minX ? minX : x > maxX ? maxX : x;
334
307
  var newY = y < minY ? minY : y > maxY ? maxY : y;
335
308
  return {
@@ -337,13 +310,12 @@ function getValidPosition(position, dragRange) {
337
310
  y: newY
338
311
  };
339
312
  }
340
-
341
313
  function isOutOfDragRange(position, dragRange) {
342
314
  var x = position.x,
343
- y = position.y;
315
+ y = position.y;
344
316
  var minX = dragRange.minX,
345
- maxX = dragRange.maxX,
346
- minY = dragRange.minY,
347
- maxY = dragRange.maxY;
317
+ maxX = dragRange.maxX,
318
+ minY = dragRange.minY,
319
+ maxY = dragRange.maxY;
348
320
  return x > maxX || x < minX || y > maxY || y < minY;
349
321
  }