@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.
- package/LICENSE +568 -568
- package/README.md +111 -111
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +5480 -6087
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +18 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/kd-ui-complete.less +777 -777
- package/es/_utils/arrayUtil.js +0 -3
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +36 -101
- package/es/_utils/hooks.js +21 -45
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +81 -144
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/index.js +0 -2
- package/es/locale/locale.js +11 -50
- package/es/style/color/colors.less +1 -1
- package/es/style/core/index.less +1 -1
- package/es/style/core/motion/other.less +27 -27
- package/es/style/core/motion/slide.less +53 -53
- package/es/style/core/motion.less +1 -1
- package/es/style/core/reset.less +185 -185
- package/es/style/index.less +1 -1
- package/es/style/mixins/index.less +18 -18
- package/es/style/mixins/overlay.less +21 -21
- package/es/style/mixins/reset.less +12 -12
- package/es/style/themes/default.less +445 -445
- package/es/table/base/calculations.js +25 -75
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +6 -6
- package/es/table/base/globalStyleComponent.d.ts +4 -0
- package/es/table/base/globalStyleComponent.js +24 -0
- package/es/table/base/header.js +21 -76
- package/es/table/base/helpers/SpanManager.js +4 -11
- package/es/table/base/helpers/TableDOMUtils.js +9 -34
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +17 -39
- package/es/table/base/loading.js +8 -10
- package/es/table/base/renderTemplates.js +42 -60
- package/es/table/base/styles.d.ts +10 -0
- package/es/table/base/styles.js +17 -16
- package/es/table/base/table.js +113 -201
- package/es/table/base/utils.js +17 -57
- package/es/table/common-views.js +0 -7
- package/es/table/interfaces.d.ts +38 -0
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/const.d.ts +3 -0
- package/es/table/pipeline/const.js +3 -0
- package/es/table/pipeline/features/autoFill.js +11 -40
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.js +41 -97
- package/es/table/pipeline/features/columnFilter.js +12 -51
- package/es/table/pipeline/features/columnHover.js +1 -7
- package/es/table/pipeline/features/columnRangeHover.js +1 -8
- package/es/table/pipeline/features/columnResizeWidth.js +13 -39
- package/es/table/pipeline/features/contextMenu.js +22 -95
- package/es/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
- package/es/table/pipeline/features/featureApi/RowDragApi.js +66 -0
- package/es/table/pipeline/features/featureApi/utils.d.ts +2 -0
- package/es/table/pipeline/features/featureApi/utils.js +10 -0
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +27 -51
- package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
- package/es/table/pipeline/features/filter/util.js +0 -4
- package/es/table/pipeline/features/footerDataSource.js +0 -3
- package/es/table/pipeline/features/mergeCellHover.js +0 -1
- package/es/table/pipeline/features/multiSelect.js +15 -57
- package/es/table/pipeline/features/rangeSelection.js +73 -152
- package/es/table/pipeline/features/rowDetail.js +4 -43
- package/es/table/pipeline/features/rowDrag.d.ts +10 -12
- package/es/table/pipeline/features/rowDrag.js +491 -236
- package/es/table/pipeline/features/rowGrouping.js +4 -37
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +38 -96
- package/es/table/pipeline/features/tips.js +4 -10
- package/es/table/pipeline/features/treeMode.d.ts +1 -0
- package/es/table/pipeline/features/treeMode.js +38 -57
- package/es/table/pipeline/features/treeSelect.js +2 -28
- package/es/table/pipeline/pipeline.d.ts +3 -0
- package/es/table/pipeline/pipeline.js +35 -54
- package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
- package/es/table/pivot/cross-table/cross-table.js +23 -31
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +36 -61
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +34 -74
- package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/style/index.less +1 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +13 -35
- package/es/table/transforms/buildTree.js +1 -2
- package/es/table/transforms/columnHover.js +9 -15
- package/es/table/transforms/columnRangeHover.js +12 -19
- package/es/table/transforms/columnResize.js +18 -42
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +42 -101
- package/es/table/transforms/tips.js +5 -10
- package/es/table/transforms/treeMode.js +36 -77
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/browserType.js +12 -19
- package/es/table/utils/buildTree.js +7 -22
- package/es/table/utils/collectNodes.js +4 -13
- package/es/table/utils/console.js +0 -14
- package/es/table/utils/copyToClipboard.js +0 -4
- package/es/table/utils/element.js +14 -41
- package/es/table/utils/exportTableAsExcel.js +7 -43
- package/es/table/utils/getTreeDepth.js +4 -12
- package/es/table/utils/groupBy.js +4 -13
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +4 -15
- package/es/table/utils/mergeCellProps.js +6 -14
- package/es/table/utils/others.js +6 -19
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +5 -18
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -30
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
- package/es/table/utils/uiDegrade.js +0 -5
- package/lib/_utils/arrayUtil.js +2 -8
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +36 -105
- package/lib/_utils/hooks.js +21 -56
- package/lib/_utils/index.js +2 -9
- package/lib/_utils/numberUtil.js +32 -63
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/type.js +3 -11
- package/lib/_utils/usePopper.js +86 -173
- package/lib/config-provider/ConfigContext.js +2 -6
- package/lib/config-provider/compDefaultProps.js +1 -3
- package/lib/config-provider/configProvider.js +6 -22
- package/lib/config-provider/defaultConfig.js +1 -7
- package/lib/config-provider/index.js +1 -8
- package/lib/index.js +2 -8
- package/lib/locale/index.js +3 -11
- package/lib/locale/locale.js +15 -71
- package/lib/locale/zh-CN.js +1 -2
- package/lib/style/color/colors.less +1 -1
- package/lib/style/components.less +1 -1
- package/lib/style/core/index.less +1 -1
- package/lib/style/core/motion/other.less +27 -27
- package/lib/style/core/motion/slide.less +53 -53
- package/lib/style/core/motion.less +1 -1
- package/lib/style/core/reset.less +185 -185
- package/lib/style/index.less +1 -1
- package/lib/style/mixins/index.less +18 -18
- package/lib/style/mixins/overlay.less +21 -21
- package/lib/style/mixins/reset.less +12 -12
- package/lib/style/themes/default.less +445 -445
- package/lib/table/base/calculations.js +25 -86
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +8 -20
- package/lib/table/base/globalStyleComponent.d.ts +4 -0
- package/lib/table/base/globalStyleComponent.js +35 -0
- package/lib/table/base/header.js +21 -86
- package/lib/table/base/helpers/SpanManager.js +6 -16
- package/lib/table/base/helpers/TableDOMUtils.js +9 -37
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +15 -65
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +17 -49
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +8 -14
- package/lib/table/base/renderTemplates.js +45 -76
- package/lib/table/base/styles.d.ts +10 -0
- package/lib/table/base/styles.js +24 -42
- package/lib/table/base/table.js +125 -245
- package/lib/table/base/utils.js +27 -109
- package/lib/table/common-views.js +4 -24
- package/lib/table/index.js +0 -13
- package/lib/table/interfaces.d.ts +38 -0
- package/lib/table/internals.js +2 -17
- package/lib/table/pipeline/const.d.ts +3 -0
- package/lib/table/pipeline/const.js +9 -0
- package/lib/table/pipeline/features/autoFill.js +14 -53
- package/lib/table/pipeline/features/autoRowSpan.js +1 -19
- package/lib/table/pipeline/features/buildTree.js +0 -2
- package/lib/table/pipeline/features/colGroupExtendable.js +6 -35
- package/lib/table/pipeline/features/columnDrag.js +41 -103
- package/lib/table/pipeline/features/columnFilter.js +12 -65
- package/lib/table/pipeline/features/columnHover.js +1 -11
- package/lib/table/pipeline/features/columnRangeHover.js +1 -13
- package/lib/table/pipeline/features/columnResizeWidth.js +18 -63
- package/lib/table/pipeline/features/contextMenu.js +24 -121
- package/lib/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
- package/lib/table/pipeline/features/featureApi/RowDragApi.js +72 -0
- package/lib/table/pipeline/features/featureApi/utils.d.ts +2 -0
- package/lib/table/pipeline/features/featureApi/utils.js +17 -0
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +30 -77
- package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +2 -10
- package/lib/table/pipeline/features/footerDataSource.js +1 -12
- package/lib/table/pipeline/features/index.js +0 -23
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -71
- package/lib/table/pipeline/features/rangeSelection.js +75 -173
- package/lib/table/pipeline/features/rowDetail.js +4 -67
- package/lib/table/pipeline/features/rowDrag.d.ts +10 -12
- package/lib/table/pipeline/features/rowDrag.js +494 -252
- package/lib/table/pipeline/features/rowGrouping.js +4 -57
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +37 -115
- package/lib/table/pipeline/features/tips.js +4 -19
- package/lib/table/pipeline/features/treeMode.d.ts +1 -0
- package/lib/table/pipeline/features/treeMode.js +40 -80
- package/lib/table/pipeline/features/treeSelect.js +2 -36
- package/lib/table/pipeline/index.js +2 -10
- package/lib/table/pipeline/pipeline.d.ts +3 -0
- package/lib/table/pipeline/pipeline.js +36 -65
- package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
- package/lib/table/pivot/cross-table/constants.js +1 -2
- package/lib/table/pivot/cross-table/cross-table.js +25 -42
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +37 -73
- package/lib/table/pivot/cross-tree-table/index.js +0 -3
- package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
- package/lib/table/pivot/pivot-utils/builders.js +34 -85
- package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
- package/lib/table/pivot/pivot-utils/index.js +0 -7
- package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/style/index.less +1 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +15 -58
- package/lib/table/transforms/buildTree.js +1 -4
- package/lib/table/transforms/columnHover.js +9 -22
- package/lib/table/transforms/columnRangeHover.js +12 -27
- package/lib/table/transforms/columnResize.js +20 -63
- package/lib/table/transforms/flatten.js +0 -5
- package/lib/table/transforms/index.js +0 -12
- package/lib/table/transforms/orderField.js +0 -7
- package/lib/table/transforms/sort.js +44 -127
- package/lib/table/transforms/tips.js +5 -20
- package/lib/table/transforms/treeMode.js +38 -106
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +2 -10
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/browserType.js +14 -23
- package/lib/table/utils/buildTree.js +7 -33
- package/lib/table/utils/collectNodes.js +4 -18
- package/lib/table/utils/console.js +2 -19
- package/lib/table/utils/copyToClipboard.js +1 -8
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +7 -52
- package/lib/table/utils/getTreeDepth.js +4 -17
- package/lib/table/utils/groupBy.js +4 -17
- package/lib/table/utils/index.js +0 -22
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/keyCode.js +1 -2
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +4 -24
- package/lib/table/utils/mergeCellProps.js +6 -18
- package/lib/table/utils/others.js +7 -36
- package/lib/table/utils/proto.js +3 -35
- package/lib/table/utils/selectColumn.js +2 -5
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +5 -25
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +10 -41
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
- package/lib/table/utils/uiDegrade.js +1 -8
- 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
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
208
|
-
|
|
155
|
+
y = position.y;
|
|
209
156
|
var _keepWithinBounds = keepWithinBounds(popupParent, menuRef.current, x, y),
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
-
|
|
339
|
-
|
|
340
|
-
|
|
263
|
+
x = _calculatePointerRela.x,
|
|
264
|
+
y = _calculatePointerRela.y;
|
|
341
265
|
if (params) {
|
|
342
266
|
var offsetX = params.offsetX,
|
|
343
|
-
|
|
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,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
|
+
}
|