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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/@kdcloudjs/table.css +1 -1
  2. package/dist/@kdcloudjs/table.js +2047 -3489
  3. package/dist/@kdcloudjs/table.js.map +1 -1
  4. package/dist/@kdcloudjs/table.min.css +1 -1
  5. package/dist/@kdcloudjs/table.min.js +16 -16
  6. package/dist/@kdcloudjs/table.min.js.map +1 -1
  7. package/es/_utils/arrayUtil.js +0 -3
  8. package/es/_utils/devwarning.js +0 -1
  9. package/es/_utils/formatUtil.js +35 -96
  10. package/es/_utils/hooks.js +18 -42
  11. package/es/_utils/index.js +0 -2
  12. package/es/_utils/numberUtil.js +32 -55
  13. package/es/_utils/omit.js +0 -2
  14. package/es/_utils/type.js +0 -2
  15. package/es/_utils/usePopper.js +74 -137
  16. package/es/config-provider/compDefaultProps.js +0 -1
  17. package/es/config-provider/configProvider.js +2 -7
  18. package/es/config-provider/defaultConfig.js +0 -1
  19. package/es/index.js +0 -2
  20. package/es/locale/locale.js +5 -43
  21. package/es/table/base/calculations.js +22 -72
  22. package/es/table/base/colgroup.js +0 -1
  23. package/es/table/base/empty.js +4 -4
  24. package/es/table/base/header.js +14 -67
  25. package/es/table/base/helpers/SpanManager.js +3 -9
  26. package/es/table/base/helpers/TableDOMUtils.js +4 -27
  27. package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
  28. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
  29. package/es/table/base/helpers/getRichVisibleRectsStream.js +11 -44
  30. package/es/table/base/helpers/rowHeightManager.js +0 -28
  31. package/es/table/base/html-table.js +14 -35
  32. package/es/table/base/loading.js +6 -8
  33. package/es/table/base/renderTemplates.js +26 -44
  34. package/es/table/base/styles.js +0 -9
  35. package/es/table/base/table.js +95 -181
  36. package/es/table/base/utils.js +14 -54
  37. package/es/table/common-views.js +0 -7
  38. package/es/table/internals.js +0 -13
  39. package/es/table/pipeline/features/autoFill.js +11 -40
  40. package/es/table/pipeline/features/autoRowSpan.js +1 -14
  41. package/es/table/pipeline/features/colGroupExtendable.js +4 -19
  42. package/es/table/pipeline/features/columnDrag.d.ts +1 -0
  43. package/es/table/pipeline/features/columnDrag.js +236 -303
  44. package/es/table/pipeline/features/columnFilter.js +11 -48
  45. package/es/table/pipeline/features/columnHover.js +1 -7
  46. package/es/table/pipeline/features/columnRangeHover.js +1 -8
  47. package/es/table/pipeline/features/columnResizeWidth.js +51 -42
  48. package/es/table/pipeline/features/contextMenu.js +18 -89
  49. package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
  50. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
  51. package/es/table/pipeline/features/filter/Filter.js +25 -48
  52. package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
  53. package/es/table/pipeline/features/filter/util.js +0 -4
  54. package/es/table/pipeline/features/footerDataSource.js +0 -3
  55. package/es/table/pipeline/features/mergeCellHover.js +0 -1
  56. package/es/table/pipeline/features/multiSelect.js +15 -57
  57. package/es/table/pipeline/features/rangeSelection.js +63 -142
  58. package/es/table/pipeline/features/rowDetail.js +2 -41
  59. package/es/table/pipeline/features/rowDrag.js +36 -71
  60. package/es/table/pipeline/features/rowGrouping.js +2 -35
  61. package/es/table/pipeline/features/singleSelect.js +0 -24
  62. package/es/table/pipeline/features/sort.js +31 -83
  63. package/es/table/pipeline/features/tips.js +0 -6
  64. package/es/table/pipeline/features/treeMode.js +9 -44
  65. package/es/table/pipeline/features/treeSelect.js +0 -26
  66. package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
  67. package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
  68. package/es/table/pipeline/pipeline.js +11 -51
  69. package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
  70. package/es/table/pivot/cross-table/cross-table.js +22 -28
  71. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
  72. package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
  73. package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
  74. package/es/table/pivot/pivot-utils/builders.js +31 -71
  75. package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
  76. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
  77. package/es/table/transforms/autoRowSpan.js +1 -15
  78. package/es/table/transforms/autoWidth.js +10 -32
  79. package/es/table/transforms/buildTree.js +1 -2
  80. package/es/table/transforms/columnHover.js +9 -15
  81. package/es/table/transforms/columnRangeHover.js +12 -19
  82. package/es/table/transforms/columnResize.js +15 -37
  83. package/es/table/transforms/flatten.js +0 -3
  84. package/es/table/transforms/orderField.js +0 -3
  85. package/es/table/transforms/sort.js +36 -88
  86. package/es/table/transforms/tips.js +1 -6
  87. package/es/table/transforms/treeMode.js +30 -69
  88. package/es/table/transforms/visible.js +0 -2
  89. package/es/table/use/useResizeObserver.js +1 -4
  90. package/es/table/utils/applyTransforms.js +0 -1
  91. package/es/table/utils/buildTree.js +4 -19
  92. package/es/table/utils/collectNodes.js +1 -10
  93. package/es/table/utils/console.js +0 -14
  94. package/es/table/utils/copyToClipboard.js +0 -4
  95. package/es/table/utils/element.js +14 -41
  96. package/es/table/utils/exportTableAsExcel.js +4 -40
  97. package/es/table/utils/getTreeDepth.js +1 -9
  98. package/es/table/utils/groupBy.js +1 -10
  99. package/es/table/utils/layeredFilter.js +0 -4
  100. package/es/table/utils/layeredSort.js +0 -5
  101. package/es/table/utils/makeRecursiveMapper.js +1 -12
  102. package/es/table/utils/mergeCellProps.js +6 -13
  103. package/es/table/utils/others.js +3 -16
  104. package/es/table/utils/proto.js +2 -30
  105. package/es/table/utils/smartCompare.js +4 -12
  106. package/es/table/utils/traverseColumn.js +2 -15
  107. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
  108. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
  109. package/lib/_utils/arrayUtil.js +0 -5
  110. package/lib/_utils/devwarning.js +0 -5
  111. package/lib/_utils/formatUtil.js +35 -100
  112. package/lib/_utils/hooks.js +18 -53
  113. package/lib/_utils/index.js +0 -6
  114. package/lib/_utils/numberUtil.js +32 -63
  115. package/lib/_utils/omit.js +0 -5
  116. package/lib/_utils/react-children.js +0 -5
  117. package/lib/_utils/type.js +0 -6
  118. package/lib/_utils/usePopper.js +74 -158
  119. package/lib/config-provider/ConfigContext.js +1 -4
  120. package/lib/config-provider/compDefaultProps.js +0 -1
  121. package/lib/config-provider/configProvider.js +3 -18
  122. package/lib/config-provider/defaultConfig.js +0 -5
  123. package/lib/config-provider/index.js +0 -6
  124. package/lib/index.js +2 -8
  125. package/lib/locale/index.js +0 -7
  126. package/lib/locale/locale.js +5 -57
  127. package/lib/table/base/calculations.js +22 -83
  128. package/lib/table/base/colgroup.js +0 -5
  129. package/lib/table/base/empty.js +4 -16
  130. package/lib/table/base/header.js +14 -77
  131. package/lib/table/base/helpers/SpanManager.js +3 -11
  132. package/lib/table/base/helpers/TableDOMUtils.js +2 -27
  133. package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
  134. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
  135. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
  136. package/lib/table/base/helpers/getRichVisibleRectsStream.js +11 -62
  137. package/lib/table/base/helpers/rowHeightManager.js +0 -33
  138. package/lib/table/base/html-table.js +14 -45
  139. package/lib/table/base/index.js +0 -2
  140. package/lib/table/base/loading.js +6 -12
  141. package/lib/table/base/renderTemplates.js +27 -58
  142. package/lib/table/base/styles.js +0 -21
  143. package/lib/table/base/table.js +95 -214
  144. package/lib/table/base/utils.js +14 -89
  145. package/lib/table/common-views.js +0 -16
  146. package/lib/table/index.js +0 -13
  147. package/lib/table/internals.js +0 -14
  148. package/lib/table/pipeline/features/autoFill.js +11 -47
  149. package/lib/table/pipeline/features/autoRowSpan.js +1 -19
  150. package/lib/table/pipeline/features/buildTree.js +0 -2
  151. package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
  152. package/lib/table/pipeline/features/columnDrag.d.ts +1 -0
  153. package/lib/table/pipeline/features/columnDrag.js +236 -309
  154. package/lib/table/pipeline/features/columnFilter.js +11 -62
  155. package/lib/table/pipeline/features/columnHover.js +1 -11
  156. package/lib/table/pipeline/features/columnRangeHover.js +1 -13
  157. package/lib/table/pipeline/features/columnResizeWidth.js +51 -58
  158. package/lib/table/pipeline/features/contextMenu.js +18 -113
  159. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
  160. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
  161. package/lib/table/pipeline/features/filter/Filter.js +25 -70
  162. package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
  163. package/lib/table/pipeline/features/filter/index.js +0 -5
  164. package/lib/table/pipeline/features/filter/util.js +0 -7
  165. package/lib/table/pipeline/features/footerDataSource.js +0 -10
  166. package/lib/table/pipeline/features/index.js +0 -23
  167. package/lib/table/pipeline/features/mergeCellHover.js +0 -5
  168. package/lib/table/pipeline/features/multiSelect.js +15 -71
  169. package/lib/table/pipeline/features/rangeSelection.js +63 -159
  170. package/lib/table/pipeline/features/rowDetail.js +2 -65
  171. package/lib/table/pipeline/features/rowDrag.js +36 -81
  172. package/lib/table/pipeline/features/rowGrouping.js +2 -55
  173. package/lib/table/pipeline/features/singleSelect.js +0 -34
  174. package/lib/table/pipeline/features/sort.js +31 -103
  175. package/lib/table/pipeline/features/tips.js +0 -15
  176. package/lib/table/pipeline/features/treeMode.js +9 -65
  177. package/lib/table/pipeline/features/treeSelect.js +0 -34
  178. package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
  179. package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
  180. package/lib/table/pipeline/index.js +0 -8
  181. package/lib/table/pipeline/pipeline.js +11 -60
  182. package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
  183. package/lib/table/pivot/cross-table/cross-table.js +22 -36
  184. package/lib/table/pivot/cross-table/index.js +0 -4
  185. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
  186. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
  187. package/lib/table/pivot/cross-tree-table/index.js +0 -3
  188. package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
  189. package/lib/table/pivot/pivot-utils/builders.js +31 -82
  190. package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
  191. package/lib/table/pivot/pivot-utils/index.js +0 -7
  192. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
  193. package/lib/table/style/css.js +0 -1
  194. package/lib/table/style/index.js +0 -1
  195. package/lib/table/transforms/autoRowSpan.js +1 -21
  196. package/lib/table/transforms/autoWidth.js +10 -53
  197. package/lib/table/transforms/buildTree.js +1 -4
  198. package/lib/table/transforms/columnHover.js +9 -22
  199. package/lib/table/transforms/columnRangeHover.js +12 -27
  200. package/lib/table/transforms/columnResize.js +15 -56
  201. package/lib/table/transforms/flatten.js +0 -5
  202. package/lib/table/transforms/index.js +0 -12
  203. package/lib/table/transforms/orderField.js +0 -7
  204. package/lib/table/transforms/sort.js +36 -112
  205. package/lib/table/transforms/tips.js +1 -16
  206. package/lib/table/transforms/treeMode.js +30 -96
  207. package/lib/table/transforms/visible.js +0 -7
  208. package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
  209. package/lib/table/use/useResizeObserver.js +1 -8
  210. package/lib/table/utils/applyTransforms.js +0 -2
  211. package/lib/table/utils/buildTree.js +4 -30
  212. package/lib/table/utils/collectNodes.js +1 -15
  213. package/lib/table/utils/console.js +0 -16
  214. package/lib/table/utils/copyToClipboard.js +0 -6
  215. package/lib/table/utils/element.js +14 -46
  216. package/lib/table/utils/exportTableAsExcel.js +4 -49
  217. package/lib/table/utils/getTreeDepth.js +1 -14
  218. package/lib/table/utils/groupBy.js +1 -14
  219. package/lib/table/utils/index.js +0 -21
  220. package/lib/table/utils/isGroupColumn.js +0 -3
  221. package/lib/table/utils/isLeafNode.js +0 -1
  222. package/lib/table/utils/layeredFilter.js +0 -10
  223. package/lib/table/utils/layeredSort.js +0 -10
  224. package/lib/table/utils/makeRecursiveMapper.js +1 -21
  225. package/lib/table/utils/mergeCellProps.js +6 -17
  226. package/lib/table/utils/others.js +3 -31
  227. package/lib/table/utils/proto.js +2 -33
  228. package/lib/table/utils/selectColumn.js +0 -1
  229. package/lib/table/utils/smartCompare.js +4 -13
  230. package/lib/table/utils/traverseColumn.js +2 -22
  231. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
  232. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
  233. package/package.json +2 -1
@@ -1,46 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.tips = tips;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _react = _interopRequireDefault(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
-
18
12
  var _commonViews = require("../../common-views");
19
-
20
13
  var _internals = require("../../internals");
21
-
22
14
  var _utils = require("../../utils");
23
-
24
15
  var _templateObject;
25
-
26
16
  var HeaderCellWithTips = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n align-items: center;\n\n .tip-icon-wrapper {\n margin-left: 2px;\n }\n\n .tip-icon {\n display: flex;\n fill: currentColor;\n }\n"])));
27
-
28
17
  function tips() {
29
18
  return function tipsSteap(pipeline) {
30
19
  var Balloon = pipeline.ctx.components.Balloon;
31
20
  var Tooltip = pipeline.ctx.components.Tooltip;
32
-
33
21
  if (Balloon == null && Tooltip == null) {
34
22
  throw new Error('使用 tips 之前需要通过 pipeline context 设置 components.Balloon / components.Tooltip');
35
23
  }
36
-
37
24
  return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
38
25
  var _a;
39
-
40
26
  if (!((_a = col.features) === null || _a === void 0 ? void 0 : _a.tips)) {
41
27
  return col;
42
28
  }
43
-
44
29
  var justifyContent = col.align === 'right' ? 'flex-end' : col.align === 'center' ? 'center' : 'flex-start';
45
30
  return (0, _extends2.default)((0, _extends2.default)({}, col), {
46
31
  title: /*#__PURE__*/_react.default.createElement(HeaderCellWithTips, {
@@ -1,128 +1,90 @@
1
1
  "use strict";
2
2
 
3
3
  var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
4
-
5
4
  var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
6
-
7
5
  var _Symbol2 = require("@babel/runtime-corejs3/core-js-stable/symbol");
8
-
9
6
  var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
10
-
11
7
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
-
13
8
  Object.defineProperty(exports, "__esModule", {
14
9
  value: true
15
10
  });
16
11
  exports.treeMetaSymbol = void 0;
17
12
  exports.treeMode = treeMode;
18
-
19
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
20
-
21
14
  var _extends3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
22
-
23
15
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
24
-
25
16
  var _symbol = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/symbol"));
26
-
27
17
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
28
-
29
18
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
30
-
31
19
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
32
-
33
20
  var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
34
-
35
21
  var _classnames = _interopRequireDefault(require("classnames"));
36
-
37
22
  var _react = _interopRequireDefault(require("react"));
38
-
39
23
  var _commonViews = require("../../common-views");
40
-
41
24
  var _internals = require("../../internals");
42
-
43
25
  var _utils = require("../../utils");
44
-
45
26
  var _styles = require("../../base/styles");
46
-
47
27
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol2 !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
48
-
49
28
  function _unsupportedIterableToArray(o, minLen) { var _context2; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context2 = Object.prototype.toString.call(o)).call(_context2, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
50
-
51
29
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
52
-
53
30
  var treeMetaSymbol = (0, _symbol.default)('treeMetaSymbol');
54
31
  exports.treeMetaSymbol = treeMetaSymbol;
55
-
56
32
  function treeMode() {
57
33
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
34
  return function treeModeStep(pipeline) {
59
35
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
60
-
61
36
  var stateKey = 'treeMode';
62
37
  var ctx = pipeline.ctx;
63
38
  var primaryKey = pipeline.ensurePrimaryKey('treeMode');
64
39
  var openKeys = (_c = (_b = (_a = opts.openKeys) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : opts.defaultOpenKeys) !== null && _c !== void 0 ? _c : [];
65
40
  var openKeySet = new _set.default(openKeys);
66
-
67
41
  var onChangeOpenKeys = function onChangeOpenKeys(nextKeys, key, action) {
68
42
  var _a;
69
-
70
43
  (_a = opts.onChangeOpenKeys) === null || _a === void 0 ? void 0 : _a.call(opts, nextKeys, key, action);
71
44
  pipeline.setStateAtKey(stateKey, nextKeys, {
72
45
  key: key,
73
46
  action: action
74
47
  });
75
48
  };
76
-
77
49
  var toggle = function toggle(rowKey) {
78
50
  var expanded = openKeySet.has(rowKey);
79
-
80
51
  if (expanded) {
81
52
  onChangeOpenKeys((0, _filter.default)(openKeys).call(openKeys, function (key) {
82
53
  return key !== rowKey;
83
54
  }), rowKey, 'collapse');
84
55
  } else {
85
56
  var _context;
86
-
87
57
  onChangeOpenKeys((0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)(openKeys), [rowKey]), rowKey, 'expand');
88
58
  }
89
59
  };
90
-
91
60
  var isLeafNode = (_d = opts.isLeafNode) !== null && _d !== void 0 ? _d : _utils.isLeafNode;
92
61
  var clickArea = (_e = opts.clickArea) !== null && _e !== void 0 ? _e : 'cell';
93
62
  var treeMetaKey = (_f = opts.treeMetaKey) !== null && _f !== void 0 ? _f : treeMetaSymbol;
94
- var stopClickEventPropagation = Boolean(opts.stopClickEventPropagation); // indents
95
-
63
+ var stopClickEventPropagation = Boolean(opts.stopClickEventPropagation);
64
+ // indents
96
65
  var iconWidth = ctx.indents.iconWidth;
97
66
  var iconIndent = (_g = opts.iconIndent) !== null && _g !== void 0 ? _g : ctx.indents.iconIndent;
98
67
  var iconGap = (_h = opts.iconGap) !== null && _h !== void 0 ? _h : ctx.indents.iconGap;
99
68
  var indentSize = (_j = opts.indentSize) !== null && _j !== void 0 ? _j : ctx.indents.indentSize;
100
69
  var Icon = opts.icon;
101
70
  return pipeline.mapDataSource(processDataSource).mapColumns(processColumns);
102
-
103
71
  function processDataSource(input) {
104
72
  if (pipeline.isSameInputDataSource() && openKeys === pipeline.getFeatureOptions('lastOpenKeys')) {
105
73
  return pipeline.getFeatureOptions('lastTreeMode');
106
74
  }
107
-
108
75
  pipeline.setFeatureOptions('lastOpenKeys', pipeline.getStateAtKey(stateKey));
109
76
  var result = [];
110
77
  dfs(input, 0);
111
-
112
78
  function dfs(nodes, depth) {
113
79
  if (nodes == null) {
114
80
  return;
115
81
  }
116
-
117
82
  var _iterator = _createForOfIteratorHelper(nodes),
118
- _step;
119
-
83
+ _step;
120
84
  try {
121
85
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
122
86
  var node = _step.value;
123
-
124
87
  var rowKey = _internals.internals.safeGetRowKey(primaryKey, node, -1);
125
-
126
88
  var expanded = openKeySet.has(rowKey);
127
89
  var isLeaf = isLeafNode(node, {
128
90
  depth: depth,
@@ -136,7 +98,6 @@ function treeMode() {
136
98
  rowKey: rowKey
137
99
  };
138
100
  result.push((0, _extends3.default)((0, _defineProperty2.default)({}, treeMetaKey, treeMeta), node));
139
-
140
101
  if (!isLeaf && expanded) {
141
102
  dfs(node.children, depth + 1);
142
103
  }
@@ -147,38 +108,31 @@ function treeMode() {
147
108
  _iterator.f();
148
109
  }
149
110
  }
150
-
151
111
  pipeline.setFeatureOptions('lastTreeMode', result);
152
112
  return result;
153
113
  }
154
-
155
114
  function processColumns(columns) {
156
115
  if (columns.length === 0) {
157
116
  return columns;
158
117
  }
159
-
160
118
  var expandColIndex = (0, _findIndex.default)(columns).call(columns, function (_ref) {
161
119
  var code = _ref.code;
162
120
  return code && opts.expandColCode === code;
163
121
  });
164
122
  expandColIndex = expandColIndex === -1 ? 0 : expandColIndex;
165
123
  var expandCol = columns[expandColIndex];
166
-
167
124
  var render = function render(value, record, recordIndex) {
168
125
  var content = _internals.internals.safeRender(expandCol, record, recordIndex);
169
-
170
126
  if (record[treeMetaKey] == null) {
171
127
  // 没有 treeMeta 信息的话,就返回原先的渲染结果
172
128
  return content;
173
129
  }
174
-
175
130
  var _record$treeMetaKey = record[treeMetaKey],
176
- rowKey = _record$treeMetaKey.rowKey,
177
- depth = _record$treeMetaKey.depth,
178
- isLeaf = _record$treeMetaKey.isLeaf,
179
- expanded = _record$treeMetaKey.expanded;
131
+ rowKey = _record$treeMetaKey.rowKey,
132
+ depth = _record$treeMetaKey.depth,
133
+ isLeaf = _record$treeMetaKey.isLeaf,
134
+ expanded = _record$treeMetaKey.expanded;
180
135
  var indent = iconIndent + depth * indentSize;
181
-
182
136
  if (isLeaf) {
183
137
  return /*#__PURE__*/_react.default.createElement(_commonViews.InlineFlexCell, {
184
138
  className: (0, _classnames.default)('expansion-cell', _styles.Classes.leaf)
@@ -188,15 +142,12 @@ function treeMode() {
188
142
  }
189
143
  }, content));
190
144
  }
191
-
192
145
  var onClick = function onClick(e) {
193
146
  if (stopClickEventPropagation) {
194
147
  e.stopPropagation();
195
148
  }
196
-
197
149
  toggle(rowKey);
198
150
  };
199
-
200
151
  var expandCls = expanded ? _styles.Classes.expanded : _styles.Classes.collapsed;
201
152
  return /*#__PURE__*/_react.default.createElement(_commonViews.ExpansionCell, {
202
153
  className: (0, _classnames.default)('expansion-cell', expandCls),
@@ -223,29 +174,23 @@ function treeMode() {
223
174
  onClick: clickArea === 'icon' ? onClick : undefined
224
175
  }), content);
225
176
  };
226
-
227
177
  var getCellProps = function getCellProps(value, record, rowIndex) {
228
178
  var prevProps = _internals.internals.safeGetCellProps(expandCol, record, rowIndex);
229
-
230
179
  if (record[treeMetaKey] == null) {
231
180
  // 没有 treeMeta 信息的话,就返回原先的 cellProps
232
181
  return prevProps;
233
182
  }
234
-
235
183
  var _record$treeMetaKey2 = record[treeMetaKey],
236
- isLeaf = _record$treeMetaKey2.isLeaf,
237
- rowKey = _record$treeMetaKey2.rowKey;
238
-
184
+ isLeaf = _record$treeMetaKey2.isLeaf,
185
+ rowKey = _record$treeMetaKey2.rowKey;
239
186
  if (isLeaf) {
240
187
  return prevProps;
241
188
  }
242
-
243
189
  return (0, _utils.mergeCellProps)(prevProps, {
244
190
  onClick: function onClick(e) {
245
191
  if (stopClickEventPropagation) {
246
192
  e.stopPropagation();
247
193
  }
248
-
249
194
  toggle(rowKey);
250
195
  },
251
196
  style: {
@@ -253,7 +198,6 @@ function treeMode() {
253
198
  }
254
199
  });
255
200
  };
256
-
257
201
  columns[expandColIndex] = (0, _extends3.default)((0, _extends3.default)({}, expandCol), {
258
202
  title: /*#__PURE__*/_react.default.createElement("span", {
259
203
  style: {
@@ -1,56 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.treeSelect = treeSelect;
9
-
10
8
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
11
-
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
15
-
16
11
  var _react = _interopRequireDefault(require("react"));
17
-
18
12
  var _others = require("../../utils/others");
19
-
20
13
  var _StrictTreeDataHelper = _interopRequireDefault(require("../../utils/tree-data-helpers/StrictTreeDataHelper"));
21
-
22
14
  var _TreeDataHelper = _interopRequireDefault(require("../../utils/tree-data-helpers/TreeDataHelper"));
23
-
24
15
  var STATE_KEY = 'treeSelect';
25
-
26
16
  function treeSelect(opts) {
27
17
  return function treeSelectStep(pipeline) {
28
18
  var _ref, _context;
29
-
30
19
  var _a, _b, _c, _d, _e, _f, _g, _h;
31
-
32
20
  var Checkbox = pipeline.ctx.components.Checkbox;
33
-
34
21
  if (Checkbox == null) {
35
22
  throw new Error('使用 treeSelect 之前需要通过 pipeline context 设置 components.Checkbox');
36
23
  }
37
-
38
24
  var primaryKey = pipeline.ensurePrimaryKey('treeSelect');
39
-
40
25
  if (typeof primaryKey !== 'string') {
41
26
  throw new Error('treeSelect 仅支持字符串作为 primaryKey');
42
27
  }
43
-
44
28
  var clickArea = (_a = opts.clickArea) !== null && _a !== void 0 ? _a : 'checkbox';
45
29
  var isDisabled = (_b = opts.isDisabled) !== null && _b !== void 0 ? _b : (0, _others.always)(false);
46
30
  var isDetached = (_c = opts.idDetached) !== null && _c !== void 0 ? _c : (0, _others.always)(false);
47
31
  var value = (_f = (_e = (_d = opts.value) !== null && _d !== void 0 ? _d : pipeline.getStateAtKey(STATE_KEY)) !== null && _e !== void 0 ? _e : opts.defaultValue) !== null && _f !== void 0 ? _f : [];
48
32
  var tree = opts.rootKey != null ? [(_ref = {}, (0, _defineProperty2.default)(_ref, primaryKey, opts.rootKey), (0, _defineProperty2.default)(_ref, "children", opts.tree), _ref)] : opts.tree;
49
-
50
33
  var getNodeValue = function getNodeValue(node) {
51
34
  return node[primaryKey];
52
35
  };
53
-
54
36
  var treeDataHelper = opts.checkStrictly ? new _StrictTreeDataHelper.default({
55
37
  value: value,
56
38
  getNodeValue: getNodeValue,
@@ -62,15 +44,12 @@ function treeSelect(opts) {
62
44
  tree: tree,
63
45
  checkedStrategy: (_g = opts.checkedStrategy) !== null && _g !== void 0 ? _g : 'parent'
64
46
  });
65
-
66
47
  var onToggleKey = function onToggleKey(key) {
67
48
  var _a;
68
-
69
49
  var nextValue = treeDataHelper.getValueAfterToggle(key);
70
50
  pipeline.setStateAtKey(STATE_KEY, nextValue);
71
51
  (_a = opts.onChange) === null || _a === void 0 ? void 0 : _a.call(opts, nextValue);
72
52
  };
73
-
74
53
  var makeCheckbox = function makeCheckbox(key, root, row) {
75
54
  return /*#__PURE__*/_react.default.createElement(Checkbox, {
76
55
  checked: treeDataHelper.isChecked(key),
@@ -81,7 +60,6 @@ function treeSelect(opts) {
81
60
  } : undefined
82
61
  });
83
62
  };
84
-
85
63
  var checkboxColumn = (0, _extends2.default)((0, _extends2.default)({
86
64
  name: '',
87
65
  width: 50,
@@ -93,13 +71,10 @@ function treeSelect(opts) {
93
71
  },
94
72
  getCellProps: function getCellProps(value, row) {
95
73
  var rowKey = row[primaryKey];
96
-
97
74
  if (clickArea !== 'cell') {
98
75
  return;
99
76
  }
100
-
101
77
  var disabled = isDisabled(row);
102
-
103
78
  if (disabled) {
104
79
  return {
105
80
  style: {
@@ -107,7 +82,6 @@ function treeSelect(opts) {
107
82
  }
108
83
  };
109
84
  }
110
-
111
85
  return {
112
86
  style: {
113
87
  cursor: 'pointer'
@@ -116,7 +90,6 @@ function treeSelect(opts) {
116
90
  if (opts.stopClickEventPropagation) {
117
91
  e.stopPropagation();
118
92
  }
119
-
120
93
  onToggleKey(rowKey);
121
94
  }
122
95
  };
@@ -124,19 +97,15 @@ function treeSelect(opts) {
124
97
  });
125
98
  var nextColumns = (0, _slice.default)(_context = pipeline.getColumns()).call(_context);
126
99
  var checkboxPlacement = (_h = opts.checkboxPlacement) !== null && _h !== void 0 ? _h : 'start';
127
-
128
100
  if (checkboxPlacement === 'start') {
129
101
  nextColumns.unshift(checkboxColumn);
130
102
  } else {
131
103
  nextColumns.push(checkboxColumn);
132
104
  }
133
-
134
105
  pipeline.columns(nextColumns);
135
-
136
106
  if (clickArea === 'row') {
137
107
  pipeline.appendRowPropsGetter(function (row) {
138
108
  var disabled = isDisabled(row);
139
-
140
109
  if (!disabled) {
141
110
  return {
142
111
  style: {
@@ -146,14 +115,12 @@ function treeSelect(opts) {
146
115
  if (opts.stopClickEventPropagation) {
147
116
  e.stopPropagation();
148
117
  }
149
-
150
118
  onToggleKey(row[primaryKey]);
151
119
  }
152
120
  };
153
121
  }
154
122
  });
155
123
  }
156
-
157
124
  if (opts.highlightRowWhenSelected) {
158
125
  pipeline.appendRowPropsGetter(function (row) {
159
126
  if (treeDataHelper.isChecked(row[primaryKey])) {
@@ -163,7 +130,6 @@ function treeSelect(opts) {
163
130
  }
164
131
  });
165
132
  }
166
-
167
133
  return pipeline;
168
134
  };
169
135
  }
@@ -0,0 +1,15 @@
1
+ export declare function getEventCoordinates(event: MouseEvent | TouchEvent): {
2
+ clientX: number;
3
+ clientY: number;
4
+ };
5
+ export declare function getEventTarget(event: MouseEvent | TouchEvent): EventTarget;
6
+ export declare function isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent;
7
+ export declare function addPointerEventListeners(element: Element | Window | Document, handlers: {
8
+ onPointerMove: (e: MouseEvent | TouchEvent) => void;
9
+ onPointerUp: (e: MouseEvent | TouchEvent) => void;
10
+ }, isTouchStart: boolean): void;
11
+ export declare function removePointerEventListeners(element: Element | Window | Document, handlers: {
12
+ onPointerMove: (e: MouseEvent | TouchEvent) => void;
13
+ onPointerUp: (e: MouseEvent | TouchEvent) => void;
14
+ }, isTouchStart: boolean): void;
15
+ export declare function hasMovedEnough(startX: number, startY: number, endX: number, endY: number, threshold?: number): boolean;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addPointerEventListeners = addPointerEventListeners;
7
+ exports.getEventCoordinates = getEventCoordinates;
8
+ exports.getEventTarget = getEventTarget;
9
+ exports.hasMovedEnough = hasMovedEnough;
10
+ exports.isTouchEvent = isTouchEvent;
11
+ exports.removePointerEventListeners = removePointerEventListeners;
12
+ // 统一获取事件坐标的函数
13
+ function getEventCoordinates(event) {
14
+ if ('touches' in event && event.touches.length > 0) {
15
+ return {
16
+ clientX: event.touches[0].clientX,
17
+ clientY: event.touches[0].clientY
18
+ };
19
+ } else if ('changedTouches' in event && event.changedTouches.length > 0) {
20
+ return {
21
+ clientX: event.changedTouches[0].clientX,
22
+ clientY: event.changedTouches[0].clientY
23
+ };
24
+ } else {
25
+ return {
26
+ clientX: event.clientX,
27
+ clientY: event.clientY
28
+ };
29
+ }
30
+ }
31
+ // 获取事件目标元素
32
+ function getEventTarget(event) {
33
+ if ('touches' in event && event.touches.length > 0) {
34
+ return document.elementFromPoint(event.touches[0].clientX, event.touches[0].clientY);
35
+ }
36
+ // 处理touchend事件,此时touches为空,需要使用changedTouches
37
+ if ('changedTouches' in event && event.changedTouches.length > 0) {
38
+ return document.elementFromPoint(event.changedTouches[0].clientX, event.changedTouches[0].clientY);
39
+ }
40
+ return event.target;
41
+ }
42
+ // 判断是否为触摸事件
43
+ function isTouchEvent(event) {
44
+ return 'touches' in event;
45
+ }
46
+ // 为元素添加统一的指针事件监听器
47
+ function addPointerEventListeners(element, handlers, isTouchStart) {
48
+ if (isTouchStart) {
49
+ element.addEventListener('touchmove', handlers.onPointerMove, {
50
+ passive: false
51
+ });
52
+ element.addEventListener('touchend', handlers.onPointerUp, {
53
+ passive: false
54
+ });
55
+ } else {
56
+ element.addEventListener('mousemove', handlers.onPointerMove);
57
+ element.addEventListener('mouseup', handlers.onPointerUp);
58
+ }
59
+ }
60
+ // 移除统一的指针事件监听器
61
+ function removePointerEventListeners(element, handlers, isTouchStart) {
62
+ if (isTouchStart) {
63
+ element.removeEventListener('touchmove', handlers.onPointerMove);
64
+ element.removeEventListener('touchend', handlers.onPointerUp);
65
+ } else {
66
+ element.removeEventListener('mousemove', handlers.onPointerMove);
67
+ element.removeEventListener('mouseup', handlers.onPointerUp);
68
+ }
69
+ }
70
+ // 检查是否移动了足够的距离(用于区分点击和拖拽)
71
+ function hasMovedEnough(startX, startY, endX, endY) {
72
+ var threshold = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 5;
73
+ var xDiff = endX - startX;
74
+ var yDiff = endY - startY;
75
+ return Math.sqrt(xDiff * xDiff + yDiff * yDiff) > threshold;
76
+ }
@@ -1,11 +1,8 @@
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
  Object.defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
@@ -22,13 +19,8 @@ Object.defineProperty(exports, "useTablePipeline", {
22
19
  return _pipeline.useTablePipeline;
23
20
  }
24
21
  });
25
-
26
22
  var features = _interopRequireWildcard(require("./features"));
27
-
28
23
  exports.features = features;
29
-
30
24
  var _pipeline = require("./pipeline");
31
-
32
25
  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); }
33
-
34
26
  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; }