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