@logicflow/layout 2.1.0-alpha.2 → 2.1.0-alpha.4

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 (47) hide show
  1. package/.turbo/turbo-build.log +7 -6
  2. package/CHANGELOG.md +15 -0
  3. package/README.md +9 -2
  4. package/dist/index.min.js +1 -1
  5. package/dist/index.min.js.map +1 -1
  6. package/es/{dagre.d.ts → dagre/index.d.ts} +18 -20
  7. package/es/dagre/index.js +126 -0
  8. package/es/dagre/index.js.map +1 -0
  9. package/es/elkLayout/config.d.ts +26 -0
  10. package/es/elkLayout/config.js +27 -0
  11. package/es/elkLayout/config.js.map +1 -0
  12. package/es/elkLayout/index.d.ts +107 -0
  13. package/es/elkLayout/index.js +187 -0
  14. package/es/elkLayout/index.js.map +1 -0
  15. package/es/index.d.ts +1 -0
  16. package/es/index.js +1 -0
  17. package/es/index.js.map +1 -1
  18. package/es/utils/processEdge.d.ts +3 -0
  19. package/es/utils/processEdge.js +479 -0
  20. package/es/utils/processEdge.js.map +1 -0
  21. package/lib/{dagre.d.ts → dagre/index.d.ts} +18 -20
  22. package/lib/dagre/index.js +152 -0
  23. package/lib/dagre/index.js.map +1 -0
  24. package/lib/elkLayout/config.d.ts +26 -0
  25. package/lib/elkLayout/config.js +30 -0
  26. package/lib/elkLayout/config.js.map +1 -0
  27. package/lib/elkLayout/index.d.ts +107 -0
  28. package/lib/elkLayout/index.js +193 -0
  29. package/lib/elkLayout/index.js.map +1 -0
  30. package/lib/index.d.ts +1 -0
  31. package/lib/index.js +1 -0
  32. package/lib/index.js.map +1 -1
  33. package/lib/utils/processEdge.d.ts +3 -0
  34. package/lib/utils/processEdge.js +483 -0
  35. package/lib/utils/processEdge.js.map +1 -0
  36. package/package.json +3 -2
  37. package/src/dagre/index.ts +177 -0
  38. package/src/elkLayout/config.ts +26 -0
  39. package/src/elkLayout/index.ts +255 -0
  40. package/src/index.ts +2 -0
  41. package/src/utils/processEdge.ts +585 -0
  42. package/stats.html +1 -1
  43. package/es/dagre.js +0 -376
  44. package/es/dagre.js.map +0 -1
  45. package/lib/dagre.js +0 -402
  46. package/lib/dagre.js.map +0 -1
  47. package/src/dagre.ts +0 -438
@@ -0,0 +1,483 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.processEdges = void 0;
13
+ var SegmentDirection;
14
+ (function (SegmentDirection) {
15
+ SegmentDirection["HORIZONTAL"] = "horizontal";
16
+ SegmentDirection["VERTICAL"] = "vertical";
17
+ })(SegmentDirection || (SegmentDirection = {}));
18
+ function processEdges(lf, rankdir, isDefaultAnchor, edges, newNodes) {
19
+ var newEdges = [];
20
+ // 处理边的路径和锚点
21
+ edges.forEach(function (edgeModel) {
22
+ var lfEdge = edgeModel.getData();
23
+ if (!lfEdge) {
24
+ throw new Error("\u5E03\u5C40\u9519\u8BEF\uFF1A\u627E\u4E0D\u5230ID\u4E3A ".concat(edgeModel.id, " \u7684\u8FB9"));
25
+ }
26
+ if (!isDefaultAnchor) {
27
+ // 自定义锚点,不调整边的关联锚点,只清除路径相关数据,让LogicFlow自动计算
28
+ delete lfEdge.pointsList;
29
+ delete lfEdge.startPoint;
30
+ delete lfEdge.endPoint;
31
+ if (typeof lfEdge.text === 'object' && lfEdge.text && lfEdge.text.value) {
32
+ lfEdge.text = lfEdge.text.value;
33
+ }
34
+ }
35
+ else {
36
+ // 默认锚点,重新计算路径以及边的起点和终点(节点默认锚点为上下左右)
37
+ delete lfEdge.pointsList;
38
+ delete lfEdge.startPoint;
39
+ delete lfEdge.endPoint;
40
+ delete lfEdge.sourceAnchorId;
41
+ delete lfEdge.targetAnchorId;
42
+ lfEdge.pointsList = calcPointsList(lf, rankdir, edgeModel, newNodes);
43
+ if (lfEdge.pointsList) {
44
+ // 设置边的起点和终点
45
+ var first = lfEdge.pointsList[0];
46
+ var last = lfEdge.pointsList[lfEdge.pointsList.length - 1];
47
+ lfEdge.startPoint = { x: first.x, y: first.y };
48
+ lfEdge.endPoint = { x: last.x, y: last.y };
49
+ }
50
+ if (typeof lfEdge.text === 'object' && lfEdge.text && lfEdge.text.value) {
51
+ // 保留文本内容
52
+ lfEdge.text = lfEdge.text.value;
53
+ }
54
+ }
55
+ newEdges.push(lfEdge);
56
+ });
57
+ return newEdges;
58
+ }
59
+ exports.processEdges = processEdges;
60
+ /**
61
+ * 优化折线路径点,移除冗余点
62
+ * @param points - 原始路径点数组
63
+ * @returns 优化后的路径点数组
64
+ */
65
+ function pointFilter(points) {
66
+ var allPoints = __spreadArray([], points, true); // 创建副本避免修改原始数据
67
+ var i = 1;
68
+ // 删除直线上的中间点(保持路径简洁)
69
+ while (i < allPoints.length - 1) {
70
+ var pre = allPoints[i - 1];
71
+ var current = allPoints[i];
72
+ var next = allPoints[i + 1];
73
+ // 如果三点共线,移除中间点
74
+ if ((pre.x === current.x && current.x === next.x) || // 垂直线上的点
75
+ (pre.y === current.y && current.y === next.y)) {
76
+ // 水平线上的点
77
+ allPoints.splice(i, 1);
78
+ }
79
+ else {
80
+ i++;
81
+ }
82
+ }
83
+ return allPoints;
84
+ }
85
+ /**
86
+ * 计算边的折线路径点
87
+ * @param model - 边模型
88
+ * @param nodes - 节点数据数组
89
+ * @returns 计算后的路径点数组,如果无法计算则返回undefined
90
+ */
91
+ function calcPointsList(lf, rankdir, model, nodes) {
92
+ var pointsList = [];
93
+ // 获取源节点和目标节点的模型与布局数据
94
+ var sourceNodeModel = lf.getNodeModelById(model.sourceNodeId);
95
+ var targetNodeModel = lf.getNodeModelById(model.targetNodeId);
96
+ var newSourceNodeData = nodes.find(function (node) { return node.id === model.sourceNodeId; });
97
+ var newTargetNodeData = nodes.find(function (node) { return node.id === model.targetNodeId; });
98
+ // 数据验证
99
+ if (!sourceNodeModel ||
100
+ !targetNodeModel ||
101
+ !newSourceNodeData ||
102
+ !newTargetNodeData) {
103
+ return undefined;
104
+ }
105
+ // 折线偏移量(用于创建合适的转折点)
106
+ var offset = Number(model.offset) || 50;
107
+ // 处理从左到右(LR)布局的边路径,折线
108
+ if (rankdir === 'LR' && model.modelType === 'polyline-edge') {
109
+ // 正向连线:源节点在目标节点左侧
110
+ if (newSourceNodeData.x <= newTargetNodeData.x) {
111
+ // 从源节点右侧中心出发
112
+ pointsList.push({
113
+ x: newSourceNodeData.x + sourceNodeModel.width / 2,
114
+ y: newSourceNodeData.y,
115
+ });
116
+ // 向右延伸一段距离
117
+ pointsList.push({
118
+ x: newSourceNodeData.x + sourceNodeModel.width / 2 + offset,
119
+ y: newSourceNodeData.y,
120
+ });
121
+ // 垂直移动到目标节点的高度
122
+ pointsList.push({
123
+ x: newSourceNodeData.x + sourceNodeModel.width / 2 + offset,
124
+ y: newTargetNodeData.y,
125
+ });
126
+ // 连接到目标节点左侧中心
127
+ pointsList.push({
128
+ x: newTargetNodeData.x - targetNodeModel.width / 2,
129
+ y: newTargetNodeData.y,
130
+ });
131
+ return pointFilter(pointsList);
132
+ }
133
+ // 反向连线:源节点在目标节点右侧
134
+ if (newSourceNodeData.x > newTargetNodeData.x) {
135
+ // 根据节点相对Y轴位置选择不同路径
136
+ if (newSourceNodeData.y >= newTargetNodeData.y) {
137
+ // 源节点在目标节点的右下方,从源节点上方出发
138
+ pointsList.push({
139
+ x: newSourceNodeData.x,
140
+ y: newSourceNodeData.y + sourceNodeModel.height / 2,
141
+ });
142
+ pointsList.push({
143
+ x: newSourceNodeData.x,
144
+ y: newSourceNodeData.y + sourceNodeModel.height / 2 + offset,
145
+ });
146
+ pointsList.push({
147
+ x: newTargetNodeData.x,
148
+ y: newSourceNodeData.y + sourceNodeModel.height / 2 + offset,
149
+ });
150
+ pointsList.push({
151
+ x: newTargetNodeData.x,
152
+ y: newTargetNodeData.y + targetNodeModel.height / 2,
153
+ });
154
+ }
155
+ else {
156
+ // 源节点在目标节点的右上方,从源节点下方出发
157
+ pointsList.push({
158
+ x: newSourceNodeData.x,
159
+ y: newSourceNodeData.y - sourceNodeModel.height / 2,
160
+ });
161
+ pointsList.push({
162
+ x: newSourceNodeData.x,
163
+ y: newSourceNodeData.y - sourceNodeModel.height / 2 - offset,
164
+ });
165
+ pointsList.push({
166
+ x: newTargetNodeData.x,
167
+ y: newSourceNodeData.y - sourceNodeModel.height / 2 - offset,
168
+ });
169
+ pointsList.push({
170
+ x: newTargetNodeData.x,
171
+ y: newTargetNodeData.y - targetNodeModel.height / 2,
172
+ });
173
+ }
174
+ return pointFilter(pointsList);
175
+ }
176
+ }
177
+ // 处理从上到下(TB)布局的边路径, 折线
178
+ if (rankdir === 'TB' && model.modelType === 'polyline-edge') {
179
+ // 正向连线:源节点在目标节点上方
180
+ if (newSourceNodeData.y <= newTargetNodeData.y) {
181
+ // 从源节点底部中心出发
182
+ pointsList.push({
183
+ x: newSourceNodeData.x,
184
+ y: newSourceNodeData.y + sourceNodeModel.height / 2,
185
+ });
186
+ // 向下延伸一段距离
187
+ pointsList.push({
188
+ x: newSourceNodeData.x,
189
+ y: newSourceNodeData.y + sourceNodeModel.height / 2 + offset,
190
+ });
191
+ // 水平移动到目标节点的位置
192
+ pointsList.push({
193
+ x: newTargetNodeData.x,
194
+ y: newSourceNodeData.y + sourceNodeModel.height / 2 + offset,
195
+ });
196
+ // 连接到目标节点顶部中心
197
+ pointsList.push({
198
+ x: newTargetNodeData.x,
199
+ y: newTargetNodeData.y - targetNodeModel.height / 2,
200
+ });
201
+ return pointFilter(pointsList);
202
+ }
203
+ // 反向连线:源节点在目标节点下方
204
+ if (newSourceNodeData.y > newTargetNodeData.y) {
205
+ if (newSourceNodeData.x >= newTargetNodeData.x) {
206
+ // 源节点在目标节点右下方,从源节点右侧出发
207
+ pointsList.push({
208
+ x: newSourceNodeData.x + sourceNodeModel.width / 2,
209
+ y: newSourceNodeData.y,
210
+ });
211
+ pointsList.push({
212
+ x: newSourceNodeData.x + sourceNodeModel.width / 2 + offset,
213
+ y: newSourceNodeData.y,
214
+ });
215
+ pointsList.push({
216
+ x: newSourceNodeData.x + sourceNodeModel.width / 2 + offset,
217
+ y: newTargetNodeData.y,
218
+ });
219
+ pointsList.push({
220
+ x: newTargetNodeData.x + targetNodeModel.width / 2,
221
+ y: newTargetNodeData.y,
222
+ });
223
+ }
224
+ else {
225
+ // 源节点在目标节点左下方,从源节点左侧出发
226
+ pointsList.push({
227
+ x: newSourceNodeData.x - sourceNodeModel.width / 2,
228
+ y: newSourceNodeData.y,
229
+ });
230
+ pointsList.push({
231
+ x: newSourceNodeData.x - sourceNodeModel.width / 2 - offset,
232
+ y: newSourceNodeData.y,
233
+ });
234
+ pointsList.push({
235
+ x: newSourceNodeData.x - sourceNodeModel.width / 2 - offset,
236
+ y: newTargetNodeData.y,
237
+ });
238
+ pointsList.push({
239
+ x: newTargetNodeData.x - targetNodeModel.width / 2,
240
+ y: newTargetNodeData.y,
241
+ });
242
+ }
243
+ return pointFilter(pointsList);
244
+ }
245
+ }
246
+ // 处理从左到右(LR)布局的边路径, 贝塞尔曲线
247
+ if (rankdir === 'LR' && model.modelType === 'bezier-edge') {
248
+ var startPoint = {
249
+ x: newSourceNodeData.x + sourceNodeModel.width / 2,
250
+ y: newSourceNodeData.y,
251
+ };
252
+ var endPoint = {
253
+ x: newTargetNodeData.x - targetNodeModel.width / 2,
254
+ y: newTargetNodeData.y,
255
+ };
256
+ var sNext = { x: 0, y: 0 };
257
+ var ePre = { x: 0, y: 0 };
258
+ // 正向连线:源节点在目标节点左侧
259
+ if (newSourceNodeData.x < newTargetNodeData.x) {
260
+ var result = getBezierControlPoints({
261
+ start: startPoint,
262
+ end: endPoint,
263
+ sourceNode: {
264
+ x: newSourceNodeData.x,
265
+ y: newSourceNodeData.y,
266
+ width: sourceNodeModel.width,
267
+ height: sourceNodeModel.height,
268
+ },
269
+ targetNode: {
270
+ x: newTargetNodeData.x,
271
+ y: newTargetNodeData.y,
272
+ width: targetNodeModel.width,
273
+ height: targetNodeModel.height,
274
+ },
275
+ offset: offset,
276
+ });
277
+ sNext = result.sNext;
278
+ ePre = result.ePre;
279
+ }
280
+ // 反向连线:源节点在目标节点右侧
281
+ if (newSourceNodeData.x > newTargetNodeData.x) {
282
+ if (newSourceNodeData.y >= newTargetNodeData.y) {
283
+ // 源节点在目标节点的右下方
284
+ sNext = {
285
+ x: newSourceNodeData.x +
286
+ sourceNodeModel.width / 2 +
287
+ offset +
288
+ targetNodeModel.width / 2,
289
+ y: newSourceNodeData.y +
290
+ sourceNodeModel.height +
291
+ targetNodeModel.height,
292
+ };
293
+ ePre = {
294
+ x: newTargetNodeData.x -
295
+ targetNodeModel.width / 2 -
296
+ offset -
297
+ sourceNodeModel.width / 2,
298
+ y: newTargetNodeData.y +
299
+ sourceNodeModel.height +
300
+ targetNodeModel.height,
301
+ };
302
+ }
303
+ else {
304
+ // 源节点在目标节点的右上方
305
+ sNext = {
306
+ x: newSourceNodeData.x +
307
+ sourceNodeModel.width / 2 +
308
+ offset +
309
+ targetNodeModel.width / 2,
310
+ y: newSourceNodeData.y -
311
+ sourceNodeModel.height -
312
+ targetNodeModel.height,
313
+ };
314
+ ePre = {
315
+ x: newTargetNodeData.x -
316
+ targetNodeModel.width / 2 -
317
+ offset -
318
+ sourceNodeModel.width / 2,
319
+ y: newTargetNodeData.y -
320
+ sourceNodeModel.height -
321
+ targetNodeModel.height,
322
+ };
323
+ }
324
+ }
325
+ pointsList.push(startPoint, sNext, ePre, endPoint);
326
+ return pointsList;
327
+ }
328
+ // 处理从上到下(TB)布局的边路径, 贝塞尔曲线
329
+ if (rankdir === 'TB' && model.modelType === 'bezier-edge') {
330
+ var startPoint = {
331
+ x: newSourceNodeData.x,
332
+ y: newSourceNodeData.y + sourceNodeModel.height / 2,
333
+ };
334
+ var endPoint = {
335
+ x: newTargetNodeData.x,
336
+ y: newTargetNodeData.y - targetNodeModel.height / 2,
337
+ };
338
+ var sNext = { x: 0, y: 0 };
339
+ var ePre = { x: 0, y: 0 };
340
+ if (newSourceNodeData.y <= newTargetNodeData.y) {
341
+ // 正向连线:源节点在目标节点上方
342
+ var result = getBezierControlPoints({
343
+ start: startPoint,
344
+ end: endPoint,
345
+ sourceNode: {
346
+ x: newSourceNodeData.x,
347
+ y: newSourceNodeData.y,
348
+ width: sourceNodeModel.width,
349
+ height: sourceNodeModel.height,
350
+ },
351
+ targetNode: {
352
+ x: newTargetNodeData.x,
353
+ y: newTargetNodeData.y,
354
+ width: targetNodeModel.width,
355
+ height: targetNodeModel.height,
356
+ },
357
+ offset: offset,
358
+ });
359
+ sNext = result.sNext;
360
+ ePre = result.ePre;
361
+ }
362
+ if (newSourceNodeData.y > newTargetNodeData.y) {
363
+ // 反向连线:源节点在目标节点下方
364
+ if (newSourceNodeData.x >= newTargetNodeData.x) {
365
+ // 源节点在目标节点右下方
366
+ sNext = {
367
+ x: newSourceNodeData.x +
368
+ sourceNodeModel.width / 2 +
369
+ offset +
370
+ targetNodeModel.width / 2,
371
+ y: newSourceNodeData.y +
372
+ sourceNodeModel.height +
373
+ targetNodeModel.height,
374
+ };
375
+ ePre = {
376
+ x: newTargetNodeData.x +
377
+ targetNodeModel.width / 2 +
378
+ offset +
379
+ sourceNodeModel.width / 2,
380
+ y: newTargetNodeData.y -
381
+ sourceNodeModel.height -
382
+ targetNodeModel.height,
383
+ };
384
+ }
385
+ else {
386
+ // 源节点在目标节点左下方
387
+ sNext = {
388
+ x: newSourceNodeData.x -
389
+ sourceNodeModel.width / 2 -
390
+ offset -
391
+ targetNodeModel.width / 2,
392
+ y: newSourceNodeData.y +
393
+ sourceNodeModel.height +
394
+ targetNodeModel.height,
395
+ };
396
+ ePre = {
397
+ x: newTargetNodeData.x -
398
+ targetNodeModel.width / 2 -
399
+ offset -
400
+ sourceNodeModel.width / 2,
401
+ y: newTargetNodeData.y -
402
+ sourceNodeModel.height -
403
+ targetNodeModel.height,
404
+ };
405
+ }
406
+ }
407
+ pointsList.push(startPoint, sNext, ePre, endPoint);
408
+ return pointsList;
409
+ }
410
+ // 无法确定路径时返回undefined,让LogicFlow自行处理
411
+ return undefined;
412
+ }
413
+ // bezier曲线
414
+ var getBezierControlPoints = function (_a) {
415
+ var start = _a.start, end = _a.end, sourceNode = _a.sourceNode, targetNode = _a.targetNode, offset = _a.offset;
416
+ var sBBox = getNodeBBox(sourceNode);
417
+ var tBBox = getNodeBBox(targetNode);
418
+ var sExpendBBox = getExpandedBBox(sBBox, offset);
419
+ var tExpendBBox = getExpandedBBox(tBBox, offset);
420
+ var sNext = getExpandedBBoxPoint(sExpendBBox, sBBox, start);
421
+ var ePre = getExpandedBBoxPoint(tExpendBBox, tBBox, end);
422
+ return {
423
+ sNext: sNext,
424
+ ePre: ePre,
425
+ };
426
+ };
427
+ /* 获取节点bbox */
428
+ var getNodeBBox = function (node) {
429
+ var x = node.x, y = node.y, width = node.width, height = node.height;
430
+ return {
431
+ minX: x - width / 2,
432
+ minY: y - height / 2,
433
+ maxX: x + width / 2,
434
+ maxY: y + height / 2,
435
+ x: x,
436
+ y: y,
437
+ width: width,
438
+ height: height,
439
+ centerX: x,
440
+ centerY: y,
441
+ };
442
+ };
443
+ /* 扩展的bbox,保证起始点的下一个点一定在node的垂直方向,不会与线重合, offset是点与线的垂直距离 */
444
+ var getExpandedBBox = function (bbox, offset) {
445
+ if (bbox.width === 0 && bbox.height === 0) {
446
+ return bbox;
447
+ }
448
+ return {
449
+ x: bbox.x,
450
+ y: bbox.y,
451
+ centerX: bbox.centerX,
452
+ centerY: bbox.centerY,
453
+ minX: bbox.minX - offset,
454
+ minY: bbox.minY - offset,
455
+ maxX: bbox.maxX + offset,
456
+ maxY: bbox.maxY + offset,
457
+ height: bbox.height + 2 * offset,
458
+ width: bbox.width + 2 * offset,
459
+ };
460
+ };
461
+ /* 判断点与中心点边的方向:是否水平,true水平,false垂直 */
462
+ var pointDirection = function (point, bbox) {
463
+ var dx = Math.abs(point.x - bbox.centerX);
464
+ var dy = Math.abs(point.y - bbox.centerY);
465
+ return dx / bbox.width > dy / bbox.height
466
+ ? SegmentDirection.HORIZONTAL
467
+ : SegmentDirection.VERTICAL;
468
+ };
469
+ /* 获取扩展图形上的点,即起始终点相邻的点,上一个或者下一个节点 */
470
+ var getExpandedBBoxPoint = function (expendBBox, bbox, point) {
471
+ var direction = pointDirection(point, bbox);
472
+ if (direction === SegmentDirection.HORIZONTAL) {
473
+ return {
474
+ x: point.x > expendBBox.centerX ? expendBBox.maxX : expendBBox.minX,
475
+ y: point.y,
476
+ };
477
+ }
478
+ return {
479
+ x: point.x,
480
+ y: point.y > expendBBox.centerY ? expendBBox.maxY : expendBBox.minY,
481
+ };
482
+ };
483
+ //# sourceMappingURL=processEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processEdge.js","sourceRoot":"","sources":["../../src/utils/processEdge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logicflow/layout",
3
- "version": "2.1.0-alpha.2",
3
+ "version": "2.1.0-alpha.4",
4
4
  "description": "LogicFlow layout",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -24,7 +24,8 @@
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
26
  "dagre": "^0.8.5",
27
- "@logicflow/core": "2.2.0-alpha.2"
27
+ "elkjs": "^0.11.0",
28
+ "@logicflow/core": "2.2.0-alpha.4"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@types/dagre": "^0.7.53"