@logicflow/extension 2.2.2 → 2.2.4-alpha.0
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/es/constant/events.d.ts +9 -0
- package/es/constant/events.js +11 -0
- package/es/dynamic-group/index.d.ts +41 -3
- package/es/dynamic-group/index.js +281 -117
- package/es/dynamic-group/model.d.ts +48 -1
- package/es/dynamic-group/model.js +138 -23
- package/es/dynamic-group/node.d.ts +1 -0
- package/es/dynamic-group/node.js +52 -19
- package/es/dynamic-group/titleText.d.ts +8 -0
- package/es/dynamic-group/titleText.js +84 -0
- package/es/dynamic-group/utils.d.ts +69 -0
- package/es/dynamic-group/utils.js +162 -0
- package/es/index.css +321 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/index.less +1 -0
- package/es/materials/group/GroupNode.js +5 -2
- package/es/materials/group/index.js +7 -6
- package/es/pool/LaneModel.d.ts +1 -1
- package/es/pool/PoolModel.d.ts +1 -1
- package/es/pool/index.d.ts +3 -2
- package/es/pool/index.js +44 -60
- package/es/style/index.css +321 -1
- package/es/style/index.less +381 -0
- package/lib/constant/events.d.ts +9 -0
- package/lib/constant/events.js +14 -0
- package/lib/dynamic-group/index.d.ts +41 -3
- package/lib/dynamic-group/index.js +280 -116
- package/lib/dynamic-group/model.d.ts +48 -1
- package/lib/dynamic-group/model.js +137 -22
- package/lib/dynamic-group/node.d.ts +1 -0
- package/lib/dynamic-group/node.js +53 -20
- package/lib/dynamic-group/titleText.d.ts +8 -0
- package/lib/dynamic-group/titleText.js +90 -0
- package/lib/dynamic-group/utils.d.ts +69 -0
- package/lib/dynamic-group/utils.js +172 -1
- package/lib/index.css +321 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.less +1 -0
- package/lib/materials/group/GroupNode.js +5 -2
- package/lib/materials/group/index.js +7 -6
- package/lib/pool/LaneModel.d.ts +1 -1
- package/lib/pool/PoolModel.d.ts +1 -1
- package/lib/pool/index.d.ts +3 -2
- package/lib/pool/index.js +44 -60
- package/lib/style/index.css +321 -1
- package/lib/style/index.less +381 -0
- package/package.json +6 -6
- package/dist/index.css +0 -1
- package/dist/index.min.js +0 -2
- package/dist/index.min.js.map +0 -1
|
@@ -51,6 +51,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
51
51
|
};
|
|
52
52
|
import { h } from '@logicflow/core';
|
|
53
53
|
import { isArray } from 'lodash-es';
|
|
54
|
+
import { ExtensionEventType } from '../../constant/events';
|
|
54
55
|
import { RectResizeModel, RectResizeView } from '../../NodeResize';
|
|
55
56
|
var defaultWidth = 500;
|
|
56
57
|
var defaultHeight = 300;
|
|
@@ -297,7 +298,9 @@ var GroupNodeModel = /** @class */ (function (_super) {
|
|
|
297
298
|
*/
|
|
298
299
|
GroupNodeModel.prototype.addChild = function (id) {
|
|
299
300
|
this.children.add(id);
|
|
300
|
-
this.graphModel.eventCenter.emit(
|
|
301
|
+
this.graphModel.eventCenter.emit(ExtensionEventType.GROUP_ADD_NODE, {
|
|
302
|
+
data: this.getData(),
|
|
303
|
+
});
|
|
301
304
|
};
|
|
302
305
|
/**
|
|
303
306
|
* 删除分组子节点
|
|
@@ -305,7 +308,7 @@ var GroupNodeModel = /** @class */ (function (_super) {
|
|
|
305
308
|
*/
|
|
306
309
|
GroupNodeModel.prototype.removeChild = function (id) {
|
|
307
310
|
this.children.delete(id);
|
|
308
|
-
this.graphModel.eventCenter.emit(
|
|
311
|
+
this.graphModel.eventCenter.emit(ExtensionEventType.GROUP_REMOVE_NODE, {
|
|
309
312
|
data: this.getData(),
|
|
310
313
|
});
|
|
311
314
|
};
|
|
@@ -52,6 +52,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
52
52
|
import { forEach, isEmpty, isObject } from 'lodash-es';
|
|
53
53
|
import { EventType, } from '@logicflow/core';
|
|
54
54
|
import GroupNode from './GroupNode';
|
|
55
|
+
import { ExtensionEventType, NODE_ADD_DROP_DND_EVENTS, NODE_DRAG_EVENTS, } from '../../constant/events';
|
|
55
56
|
var DEFAULT_TOP_Z_INDEX = -1000;
|
|
56
57
|
var DEFAULT_BOTTOM_Z_INDEX = -10000;
|
|
57
58
|
var Group = /** @class */ (function () {
|
|
@@ -118,7 +119,7 @@ var Group = /** @class */ (function () {
|
|
|
118
119
|
return;
|
|
119
120
|
var isAllowAppendIn = group.isAllowAppendIn(data);
|
|
120
121
|
if (!isAllowAppendIn) {
|
|
121
|
-
_this.lf.emit(
|
|
122
|
+
_this.lf.emit(ExtensionEventType.GROUP_NOT_ALLOWED, {
|
|
122
123
|
group: group.getData(),
|
|
123
124
|
node: data,
|
|
124
125
|
});
|
|
@@ -304,11 +305,11 @@ var Group = /** @class */ (function () {
|
|
|
304
305
|
return true;
|
|
305
306
|
});
|
|
306
307
|
lf.graphModel.group = this;
|
|
307
|
-
lf.on(
|
|
308
|
-
lf.on(
|
|
309
|
-
lf.on(
|
|
310
|
-
lf.on(
|
|
311
|
-
lf.on(
|
|
308
|
+
lf.on(NODE_ADD_DROP_DND_EVENTS, this.appendNodeToGroup);
|
|
309
|
+
lf.on(EventType.NODE_DELETE, this.deleteGroupChild);
|
|
310
|
+
lf.on(NODE_DRAG_EVENTS, this.setActiveGroup);
|
|
311
|
+
lf.on(EventType.NODE_CLICK, this.nodeSelected);
|
|
312
|
+
lf.on(EventType.GRAPH_RENDERED, this.graphRendered);
|
|
312
313
|
// https://github.com/didi/LogicFlow/issues/1346
|
|
313
314
|
// 重写 addElements() 方法,在 addElements() 原有基础上增加对 group 内部所有 nodes 和 edges 的复制功能
|
|
314
315
|
lf.addElements = function (_a, distance) {
|
package/es/pool/LaneModel.d.ts
CHANGED
package/es/pool/PoolModel.d.ts
CHANGED
package/es/pool/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import LogicFlow, { CallbackArgs, Model, BaseNodeModel, BaseEdgeModel } from '@logicflow/core';
|
|
2
|
+
import { ExtensionEventType } from '../constant/events';
|
|
2
3
|
import { PoolModel } from './PoolModel';
|
|
3
4
|
import { PoolView } from './PoolView';
|
|
4
5
|
import { LaneModel } from './LaneModel';
|
|
@@ -46,7 +47,7 @@ export declare class PoolElements {
|
|
|
46
47
|
onSelectionDrop: () => void;
|
|
47
48
|
onNodeAddOrDrop: ({ data: node }: CallbackArgs<'node:add'>) => void;
|
|
48
49
|
addNodeToGroup: (node: LogicFlow.NodeData) => void;
|
|
49
|
-
onGroupAddNode: ({ data: groupData, childId, }: CallbackArgs<
|
|
50
|
+
onGroupAddNode: ({ data: groupData, childId, }: CallbackArgs<ExtensionEventType.GROUP_ADD_NODE>) => void;
|
|
50
51
|
removeNodeFromGroup: ({ data: node, model, }: CallbackArgs<'node:delete'>) => void;
|
|
51
52
|
onSelectionDrag: () => void;
|
|
52
53
|
onNodeDrag: ({ data: node }: CallbackArgs<'node:drag'>) => void;
|
|
@@ -57,7 +58,7 @@ export declare class PoolElements {
|
|
|
57
58
|
* @param isSelected
|
|
58
59
|
*/
|
|
59
60
|
onNodeSelect: ({ data: node, isMultiple, isSelected, }: Omit<CallbackArgs<'node:click'>, 'e' | 'position'>) => void;
|
|
60
|
-
onNodeMove: ({
|
|
61
|
+
onNodeMove: ({ data, }: Omit<CallbackArgs<'node:mousemove'>, 'e' | 'position'>) => void;
|
|
61
62
|
onGraphRendered: ({ data }: CallbackArgs<'graph:rendered'>) => void;
|
|
62
63
|
removeChildrenInGroupNodeData<T extends LogicFlow.NodeData | LogicFlow.NodeConfig>(nodeData: T): T;
|
|
63
64
|
/**
|
package/es/pool/index.js
CHANGED
|
@@ -36,11 +36,13 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
36
36
|
};
|
|
37
37
|
import { EventType, transformNodeData, transformEdgeData, } from '@logicflow/core';
|
|
38
38
|
import { assign, filter, forEach, cloneDeep, has, map } from 'lodash-es';
|
|
39
|
+
import { ExtensionEventType, NODE_ADD_DROP_DND_EVENTS, NODE_DRAG_EVENTS, } from '../constant/events';
|
|
39
40
|
import { PoolModel } from './PoolModel';
|
|
40
41
|
import { PoolView } from './PoolView';
|
|
41
42
|
import { LaneModel } from './LaneModel';
|
|
42
43
|
import { LaneView } from './LaneView';
|
|
43
44
|
import { isAllowMoveTo, isBoundsInLane } from './utils';
|
|
45
|
+
import { getChildrenBounds, isGroupBoundsContainsChildren, } from '../dynamic-group/utils';
|
|
44
46
|
export var PoolNode = {
|
|
45
47
|
type: 'pool',
|
|
46
48
|
view: PoolView,
|
|
@@ -202,12 +204,8 @@ var PoolElements = /** @class */ (function () {
|
|
|
202
204
|
}
|
|
203
205
|
};
|
|
204
206
|
this.onNodeMove = function (_a) {
|
|
205
|
-
var
|
|
206
|
-
var id = data.id
|
|
207
|
-
if (!properties) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
var width = properties.width, height = properties.height;
|
|
207
|
+
var data = _a.data;
|
|
208
|
+
var id = data.id;
|
|
211
209
|
var groupId = _this.nodeLaneMap.get(id);
|
|
212
210
|
if (!groupId) {
|
|
213
211
|
return;
|
|
@@ -218,13 +216,11 @@ var PoolElements = /** @class */ (function () {
|
|
|
218
216
|
}
|
|
219
217
|
// 当父节点isRestrict=true & autoResize=true
|
|
220
218
|
// 子节点在父节点中移动时,父节点会自动调整大小
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
var minY =
|
|
226
|
-
var maxX = newX + width / 2;
|
|
227
|
-
var maxY = newY + height / 2;
|
|
219
|
+
var childModel = _this.lf.getNodeModelById(id);
|
|
220
|
+
if (!childModel) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
var _b = childModel.getBounds(), minX = _b.minX, minY = _b.minY, maxX = _b.maxX, maxY = _b.maxY;
|
|
228
224
|
// step2:比较当前child.bounds与parent.bounds的差异,比如child.minX<parent.minX,那么parent.minX=child.minX
|
|
229
225
|
var hasChange = false;
|
|
230
226
|
var groupBounds = groupModel.getBounds();
|
|
@@ -256,6 +252,7 @@ var PoolElements = /** @class */ (function () {
|
|
|
256
252
|
groupModel.moveTo(newGroupX, newGroupY);
|
|
257
253
|
groupModel.width = newGroupWidth;
|
|
258
254
|
groupModel.height = newGroupHeight;
|
|
255
|
+
groupModel.updateExpandedSize(newGroupWidth, newGroupHeight);
|
|
259
256
|
};
|
|
260
257
|
this.onGraphRendered = function (_a) {
|
|
261
258
|
var data = _a.data;
|
|
@@ -393,35 +390,22 @@ var PoolElements = /** @class */ (function () {
|
|
|
393
390
|
* @param newHeight
|
|
394
391
|
*/
|
|
395
392
|
PoolElements.prototype.checkGroupBoundsWithChildren = function (groupModel, deltaX, deltaY, newWidth, newHeight) {
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
var groupMinY = newY - newHeight / 2;
|
|
403
|
-
var groupMaxX = newX + newWidth / 2;
|
|
404
|
-
var groupMaxY = newY + newHeight / 2;
|
|
405
|
-
var childrenArray = Array.from(children);
|
|
406
|
-
for (var i = 0; i < childrenArray.length; i++) {
|
|
407
|
-
var childId = childrenArray[i];
|
|
408
|
-
var child = this.lf.getNodeModelById(childId);
|
|
409
|
-
if (!child) {
|
|
410
|
-
continue;
|
|
411
|
-
}
|
|
412
|
-
var childBounds = child.getBounds();
|
|
413
|
-
var minX = childBounds.minX, minY = childBounds.minY, maxX = childBounds.maxX, maxY = childBounds.maxY;
|
|
414
|
-
// parent:resize后的bounds不能小于child:bounds,否则阻止其resize
|
|
415
|
-
var canResize = groupMinX <= minX &&
|
|
416
|
-
groupMinY <= minY &&
|
|
417
|
-
groupMaxX >= maxX &&
|
|
418
|
-
groupMaxY >= maxY;
|
|
419
|
-
if (!canResize) {
|
|
420
|
-
return false;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
393
|
+
var _this = this;
|
|
394
|
+
var childrenBounds = getChildrenBounds(groupModel, function (id) {
|
|
395
|
+
return _this.lf.getNodeModelById(id);
|
|
396
|
+
});
|
|
397
|
+
if (!childrenBounds) {
|
|
398
|
+
return true;
|
|
423
399
|
}
|
|
424
|
-
|
|
400
|
+
var newX = groupModel.x + deltaX / 2;
|
|
401
|
+
var newY = groupModel.y + deltaY / 2;
|
|
402
|
+
var groupBounds = {
|
|
403
|
+
minX: newX - newWidth / 2,
|
|
404
|
+
minY: newY - newHeight / 2,
|
|
405
|
+
maxX: newX + newWidth / 2,
|
|
406
|
+
maxY: newY + newHeight / 2,
|
|
407
|
+
};
|
|
408
|
+
return isGroupBoundsContainsChildren(groupBounds, childrenBounds);
|
|
425
409
|
};
|
|
426
410
|
PoolElements.prototype.init = function () {
|
|
427
411
|
var _this = this;
|
|
@@ -452,21 +436,21 @@ var PoolElements = /** @class */ (function () {
|
|
|
452
436
|
return true;
|
|
453
437
|
});
|
|
454
438
|
graphModel.addNodeResizeRules(function (model, deltaX, deltaY, width, height) {
|
|
455
|
-
if (model.isGroup
|
|
439
|
+
if (model.isGroup) {
|
|
456
440
|
return _this.checkGroupBoundsWithChildren(model, deltaX, deltaY, width, height);
|
|
457
441
|
}
|
|
458
442
|
return true;
|
|
459
443
|
});
|
|
460
444
|
graphModel.dynamicGroup = this;
|
|
461
|
-
lf.on(
|
|
462
|
-
lf.on(
|
|
463
|
-
lf.on(
|
|
464
|
-
lf.on(
|
|
465
|
-
lf.on(
|
|
466
|
-
lf.on(
|
|
467
|
-
lf.on(
|
|
468
|
-
lf.on(
|
|
469
|
-
lf.on(
|
|
445
|
+
lf.on(NODE_ADD_DROP_DND_EVENTS, this.onNodeAddOrDrop);
|
|
446
|
+
lf.on(EventType.SELECTION_DROP, this.onSelectionDrop);
|
|
447
|
+
lf.on(EventType.NODE_DELETE, this.removeNodeFromGroup);
|
|
448
|
+
lf.on(NODE_DRAG_EVENTS, this.onNodeDrag);
|
|
449
|
+
lf.on(EventType.SELECTION_DRAG, this.onSelectionDrag);
|
|
450
|
+
lf.on(EventType.NODE_CLICK, this.onNodeSelect);
|
|
451
|
+
lf.on(EventType.NODE_MOUSEMOVE, this.onNodeMove);
|
|
452
|
+
lf.on(EventType.GRAPH_RENDERED, this.onGraphRendered);
|
|
453
|
+
lf.on(ExtensionEventType.GROUP_ADD_NODE, this.onGroupAddNode);
|
|
470
454
|
lf.addElements = function (_a, distance) {
|
|
471
455
|
var selectedNodes = _a.nodes, selectedEdges = _a.edges;
|
|
472
456
|
if (distance === void 0) { distance = 40; }
|
|
@@ -507,15 +491,15 @@ var PoolElements = /** @class */ (function () {
|
|
|
507
491
|
PoolElements.prototype.render = function () { };
|
|
508
492
|
PoolElements.prototype.destroy = function () {
|
|
509
493
|
// 销毁监听的事件,并移除渲染的 dom 内容
|
|
510
|
-
this.lf.off(
|
|
511
|
-
this.lf.off(
|
|
512
|
-
this.lf.off(
|
|
513
|
-
this.lf.off(
|
|
514
|
-
this.lf.off(
|
|
515
|
-
this.lf.off(
|
|
516
|
-
this.lf.off(
|
|
517
|
-
this.lf.off(
|
|
518
|
-
this.lf.off(
|
|
494
|
+
this.lf.off(NODE_ADD_DROP_DND_EVENTS, this.onNodeAddOrDrop);
|
|
495
|
+
this.lf.off(EventType.SELECTION_DROP, this.onSelectionDrop);
|
|
496
|
+
this.lf.off(EventType.NODE_DELETE, this.removeNodeFromGroup);
|
|
497
|
+
this.lf.off(NODE_DRAG_EVENTS, this.onNodeDrag);
|
|
498
|
+
this.lf.off(EventType.SELECTION_DRAG, this.onSelectionDrag);
|
|
499
|
+
this.lf.off(EventType.NODE_CLICK, this.onNodeSelect);
|
|
500
|
+
this.lf.off(EventType.NODE_MOUSEMOVE, this.onNodeMove);
|
|
501
|
+
this.lf.off(EventType.GRAPH_RENDERED, this.onGraphRendered);
|
|
502
|
+
this.lf.off(ExtensionEventType.GROUP_ADD_NODE, this.onGroupAddNode);
|
|
519
503
|
};
|
|
520
504
|
PoolElements.pluginName = 'PoolElements';
|
|
521
505
|
return PoolElements;
|