@kdcloudjs/table 1.0.1 → 1.0.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 +1 -1
- package/README.md +34 -33
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.css.map +1 -1
- package/dist/@kdcloudjs/table.js +6323 -3240
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +32 -24
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/_utils/hooks.js +1 -2
- package/es/_utils/numberUtil.js +3 -4
- package/es/locale/locale.js +1 -2
- package/es/table/base/calculations.js +2 -3
- package/es/table/base/header.d.ts +6 -2
- package/es/table/base/header.js +36 -13
- package/es/table/base/helpers/SpanManager.js +1 -1
- package/es/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/es/table/base/helpers/TableDOMUtils.js +23 -5
- package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/es/table/base/helpers/getRichVisibleRectsStream.js +216 -0
- package/es/table/base/html-table.d.ts +3 -1
- package/es/table/base/html-table.js +34 -8
- package/es/table/base/interfaces.d.ts +1 -0
- package/es/table/base/renderTemplates.d.ts +1 -0
- package/es/table/base/renderTemplates.js +344 -0
- package/es/table/base/styles.d.ts +14 -0
- package/es/table/base/styles.js +20 -8
- package/es/table/base/table.d.ts +12 -4
- package/es/table/base/table.js +183 -136
- package/es/table/base/utils.d.ts +6 -3
- package/es/table/base/utils.js +27 -6
- package/es/table/common-views.js +1 -1
- package/es/table/pipeline/features/autoFill.js +7 -1
- package/es/table/pipeline/features/columnDrag.js +109 -41
- package/es/table/pipeline/features/columnFilter.js +7 -9
- package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/es/table/pipeline/features/columnResizeWidth.js +11 -4
- package/es/table/pipeline/features/contextMenu.js +42 -10
- package/es/table/pipeline/features/filter/Filter.js +74 -37
- package/es/table/pipeline/features/index.d.ts +1 -0
- package/es/table/pipeline/features/index.js +2 -1
- package/es/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/es/table/pipeline/features/rangeSelection.js +231 -0
- package/es/table/pipeline/features/rowDetail.js +37 -15
- package/es/table/pipeline/features/singleSelect.js +4 -1
- package/es/table/pipeline/features/sort.js +2 -3
- package/es/table/pipeline/features/treeMode.js +1 -2
- package/es/table/pipeline/pipeline.d.ts +4 -0
- package/es/table/pipeline/pipeline.js +32 -5
- package/es/table/pivot/cross-table/buildCrossTable.js +1 -2
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -2
- package/es/table/pivot/pivot-utils/builders.js +1 -2
- package/es/table/pivot/pivot-utils/convert-utils.js +1 -2
- package/es/table/transforms/autoWidth.js +1 -2
- package/es/table/transforms/sort.js +1 -2
- package/es/table/transforms/treeMode.js +1 -2
- package/es/table/utils/applyTransforms.js +1 -3
- package/es/table/utils/browserType.d.ts +6 -0
- package/es/table/utils/browserType.js +6 -0
- package/es/table/utils/buildTree.js +4 -5
- package/es/table/utils/collectNodes.js +1 -2
- package/es/table/utils/exportTableAsExcel.js +1 -2
- package/es/table/utils/getTreeDepth.js +1 -2
- package/es/table/utils/groupBy.js +1 -2
- package/es/table/utils/index.d.ts +1 -0
- package/es/table/utils/index.js +2 -1
- package/es/table/utils/layeredSort.js +5 -2
- package/es/table/utils/makeRecursiveMapper.js +4 -5
- package/es/table/utils/others.d.ts +1 -1
- package/es/table/utils/others.js +20 -14
- package/es/table/utils/traverseColumn.js +1 -2
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +4 -5
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +4 -5
- package/lib/_utils/formatUtil.js +1 -1
- package/lib/_utils/hooks.js +2 -4
- package/lib/_utils/numberUtil.js +7 -9
- package/lib/_utils/usePopper.js +9 -1
- package/lib/config-provider/configProvider.js +9 -1
- package/lib/config-provider/index.js +5 -5
- package/lib/locale/index.js +14 -6
- package/lib/locale/locale.js +2 -4
- package/lib/table/base/calculations.js +3 -5
- package/lib/table/base/empty.js +9 -1
- package/lib/table/base/header.d.ts +6 -2
- package/lib/table/base/header.js +33 -10
- package/lib/table/base/helpers/SpanManager.js +1 -1
- package/lib/table/base/helpers/TableDOMUtils.d.ts +3 -0
- package/lib/table/base/helpers/TableDOMUtils.js +21 -5
- package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +246 -0
- package/lib/table/base/html-table.d.ts +3 -1
- package/lib/table/base/html-table.js +34 -8
- package/lib/table/base/index.js +4 -4
- package/lib/table/base/interfaces.d.ts +1 -0
- package/lib/table/base/renderTemplates.d.ts +1 -0
- package/lib/table/base/renderTemplates.js +370 -0
- package/lib/table/base/styles.d.ts +14 -0
- package/lib/table/base/styles.js +31 -12
- package/lib/table/base/table.d.ts +12 -4
- package/lib/table/base/table.js +191 -137
- package/lib/table/base/utils.d.ts +6 -3
- package/lib/table/base/utils.js +47 -10
- package/lib/table/common-views.js +2 -2
- package/lib/table/pipeline/features/__test__/sort.test.js +5 -3
- package/lib/table/pipeline/features/autoFill.js +9 -2
- package/lib/table/pipeline/features/columnDrag.js +108 -40
- package/lib/table/pipeline/features/columnFilter.js +6 -9
- package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/lib/table/pipeline/features/columnResizeWidth.js +21 -5
- package/lib/table/pipeline/features/contextMenu.js +53 -11
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -2
- package/lib/table/pipeline/features/filter/Filter.js +88 -37
- package/lib/table/pipeline/features/filter/FilterPanel.js +10 -2
- package/lib/table/pipeline/features/filter/index.js +4 -4
- package/lib/table/pipeline/features/index.d.ts +1 -0
- package/lib/table/pipeline/features/index.js +37 -27
- package/lib/table/pipeline/features/rangeSelection.d.ts +10 -0
- package/lib/table/pipeline/features/rangeSelection.js +256 -0
- package/lib/table/pipeline/features/rowDetail.js +39 -15
- package/lib/table/pipeline/features/singleSelect.js +4 -1
- package/lib/table/pipeline/features/sort.js +2 -4
- package/lib/table/pipeline/features/treeMode.js +2 -4
- package/lib/table/pipeline/index.js +11 -3
- package/lib/table/pipeline/pipeline.d.ts +4 -0
- package/lib/table/pipeline/pipeline.js +33 -7
- package/lib/table/pivot/cross-table/buildCrossTable.js +1 -3
- package/lib/table/pivot/cross-table/index.js +4 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -3
- package/lib/table/pivot/pivot-utils/builders.js +2 -4
- package/lib/table/pivot/pivot-utils/convert-utils.js +1 -3
- package/lib/table/pivot/pivot-utils/index.js +4 -4
- package/lib/table/transforms/autoWidth.js +10 -4
- package/lib/table/transforms/columnResize.js +10 -2
- package/lib/table/transforms/index.js +32 -32
- package/lib/table/transforms/sort.js +10 -4
- package/lib/table/transforms/treeMode.js +9 -3
- package/lib/table/utils/applyTransforms.js +1 -5
- package/lib/table/utils/browserType.d.ts +6 -0
- package/lib/table/utils/browserType.js +13 -0
- package/lib/table/utils/buildTree.js +1 -3
- package/lib/table/utils/collectNodes.js +1 -3
- package/lib/table/utils/copyToClipboard.js +1 -1
- package/lib/table/utils/element.js +3 -3
- package/lib/table/utils/exportTableAsExcel.js +1 -3
- package/lib/table/utils/getTreeDepth.js +1 -3
- package/lib/table/utils/groupBy.js +1 -3
- package/lib/table/utils/index.d.ts +1 -0
- package/lib/table/utils/index.js +57 -49
- package/lib/table/utils/layeredSort.js +6 -2
- package/lib/table/utils/makeRecursiveMapper.js +1 -3
- package/lib/table/utils/others.d.ts +1 -1
- package/lib/table/utils/others.js +23 -18
- package/lib/table/utils/traverseColumn.js +1 -3
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -7
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +5 -7
- package/package.json +6 -2
- package/dist/kd-table.css +0 -422
- package/dist/kd-table.css.map +0 -1
- package/dist/kd-table.js +0 -38578
- package/dist/kd-table.js.map +0 -1
- package/dist/kd-table.min.css +0 -9
- package/dist/kd-table.min.js +0 -208
- package/dist/kd-table.min.js.map +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/es/table/base/helpers/__test__/visible-part.test.js +0 -28
- package/es/table/base/helpers/visible-part.d.ts +0 -23
- package/es/table/base/helpers/visible-part.js +0 -58
- package/lib/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
- package/lib/table/base/helpers/__test__/visible-part.test.js +0 -31
- package/lib/table/base/helpers/visible-part.d.ts +0 -23
- package/lib/table/base/helpers/visible-part.js +0 -72
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
2
2
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
3
3
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
4
|
-
import { makeRecursiveMapper, mergeCellProps, collectNodes } from '../../utils';
|
|
4
|
+
import { makeRecursiveMapper, mergeCellProps, collectNodes, isLeafNode } from '../../utils';
|
|
5
5
|
import { FILL_COLUMN_CODE } from './autoFill';
|
|
6
6
|
var stateKey = 'columnDrag';
|
|
7
7
|
|
|
@@ -23,16 +23,16 @@ export function columnDrag() {
|
|
|
23
23
|
cloumnsSortData = _pipeline$getStateAtK.cloumnsSortData,
|
|
24
24
|
cloumnsTranslateData = _pipeline$getStateAtK.cloumnsTranslateData;
|
|
25
25
|
|
|
26
|
-
var columns = pipeline.getColumns();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
columns = sortColumns(columns, cloumnsSortData);
|
|
30
|
-
}
|
|
26
|
+
var columns = pipeline.getColumns(); // if (cloumnsSortData) {
|
|
27
|
+
// columns = sortColumns(columns, cloumnsSortData)
|
|
28
|
+
// }
|
|
31
29
|
|
|
32
30
|
pipeline.columns(_filterInstanceProperty(columns).call(columns, function (column) {
|
|
33
31
|
return column;
|
|
34
32
|
}));
|
|
35
|
-
return pipeline.mapColumns(makeRecursiveMapper(function (col) {
|
|
33
|
+
return pipeline.mapColumns(makeRecursiveMapper(function (col, recursiveFlatMapInfo) {
|
|
34
|
+
var path = recursiveFlatMapInfo.path,
|
|
35
|
+
isLeaf = recursiveFlatMapInfo.isLeaf;
|
|
36
36
|
var style = cloumnsTranslateData ? {
|
|
37
37
|
transition: '.3s',
|
|
38
38
|
transform: "translate3d(".concat(cloumnsTranslateData[col.code], "px, 0px, 0px)")
|
|
@@ -48,7 +48,7 @@ export function columnDrag() {
|
|
|
48
48
|
});
|
|
49
49
|
},
|
|
50
50
|
headerCellProps: mergeCellProps(col.headerCellProps, {
|
|
51
|
-
onMouseDown: function
|
|
51
|
+
onMouseDown: !isLeaf || path.length > 1 ? undefined : function (e) {
|
|
52
52
|
if (e.button !== 0) {
|
|
53
53
|
return;
|
|
54
54
|
} // const cx = e.clientX
|
|
@@ -81,6 +81,7 @@ export function columnDrag() {
|
|
|
81
81
|
var rect = e.currentTarget.parentElement.getClientRects()[0];
|
|
82
82
|
var startX = rect.left;
|
|
83
83
|
var moveData = [];
|
|
84
|
+
var allColumns = collectNodes(columns);
|
|
84
85
|
|
|
85
86
|
function handleMouseMove(e) {
|
|
86
87
|
if (e.clientX - startX < 20) {
|
|
@@ -90,21 +91,7 @@ export function columnDrag() {
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
document.body.style.userSelect = 'none';
|
|
93
|
-
currentTarget.style.cursor = 'move'; //
|
|
94
|
-
|
|
95
|
-
var replaceIndex = 0;
|
|
96
|
-
var totalWitdth = columns[replaceIndex].width;
|
|
97
|
-
|
|
98
|
-
while (totalWitdth < e.clientX - startX && replaceIndex < columns.length - 1) {
|
|
99
|
-
replaceIndex++;
|
|
100
|
-
totalWitdth += columns[replaceIndex].width;
|
|
101
|
-
} // 重置位置信息
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
cloumnsTranslateData = {};
|
|
105
|
-
columns.forEach(function (item) {
|
|
106
|
-
cloumnsTranslateData[item.code] = 0;
|
|
107
|
-
}); // 循环计算每一个的位置
|
|
94
|
+
currentTarget.style.cursor = 'move'; // 循环计算每一个的位置
|
|
108
95
|
// if (startIndex !== replaceIndex) {
|
|
109
96
|
// const optionColumn = columns[startIndex]
|
|
110
97
|
// const move = startIndex > replaceIndex ? 1 : -1
|
|
@@ -126,11 +113,24 @@ export function columnDrag() {
|
|
|
126
113
|
// }
|
|
127
114
|
// index++
|
|
128
115
|
// }
|
|
129
|
-
//
|
|
116
|
+
// 重置位置信息
|
|
117
|
+
|
|
118
|
+
cloumnsTranslateData = {};
|
|
119
|
+
allColumns.forEach(function (item) {
|
|
120
|
+
cloumnsTranslateData[item.code] = 0;
|
|
121
|
+
}); // 计算平移位置
|
|
122
|
+
|
|
123
|
+
var replaceIndex = 0;
|
|
124
|
+
var totalWitdth = getColumnWidth(columns[replaceIndex]);
|
|
125
|
+
|
|
126
|
+
while (totalWitdth < e.clientX - startX && replaceIndex < columns.length - 1) {
|
|
127
|
+
replaceIndex++;
|
|
128
|
+
totalWitdth += getColumnWidth(columns[replaceIndex]);
|
|
129
|
+
} // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
|
|
130
|
+
|
|
130
131
|
|
|
131
132
|
var startIndex;
|
|
132
|
-
|
|
133
|
-
leafColumns.forEach(function (column, index) {
|
|
133
|
+
columns.forEach(function (column, index) {
|
|
134
134
|
if (column.code === col.code) {
|
|
135
135
|
startIndex = index;
|
|
136
136
|
}
|
|
@@ -141,11 +141,25 @@ export function columnDrag() {
|
|
|
141
141
|
if (startIndex > replaceIndex) {
|
|
142
142
|
// 左移
|
|
143
143
|
while (index < startIndex) {
|
|
144
|
-
var
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
var _columns$index = columns[index],
|
|
145
|
+
code = _columns$index.code,
|
|
146
|
+
lock = _columns$index.lock,
|
|
147
|
+
width = _columns$index.width,
|
|
148
|
+
children = _columns$index.children;
|
|
149
|
+
|
|
150
|
+
if (enableMove({
|
|
151
|
+
code: code,
|
|
152
|
+
lock: lock
|
|
153
|
+
})) {
|
|
147
154
|
cloumnsTranslateData[code] += optionColumn.width;
|
|
148
|
-
|
|
155
|
+
|
|
156
|
+
if (isLeafNode(columns[index])) {
|
|
157
|
+
cloumnsTranslateData[optionColumn.code] -= width;
|
|
158
|
+
} else {
|
|
159
|
+
cloumnsTranslateData[optionColumn.code] -= getColumnWidth(columns[index]);
|
|
160
|
+
moveAllChildren(children, cloumnsTranslateData, optionColumn.width);
|
|
161
|
+
}
|
|
162
|
+
|
|
149
163
|
columnMoved = true;
|
|
150
164
|
}
|
|
151
165
|
|
|
@@ -154,17 +168,30 @@ export function columnDrag() {
|
|
|
154
168
|
} else if (startIndex < replaceIndex) {
|
|
155
169
|
// 右移
|
|
156
170
|
while (startIndex < index) {
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
171
|
+
var _columns$index2 = columns[index],
|
|
172
|
+
_code = _columns$index2.code,
|
|
173
|
+
_lock = _columns$index2.lock,
|
|
174
|
+
_width = _columns$index2.width,
|
|
175
|
+
_children = _columns$index2.children;
|
|
176
|
+
|
|
177
|
+
if (enableMove({
|
|
178
|
+
code: _code,
|
|
179
|
+
lock: _lock
|
|
180
|
+
})) {
|
|
160
181
|
cloumnsTranslateData[_code] -= optionColumn.width;
|
|
161
|
-
|
|
182
|
+
|
|
183
|
+
if (isLeafNode(columns[index])) {
|
|
184
|
+
cloumnsTranslateData[optionColumn.code] += _width;
|
|
185
|
+
} else {
|
|
186
|
+
cloumnsTranslateData[optionColumn.code] += getColumnWidth(columns[index]);
|
|
187
|
+
moveAllChildren(_children, cloumnsTranslateData, optionColumn.width, true);
|
|
188
|
+
}
|
|
189
|
+
|
|
162
190
|
columnMoved = true;
|
|
163
191
|
}
|
|
164
192
|
|
|
165
193
|
index--;
|
|
166
194
|
}
|
|
167
|
-
} else {// 不动或者移动回原位
|
|
168
195
|
}
|
|
169
196
|
|
|
170
197
|
window.requestAnimationFrame(function () {
|
|
@@ -200,9 +227,14 @@ export function columnDrag() {
|
|
|
200
227
|
if (startIndex > replaceIndex) {
|
|
201
228
|
// 左移
|
|
202
229
|
while (index < startIndex) {
|
|
203
|
-
var
|
|
204
|
-
|
|
205
|
-
|
|
230
|
+
var _columns$index3 = columns[index],
|
|
231
|
+
code = _columns$index3.code,
|
|
232
|
+
lock = _columns$index3.lock;
|
|
233
|
+
|
|
234
|
+
if (enableMove({
|
|
235
|
+
code: code,
|
|
236
|
+
lock: lock
|
|
237
|
+
})) {
|
|
206
238
|
cloumnsSortData[code] += 1;
|
|
207
239
|
cloumnsSortData[optionColumn.code] -= 1;
|
|
208
240
|
columnMoved = true;
|
|
@@ -213,9 +245,14 @@ export function columnDrag() {
|
|
|
213
245
|
} else if (startIndex < replaceIndex) {
|
|
214
246
|
// 右移
|
|
215
247
|
while (index > startIndex) {
|
|
216
|
-
var
|
|
217
|
-
|
|
218
|
-
|
|
248
|
+
var _columns$index4 = columns[index],
|
|
249
|
+
_code2 = _columns$index4.code,
|
|
250
|
+
_lock2 = _columns$index4.lock;
|
|
251
|
+
|
|
252
|
+
if (enableMove({
|
|
253
|
+
code: _code2,
|
|
254
|
+
lock: _lock2
|
|
255
|
+
})) {
|
|
219
256
|
cloumnsSortData[_code2] -= 1;
|
|
220
257
|
cloumnsSortData[optionColumn.code] += 1;
|
|
221
258
|
columnMoved = true;
|
|
@@ -262,4 +299,35 @@ export function columnDrag() {
|
|
|
262
299
|
});
|
|
263
300
|
}));
|
|
264
301
|
};
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
function enableMove(_ref2) {
|
|
305
|
+
var lock = _ref2.lock,
|
|
306
|
+
code = _ref2.code;
|
|
307
|
+
return code && code !== FILL_COLUMN_CODE && !lock;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
function getColumnWidth(col) {
|
|
311
|
+
if (col.children) {
|
|
312
|
+
return col.children.reduce(function (acc, col) {
|
|
313
|
+
return acc + getColumnWidth(col);
|
|
314
|
+
}, 0);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
return col.width;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
function moveAllChildren(cols, cloumnsTranslateData, width, isMinus) {
|
|
321
|
+
cols.forEach(function (col) {
|
|
322
|
+
var _a;
|
|
323
|
+
|
|
324
|
+
var code = col.code,
|
|
325
|
+
children = col.children;
|
|
326
|
+
var movedWidth = (_a = cloumnsTranslateData[code]) !== null && _a !== void 0 ? _a : 0;
|
|
327
|
+
cloumnsTranslateData[code] = movedWidth + (isMinus ? -width : width);
|
|
328
|
+
|
|
329
|
+
if (!isLeafNode(col)) {
|
|
330
|
+
moveAllChildren(children, cloumnsTranslateData, width);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
265
333
|
}
|
|
@@ -8,11 +8,10 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
|
|
|
8
8
|
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
|
9
9
|
import _valuesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/values";
|
|
10
10
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
11
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
|
12
11
|
import React from 'react';
|
|
13
12
|
import cx from 'classnames';
|
|
14
13
|
import { internals } from '../../internals';
|
|
15
|
-
import { isLeafNode,
|
|
14
|
+
import { isLeafNode, collectNodes } from '../../utils';
|
|
16
15
|
import { Filter, DEFAULT_FILTER_OPTIONS } from './filter';
|
|
17
16
|
import { Classes } from '../../base/styles';
|
|
18
17
|
var stateKey = 'filter';
|
|
@@ -94,12 +93,11 @@ export function filter() {
|
|
|
94
93
|
isFilterActive: filterActive,
|
|
95
94
|
className: cx((_cx = {}, _defineProperty(_cx, Classes.tableFilterTrigger, true), _defineProperty(_cx, "active", filterActive), _cx)),
|
|
96
95
|
stopClickEventPropagation: stopClickEventPropagation
|
|
97
|
-
})]);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
});
|
|
96
|
+
})]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
|
|
97
|
+
// style: {
|
|
98
|
+
// paddingRight: '18px'
|
|
99
|
+
// }
|
|
100
|
+
// })
|
|
103
101
|
}
|
|
104
102
|
|
|
105
103
|
if (!isLeafNode(col)) {
|
|
@@ -157,7 +155,7 @@ export function filter() {
|
|
|
157
155
|
});
|
|
158
156
|
}
|
|
159
157
|
|
|
160
|
-
return
|
|
158
|
+
return dataSource.reduce(function (pre, record) {
|
|
161
159
|
if (isMatchedFilterCondition(record)) {
|
|
162
160
|
return _concatInstanceProperty(pre).call(pre, [record]);
|
|
163
161
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArtColumn } from '../../interfaces';
|
|
1
3
|
import { TablePipeline } from '../pipeline';
|
|
2
4
|
interface ColumnSize {
|
|
3
5
|
[key: string]: number;
|
|
@@ -14,6 +16,7 @@ export interface ColumnResizeOptions {
|
|
|
14
16
|
fallbackSize?: number;
|
|
15
17
|
/** 列的最大宽度,默认为 1000 */
|
|
16
18
|
maxSize?: number;
|
|
19
|
+
doubleClickCallback?(e: React.MouseEvent<HTMLSpanElement>, col: ArtColumn): void;
|
|
17
20
|
onChangeSize?(nextSize: ColumnSize): void;
|
|
18
21
|
afterChangeSize?(nextSize: ColumnSize, changedColumnSize: ChangedColumnSize[]): void;
|
|
19
22
|
}
|
|
@@ -3,7 +3,6 @@ import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplat
|
|
|
3
3
|
|
|
4
4
|
var _templateObject, _templateObject2;
|
|
5
5
|
|
|
6
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
|
7
6
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
8
7
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
9
8
|
import React from 'react';
|
|
@@ -74,6 +73,10 @@ export function columnResize() {
|
|
|
74
73
|
});
|
|
75
74
|
};
|
|
76
75
|
|
|
76
|
+
var handleDoubleClick = function handleDoubleClick(e, col) {
|
|
77
|
+
opts === null || opts === void 0 ? void 0 : opts.doubleClickCallback(e, col);
|
|
78
|
+
};
|
|
79
|
+
|
|
77
80
|
var handleMouseDown = function handleMouseDown(e, col) {
|
|
78
81
|
window.addEventListener('selectstart', disableSelect);
|
|
79
82
|
var changedColumnSize = {};
|
|
@@ -92,12 +95,10 @@ export function columnResize() {
|
|
|
92
95
|
|
|
93
96
|
if ((children === null || children === void 0 ? void 0 : children.length) > 0) {
|
|
94
97
|
var leafChildColumns = collectNodes(children, 'leaf-only');
|
|
95
|
-
|
|
96
|
-
var childrenWidthSum = _reduceInstanceProperty(leafChildColumns).call(leafChildColumns, function (sum, _ref2) {
|
|
98
|
+
var childrenWidthSum = leafChildColumns.reduce(function (sum, _ref2) {
|
|
97
99
|
var code = _ref2.code;
|
|
98
100
|
return sum + columnSize[code];
|
|
99
101
|
}, 0);
|
|
100
|
-
|
|
101
102
|
leafChildColumns.forEach(function (_ref3, index) {
|
|
102
103
|
var code = _ref3.code;
|
|
103
104
|
var startSize = columnSize[code];
|
|
@@ -155,11 +156,17 @@ export function columnResize() {
|
|
|
155
156
|
width: (_a = columnSize[code]) !== null && _a !== void 0 ? _a : width,
|
|
156
157
|
title: /*#__PURE__*/React.createElement(React.Fragment, null, prevTitle, (features === null || features === void 0 ? void 0 : features.resizeable) !== false && (isGroup ? /*#__PURE__*/React.createElement(TableHeaderGroupCellResize, {
|
|
157
158
|
className: Classes.tableHeaderCellResize,
|
|
159
|
+
onDoubleClick: function onDoubleClick(e) {
|
|
160
|
+
return handleDoubleClick(e, col);
|
|
161
|
+
},
|
|
158
162
|
onMouseDown: function onMouseDown(e) {
|
|
159
163
|
return handleMouseDown(e, col);
|
|
160
164
|
}
|
|
161
165
|
}) : /*#__PURE__*/React.createElement(TableHeaderCellResize, {
|
|
162
166
|
className: Classes.tableHeaderCellResize,
|
|
167
|
+
onDoubleClick: function onDoubleClick(e) {
|
|
168
|
+
return handleDoubleClick(e, col);
|
|
169
|
+
},
|
|
163
170
|
onMouseDown: function onMouseDown(e) {
|
|
164
171
|
return handleMouseDown(e, col);
|
|
165
172
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
|
|
1
2
|
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
|
|
3
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
4
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
3
5
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
4
6
|
import React, { useRef, useEffect } from 'react';
|
|
5
7
|
import ReactDOM from 'react-dom';
|
|
8
|
+
import cx from 'classnames';
|
|
6
9
|
import { ContextMenuStyleWrap } from '../../common-views';
|
|
7
10
|
import { copyDataToClipboard, executeOnTempElement, console, getEventPath, isElementInEventPath, getTargetEleInEventPath } from '../../utils';
|
|
8
11
|
import { findByTree } from '../../utils/others';
|
|
9
12
|
import { internals } from '../../internals';
|
|
10
|
-
import { MenuClasses } from '../../base/styles';
|
|
13
|
+
import { Classes, MenuClasses } from '../../base/styles';
|
|
11
14
|
var stateKey = 'contextMenu';
|
|
12
15
|
export function contextMenu() {
|
|
13
16
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -45,6 +48,10 @@ export function contextMenu() {
|
|
|
45
48
|
};
|
|
46
49
|
|
|
47
50
|
var onContextMenu = function onContextMenu(e) {
|
|
51
|
+
if (suppressShowContextMenu(e)) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
48
55
|
e.preventDefault();
|
|
49
56
|
showContextMenu(e);
|
|
50
57
|
};
|
|
@@ -53,7 +60,7 @@ export function contextMenu() {
|
|
|
53
60
|
onContextMenu: onContextMenu
|
|
54
61
|
});
|
|
55
62
|
|
|
56
|
-
var getContextMenuOptions = function getContextMenuOptions(record, column, value) {
|
|
63
|
+
var getContextMenuOptions = function getContextMenuOptions(record, column, value, event) {
|
|
57
64
|
var defaultMenuOptions = [];
|
|
58
65
|
|
|
59
66
|
if (column) {
|
|
@@ -64,7 +71,8 @@ export function contextMenu() {
|
|
|
64
71
|
var params = {
|
|
65
72
|
record: record,
|
|
66
73
|
column: column,
|
|
67
|
-
value: value
|
|
74
|
+
value: value,
|
|
75
|
+
event: event
|
|
68
76
|
};
|
|
69
77
|
return opts.getContextMenuItems(params);
|
|
70
78
|
}
|
|
@@ -95,10 +103,10 @@ export function contextMenu() {
|
|
|
95
103
|
|
|
96
104
|
var record = dataSource[rowIndex];
|
|
97
105
|
var column = code !== undefined && findByTree(pipeline.getColumns(), function (item, index) {
|
|
98
|
-
return item.code === code
|
|
106
|
+
return item.code === code;
|
|
99
107
|
});
|
|
100
108
|
var value = column && record && internals.safeGetValue(column, record, rowIndex);
|
|
101
|
-
var options = getContextMenuOptions(record, column, value);
|
|
109
|
+
var options = getContextMenuOptions(record, column, value, e);
|
|
102
110
|
|
|
103
111
|
if (options.length === 0) {
|
|
104
112
|
console.warn('context menu options is empty');
|
|
@@ -180,6 +188,7 @@ function Menu(props) {
|
|
|
180
188
|
}),
|
|
181
189
|
name: item.name,
|
|
182
190
|
action: item.action,
|
|
191
|
+
disabled: item.disabled,
|
|
183
192
|
hideContextMenu: hideContextMenu
|
|
184
193
|
});
|
|
185
194
|
})));
|
|
@@ -193,6 +202,10 @@ function MenuItem(props) {
|
|
|
193
202
|
var itemRef = useRef();
|
|
194
203
|
|
|
195
204
|
var handleClick = function handleClick() {
|
|
205
|
+
if (disabled) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
|
|
196
209
|
hideContextMenu();
|
|
197
210
|
typeof action === 'function' && action();
|
|
198
211
|
};
|
|
@@ -224,7 +237,7 @@ function MenuItem(props) {
|
|
|
224
237
|
};
|
|
225
238
|
|
|
226
239
|
return /*#__PURE__*/React.createElement("div", {
|
|
227
|
-
className: MenuClasses.menuOption,
|
|
240
|
+
className: cx(MenuClasses.menuOption, _defineProperty({}, MenuClasses.menuOptionDisable, disabled)),
|
|
228
241
|
ref: itemRef,
|
|
229
242
|
onClick: handleClick,
|
|
230
243
|
onMouseEnter: handleMouseEnter,
|
|
@@ -234,7 +247,7 @@ function MenuItem(props) {
|
|
|
234
247
|
}, name));
|
|
235
248
|
}
|
|
236
249
|
|
|
237
|
-
var MenuHelper = function MenuHelper() {
|
|
250
|
+
var MenuHelper = /*#__PURE__*/_createClass(function MenuHelper() {
|
|
238
251
|
var _this = this;
|
|
239
252
|
|
|
240
253
|
_classCallCheck(this, MenuHelper);
|
|
@@ -247,7 +260,7 @@ var MenuHelper = function MenuHelper() {
|
|
|
247
260
|
_this.hidePopup && _this.hidePopup();
|
|
248
261
|
_this.hidePopup = null;
|
|
249
262
|
};
|
|
250
|
-
};
|
|
263
|
+
});
|
|
251
264
|
/** 是否点击是外部 start */
|
|
252
265
|
|
|
253
266
|
|
|
@@ -331,13 +344,13 @@ function keepWithinBounds(popupParent, ePopup, x, y) {
|
|
|
331
344
|
var minWidth = Math.min(ePopupRect.width, 120);
|
|
332
345
|
ePopup.style.minWidth = minWidth + 'px';
|
|
333
346
|
var maxX = parentWidth - minWidth;
|
|
334
|
-
x = Math.min(Math.max(x, 0), Math.abs(maxX));
|
|
347
|
+
x = Math.min(Math.max(x, 0), Math.abs(maxX)); // 目前位置,最大支持的位置
|
|
335
348
|
}
|
|
336
349
|
|
|
337
350
|
if (y) {
|
|
338
351
|
var minHeight = Math.min(ePopupRect.height, 180);
|
|
339
352
|
var maxY = parentHeight - minHeight;
|
|
340
|
-
y = Math.min(Math.max(y, 0), Math.abs(maxY));
|
|
353
|
+
y = Math.min(Math.max(y, 0), Math.abs(maxY)); // 目前位置,最大支持的位置
|
|
341
354
|
}
|
|
342
355
|
|
|
343
356
|
return {
|
|
@@ -358,6 +371,25 @@ function getRowEleForEvent(event, dataSource) {
|
|
|
358
371
|
return getRowEleInEventPath(getEventPath(event));
|
|
359
372
|
}
|
|
360
373
|
/** 获得点击的元素 end */
|
|
374
|
+
// 禁止弹出右键菜单
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
function suppressShowContextMenu(e) {
|
|
378
|
+
var path = getEventPath(e.nativeEvent);
|
|
379
|
+
var pointIndex = 0;
|
|
380
|
+
|
|
381
|
+
while (pointIndex < path.length) {
|
|
382
|
+
var ele = path[pointIndex];
|
|
383
|
+
|
|
384
|
+
if (ele.classList.contains(Classes.tableBody) || ele.classList.contains(Classes.tableFooter)) {
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
pointIndex++;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
return true;
|
|
392
|
+
} // 默认选项
|
|
361
393
|
|
|
362
394
|
|
|
363
395
|
function getCopyItem(v) {
|
|
@@ -1,38 +1,86 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
1
2
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
2
3
|
import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplateLiteral";
|
|
3
4
|
|
|
4
5
|
var _templateObject;
|
|
5
6
|
|
|
6
|
-
import React from 'react';
|
|
7
|
+
import React, { useEffect } from 'react';
|
|
7
8
|
import { createPortal } from 'react-dom';
|
|
8
9
|
import styled from 'styled-components';
|
|
9
10
|
import { Classes } from '../../../base/styles';
|
|
10
11
|
import FilterPanel from './FilterPanel';
|
|
11
12
|
import DefaultFilterContent from './DefaultFilterContent';
|
|
12
13
|
import { calculatePopupRelative } from '../../../utils';
|
|
13
|
-
|
|
14
|
+
import { addResizeObserver } from '../../../base/utils';
|
|
15
|
+
import cx from 'classnames';
|
|
16
|
+
var HEADER_ICON_OFFSET_Y = 6 + 1; // padding-top + border
|
|
14
17
|
|
|
15
|
-
var HEADER_ICON_OFFSET_X = 16 + 1; //padding-left+ border
|
|
18
|
+
var HEADER_ICON_OFFSET_X = 16 + 1; // padding-left+ border
|
|
16
19
|
|
|
17
|
-
var FilterIconSpanStyle = styled.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n right: 4px;\n cursor: pointer;\n transform: translateY(-50%);\n top: 50%;\n height: 12px; \n"])));
|
|
20
|
+
var FilterIconSpanStyle = styled.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n // position: absolute;\n // right: 4px;\n // cursor: pointer;\n // transform: translateY(-50%);\n // top: 50%;\n // height: 12px; \n"])));
|
|
18
21
|
|
|
19
|
-
function
|
|
20
|
-
var
|
|
21
|
-
size = _ref$size === void 0 ? 12 : _ref$size,
|
|
22
|
-
style = _ref.style,
|
|
23
|
-
className = _ref.className,
|
|
24
|
-
FilterPanelContent = _ref.FilterPanelContent,
|
|
22
|
+
function Panel(_ref) {
|
|
23
|
+
var ele = _ref.ele,
|
|
25
24
|
filterIcon = _ref.filterIcon,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
isFilterActive = _ref.isFilterActive,
|
|
30
|
-
stopClickEventPropagation = _ref.stopClickEventPropagation;
|
|
25
|
+
hidePanel = _ref.hidePanel,
|
|
26
|
+
renderPanelContent = _ref.renderPanelContent;
|
|
27
|
+
var filterPanelRef = React.useRef(null);
|
|
31
28
|
|
|
32
|
-
var _React$useState = React.useState(
|
|
29
|
+
var _React$useState = React.useState(calculatePopupRelative(ele, document.body, {
|
|
30
|
+
x: HEADER_ICON_OFFSET_X,
|
|
31
|
+
y: HEADER_ICON_OFFSET_Y
|
|
32
|
+
})),
|
|
33
33
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
position = _React$useState2[0],
|
|
35
|
+
setPosition = _React$useState2[1];
|
|
36
|
+
|
|
37
|
+
var style = {
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
zIndex: 1050
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var handleFilterPanelResize = function handleFilterPanelResize(resize) {
|
|
43
|
+
setPosition(calculatePopupRelative(ele, document.body, {
|
|
44
|
+
x: HEADER_ICON_OFFSET_X,
|
|
45
|
+
y: HEADER_ICON_OFFSET_Y
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
var resizeObserver = addResizeObserver(filterPanelRef.current.children[0], handleFilterPanelResize);
|
|
51
|
+
return function () {
|
|
52
|
+
resizeObserver && resizeObserver.disconnect();
|
|
53
|
+
};
|
|
54
|
+
}, []);
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
ref: filterPanelRef
|
|
57
|
+
}, /*#__PURE__*/React.createElement(FilterPanel, {
|
|
58
|
+
style: style,
|
|
59
|
+
onClose: hidePanel,
|
|
60
|
+
position: position,
|
|
61
|
+
filterIcon: filterIcon
|
|
62
|
+
}, renderPanelContent()));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function Filter(_ref2) {
|
|
66
|
+
var _cx;
|
|
67
|
+
|
|
68
|
+
var _ref2$size = _ref2.size,
|
|
69
|
+
size = _ref2$size === void 0 ? 12 : _ref2$size,
|
|
70
|
+
style = _ref2.style,
|
|
71
|
+
className = _ref2.className,
|
|
72
|
+
FilterPanelContent = _ref2.FilterPanelContent,
|
|
73
|
+
filterIcon = _ref2.filterIcon,
|
|
74
|
+
setFilter = _ref2.setFilter,
|
|
75
|
+
setFilterModel = _ref2.setFilterModel,
|
|
76
|
+
filterModel = _ref2.filterModel,
|
|
77
|
+
isFilterActive = _ref2.isFilterActive,
|
|
78
|
+
stopClickEventPropagation = _ref2.stopClickEventPropagation;
|
|
79
|
+
|
|
80
|
+
var _React$useState3 = React.useState(false),
|
|
81
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
82
|
+
showPanel = _React$useState4[0],
|
|
83
|
+
setShowPanel = _React$useState4[1];
|
|
36
84
|
|
|
37
85
|
var iconRef = React.useRef(null);
|
|
38
86
|
|
|
@@ -62,23 +110,6 @@ function Filter(_ref) {
|
|
|
62
110
|
}
|
|
63
111
|
};
|
|
64
112
|
|
|
65
|
-
var renderPanel = function renderPanel(ele) {
|
|
66
|
-
var position = calculatePopupRelative(ele, document.body, {
|
|
67
|
-
x: HEADER_ICON_OFFSET_X,
|
|
68
|
-
y: HEADER_ICON_OFFSET_Y
|
|
69
|
-
});
|
|
70
|
-
var style = {
|
|
71
|
-
position: 'absolute',
|
|
72
|
-
zIndex: 1050
|
|
73
|
-
};
|
|
74
|
-
return /*#__PURE__*/React.createElement(FilterPanel, {
|
|
75
|
-
style: style,
|
|
76
|
-
onClose: hidePanel,
|
|
77
|
-
position: position,
|
|
78
|
-
filterIcon: filterIcon
|
|
79
|
-
}, renderPanelContent());
|
|
80
|
-
};
|
|
81
|
-
|
|
82
113
|
var handleIconClick = function handleIconClick(e) {
|
|
83
114
|
if (stopClickEventPropagation) {
|
|
84
115
|
e.stopPropagation();
|
|
@@ -87,9 +118,10 @@ function Filter(_ref) {
|
|
|
87
118
|
setShowPanel(true);
|
|
88
119
|
};
|
|
89
120
|
|
|
121
|
+
var iconClassName = cx((_cx = {}, _defineProperty(_cx, className, true), _defineProperty(_cx, 'filter-panel-open', showPanel), _cx));
|
|
90
122
|
return /*#__PURE__*/React.createElement(FilterIconSpanStyle, {
|
|
91
123
|
style: style,
|
|
92
|
-
className:
|
|
124
|
+
className: iconClassName,
|
|
93
125
|
onMouseDown: handleMouseDown,
|
|
94
126
|
ref: iconRef
|
|
95
127
|
}, /*#__PURE__*/React.createElement("span", {
|
|
@@ -105,7 +137,12 @@ function Filter(_ref) {
|
|
|
105
137
|
"aria-hidden": "true"
|
|
106
138
|
}, /*#__PURE__*/React.createElement("path", {
|
|
107
139
|
d: "M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3\n 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5\n 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"
|
|
108
|
-
}))), showPanel && /*#__PURE__*/createPortal(
|
|
140
|
+
}))), showPanel && /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(Panel, {
|
|
141
|
+
ele: iconRef.current,
|
|
142
|
+
filterIcon: filterIcon,
|
|
143
|
+
hidePanel: hidePanel,
|
|
144
|
+
renderPanelContent: renderPanelContent
|
|
145
|
+
}), document.body));
|
|
109
146
|
}
|
|
110
147
|
|
|
111
148
|
export default Filter;
|
|
@@ -14,3 +14,4 @@ export { columnDrag, ColumnDragOptions } from './columnDrag';
|
|
|
14
14
|
export { columnResize, ColumnResizeOptions } from './columnResizeWidth';
|
|
15
15
|
export { contextMenu, ContextMenuFeatureOptions } from './contextMenu';
|
|
16
16
|
export { filter, FilterFeatureOptions } from './columnFilter';
|
|
17
|
+
export { rangeSelection, RangeSelectionFeatureOptions } from './rangeSelection';
|
|
@@ -13,4 +13,5 @@ export { treeSelect } from './treeSelect';
|
|
|
13
13
|
export { columnDrag } from './columnDrag';
|
|
14
14
|
export { columnResize } from './columnResizeWidth';
|
|
15
15
|
export { contextMenu } from './contextMenu';
|
|
16
|
-
export { filter } from './columnFilter';
|
|
16
|
+
export { filter } from './columnFilter';
|
|
17
|
+
export { rangeSelection } from './rangeSelection';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TablePipeline } from '../pipeline';
|
|
2
|
+
export interface RangeSelectionFeatureOptions {
|
|
3
|
+
/** 范围选中回调函数 */
|
|
4
|
+
rangeSelectedChange?(params: any): void;
|
|
5
|
+
/** 是否阻止keydown的默认行为 */
|
|
6
|
+
preventkDefaultOfKeyDownEvent?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const rangeSelectionKey = "rangeSelection";
|
|
9
|
+
export declare const lastClickCell = "lastClickCell";
|
|
10
|
+
export declare function rangeSelection(opts: RangeSelectionFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|