aldehyde 0.2.473 → 0.2.475

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 (203) hide show
  1. package/lib/controls/action/utils.d.ts +1 -1
  2. package/lib/controls/entity-select/entity-select.d.ts +2 -2
  3. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  4. package/lib/controls/entity-select/entity-select.js +16 -7
  5. package/lib/controls/entity-select/entity-select.js.map +1 -1
  6. package/lib/controls/entry-control.d.ts.map +1 -1
  7. package/lib/controls/entry-control.js +3 -2
  8. package/lib/controls/entry-control.js.map +1 -1
  9. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
  10. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +12 -12
  11. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js.map +1 -1
  12. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
  13. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
  14. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
  15. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
  16. package/lib/controls/select/index.d.ts.map +1 -1
  17. package/lib/controls/select/index.js +13 -7
  18. package/lib/controls/select/index.js.map +1 -1
  19. package/lib/controls/text/index.less +1 -0
  20. package/lib/controls/view-control.d.ts.map +1 -1
  21. package/lib/controls/view-control.js +1 -0
  22. package/lib/controls/view-control.js.map +1 -1
  23. package/lib/detail/button/edit-button.d.ts.map +1 -1
  24. package/lib/detail/button/edit-button.js +23 -11
  25. package/lib/detail/button/edit-button.js.map +1 -1
  26. package/lib/detail/button/view-button.d.ts.map +1 -1
  27. package/lib/detail/button/view-button.js +21 -10
  28. package/lib/detail/button/view-button.js.map +1 -1
  29. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts +5 -0
  30. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts.map +1 -0
  31. package/lib/draw-canvas/edit/components/asset-bar/index.js +79 -0
  32. package/lib/draw-canvas/edit/components/asset-bar/index.js.map +1 -0
  33. package/lib/draw-canvas/edit/components/asset-bar/index.less +36 -0
  34. package/lib/draw-canvas/edit/components/main-header/index.d.ts +19 -0
  35. package/lib/draw-canvas/edit/components/main-header/index.d.ts.map +1 -0
  36. package/lib/draw-canvas/edit/components/main-header/index.js +203 -0
  37. package/lib/draw-canvas/edit/components/main-header/index.js.map +1 -0
  38. package/lib/draw-canvas/edit/components/main-header/index.less +21 -0
  39. package/lib/draw-canvas/edit/components/render/index.d.ts +90 -0
  40. package/lib/draw-canvas/edit/components/render/index.d.ts.map +1 -0
  41. package/lib/draw-canvas/edit/components/render/index.js +692 -0
  42. package/lib/draw-canvas/edit/components/render/index.js.map +1 -0
  43. package/lib/draw-canvas/edit/components/render/types.d.ts +247 -0
  44. package/lib/draw-canvas/edit/components/render/types.d.ts.map +1 -0
  45. package/lib/draw-canvas/edit/components/render/types.js +66 -0
  46. package/lib/draw-canvas/edit/components/render/types.js.map +1 -0
  47. package/lib/draw-canvas/edit/components/setting-form/imag-upload.d.ts +26 -0
  48. package/lib/draw-canvas/edit/components/setting-form/imag-upload.d.ts.map +1 -0
  49. package/lib/draw-canvas/edit/components/setting-form/imag-upload.js +83 -0
  50. package/lib/draw-canvas/edit/components/setting-form/imag-upload.js.map +1 -0
  51. package/lib/draw-canvas/edit/components/setting-form/index.d.ts +17 -0
  52. package/lib/draw-canvas/edit/components/setting-form/index.d.ts.map +1 -0
  53. package/lib/draw-canvas/edit/components/setting-form/index.js +243 -0
  54. package/lib/draw-canvas/edit/components/setting-form/index.js.map +1 -0
  55. package/lib/draw-canvas/edit/constant.d.ts +7 -0
  56. package/lib/draw-canvas/edit/constant.d.ts.map +1 -0
  57. package/lib/draw-canvas/edit/constant.js +7 -0
  58. package/lib/draw-canvas/edit/constant.js.map +1 -0
  59. package/lib/draw-canvas/edit/index.d.ts +8 -0
  60. package/lib/draw-canvas/edit/index.d.ts.map +1 -0
  61. package/lib/draw-canvas/edit/index.js +165 -0
  62. package/lib/draw-canvas/edit/index.js.map +1 -0
  63. package/lib/draw-canvas/edit/index.less +49 -0
  64. package/lib/draw-canvas/view/index.d.ts +8 -0
  65. package/lib/draw-canvas/view/index.d.ts.map +1 -0
  66. package/lib/draw-canvas/view/index.js +50 -0
  67. package/lib/draw-canvas/view/index.js.map +1 -0
  68. package/lib/draw-canvas/view/index.less +60 -0
  69. package/lib/draw-canvas/view/view.d.ts +10 -0
  70. package/lib/draw-canvas/view/view.d.ts.map +1 -0
  71. package/lib/draw-canvas/view/view.js +104 -0
  72. package/lib/draw-canvas/view/view.js.map +1 -0
  73. package/lib/form/form-Item-group.d.ts.map +1 -1
  74. package/lib/form/form-Item-group.js +4 -4
  75. package/lib/form/form-Item-group.js.map +1 -1
  76. package/lib/icon/local-aliIcon/iconfont.js +5 -5
  77. package/lib/icon/local-aliIcon/iconfont.js.map +1 -1
  78. package/lib/lowcode-components/index.d.ts +2 -0
  79. package/lib/lowcode-components/index.d.ts.map +1 -1
  80. package/lib/lowcode-components/index.js +2 -1
  81. package/lib/lowcode-components/index.js.map +1 -1
  82. package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -1
  83. package/lib/lowcode-components/lowcode-view/component/assets.js +8 -0
  84. package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -1
  85. package/lib/lowcode-components/radar-chart/index.d.ts +51 -0
  86. package/lib/lowcode-components/radar-chart/index.d.ts.map +1 -0
  87. package/lib/lowcode-components/radar-chart/index.js +276 -0
  88. package/lib/lowcode-components/radar-chart/index.js.map +1 -0
  89. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  90. package/lib/module/dtmpl-edit-card.js +18 -1
  91. package/lib/module/dtmpl-edit-card.js.map +1 -1
  92. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  93. package/lib/module/dtmpl-edit-page.js +19 -2
  94. package/lib/module/dtmpl-edit-page.js.map +1 -1
  95. package/lib/routable/ltmpl-route.d.ts +2 -0
  96. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  97. package/lib/routable/ltmpl-route.js +20 -4
  98. package/lib/routable/ltmpl-route.js.map +1 -1
  99. package/lib/table/act-table.d.ts +2 -0
  100. package/lib/table/act-table.d.ts.map +1 -1
  101. package/lib/table/act-table.js +4 -4
  102. package/lib/table/act-table.js.map +1 -1
  103. package/lib/table/column/column-builder.d.ts.map +1 -1
  104. package/lib/table/column/column-builder.js +23 -8
  105. package/lib/table/column/column-builder.js.map +1 -1
  106. package/lib/table/relation-table.d.ts +7 -0
  107. package/lib/table/relation-table.d.ts.map +1 -1
  108. package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
  109. package/lib/tmpl/control-type-supportor.js +1 -0
  110. package/lib/tmpl/control-type-supportor.js.map +1 -1
  111. package/lib/tmpl/hcservice-v3.d.ts +3 -0
  112. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  113. package/lib/tmpl/hcservice-v3.js +61 -0
  114. package/lib/tmpl/hcservice-v3.js.map +1 -1
  115. package/lib/tmpl/interface.d.ts +17 -1
  116. package/lib/tmpl/interface.d.ts.map +1 -1
  117. package/lib/tmpl/interface.js.map +1 -1
  118. package/lib/tmpl/tmpl-config-analysis.js +1 -1
  119. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  120. package/lib/units/index.d.ts +3 -1
  121. package/lib/units/index.d.ts.map +1 -1
  122. package/lib/units/index.js +33 -3
  123. package/lib/units/index.js.map +1 -1
  124. package/package.json +4 -1
  125. package/src/aldehyde/controls/entity-select/entity-select.tsx +18 -8
  126. package/src/aldehyde/controls/entry-control.tsx +3 -2
  127. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
  128. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +1 -1
  129. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
  130. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
  131. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
  132. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
  133. package/src/aldehyde/controls/select/index.tsx +7 -6
  134. package/src/aldehyde/controls/text/index.less +1 -0
  135. package/src/aldehyde/controls/view-control.tsx +1 -0
  136. package/src/aldehyde/detail/button/edit-button.tsx +21 -22
  137. package/src/aldehyde/detail/button/view-button.tsx +23 -21
  138. package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.less +36 -0
  139. package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.tsx +95 -0
  140. package/src/aldehyde/draw-canvas/edit/components/main-header/index.less +21 -0
  141. package/src/aldehyde/draw-canvas/edit/components/main-header/index.tsx +233 -0
  142. package/src/aldehyde/draw-canvas/edit/components/render/draws/bg-draw.ts +163 -0
  143. package/src/aldehyde/draw-canvas/edit/components/render/draws/contextmenu-draw.ts +307 -0
  144. package/src/aldehyde/draw-canvas/edit/components/render/draws/graph-draw.ts +251 -0
  145. package/src/aldehyde/draw-canvas/edit/components/render/draws/index.ts +7 -0
  146. package/src/aldehyde/draw-canvas/edit/components/render/draws/link-draw.ts +1416 -0
  147. package/src/aldehyde/draw-canvas/edit/components/render/draws/preview-draw.ts +275 -0
  148. package/src/aldehyde/draw-canvas/edit/components/render/draws/ref-line-draw.ts +72 -0
  149. package/src/aldehyde/draw-canvas/edit/components/render/draws/ruler-draw.ts +167 -0
  150. package/src/aldehyde/draw-canvas/edit/components/render/graphs/base-graph.ts +241 -0
  151. package/src/aldehyde/draw-canvas/edit/components/render/graphs/bezier.ts +542 -0
  152. package/src/aldehyde/draw-canvas/edit/components/render/graphs/circle.ts +700 -0
  153. package/src/aldehyde/draw-canvas/edit/components/render/graphs/curve.ts +501 -0
  154. package/src/aldehyde/draw-canvas/edit/components/render/graphs/index.ts +6 -0
  155. package/src/aldehyde/draw-canvas/edit/components/render/graphs/line.ts +494 -0
  156. package/src/aldehyde/draw-canvas/edit/components/render/graphs/rect.ts +681 -0
  157. package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-handlers.ts +69 -0
  158. package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-outside-handlers.ts +159 -0
  159. package/src/aldehyde/draw-canvas/edit/components/render/handlers/graph-handlers.ts +108 -0
  160. package/src/aldehyde/draw-canvas/edit/components/render/handlers/index.ts +9 -0
  161. package/src/aldehyde/draw-canvas/edit/components/render/handlers/key-move-handlers.ts +50 -0
  162. package/src/aldehyde/draw-canvas/edit/components/render/handlers/link-handlers.ts +46 -0
  163. package/src/aldehyde/draw-canvas/edit/components/render/handlers/selection-handlers.ts +393 -0
  164. package/src/aldehyde/draw-canvas/edit/components/render/handlers/shutcut-handlers.ts +46 -0
  165. package/src/aldehyde/draw-canvas/edit/components/render/handlers/text-handlers.ts +82 -0
  166. package/src/aldehyde/draw-canvas/edit/components/render/handlers/zoom-handlers.ts +60 -0
  167. package/src/aldehyde/draw-canvas/edit/components/render/index.ts +776 -0
  168. package/src/aldehyde/draw-canvas/edit/components/render/tools/align-tool.ts +91 -0
  169. package/src/aldehyde/draw-canvas/edit/components/render/tools/asset-tool.ts +142 -0
  170. package/src/aldehyde/draw-canvas/edit/components/render/tools/attract-tool.ts +440 -0
  171. package/src/aldehyde/draw-canvas/edit/components/render/tools/copy-tool.ts +269 -0
  172. package/src/aldehyde/draw-canvas/edit/components/render/tools/import-export-tool.ts +603 -0
  173. package/src/aldehyde/draw-canvas/edit/components/render/tools/index.ts +9 -0
  174. package/src/aldehyde/draw-canvas/edit/components/render/tools/link-tool.ts +225 -0
  175. package/src/aldehyde/draw-canvas/edit/components/render/tools/position-tool.ts +194 -0
  176. package/src/aldehyde/draw-canvas/edit/components/render/tools/selection-tool.ts +132 -0
  177. package/src/aldehyde/draw-canvas/edit/components/render/tools/z-index-tool.ts +227 -0
  178. package/src/aldehyde/draw-canvas/edit/components/render/types.ts +291 -0
  179. package/src/aldehyde/draw-canvas/edit/components/render/utils/a-star.ts +116 -0
  180. package/src/aldehyde/draw-canvas/edit/components/render/utils/bezier-scene-func.ts +73 -0
  181. package/src/aldehyde/draw-canvas/edit/components/setting-form/imag-upload.tsx +118 -0
  182. package/src/aldehyde/draw-canvas/edit/components/setting-form/index.tsx +295 -0
  183. package/src/aldehyde/draw-canvas/edit/constant.ts +6 -0
  184. package/src/aldehyde/draw-canvas/edit/index.less +49 -0
  185. package/src/aldehyde/draw-canvas/edit/index.tsx +197 -0
  186. package/src/aldehyde/draw-canvas/view/index.less +60 -0
  187. package/src/aldehyde/draw-canvas/view/index.tsx +48 -0
  188. package/src/aldehyde/draw-canvas/view/view.tsx +114 -0
  189. package/src/aldehyde/form/form-Item-group.tsx +5 -5
  190. package/src/aldehyde/icon/local-aliIcon/iconfont.js +1 -1
  191. package/src/aldehyde/lowcode-components/index.ts +4 -2
  192. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +8 -0
  193. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +323 -0
  194. package/src/aldehyde/module/dtmpl-edit-card.tsx +18 -1
  195. package/src/aldehyde/module/dtmpl-edit-page.tsx +19 -2
  196. package/src/aldehyde/routable/ltmpl-route.tsx +39 -3
  197. package/src/aldehyde/table/act-table.tsx +7 -4
  198. package/src/aldehyde/table/column/column-builder.tsx +29 -9
  199. package/src/aldehyde/tmpl/control-type-supportor.tsx +1 -0
  200. package/src/aldehyde/tmpl/hcservice-v3.tsx +44 -0
  201. package/src/aldehyde/tmpl/interface.tsx +15 -1
  202. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +1 -1
  203. package/src/aldehyde/units/index.tsx +31 -3
@@ -0,0 +1,241 @@
1
+ import Konva from 'konva';
2
+ import { nanoid } from 'nanoid';
3
+ import { Render } from '../index';
4
+ import { GraphAnchor, LinkDrawPoint, AssetInfoPoint, GraphType, AssetType } from '../types';
5
+ import { GraphDraw } from '../draws';
6
+
7
+ /**
8
+ * 图形类
9
+ * 实例主要用于新建图形时,含新建同时的大小拖动。
10
+ * 静态方法主要用于新建之后,通过 调整点 调整的逻辑定义
11
+ */
12
+ export abstract class BaseGraph {
13
+ /**
14
+ * 更新 图形 的 调整点 的 锚点位置
15
+ * @param width 图形 的 宽度
16
+ * @param height 图形 的 高度
17
+ * @param rotate 图形 的 旋转角度
18
+ * @param anchorShadows 图形 的 调整点 的 锚点
19
+ */
20
+ static updateAnchorShadows(graph: Konva.Group, anchorShadows: Konva.Circle[]) {
21
+ console.log('请实现 updateAnchorShadows');
22
+ }
23
+
24
+ /**
25
+ * 更新 图形 的 连接点 的 锚点位置
26
+ * @param width 图形 的 宽度
27
+ * @param height 图形 的 高度
28
+ * @param rotate 图形 的 旋转角度
29
+ * @param anchors 图形 的 调整点 的 锚点
30
+ */
31
+ static updateLinkAnchorShadows(graph: Konva.Group, linkAnchorShadows: Konva.Circle[]) {
32
+ console.log('请实现 updateLinkAnchorShadows');
33
+ }
34
+
35
+ /**
36
+ * 生成 调整点
37
+ * @param render 渲染实例
38
+ * @param graph 图形
39
+ * @param anchorAndShadows 调整点 及其 锚点
40
+ * @param adjustAnchor 正在操作的 调整点
41
+ * @returns
42
+ */
43
+ static createAnchorShapes(render: Render, graph: Konva.Group, anchorAndShadows: { anchor: GraphAnchor, anchorShadow: Konva.Circle, shape?: Konva.Shape }[], adjustAnchor: GraphAnchor) {
44
+ console.log('请实现 createAnchorShapes');
45
+ return;
46
+ }
47
+
48
+ /**
49
+ * 调整 图形
50
+ * @param render 渲染实例
51
+ * @param graph 图形
52
+ * @param graphSnap 图形 的 备份
53
+ * @param rect 当前 调整点
54
+ * @param rects 所有 调整点
55
+ * @param startPoint 鼠标按下位置
56
+ * @param endPoint 鼠标拖动位置
57
+ */
58
+ static adjust(render: Render, graph: Konva.Group, graphSnap: Konva.Group, adjustShape: Konva.Shape, anchorAndShadows: { anchor: GraphAnchor; anchorShadow: Konva.Circle; shape?: Konva.Shape | undefined }[], startPoint: Konva.Vector2d, endPoint: Konva.Vector2d, hoverRect?: Konva.Rect, hoverSize?: { width: number; height: number }, hoverPos?: { x: number; y: number }) {
59
+ hoverRect?.position({
60
+ x: hoverPos?.x ?? 0,
61
+ y: hoverPos?.y ?? 0
62
+ });
63
+ hoverRect?.size({
64
+ width: hoverSize?.width ?? graph.width(),
65
+ height: hoverSize?.height ?? graph.height()
66
+ });
67
+ }
68
+
69
+ static draw(graph: Konva.Group, render: Render, adjustAnchor?: GraphAnchor): { anchorAndShadows: { anchor: GraphAnchor; anchorShadow: Konva.Circle; shape?: Konva.Shape }[] } {
70
+ // 调整点 信息
71
+ const anchors = (graph.attrs.anchors ?? []) as GraphAnchor[];
72
+ // 调整点 锚点
73
+ const anchorShapes = graph.find(`.anchor`);
74
+ // 调整点 信息&锚点
75
+ const anchorAndShadows = anchors
76
+ .map((anchor) => ({
77
+ anchor,
78
+ anchorShadow: anchorShapes.find(
79
+ (shape) => shape.attrs.adjustType === anchor.adjustType
80
+ ) as Konva.Circle
81
+ }))
82
+ .filter((o) => o.anchorShadow !== void 0);
83
+ return { anchorAndShadows };
84
+ }
85
+
86
+ protected render: Render;
87
+ group: Konva.Group;
88
+ // 占用区域,用于识别 hover 态
89
+ hoverRect: Konva.Rect;
90
+ id: string; // 就是 group 的id
91
+ /**
92
+ * 鼠标按下位置
93
+ */
94
+ protected dropPoint: Konva.Vector2d = { x: 0, y: 0 };
95
+ /**
96
+ * 调整点 定义
97
+ */
98
+ protected anchors: GraphAnchor[] = [];
99
+ /**
100
+ * 调整点 的 锚点
101
+ */
102
+ protected anchorShadows: Konva.Circle[] = [];
103
+
104
+ /**
105
+ * 调整点 定义
106
+ */
107
+ protected linkAnchors: LinkDrawPoint[] = [];
108
+ /**
109
+ * 连接点 的 锚点
110
+ */
111
+ protected linkAnchorShadows: Konva.Circle[] = [];
112
+
113
+ constructor(
114
+ render: Render,
115
+ dropPoint: Konva.Vector2d,
116
+ config: {
117
+ anchors: GraphAnchor[]
118
+ linkAnchors: AssetInfoPoint[]
119
+ type: GraphType
120
+ }
121
+ ) {
122
+ this.render = render;
123
+ this.dropPoint = dropPoint;
124
+ this.id = nanoid();
125
+ this.group = new Konva.Group({
126
+ id: this.id,
127
+ name: 'asset',
128
+ assetType: AssetType.Graph,
129
+ graphType: config.type,
130
+ draggable: true
131
+ });
132
+ this.hoverRect = new Konva.Rect({
133
+ name: 'hoverRect',
134
+ x: 0,
135
+ y: 0,
136
+ hitStrokeWidth: this.render.toStageValue(this.render.bgSize * 2 + 2)
137
+ });
138
+ // 调整点 定义
139
+ this.anchors = config.anchors.map((o) => ({
140
+ ...o,
141
+ // 补充信息
142
+ name: 'anchor',
143
+ groupId: this.group.id(),
144
+ type: config.type
145
+ }));
146
+ // 记录在 group 中
147
+ this.group.setAttr('anchors', this.anchors);
148
+ // 新建 调整点 的 锚点
149
+ for (const anchor of this.anchors) {
150
+ const circle = new Konva.Circle({
151
+ adjustType: anchor.adjustType,
152
+ anchorType: anchor.type,
153
+ name: anchor.name,
154
+ radius: 0
155
+ });
156
+ this.anchorShadows.push(circle);
157
+ this.group.add(circle);
158
+ }
159
+ // 连接点 定义
160
+ this.linkAnchors = config.linkAnchors.map(
161
+ (o) =>
162
+ ({
163
+ ...o,
164
+ id: nanoid(),
165
+ groupId: this.group.id(),
166
+ visible: false,
167
+ pairs: [],
168
+ direction: o.direction,
169
+ alias: o.alias
170
+ }) as LinkDrawPoint
171
+ );
172
+
173
+ // 连接点信息
174
+ this.group.setAttrs({ points: this.linkAnchors });
175
+ // 新建 连接点 的 锚点
176
+ for (const point of this.linkAnchors) {
177
+ const circle = new Konva.Circle({
178
+ name: 'link-anchor',
179
+ id: point.id,
180
+ x: point.x,
181
+ y: point.y,
182
+ radius: this.render.toStageValue(1),
183
+ stroke: 'rgba(0,0,255,1)',
184
+ strokeWidth: this.render.toStageValue(2),
185
+ visible: false,
186
+ direction: point.direction,
187
+ alias: point.alias
188
+ });
189
+ this.linkAnchorShadows.push(circle);
190
+ this.group.add(circle);
191
+ }
192
+ this.render.layer.add(this.group);
193
+ this.render.redraw([GraphDraw.name]);
194
+ }
195
+
196
+ /**
197
+ * 调整进行时
198
+ * @param point 鼠标位置 相对位置
199
+ */
200
+ abstract drawMove(point: Konva.Vector2d): void;
201
+
202
+ /**
203
+ * 调整结束
204
+ */
205
+ drawEnd(size?: { width: number; height: number }, pos?: { x: number; y: number }): void {
206
+ this.hoverRect?.position({ x: pos?.x ?? 0, y: pos?.y ?? 0 });
207
+ this.hoverRect.size({ width: size?.width ?? this.group.width(), height: size?.height ?? this.group.height() });
208
+ this.hoverRect.on('mouseenter', () => {
209
+ // 防止进入调整点,重复处理
210
+ if (!this.group.attrs.hoverAnchor) {
211
+ this.group.setAttr('hover', true);
212
+ this.render.redraw([GraphDraw.name]);
213
+ }
214
+ setTimeout(() => {
215
+ // 调整产生 redraw,导致离开调整点不触发其 mouseleave(进入其他元素区域除外)
216
+ // 在此静态补充“离开调整点”
217
+ // 不影响正常处理(调整点会不停 hoverAnchor = true)
218
+ this.group.setAttr('hoverAnchor', false);
219
+ })
220
+ // 显示 连接点
221
+ this.render.linkTool.pointsVisible(true, this.group);
222
+ })
223
+ this.hoverRect.on('mouseleave', () => {
224
+ // 延迟事件,使调整点的 mouseleave 优先
225
+ setTimeout(() => {
226
+ // 防止进入调整点,重复处理
227
+ // 补充 2,快速调整会漏掉
228
+ if (!this.group.attrs.hoverAnchor) {
229
+ this.group.setAttr('hover', false);
230
+ this.group.setAttr('hoverAnchor', false);
231
+ this.render.redraw([GraphDraw.name]);
232
+ }
233
+ });
234
+ // 隐藏 连接点
235
+ this.render.linkTool.pointsVisible(false, this.group);
236
+ // 隐藏 hover 框
237
+ this.group.findOne('#hoverRect')?.visible(false);
238
+ })
239
+ this.group.add(this.hoverRect);
240
+ }
241
+ }