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

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 (235) hide show
  1. package/.turbo/turbo-build.log +361 -6
  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.map +1 -1
  39. package/es/dynamic-group/index.d.ts +106 -0
  40. package/es/dynamic-group/index.js +536 -0
  41. package/es/dynamic-group/index.js.map +1 -0
  42. package/es/dynamic-group/model.d.ts +135 -0
  43. package/es/dynamic-group/model.js +413 -0
  44. package/es/dynamic-group/model.js.map +1 -0
  45. package/es/dynamic-group/node.d.ts +16 -0
  46. package/es/dynamic-group/node.js +143 -0
  47. package/es/dynamic-group/node.js.map +1 -0
  48. package/es/dynamic-group/utils.d.ts +17 -0
  49. package/es/dynamic-group/utils.js +27 -0
  50. package/es/dynamic-group/utils.js.map +1 -0
  51. package/es/index.css +63 -0
  52. package/es/index.d.ts +16 -8
  53. package/es/index.js +24 -8
  54. package/es/index.js.map +1 -1
  55. package/es/insert-node-in-polyline/index.js +3 -3
  56. package/es/insert-node-in-polyline/index.js.map +1 -1
  57. package/es/materials/group/GroupNode.d.ts +6 -10
  58. package/es/materials/group/GroupNode.js +8 -6
  59. package/es/materials/group/GroupNode.js.map +1 -1
  60. package/es/materials/group/index.d.ts +5 -5
  61. package/es/materials/group/index.js +25 -26
  62. package/es/materials/group/index.js.map +1 -1
  63. package/es/materials/node-selection/index.d.ts +6 -1
  64. package/es/materials/node-selection/index.js +64 -56
  65. package/es/materials/node-selection/index.js.map +1 -1
  66. package/es/mindmap/index.d.ts +2 -2
  67. package/es/style/index.css +63 -0
  68. package/es/style/index.less +73 -0
  69. package/es/style/raw.d.ts +1 -1
  70. package/es/style/raw.js +1 -1
  71. package/es/style/raw.js.map +1 -1
  72. package/es/tools/flow-path/index.js +0 -1
  73. package/es/tools/flow-path/index.js.map +1 -1
  74. package/es/tools/label/Label.d.ts +30 -0
  75. package/es/tools/label/Label.js +241 -0
  76. package/es/tools/label/Label.js.map +1 -0
  77. package/es/tools/label/LabelModel.d.ts +26 -0
  78. package/es/tools/label/LabelModel.js +86 -0
  79. package/es/tools/label/LabelModel.js.map +1 -0
  80. package/es/tools/label/LabelOverlay.d.ts +28 -0
  81. package/es/tools/label/LabelOverlay.js +161 -0
  82. package/es/tools/label/LabelOverlay.js.map +1 -0
  83. package/es/tools/label/algorithm.d.ts +16 -0
  84. package/es/tools/label/algorithm.js +27 -0
  85. package/es/tools/label/algorithm.js.map +1 -0
  86. package/es/tools/label/index.d.ts +59 -0
  87. package/es/tools/label/index.js +292 -0
  88. package/es/tools/label/index.js.map +1 -0
  89. package/es/tools/label/mediumEditor.d.ts +17 -0
  90. package/es/tools/label/mediumEditor.js +92 -0
  91. package/es/tools/label/mediumEditor.js.map +1 -0
  92. package/es/tools/label/utils.d.ts +64 -0
  93. package/es/tools/label/utils.js +336 -0
  94. package/es/tools/label/utils.js.map +1 -0
  95. package/es/tools/snapshot/index.d.ts +107 -11
  96. package/es/tools/snapshot/index.js +366 -149
  97. package/es/tools/snapshot/index.js.map +1 -1
  98. package/es/tools/snapshot/utils.d.ts +35 -0
  99. package/es/tools/snapshot/utils.js +238 -0
  100. package/es/tools/snapshot/utils.js.map +1 -0
  101. package/lib/NodeResize/control/Control.d.ts +3 -3
  102. package/lib/NodeResize/control/Control.js +13 -3
  103. package/lib/NodeResize/control/Control.js.map +1 -1
  104. package/lib/NodeResize/index.d.ts +4 -0
  105. package/lib/NodeResize/index.js.map +1 -1
  106. package/lib/NodeResize/node/DiamondResize.d.ts +1 -0
  107. package/lib/NodeResize/node/DiamondResize.js +2 -1
  108. package/lib/NodeResize/node/DiamondResize.js.map +1 -1
  109. package/lib/NodeResize/node/EllipseResize.d.ts +1 -0
  110. package/lib/NodeResize/node/EllipseResize.js +2 -1
  111. package/lib/NodeResize/node/EllipseResize.js.map +1 -1
  112. package/lib/NodeResize/node/HtmlResize.js +1 -1
  113. package/lib/NodeResize/node/HtmlResize.js.map +1 -1
  114. package/lib/NodeResize/node/RectResize.js +1 -1
  115. package/lib/NodeResize/node/RectResize.js.map +1 -1
  116. package/lib/bpmn/constant.d.ts +1 -1
  117. package/lib/bpmn/constant.js +3 -0
  118. package/lib/bpmn/constant.js.map +1 -1
  119. package/lib/bpmn/index.d.ts +3 -6
  120. package/lib/bpmn/index.js +5 -7
  121. package/lib/bpmn/index.js.map +1 -1
  122. package/lib/bpmn-elements/presets/Pool/Pool.d.ts +21 -1
  123. package/lib/components/control/index.d.ts +4 -4
  124. package/lib/components/control/index.js.map +1 -1
  125. package/lib/components/highlight/index.d.ts +6 -4
  126. package/lib/components/highlight/index.js +32 -5
  127. package/lib/components/highlight/index.js.map +1 -1
  128. package/lib/components/menu/index.d.ts +1 -1
  129. package/lib/components/menu/index.js +9 -10
  130. package/lib/components/menu/index.js.map +1 -1
  131. package/lib/components/mini-map/index.d.ts +1 -1
  132. package/lib/components/mini-map/index.js +2 -2
  133. package/lib/components/mini-map/index.js.map +1 -1
  134. package/lib/components/selection-select/index.d.ts +1 -1
  135. package/lib/components/selection-select/index.js.map +1 -1
  136. package/lib/dynamic-group/index.d.ts +106 -0
  137. package/lib/dynamic-group/index.js +553 -0
  138. package/lib/dynamic-group/index.js.map +1 -0
  139. package/lib/dynamic-group/model.d.ts +135 -0
  140. package/lib/dynamic-group/model.js +416 -0
  141. package/lib/dynamic-group/model.js.map +1 -0
  142. package/lib/dynamic-group/node.d.ts +16 -0
  143. package/lib/dynamic-group/node.js +146 -0
  144. package/lib/dynamic-group/node.js.map +1 -0
  145. package/lib/dynamic-group/utils.d.ts +17 -0
  146. package/lib/dynamic-group/utils.js +32 -0
  147. package/lib/dynamic-group/utils.js.map +1 -0
  148. package/lib/index.css +63 -0
  149. package/lib/index.d.ts +16 -8
  150. package/lib/index.js +24 -8
  151. package/lib/index.js.map +1 -1
  152. package/lib/insert-node-in-polyline/index.js +2 -2
  153. package/lib/insert-node-in-polyline/index.js.map +1 -1
  154. package/lib/materials/group/GroupNode.d.ts +6 -10
  155. package/lib/materials/group/GroupNode.js +8 -6
  156. package/lib/materials/group/GroupNode.js.map +1 -1
  157. package/lib/materials/group/index.d.ts +5 -5
  158. package/lib/materials/group/index.js +24 -25
  159. package/lib/materials/group/index.js.map +1 -1
  160. package/lib/materials/node-selection/index.d.ts +6 -1
  161. package/lib/materials/node-selection/index.js +63 -55
  162. package/lib/materials/node-selection/index.js.map +1 -1
  163. package/lib/mindmap/index.d.ts +2 -2
  164. package/lib/style/index.css +63 -0
  165. package/lib/style/index.less +73 -0
  166. package/lib/style/raw.d.ts +1 -1
  167. package/lib/style/raw.js +1 -1
  168. package/lib/style/raw.js.map +1 -1
  169. package/lib/tools/flow-path/index.js +0 -1
  170. package/lib/tools/flow-path/index.js.map +1 -1
  171. package/lib/tools/label/Label.d.ts +30 -0
  172. package/lib/tools/label/Label.js +247 -0
  173. package/lib/tools/label/Label.js.map +1 -0
  174. package/lib/tools/label/LabelModel.d.ts +26 -0
  175. package/lib/tools/label/LabelModel.js +89 -0
  176. package/lib/tools/label/LabelModel.js.map +1 -0
  177. package/lib/tools/label/LabelOverlay.d.ts +28 -0
  178. package/lib/tools/label/LabelOverlay.js +167 -0
  179. package/lib/tools/label/LabelOverlay.js.map +1 -0
  180. package/lib/tools/label/algorithm.d.ts +16 -0
  181. package/lib/tools/label/algorithm.js +32 -0
  182. package/lib/tools/label/algorithm.js.map +1 -0
  183. package/lib/tools/label/index.d.ts +59 -0
  184. package/lib/tools/label/index.js +298 -0
  185. package/lib/tools/label/index.js.map +1 -0
  186. package/lib/tools/label/mediumEditor.d.ts +17 -0
  187. package/lib/tools/label/mediumEditor.js +98 -0
  188. package/lib/tools/label/mediumEditor.js.map +1 -0
  189. package/lib/tools/label/utils.d.ts +64 -0
  190. package/lib/tools/label/utils.js +349 -0
  191. package/lib/tools/label/utils.js.map +1 -0
  192. package/lib/tools/snapshot/index.d.ts +107 -11
  193. package/lib/tools/snapshot/index.js +366 -149
  194. package/lib/tools/snapshot/index.js.map +1 -1
  195. package/lib/tools/snapshot/utils.d.ts +35 -0
  196. package/lib/tools/snapshot/utils.js +247 -0
  197. package/lib/tools/snapshot/utils.js.map +1 -0
  198. package/package.json +9 -3
  199. package/rollup.config.js +1 -1
  200. package/src/NodeResize/control/Control.tsx +13 -3
  201. package/src/NodeResize/index.ts +4 -0
  202. package/src/NodeResize/node/DiamondResize.tsx +2 -1
  203. package/src/NodeResize/node/EllipseResize.tsx +2 -1
  204. package/src/NodeResize/node/HtmlResize.tsx +1 -1
  205. package/src/NodeResize/node/RectResize.tsx +1 -1
  206. package/src/bpmn/constant.ts +4 -1
  207. package/src/bpmn/index.ts +7 -4
  208. package/src/bpmn-elements-adapter/README.md +1 -3
  209. package/src/components/control/index.ts +4 -4
  210. package/src/components/highlight/index.ts +33 -6
  211. package/src/components/menu/index.ts +16 -13
  212. package/src/components/mini-map/index.ts +3 -3
  213. package/src/components/selection-select/index.ts +6 -2
  214. package/src/dynamic-group/index.ts +609 -0
  215. package/src/dynamic-group/model.ts +503 -0
  216. package/src/dynamic-group/node.ts +140 -0
  217. package/src/dynamic-group/utils.ts +33 -0
  218. package/src/index.ts +30 -8
  219. package/src/insert-node-in-polyline/index.ts +3 -3
  220. package/src/materials/group/GroupNode.ts +12 -12
  221. package/src/materials/group/index.ts +40 -40
  222. package/src/materials/node-selection/index.ts +78 -70
  223. package/src/style/index.less +73 -0
  224. package/src/style/raw.ts +64 -1
  225. package/src/tools/flow-path/index.ts +0 -1
  226. package/src/tools/label/Label.tsx +297 -0
  227. package/src/tools/label/LabelModel.ts +82 -0
  228. package/src/tools/label/LabelOverlay.tsx +159 -0
  229. package/src/tools/label/algorithm.ts +42 -0
  230. package/src/tools/label/index.ts +401 -0
  231. package/src/tools/label/mediumEditor.ts +94 -0
  232. package/src/tools/label/utils.ts +395 -0
  233. package/src/tools/snapshot/README.md +141 -5
  234. package/src/tools/snapshot/index.ts +288 -101
  235. 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,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;