@mx-sose-front/mx-sose-graph 1.2.7 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/index.d.ts +3 -5259
  2. package/dist/index.esm.js +88 -61
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.umd.js +1 -1
  5. package/dist/index.umd.js.map +1 -1
  6. package/dist/src/components/Common/index.d.ts +3 -0
  7. package/dist/src/components/Common/index.d.ts.map +1 -0
  8. package/dist/src/components/ContextMenu/ContextMenu.vue.d.ts +55 -0
  9. package/dist/src/components/ContextMenu/ContextMenu.vue.d.ts.map +1 -0
  10. package/dist/src/components/Diagram/StrategicTaxonomyDiagram.vue.d.ts +21 -0
  11. package/dist/src/components/Diagram/StrategicTaxonomyDiagram.vue.d.ts.map +1 -0
  12. package/dist/src/components/DiagramListTooltip/DiagramListTooltip.vue.d.ts +32 -0
  13. package/dist/src/components/DiagramListTooltip/DiagramListTooltip.vue.d.ts.map +1 -0
  14. package/dist/src/components/Edge/Edge.vue.d.ts +36 -0
  15. package/dist/src/components/Edge/Edge.vue.d.ts.map +1 -0
  16. package/dist/src/components/Gantt/Gantt.vue.d.ts +17 -0
  17. package/dist/src/components/Gantt/Gantt.vue.d.ts.map +1 -0
  18. package/dist/src/components/GanttContextMenu/GanttContextMenu.vue.d.ts +37 -0
  19. package/dist/src/components/GanttContextMenu/GanttContextMenu.vue.d.ts.map +1 -0
  20. package/dist/src/components/InteractionLayer.vue.d.ts +28 -0
  21. package/dist/src/components/InteractionLayer.vue.d.ts.map +1 -0
  22. package/dist/src/components/LineStyle/ConnectionLine.vue.d.ts +30 -0
  23. package/dist/src/components/LineStyle/ConnectionLine.vue.d.ts.map +1 -0
  24. package/dist/src/components/LineStyle/LineStyleMarker.vue.d.ts +15 -0
  25. package/dist/src/components/LineStyle/LineStyleMarker.vue.d.ts.map +1 -0
  26. package/dist/src/components/Matrix/Matrix.vue.d.ts +9 -0
  27. package/dist/src/components/Matrix/Matrix.vue.d.ts.map +1 -0
  28. package/dist/src/components/Matrix/index.d.ts +34 -0
  29. package/dist/src/components/Matrix/index.d.ts.map +1 -0
  30. package/dist/src/components/MatrixContextMenu/MatrixContextMenu.vue.d.ts +31 -0
  31. package/dist/src/components/MatrixContextMenu/MatrixContextMenu.vue.d.ts.map +1 -0
  32. package/dist/src/components/NameEditor/NameEditor.vue.d.ts +30 -0
  33. package/dist/src/components/NameEditor/NameEditor.vue.d.ts.map +1 -0
  34. package/dist/src/components/Pin/Pin.vue.d.ts +25 -0
  35. package/dist/src/components/Pin/Pin.vue.d.ts.map +1 -0
  36. package/dist/src/components/Pin/Port.vue.d.ts +23 -0
  37. package/dist/src/components/Pin/Port.vue.d.ts.map +1 -0
  38. package/dist/src/components/SelectionBox/SelectionBox.vue.d.ts +30 -0
  39. package/dist/src/components/SelectionBox/SelectionBox.vue.d.ts.map +1 -0
  40. package/dist/src/components/Shape/Action.vue.d.ts +25 -0
  41. package/dist/src/components/Shape/Action.vue.d.ts.map +1 -0
  42. package/dist/src/components/Shape/ActivityAction.vue.d.ts +25 -0
  43. package/dist/src/components/Shape/ActivityAction.vue.d.ts.map +1 -0
  44. package/dist/src/components/Shape/Block.vue.d.ts +25 -0
  45. package/dist/src/components/Shape/Block.vue.d.ts.map +1 -0
  46. package/dist/src/components/Shape/ConceptualRole.vue.d.ts +25 -0
  47. package/dist/src/components/Shape/ConceptualRole.vue.d.ts.map +1 -0
  48. package/dist/src/components/Shape/Diagram.vue.d.ts +25 -0
  49. package/dist/src/components/Shape/Diagram.vue.d.ts.map +1 -0
  50. package/dist/src/components/Shape/DividingLine.vue.d.ts +36 -0
  51. package/dist/src/components/Shape/DividingLine.vue.d.ts.map +1 -0
  52. package/dist/src/components/Shape/DogEar.vue.d.ts +25 -0
  53. package/dist/src/components/Shape/DogEar.vue.d.ts.map +1 -0
  54. package/dist/src/components/Shape/Package.vue.d.ts +25 -0
  55. package/dist/src/components/Shape/Package.vue.d.ts.map +1 -0
  56. package/dist/src/components/Table/Table.vue.d.ts +20 -0
  57. package/dist/src/components/Table/Table.vue.d.ts.map +1 -0
  58. package/dist/src/constants/edgeShapeKeys.d.ts +46 -0
  59. package/dist/src/constants/edgeShapeKeys.d.ts.map +1 -0
  60. package/dist/src/constants/index.d.ts +668 -0
  61. package/dist/src/constants/index.d.ts.map +1 -0
  62. package/dist/src/hooks/index.d.ts +6 -0
  63. package/dist/src/hooks/index.d.ts.map +1 -0
  64. package/dist/src/hooks/useChartRowSelection.d.ts +89 -0
  65. package/dist/src/hooks/useChartRowSelection.d.ts.map +1 -0
  66. package/dist/src/hooks/useHighlight.d.ts +82 -0
  67. package/dist/src/hooks/useHighlight.d.ts.map +1 -0
  68. package/dist/src/hooks/useNameEdit.d.ts +76 -0
  69. package/dist/src/hooks/useNameEdit.d.ts.map +1 -0
  70. package/dist/src/hooks/useResize.d.ts +65 -0
  71. package/dist/src/hooks/useResize.d.ts.map +1 -0
  72. package/dist/src/hooks/useVirtualScroll.d.ts +110 -0
  73. package/dist/src/hooks/useVirtualScroll.d.ts.map +1 -0
  74. package/dist/src/index.d.ts +18 -0
  75. package/dist/src/index.d.ts.map +1 -0
  76. package/dist/src/render/shape-registry.d.ts +9 -0
  77. package/dist/src/render/shape-registry.d.ts.map +1 -0
  78. package/dist/src/render/shape-renderer.d.ts +12 -0
  79. package/dist/src/render/shape-renderer.d.ts.map +1 -0
  80. package/dist/src/store/eventBus.d.ts +10 -0
  81. package/dist/src/store/eventBus.d.ts.map +1 -0
  82. package/dist/src/store/graphStore.d.ts +4644 -0
  83. package/dist/src/store/graphStore.d.ts.map +1 -0
  84. package/dist/src/store/index.d.ts +3 -0
  85. package/dist/src/store/index.d.ts.map +1 -0
  86. package/dist/src/types/index.d.ts +279 -0
  87. package/dist/src/types/index.d.ts.map +1 -0
  88. package/dist/src/types/interactionLayer.d.ts +23 -0
  89. package/dist/src/types/interactionLayer.d.ts.map +1 -0
  90. package/dist/src/utils/autoExpandParent.d.ts +38 -0
  91. package/dist/src/utils/autoExpandParent.d.ts.map +1 -0
  92. package/dist/src/utils/batchAutoExpand.d.ts +12 -0
  93. package/dist/src/utils/batchAutoExpand.d.ts.map +1 -0
  94. package/dist/src/utils/colorUtils.d.ts +38 -0
  95. package/dist/src/utils/colorUtils.d.ts.map +1 -0
  96. package/dist/src/utils/compartment.d.ts +92 -0
  97. package/dist/src/utils/compartment.d.ts.map +1 -0
  98. package/dist/src/utils/containers.d.ts +119 -0
  99. package/dist/src/utils/containers.d.ts.map +1 -0
  100. package/dist/src/utils/contextMenuUtils.d.ts +108 -0
  101. package/dist/src/utils/contextMenuUtils.d.ts.map +1 -0
  102. package/dist/src/utils/dateUtils.d.ts +77 -0
  103. package/dist/src/utils/dateUtils.d.ts.map +1 -0
  104. package/dist/src/utils/diagram.d.ts +289 -0
  105. package/dist/src/utils/diagram.d.ts.map +1 -0
  106. package/dist/src/utils/dom.d.ts +2 -0
  107. package/dist/src/utils/dom.d.ts.map +1 -0
  108. package/dist/src/utils/drag.d.ts +65 -0
  109. package/dist/src/utils/drag.d.ts.map +1 -0
  110. package/dist/src/utils/edgeUtils.d.ts +326 -0
  111. package/dist/src/utils/edgeUtils.d.ts.map +1 -0
  112. package/dist/src/utils/edgeWorker.d.ts +182 -0
  113. package/dist/src/utils/edgeWorker.d.ts.map +1 -0
  114. package/dist/src/utils/geom.d.ts +103 -0
  115. package/dist/src/utils/geom.d.ts.map +1 -0
  116. package/dist/src/utils/graphDragService.d.ts +62 -0
  117. package/dist/src/utils/graphDragService.d.ts.map +1 -0
  118. package/dist/src/utils/hittest.d.ts +27 -0
  119. package/dist/src/utils/hittest.d.ts.map +1 -0
  120. package/dist/src/utils/iconLoader.d.ts +16 -0
  121. package/dist/src/utils/iconLoader.d.ts.map +1 -0
  122. package/dist/src/utils/index.d.ts +8 -0
  123. package/dist/src/utils/index.d.ts.map +1 -0
  124. package/dist/src/utils/keyboardUtils.d.ts +25 -0
  125. package/dist/src/utils/keyboardUtils.d.ts.map +1 -0
  126. package/dist/src/utils/license-guard.d.ts +10 -0
  127. package/dist/src/utils/license-guard.d.ts.map +1 -0
  128. package/dist/src/utils/packageOutline.d.ts +32 -0
  129. package/dist/src/utils/packageOutline.d.ts.map +1 -0
  130. package/dist/src/utils/pinUtils.d.ts +79 -0
  131. package/dist/src/utils/pinUtils.d.ts.map +1 -0
  132. package/dist/src/utils/policy.d.ts +44 -0
  133. package/dist/src/utils/policy.d.ts.map +1 -0
  134. package/dist/src/utils/rafThrottle.d.ts +63 -0
  135. package/dist/src/utils/rafThrottle.d.ts.map +1 -0
  136. package/dist/src/utils/shapeOps/shapeOps.d.ts +21 -0
  137. package/dist/src/utils/shapeOps/shapeOps.d.ts.map +1 -0
  138. package/dist/src/utils/viewportCulling.d.ts +73 -0
  139. package/dist/src/utils/viewportCulling.d.ts.map +1 -0
  140. package/dist/src/utils/workerManager.d.ts +86 -0
  141. package/dist/src/utils/workerManager.d.ts.map +1 -0
  142. package/dist/src/utils/zorder.d.ts +4 -0
  143. package/dist/src/utils/zorder.d.ts.map +1 -0
  144. package/dist/src/view/graph.vue.d.ts +180 -0
  145. package/dist/src/view/graph.vue.d.ts.map +1 -0
  146. package/dist/style.css +1 -1
  147. package/package.json +1 -1
  148. package/src/components/ContextMenu/ContextMenu.vue +2 -2
  149. package/src/store/graphStore.ts +0 -4
  150. package/src/utils/edgeUtils.ts +77 -63
  151. package/src/utils/workerManager.ts +4 -1
  152. package/src/view/graph.vue +2 -2
  153. package/src/vite-env.d.ts +2 -2
  154. package/dist/assets/edgeWorker-b57ca007.js +0 -2
@@ -0,0 +1,65 @@
1
+ import { Shape } from '../types';
2
+
3
+ type Rect = {
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ };
9
+ export type DragState = {
10
+ draggingIds: string[];
11
+ dragBase: Record<string, Rect>;
12
+ dragGhost: Record<string, Rect>;
13
+ groupBaseBox: Rect | null;
14
+ dragAnchor: {
15
+ x: number;
16
+ y: number;
17
+ } | null;
18
+ dragOffset: {
19
+ x: number;
20
+ y: number;
21
+ } | null;
22
+ primaryDragId: string | null;
23
+ hoverContainerId: string | null;
24
+ };
25
+ export declare const EPS = 0.0001;
26
+ export declare const rectEqual: (a?: Rect, b?: Rect) => boolean;
27
+ export declare const buildDragSnapshot: (shapes: Shape[], ids: string[]) => {
28
+ dragBase: Record<string, Rect>;
29
+ groupBaseBox: Rect | null;
30
+ };
31
+ export declare const stepSingleDrag: (shapes: Shape[], id: string, pointer: {
32
+ x: number;
33
+ y: number;
34
+ }, dragOffset: {
35
+ x: number;
36
+ y: number;
37
+ } | null, dragBase: Record<string, Rect>, diagramId: string, constrainEdges: {
38
+ left?: boolean;
39
+ top?: boolean;
40
+ right?: boolean;
41
+ bottom?: boolean;
42
+ }, hitPointer?: {
43
+ x: number;
44
+ y: number;
45
+ }) => {
46
+ ghost: Record<string, Rect>;
47
+ hover: string | null;
48
+ };
49
+ export declare const stepGroupDrag: (shapes: Shape[], draggingIds: string[], primaryId: string, pointer: {
50
+ x: number;
51
+ y: number;
52
+ }, dragAnchor: {
53
+ x: number;
54
+ y: number;
55
+ }, groupBaseBox: Rect) => {
56
+ ghost: Record<string, Rect>;
57
+ hover: string | null;
58
+ };
59
+ export declare const buildVirtualShapes: (shapes: Shape[], ghost: Record<string, Rect>) => Shape[];
60
+ export declare const commitDrag: (shapes: Shape[], draggingIds: string[], ghost: Record<string, Rect>, _currentDiagramId: string | null, updateShape: (id: string, updates: Partial<Shape>) => void, baseMap?: Record<string, Rect>) => string[];
61
+ /** 结束一次变换(拖动/缩放/批量)的统一收尾:
62
+ */
63
+ export declare const finalizeAfterTransform: (shapes: Shape[], changedIds: string[], ghost: Record<string, Rect>, draggingIds: string[], diagramId: string | null | undefined, hoverId: string | null | undefined, updateShape: (id: string, updates: Partial<Shape>) => void) => boolean;
64
+ export {};
65
+ //# sourceMappingURL=drag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../../src/utils/drag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAQrC,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACpE,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3C,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,GAAG,SAAS,CAAA;AACzB,eAAO,MAAM,SAAS,OAAQ,IAAI,MAAM,IAAI,YAKP,CAAA;AAErC,eAAO,MAAM,iBAAiB,WACpB,KAAK,EAAE,OACV,MAAM,EAAE;;;CAoBd,CAAA;AAGD,eAAO,MAAM,cAAc,WACjB,KAAK,EAAE,MACX,MAAM,WACD;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,cACrB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,YACjC,OAAO,MAAM,EAAE,IAAI,CAAC,aACnB,MAAM,kBACD;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,eACvE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;;;CA+BtC,CAAA;AAGD,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,eACF,MAAM,EAAE,aACV,MAAM,WACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,cACrB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,gBACtB,IAAI;;;CAyCnB,CAAA;AAGD,eAAO,MAAM,kBAAkB,WAAY,KAAK,EAAE,SAAS,OAAO,MAAM,EAAE,IAAI,CAAC,KAAG,KAAK,EACU,CAAA;AAGjG,eAAO,MAAM,UAAU,WACb,KAAK,EAAE,eACF,MAAM,EAAE,SACd,OAAO,MAAM,EAAE,IAAI,CAAC,qBACR,MAAM,GAAG,IAAI,oBACd,MAAM,WAAW,QAAQ,KAAK,CAAC,KAAK,IAAI,YAChD,OAAO,MAAM,EAAE,IAAI,CAAC,aA6B/B,CAAA;AAED;GACG;AACH,eAAO,MAAM,sBAAsB,WACzB,KAAK,EAAE,cACH,MAAM,EAAE,SACb,OAAO,MAAM,EAAE,IAAI,CAAC,eACd,MAAM,EAAE,aACV,MAAM,GAAG,IAAI,GAAG,SAAS,WAC3B,MAAM,GAAG,IAAI,GAAG,SAAS,oBAChB,MAAM,WAAW,QAAQ,KAAK,CAAC,KAAK,IAAI,KACzD,OAgCF,CAAA"}
@@ -0,0 +1,326 @@
1
+ import { Shape, Waypoint } from '../types';
2
+ import { IHighlightUtils } from '../hooks/useHighlight';
3
+
4
+ export declare class EdgeUtils {
5
+ /**
6
+ * 更新与指定图元相关的连线端点(同步版本)
7
+ * @param shapes 所有图元
8
+ * @param changedIds 发生变化的图元ID列表
9
+ * @param updateShape 更新图元的回调函数
10
+ * @param edgeIndex 可选,nodeId → 关联 edges 的索引(来自 graphStore.edgesByNodeId)
11
+ * @param shapeMapIndex 可选,id → Shape 的索引(来自 graphStore.shapeMap)
12
+ */
13
+ static updateRelatedEdges(shapes: Shape[], changedIds: string[], updateShape: (shape: Shape) => void, edgeIndex?: Map<string, Shape[]>, shapeMapIndex?: Map<string, Shape>): void;
14
+ /**
15
+ * 更新与指定图元相关的连线端点(异步版本,使用 Web Worker)
16
+ * 内置竞态控制:如果在 Worker 返回前又发起了新的调用,旧结果会被丢弃。
17
+ * @param shapes 所有图元
18
+ * @param changedIds 发生变化的图元ID列表
19
+ * @param updateShape 更新图元的回调函数
20
+ * @param edgeIndex 可选,nodeId → 关联 edges 的索引(来自 graphStore.edgesByNodeId)
21
+ * @param shapeMapIndex 可选,id → Shape 的索引(来自 graphStore.shapeMap)
22
+ */
23
+ static updateRelatedEdgesAsync(shapes: Shape[], changedIds: string[], updateShape: (shape: Shape) => void, edgeIndex?: Map<string, Shape[]>, shapeMapIndex?: Map<string, Shape>): Promise<void>;
24
+ /**
25
+ * 获取图形的四个中心点(上下左右)
26
+ */
27
+ static getShapeCenterPoints(bounds: {
28
+ x: number;
29
+ y: number;
30
+ width: number;
31
+ height: number;
32
+ }): {
33
+ top: {
34
+ x: number;
35
+ y: number;
36
+ };
37
+ bottom: {
38
+ x: number;
39
+ y: number;
40
+ };
41
+ left: {
42
+ x: number;
43
+ y: number;
44
+ };
45
+ right: {
46
+ x: number;
47
+ y: number;
48
+ };
49
+ };
50
+ /**
51
+ * 计算两点之间的距离
52
+ */
53
+ static getDistance(point1: {
54
+ x: number;
55
+ y: number;
56
+ }, point2: {
57
+ x: number;
58
+ y: number;
59
+ }): number;
60
+ /**
61
+ * 生成图元自连接时使用的半环路径。
62
+ * 路径使用正交折线,从图元上边中点出发,沿右侧绕到下边中点,
63
+ * 让自连接的观感更接近矩形转角线。
64
+ */
65
+ static buildSelfLoopWaypoints(bounds: {
66
+ x?: number;
67
+ y?: number;
68
+ width?: number;
69
+ height?: number;
70
+ }, groupIndex?: number): {
71
+ sourcePoint: {
72
+ x: number;
73
+ y: number;
74
+ };
75
+ targetPoint: {
76
+ x: number;
77
+ y: number;
78
+ };
79
+ waypoints: Waypoint[];
80
+ };
81
+ /**
82
+ * 统一生成边的折点数据。
83
+ * 普通连线仍使用最近边中点,自连接则走专用半环路径。
84
+ */
85
+ static buildEdgeWaypoints(sBounds: {
86
+ x?: number;
87
+ y?: number;
88
+ width?: number;
89
+ height?: number;
90
+ }, tBounds: {
91
+ x?: number;
92
+ y?: number;
93
+ width?: number;
94
+ height?: number;
95
+ }, groupIndex: number, isSelfLoop: boolean): {
96
+ sourcePoint: {
97
+ x: number;
98
+ y: number;
99
+ };
100
+ targetPoint: {
101
+ x: number;
102
+ y: number;
103
+ };
104
+ waypoints: Waypoint[];
105
+ };
106
+ /**
107
+ * 计算两个图元之间的最佳连接端点(共用算法)
108
+ * 使用 4×4 边中点最短距离组合,与 completeConnection 保持一致。
109
+ * @param sBounds 源图元 bounds
110
+ * @param tBounds 目标图元 bounds
111
+ * @param groupIndex 同源-目标对中的索引,0 表示无偏移
112
+ */
113
+ static calcBestEndpoints(sBounds: {
114
+ x?: number;
115
+ y?: number;
116
+ width?: number;
117
+ height?: number;
118
+ }, tBounds: {
119
+ x?: number;
120
+ y?: number;
121
+ width?: number;
122
+ height?: number;
123
+ }, groupIndex: number): {
124
+ sourcePoint: {
125
+ x: number;
126
+ y: number;
127
+ };
128
+ targetPoint: {
129
+ x: number;
130
+ y: number;
131
+ };
132
+ };
133
+ /**
134
+ * 找到距离鼠标位置最近的连接点(同步版本)
135
+ */
136
+ static findNearestConnectPoint(mousePos: {
137
+ x: number;
138
+ y: number;
139
+ }, shape: Shape | undefined, diagramBounds?: any): {
140
+ x: number;
141
+ y: number;
142
+ } | null;
143
+ /**
144
+ * 找到距离鼠标位置最近的连接点(异步版本,使用 Web Worker)
145
+ */
146
+ static findNearestConnectPointAsync(mousePos: {
147
+ x: number;
148
+ y: number;
149
+ }, shape: Shape | undefined): Promise<any>;
150
+ /**
151
+ * 完成连接操作,计算最终连接点
152
+ */
153
+ static completeConnection(sourceShape: Shape | undefined, targetShape: Shape, clickPoint: {
154
+ x: number;
155
+ y: number;
156
+ }, currentConnectPoint: {
157
+ x: number;
158
+ y: number;
159
+ }, shapes?: Shape[]): {
160
+ sourceId: string;
161
+ sourceModelId: string;
162
+ targetId: string;
163
+ targetModelId: string;
164
+ sourcePoint: {
165
+ x: number;
166
+ y: number;
167
+ };
168
+ targetPoint: {
169
+ x: number;
170
+ y: number;
171
+ };
172
+ waypoints: Waypoint[];
173
+ } | null;
174
+ /**
175
+ * 完成连接操作,计算最终连接点(异步版本,使用 Web Worker)
176
+ */
177
+ static completeConnectionAsync(sourceShape: Shape | undefined, targetShape: Shape, clickPoint: {
178
+ x: number;
179
+ y: number;
180
+ }, currentConnectPoint: {
181
+ x: number;
182
+ y: number;
183
+ }, shapes?: Shape[]): Promise<any>;
184
+ /**
185
+ * 计算线路径点
186
+ * 当前实现:直接返回两点连线,暂时不添加转折点
187
+ * 保留转折点计算逻辑以备后续使用
188
+ */
189
+ static calculateLinePoints(startPoint: {
190
+ x: number;
191
+ y: number;
192
+ }, endPoint: {
193
+ x: number;
194
+ y: number;
195
+ }): string;
196
+ /**
197
+ * 检查鼠标是否在画布内
198
+ */
199
+ static isWithinCanvas(x: number, y: number): boolean;
200
+ /**
201
+ * 检查鼠标悬停的目标图形
202
+ */
203
+ static checkHoverTarget(x: number, y: number, shapes: Shape[], diagramBounds: any, sourceId?: string): Shape | null;
204
+ /**
205
+ * 初始化连接点位置
206
+ */
207
+ static initializeConnectPoint(sourceShape: Shape | undefined, initialMousePos?: {
208
+ x: number;
209
+ y: number;
210
+ }, diagramBounds?: any): {
211
+ x: number;
212
+ y: number;
213
+ } | null;
214
+ /**
215
+ * 取消连线的方法(完全重置所有相关状态)
216
+ */
217
+ static cancelConnection(state: {
218
+ isConnecting: {
219
+ value: boolean;
220
+ };
221
+ currentConnectPoint: {
222
+ value: {
223
+ x: number;
224
+ y: number;
225
+ };
226
+ };
227
+ mousePosition: {
228
+ value: {
229
+ x: number;
230
+ y: number;
231
+ };
232
+ };
233
+ targetConnectPoint: {
234
+ value: {
235
+ x: number;
236
+ y: number;
237
+ };
238
+ };
239
+ targetShape: {
240
+ value: any;
241
+ };
242
+ showLine: {
243
+ value: boolean;
244
+ };
245
+ }, highlightUtils: IHighlightUtils): void;
246
+ static isEndPointInShape(shapes: Shape[], endPoint: {
247
+ x: number;
248
+ y: number;
249
+ }): boolean;
250
+ /**
251
+ * 初始化所有连线的端点(同步版本)
252
+ * 用于在初始加载后端数据后,自动计算所有连线的合适端点,避免线横跨图元
253
+ * @param shapes 所有图元列表
254
+ * @param updateShape 更新图元的回调函数
255
+ * @param shapeMapIndex 可选,id → Shape 的索引(来自 graphStore.shapeMap)
256
+ */
257
+ static initializeAllEdgeEndpoints(shapes: Shape[], updateShape: (shape: Shape) => void, shapeMapIndex?: Map<string, Shape>): void;
258
+ /**
259
+ * 初始化所有连线的端点(异步版本,使用 Web Worker)
260
+ * 用于在初始加载后端数据后,自动计算所有连线的合适端点,避免线横跨图元
261
+ * @param shapes 所有图元列表
262
+ * @param updateShape 更新图元的回调函数
263
+ * @param shapeMapIndex 可选,id → Shape 的索引(来自 graphStore.shapeMap)
264
+ */
265
+ static initializeAllEdgeEndpointsAsync(shapes: Shape[], updateShape: (shape: Shape) => void, shapeMapIndex?: Map<string, Shape>): Promise<void>;
266
+ /**
267
+ * 根据 pin 的方向和位置计算连接点
268
+ * 连接点位于 pin 的外侧边缘(远离父图元的一侧):
269
+ * - OutputPin: direction 表示箭头朝外的方向,连接点在该方向的外侧边缘
270
+ * - InputPin: direction 表示箭头朝内的方向,连接点在相反方向的外侧边缘
271
+ *
272
+ * 例如:
273
+ * - InputPin direction='down' (箭头朝下,pin 在父图元上方) -> 连接点在 pin 的上边缘(y)
274
+ * - InputPin direction='up' (箭头朝上,pin 在父图元下方) -> 连接点在 pin 的下边缘(y + height)
275
+ * - InputPin direction='right' (箭头朝右,pin 在父图元左边) -> 连接点在 pin 的左边缘(x)
276
+ * - InputPin direction='left' (箭头朝左,pin 在父图元右边) -> 连接点在 pin 的右边缘(x + width)
277
+ *
278
+ * @param pinShape pin 图元对象
279
+ * @returns 连接点坐标 { x, y }
280
+ */
281
+ static calculatePinConnectionPoint(pinShape: Shape): {
282
+ x: number;
283
+ y: number;
284
+ };
285
+ /**
286
+ * 处理 ServiceObjectFlow 连接:计算 OutputPin 和 InputPin 的 bounds 和连接点
287
+ * @param sourceShape 源图元
288
+ * @param targetShape 目标图元
289
+ * @param connectionData 连接数据
290
+ * @returns 处理后的连接数据和 pin 的 bounds
291
+ */
292
+ static handleServiceObjectFlowConnection(sourceShape: Shape, targetShape: Shape, connectionData: {
293
+ sourceId?: string;
294
+ targetId?: string;
295
+ sourcePoint: {
296
+ x: number;
297
+ y: number;
298
+ };
299
+ targetPoint: {
300
+ x: number;
301
+ y: number;
302
+ };
303
+ waypoints?: Array<{
304
+ x: number;
305
+ y: number;
306
+ }>;
307
+ [key: string]: any;
308
+ }): {
309
+ connectionData: typeof connectionData;
310
+ outputPinBounds: {
311
+ x: number;
312
+ y: number;
313
+ width: number;
314
+ height: number;
315
+ direction?: string;
316
+ } | null;
317
+ inputPinBounds: {
318
+ x: number;
319
+ y: number;
320
+ width: number;
321
+ height: number;
322
+ direction?: string;
323
+ } | null;
324
+ };
325
+ }
326
+ //# sourceMappingURL=edgeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/edgeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ interface Shape {
2
+ id: string;
3
+ shapeType: string;
4
+ bounds?: {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ sourceId?: string;
11
+ targetId?: string;
12
+ modelId?: string;
13
+ shapeKey?: string;
14
+ direction?: string;
15
+ parenShapeId?: string;
16
+ [key: string]: any;
17
+ }
18
+ interface WorkerMessage {
19
+ type: string;
20
+ data: any;
21
+ id?: number;
22
+ }
23
+ interface WorkerResponse {
24
+ id: number;
25
+ result: any;
26
+ error?: string;
27
+ }
28
+ declare class EdgeWorkerUtils {
29
+ /**
30
+ * 获取图形的四个中心点(上下左右)
31
+ */
32
+ static getShapeCenterPoints(bounds: {
33
+ x: number;
34
+ y: number;
35
+ width: number;
36
+ height: number;
37
+ }): {
38
+ top: {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ bottom: {
43
+ x: number;
44
+ y: number;
45
+ };
46
+ left: {
47
+ x: number;
48
+ y: number;
49
+ };
50
+ right: {
51
+ x: number;
52
+ y: number;
53
+ };
54
+ };
55
+ static getDistance(p1: {
56
+ x: number;
57
+ y: number;
58
+ }, p2: {
59
+ x: number;
60
+ y: number;
61
+ }): number;
62
+ /**
63
+ * 生成图元自连接时使用的半环路径。
64
+ * Worker 和主线程保持同一套正交折线规则,避免异步回填后形态不一致。
65
+ */
66
+ static buildSelfLoopWaypoints(bounds: {
67
+ x: number;
68
+ y: number;
69
+ width: number;
70
+ height: number;
71
+ }, groupIndex?: number): {
72
+ sourcePoint: {
73
+ x: number;
74
+ y: number;
75
+ };
76
+ targetPoint: {
77
+ x: number;
78
+ y: number;
79
+ };
80
+ waypoints: Array<{
81
+ x: number;
82
+ y: number;
83
+ }>;
84
+ };
85
+ /**
86
+ * 统一生成边的折点数据。
87
+ * 普通连线走最近边中点,自连接走专用半环路径。
88
+ */
89
+ static buildEdgeWaypoints(sBounds: {
90
+ x: number;
91
+ y: number;
92
+ width: number;
93
+ height: number;
94
+ }, tBounds: {
95
+ x: number;
96
+ y: number;
97
+ width: number;
98
+ height: number;
99
+ }, groupIndex: number, isSelfLoop: boolean): {
100
+ sourcePoint: {
101
+ x: number;
102
+ y: number;
103
+ };
104
+ targetPoint: {
105
+ x: number;
106
+ y: number;
107
+ };
108
+ waypoints: Array<{
109
+ x: number;
110
+ y: number;
111
+ }>;
112
+ };
113
+ /**
114
+ * 计算两个图元之间的最佳连接端点(共用算法,与主线程 EdgeUtils.calcBestEndpoints 一致)
115
+ */
116
+ static calcBestEndpoints(sBounds: {
117
+ x: number;
118
+ y: number;
119
+ width: number;
120
+ height: number;
121
+ }, tBounds: {
122
+ x: number;
123
+ y: number;
124
+ width: number;
125
+ height: number;
126
+ }, groupIndex: number): {
127
+ sourcePoint: {
128
+ x: number;
129
+ y: number;
130
+ };
131
+ targetPoint: {
132
+ x: number;
133
+ y: number;
134
+ };
135
+ };
136
+ /**
137
+ * 更新与指定图元相关的连线端点
138
+ */
139
+ static updateRelatedEdges(shapes: Shape[], changedIds: string[], edgeIndex?: Map<string, Shape[]>, shapeMapIndex?: Map<string, Shape>): Shape[];
140
+ /**
141
+ * 初始化所有连线的端点
142
+ */
143
+ static initializeAllEdgeEndpoints(shapes: Shape[], shapeMapIndex?: Map<string, Shape>): Shape[];
144
+ /**
145
+ * 完成连接操作,计算最终连接点
146
+ */
147
+ static completeConnection(sourceShape: Shape | undefined, targetShape: Shape, clickPoint: {
148
+ x: number;
149
+ y: number;
150
+ }, currentConnectPoint: {
151
+ x: number;
152
+ y: number;
153
+ }, shapes?: Shape[]): {
154
+ sourceId: string;
155
+ sourceModelId: string | undefined;
156
+ targetId: string;
157
+ targetModelId: string | undefined;
158
+ sourcePoint: {
159
+ x: number;
160
+ y: number;
161
+ };
162
+ targetPoint: {
163
+ x: number;
164
+ y: number;
165
+ };
166
+ waypoints: {
167
+ x: number;
168
+ y: number;
169
+ }[];
170
+ } | null;
171
+ /**
172
+ * 找到距离鼠标位置最近的连接点
173
+ */
174
+ static findNearestConnectPoint(mousePos: {
175
+ x: number;
176
+ y: number;
177
+ }, shape: Shape | undefined): {
178
+ x: number;
179
+ y: number;
180
+ } | null;
181
+ }
182
+ //# sourceMappingURL=edgeWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeWorker.d.ts","sourceRoot":"","sources":["../../../src/utils/edgeWorker.ts"],"names":[],"mappings":"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"}