@kdcloudjs/table 1.2.1-canary.6 → 1.2.2-canary.3

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 (288) 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 +5480 -6087
  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 +81 -144
  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 +11 -50
  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/globalStyleComponent.d.ts +4 -0
  39. package/es/table/base/globalStyleComponent.js +24 -0
  40. package/es/table/base/header.js +21 -76
  41. package/es/table/base/helpers/SpanManager.js +4 -11
  42. package/es/table/base/helpers/TableDOMUtils.js +9 -34
  43. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  44. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  45. package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
  46. package/es/table/base/helpers/rowHeightManager.js +0 -28
  47. package/es/table/base/html-table.js +17 -39
  48. package/es/table/base/loading.js +8 -10
  49. package/es/table/base/renderTemplates.js +42 -60
  50. package/es/table/base/styles.d.ts +10 -0
  51. package/es/table/base/styles.js +17 -16
  52. package/es/table/base/table.js +113 -201
  53. package/es/table/base/utils.js +17 -57
  54. package/es/table/common-views.js +0 -7
  55. package/es/table/interfaces.d.ts +38 -0
  56. package/es/table/internals.js +0 -13
  57. package/es/table/pipeline/const.d.ts +3 -0
  58. package/es/table/pipeline/const.js +3 -0
  59. package/es/table/pipeline/features/autoFill.js +11 -40
  60. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  61. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  62. package/es/table/pipeline/features/columnDrag.js +41 -97
  63. package/es/table/pipeline/features/columnFilter.js +12 -51
  64. package/es/table/pipeline/features/columnHover.js +1 -7
  65. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  66. package/es/table/pipeline/features/columnResizeWidth.js +13 -39
  67. package/es/table/pipeline/features/contextMenu.js +22 -95
  68. package/es/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  69. package/es/table/pipeline/features/featureApi/RowDragApi.js +66 -0
  70. package/es/table/pipeline/features/featureApi/utils.d.ts +2 -0
  71. package/es/table/pipeline/features/featureApi/utils.js +10 -0
  72. package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
  73. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  74. package/es/table/pipeline/features/filter/Filter.js +27 -51
  75. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  76. package/es/table/pipeline/features/filter/util.js +0 -4
  77. package/es/table/pipeline/features/footerDataSource.js +0 -3
  78. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  79. package/es/table/pipeline/features/multiSelect.js +15 -57
  80. package/es/table/pipeline/features/rangeSelection.js +73 -152
  81. package/es/table/pipeline/features/rowDetail.js +4 -43
  82. package/es/table/pipeline/features/rowDrag.d.ts +10 -12
  83. package/es/table/pipeline/features/rowDrag.js +491 -236
  84. package/es/table/pipeline/features/rowGrouping.js +4 -37
  85. package/es/table/pipeline/features/singleSelect.js +0 -24
  86. package/es/table/pipeline/features/sort.js +38 -96
  87. package/es/table/pipeline/features/tips.js +4 -10
  88. package/es/table/pipeline/features/treeMode.d.ts +1 -0
  89. package/es/table/pipeline/features/treeMode.js +38 -57
  90. package/es/table/pipeline/features/treeSelect.js +2 -28
  91. package/es/table/pipeline/pipeline.d.ts +3 -0
  92. package/es/table/pipeline/pipeline.js +35 -54
  93. package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
  94. package/es/table/pivot/cross-table/cross-table.js +23 -31
  95. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
  96. package/es/table/pivot/cross-tree-table/cross-tree-table.js +36 -61
  97. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  98. package/es/table/pivot/pivot-utils/builders.js +34 -74
  99. package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
  100. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  101. package/es/table/style/index.less +1 -1
  102. package/es/table/transforms/autoRowSpan.js +1 -15
  103. package/es/table/transforms/autoWidth.js +13 -35
  104. package/es/table/transforms/buildTree.js +1 -2
  105. package/es/table/transforms/columnHover.js +9 -15
  106. package/es/table/transforms/columnRangeHover.js +12 -19
  107. package/es/table/transforms/columnResize.js +18 -42
  108. package/es/table/transforms/flatten.js +0 -3
  109. package/es/table/transforms/orderField.js +0 -3
  110. package/es/table/transforms/sort.js +42 -101
  111. package/es/table/transforms/tips.js +5 -10
  112. package/es/table/transforms/treeMode.js +36 -77
  113. package/es/table/transforms/visible.js +0 -2
  114. package/es/table/use/useResizeObserver.js +1 -4
  115. package/es/table/utils/applyTransforms.js +0 -1
  116. package/es/table/utils/browserType.js +12 -19
  117. package/es/table/utils/buildTree.js +7 -22
  118. package/es/table/utils/collectNodes.js +4 -13
  119. package/es/table/utils/console.js +0 -14
  120. package/es/table/utils/copyToClipboard.js +0 -4
  121. package/es/table/utils/element.js +14 -41
  122. package/es/table/utils/exportTableAsExcel.js +7 -43
  123. package/es/table/utils/getTreeDepth.js +4 -12
  124. package/es/table/utils/groupBy.js +4 -13
  125. package/es/table/utils/layeredFilter.js +0 -4
  126. package/es/table/utils/layeredSort.js +0 -5
  127. package/es/table/utils/makeRecursiveMapper.js +4 -15
  128. package/es/table/utils/mergeCellProps.js +6 -14
  129. package/es/table/utils/others.js +6 -19
  130. package/es/table/utils/proto.js +2 -30
  131. package/es/table/utils/smartCompare.js +4 -12
  132. package/es/table/utils/traverseColumn.js +5 -18
  133. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -30
  134. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
  135. package/es/table/utils/uiDegrade.js +0 -5
  136. package/lib/_utils/arrayUtil.js +2 -8
  137. package/lib/_utils/devwarning.js +0 -5
  138. package/lib/_utils/formatUtil.js +36 -105
  139. package/lib/_utils/hooks.js +21 -56
  140. package/lib/_utils/index.js +2 -9
  141. package/lib/_utils/numberUtil.js +32 -63
  142. package/lib/_utils/omit.js +0 -5
  143. package/lib/_utils/react-children.js +0 -5
  144. package/lib/_utils/type.js +3 -11
  145. package/lib/_utils/usePopper.js +86 -173
  146. package/lib/config-provider/ConfigContext.js +2 -6
  147. package/lib/config-provider/compDefaultProps.js +1 -3
  148. package/lib/config-provider/configProvider.js +6 -22
  149. package/lib/config-provider/defaultConfig.js +1 -7
  150. package/lib/config-provider/index.js +1 -8
  151. package/lib/index.js +2 -8
  152. package/lib/locale/index.js +3 -11
  153. package/lib/locale/locale.js +15 -71
  154. package/lib/locale/zh-CN.js +1 -2
  155. package/lib/style/color/colors.less +1 -1
  156. package/lib/style/components.less +1 -1
  157. package/lib/style/core/index.less +1 -1
  158. package/lib/style/core/motion/other.less +27 -27
  159. package/lib/style/core/motion/slide.less +53 -53
  160. package/lib/style/core/motion.less +1 -1
  161. package/lib/style/core/reset.less +185 -185
  162. package/lib/style/index.less +1 -1
  163. package/lib/style/mixins/index.less +18 -18
  164. package/lib/style/mixins/overlay.less +21 -21
  165. package/lib/style/mixins/reset.less +12 -12
  166. package/lib/style/themes/default.less +445 -445
  167. package/lib/table/base/calculations.js +25 -86
  168. package/lib/table/base/colgroup.js +0 -5
  169. package/lib/table/base/empty.js +8 -20
  170. package/lib/table/base/globalStyleComponent.d.ts +4 -0
  171. package/lib/table/base/globalStyleComponent.js +35 -0
  172. package/lib/table/base/header.js +21 -86
  173. package/lib/table/base/helpers/SpanManager.js +6 -16
  174. package/lib/table/base/helpers/TableDOMUtils.js +9 -37
  175. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  176. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  177. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  178. package/lib/table/base/helpers/getRichVisibleRectsStream.js +15 -65
  179. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  180. package/lib/table/base/html-table.js +17 -49
  181. package/lib/table/base/index.js +0 -2
  182. package/lib/table/base/loading.js +8 -14
  183. package/lib/table/base/renderTemplates.js +45 -76
  184. package/lib/table/base/styles.d.ts +10 -0
  185. package/lib/table/base/styles.js +24 -42
  186. package/lib/table/base/table.js +125 -245
  187. package/lib/table/base/utils.js +27 -109
  188. package/lib/table/common-views.js +4 -24
  189. package/lib/table/index.js +0 -13
  190. package/lib/table/interfaces.d.ts +38 -0
  191. package/lib/table/internals.js +2 -17
  192. package/lib/table/pipeline/const.d.ts +3 -0
  193. package/lib/table/pipeline/const.js +9 -0
  194. package/lib/table/pipeline/features/autoFill.js +14 -53
  195. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  196. package/lib/table/pipeline/features/buildTree.js +0 -2
  197. package/lib/table/pipeline/features/colGroupExtendable.js +6 -35
  198. package/lib/table/pipeline/features/columnDrag.js +41 -103
  199. package/lib/table/pipeline/features/columnFilter.js +12 -65
  200. package/lib/table/pipeline/features/columnHover.js +1 -11
  201. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  202. package/lib/table/pipeline/features/columnResizeWidth.js +18 -63
  203. package/lib/table/pipeline/features/contextMenu.js +24 -121
  204. package/lib/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  205. package/lib/table/pipeline/features/featureApi/RowDragApi.js +72 -0
  206. package/lib/table/pipeline/features/featureApi/utils.d.ts +2 -0
  207. package/lib/table/pipeline/features/featureApi/utils.js +17 -0
  208. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
  209. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  210. package/lib/table/pipeline/features/filter/Filter.js +30 -77
  211. package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
  212. package/lib/table/pipeline/features/filter/index.js +0 -5
  213. package/lib/table/pipeline/features/filter/util.js +2 -10
  214. package/lib/table/pipeline/features/footerDataSource.js +1 -12
  215. package/lib/table/pipeline/features/index.js +0 -23
  216. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  217. package/lib/table/pipeline/features/multiSelect.js +15 -71
  218. package/lib/table/pipeline/features/rangeSelection.js +75 -173
  219. package/lib/table/pipeline/features/rowDetail.js +4 -67
  220. package/lib/table/pipeline/features/rowDrag.d.ts +10 -12
  221. package/lib/table/pipeline/features/rowDrag.js +494 -252
  222. package/lib/table/pipeline/features/rowGrouping.js +4 -57
  223. package/lib/table/pipeline/features/singleSelect.js +0 -34
  224. package/lib/table/pipeline/features/sort.js +37 -115
  225. package/lib/table/pipeline/features/tips.js +4 -19
  226. package/lib/table/pipeline/features/treeMode.d.ts +1 -0
  227. package/lib/table/pipeline/features/treeMode.js +40 -80
  228. package/lib/table/pipeline/features/treeSelect.js +2 -36
  229. package/lib/table/pipeline/index.js +2 -10
  230. package/lib/table/pipeline/pipeline.d.ts +3 -0
  231. package/lib/table/pipeline/pipeline.js +36 -65
  232. package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
  233. package/lib/table/pivot/cross-table/constants.js +1 -2
  234. package/lib/table/pivot/cross-table/cross-table.js +25 -42
  235. package/lib/table/pivot/cross-table/index.js +0 -4
  236. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
  237. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +37 -73
  238. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  239. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  240. package/lib/table/pivot/pivot-utils/builders.js +34 -85
  241. package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
  242. package/lib/table/pivot/pivot-utils/index.js +0 -7
  243. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  244. package/lib/table/style/css.js +0 -1
  245. package/lib/table/style/index.js +0 -1
  246. package/lib/table/style/index.less +1 -1
  247. package/lib/table/transforms/autoRowSpan.js +1 -21
  248. package/lib/table/transforms/autoWidth.js +15 -58
  249. package/lib/table/transforms/buildTree.js +1 -4
  250. package/lib/table/transforms/columnHover.js +9 -22
  251. package/lib/table/transforms/columnRangeHover.js +12 -27
  252. package/lib/table/transforms/columnResize.js +20 -63
  253. package/lib/table/transforms/flatten.js +0 -5
  254. package/lib/table/transforms/index.js +0 -12
  255. package/lib/table/transforms/orderField.js +0 -7
  256. package/lib/table/transforms/sort.js +44 -127
  257. package/lib/table/transforms/tips.js +5 -20
  258. package/lib/table/transforms/treeMode.js +38 -106
  259. package/lib/table/transforms/visible.js +0 -7
  260. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  261. package/lib/table/use/useResizeObserver.js +2 -10
  262. package/lib/table/utils/applyTransforms.js +0 -2
  263. package/lib/table/utils/browserType.js +14 -23
  264. package/lib/table/utils/buildTree.js +7 -33
  265. package/lib/table/utils/collectNodes.js +4 -18
  266. package/lib/table/utils/console.js +2 -19
  267. package/lib/table/utils/copyToClipboard.js +1 -8
  268. package/lib/table/utils/element.js +14 -46
  269. package/lib/table/utils/exportTableAsExcel.js +7 -52
  270. package/lib/table/utils/getTreeDepth.js +4 -17
  271. package/lib/table/utils/groupBy.js +4 -17
  272. package/lib/table/utils/index.js +0 -22
  273. package/lib/table/utils/isGroupColumn.js +0 -3
  274. package/lib/table/utils/isLeafNode.js +0 -1
  275. package/lib/table/utils/keyCode.js +1 -2
  276. package/lib/table/utils/layeredFilter.js +0 -10
  277. package/lib/table/utils/layeredSort.js +0 -10
  278. package/lib/table/utils/makeRecursiveMapper.js +4 -24
  279. package/lib/table/utils/mergeCellProps.js +6 -18
  280. package/lib/table/utils/others.js +7 -36
  281. package/lib/table/utils/proto.js +3 -35
  282. package/lib/table/utils/selectColumn.js +2 -5
  283. package/lib/table/utils/smartCompare.js +4 -13
  284. package/lib/table/utils/traverseColumn.js +5 -25
  285. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +10 -41
  286. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
  287. package/lib/table/utils/uiDegrade.js +1 -8
  288. package/package.json +218 -218
@@ -1,85 +1,59 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
-
5
4
  var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
-
9
6
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
-
11
7
  Object.defineProperty(exports, "__esModule", {
12
8
  value: true
13
9
  });
14
10
  exports.contextMenu = contextMenu;
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
17
-
18
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
19
-
20
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
21
-
22
14
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
23
-
24
15
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
25
-
26
16
  var _react = _interopRequireWildcard(require("react"));
27
-
28
17
  var _reactDom = _interopRequireDefault(require("react-dom"));
29
-
30
18
  var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
19
  var _commonViews = require("../../common-views");
33
-
34
20
  var _utils = require("../../utils");
35
-
36
21
  var _others = require("../../utils/others");
37
-
38
22
  var _internals = require("../../internals");
39
-
40
23
  var _styles = require("../../base/styles");
41
-
42
- function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
-
44
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
-
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
46
26
  function contextMenu() {
47
27
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
28
  return function step(pipeline) {
49
29
  var popupParent = opts.popupParent || document.body;
50
30
  var menuClassName = opts.menuClassName;
51
31
  var menuHelper = new MenuHelper();
52
-
53
32
  var addPopup = function addPopup(menu) {
54
33
  var ePopupDiv = document.createElement('div');
55
34
  ePopupDiv.setAttribute('class', 'kd-table-popup');
56
35
  popupParent.appendChild(ePopupDiv);
57
36
  var popupHidden = false;
58
37
  var eventList = ['mousedown', 'contextmenu'];
59
-
60
- var hidePopup = function hidePopup(event) {
38
+ var _hidePopup2 = function hidePopup(event) {
61
39
  if (isEventFromCurrentPopup(event, ePopupDiv) || popupHidden) {
62
40
  return;
63
41
  }
64
-
65
42
  popupHidden = true;
66
43
  popupParent.removeChild(ePopupDiv);
67
44
  eventList.forEach(function (eventType) {
68
- window.removeEventListener(eventType, hidePopup, true);
45
+ window.removeEventListener(eventType, _hidePopup2, true);
69
46
  });
70
47
  };
71
-
72
48
  _reactDom.default.render(menu, ePopupDiv, function () {
73
49
  setTimeout(function () {
74
50
  eventList.forEach(function (eventType) {
75
- window.addEventListener(eventType, hidePopup, true);
51
+ window.addEventListener(eventType, _hidePopup2, true);
76
52
  });
77
53
  }, 0);
78
54
  });
79
-
80
- return hidePopup;
55
+ return _hidePopup2;
81
56
  };
82
-
83
57
  var onContextMenu = function onContextMenu(e) {
84
58
  if (canShowContextMenu(e, pipeline)) {
85
59
  e.preventDefault();
@@ -87,18 +61,14 @@ function contextMenu() {
87
61
  showContextMenu(e);
88
62
  }
89
63
  };
90
-
91
64
  pipeline.addTableProps({
92
65
  onContextMenu: onContextMenu
93
66
  });
94
-
95
67
  var getContextMenuOptions = function getContextMenuOptions(record, column, value, event) {
96
68
  var defaultMenuOptions = [];
97
-
98
69
  if (column) {
99
70
  defaultMenuOptions.push(getCopyItem(value));
100
71
  }
101
-
102
72
  if (opts.getContextMenuItems) {
103
73
  var params = {
104
74
  record: record,
@@ -108,25 +78,20 @@ function contextMenu() {
108
78
  };
109
79
  return opts.getContextMenuItems(params);
110
80
  }
111
-
112
81
  return defaultMenuOptions;
113
82
  };
114
-
115
83
  var hideContextMenu = function hideContextMenu() {
116
84
  menuHelper.destroy();
117
85
  };
118
-
119
86
  var getPopupParent = function getPopupParent() {
120
87
  return popupParent;
121
88
  };
122
-
123
89
  var showContextMenu = function showContextMenu(e) {
124
90
  var path = (0, _utils.getEventPath)(e);
125
91
  var cellEle = getCellEleInEventPath(path);
126
92
  var code;
127
93
  var rowIndex;
128
94
  var isInFooter;
129
-
130
95
  if (cellEle) {
131
96
  code = cellEle.getAttribute('data-code');
132
97
  rowIndex = cellEle.getAttribute('data-rowindex');
@@ -136,25 +101,18 @@ function contextMenu() {
136
101
  rowIndex = rowEle === null || rowEle === void 0 ? void 0 : rowEle.getAttribute('data-rowindex');
137
102
  isInFooter = isElementInsideTheFooter(rowEle);
138
103
  }
139
-
140
104
  var dataSource = isInFooter ? pipeline.getFooterDataSource() || [] : pipeline.getDataSource();
141
105
  var record = dataSource[rowIndex];
142
106
  var column = code !== undefined && (0, _others.findByTree)(pipeline.getColumns(), function (item) {
143
107
  return item.code === code;
144
108
  });
145
-
146
109
  var value = column && record && _internals.internals.safeGetValue(column, record, rowIndex);
147
-
148
110
  var options = getContextMenuOptions(record, column, value, e);
149
-
150
111
  if (options.length === 0) {
151
112
  _utils.console.warn('context menu options is empty');
152
-
153
113
  return;
154
114
  }
155
-
156
115
  var position = positionForMenu(e, popupParent);
157
-
158
116
  var menu = /*#__PURE__*/_react.default.createElement(Menu, {
159
117
  options: options,
160
118
  hideContextMenu: hideContextMenu,
@@ -162,54 +120,42 @@ function contextMenu() {
162
120
  getPopupParent: getPopupParent,
163
121
  className: menuClassName
164
122
  });
165
-
166
123
  var _hidePopup = addPopup(menu);
167
-
168
124
  menuHelper.init(_hidePopup);
169
125
  };
170
-
171
126
  return pipeline;
172
127
  };
173
128
  }
174
-
175
129
  function getMenuItemKey(_ref) {
176
130
  var name = _ref.name,
177
- index = _ref.index;
178
-
131
+ index = _ref.index;
179
132
  if (name) {
180
133
  var _context;
181
-
182
134
  var _key = 0;
183
135
  name = name + '';
184
-
185
136
  for (var i = 0; i < name.length; i++) {
186
137
  _key += name.charCodeAt(name[i]);
187
138
  }
188
-
189
139
  return (0, _concat.default)(_context = "".concat(_key, "_")).call(_context, index);
190
140
  }
191
-
192
141
  return index;
193
142
  }
194
-
195
143
  function Menu(props) {
196
144
  var className = props.className,
197
- _props$options = props.options,
198
- options = _props$options === void 0 ? [] : _props$options,
199
- hideContextMenu = props.hideContextMenu,
200
- position = props.position,
201
- getPopupParent = props.getPopupParent;
145
+ _props$options = props.options,
146
+ options = _props$options === void 0 ? [] : _props$options,
147
+ hideContextMenu = props.hideContextMenu,
148
+ position = props.position,
149
+ getPopupParent = props.getPopupParent;
202
150
  var menuRef = (0, _react.useRef)();
203
151
  (0, _react.useEffect)(function () {
204
152
  if (menuRef.current) {
205
153
  var popupParent = getPopupParent();
206
154
  var x = position.x,
207
- y = position.y;
208
-
155
+ y = position.y;
209
156
  var _keepWithinBounds = keepWithinBounds(popupParent, menuRef.current, x, y),
210
- _x = _keepWithinBounds.x,
211
- _y = _keepWithinBounds.y;
212
-
157
+ _x = _keepWithinBounds.x,
158
+ _y = _keepWithinBounds.y;
213
159
  menuRef.current.style.left = _x + 'px';
214
160
  menuRef.current.style.top = _y + 'px';
215
161
  }
@@ -237,50 +183,40 @@ function Menu(props) {
237
183
  });
238
184
  })));
239
185
  }
240
-
241
186
  function MenuItem(props) {
242
187
  var name = props.name,
243
- action = props.action,
244
- className = props.className,
245
- disabled = props.disabled,
246
- hideContextMenu = props.hideContextMenu;
188
+ action = props.action,
189
+ className = props.className,
190
+ disabled = props.disabled,
191
+ hideContextMenu = props.hideContextMenu;
247
192
  var itemRef = (0, _react.useRef)();
248
-
249
193
  var handleClick = function handleClick() {
250
194
  if (disabled) {
251
195
  return;
252
196
  }
253
-
254
197
  hideContextMenu();
255
198
  typeof action === 'function' && action();
256
199
  };
257
-
258
200
  var handleMouseEnter = function handleMouseEnter(e) {
259
201
  if (disabled) {
260
202
  return;
261
203
  }
262
-
263
204
  var itemDom = itemRef.current;
264
-
265
205
  if (itemDom) {
266
206
  itemDom.classList.add(_styles.MenuClasses.menuOptionActive);
267
207
  }
268
208
  };
269
-
270
209
  var handleMouseLeave = function handleMouseLeave(e) {
271
210
  if (disabled) {
272
211
  return;
273
212
  }
274
-
275
213
  var itemDom = itemRef.current;
276
-
277
214
  if (itemDom) {
278
215
  setTimeout(function () {
279
216
  itemDom.classList.remove(_styles.MenuClasses.menuOptionActive);
280
217
  }, 10);
281
218
  }
282
219
  };
283
-
284
220
  return /*#__PURE__*/_react.default.createElement("div", {
285
221
  className: (0, _classnames.default)(_styles.MenuClasses.menuOption, className, (0, _defineProperty2.default)({}, _styles.MenuClasses.menuOptionDisable, disabled)),
286
222
  ref: itemRef,
@@ -291,39 +227,29 @@ function MenuItem(props) {
291
227
  className: _styles.MenuClasses.menuOptionText
292
228
  }, name));
293
229
  }
294
-
295
230
  var MenuHelper = /*#__PURE__*/(0, _createClass2.default)(function MenuHelper() {
296
231
  var _this = this;
297
-
298
232
  (0, _classCallCheck2.default)(this, MenuHelper);
299
-
300
233
  this.init = function (hidePopup) {
301
234
  _this.hidePopup = hidePopup;
302
235
  };
303
-
304
236
  this.destroy = function () {
305
237
  _this.hidePopup && _this.hidePopup();
306
238
  _this.hidePopup = null;
307
239
  };
308
240
  });
309
241
  /** 是否点击是外部 start */
310
-
311
242
  function isEventFromCurrentPopup(event, ele) {
312
243
  if (!event || !ele) {
313
244
  return false;
314
245
  }
315
-
316
246
  if ((0, _utils.isElementInEventPath)(ele, event)) {
317
247
  return true;
318
248
  }
319
-
320
249
  return false;
321
250
  }
322
251
  /** 是否点击是外部 end */
323
-
324
252
  /** 计算位置 start */
325
-
326
-
327
253
  function calculatePointerRelative(event, popupParent) {
328
254
  var parentRect = popupParent.getBoundingClientRect();
329
255
  var documentRect = document.documentElement.getBoundingClientRect();
@@ -332,31 +258,25 @@ function calculatePointerRelative(event, popupParent) {
332
258
  y: event.clientY - (popupParent === document.body ? documentRect.top : parentRect.top)
333
259
  };
334
260
  }
335
-
336
261
  function positionForMenu(event, popupParent, params) {
337
262
  var _calculatePointerRela = calculatePointerRelative(event, popupParent),
338
- x = _calculatePointerRela.x,
339
- y = _calculatePointerRela.y;
340
-
263
+ x = _calculatePointerRela.x,
264
+ y = _calculatePointerRela.y;
341
265
  if (params) {
342
266
  var offsetX = params.offsetX,
343
- offsetY = params.offsetY;
344
-
267
+ offsetY = params.offsetY;
345
268
  if (offsetX) {
346
269
  x -= offsetX;
347
270
  }
348
-
349
271
  if (offsetY) {
350
272
  y -= offsetY;
351
273
  }
352
274
  }
353
-
354
275
  return {
355
276
  x: x,
356
277
  y: y
357
278
  };
358
279
  }
359
-
360
280
  function keepWithinBounds(popupParent, ePopup, x, y) {
361
281
  var parentRect = popupParent.getBoundingClientRect();
362
282
  var docElement = document.documentElement;
@@ -364,75 +284,58 @@ function keepWithinBounds(popupParent, ePopup, x, y) {
364
284
  var ePopupRect = ePopup.getBoundingClientRect();
365
285
  var parentWidth = parentRect.width;
366
286
  var parentHeight = parentRect.height;
367
-
368
287
  if (popupParent === document.body) {
369
288
  parentWidth = documentRect.width;
370
289
  parentWidth -= Math.abs(documentRect.left - parentRect.left);
371
290
  parentHeight = documentRect.height + docElement.scrollTop;
372
291
  parentHeight -= Math.abs(documentRect.top - parentRect.top);
373
292
  }
374
-
375
293
  if (x) {
376
294
  var minWidth = Math.min(ePopupRect.width, 120);
377
295
  ePopup.style.minWidth = minWidth + 'px';
378
296
  var maxX = parentWidth - minWidth;
379
297
  x = Math.min(Math.max(x, 0), Math.abs(maxX)); // 目前位置,最大支持的位置
380
298
  }
381
-
382
299
  if (y) {
383
300
  var maxY = parentHeight - ePopupRect.height;
384
301
  y = Math.min(Math.max(y, 0), Math.abs(maxY)); // 目前位置,最大支持的位置
385
302
  }
386
-
387
303
  return {
388
304
  x: x,
389
305
  y: y
390
306
  };
391
307
  }
392
308
  /** 计算位置 end */
393
-
394
309
  /** 获得点击的元素 start */
395
-
396
-
397
310
  function getCellEleInEventPath(path) {
398
311
  return (0, _utils.getTargetEleInEventPath)(path, function (ele) {
399
312
  return ele && ele.getAttribute('data-role') === 'table-cell';
400
313
  });
401
314
  }
402
-
403
315
  function getRowEleInEventPath(path) {
404
316
  return (0, _utils.getTargetEleInEventPath)(path, function (ele) {
405
317
  return ele && ele.getAttribute('data-role') === 'table-row';
406
318
  });
407
319
  }
408
320
  /** 获得点击的元素 end */
409
-
410
-
411
321
  function isElementInsideTheFooter(ele) {
412
322
  var pointer = ele;
413
-
414
323
  while (pointer) {
415
324
  if (pointer.tagName === 'TFOOT') {
416
325
  return true;
417
326
  }
418
-
419
327
  if (pointer.tagName === 'TABLE' || pointer.tagName === 'TBODY') {
420
328
  return false;
421
329
  }
422
-
423
330
  pointer = pointer.parentElement;
424
331
  }
425
-
426
332
  return false;
427
333
  }
428
-
429
334
  function canShowContextMenu(e, pipeline) {
430
335
  var _a, _b;
431
-
432
336
  return ((_a = pipeline.ref.current.domHelper) === null || _a === void 0 ? void 0 : _a.tableBody.contains(e.target)) || ((_b = pipeline.ref.current.domHelper) === null || _b === void 0 ? void 0 : _b.tableFooter.contains(e.target));
433
- } // 默认选项
434
-
435
-
337
+ }
338
+ // 默认选项
436
339
  function getCopyItem(v) {
437
340
  return {
438
341
  name: '复制',
@@ -0,0 +1,15 @@
1
+ import { RowDropZoneParams } from '../../../interfaces';
2
+ export default class RowDragApi {
3
+ private pipeline;
4
+ private rowDropZoneParams;
5
+ private rowDropZones;
6
+ private dragStatus;
7
+ constructor(pipeline: any);
8
+ getRowDropZoneParams(): RowDropZoneParams;
9
+ setRowDropZoneParams(params: any): void;
10
+ addRowDropZone(rowDropZone: any): void;
11
+ getRowDropZone(): RowDropZoneParams[];
12
+ removeRowDropZone(rowDropZone: any): void;
13
+ private setDragStatus;
14
+ private getDragStatus;
15
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
11
+ var ROW_DRAG_STATUS = 'rowDragStatus';
12
+ var RowDragApi = exports.default = /*#__PURE__*/function () {
13
+ function RowDragApi(pipeline) {
14
+ (0, _classCallCheck2.default)(this, RowDragApi);
15
+ this.pipeline = pipeline;
16
+ this.rowDropZoneParams = null;
17
+ this.rowDropZones = [];
18
+ this.dragStatus = 'finished';
19
+ }
20
+ return (0, _createClass2.default)(RowDragApi, [{
21
+ key: "getRowDropZoneParams",
22
+ value: function getRowDropZoneParams() {
23
+ return this.rowDropZoneParams;
24
+ }
25
+ }, {
26
+ key: "setRowDropZoneParams",
27
+ value: function setRowDropZoneParams(params) {
28
+ this.rowDropZoneParams = params;
29
+ }
30
+ }, {
31
+ key: "addRowDropZone",
32
+ value: function addRowDropZone(rowDropZone) {
33
+ if (!rowDropZone || !(rowDropZone === null || rowDropZone === void 0 ? void 0 : rowDropZone.getContainer())) {
34
+ return;
35
+ }
36
+ var isExist = this.rowDropZones.some(function (zone) {
37
+ return zone.getContainer() === rowDropZone.getContainer();
38
+ });
39
+ if (isExist) {
40
+ return;
41
+ }
42
+ this.rowDropZones.push(rowDropZone);
43
+ }
44
+ }, {
45
+ key: "getRowDropZone",
46
+ value: function getRowDropZone() {
47
+ return this.rowDropZones;
48
+ }
49
+ }, {
50
+ key: "removeRowDropZone",
51
+ value: function removeRowDropZone(rowDropZone) {
52
+ var _context;
53
+ this.rowDropZones = (0, _filter.default)(_context = this.rowDropZones).call(_context, function (zone) {
54
+ return zone.getContainer() !== rowDropZone.getContainer();
55
+ });
56
+ }
57
+ }, {
58
+ key: "setDragStatus",
59
+ value: function setDragStatus(status) {
60
+ var currentStatus = this.dragStatus;
61
+ this.dragStatus = status;
62
+ if (currentStatus !== status) {
63
+ this.pipeline.setStateAtKey(ROW_DRAG_STATUS, status);
64
+ }
65
+ }
66
+ }, {
67
+ key: "getDragStatus",
68
+ value: function getDragStatus() {
69
+ return this.dragStatus;
70
+ }
71
+ }]);
72
+ }();
@@ -0,0 +1,2 @@
1
+ import RowDragApi from './RowDragApi';
2
+ export declare function createFeatureApi(type: any, pipeline: any): RowDragApi;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createFeatureApi = createFeatureApi;
8
+ var _RowDragApi = _interopRequireDefault(require("./RowDragApi"));
9
+ var _const = require("../../const");
10
+ function createFeatureApi(type, pipeline) {
11
+ switch (type) {
12
+ case _const.FeatureName.rowDrag:
13
+ return new _RowDragApi.default(pipeline);
14
+ default:
15
+ break;
16
+ }
17
+ }