@logicflow/extension 2.0.0-beta.7 → 2.0.0-beta.9

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.
Files changed (79) hide show
  1. package/.turbo/turbo-build.log +298 -294
  2. package/dist/index.min.js +6 -6
  3. package/es/NodeResize/control/Control.d.ts +3 -3
  4. package/es/NodeResize/control/Control.js +10 -1
  5. package/es/NodeResize/control/Control.js.map +1 -1
  6. package/es/NodeResize/index.d.ts +4 -0
  7. package/es/NodeResize/index.js.map +1 -1
  8. package/es/bpmn-elements/presets/Pool/Pool.d.ts +9 -9
  9. package/es/dynamic-group/index.d.ts +106 -0
  10. package/es/dynamic-group/index.js +536 -0
  11. package/es/dynamic-group/index.js.map +1 -0
  12. package/es/dynamic-group/model.d.ts +135 -0
  13. package/es/dynamic-group/model.js +413 -0
  14. package/es/dynamic-group/model.js.map +1 -0
  15. package/es/dynamic-group/node.d.ts +16 -0
  16. package/es/dynamic-group/node.js +143 -0
  17. package/es/dynamic-group/node.js.map +1 -0
  18. package/es/dynamic-group/utils.d.ts +17 -0
  19. package/es/dynamic-group/utils.js +27 -0
  20. package/es/dynamic-group/utils.js.map +1 -0
  21. package/es/index.d.ts +14 -9
  22. package/es/index.js +21 -9
  23. package/es/index.js.map +1 -1
  24. package/es/materials/group/GroupNode.d.ts +0 -4
  25. package/es/materials/group/GroupNode.js +1 -0
  26. package/es/materials/group/GroupNode.js.map +1 -1
  27. package/es/materials/group/index.d.ts +4 -4
  28. package/es/materials/group/index.js +5 -1
  29. package/es/materials/group/index.js.map +1 -1
  30. package/es/materials/node-selection/index.d.ts +4 -0
  31. package/es/materials/node-selection/index.js.map +1 -1
  32. package/es/mindmap/index.d.ts +2 -2
  33. package/es/tools/label/LabelOverlay.js +1 -1
  34. package/es/tools/label/index.js +1 -1
  35. package/lib/NodeResize/control/Control.d.ts +3 -3
  36. package/lib/NodeResize/control/Control.js +10 -1
  37. package/lib/NodeResize/control/Control.js.map +1 -1
  38. package/lib/NodeResize/index.d.ts +4 -0
  39. package/lib/NodeResize/index.js.map +1 -1
  40. package/lib/bpmn-elements/presets/Pool/Pool.d.ts +9 -9
  41. package/lib/dynamic-group/index.d.ts +106 -0
  42. package/lib/dynamic-group/index.js +553 -0
  43. package/lib/dynamic-group/index.js.map +1 -0
  44. package/lib/dynamic-group/model.d.ts +135 -0
  45. package/lib/dynamic-group/model.js +416 -0
  46. package/lib/dynamic-group/model.js.map +1 -0
  47. package/lib/dynamic-group/node.d.ts +16 -0
  48. package/lib/dynamic-group/node.js +146 -0
  49. package/lib/dynamic-group/node.js.map +1 -0
  50. package/lib/dynamic-group/utils.d.ts +17 -0
  51. package/lib/dynamic-group/utils.js +32 -0
  52. package/lib/dynamic-group/utils.js.map +1 -0
  53. package/lib/index.d.ts +14 -9
  54. package/lib/index.js +21 -9
  55. package/lib/index.js.map +1 -1
  56. package/lib/materials/group/GroupNode.d.ts +0 -4
  57. package/lib/materials/group/GroupNode.js +1 -0
  58. package/lib/materials/group/GroupNode.js.map +1 -1
  59. package/lib/materials/group/index.d.ts +4 -4
  60. package/lib/materials/group/index.js +5 -1
  61. package/lib/materials/group/index.js.map +1 -1
  62. package/lib/materials/node-selection/index.d.ts +4 -0
  63. package/lib/materials/node-selection/index.js.map +1 -1
  64. package/lib/mindmap/index.d.ts +2 -2
  65. package/lib/tools/label/LabelOverlay.js +1 -1
  66. package/lib/tools/label/index.js +1 -1
  67. package/package.json +2 -2
  68. package/src/NodeResize/control/Control.tsx +10 -1
  69. package/src/NodeResize/index.ts +4 -0
  70. package/src/dynamic-group/index.ts +609 -0
  71. package/src/dynamic-group/model.ts +503 -0
  72. package/src/dynamic-group/node.ts +140 -0
  73. package/src/dynamic-group/utils.ts +33 -0
  74. package/src/index.ts +26 -9
  75. package/src/materials/group/GroupNode.ts +1 -4
  76. package/src/materials/group/index.ts +6 -1
  77. package/src/materials/node-selection/index.ts +6 -1
  78. package/src/tools/label/LabelOverlay.tsx +1 -1
  79. package/src/tools/label/index.ts +1 -1
@@ -0,0 +1,135 @@
1
+ import LogicFlow, { BaseEdgeModel, GraphModel, IRectNodeProperties, RectNodeModel } from '@logicflow/core';
2
+ import NodeData = LogicFlow.NodeData;
3
+ import NodeConfig = LogicFlow.NodeConfig;
4
+ import EdgeConfig = LogicFlow.EdgeConfig;
5
+ export type IGroupNodeProperties = {
6
+ /**
7
+ * 当前分组中的节点 id
8
+ */
9
+ children?: string[];
10
+ /**
11
+ * 分组节点是否可以折叠
12
+ */
13
+ collapsible?: boolean;
14
+ /**
15
+ * 分组节点折叠状态
16
+ */
17
+ isCollapsed?: boolean;
18
+ /**
19
+ * 子节点是否限制移动范围
20
+ * 默认为 false,允许拖拽移除分组
21
+ */
22
+ isRestrict?: boolean;
23
+ /**
24
+ * isRestrict 模式启用时,
25
+ * 如果同时设置 autoResize 为 true,
26
+ * 那么子节点在父节点中移动时,父节点会自动调整大小
27
+ */
28
+ autoResize?: boolean;
29
+ /**
30
+ * 分组节点的收起状态宽高
31
+ */
32
+ collapsedWidth?: number;
33
+ collapsedHeight?: number;
34
+ /**
35
+ * 当前分组元素的 zIndex
36
+ */
37
+ zIndex?: number;
38
+ /**
39
+ * 分组节点是否自动置顶
40
+ */
41
+ autoToFront?: boolean;
42
+ isAllowAppendIn?: (_nodeData: any) => boolean;
43
+ } & IRectNodeProperties;
44
+ export declare class DynamicGroupNodeModel extends RectNodeModel<IGroupNodeProperties> {
45
+ readonly isGroup = true;
46
+ children: Set<string>;
47
+ isRestrict: boolean;
48
+ collapsible: boolean;
49
+ expandWidth: number;
50
+ expandHeight: number;
51
+ collapsedWidth: number;
52
+ collapsedHeight: number;
53
+ isCollapsed: boolean;
54
+ groupAddable: boolean;
55
+ transformWidthContainer: boolean;
56
+ childrenLastCollapseStateDict: Record<string, boolean>;
57
+ constructor(data: NodeConfig<IGroupNodeProperties>, graphModel: GraphModel);
58
+ initNodeData(data: LogicFlow.NodeConfig<IGroupNodeProperties>): void;
59
+ setAttributes(): void;
60
+ getData(): NodeData;
61
+ /**
62
+ * 重写 getHistoryData 方法
63
+ */
64
+ getHistoryData(): NodeData;
65
+ /**
66
+ * 触发分组节点的「折叠 or 展开」动作
67
+ * 1. 折叠分组的宽高
68
+ * 2. 处理分组子节点
69
+ * 3. 处理连线
70
+ * @param collapse {boolean} true -> 折叠;false -> 展开
71
+ */
72
+ toggleCollapse(collapse?: boolean): void;
73
+ collapse(): void;
74
+ expand(): void;
75
+ createVirtualEdge(edgeConfig: EdgeConfig): void;
76
+ /**
77
+ * 折叠分组的时候,需要处理分组自身的连线和分组内部子节点上的连线
78
+ * 边的分类:
79
+ * - 虚拟边:分组被收起时,标识分组本身与外部节点关系的边
80
+ * - 真实边:分组本身或者分组内部节点与外部节点(非收起分组)关系的边
81
+ * 如果一个分组,本身与外部节点有 M 条连线,且内部 N 个子节点与外部节点有连线,那么这个分组收起时会生成 M+N 条连线
82
+ * 折叠分组时:
83
+ * - 原有的虚拟边删除
84
+ * - 创建一个虚拟边
85
+ * - 真实边则隐藏
86
+ * 展开分组时:
87
+ * - 当前的虚拟边删除
88
+ * - 如果外部节点是收起的分组,则创建虚拟边
89
+ * - 如果外部节点是普通节点,则显示真实边
90
+ *
91
+ * @param collapse
92
+ * @param edges
93
+ */
94
+ collapseEdge(collapse: boolean, edges: BaseEdgeModel[]): void;
95
+ /**
96
+ * 是否允许此节点添加到该分组
97
+ * TODO: 如何重写该方法呢?
98
+ * @param _nodeData
99
+ */
100
+ isAllowAppendIn(_nodeData: NodeData): boolean;
101
+ /**
102
+ * 更新分组节点是否允许添加节点的属性
103
+ * @param isAllow
104
+ */
105
+ setAllowAppendChild(isAllow: boolean): void;
106
+ /**
107
+ * 添加节点至分组中
108
+ * @param id
109
+ */
110
+ addChild(id: string): void;
111
+ /**
112
+ * 从分组中移除某节点
113
+ * @param id
114
+ */
115
+ removeChild(id: string): void;
116
+ /**
117
+ * 当 groupA 被添加到 groupB 中时,将 groupB 及 groupB 所属的 group zIndex 减 1
118
+ */
119
+ toBack(): void;
120
+ /**
121
+ * 重写 Group 节点的 Resize Outline
122
+ */
123
+ getResizeOutlineStyle(): LogicFlow.CommonTheme;
124
+ getAnchorStyle(): LogicFlow.AnchorTheme;
125
+ /**
126
+ * 设置分组节点 drop 区域的样式
127
+ */
128
+ getAddableOutlineStyle(): {
129
+ stroke: string;
130
+ strokeWidth: number;
131
+ strokeDasharray: string;
132
+ fill: string;
133
+ };
134
+ }
135
+ export default DynamicGroupNodeModel;
@@ -0,0 +1,416 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
29
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
33
+ };
34
+ var __read = (this && this.__read) || function (o, n) {
35
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
36
+ if (!m) return o;
37
+ var i = m.call(o), r, ar = [], e;
38
+ try {
39
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
40
+ }
41
+ catch (error) { e = { error: error }; }
42
+ finally {
43
+ try {
44
+ if (r && !r.done && (m = i["return"])) m.call(i);
45
+ }
46
+ finally { if (e) throw e.error; }
47
+ }
48
+ return ar;
49
+ };
50
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
51
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
52
+ if (ar || !(i in from)) {
53
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
54
+ ar[i] = from[i];
55
+ }
56
+ }
57
+ return to.concat(ar || Array.prototype.slice.call(from));
58
+ };
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.DynamicGroupNodeModel = void 0;
61
+ var core_1 = require("@logicflow/core");
62
+ var lodash_es_1 = require("lodash-es");
63
+ // 分组节点默认展开时的大小
64
+ var DEFAULT_GROUP_EXPAND_WIDTH = 400;
65
+ var DEFAULT_GROUP_EXPAND_HEIGHT = 230;
66
+ // 分组节点默认收起时的大小
67
+ var DEFAULT_GROUP_COLLAPSE_WIDTH = 80;
68
+ var DEFAULT_GROUP_COLLAPSE_HEIGHT = 60;
69
+ var DEFAULT_BOTTOM_Z_INDEX = -10000;
70
+ var DynamicGroupNodeModel = /** @class */ (function (_super) {
71
+ __extends(DynamicGroupNodeModel, _super);
72
+ function DynamicGroupNodeModel(data, graphModel) {
73
+ var _this = _super.call(this, data, graphModel) || this;
74
+ _this.isGroup = true;
75
+ // 是否限制组内节点的移动范围。默认不限制 TODO: 完善该功能
76
+ _this.isRestrict = false;
77
+ // 分组节点是否可以折叠
78
+ _this.collapsible = true;
79
+ // 当前组是否收起状态
80
+ _this.isCollapsed = false;
81
+ // 当前分组是否在可添加状态 - 实时状态
82
+ _this.groupAddable = false;
83
+ // 缩放或旋转容器时,是否缩放或旋转组内节点
84
+ _this.transformWidthContainer = true;
85
+ _this.childrenLastCollapseStateDict = {};
86
+ _this.initNodeData(data);
87
+ _this.setAttributes();
88
+ return _this;
89
+ }
90
+ DynamicGroupNodeModel.prototype.initNodeData = function (data) {
91
+ var _a;
92
+ _super.prototype.initNodeData.call(this, data);
93
+ var _b = (_a = data.properties) !== null && _a !== void 0 ? _a : {}, children = _b.children, width = _b.width, height = _b.height, collapsedWidth = _b.collapsedWidth, collapsedHeight = _b.collapsedHeight, collapsible = _b.collapsible, isCollapsed = _b.isCollapsed, zIndex = _b.zIndex, isRestrict = _b.isRestrict, autoToFront = _b.autoToFront;
94
+ this.children = children ? new Set(children) : new Set();
95
+ this.zIndex = zIndex !== null && zIndex !== void 0 ? zIndex : DEFAULT_BOTTOM_Z_INDEX;
96
+ this.isCollapsed = isCollapsed !== null && isCollapsed !== void 0 ? isCollapsed : false;
97
+ var expandWidth = width !== null && width !== void 0 ? width : DEFAULT_GROUP_EXPAND_WIDTH;
98
+ var expandHeight = height !== null && height !== void 0 ? height : DEFAULT_GROUP_EXPAND_HEIGHT;
99
+ // 初始化分组节点的宽高数据
100
+ this.width = expandWidth;
101
+ this.height = expandHeight;
102
+ this.expandWidth = expandWidth;
103
+ this.expandHeight = expandHeight;
104
+ this.collapsedWidth = collapsedWidth !== null && collapsedWidth !== void 0 ? collapsedWidth : DEFAULT_GROUP_COLLAPSE_WIDTH;
105
+ this.collapsedHeight = collapsedHeight !== null && collapsedHeight !== void 0 ? collapsedHeight : DEFAULT_GROUP_COLLAPSE_HEIGHT;
106
+ this.isRestrict = isRestrict !== null && isRestrict !== void 0 ? isRestrict : false;
107
+ this.collapsible = collapsible !== null && collapsible !== void 0 ? collapsible : true;
108
+ this.autoToFront = autoToFront !== null && autoToFront !== void 0 ? autoToFront : false;
109
+ // 禁用掉 Group 节点的文本编辑能力
110
+ this.text.editable = false;
111
+ this.text.draggable = false;
112
+ };
113
+ DynamicGroupNodeModel.prototype.setAttributes = function () {
114
+ _super.prototype.setAttributes.call(this);
115
+ // 初始化时,如果 this.isCollapsed 为 true,则主动触发一次折叠操作
116
+ if (this.isCollapsed) {
117
+ this.toggleCollapse(true);
118
+ }
119
+ };
120
+ DynamicGroupNodeModel.prototype.getData = function () {
121
+ var _this = this;
122
+ var data = _super.prototype.getData.call(this);
123
+ var children = [];
124
+ (0, lodash_es_1.forEach)(Array.from(this.children), function (childId) {
125
+ var model = _this.graphModel.getNodeModelById(childId);
126
+ if (model && !model.virtual) {
127
+ children.push(childId);
128
+ }
129
+ });
130
+ data.children = children;
131
+ if (data.properties) {
132
+ data.properties.children = children;
133
+ data.properties.isCollapsed = this.isCollapsed;
134
+ }
135
+ return data;
136
+ };
137
+ /**
138
+ * 重写 getHistoryData 方法
139
+ */
140
+ DynamicGroupNodeModel.prototype.getHistoryData = function () {
141
+ var data = _super.prototype.getHistoryData.call(this);
142
+ data.children = Array.from(this.children);
143
+ data.isGroup = true;
144
+ var _a = this, x = _a.x, y = _a.y, collapsedWidth = _a.collapsedWidth, collapsedHeight = _a.collapsedHeight, expandWidth = _a.expandWidth, expandHeight = _a.expandHeight, isCollapsed = _a.isCollapsed;
145
+ if (isCollapsed) {
146
+ data.x = x + expandWidth / 2 - collapsedWidth / 2;
147
+ data.y = y + expandHeight / 2 - collapsedHeight / 2;
148
+ }
149
+ return data;
150
+ };
151
+ /**
152
+ * 触发分组节点的「折叠 or 展开」动作
153
+ * 1. 折叠分组的宽高
154
+ * 2. 处理分组子节点
155
+ * 3. 处理连线
156
+ * @param collapse {boolean} true -> 折叠;false -> 展开
157
+ */
158
+ DynamicGroupNodeModel.prototype.toggleCollapse = function (collapse) {
159
+ var _this = this;
160
+ var nextCollapseState = !!collapse;
161
+ this.isCollapsed = nextCollapseState;
162
+ // step 1
163
+ if (nextCollapseState) {
164
+ this.collapse();
165
+ }
166
+ else {
167
+ this.expand();
168
+ }
169
+ // step 2
170
+ var allRelatedEdges = __spreadArray(__spreadArray([], __read(this.incoming.edges), false), __read(this.outgoing.edges), false);
171
+ console.log('this -->>', this);
172
+ console.log('this.children -->>', this.children);
173
+ var childrenArr = Array.from(this.children);
174
+ (0, lodash_es_1.forEach)(childrenArr, function (elementId) {
175
+ var model = _this.graphModel.getElement(elementId);
176
+ if (model) {
177
+ // TODO: ??? 普通节点有这个属性吗?确认这个代码的意义
178
+ var collapseStatus = model.isCollapsed;
179
+ // FIX: https://github.com/didi/LogicFlow/issues/1007
180
+ // 下面代码片段,针对 Group 节点执行
181
+ if (model.isGroup) {
182
+ var groupModel = model;
183
+ if (!groupModel.isCollapsed) {
184
+ // 正常情况下,parent 折叠后,children 也应该折叠
185
+ // 因此当前 parent 准备展开时,children 的目前状态肯定是折叠状态,也就是 model.isCollapsed 为 true,这个代码块不会触发
186
+ // 只有当 parent 准备折叠时,children 目前状态才有可能是展开
187
+ // 即 model.isCollapsed 为 false,这个代码块触发, 此时 isCollapse 为 true,触发 children 也进行折叠
188
+ groupModel.toggleCollapse(collapse);
189
+ }
190
+ if (!collapse) {
191
+ // 当 parent 准备展开时,children 的值应该恢复到折叠前的状态
192
+ var lastCollapseStatus = _this.childrenLastCollapseStateDict[elementId];
193
+ if (lastCollapseStatus !== undefined &&
194
+ lastCollapseStatus !== model.isCollapsed) {
195
+ // https://github.com/didi/LogicFlow/issues/1145
196
+ // 当parent准备展开时,children的值肯定是折叠,也就是nodeModel.isCollapsed=true
197
+ // 当parent准备展开时,如果children之前的状态是展开,则恢复展开状态
198
+ groupModel.toggleCollapse(lastCollapseStatus);
199
+ }
200
+ }
201
+ }
202
+ _this.childrenLastCollapseStateDict[elementId] = !!collapseStatus;
203
+ model.visible = !collapse;
204
+ // 判断,如果是节点时,才去读取节点的 incoming 和 outgoing
205
+ if (model.BaseType === core_1.ElementType.NODE) {
206
+ var incomingEdges = model.incoming.edges;
207
+ var outgoingEdges = model.outgoing.edges;
208
+ allRelatedEdges = __spreadArray(__spreadArray(__spreadArray([], __read(allRelatedEdges), false), __read(incomingEdges), false), __read(outgoingEdges), false);
209
+ }
210
+ }
211
+ });
212
+ // step 3
213
+ this.collapseEdge(nextCollapseState, allRelatedEdges);
214
+ };
215
+ // 折叠操作
216
+ DynamicGroupNodeModel.prototype.collapse = function () {
217
+ var _a = this, x = _a.x, y = _a.y, text = _a.text, width = _a.width, height = _a.height, collapsedWidth = _a.collapsedWidth, collapsedHeight = _a.collapsedHeight;
218
+ this.x = x - width / 2 + collapsedWidth / 2;
219
+ this.y = y - height / 2 + collapsedHeight / 2;
220
+ this.text.x = text.x - width / 2 + collapsedWidth / 2;
221
+ this.text.y = text.y - height / 2 + collapsedHeight / 2;
222
+ // 记录折叠前的节点大小,并将其记录到 expandWidth 中
223
+ this.expandWidth = width;
224
+ this.expandHeight = height;
225
+ this.width = collapsedWidth;
226
+ this.height = collapsedHeight;
227
+ };
228
+ // 展开操作
229
+ DynamicGroupNodeModel.prototype.expand = function () {
230
+ var _a = this, x = _a.x, y = _a.y, text = _a.text, expandWidth = _a.expandWidth, expandHeight = _a.expandHeight, collapsedWidth = _a.collapsedWidth, collapsedHeight = _a.collapsedHeight;
231
+ this.width = expandWidth;
232
+ this.height = expandHeight;
233
+ // 重新计算节点及文本的坐标
234
+ this.x = x + this.width / 2 - collapsedWidth / 2;
235
+ this.y = y + this.height / 2 - collapsedHeight / 2;
236
+ this.text.x = text.x + this.width / 2 - collapsedWidth / 2;
237
+ this.text.y = text.y + this.height / 2 - collapsedHeight / 2;
238
+ };
239
+ DynamicGroupNodeModel.prototype.createVirtualEdge = function (edgeConfig) {
240
+ edgeConfig.pointsList = undefined;
241
+ var virtualEdge = this.graphModel.addEdge(edgeConfig);
242
+ virtualEdge.virtual = true;
243
+ // TODO: 强制不保存 group 连线数据???-> 为什么注释掉?是不是不能强制设置为 null,会导致无法回填
244
+ // virtualEdge.getData = () => null
245
+ virtualEdge.text.editable = false;
246
+ virtualEdge.isCollapsedEdge = true; // 这一行干啥的,TODO: 项目中没搜到应用的地方,是否应该移除
247
+ };
248
+ /**
249
+ * 折叠分组的时候,需要处理分组自身的连线和分组内部子节点上的连线
250
+ * 边的分类:
251
+ * - 虚拟边:分组被收起时,标识分组本身与外部节点关系的边
252
+ * - 真实边:分组本身或者分组内部节点与外部节点(非收起分组)关系的边
253
+ * 如果一个分组,本身与外部节点有 M 条连线,且内部 N 个子节点与外部节点有连线,那么这个分组收起时会生成 M+N 条连线
254
+ * 折叠分组时:
255
+ * - 原有的虚拟边删除
256
+ * - 创建一个虚拟边
257
+ * - 真实边则隐藏
258
+ * 展开分组时:
259
+ * - 当前的虚拟边删除
260
+ * - 如果外部节点是收起的分组,则创建虚拟边
261
+ * - 如果外部节点是普通节点,则显示真实边
262
+ *
263
+ * @param collapse
264
+ * @param edges
265
+ */
266
+ DynamicGroupNodeModel.prototype.collapseEdge = function (collapse, edges) {
267
+ var _this = this;
268
+ var graphModel = this.graphModel;
269
+ (0, lodash_es_1.forEach)(edges, function (edge, idx) {
270
+ var _a;
271
+ var edgeData = edge.getData();
272
+ var targetNodeId = edgeData.targetNodeId, sourceNodeId = edgeData.sourceNodeId;
273
+ var edgeConfig = __assign(__assign({}, edgeData), { id: "".concat(edgeData.id, "__").concat(idx), text: (_a = edgeData.text) === null || _a === void 0 ? void 0 : _a.value });
274
+ if (edge.virtual) {
275
+ graphModel.deleteEdgeById(edge.id);
276
+ }
277
+ // 考虑目标节点也属于分组的情况
278
+ var targetNodeGroup = graphModel.group.getGroupByNodeId(targetNodeId);
279
+ if (!targetNodeGroup) {
280
+ targetNodeGroup = graphModel.getNodeModelById(targetNodeId);
281
+ }
282
+ // 考虑源节点也属于分组的情况
283
+ var sourceNodeGroup = graphModel.group.getGroupByNodeId(sourceNodeId);
284
+ if (!sourceNodeGroup) {
285
+ sourceNodeGroup = graphModel.getNodeModelById(sourceNodeId);
286
+ }
287
+ // 折叠时,处理未被隐藏的边的逻辑 -> collapse
288
+ if (collapse && edge.visible) {
289
+ // 需要确认此分组节点是新连线的起点还是终点
290
+ // 创建一个虚拟边,虚拟边相对于真实边,起点或者终点从一起分组节点的中心点开始 TODO:??? 确认什么意思
291
+ // 如果需要被隐藏的边的起点在需要折叠的分组中,那么设置虚拟边的开始节点为此分组
292
+ if (_this.children.has(sourceNodeId) || _this.id === sourceNodeId) {
293
+ edgeConfig.startPoint = undefined;
294
+ edgeConfig.sourceNodeId = _this.id;
295
+ }
296
+ else {
297
+ edgeConfig.endPoint = undefined;
298
+ edgeConfig.targetNodeId = _this.id;
299
+ }
300
+ // 如果边的起点和终点都在分组内部,则不创建新的虚拟边
301
+ if (targetNodeGroup.id !== _this.id || sourceNodeGroup.id !== _this.id) {
302
+ _this.createVirtualEdge(edgeConfig);
303
+ }
304
+ edge.visible = false;
305
+ }
306
+ // 展开时,处理被隐藏的边的逻辑 -> expand
307
+ if (!collapse && !edge.visible) {
308
+ // 展开分组时:判断真实边的起点和中带你是否有任一节点在已折叠分组中,如果不是,则显示真实边
309
+ // 如果是,则修改这个边的对应目标节点 id 来创建虚拟边
310
+ if (targetNodeGroup &&
311
+ targetNodeGroup.isGroup &&
312
+ targetNodeGroup.isCollapsed) {
313
+ edgeConfig.targetNodeId = targetNodeGroup.id;
314
+ edgeConfig.endPoint = undefined;
315
+ _this.createVirtualEdge(edgeConfig);
316
+ }
317
+ else if (sourceNodeGroup &&
318
+ sourceNodeGroup.isGroup &&
319
+ sourceNodeGroup.isCollapsed) {
320
+ edgeConfig.sourceNodeId = sourceNodeGroup.id;
321
+ edgeConfig.startPoint = undefined;
322
+ _this.createVirtualEdge(edgeConfig);
323
+ }
324
+ else {
325
+ edge.visible = true;
326
+ }
327
+ }
328
+ });
329
+ };
330
+ /**
331
+ * 是否允许此节点添加到该分组
332
+ * TODO: 如何重写该方法呢?
333
+ * @param _nodeData
334
+ */
335
+ DynamicGroupNodeModel.prototype.isAllowAppendIn = function (_nodeData) {
336
+ console.info('_nodeData', _nodeData);
337
+ // TODO: 此处使用 this.properties.groupAddable 还是 this.groupAddable
338
+ // this.groupAddable 是否存在更新不及时的问题
339
+ return true;
340
+ };
341
+ /**
342
+ * 更新分组节点是否允许添加节点的属性
343
+ * @param isAllow
344
+ */
345
+ DynamicGroupNodeModel.prototype.setAllowAppendChild = function (isAllow) {
346
+ // this.setProperty('groupAddable', isAllow)
347
+ this.groupAddable = isAllow;
348
+ };
349
+ /**
350
+ * 添加节点至分组中
351
+ * @param id
352
+ */
353
+ DynamicGroupNodeModel.prototype.addChild = function (id) {
354
+ this.children.add(id);
355
+ var groupData = this.getData();
356
+ this.graphModel.eventCenter.emit('group:add-node', { data: groupData });
357
+ };
358
+ /**
359
+ * 从分组中移除某节点
360
+ * @param id
361
+ */
362
+ DynamicGroupNodeModel.prototype.removeChild = function (id) {
363
+ this.children.delete(id);
364
+ var groupData = this.getData();
365
+ this.graphModel.eventCenter.emit('group:remove-node', { data: groupData });
366
+ };
367
+ /**
368
+ * 当 groupA 被添加到 groupB 中时,将 groupB 及 groupB 所属的 group zIndex 减 1
369
+ */
370
+ DynamicGroupNodeModel.prototype.toBack = function () {
371
+ this.zIndex--;
372
+ };
373
+ /**
374
+ * 重写 Group 节点的 Resize Outline
375
+ */
376
+ DynamicGroupNodeModel.prototype.getResizeOutlineStyle = function () {
377
+ var style = _super.prototype.getResizeOutlineStyle.call(this);
378
+ style.stroke = 'none';
379
+ return style;
380
+ };
381
+ // TODO: 是否是设置 group 节点没有锚点,而不是设置成透明???
382
+ DynamicGroupNodeModel.prototype.getAnchorStyle = function () {
383
+ var style = _super.prototype.getAnchorStyle.call(this);
384
+ style.stroke = 'transparent';
385
+ style.fill = 'transparent';
386
+ if (style.hover) {
387
+ style.hover.fill = 'transparent';
388
+ style.hover.stroke = 'transparent';
389
+ }
390
+ return style;
391
+ };
392
+ /**
393
+ * 设置分组节点 drop 区域的样式
394
+ */
395
+ DynamicGroupNodeModel.prototype.getAddableOutlineStyle = function () {
396
+ return {
397
+ stroke: '#feb663',
398
+ strokeWidth: 2,
399
+ strokeDasharray: '4 4',
400
+ fill: 'transparent',
401
+ };
402
+ };
403
+ __decorate([
404
+ core_1.observable
405
+ ], DynamicGroupNodeModel.prototype, "isCollapsed", void 0);
406
+ __decorate([
407
+ core_1.observable
408
+ ], DynamicGroupNodeModel.prototype, "groupAddable", void 0);
409
+ __decorate([
410
+ core_1.observable
411
+ ], DynamicGroupNodeModel.prototype, "transformWidthContainer", void 0);
412
+ return DynamicGroupNodeModel;
413
+ }(core_1.RectNodeModel));
414
+ exports.DynamicGroupNodeModel = DynamicGroupNodeModel;
415
+ exports.default = DynamicGroupNodeModel;
416
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/dynamic-group/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { GraphModel, h, RectNode } from '@logicflow/core';
2
+ import { DynamicGroupNodeModel } from './model';
3
+ export interface IDynamicGroupNodeProps {
4
+ model: DynamicGroupNodeModel;
5
+ graphModel: GraphModel;
6
+ }
7
+ export declare class DynamicGroupNode<P extends IDynamicGroupNodeProps = IDynamicGroupNodeProps> extends RectNode<P> {
8
+ componentDidMount(): void;
9
+ getResizeControl(): h.JSX.Element | null;
10
+ getAppendAreaShape(): h.JSX.Element | null;
11
+ getCollapseIcon(sx: number, sy: number): string;
12
+ getExpandIcon(sx: number, sy: number): string;
13
+ getOperateIcon(): h.JSX.Element | null;
14
+ getShape(): h.JSX.Element | null;
15
+ }
16
+ export default DynamicGroupNode;