aldehyde 0.2.473 → 0.2.474

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 (113) hide show
  1. package/lib/controls/entry-control.js +2 -2
  2. package/lib/controls/entry-control.js.map +1 -1
  3. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
  4. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +12 -12
  5. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js.map +1 -1
  6. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
  7. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
  8. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
  9. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
  10. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts +5 -0
  11. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts.map +1 -0
  12. package/lib/draw-canvas/edit/components/asset-bar/index.js +78 -0
  13. package/lib/draw-canvas/edit/components/asset-bar/index.js.map +1 -0
  14. package/lib/draw-canvas/edit/components/asset-bar/index.less +36 -0
  15. package/lib/draw-canvas/edit/components/main-header/index.d.ts +14 -0
  16. package/lib/draw-canvas/edit/components/main-header/index.d.ts.map +1 -0
  17. package/lib/draw-canvas/edit/components/main-header/index.js +163 -0
  18. package/lib/draw-canvas/edit/components/main-header/index.js.map +1 -0
  19. package/lib/draw-canvas/edit/components/main-header/index.less +21 -0
  20. package/lib/draw-canvas/edit/components/render/index.d.ts +86 -0
  21. package/lib/draw-canvas/edit/components/render/index.d.ts.map +1 -0
  22. package/lib/draw-canvas/edit/components/render/index.js +686 -0
  23. package/lib/draw-canvas/edit/components/render/index.js.map +1 -0
  24. package/lib/draw-canvas/edit/components/render/types.d.ts +243 -0
  25. package/lib/draw-canvas/edit/components/render/types.d.ts.map +1 -0
  26. package/lib/draw-canvas/edit/components/render/types.js +66 -0
  27. package/lib/draw-canvas/edit/components/render/types.js.map +1 -0
  28. package/lib/draw-canvas/edit/components/setting-form/index.d.ts +19 -0
  29. package/lib/draw-canvas/edit/components/setting-form/index.d.ts.map +1 -0
  30. package/lib/draw-canvas/edit/components/setting-form/index.js +164 -0
  31. package/lib/draw-canvas/edit/components/setting-form/index.js.map +1 -0
  32. package/lib/draw-canvas/edit/index.d.ts +5 -0
  33. package/lib/draw-canvas/edit/index.d.ts.map +1 -0
  34. package/lib/draw-canvas/edit/index.js +112 -0
  35. package/lib/draw-canvas/edit/index.js.map +1 -0
  36. package/lib/draw-canvas/edit/index.less +34 -0
  37. package/lib/form/form-Item-group.d.ts.map +1 -1
  38. package/lib/form/form-Item-group.js +1 -1
  39. package/lib/form/form-Item-group.js.map +1 -1
  40. package/lib/icon/local-aliIcon/iconfont.js +5 -5
  41. package/lib/icon/local-aliIcon/iconfont.js.map +1 -1
  42. package/lib/table/relation-table.d.ts +4 -0
  43. package/lib/table/relation-table.d.ts.map +1 -1
  44. package/lib/tmpl/hcservice-v3.d.ts +1 -0
  45. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  46. package/lib/tmpl/hcservice-v3.js +27 -0
  47. package/lib/tmpl/hcservice-v3.js.map +1 -1
  48. package/lib/tmpl/interface.d.ts +4 -0
  49. package/lib/tmpl/interface.d.ts.map +1 -1
  50. package/lib/tmpl/interface.js.map +1 -1
  51. package/lib/units/index.d.ts +1 -0
  52. package/lib/units/index.d.ts.map +1 -1
  53. package/lib/units/index.js +16 -0
  54. package/lib/units/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/aldehyde/controls/entry-control.tsx +2 -2
  57. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
  58. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +1 -1
  59. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
  60. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
  61. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
  62. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
  63. package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.less +36 -0
  64. package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.tsx +93 -0
  65. package/src/aldehyde/draw-canvas/edit/components/main-header/index.less +21 -0
  66. package/src/aldehyde/draw-canvas/edit/components/main-header/index.tsx +187 -0
  67. package/src/aldehyde/draw-canvas/edit/components/render/draws/bg-draw.ts +98 -0
  68. package/src/aldehyde/draw-canvas/edit/components/render/draws/contextmenu-draw.ts +307 -0
  69. package/src/aldehyde/draw-canvas/edit/components/render/draws/graph-draw.ts +251 -0
  70. package/src/aldehyde/draw-canvas/edit/components/render/draws/index.ts +7 -0
  71. package/src/aldehyde/draw-canvas/edit/components/render/draws/link-draw.ts +1416 -0
  72. package/src/aldehyde/draw-canvas/edit/components/render/draws/preview-draw.ts +257 -0
  73. package/src/aldehyde/draw-canvas/edit/components/render/draws/ref-line-draw.ts +72 -0
  74. package/src/aldehyde/draw-canvas/edit/components/render/draws/ruler-draw.ts +167 -0
  75. package/src/aldehyde/draw-canvas/edit/components/render/graphs/base-graph.ts +241 -0
  76. package/src/aldehyde/draw-canvas/edit/components/render/graphs/bezier.ts +542 -0
  77. package/src/aldehyde/draw-canvas/edit/components/render/graphs/circle.ts +700 -0
  78. package/src/aldehyde/draw-canvas/edit/components/render/graphs/curve.ts +501 -0
  79. package/src/aldehyde/draw-canvas/edit/components/render/graphs/index.ts +6 -0
  80. package/src/aldehyde/draw-canvas/edit/components/render/graphs/line.ts +494 -0
  81. package/src/aldehyde/draw-canvas/edit/components/render/graphs/rect.ts +681 -0
  82. package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-handlers.ts +69 -0
  83. package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-outside-handlers.ts +162 -0
  84. package/src/aldehyde/draw-canvas/edit/components/render/handlers/graph-handlers.ts +108 -0
  85. package/src/aldehyde/draw-canvas/edit/components/render/handlers/index.ts +9 -0
  86. package/src/aldehyde/draw-canvas/edit/components/render/handlers/key-move-handlers.ts +50 -0
  87. package/src/aldehyde/draw-canvas/edit/components/render/handlers/link-handlers.ts +46 -0
  88. package/src/aldehyde/draw-canvas/edit/components/render/handlers/selection-handlers.ts +385 -0
  89. package/src/aldehyde/draw-canvas/edit/components/render/handlers/shutcut-handlers.ts +46 -0
  90. package/src/aldehyde/draw-canvas/edit/components/render/handlers/text-handlers.ts +82 -0
  91. package/src/aldehyde/draw-canvas/edit/components/render/handlers/zoom-handlers.ts +60 -0
  92. package/src/aldehyde/draw-canvas/edit/components/render/index.ts +768 -0
  93. package/src/aldehyde/draw-canvas/edit/components/render/tools/align-tool.ts +91 -0
  94. package/src/aldehyde/draw-canvas/edit/components/render/tools/asset-tool.ts +142 -0
  95. package/src/aldehyde/draw-canvas/edit/components/render/tools/attract-tool.ts +440 -0
  96. package/src/aldehyde/draw-canvas/edit/components/render/tools/copy-tool.ts +269 -0
  97. package/src/aldehyde/draw-canvas/edit/components/render/tools/import-export-tool.ts +603 -0
  98. package/src/aldehyde/draw-canvas/edit/components/render/tools/index.ts +9 -0
  99. package/src/aldehyde/draw-canvas/edit/components/render/tools/link-tool.ts +225 -0
  100. package/src/aldehyde/draw-canvas/edit/components/render/tools/position-tool.ts +212 -0
  101. package/src/aldehyde/draw-canvas/edit/components/render/tools/selection-tool.ts +132 -0
  102. package/src/aldehyde/draw-canvas/edit/components/render/tools/z-index-tool.ts +227 -0
  103. package/src/aldehyde/draw-canvas/edit/components/render/types.ts +287 -0
  104. package/src/aldehyde/draw-canvas/edit/components/render/utils/a-star.ts +116 -0
  105. package/src/aldehyde/draw-canvas/edit/components/render/utils/bezier-scene-func.ts +73 -0
  106. package/src/aldehyde/draw-canvas/edit/components/setting-form/index.tsx +200 -0
  107. package/src/aldehyde/draw-canvas/edit/index.less +34 -0
  108. package/src/aldehyde/draw-canvas/edit/index.tsx +138 -0
  109. package/src/aldehyde/form/form-Item-group.tsx +1 -0
  110. package/src/aldehyde/icon/local-aliIcon/iconfont.js +1 -1
  111. package/src/aldehyde/tmpl/hcservice-v3.tsx +14 -0
  112. package/src/aldehyde/tmpl/interface.tsx +2 -0
  113. package/src/aldehyde/units/index.tsx +15 -0
@@ -0,0 +1,269 @@
1
+ import * as _ from 'lodash';
2
+ import { nanoid } from 'nanoid';
3
+ import Konva from 'konva';
4
+ import { Render } from '../index';
5
+ import { ManualPointsMap } from '../types';
6
+ import { GraphDraw, LinkDraw, RulerDraw, PreviewDraw } from '../draws';
7
+
8
+ export class CopyTool {
9
+ // @ts-ignore
10
+ static readonly name = 'CopyTool';
11
+
12
+ private render: Render;
13
+ constructor(render: Render) {
14
+ this.render = render;
15
+ }
16
+
17
+ // 复制暂存
18
+ pasteCache: Konva.Node[] = [];
19
+ // 粘贴次数(用于定义新节点的偏移距离)
20
+ pasteCount = 1;
21
+
22
+ // 复制
23
+ pasteStart() {
24
+ this.pasteCache = this.render.selectionTool.selectingNodes.map((o) => {
25
+ const copy = o.clone();
26
+ // 恢复透明度、可交互
27
+ copy.setAttrs({
28
+ listening: true,
29
+ opacity: copy.attrs.lastOpacity ?? 1
30
+ });
31
+ // 清空状态
32
+ copy.setAttrs({
33
+ nodeMousedownPos: undefined,
34
+ lastOpacity: undefined,
35
+ lastZIndex: undefined,
36
+ selectingZIndex: undefined,
37
+ selected: false
38
+ });
39
+ return copy;
40
+ });
41
+ this.pasteCount = 1;
42
+ }
43
+
44
+ // 粘贴
45
+ pasteEnd() {
46
+ if (this.pasteCache.length > 0) {
47
+ this.render.selectionTool.selectingClear();
48
+ this.render.linkTool.selectingClear();
49
+ this.copy(this.pasteCache);
50
+ this.pasteCount++;
51
+ }
52
+ }
53
+
54
+ // 刷新 id、事件
55
+ nodesIdCover(nodes: Konva.Node[]) {
56
+ let deepAssets = [...nodes];
57
+ const idMap = new Map();
58
+
59
+ while (deepAssets.length > 0) {
60
+ const asset = deepAssets.shift();
61
+ if (asset) {
62
+ if (Array.isArray(asset.attrs.points)) {
63
+ for (const point of asset.attrs.points) {
64
+ if (Array.isArray(point.pairs)) {
65
+ for (const pair of point.pairs) {
66
+ if (!idMap.has(pair.id)) {
67
+ idMap.set(pair.id, 'pr:' + nanoid());
68
+ }
69
+
70
+ if (pair.from.groupId && !idMap.has(pair.from.groupId)) {
71
+ idMap.set(pair.from.groupId, 'g:' + nanoid());
72
+ }
73
+
74
+ if (pair.to.groupId && !idMap.has(pair.to.groupId)) {
75
+ idMap.set(pair.to.groupId, 'g:' + nanoid());
76
+ }
77
+
78
+ if (pair.from.pointId && !idMap.has(pair.from.pointId)) {
79
+ idMap.set(pair.from.pointId, 'p:' + nanoid());
80
+ }
81
+
82
+ if (pair.to.pointId && !idMap.has(pair.to.pointId)) {
83
+ idMap.set(pair.to.pointId, 'p:' + nanoid());
84
+ }
85
+ }
86
+ }
87
+
88
+ if (point.id) {
89
+ if (!idMap.has(point.id)) {
90
+ idMap.set(point.id, 'p:' + nanoid());
91
+ }
92
+ }
93
+
94
+ if (point.groupId) {
95
+ if (!idMap.has(point.groupId)) {
96
+ idMap.set(point.groupId, 'g:' + nanoid());
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ if (Array.isArray(asset.attrs.anchors)) {
103
+ for (const anchor of asset.attrs.anchors) {
104
+ if (anchor.groupId && !idMap.has(anchor.groupId)) {
105
+ idMap.set(anchor.groupId, 'g:' + nanoid());
106
+ }
107
+ }
108
+ }
109
+
110
+ if (asset.id()) {
111
+ if (!idMap.has(asset.id())) {
112
+ idMap.set(asset.id(), 'n:' + nanoid());
113
+ }
114
+ }
115
+
116
+ if (asset instanceof Konva.Group && Array.isArray(asset.children)) {
117
+ deepAssets.push(...asset.children);
118
+ }
119
+ }
120
+ }
121
+
122
+ deepAssets = [...nodes];
123
+
124
+ while (deepAssets.length > 0) {
125
+ const asset = deepAssets.shift();
126
+ if (asset) {
127
+ if (idMap.has(asset.id())) {
128
+ asset.id(idMap.get(asset.id()));
129
+ }
130
+
131
+ if (Array.isArray(asset.attrs.points)) {
132
+ asset.attrs.points = _.cloneDeep(asset.attrs.points ?? []);
133
+
134
+ for (const point of asset.attrs.points) {
135
+ if (Array.isArray(point.pairs)) {
136
+ for (const pair of point.pairs) {
137
+ pair.id = idMap.get(pair.id);
138
+
139
+ if (idMap.has(pair.from.groupId)) {
140
+ pair.from.groupId = idMap.get(pair.from.groupId);
141
+ }
142
+ if (idMap.has(pair.to.groupId)) {
143
+ pair.to.groupId = idMap.get(pair.to.groupId);
144
+ }
145
+ if (idMap.has(pair.from.pointId)) {
146
+ pair.from.pointId = idMap.get(pair.from.pointId);
147
+ }
148
+ if (idMap.has(pair.to.pointId)) {
149
+ pair.to.pointId = idMap.get(pair.to.pointId);
150
+ }
151
+ }
152
+ }
153
+
154
+ if (idMap.has(point.id)) {
155
+ if (asset instanceof Konva.Group) {
156
+ const anchor = asset.findOne(`#${point.id}`);
157
+ anchor?.id(idMap.get(point.id));
158
+ }
159
+
160
+ point.id = idMap.get(point.id);
161
+ point.visible = false;
162
+ }
163
+
164
+ if (idMap.has(point.groupId)) {
165
+ point.groupId = idMap.get(point.groupId);
166
+ }
167
+ }
168
+ }
169
+
170
+ if (Array.isArray(asset.attrs.anchors)) {
171
+ asset.attrs.anchors = _.cloneDeep(asset.attrs.anchors ?? []);
172
+
173
+ for (const anchor of asset.attrs.anchors) {
174
+ if (idMap.has(anchor.groupId)) {
175
+ anchor.groupId = idMap.get(anchor.groupId);
176
+ }
177
+ }
178
+ }
179
+
180
+ if (asset instanceof Konva.Group && Array.isArray(asset.children)) {
181
+ deepAssets.push(...asset.children);
182
+ }
183
+ }
184
+ }
185
+
186
+ for (const node of nodes) {
187
+ if (node instanceof Konva.Group) {
188
+ node.off('mouseenter');
189
+ node.on('mouseenter', () => {
190
+ // 显示 连接点
191
+ this.render.linkTool.pointsVisible(true, node);
192
+ });
193
+ node.off('mouseleave');
194
+ node.on('mouseleave', () => {
195
+ // 隐藏 连接点
196
+ this.render.linkTool.pointsVisible(false, node);
197
+ // 隐藏 hover 框
198
+ node.findOne('#hoverRect')?.visible(false);
199
+ });
200
+
201
+ // 使新节点产生偏移
202
+ node.setAttrs({
203
+ x: node.x() + this.render.toStageValue(this.render.bgSize) * this.pasteCount,
204
+ y: node.y() + this.render.toStageValue(this.render.bgSize) * this.pasteCount
205
+ });
206
+
207
+ // 拐点也需要偏移
208
+ if (node.attrs.manualPointsMap) {
209
+ const manualPointsMap = {} as ManualPointsMap;
210
+
211
+ // 替换 pairId
212
+ for (const pairId in node.attrs.manualPointsMap) {
213
+ manualPointsMap[idMap.get(pairId)] = node.attrs.manualPointsMap[pairId];
214
+ }
215
+
216
+ for (const pairId in manualPointsMap) {
217
+ const manualPoints = manualPointsMap[pairId];
218
+ if (Array.isArray(manualPoints)) {
219
+ manualPointsMap[pairId] = manualPoints.map((o) => ({
220
+ x: o.x + this.render.toStageValue(this.render.bgSize) * this.pasteCount,
221
+ y: o.y + this.render.toStageValue(this.render.bgSize) * this.pasteCount
222
+ }));
223
+ }
224
+ }
225
+
226
+ node.setAttr('manualPointsMap', manualPointsMap);
227
+ }
228
+ }
229
+ }
230
+ }
231
+
232
+ /**
233
+ * 复制粘贴
234
+ * @param nodes 节点数组
235
+ * @param skip 跳过检查
236
+ * @returns 复制的元素
237
+ */
238
+ copy(nodes: Konva.Node[]) {
239
+ const clones: Konva.Group[] = [];
240
+ for (const node of nodes) {
241
+ if (node instanceof Konva.Transformer) {
242
+ // 复制已选择
243
+ const backup = [...this.render.selectionTool.selectingNodes];
244
+ this.render.selectionTool.selectingClear();
245
+ this.render.linkTool.selectingClear();
246
+ this.copy(backup);
247
+ return;
248
+ } else {
249
+ // 复制未选择(先记录,后处理)
250
+ clones.push(node.clone());
251
+ }
252
+ }
253
+ // 刷新 id、事件
254
+ this.nodesIdCover(clones);
255
+ // 插入新节点
256
+ this.render.layer.add(...clones);
257
+ // 选中复制内容
258
+ this.render.selectionTool.select(clones);
259
+ // 更新历史
260
+ this.render.updateHistory();
261
+ // 重绘
262
+ this.render.redraw([
263
+ GraphDraw.name,
264
+ LinkDraw.name,
265
+ RulerDraw.name,
266
+ PreviewDraw.name
267
+ ]);
268
+ }
269
+ }