@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,5 +1,4 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
|
-
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
|
|
3
2
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
4
3
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
5
4
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
@@ -21,34 +20,26 @@ export function rangeSelection(opts) {
|
|
|
21
20
|
var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
|
|
22
21
|
var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
|
|
23
22
|
var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
|
|
24
|
-
|
|
25
23
|
if (!tableBody) {
|
|
26
24
|
return pipeline;
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
var columns = pipeline.getColumns();
|
|
30
27
|
var dataSource = pipeline.getDataSource();
|
|
31
|
-
|
|
32
28
|
var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
|
|
33
29
|
var _a;
|
|
34
|
-
|
|
35
30
|
if (isFinished) {
|
|
36
31
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
|
|
40
34
|
(_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection, isFinished);
|
|
41
35
|
};
|
|
42
|
-
|
|
43
36
|
var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
|
|
44
37
|
if (!startDragCell || !draggingCell) return;
|
|
45
38
|
var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
|
|
46
|
-
|
|
47
39
|
var _getRangeSelectionRow = getRangeSelectionRowInfo(startDragCell, draggingCell, dataSource),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
startRow = _getRangeSelectionRow.startRow,
|
|
41
|
+
endRow = _getRangeSelectionRow.endRow,
|
|
42
|
+
footerRowRange = _getRangeSelectionRow.footerRowRange;
|
|
52
43
|
var cellRange = {
|
|
53
44
|
startRow: startRow,
|
|
54
45
|
endRow: endRow,
|
|
@@ -57,32 +48,25 @@ export function rangeSelection(opts) {
|
|
|
57
48
|
footerRowRange: footerRowRange
|
|
58
49
|
};
|
|
59
50
|
var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _toConsumableArray(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
|
|
60
|
-
|
|
61
51
|
if (isCellRangeSingleCell([cellRange])) {
|
|
62
52
|
var singleCellRangeId = getCellRangeId(cellRange);
|
|
63
53
|
cellRanges = _filterInstanceProperty(cellRanges).call(cellRanges, function (item) {
|
|
64
54
|
return getCellRangeId(item) !== singleCellRangeId;
|
|
65
55
|
});
|
|
66
56
|
}
|
|
67
|
-
|
|
68
57
|
cellRanges.push(cellRange);
|
|
69
|
-
|
|
70
58
|
if (isCellRangeSingleCell(cellRanges)) {
|
|
71
59
|
artTable.classList.remove(cx(Classes.rangeSelection));
|
|
72
60
|
} else {
|
|
73
61
|
artTable.classList.add(cx(Classes.rangeSelection));
|
|
74
62
|
}
|
|
75
|
-
|
|
76
63
|
rangeSelectedChange(cellRanges, isFinished);
|
|
77
64
|
};
|
|
78
|
-
|
|
79
65
|
var shiftKeySelect = function shiftKeySelect(event) {
|
|
80
66
|
var target = event.target;
|
|
81
67
|
var clickCell = getTargetCell(target, columns);
|
|
82
|
-
|
|
83
68
|
if (clickCell) {
|
|
84
69
|
var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
|
|
85
|
-
|
|
86
70
|
if (_lastClickCell) {
|
|
87
71
|
setRangeSelection(_lastClickCell, clickCell, true);
|
|
88
72
|
} else {
|
|
@@ -91,71 +75,58 @@ export function rangeSelection(opts) {
|
|
|
91
75
|
}
|
|
92
76
|
}
|
|
93
77
|
};
|
|
94
|
-
|
|
95
78
|
var updateScrollPosition = function updateScrollPosition(client) {
|
|
96
79
|
var clientX = client.clientX,
|
|
97
|
-
|
|
80
|
+
clientY = client.clientY;
|
|
98
81
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
99
82
|
var left = tableBodyClientRect.left,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
83
|
+
top = tableBodyClientRect.top,
|
|
84
|
+
height = tableBodyClientRect.height,
|
|
85
|
+
width = tableBodyClientRect.width;
|
|
104
86
|
if (clientX + SCROLL_OFFSET >= left + width) {
|
|
105
87
|
pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
|
|
106
88
|
}
|
|
107
|
-
|
|
108
89
|
if (clientX - SCROLL_OFFSET <= left) {
|
|
109
90
|
pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
|
|
110
91
|
}
|
|
111
|
-
|
|
112
92
|
if (clientY + SCROLL_OFFSET >= top + height) {
|
|
113
93
|
pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
|
|
114
94
|
}
|
|
115
|
-
|
|
116
95
|
if (clientY + SCROLL_OFFSET <= top) {
|
|
117
96
|
pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
|
|
118
97
|
}
|
|
119
98
|
};
|
|
120
|
-
|
|
121
99
|
var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
|
|
122
100
|
if (opts === null || opts === void 0 ? void 0 : opts.suppressMultiRangeSelection) {
|
|
123
101
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
|
|
124
102
|
return;
|
|
125
|
-
}
|
|
103
|
+
}
|
|
104
|
+
// ctrl 和shift 同时按时,优先生效shift
|
|
126
105
|
// 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
|
|
127
|
-
|
|
128
|
-
|
|
129
106
|
if (!isCtrlKey && !isShiftKey) {
|
|
130
107
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
108
|
+
}
|
|
109
|
+
// shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
|
|
134
110
|
if (isShiftKey) {
|
|
135
111
|
var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _toConsumableArray(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
|
|
136
|
-
|
|
137
112
|
_startDragCellRanges.pop();
|
|
138
|
-
|
|
139
113
|
pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
|
|
140
114
|
}
|
|
141
115
|
};
|
|
142
|
-
|
|
143
116
|
var onMouseDown = function onMouseDown(mouseDownEvent) {
|
|
144
|
-
if (mouseDownEvent.button !== 0 || !(isElementInEventPath(tableBody, mouseDownEvent.nativeEvent) || isElementInEventPath(tableFooter, mouseDownEvent.nativeEvent))) return;
|
|
145
|
-
|
|
117
|
+
if (mouseDownEvent.button !== 0 || !(isElementInEventPath(tableBody, mouseDownEvent.nativeEvent) || isElementInEventPath(tableFooter, mouseDownEvent.nativeEvent))) return;
|
|
118
|
+
// mouseDownEvent.preventDefault()
|
|
146
119
|
var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
|
|
147
120
|
var isShiftKey = mouseDownEvent.shiftKey;
|
|
148
121
|
var target = mouseDownEvent.target;
|
|
149
122
|
var startDragCell = getTargetCell(target, columns);
|
|
150
|
-
if (!startDragCell) return;
|
|
151
|
-
|
|
123
|
+
if (!startDragCell) return;
|
|
124
|
+
// 每次点击时先确认初始生效的框选范围
|
|
152
125
|
setStartSelectedCellRanges(isCtrlKey, isShiftKey);
|
|
153
|
-
|
|
154
126
|
if (isShiftKey) {
|
|
155
127
|
shiftKeySelect(mouseDownEvent);
|
|
156
128
|
return;
|
|
157
129
|
}
|
|
158
|
-
|
|
159
130
|
pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
|
|
160
131
|
var draggingCell = startDragCell;
|
|
161
132
|
var mousemove$ = fromEvent(window, 'mousemove');
|
|
@@ -167,11 +138,9 @@ export function rangeSelection(opts) {
|
|
|
167
138
|
clientX: mouseMoveEvent.clientX,
|
|
168
139
|
clientY: mouseMoveEvent.clientY
|
|
169
140
|
};
|
|
170
|
-
|
|
171
141
|
if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
|
|
172
142
|
updateScrollPosition(client);
|
|
173
143
|
}
|
|
174
|
-
|
|
175
144
|
return {
|
|
176
145
|
startDragCell: startDragCell,
|
|
177
146
|
draggingCell: draggingCell
|
|
@@ -180,7 +149,7 @@ export function rangeSelection(opts) {
|
|
|
180
149
|
rangeSelected$.subscribe({
|
|
181
150
|
next: function next(_ref) {
|
|
182
151
|
var startDragCell = _ref.startDragCell,
|
|
183
|
-
|
|
152
|
+
draggingCell = _ref.draggingCell;
|
|
184
153
|
setRangeSelection(startDragCell, draggingCell, false);
|
|
185
154
|
},
|
|
186
155
|
complete: function complete() {
|
|
@@ -188,14 +157,12 @@ export function rangeSelection(opts) {
|
|
|
188
157
|
}
|
|
189
158
|
});
|
|
190
159
|
};
|
|
191
|
-
|
|
192
160
|
var onKeyDown = function onKeyDown(e) {
|
|
193
161
|
if (!(isElementInEventPath(tableBody, e.nativeEvent) || isElementInEventPath(tableFooter, e.nativeEvent))) return;
|
|
194
|
-
|
|
195
162
|
if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
|
|
196
163
|
var rowLen = pipeline.getDataSource().length;
|
|
197
|
-
var footerDataSource = pipeline.getFooterDataSource() || [];
|
|
198
|
-
|
|
164
|
+
var footerDataSource = pipeline.getFooterDataSource() || [];
|
|
165
|
+
// 焦点位于可编辑的单元格内不做全选
|
|
199
166
|
if (columns.length && rowLen && !getElementEditable(e.target)) {
|
|
200
167
|
opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
|
|
201
168
|
artTable.classList.add(cx(Classes.rangeSelection));
|
|
@@ -212,13 +179,11 @@ export function rangeSelection(opts) {
|
|
|
212
179
|
}
|
|
213
180
|
}
|
|
214
181
|
};
|
|
215
|
-
|
|
216
182
|
pipeline.addTableProps({
|
|
217
183
|
onMouseDown: onMouseDown,
|
|
218
184
|
onKeyDown: onKeyDown,
|
|
219
185
|
tabIndex: -1
|
|
220
186
|
}); // todo: 后面可以把mousedown放到一个流里面
|
|
221
|
-
|
|
222
187
|
return pipeline.mapColumns(makeRecursiveMapper(function (col) {
|
|
223
188
|
var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
|
|
224
189
|
var prevGetCellProps = col.getCellProps;
|
|
@@ -243,11 +208,9 @@ export function rangeSelection(opts) {
|
|
|
243
208
|
}));
|
|
244
209
|
};
|
|
245
210
|
}
|
|
246
|
-
|
|
247
211
|
function getTargetCell(target, columns) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
var _ret = function () {
|
|
212
|
+
var _loop = function _loop() {
|
|
213
|
+
if (target.getAttribute('data-role') === 'table-cell') {
|
|
251
214
|
var columnCode = target.getAttribute('data-code');
|
|
252
215
|
var column = findByTree(columns, function (item, index) {
|
|
253
216
|
return item.code === columnCode;
|
|
@@ -264,61 +227,50 @@ function getTargetCell(target, columns) {
|
|
|
264
227
|
isFooterCell: isEleInFooter(target)
|
|
265
228
|
}
|
|
266
229
|
};
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
230
|
+
}
|
|
231
|
+
target = target.parentElement;
|
|
232
|
+
},
|
|
233
|
+
_ret;
|
|
234
|
+
while (target) {
|
|
235
|
+
_ret = _loop();
|
|
236
|
+
if (_ret) return _ret.v;
|
|
273
237
|
}
|
|
274
|
-
|
|
275
238
|
return null;
|
|
276
239
|
}
|
|
277
|
-
|
|
278
240
|
function isSameCell(cell1, cell2) {
|
|
279
241
|
return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
|
|
280
242
|
}
|
|
281
|
-
|
|
282
243
|
function isEleInFooter(target) {
|
|
283
244
|
while (target && !target.classList.contains(Classes.artTable)) {
|
|
284
245
|
if (target.classList.contains(Classes.tableFooter)) {
|
|
285
246
|
return true;
|
|
286
247
|
}
|
|
287
|
-
|
|
288
248
|
target = target.parentElement;
|
|
289
249
|
}
|
|
290
|
-
|
|
291
250
|
return false;
|
|
292
251
|
}
|
|
293
|
-
|
|
294
252
|
function getRangeColumns(startCell, endCell, columns) {
|
|
295
253
|
var flatColumns = collectNodes(columns, 'leaf-only');
|
|
296
|
-
|
|
297
254
|
var startIndex = _findIndexInstanceProperty(flatColumns).call(flatColumns, function (col) {
|
|
298
255
|
return col.code === startCell.code;
|
|
299
256
|
});
|
|
300
|
-
|
|
301
257
|
var endIndex = _findIndexInstanceProperty(flatColumns).call(flatColumns, function (col) {
|
|
302
258
|
return col.code === endCell.code;
|
|
303
259
|
});
|
|
304
|
-
|
|
305
260
|
if (startIndex < endIndex) {
|
|
306
261
|
return _sliceInstanceProperty(flatColumns).call(flatColumns, startIndex, endIndex + 1);
|
|
307
262
|
} else {
|
|
308
263
|
return _sliceInstanceProperty(flatColumns).call(flatColumns, endIndex, startIndex + 1);
|
|
309
264
|
}
|
|
310
265
|
}
|
|
311
|
-
|
|
312
266
|
function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
313
267
|
var footerRowRange = null;
|
|
314
268
|
var startRow = -1;
|
|
315
269
|
var endRow = -1;
|
|
316
|
-
|
|
317
270
|
var _getCellRangeRow = getCellRangeRow(startCell, endCell),
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
271
|
+
_startRow = _getCellRangeRow.startRow,
|
|
272
|
+
_endRow = _getCellRangeRow.endRow;
|
|
273
|
+
// 两个单元格都在表体
|
|
322
274
|
if (!startCell.isFooterCell && !endCell.isFooterCell) {
|
|
323
275
|
startRow = _startRow;
|
|
324
276
|
endRow = _endRow;
|
|
@@ -346,7 +298,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
|
346
298
|
};
|
|
347
299
|
}
|
|
348
300
|
}
|
|
349
|
-
|
|
350
301
|
return {
|
|
351
302
|
startRow: startRow,
|
|
352
303
|
endRow: endRow,
|
|
@@ -359,8 +310,6 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
|
|
|
359
310
|
* @param endCell 结束单元格
|
|
360
311
|
* @returns
|
|
361
312
|
*/
|
|
362
|
-
|
|
363
|
-
|
|
364
313
|
function getCellRangeRow(startCell, endCell) {
|
|
365
314
|
if (isSameCell(startCell, endCell)) {
|
|
366
315
|
return {
|
|
@@ -368,7 +317,6 @@ function getCellRangeRow(startCell, endCell) {
|
|
|
368
317
|
endRow: startCell.rowIndex
|
|
369
318
|
};
|
|
370
319
|
}
|
|
371
|
-
|
|
372
320
|
var isTopToBottom = startCell.rowIndex <= endCell.rowIndex;
|
|
373
321
|
var startRow = isTopToBottom ? startCell.rowIndex : startCell.rowIndex + startCell.rowSpan - 1;
|
|
374
322
|
var endRow = isTopToBottom ? endCell.rowIndex + endCell.rowSpan - 1 : endCell.rowIndex;
|
|
@@ -382,20 +330,17 @@ function getCellRangeRow(startCell, endCell) {
|
|
|
382
330
|
* @param cellRanges
|
|
383
331
|
* @returns
|
|
384
332
|
*/
|
|
385
|
-
|
|
386
|
-
|
|
387
333
|
function isCellRangeSingleCell(cellRanges) {
|
|
388
334
|
if (cellRanges.length !== 1) return false;
|
|
389
335
|
var _cellRanges$ = cellRanges[0],
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
336
|
+
startRow = _cellRanges$.startRow,
|
|
337
|
+
endRow = _cellRanges$.endRow,
|
|
338
|
+
columns = _cellRanges$.columns,
|
|
339
|
+
footerRowRange = _cellRanges$.footerRowRange;
|
|
394
340
|
var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
|
|
395
341
|
var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
|
|
396
342
|
return isBodySingleCell || isFooterSingleCell;
|
|
397
343
|
}
|
|
398
|
-
|
|
399
344
|
function getRowIndex(startRow, endRow) {
|
|
400
345
|
var isReverse = startRow > endRow;
|
|
401
346
|
var startRowIndex = isReverse ? endRow : startRow;
|
|
@@ -405,23 +350,18 @@ function getRowIndex(startRow, endRow) {
|
|
|
405
350
|
endRowIndex: endRowIndex
|
|
406
351
|
};
|
|
407
352
|
}
|
|
408
|
-
|
|
409
353
|
function getFooterRowIndex(footerRowRange) {
|
|
410
354
|
if (footerRowRange) {
|
|
411
355
|
return getRowIndex(footerRowRange.startRow, footerRowRange.endRow);
|
|
412
356
|
}
|
|
413
|
-
|
|
414
357
|
return {
|
|
415
358
|
startRowIndex: -1,
|
|
416
359
|
endRowIndex: -1
|
|
417
360
|
};
|
|
418
361
|
}
|
|
419
|
-
|
|
420
362
|
function getElementEditable(target) {
|
|
421
363
|
var _context;
|
|
422
|
-
|
|
423
364
|
if (!target) return;
|
|
424
|
-
|
|
425
365
|
if (_includesInstanceProperty(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
|
|
426
366
|
if (target.type === 'checkbox') return;
|
|
427
367
|
return !target.disabled && !target.readOnly;
|
|
@@ -435,26 +375,21 @@ function getElementEditable(target) {
|
|
|
435
375
|
* @param isFooterCell
|
|
436
376
|
* @returns
|
|
437
377
|
*/
|
|
438
|
-
|
|
439
|
-
|
|
440
378
|
function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
|
|
441
379
|
var startRow = cellRange.startRow,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
380
|
+
endRow = cellRange.endRow,
|
|
381
|
+
columns = cellRange.columns,
|
|
382
|
+
footerRowRange = cellRange.footerRowRange;
|
|
445
383
|
var isColInRanges = _findIndexInstanceProperty(columns).call(columns, function (item) {
|
|
446
384
|
return item.code === col.code;
|
|
447
385
|
}) !== -1;
|
|
448
386
|
if (!isColInRanges) return false;
|
|
449
|
-
|
|
450
387
|
var _getRowIndex = getRowIndex(startRow, endRow),
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
388
|
+
startRowIndex = _getRowIndex.startRowIndex,
|
|
389
|
+
endRowIndex = _getRowIndex.endRowIndex;
|
|
454
390
|
var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
391
|
+
footerStartRowIndex = _getFooterRowIndex.startRowIndex,
|
|
392
|
+
footerEndRowIndex = _getFooterRowIndex.endRowIndex;
|
|
458
393
|
var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
|
|
459
394
|
var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
|
|
460
395
|
var isRowInRange = footerMatch || bodyMatch;
|
|
@@ -465,22 +400,17 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
|
|
|
465
400
|
* @param {*} cellRange
|
|
466
401
|
* @returns
|
|
467
402
|
*/
|
|
468
|
-
|
|
469
|
-
|
|
470
403
|
export function getCellRangeId(cellRange) {
|
|
471
404
|
var startRow = cellRange.startRow,
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
405
|
+
endRow = cellRange.endRow,
|
|
406
|
+
footerRowRange = cellRange.footerRowRange,
|
|
407
|
+
columns = cellRange.columns;
|
|
476
408
|
var _getRowIndex2 = getRowIndex(startRow, endRow),
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
409
|
+
startRowIndex = _getRowIndex2.startRowIndex,
|
|
410
|
+
endRowIndex = _getRowIndex2.endRowIndex;
|
|
480
411
|
var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
412
|
+
footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
|
|
413
|
+
footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
|
|
484
414
|
var firstColId = columns[0].code;
|
|
485
415
|
var endColId = columns[columns.length - 1].code;
|
|
486
416
|
return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
|
|
@@ -491,58 +421,49 @@ export function getCellRangeId(cellRange) {
|
|
|
491
421
|
* @param param1
|
|
492
422
|
* @returns
|
|
493
423
|
*/
|
|
494
|
-
|
|
495
424
|
function getCellRangesClassName(cellRanges, _ref2) {
|
|
496
|
-
var _cx;
|
|
497
|
-
|
|
498
425
|
var isFooterCell = _ref2.isFooterCell,
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
426
|
+
rowIndex = _ref2.rowIndex,
|
|
427
|
+
col = _ref2.col,
|
|
428
|
+
record = _ref2.record;
|
|
503
429
|
var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
430
|
+
isFooterCell: isFooterCell,
|
|
431
|
+
rowIndex: rowIndex,
|
|
432
|
+
col: col,
|
|
433
|
+
record: record
|
|
434
|
+
}),
|
|
435
|
+
matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
|
|
436
|
+
matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
|
|
437
|
+
matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
|
|
438
|
+
matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
|
|
514
439
|
var isSingleCell = isCellRangeSingleCell(cellRanges);
|
|
515
|
-
var className = cx((
|
|
440
|
+
var className = cx(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, Classes.tableCellRangeSingleCell, isSingleCell), Classes.tableCellRangeSelected, !isSingleCell), Classes.tableCellRangeTop, !isSingleCell && matchCellRangeTop), Classes.tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), Classes.tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), Classes.tableCellRangeRight, !isSingleCell && matchCellRangeRight));
|
|
516
441
|
return className;
|
|
517
442
|
}
|
|
518
|
-
|
|
519
443
|
function getMatchBorderStyle(cellRanges, _ref3) {
|
|
520
444
|
var isFooterCell = _ref3.isFooterCell,
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
445
|
+
rowIndex = _ref3.rowIndex,
|
|
446
|
+
col = _ref3.col,
|
|
447
|
+
record = _ref3.record;
|
|
524
448
|
return cellRanges.reduce(function (obj, cellRange) {
|
|
525
449
|
if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
|
|
526
450
|
var startRow = cellRange.startRow,
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
451
|
+
endRow = cellRange.endRow,
|
|
452
|
+
columns = cellRange.columns,
|
|
453
|
+
footerRowRange = cellRange.footerRowRange;
|
|
531
454
|
var _getRowIndex3 = getRowIndex(startRow, endRow),
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
455
|
+
startRowIndex = _getRowIndex3.startRowIndex,
|
|
456
|
+
endRowIndex = _getRowIndex3.endRowIndex;
|
|
535
457
|
var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
458
|
+
footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
|
|
459
|
+
footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
|
|
539
460
|
var startCol = columns[0];
|
|
540
461
|
var endCol = columns[columns.length - 1];
|
|
541
462
|
var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
|
|
542
463
|
var matchCellRangeLeft = col.code === startCol.code;
|
|
543
464
|
var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
|
|
544
|
-
var matchCellRangeRight = col.code === endCol.code;
|
|
545
|
-
|
|
465
|
+
var matchCellRangeRight = col.code === endCol.code;
|
|
466
|
+
// 如果样式已经匹配上了,就不需要再取计算的样式
|
|
546
467
|
obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
|
|
547
468
|
obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
|
|
548
469
|
obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;
|