@logicflow/extension 2.0.0-beta.1 → 2.0.0-beta.11

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