@kdcloudjs/table 1.2.2-canary.3 → 1.2.2-canary.5
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 +129 -57
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +7 -7
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/styles.d.ts +1 -0
- package/es/table/base/styles.js +3 -2
- package/es/table/interfaces.d.ts +4 -1
- package/es/table/pipeline/features/rowDrag.d.ts +2 -0
- package/es/table/pipeline/features/rowDrag.js +76 -21
- package/es/table/pipeline/features/treeMode.js +14 -2
- package/lib/table/base/styles.d.ts +1 -0
- package/lib/table/base/styles.js +3 -2
- package/lib/table/interfaces.d.ts +4 -1
- package/lib/table/pipeline/features/rowDrag.d.ts +2 -0
- package/lib/table/pipeline/features/rowDrag.js +76 -21
- package/lib/table/pipeline/features/treeMode.js +14 -2
- package/package.json +1 -1
|
@@ -62,12 +62,13 @@ function rowDrag(opt) {
|
|
|
62
62
|
if (!tableBody) return pipeline;
|
|
63
63
|
var dataSource = pipeline.getDataSource();
|
|
64
64
|
var getRowDragEvent = function getRowDragEvent(dropTargetEvent, isFinished) {
|
|
65
|
-
var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'targetTable';
|
|
66
65
|
var dragItem = dropTargetEvent.dragItem,
|
|
67
66
|
x = dropTargetEvent.x,
|
|
68
67
|
y = dropTargetEvent.y,
|
|
69
68
|
dropZoneTarget = dropTargetEvent.dropZoneTarget,
|
|
70
69
|
startDropZoneTagret = dropTargetEvent.startDropZoneTagret,
|
|
70
|
+
commonParams = dropTargetEvent.commonParams,
|
|
71
|
+
startCommonParams = dropTargetEvent.startCommonParams,
|
|
71
72
|
event = dropTargetEvent.event,
|
|
72
73
|
dropZoneTableParams = dropTargetEvent.dropZoneTableParams;
|
|
73
74
|
var getDataSource = dropZoneTableParams.getDataSource,
|
|
@@ -80,7 +81,7 @@ function rowDrag(opt) {
|
|
|
80
81
|
var isLeave = !isMouseOnDropTarget(event, dropZoneTarget);
|
|
81
82
|
var overIndex = -1;
|
|
82
83
|
var direction = 'bottom';
|
|
83
|
-
if (!isLeave) {
|
|
84
|
+
if (!isLeave && dataSource.length > 0) {
|
|
84
85
|
var overDragItem = getDragRowItem(event.target, dropZoneTarget, dataSource);
|
|
85
86
|
if (overDragItem) {
|
|
86
87
|
var rowIndex = overDragItem.rowIndex,
|
|
@@ -89,6 +90,10 @@ function rowDrag(opt) {
|
|
|
89
90
|
direction = getDirection(cell, event.clientY, allowDragIntoRow);
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
if (overIndex === -1 && dataSource.length > 0 && event.target === dropZoneTarget) {
|
|
94
|
+
overIndex = dataSource.length - 1;
|
|
95
|
+
direction = 'bottom';
|
|
96
|
+
}
|
|
92
97
|
var overRow = overIndex >= 0 ? dataSource[overIndex] : null;
|
|
93
98
|
return {
|
|
94
99
|
startRowIndex: dragItem.rowIndex,
|
|
@@ -96,24 +101,25 @@ function rowDrag(opt) {
|
|
|
96
101
|
endRowIndex: overIndex,
|
|
97
102
|
endRow: overRow,
|
|
98
103
|
startDropZoneTagret: startDropZoneTagret,
|
|
104
|
+
startCommonParams: startCommonParams,
|
|
105
|
+
commonParams: commonParams,
|
|
99
106
|
dropZoneTarget: dropZoneTarget,
|
|
100
107
|
event: event,
|
|
101
108
|
dragPosition: direction,
|
|
102
109
|
isFinished: isFinished,
|
|
103
|
-
source: source,
|
|
104
110
|
x: x,
|
|
105
111
|
y: y
|
|
106
112
|
};
|
|
107
113
|
};
|
|
108
114
|
var onDragging = function onDragging(event) {
|
|
109
115
|
var _a;
|
|
110
|
-
var rowDragEvent = getRowDragEvent(event, false
|
|
116
|
+
var rowDragEvent = getRowDragEvent(event, false);
|
|
111
117
|
(_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
|
|
112
118
|
pipeline.setStateAtKey(rowDragKey, rowDragEvent);
|
|
113
119
|
};
|
|
114
|
-
var onDragStop = function onDragStop(event
|
|
120
|
+
var onDragStop = function onDragStop(event) {
|
|
115
121
|
var _a;
|
|
116
|
-
var rowDragEvent = getRowDragEvent(event, true
|
|
122
|
+
var rowDragEvent = getRowDragEvent(event, true);
|
|
117
123
|
pipeline.setStateAtKey(rowDragKey, rowDragEvent);
|
|
118
124
|
(_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
|
|
119
125
|
};
|
|
@@ -172,6 +178,8 @@ function rowDrag(opt) {
|
|
|
172
178
|
var lastDropTarget = null;
|
|
173
179
|
var timeoutId = null;
|
|
174
180
|
var intervalId = null;
|
|
181
|
+
var expandRowTimeoutId = null;
|
|
182
|
+
var expandRowCallBackList = [];
|
|
175
183
|
var updateScrollPosition = function updateScrollPosition(tableBody, mouseMoveEvent) {
|
|
176
184
|
if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
|
|
177
185
|
if (timeoutId) {
|
|
@@ -180,6 +188,7 @@ function rowDrag(opt) {
|
|
|
180
188
|
if (intervalId) {
|
|
181
189
|
clearInterval(intervalId);
|
|
182
190
|
}
|
|
191
|
+
if (!tableBody) return;
|
|
183
192
|
var moveOffset = getScrollMoveOffset(tableBody, mouseMoveEvent);
|
|
184
193
|
if (moveOffset === 0) {
|
|
185
194
|
return;
|
|
@@ -199,10 +208,11 @@ function rowDrag(opt) {
|
|
|
199
208
|
setDragText(dragElement, dragText); // 设置悬浮框显示文本
|
|
200
209
|
artTable.classList.add((0, _classnames.default)(_styles.Classes.rowDragging));
|
|
201
210
|
rowDragApi.setDragStatus('start');
|
|
202
|
-
var dragEvent = createDropTargetEvent(currentDropZone, mouseDownEvent, startDataItem,
|
|
211
|
+
var dragEvent = createDropTargetEvent(currentDropZone, mouseDownEvent, startDataItem, currentDropZone);
|
|
203
212
|
onDragStart(dragEvent);
|
|
204
213
|
};
|
|
205
214
|
var handleDragMove = function handleDragMove(mouseMoveEvent) {
|
|
215
|
+
var _a;
|
|
206
216
|
positionDragElemment(dragElement, mouseMoveEvent); // 更新拖拽悬浮框位置
|
|
207
217
|
rowDragApi.setDragStatus('dragging');
|
|
208
218
|
setDragElementIcon(dragElement, 'move');
|
|
@@ -211,13 +221,15 @@ function rowDrag(opt) {
|
|
|
211
221
|
var dropTarget = (0, _find.default)(validDropZones).call(validDropZones, function (zone) {
|
|
212
222
|
return isMouseOnDropTarget(mouseMoveEvent, zone.getContainer());
|
|
213
223
|
}) || null;
|
|
224
|
+
updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
|
|
214
225
|
if (dropTarget !== lastDropTarget) {
|
|
215
226
|
// 拖拽离开表格
|
|
216
227
|
if (lastDropTarget !== null && dropTarget === null) {
|
|
217
228
|
if (lastDropTarget.onDragLeave) {
|
|
218
229
|
setDragElementIcon(dragElement, 'notAllowed');
|
|
219
230
|
hiddenDragLine(dragLine);
|
|
220
|
-
|
|
231
|
+
lastDropTarget.getContainer().classList.remove(_styles.Classes.rowDragNoData);
|
|
232
|
+
var dragEvent = createDropTargetEvent(lastDropTarget, mouseMoveEvent, startDataItem, currentDropZone);
|
|
221
233
|
lastDropTarget.onDragLeave(dragEvent);
|
|
222
234
|
}
|
|
223
235
|
}
|
|
@@ -228,7 +240,7 @@ function rowDrag(opt) {
|
|
|
228
240
|
if (dropTarget.isTable) {
|
|
229
241
|
showDragLine(dragLine);
|
|
230
242
|
}
|
|
231
|
-
var _dragEvent = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem,
|
|
243
|
+
var _dragEvent = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
|
|
232
244
|
dropTarget.onDragEnter(_dragEvent);
|
|
233
245
|
}
|
|
234
246
|
}
|
|
@@ -242,10 +254,34 @@ function rowDrag(opt) {
|
|
|
242
254
|
dragZone: dropTarget,
|
|
243
255
|
event: mouseMoveEvent
|
|
244
256
|
});
|
|
245
|
-
|
|
257
|
+
}
|
|
258
|
+
// 树形表格悬停1s展开对应行节点
|
|
259
|
+
if ((_a = dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.tableParams) === null || _a === void 0 ? void 0 : _a.getTreeModeOptions()) {
|
|
260
|
+
if (expandRowTimeoutId) {
|
|
261
|
+
clearTimeout(expandRowTimeoutId);
|
|
262
|
+
}
|
|
263
|
+
expandRowTimeoutId = setTimeout(function () {
|
|
264
|
+
var treeModeOptions = dropTarget.tableParams.getTreeModeOptions();
|
|
265
|
+
var treeMetaKey = treeModeOptions.treeMetaKey,
|
|
266
|
+
onExpand = treeModeOptions.onExpand,
|
|
267
|
+
isExpanded = treeModeOptions.isExpanded,
|
|
268
|
+
onCollapse = treeModeOptions.onCollapse;
|
|
269
|
+
// 鼠标悬停所在的拖拽行信息
|
|
270
|
+
var dataSource = dropTarget.tableParams.getDataSource();
|
|
271
|
+
var dragItem = getDragRowItem(mouseMoveEvent.target, dropTarget.getContainer(), dataSource);
|
|
272
|
+
if (!dragItem) return;
|
|
273
|
+
var row = dragItem.row;
|
|
274
|
+
var rowKey = row[treeMetaKey].rowKey;
|
|
275
|
+
if (!isExpanded(rowKey)) {
|
|
276
|
+
onExpand(rowKey);
|
|
277
|
+
expandRowCallBackList.push(function () {
|
|
278
|
+
return onCollapse(rowKey);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}, 1000);
|
|
246
282
|
}
|
|
247
283
|
if (dropTarget.onDragging) {
|
|
248
|
-
var _dragEvent2 = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem,
|
|
284
|
+
var _dragEvent2 = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
|
|
249
285
|
dropTarget.onDragging(_dragEvent2);
|
|
250
286
|
}
|
|
251
287
|
}
|
|
@@ -257,18 +293,23 @@ function rowDrag(opt) {
|
|
|
257
293
|
rowDragApi.setDragStatus('finished');
|
|
258
294
|
clearTimeout(timeoutId);
|
|
259
295
|
clearInterval(intervalId);
|
|
296
|
+
clearTimeout(expandRowTimeoutId);
|
|
297
|
+
while (expandRowCallBackList.length > 0) {
|
|
298
|
+
var callback = expandRowCallBackList.pop();
|
|
299
|
+
callback();
|
|
300
|
+
}
|
|
260
301
|
var rowDropZones = rowDragApi.getRowDropZone();
|
|
302
|
+
rowDropZones.forEach(function (dropzone) {
|
|
303
|
+
var container = dropzone.getContainer();
|
|
304
|
+
container && container.classList.remove(_styles.Classes.rowDragNoData);
|
|
305
|
+
});
|
|
261
306
|
var validDropZones = (0, _concat.default)(rowDropZones).call(rowDropZones, currentDropZone);
|
|
262
307
|
var dropTarget = (0, _find.default)(validDropZones).call(validDropZones, function (zone) {
|
|
263
308
|
return isMouseOnDropTarget(mouseUpEvent, zone.getContainer());
|
|
264
309
|
});
|
|
265
310
|
if (dropTarget && dropTarget.onDragStop) {
|
|
266
|
-
var dragEvent = createDropTargetEvent(dropTarget, mouseUpEvent, startDataItem,
|
|
311
|
+
var dragEvent = createDropTargetEvent(dropTarget, mouseUpEvent, startDataItem, currentDropZone);
|
|
267
312
|
dropTarget.onDragStop(dragEvent);
|
|
268
|
-
// 原表也触发onDragStop, 方便上层调用
|
|
269
|
-
if (dropTarget !== currentDropZone) {
|
|
270
|
-
currentDropZone.onDragStop(dragEvent, 'startTable');
|
|
271
|
-
}
|
|
272
313
|
}
|
|
273
314
|
};
|
|
274
315
|
var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
|
|
@@ -329,7 +370,7 @@ function rowDrag(opt) {
|
|
|
329
370
|
return _internals.internals.safeGetRowKey(primaryKey, row, -1) === parentRowKey;
|
|
330
371
|
});
|
|
331
372
|
}
|
|
332
|
-
var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.rowDragStart, rowIndex === startRowIndex && dragStatus !== 'finished'), _styles.Classes.rowDragEnd, rowIndex === endRowIndex), _styles.Classes.rowDragEndParent, isTreeTable && rowIndex === parentRowKeyIndex), _styles.Classes.rowDragEndInto, rowIndex === endRowIndex && dragPosition === 'into'), _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
|
|
373
|
+
var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.rowDragStart, rowIndex === startRowIndex && dragStatus !== 'finished'), _styles.Classes.rowDragEnd, rowIndex === endRowIndex), _styles.Classes.rowDragEndParent, isTreeTable && rowIndex === parentRowKeyIndex && dragPosition !== 'into'), _styles.Classes.rowDragEndInto, rowIndex === endRowIndex && dragPosition === 'into'), _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
|
|
333
374
|
return {
|
|
334
375
|
className: className
|
|
335
376
|
};
|
|
@@ -412,6 +453,13 @@ function positionDragLine(_ref) {
|
|
|
412
453
|
var treeModeOptions = getTreeModeOptions();
|
|
413
454
|
var rowDragOptions = getRowDragOptions() || {};
|
|
414
455
|
var allowDragIntoRow = rowDragOptions.allowDragIntoRow;
|
|
456
|
+
if (dataSource.length === 0) {
|
|
457
|
+
tableContainer.classList.add(_styles.Classes.rowDragNoData);
|
|
458
|
+
lineElement.style.display = 'none';
|
|
459
|
+
} else {
|
|
460
|
+
tableContainer.classList.remove(_styles.Classes.rowDragNoData);
|
|
461
|
+
lineElement.style.display = 'block';
|
|
462
|
+
}
|
|
415
463
|
// 鼠标悬停所在的拖拽行信息
|
|
416
464
|
var dragItem = getDragRowItem(event.target, tableContainer, dataSource);
|
|
417
465
|
if (!dragItem) return;
|
|
@@ -589,21 +637,28 @@ function setDragText(element, dragText) {
|
|
|
589
637
|
function isMouseOnDropTarget(mouseEvent, target) {
|
|
590
638
|
return target.contains(mouseEvent.target);
|
|
591
639
|
}
|
|
592
|
-
function createDropTargetEvent(
|
|
593
|
-
var dropZoneTarget =
|
|
640
|
+
function createDropTargetEvent(dropZone, event, dragItem, startDropZone) {
|
|
641
|
+
var dropZoneTarget = dropZone.getContainer();
|
|
642
|
+
var startDropZoneTagret = startDropZone.getContainer();
|
|
594
643
|
var rect = dropZoneTarget.getBoundingClientRect();
|
|
595
644
|
var x = event.clientX - rect.left;
|
|
596
645
|
var y = event.clientY - rect.top;
|
|
646
|
+
var startDropZoneOptions = startDropZone.tableParams.getRowDragOptions();
|
|
647
|
+
var startCommonParams = startDropZoneOptions === null || startDropZoneOptions === void 0 ? void 0 : startDropZoneOptions.commonParams;
|
|
597
648
|
var targetEvent = {
|
|
598
649
|
dragItem: dragItem,
|
|
599
650
|
startDropZoneTagret: startDropZoneTagret,
|
|
651
|
+
startCommonParams: startCommonParams,
|
|
600
652
|
dropZoneTarget: dropZoneTarget,
|
|
601
653
|
event: event,
|
|
602
654
|
x: x,
|
|
603
655
|
y: y
|
|
604
656
|
};
|
|
605
|
-
if (
|
|
606
|
-
|
|
657
|
+
if (dropZone.isTable) {
|
|
658
|
+
var dropZoneOptions = dropZone.tableParams.getRowDragOptions();
|
|
659
|
+
var commonParams = dropZoneOptions === null || dropZoneOptions === void 0 ? void 0 : dropZoneOptions.commonParams;
|
|
660
|
+
targetEvent.dropZoneTableParams = dropZone.tableParams;
|
|
661
|
+
targetEvent.commonParams = commonParams;
|
|
607
662
|
}
|
|
608
663
|
return targetEvent;
|
|
609
664
|
}
|
|
@@ -26,7 +26,7 @@ var _internals = require("../../internals");
|
|
|
26
26
|
var _utils = require("../../utils");
|
|
27
27
|
var _styles = require("../../base/styles");
|
|
28
28
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol2 && _getIteratorMethod(r) || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
29
|
-
function _unsupportedIterableToArray(r, a) { if (r) { var
|
|
29
|
+
function _unsupportedIterableToArray(r, a) { if (r) { var _context3; if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = _sliceInstanceProperty(_context3 = {}.toString.call(r)).call(_context3, 8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
30
30
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
31
31
|
var treeMetaSymbol = exports.treeMetaSymbol = (0, _symbol.default)('treeMetaSymbol');
|
|
32
32
|
var treeModeOptionsKey = exports.treeModeOptionsKey = 'treeModeOptions';
|
|
@@ -72,7 +72,19 @@ function treeMode() {
|
|
|
72
72
|
iconIndent: iconIndent,
|
|
73
73
|
iconGap: iconGap,
|
|
74
74
|
indentSize: indentSize,
|
|
75
|
-
treeMetaKey: treeMetaKey
|
|
75
|
+
treeMetaKey: treeMetaKey,
|
|
76
|
+
isExpanded: function isExpanded(rowKey) {
|
|
77
|
+
return openKeySet.has(rowKey);
|
|
78
|
+
},
|
|
79
|
+
onExpand: function onExpand(rowKey) {
|
|
80
|
+
var _context2;
|
|
81
|
+
onChangeOpenKeys((0, _concat.default)(_context2 = []).call(_context2, (0, _toConsumableArray2.default)(openKeys), [rowKey]), rowKey, 'expand');
|
|
82
|
+
},
|
|
83
|
+
onCollapse: function onCollapse(rowKey) {
|
|
84
|
+
onChangeOpenKeys((0, _filter.default)(openKeys).call(openKeys, function (key) {
|
|
85
|
+
return key !== rowKey;
|
|
86
|
+
}), rowKey, 'collapse');
|
|
87
|
+
}
|
|
76
88
|
});
|
|
77
89
|
var Icon = opts.icon;
|
|
78
90
|
return pipeline.mapDataSource(processDataSource).mapColumns(processColumns);
|