@logicflow/extension 2.2.3 → 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 +8 -8
- package/dist/index.css +0 -1
- package/dist/index.min.js +0 -2
- package/dist/index.min.js.map +0 -1
|
@@ -54,6 +54,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
54
54
|
exports.GroupNode = exports.GroupNodeModel = void 0;
|
|
55
55
|
var core_1 = require("@logicflow/core");
|
|
56
56
|
var lodash_es_1 = require("lodash-es");
|
|
57
|
+
var events_1 = require("../../constant/events");
|
|
57
58
|
var NodeResize_1 = require("../../NodeResize");
|
|
58
59
|
var defaultWidth = 500;
|
|
59
60
|
var defaultHeight = 300;
|
|
@@ -300,7 +301,9 @@ var GroupNodeModel = /** @class */ (function (_super) {
|
|
|
300
301
|
*/
|
|
301
302
|
GroupNodeModel.prototype.addChild = function (id) {
|
|
302
303
|
this.children.add(id);
|
|
303
|
-
this.graphModel.eventCenter.emit(
|
|
304
|
+
this.graphModel.eventCenter.emit(events_1.ExtensionEventType.GROUP_ADD_NODE, {
|
|
305
|
+
data: this.getData(),
|
|
306
|
+
});
|
|
304
307
|
};
|
|
305
308
|
/**
|
|
306
309
|
* 删除分组子节点
|
|
@@ -308,7 +311,7 @@ var GroupNodeModel = /** @class */ (function (_super) {
|
|
|
308
311
|
*/
|
|
309
312
|
GroupNodeModel.prototype.removeChild = function (id) {
|
|
310
313
|
this.children.delete(id);
|
|
311
|
-
this.graphModel.eventCenter.emit(
|
|
314
|
+
this.graphModel.eventCenter.emit(events_1.ExtensionEventType.GROUP_REMOVE_NODE, {
|
|
312
315
|
data: this.getData(),
|
|
313
316
|
});
|
|
314
317
|
};
|
|
@@ -72,6 +72,7 @@ exports.Group = void 0;
|
|
|
72
72
|
var lodash_es_1 = require("lodash-es");
|
|
73
73
|
var core_1 = require("@logicflow/core");
|
|
74
74
|
var GroupNode_1 = __importDefault(require("./GroupNode"));
|
|
75
|
+
var events_1 = require("../../constant/events");
|
|
75
76
|
var DEFAULT_TOP_Z_INDEX = -1000;
|
|
76
77
|
var DEFAULT_BOTTOM_Z_INDEX = -10000;
|
|
77
78
|
var Group = /** @class */ (function () {
|
|
@@ -138,7 +139,7 @@ var Group = /** @class */ (function () {
|
|
|
138
139
|
return;
|
|
139
140
|
var isAllowAppendIn = group.isAllowAppendIn(data);
|
|
140
141
|
if (!isAllowAppendIn) {
|
|
141
|
-
_this.lf.emit(
|
|
142
|
+
_this.lf.emit(events_1.ExtensionEventType.GROUP_NOT_ALLOWED, {
|
|
142
143
|
group: group.getData(),
|
|
143
144
|
node: data,
|
|
144
145
|
});
|
|
@@ -324,11 +325,11 @@ var Group = /** @class */ (function () {
|
|
|
324
325
|
return true;
|
|
325
326
|
});
|
|
326
327
|
lf.graphModel.group = this;
|
|
327
|
-
lf.on(
|
|
328
|
-
lf.on(
|
|
329
|
-
lf.on(
|
|
330
|
-
lf.on(
|
|
331
|
-
lf.on(
|
|
328
|
+
lf.on(events_1.NODE_ADD_DROP_DND_EVENTS, this.appendNodeToGroup);
|
|
329
|
+
lf.on(core_1.EventType.NODE_DELETE, this.deleteGroupChild);
|
|
330
|
+
lf.on(events_1.NODE_DRAG_EVENTS, this.setActiveGroup);
|
|
331
|
+
lf.on(core_1.EventType.NODE_CLICK, this.nodeSelected);
|
|
332
|
+
lf.on(core_1.EventType.GRAPH_RENDERED, this.graphRendered);
|
|
332
333
|
// https://github.com/didi/LogicFlow/issues/1346
|
|
333
334
|
// 重写 addElements() 方法,在 addElements() 原有基础上增加对 group 内部所有 nodes 和 edges 的复制功能
|
|
334
335
|
lf.addElements = function (_a, distance) {
|
package/lib/pool/LaneModel.d.ts
CHANGED
package/lib/pool/PoolModel.d.ts
CHANGED
package/lib/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/lib/pool/index.js
CHANGED
|
@@ -39,11 +39,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.PoolElements = exports.LaneNode = exports.PoolNode = void 0;
|
|
40
40
|
var core_1 = require("@logicflow/core");
|
|
41
41
|
var lodash_es_1 = require("lodash-es");
|
|
42
|
+
var events_1 = require("../constant/events");
|
|
42
43
|
var PoolModel_1 = require("./PoolModel");
|
|
43
44
|
var PoolView_1 = require("./PoolView");
|
|
44
45
|
var LaneModel_1 = require("./LaneModel");
|
|
45
46
|
var LaneView_1 = require("./LaneView");
|
|
46
47
|
var utils_1 = require("./utils");
|
|
48
|
+
var utils_2 = require("../dynamic-group/utils");
|
|
47
49
|
exports.PoolNode = {
|
|
48
50
|
type: 'pool',
|
|
49
51
|
view: PoolView_1.PoolView,
|
|
@@ -205,12 +207,8 @@ var PoolElements = /** @class */ (function () {
|
|
|
205
207
|
}
|
|
206
208
|
};
|
|
207
209
|
this.onNodeMove = function (_a) {
|
|
208
|
-
var
|
|
209
|
-
var id = data.id
|
|
210
|
-
if (!properties) {
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
var width = properties.width, height = properties.height;
|
|
210
|
+
var data = _a.data;
|
|
211
|
+
var id = data.id;
|
|
214
212
|
var groupId = _this.nodeLaneMap.get(id);
|
|
215
213
|
if (!groupId) {
|
|
216
214
|
return;
|
|
@@ -221,13 +219,11 @@ var PoolElements = /** @class */ (function () {
|
|
|
221
219
|
}
|
|
222
220
|
// 当父节点isRestrict=true & autoResize=true
|
|
223
221
|
// 子节点在父节点中移动时,父节点会自动调整大小
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
var minY =
|
|
229
|
-
var maxX = newX + width / 2;
|
|
230
|
-
var maxY = newY + height / 2;
|
|
222
|
+
var childModel = _this.lf.getNodeModelById(id);
|
|
223
|
+
if (!childModel) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
var _b = childModel.getBounds(), minX = _b.minX, minY = _b.minY, maxX = _b.maxX, maxY = _b.maxY;
|
|
231
227
|
// step2:比较当前child.bounds与parent.bounds的差异,比如child.minX<parent.minX,那么parent.minX=child.minX
|
|
232
228
|
var hasChange = false;
|
|
233
229
|
var groupBounds = groupModel.getBounds();
|
|
@@ -259,6 +255,7 @@ var PoolElements = /** @class */ (function () {
|
|
|
259
255
|
groupModel.moveTo(newGroupX, newGroupY);
|
|
260
256
|
groupModel.width = newGroupWidth;
|
|
261
257
|
groupModel.height = newGroupHeight;
|
|
258
|
+
groupModel.updateExpandedSize(newGroupWidth, newGroupHeight);
|
|
262
259
|
};
|
|
263
260
|
this.onGraphRendered = function (_a) {
|
|
264
261
|
var data = _a.data;
|
|
@@ -396,35 +393,22 @@ var PoolElements = /** @class */ (function () {
|
|
|
396
393
|
* @param newHeight
|
|
397
394
|
*/
|
|
398
395
|
PoolElements.prototype.checkGroupBoundsWithChildren = function (groupModel, deltaX, deltaY, newWidth, newHeight) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
var groupMinY = newY - newHeight / 2;
|
|
406
|
-
var groupMaxX = newX + newWidth / 2;
|
|
407
|
-
var groupMaxY = newY + newHeight / 2;
|
|
408
|
-
var childrenArray = Array.from(children);
|
|
409
|
-
for (var i = 0; i < childrenArray.length; i++) {
|
|
410
|
-
var childId = childrenArray[i];
|
|
411
|
-
var child = this.lf.getNodeModelById(childId);
|
|
412
|
-
if (!child) {
|
|
413
|
-
continue;
|
|
414
|
-
}
|
|
415
|
-
var childBounds = child.getBounds();
|
|
416
|
-
var minX = childBounds.minX, minY = childBounds.minY, maxX = childBounds.maxX, maxY = childBounds.maxY;
|
|
417
|
-
// parent:resize后的bounds不能小于child:bounds,否则阻止其resize
|
|
418
|
-
var canResize = groupMinX <= minX &&
|
|
419
|
-
groupMinY <= minY &&
|
|
420
|
-
groupMaxX >= maxX &&
|
|
421
|
-
groupMaxY >= maxY;
|
|
422
|
-
if (!canResize) {
|
|
423
|
-
return false;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
396
|
+
var _this = this;
|
|
397
|
+
var childrenBounds = (0, utils_2.getChildrenBounds)(groupModel, function (id) {
|
|
398
|
+
return _this.lf.getNodeModelById(id);
|
|
399
|
+
});
|
|
400
|
+
if (!childrenBounds) {
|
|
401
|
+
return true;
|
|
426
402
|
}
|
|
427
|
-
|
|
403
|
+
var newX = groupModel.x + deltaX / 2;
|
|
404
|
+
var newY = groupModel.y + deltaY / 2;
|
|
405
|
+
var groupBounds = {
|
|
406
|
+
minX: newX - newWidth / 2,
|
|
407
|
+
minY: newY - newHeight / 2,
|
|
408
|
+
maxX: newX + newWidth / 2,
|
|
409
|
+
maxY: newY + newHeight / 2,
|
|
410
|
+
};
|
|
411
|
+
return (0, utils_2.isGroupBoundsContainsChildren)(groupBounds, childrenBounds);
|
|
428
412
|
};
|
|
429
413
|
PoolElements.prototype.init = function () {
|
|
430
414
|
var _this = this;
|
|
@@ -455,21 +439,21 @@ var PoolElements = /** @class */ (function () {
|
|
|
455
439
|
return true;
|
|
456
440
|
});
|
|
457
441
|
graphModel.addNodeResizeRules(function (model, deltaX, deltaY, width, height) {
|
|
458
|
-
if (model.isGroup
|
|
442
|
+
if (model.isGroup) {
|
|
459
443
|
return _this.checkGroupBoundsWithChildren(model, deltaX, deltaY, width, height);
|
|
460
444
|
}
|
|
461
445
|
return true;
|
|
462
446
|
});
|
|
463
447
|
graphModel.dynamicGroup = this;
|
|
464
|
-
lf.on(
|
|
465
|
-
lf.on(
|
|
466
|
-
lf.on(
|
|
467
|
-
lf.on(
|
|
468
|
-
lf.on(
|
|
469
|
-
lf.on(
|
|
470
|
-
lf.on(
|
|
471
|
-
lf.on(
|
|
472
|
-
lf.on(
|
|
448
|
+
lf.on(events_1.NODE_ADD_DROP_DND_EVENTS, this.onNodeAddOrDrop);
|
|
449
|
+
lf.on(core_1.EventType.SELECTION_DROP, this.onSelectionDrop);
|
|
450
|
+
lf.on(core_1.EventType.NODE_DELETE, this.removeNodeFromGroup);
|
|
451
|
+
lf.on(events_1.NODE_DRAG_EVENTS, this.onNodeDrag);
|
|
452
|
+
lf.on(core_1.EventType.SELECTION_DRAG, this.onSelectionDrag);
|
|
453
|
+
lf.on(core_1.EventType.NODE_CLICK, this.onNodeSelect);
|
|
454
|
+
lf.on(core_1.EventType.NODE_MOUSEMOVE, this.onNodeMove);
|
|
455
|
+
lf.on(core_1.EventType.GRAPH_RENDERED, this.onGraphRendered);
|
|
456
|
+
lf.on(events_1.ExtensionEventType.GROUP_ADD_NODE, this.onGroupAddNode);
|
|
473
457
|
lf.addElements = function (_a, distance) {
|
|
474
458
|
var selectedNodes = _a.nodes, selectedEdges = _a.edges;
|
|
475
459
|
if (distance === void 0) { distance = 40; }
|
|
@@ -510,15 +494,15 @@ var PoolElements = /** @class */ (function () {
|
|
|
510
494
|
PoolElements.prototype.render = function () { };
|
|
511
495
|
PoolElements.prototype.destroy = function () {
|
|
512
496
|
// 销毁监听的事件,并移除渲染的 dom 内容
|
|
513
|
-
this.lf.off(
|
|
514
|
-
this.lf.off(
|
|
515
|
-
this.lf.off(
|
|
516
|
-
this.lf.off(
|
|
517
|
-
this.lf.off(
|
|
518
|
-
this.lf.off(
|
|
519
|
-
this.lf.off(
|
|
520
|
-
this.lf.off(
|
|
521
|
-
this.lf.off(
|
|
497
|
+
this.lf.off(events_1.NODE_ADD_DROP_DND_EVENTS, this.onNodeAddOrDrop);
|
|
498
|
+
this.lf.off(core_1.EventType.SELECTION_DROP, this.onSelectionDrop);
|
|
499
|
+
this.lf.off(core_1.EventType.NODE_DELETE, this.removeNodeFromGroup);
|
|
500
|
+
this.lf.off(events_1.NODE_DRAG_EVENTS, this.onNodeDrag);
|
|
501
|
+
this.lf.off(core_1.EventType.SELECTION_DRAG, this.onSelectionDrag);
|
|
502
|
+
this.lf.off(core_1.EventType.NODE_CLICK, this.onNodeSelect);
|
|
503
|
+
this.lf.off(core_1.EventType.NODE_MOUSEMOVE, this.onNodeMove);
|
|
504
|
+
this.lf.off(core_1.EventType.GRAPH_RENDERED, this.onGraphRendered);
|
|
505
|
+
this.lf.off(events_1.ExtensionEventType.GROUP_ADD_NODE, this.onGroupAddNode);
|
|
522
506
|
};
|
|
523
507
|
PoolElements.pluginName = 'PoolElements';
|
|
524
508
|
return PoolElements;
|