@kdcloudjs/table 1.2.0-canary.6 → 1.2.0-canary.6-hotfix.2
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 +1877 -3363
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -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 +35 -96
- package/es/_utils/hooks.js +18 -42
- 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 +74 -137
- 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 +5 -43
- 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 +22 -72
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +4 -4
- package/es/table/base/header.d.ts +2 -1
- package/es/table/base/header.js +17 -68
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +3 -26
- 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 +11 -44
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +15 -36
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +50 -54
- package/es/table/base/styles.js +1 -10
- package/es/table/base/table.js +116 -189
- package/es/table/base/utils.js +14 -54
- package/es/table/common-views.js +0 -7
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/features/autoFill.js +11 -38
- 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 -95
- package/es/table/pipeline/features/columnFilter.js +11 -44
- 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 +11 -37
- package/es/table/pipeline/features/contextMenu.js +18 -89
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +25 -48
- 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 +63 -142
- package/es/table/pipeline/features/rowDetail.js +2 -41
- package/es/table/pipeline/features/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +29 -79
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -43
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/pipeline.js +9 -49
- package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
- package/es/table/pivot/cross-table/cross-table.js +22 -28
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +31 -71
- package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
- 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 +10 -32
- 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 +15 -37
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +36 -88
- package/es/table/transforms/tips.js +1 -6
- package/es/table/transforms/treeMode.js +30 -69
- 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/buildTree.js +4 -19
- package/es/table/utils/collectNodes.js +1 -10
- 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 +4 -40
- package/es/table/utils/getTreeDepth.js +1 -9
- package/es/table/utils/groupBy.js +1 -10
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +1 -12
- package/es/table/utils/mergeCellProps.js +6 -13
- package/es/table/utils/others.js +3 -16
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +2 -15
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
- package/lib/_utils/arrayUtil.js +0 -5
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +35 -100
- package/lib/_utils/hooks.js +18 -53
- package/lib/_utils/index.js +0 -6
- 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 +0 -6
- package/lib/_utils/usePopper.js +74 -158
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/index.js +2 -8
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +5 -57
- 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 +22 -83
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +4 -16
- package/lib/table/base/header.d.ts +2 -1
- package/lib/table/base/header.js +17 -78
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +1 -26
- 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 +11 -62
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +15 -46
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +51 -68
- package/lib/table/base/styles.js +1 -22
- package/lib/table/base/table.js +116 -222
- package/lib/table/base/utils.js +14 -89
- package/lib/table/common-views.js +0 -16
- package/lib/table/index.js +0 -13
- package/lib/table/internals.js +0 -14
- package/lib/table/pipeline/features/autoFill.js +11 -45
- 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 +4 -32
- package/lib/table/pipeline/features/columnDrag.js +41 -101
- package/lib/table/pipeline/features/columnFilter.js +11 -58
- 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 +11 -53
- package/lib/table/pipeline/features/contextMenu.js +18 -113
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +25 -70
- package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +0 -7
- package/lib/table/pipeline/features/footerDataSource.js +0 -10
- package/lib/table/pipeline/features/index.js +0 -22
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -70
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -33
- package/lib/table/pipeline/features/sort.js +29 -99
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -64
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +9 -58
- package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
- package/lib/table/pivot/cross-table/cross-table.js +22 -36
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
- 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 +31 -82
- package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
- 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 +10 -53
- 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 +15 -56
- 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 +36 -112
- package/lib/table/transforms/tips.js +1 -16
- package/lib/table/transforms/treeMode.js +30 -96
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +1 -8
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/buildTree.js +4 -30
- package/lib/table/utils/collectNodes.js +1 -15
- package/lib/table/utils/console.js +0 -16
- package/lib/table/utils/copyToClipboard.js +0 -6
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +4 -49
- package/lib/table/utils/getTreeDepth.js +1 -14
- package/lib/table/utils/groupBy.js +1 -14
- package/lib/table/utils/index.js +0 -20
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +1 -21
- package/lib/table/utils/mergeCellProps.js +6 -17
- package/lib/table/utils/others.js +3 -31
- package/lib/table/utils/proto.js +2 -33
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +2 -22
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
- package/package.json +219 -218
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _mapInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/map");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -11,75 +9,51 @@ exports.getCellRangeId = getCellRangeId;
|
|
|
11
9
|
exports.lastClickCellKey = void 0;
|
|
12
10
|
exports.rangeSelection = rangeSelection;
|
|
13
11
|
exports.rangeSelectionKey = void 0;
|
|
14
|
-
|
|
15
12
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
16
|
-
|
|
17
13
|
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
|
18
|
-
|
|
19
14
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
20
|
-
|
|
21
15
|
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
22
|
-
|
|
23
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
24
|
-
|
|
25
17
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
|
|
26
|
-
|
|
27
18
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
28
|
-
|
|
29
19
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
|
|
30
|
-
|
|
31
20
|
var _utils = require("../../utils");
|
|
32
|
-
|
|
33
21
|
var _others = require("../../utils/others");
|
|
34
|
-
|
|
35
22
|
var _rxjs = require("rxjs");
|
|
36
|
-
|
|
37
23
|
var _operators = require("rxjs/operators");
|
|
38
|
-
|
|
39
24
|
var _styles = require("../../base/styles");
|
|
40
|
-
|
|
41
25
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
42
|
-
|
|
43
26
|
var rangeSelectionKey = 'rangeSelection';
|
|
44
27
|
exports.rangeSelectionKey = rangeSelectionKey;
|
|
45
28
|
var lastClickCellKey = 'lastClickCell';
|
|
46
29
|
exports.lastClickCellKey = lastClickCellKey;
|
|
47
30
|
var startSelectedCellRangesKey = 'startSelectedCellRanges';
|
|
48
31
|
var SCROLL_OFFSET = 30;
|
|
49
|
-
|
|
50
32
|
function rangeSelection(opts) {
|
|
51
33
|
return function step(pipeline) {
|
|
52
34
|
var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
|
|
53
35
|
var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
|
|
54
36
|
var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
|
|
55
|
-
|
|
56
37
|
if (!tableBody) {
|
|
57
38
|
return pipeline;
|
|
58
39
|
}
|
|
59
|
-
|
|
60
40
|
var columns = pipeline.getColumns();
|
|
61
41
|
var dataSource = pipeline.getDataSource();
|
|
62
|
-
|
|
63
42
|
var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
|
|
64
43
|
var _a;
|
|
65
|
-
|
|
66
44
|
if (isFinished) {
|
|
67
45
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
|
|
68
46
|
}
|
|
69
|
-
|
|
70
47
|
pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
|
|
71
48
|
(_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection, isFinished);
|
|
72
49
|
};
|
|
73
|
-
|
|
74
50
|
var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
|
|
75
51
|
if (!startDragCell || !draggingCell) return;
|
|
76
52
|
var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
|
|
77
|
-
|
|
78
53
|
var _getRangeSelectionRow = getRangeSelectionRowInfo(startDragCell, draggingCell, dataSource),
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
54
|
+
startRow = _getRangeSelectionRow.startRow,
|
|
55
|
+
endRow = _getRangeSelectionRow.endRow,
|
|
56
|
+
footerRowRange = _getRangeSelectionRow.footerRowRange;
|
|
83
57
|
var cellRange = {
|
|
84
58
|
startRow: startRow,
|
|
85
59
|
endRow: endRow,
|
|
@@ -88,32 +62,25 @@ function rangeSelection(opts) {
|
|
|
88
62
|
footerRowRange: footerRowRange
|
|
89
63
|
};
|
|
90
64
|
var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? (0, _toConsumableArray2.default)(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
|
|
91
|
-
|
|
92
65
|
if (isCellRangeSingleCell([cellRange])) {
|
|
93
66
|
var singleCellRangeId = getCellRangeId(cellRange);
|
|
94
67
|
cellRanges = (0, _filter.default)(cellRanges).call(cellRanges, function (item) {
|
|
95
68
|
return getCellRangeId(item) !== singleCellRangeId;
|
|
96
69
|
});
|
|
97
70
|
}
|
|
98
|
-
|
|
99
71
|
cellRanges.push(cellRange);
|
|
100
|
-
|
|
101
72
|
if (isCellRangeSingleCell(cellRanges)) {
|
|
102
73
|
artTable.classList.remove((0, _classnames.default)(_styles.Classes.rangeSelection));
|
|
103
74
|
} else {
|
|
104
75
|
artTable.classList.add((0, _classnames.default)(_styles.Classes.rangeSelection));
|
|
105
76
|
}
|
|
106
|
-
|
|
107
77
|
rangeSelectedChange(cellRanges, isFinished);
|
|
108
78
|
};
|
|
109
|
-
|
|
110
79
|
var shiftKeySelect = function shiftKeySelect(event) {
|
|
111
80
|
var target = event.target;
|
|
112
81
|
var clickCell = getTargetCell(target, columns);
|
|
113
|
-
|
|
114
82
|
if (clickCell) {
|
|
115
83
|
var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
|
|
116
|
-
|
|
117
84
|
if (_lastClickCell) {
|
|
118
85
|
setRangeSelection(_lastClickCell, clickCell, true);
|
|
119
86
|
} else {
|
|
@@ -122,69 +89,56 @@ function rangeSelection(opts) {
|
|
|
122
89
|
}
|
|
123
90
|
}
|
|
124
91
|
};
|
|
125
|
-
|
|
126
92
|
var updateScrollPosition = function updateScrollPosition(client) {
|
|
127
93
|
var clientX = client.clientX,
|
|
128
|
-
|
|
94
|
+
clientY = client.clientY;
|
|
129
95
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
130
96
|
var left = tableBodyClientRect.left,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
97
|
+
top = tableBodyClientRect.top,
|
|
98
|
+
height = tableBodyClientRect.height,
|
|
99
|
+
width = tableBodyClientRect.width;
|
|
135
100
|
if (clientX + SCROLL_OFFSET >= left + width) {
|
|
136
101
|
pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
|
|
137
102
|
}
|
|
138
|
-
|
|
139
103
|
if (clientX - SCROLL_OFFSET <= left) {
|
|
140
104
|
pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
|
|
141
105
|
}
|
|
142
|
-
|
|
143
106
|
if (clientY + SCROLL_OFFSET >= top + height) {
|
|
144
107
|
pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
|
|
145
108
|
}
|
|
146
|
-
|
|
147
109
|
if (clientY + SCROLL_OFFSET <= top) {
|
|
148
110
|
pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
|
|
149
111
|
}
|
|
150
112
|
};
|
|
151
|
-
|
|
152
113
|
var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
|
|
153
114
|
if (opts === null || opts === void 0 ? void 0 : opts.suppressMultiRangeSelection) {
|
|
154
115
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
|
|
155
116
|
return;
|
|
156
|
-
}
|
|
117
|
+
}
|
|
118
|
+
// ctrl 和shift 同时按时,优先生效shift
|
|
157
119
|
// 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
|
|
158
|
-
|
|
159
|
-
|
|
160
120
|
if (!isCtrlKey && !isShiftKey) {
|
|
161
121
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
122
|
+
}
|
|
123
|
+
// shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
|
|
165
124
|
if (isShiftKey) {
|
|
166
125
|
var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? (0, _toConsumableArray2.default)(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
|
|
167
|
-
|
|
168
126
|
_startDragCellRanges.pop();
|
|
169
|
-
|
|
170
127
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
|
|
171
128
|
}
|
|
172
129
|
};
|
|
173
|
-
|
|
174
130
|
var onMouseDown = function onMouseDown(mouseDownEvent) {
|
|
175
|
-
if (mouseDownEvent.button !== 0 || !((0, _utils.isElementInEventPath)(tableBody, mouseDownEvent.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, mouseDownEvent.nativeEvent))) return;
|
|
176
|
-
|
|
131
|
+
if (mouseDownEvent.button !== 0 || !((0, _utils.isElementInEventPath)(tableBody, mouseDownEvent.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, mouseDownEvent.nativeEvent))) return;
|
|
132
|
+
// mouseDownEvent.preventDefault()
|
|
177
133
|
var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
|
|
178
134
|
var isShiftKey = mouseDownEvent.shiftKey;
|
|
179
|
-
var target = mouseDownEvent.target;
|
|
180
|
-
|
|
135
|
+
var target = mouseDownEvent.target;
|
|
136
|
+
// 每次点击时先确认初始生效的框选范围
|
|
181
137
|
setStartSelectedCellRanges(isCtrlKey, isShiftKey);
|
|
182
|
-
|
|
183
138
|
if (isShiftKey) {
|
|
184
139
|
shiftKeySelect(mouseDownEvent);
|
|
185
140
|
return;
|
|
186
141
|
}
|
|
187
|
-
|
|
188
142
|
var startDragCell = getTargetCell(target, columns);
|
|
189
143
|
pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
|
|
190
144
|
var draggingCell = startDragCell;
|
|
@@ -197,11 +151,9 @@ function rangeSelection(opts) {
|
|
|
197
151
|
clientX: mouseMoveEvent.clientX,
|
|
198
152
|
clientY: mouseMoveEvent.clientY
|
|
199
153
|
};
|
|
200
|
-
|
|
201
154
|
if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
|
|
202
155
|
updateScrollPosition(client);
|
|
203
156
|
}
|
|
204
|
-
|
|
205
157
|
return {
|
|
206
158
|
startDragCell: startDragCell,
|
|
207
159
|
draggingCell: draggingCell
|
|
@@ -210,7 +162,7 @@ function rangeSelection(opts) {
|
|
|
210
162
|
rangeSelected$.subscribe({
|
|
211
163
|
next: function next(_ref) {
|
|
212
164
|
var startDragCell = _ref.startDragCell,
|
|
213
|
-
|
|
165
|
+
draggingCell = _ref.draggingCell;
|
|
214
166
|
setRangeSelection(startDragCell, draggingCell, false);
|
|
215
167
|
},
|
|
216
168
|
complete: function complete() {
|
|
@@ -218,14 +170,12 @@ function rangeSelection(opts) {
|
|
|
218
170
|
}
|
|
219
171
|
});
|
|
220
172
|
};
|
|
221
|
-
|
|
222
173
|
var onKeyDown = function onKeyDown(e) {
|
|
223
174
|
if (!((0, _utils.isElementInEventPath)(tableBody, e.nativeEvent) || (0, _utils.isElementInEventPath)(tableFooter, e.nativeEvent))) return;
|
|
224
|
-
|
|
225
175
|
if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
|
|
226
176
|
var rowLen = pipeline.getDataSource().length;
|
|
227
|
-
var footerDataSource = pipeline.getFooterDataSource() || [];
|
|
228
|
-
|
|
177
|
+
var footerDataSource = pipeline.getFooterDataSource() || [];
|
|
178
|
+
// 焦点位于可编辑的单元格内不做全选
|
|
229
179
|
if (columns.length && rowLen && !getElementEditable(e.target)) {
|
|
230
180
|
opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
|
|
231
181
|
artTable.classList.add((0, _classnames.default)(_styles.Classes.rangeSelection));
|
|
@@ -242,14 +192,12 @@ function rangeSelection(opts) {
|
|
|
242
192
|
}
|
|
243
193
|
}
|
|
244
194
|
};
|
|
245
|
-
|
|
246
195
|
pipeline.addTableProps({
|
|
247
196
|
onMouseDown: onMouseDown,
|
|
248
197
|
onKeyDown: onKeyDown,
|
|
249
198
|
tabIndex: -1,
|
|
250
199
|
className: (0, _classnames.default)([_styles.Classes.rangeSelection])
|
|
251
200
|
}); // todo: 后面可以把mousedown放到一个流里面
|
|
252
|
-
|
|
253
201
|
return pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col) {
|
|
254
202
|
var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
|
|
255
203
|
var prevGetCellProps = col.getCellProps;
|
|
@@ -274,7 +222,6 @@ function rangeSelection(opts) {
|
|
|
274
222
|
}));
|
|
275
223
|
};
|
|
276
224
|
}
|
|
277
|
-
|
|
278
225
|
function getTargetCell(target, columns) {
|
|
279
226
|
while (target) {
|
|
280
227
|
if (target.getAttribute('data-role') === 'table-cell') {
|
|
@@ -296,32 +243,24 @@ function getTargetCell(target, columns) {
|
|
|
296
243
|
}
|
|
297
244
|
};
|
|
298
245
|
}();
|
|
299
|
-
|
|
300
246
|
if ((0, _typeof2.default)(_ret) === "object") return _ret.v;
|
|
301
247
|
}
|
|
302
|
-
|
|
303
248
|
target = target.parentElement;
|
|
304
249
|
}
|
|
305
|
-
|
|
306
250
|
return null;
|
|
307
251
|
}
|
|
308
|
-
|
|
309
252
|
function isSameCell(cell1, cell2) {
|
|
310
253
|
return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
|
|
311
254
|
}
|
|
312
|
-
|
|
313
255
|
function isEleInFooter(target) {
|
|
314
256
|
while (target && !target.classList.contains(_styles.Classes.artTable)) {
|
|
315
257
|
if (target.classList.contains(_styles.Classes.tableFooter)) {
|
|
316
258
|
return true;
|
|
317
259
|
}
|
|
318
|
-
|
|
319
260
|
target = target.parentElement;
|
|
320
261
|
}
|
|
321
|
-
|
|
322
262
|
return false;
|
|
323
263
|
}
|
|
324
|
-
|
|
325
264
|
function getRangeColumns(startCell, endCell, columns) {
|
|
326
265
|
var flatColumns = (0, _utils.collectNodes)(columns, 'leaf-only');
|
|
327
266
|
var startIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
|
|
@@ -330,24 +269,20 @@ function getRangeColumns(startCell, endCell, columns) {
|
|
|
330
269
|
var endIndex = (0, _findIndex.default)(flatColumns).call(flatColumns, function (col) {
|
|
331
270
|
return col.code === endCell.code;
|
|
332
271
|
});
|
|
333
|
-
|
|
334
272
|
if (startIndex < endIndex) {
|
|
335
273
|
return (0, _slice.default)(flatColumns).call(flatColumns, startIndex, endIndex + 1);
|
|
336
274
|
} else {
|
|
337
275
|
return (0, _slice.default)(flatColumns).call(flatColumns, endIndex, startIndex + 1);
|
|
338
276
|
}
|
|
339
277
|
}
|
|
340
|
-
|
|
341
278
|
function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
342
279
|
var footerRowRange = null;
|
|
343
280
|
var startRow = -1;
|
|
344
281
|
var endRow = -1;
|
|
345
|
-
|
|
346
282
|
var _getCellRangeRow = getCellRangeRow(startCell, endCell),
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
283
|
+
_startRow = _getCellRangeRow.startRow,
|
|
284
|
+
_endRow = _getCellRangeRow.endRow;
|
|
285
|
+
// 两个单元格都在表体
|
|
351
286
|
if (!startCell.isFooterCell && !endCell.isFooterCell) {
|
|
352
287
|
startRow = _startRow;
|
|
353
288
|
endRow = _endRow;
|
|
@@ -375,7 +310,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
|
375
310
|
};
|
|
376
311
|
}
|
|
377
312
|
}
|
|
378
|
-
|
|
379
313
|
return {
|
|
380
314
|
startRow: startRow,
|
|
381
315
|
endRow: endRow,
|
|
@@ -388,8 +322,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
|
388
322
|
* @param endCell 结束单元格
|
|
389
323
|
* @returns
|
|
390
324
|
*/
|
|
391
|
-
|
|
392
|
-
|
|
393
325
|
function getCellRangeRow(startCell, endCell) {
|
|
394
326
|
if (isSameCell(startCell, endCell)) {
|
|
395
327
|
return {
|
|
@@ -397,7 +329,6 @@ function getCellRangeRow(startCell, endCell) {
|
|
|
397
329
|
endRow: startCell.rowIndex
|
|
398
330
|
};
|
|
399
331
|
}
|
|
400
|
-
|
|
401
332
|
var isTopToBottom = startCell.rowIndex <= endCell.rowIndex;
|
|
402
333
|
var startRow = isTopToBottom ? startCell.rowIndex : startCell.rowIndex + startCell.rowSpan - 1;
|
|
403
334
|
var endRow = isTopToBottom ? endCell.rowIndex + endCell.rowSpan - 1 : endCell.rowIndex;
|
|
@@ -411,20 +342,17 @@ function getCellRangeRow(startCell, endCell) {
|
|
|
411
342
|
* @param cellRanges
|
|
412
343
|
* @returns
|
|
413
344
|
*/
|
|
414
|
-
|
|
415
|
-
|
|
416
345
|
function isCellRangeSingleCell(cellRanges) {
|
|
417
346
|
if (cellRanges.length !== 1) return false;
|
|
418
347
|
var _cellRanges$ = cellRanges[0],
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
348
|
+
startRow = _cellRanges$.startRow,
|
|
349
|
+
endRow = _cellRanges$.endRow,
|
|
350
|
+
columns = _cellRanges$.columns,
|
|
351
|
+
footerRowRange = _cellRanges$.footerRowRange;
|
|
423
352
|
var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
|
|
424
353
|
var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
|
|
425
354
|
return isBodySingleCell || isFooterSingleCell;
|
|
426
355
|
}
|
|
427
|
-
|
|
428
356
|
function getRowIndex(startRow, endRow) {
|
|
429
357
|
var isReverse = startRow > endRow;
|
|
430
358
|
var startRowIndex = isReverse ? endRow : startRow;
|
|
@@ -434,23 +362,18 @@ function getRowIndex(startRow, endRow) {
|
|
|
434
362
|
endRowIndex: endRowIndex
|
|
435
363
|
};
|
|
436
364
|
}
|
|
437
|
-
|
|
438
365
|
function getFooterRowIndex(footerRowRange) {
|
|
439
366
|
if (footerRowRange) {
|
|
440
367
|
return getRowIndex(footerRowRange.startRow, footerRowRange.endRow);
|
|
441
368
|
}
|
|
442
|
-
|
|
443
369
|
return {
|
|
444
370
|
startRowIndex: -1,
|
|
445
371
|
endRowIndex: -1
|
|
446
372
|
};
|
|
447
373
|
}
|
|
448
|
-
|
|
449
374
|
function getElementEditable(target) {
|
|
450
375
|
var _context;
|
|
451
|
-
|
|
452
376
|
if (!target) return;
|
|
453
|
-
|
|
454
377
|
if ((0, _includes.default)(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
|
|
455
378
|
if (target.type === 'checkbox') return;
|
|
456
379
|
return !target.disabled && !target.readOnly;
|
|
@@ -464,26 +387,21 @@ function getElementEditable(target) {
|
|
|
464
387
|
* @param isFooterCell
|
|
465
388
|
* @returns
|
|
466
389
|
*/
|
|
467
|
-
|
|
468
|
-
|
|
469
390
|
function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
|
|
470
391
|
var startRow = cellRange.startRow,
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
392
|
+
endRow = cellRange.endRow,
|
|
393
|
+
columns = cellRange.columns,
|
|
394
|
+
footerRowRange = cellRange.footerRowRange;
|
|
474
395
|
var isColInRanges = (0, _findIndex.default)(columns).call(columns, function (item) {
|
|
475
396
|
return item.code === col.code;
|
|
476
397
|
}) !== -1;
|
|
477
398
|
if (!isColInRanges) return false;
|
|
478
|
-
|
|
479
399
|
var _getRowIndex = getRowIndex(startRow, endRow),
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
400
|
+
startRowIndex = _getRowIndex.startRowIndex,
|
|
401
|
+
endRowIndex = _getRowIndex.endRowIndex;
|
|
483
402
|
var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
403
|
+
footerStartRowIndex = _getFooterRowIndex.startRowIndex,
|
|
404
|
+
footerEndRowIndex = _getFooterRowIndex.endRowIndex;
|
|
487
405
|
var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
|
|
488
406
|
var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
|
|
489
407
|
var isRowInRange = footerMatch || bodyMatch;
|
|
@@ -494,22 +412,17 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
|
|
|
494
412
|
* @param {*} cellRange
|
|
495
413
|
* @returns
|
|
496
414
|
*/
|
|
497
|
-
|
|
498
|
-
|
|
499
415
|
function getCellRangeId(cellRange) {
|
|
500
416
|
var startRow = cellRange.startRow,
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
417
|
+
endRow = cellRange.endRow,
|
|
418
|
+
footerRowRange = cellRange.footerRowRange,
|
|
419
|
+
columns = cellRange.columns;
|
|
505
420
|
var _getRowIndex2 = getRowIndex(startRow, endRow),
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
421
|
+
startRowIndex = _getRowIndex2.startRowIndex,
|
|
422
|
+
endRowIndex = _getRowIndex2.endRowIndex;
|
|
509
423
|
var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
424
|
+
footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
|
|
425
|
+
footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
|
|
513
426
|
var firstColId = columns[0].code;
|
|
514
427
|
var endColId = columns[columns.length - 1].code;
|
|
515
428
|
return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
|
|
@@ -520,59 +433,50 @@ function getCellRangeId(cellRange) {
|
|
|
520
433
|
* @param param1
|
|
521
434
|
* @returns
|
|
522
435
|
*/
|
|
523
|
-
|
|
524
|
-
|
|
525
436
|
function getCellRangesClassName(cellRanges, _ref2) {
|
|
526
437
|
var _cx;
|
|
527
|
-
|
|
528
438
|
var isFooterCell = _ref2.isFooterCell,
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
439
|
+
rowIndex = _ref2.rowIndex,
|
|
440
|
+
col = _ref2.col,
|
|
441
|
+
record = _ref2.record;
|
|
533
442
|
var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
443
|
+
isFooterCell: isFooterCell,
|
|
444
|
+
rowIndex: rowIndex,
|
|
445
|
+
col: col,
|
|
446
|
+
record: record
|
|
447
|
+
}),
|
|
448
|
+
matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
|
|
449
|
+
matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
|
|
450
|
+
matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
|
|
451
|
+
matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
|
|
544
452
|
var isSingleCell = isCellRangeSingleCell(cellRanges);
|
|
545
453
|
var className = (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeSingleCell, isSingleCell), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeSelected, !isSingleCell), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), (0, _defineProperty2.default)(_cx, _styles.Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight), _cx));
|
|
546
454
|
return className;
|
|
547
455
|
}
|
|
548
|
-
|
|
549
456
|
function getMatchBorderStyle(cellRanges, _ref3) {
|
|
550
457
|
var isFooterCell = _ref3.isFooterCell,
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
458
|
+
rowIndex = _ref3.rowIndex,
|
|
459
|
+
col = _ref3.col,
|
|
460
|
+
record = _ref3.record;
|
|
554
461
|
return cellRanges.reduce(function (obj, cellRange) {
|
|
555
462
|
if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
|
|
556
463
|
var startRow = cellRange.startRow,
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
464
|
+
endRow = cellRange.endRow,
|
|
465
|
+
columns = cellRange.columns,
|
|
466
|
+
footerRowRange = cellRange.footerRowRange;
|
|
561
467
|
var _getRowIndex3 = getRowIndex(startRow, endRow),
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
468
|
+
startRowIndex = _getRowIndex3.startRowIndex,
|
|
469
|
+
endRowIndex = _getRowIndex3.endRowIndex;
|
|
565
470
|
var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
471
|
+
footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
|
|
472
|
+
footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
|
|
569
473
|
var startCol = columns[0];
|
|
570
474
|
var endCol = columns[columns.length - 1];
|
|
571
475
|
var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
|
|
572
476
|
var matchCellRangeLeft = col.code === startCol.code;
|
|
573
477
|
var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
|
|
574
|
-
var matchCellRangeRight = col.code === endCol.code;
|
|
575
|
-
|
|
478
|
+
var matchCellRangeRight = col.code === endCol.code;
|
|
479
|
+
// 如果样式已经匹配上了,就不需要再取计算的样式
|
|
576
480
|
obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
|
|
577
481
|
obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
|
|
578
482
|
obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;
|