@logicflow/core 2.0.0-beta.0 → 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 (479) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +16 -22
  3. package/__tests__/bugs/1545-spec.test.ts +19 -15
  4. package/__tests__/util/edge.test.ts +57 -57
  5. package/dist/index.min.js +32 -0
  6. package/dist/index.min.js.map +1 -0
  7. package/es/LogicFlow.d.ts +88 -40
  8. package/es/LogicFlow.js +38 -33
  9. package/es/LogicFlow.js.map +1 -1
  10. package/es/algorithm/edge.js.map +1 -1
  11. package/es/algorithm/index.d.ts +2 -0
  12. package/es/algorithm/index.js +2 -0
  13. package/es/algorithm/index.js.map +1 -1
  14. package/es/algorithm/outline.d.ts +1 -1
  15. package/es/common/drag.d.ts +51 -0
  16. package/es/common/drag.js +145 -0
  17. package/es/common/drag.js.map +1 -0
  18. package/es/common/history.d.ts +28 -0
  19. package/es/common/history.js +92 -0
  20. package/es/common/history.js.map +1 -0
  21. package/es/common/index.d.ts +5 -0
  22. package/es/common/index.js +6 -0
  23. package/es/common/index.js.map +1 -0
  24. package/es/common/keyboard.d.ts +34 -0
  25. package/es/common/keyboard.js +80 -0
  26. package/es/common/keyboard.js.map +1 -0
  27. package/es/common/matrix.d.ts +30 -0
  28. package/es/common/matrix.js +155 -0
  29. package/es/common/matrix.js.map +1 -0
  30. package/es/common/vector.d.ts +23 -0
  31. package/es/common/vector.js +97 -0
  32. package/es/common/vector.js.map +1 -0
  33. package/es/constant/index.d.ts +39 -2
  34. package/es/constant/index.js +41 -1
  35. package/es/constant/index.js.map +1 -1
  36. package/es/event/eventArgs.d.ts +103 -25
  37. package/es/event/eventEmitter.d.ts +2 -2
  38. package/es/event/eventEmitter.js +0 -1
  39. package/es/event/eventEmitter.js.map +1 -1
  40. package/es/index.d.ts +6 -1
  41. package/es/index.js +6 -1
  42. package/es/index.js.map +1 -1
  43. package/es/keyboard/index.d.ts +1 -0
  44. package/es/keyboard/index.js +1 -0
  45. package/es/keyboard/index.js.map +1 -1
  46. package/es/keyboard/shortcut.d.ts +8 -0
  47. package/es/keyboard/shortcut.js +70 -8
  48. package/es/keyboard/shortcut.js.map +1 -1
  49. package/es/model/BaseModel.d.ts +16 -7
  50. package/es/model/EditConfigModel.d.ts +97 -36
  51. package/es/model/EditConfigModel.js +169 -82
  52. package/es/model/EditConfigModel.js.map +1 -1
  53. package/es/model/GraphModel.d.ts +36 -14
  54. package/es/model/GraphModel.js +60 -10
  55. package/es/model/GraphModel.js.map +1 -1
  56. package/es/model/SnaplineModel.d.ts +2 -0
  57. package/es/model/TransformModel.js +1 -1
  58. package/es/model/TransformModel.js.map +1 -1
  59. package/es/model/edge/BaseEdgeModel.d.ts +21 -17
  60. package/es/model/edge/BaseEdgeModel.js +64 -42
  61. package/es/model/edge/BaseEdgeModel.js.map +1 -1
  62. package/es/model/edge/BezierEdgeModel.d.ts +5 -3
  63. package/es/model/edge/BezierEdgeModel.js +7 -3
  64. package/es/model/edge/BezierEdgeModel.js.map +1 -1
  65. package/es/model/edge/LineEdgeModel.d.ts +2 -0
  66. package/es/model/edge/LineEdgeModel.js +2 -1
  67. package/es/model/edge/LineEdgeModel.js.map +1 -1
  68. package/es/model/edge/PolylineEdgeModel.d.ts +5 -3
  69. package/es/model/edge/PolylineEdgeModel.js +22 -15
  70. package/es/model/edge/PolylineEdgeModel.js.map +1 -1
  71. package/es/model/node/BaseNodeModel.d.ts +42 -14
  72. package/es/model/node/BaseNodeModel.js +62 -48
  73. package/es/model/node/BaseNodeModel.js.map +1 -1
  74. package/es/model/node/CircleNodeModel.d.ts +4 -3
  75. package/es/model/node/CircleNodeModel.js +4 -7
  76. package/es/model/node/CircleNodeModel.js.map +1 -1
  77. package/es/model/node/DiamondNodeModel.d.ts +5 -4
  78. package/es/model/node/DiamondNodeModel.js +4 -6
  79. package/es/model/node/DiamondNodeModel.js.map +1 -1
  80. package/es/model/node/EllipseNodeModel.d.ts +5 -4
  81. package/es/model/node/EllipseNodeModel.js +4 -6
  82. package/es/model/node/EllipseNodeModel.js.map +1 -1
  83. package/es/model/node/HtmlNodeModel.d.ts +4 -5
  84. package/es/model/node/HtmlNodeModel.js +2 -12
  85. package/es/model/node/HtmlNodeModel.js.map +1 -1
  86. package/es/model/node/PolygonNodeModel.d.ts +5 -4
  87. package/es/model/node/PolygonNodeModel.js +4 -7
  88. package/es/model/node/PolygonNodeModel.js.map +1 -1
  89. package/es/model/node/RectNodeModel.d.ts +7 -5
  90. package/es/model/node/RectNodeModel.js +10 -7
  91. package/es/model/node/RectNodeModel.js.map +1 -1
  92. package/es/model/node/TextNodeModel.d.ts +17 -9
  93. package/es/model/node/TextNodeModel.js +2 -1
  94. package/es/model/node/TextNodeModel.js.map +1 -1
  95. package/es/options.d.ts +11 -14
  96. package/es/options.js +3 -42
  97. package/es/options.js.map +1 -1
  98. package/es/tool/MultipleSelectTool.d.ts +1 -1
  99. package/es/tool/MultipleSelectTool.js +5 -5
  100. package/es/tool/MultipleSelectTool.js.map +1 -1
  101. package/es/tool/TextEditTool.d.ts +3 -3
  102. package/es/tool/TextEditTool.js +2 -2
  103. package/es/tool/TextEditTool.js.map +1 -1
  104. package/es/tool/index.d.ts +24 -2
  105. package/es/tool/index.js +82 -2
  106. package/es/tool/index.js.map +1 -1
  107. package/es/util/drag.d.ts +5 -5
  108. package/es/util/drag.js +3 -1
  109. package/es/util/drag.js.map +1 -1
  110. package/es/util/edge.d.ts +9 -2
  111. package/es/util/edge.js +23 -12
  112. package/es/util/edge.js.map +1 -1
  113. package/es/util/index.d.ts +1 -0
  114. package/es/util/index.js +1 -0
  115. package/es/util/index.js.map +1 -1
  116. package/es/util/node.d.ts +8 -7
  117. package/es/util/node.js +26 -7
  118. package/es/util/node.js.map +1 -1
  119. package/es/util/resize.d.ts +32 -0
  120. package/es/util/resize.js +197 -0
  121. package/es/util/resize.js.map +1 -0
  122. package/es/view/Anchor.d.ts +6 -7
  123. package/es/view/Anchor.js +6 -3
  124. package/es/view/Anchor.js.map +1 -1
  125. package/es/view/Control.d.ts +1 -1
  126. package/es/view/Control.js +88 -39
  127. package/es/view/Control.js.map +1 -1
  128. package/es/view/Graph.d.ts +5 -1
  129. package/es/view/Graph.js +45 -5
  130. package/es/view/Graph.js.map +1 -1
  131. package/es/view/Rotate.js +2 -1
  132. package/es/view/Rotate.js.map +1 -1
  133. package/es/view/behavior/index.d.ts +2 -0
  134. package/es/view/behavior/index.js +3 -0
  135. package/es/view/behavior/index.js.map +1 -0
  136. package/es/view/behavior/snapline.d.ts +3 -0
  137. package/es/{tool → view/behavior}/snapline.js +0 -1
  138. package/es/view/behavior/snapline.js.map +1 -0
  139. package/es/view/edge/AdjustPoint.js +12 -23
  140. package/es/view/edge/AdjustPoint.js.map +1 -1
  141. package/es/view/edge/BaseEdge.d.ts +2 -2
  142. package/es/view/edge/BaseEdge.js +30 -22
  143. package/es/view/edge/BaseEdge.js.map +1 -1
  144. package/es/view/node/BaseNode.d.ts +4 -4
  145. package/es/view/node/BaseNode.js +33 -24
  146. package/es/view/node/BaseNode.js.map +1 -1
  147. package/es/view/node/CircleNode.d.ts +1 -1
  148. package/es/view/node/CircleNode.js.map +1 -1
  149. package/es/view/node/DiamondNode.d.ts +1 -1
  150. package/es/view/node/DiamondNode.js.map +1 -1
  151. package/es/view/node/EllipseNode.d.ts +1 -1
  152. package/es/view/node/EllipseNode.js.map +1 -1
  153. package/es/view/node/HtmlNode.d.ts +1 -1
  154. package/es/view/node/HtmlNode.js +2 -2
  155. package/es/view/node/HtmlNode.js.map +1 -1
  156. package/es/view/node/PolygonNode.d.ts +1 -1
  157. package/es/view/node/PolygonNode.js.map +1 -1
  158. package/es/view/node/RectNode.d.ts +1 -1
  159. package/es/view/node/RectNode.js.map +1 -1
  160. package/es/view/node/TextNode.d.ts +1 -1
  161. package/es/view/node/TextNode.js +1 -1
  162. package/es/view/node/TextNode.js.map +1 -1
  163. package/es/view/overlay/CanvasOverlay.js +5 -4
  164. package/es/view/overlay/CanvasOverlay.js.map +1 -1
  165. package/es/view/overlay/Grid.d.ts +35 -20
  166. package/es/view/overlay/Grid.js +35 -26
  167. package/es/view/overlay/Grid.js.map +1 -1
  168. package/es/view/overlay/ToolOverlay.d.ts +1 -1
  169. package/es/view/overlay/ToolOverlay.js +1 -1
  170. package/es/view/overlay/ToolOverlay.js.map +1 -1
  171. package/es/view/shape/Circle.d.ts +9 -1
  172. package/es/view/shape/Circle.js +5 -5
  173. package/es/view/shape/Circle.js.map +1 -1
  174. package/es/view/shape/Ellipse.d.ts +10 -1
  175. package/es/view/shape/Ellipse.js +5 -5
  176. package/es/view/shape/Ellipse.js.map +1 -1
  177. package/es/view/shape/Line.d.ts +14 -1
  178. package/es/view/shape/Line.js +5 -7
  179. package/es/view/shape/Line.js.map +1 -1
  180. package/es/view/shape/Path.d.ts +3 -2
  181. package/es/view/shape/Path.js +3 -3
  182. package/es/view/shape/Path.js.map +1 -1
  183. package/es/view/shape/Polygon.d.ts +5 -3
  184. package/es/view/shape/Polygon.js +6 -6
  185. package/es/view/shape/Polygon.js.map +1 -1
  186. package/es/view/shape/Polyline.d.ts +7 -1
  187. package/es/view/shape/Polyline.js +8 -6
  188. package/es/view/shape/Polyline.js.map +1 -1
  189. package/es/view/shape/Rect.d.ts +11 -13
  190. package/es/view/shape/Rect.js +6 -9
  191. package/es/view/shape/Rect.js.map +1 -1
  192. package/es/view/shape/Text.d.ts +19 -1
  193. package/es/view/shape/Text.js +28 -21
  194. package/es/view/shape/Text.js.map +1 -1
  195. package/es/view/text/BaseText.d.ts +12 -15
  196. package/es/view/text/BaseText.js +43 -29
  197. package/es/view/text/BaseText.js.map +1 -1
  198. package/es/view/text/LineText.d.ts +19 -7
  199. package/es/view/text/LineText.js +62 -54
  200. package/es/view/text/LineText.js.map +1 -1
  201. package/lib/LogicFlow.d.ts +88 -40
  202. package/lib/LogicFlow.js +40 -35
  203. package/lib/LogicFlow.js.map +1 -1
  204. package/lib/algorithm/edge.js.map +1 -1
  205. package/lib/algorithm/index.d.ts +2 -0
  206. package/lib/algorithm/index.js +17 -1
  207. package/lib/algorithm/index.js.map +1 -1
  208. package/lib/algorithm/outline.d.ts +1 -1
  209. package/lib/common/drag.d.ts +51 -0
  210. package/lib/common/drag.js +148 -0
  211. package/lib/common/drag.js.map +1 -0
  212. package/lib/common/history.d.ts +28 -0
  213. package/lib/common/history.js +95 -0
  214. package/lib/common/history.js.map +1 -0
  215. package/lib/common/index.d.ts +5 -0
  216. package/lib/common/index.js +22 -0
  217. package/lib/common/index.js.map +1 -0
  218. package/lib/common/keyboard.d.ts +34 -0
  219. package/lib/common/keyboard.js +86 -0
  220. package/lib/common/keyboard.js.map +1 -0
  221. package/lib/common/matrix.d.ts +30 -0
  222. package/lib/common/matrix.js +158 -0
  223. package/lib/common/matrix.js.map +1 -0
  224. package/lib/common/vector.d.ts +23 -0
  225. package/lib/common/vector.js +101 -0
  226. package/lib/common/vector.js.map +1 -0
  227. package/lib/constant/index.d.ts +39 -2
  228. package/lib/constant/index.js +42 -2
  229. package/lib/constant/index.js.map +1 -1
  230. package/lib/event/eventArgs.d.ts +103 -25
  231. package/lib/event/eventEmitter.d.ts +2 -2
  232. package/lib/event/eventEmitter.js +0 -1
  233. package/lib/event/eventEmitter.js.map +1 -1
  234. package/lib/index.d.ts +6 -1
  235. package/lib/index.js +7 -2
  236. package/lib/index.js.map +1 -1
  237. package/lib/keyboard/index.d.ts +1 -0
  238. package/lib/keyboard/index.js +15 -0
  239. package/lib/keyboard/index.js.map +1 -1
  240. package/lib/keyboard/shortcut.d.ts +8 -0
  241. package/lib/keyboard/shortcut.js +75 -9
  242. package/lib/keyboard/shortcut.js.map +1 -1
  243. package/lib/model/BaseModel.d.ts +16 -7
  244. package/lib/model/EditConfigModel.d.ts +97 -36
  245. package/lib/model/EditConfigModel.js +168 -81
  246. package/lib/model/EditConfigModel.js.map +1 -1
  247. package/lib/model/GraphModel.d.ts +36 -14
  248. package/lib/model/GraphModel.js +59 -9
  249. package/lib/model/GraphModel.js.map +1 -1
  250. package/lib/model/SnaplineModel.d.ts +2 -0
  251. package/lib/model/TransformModel.js +1 -1
  252. package/lib/model/TransformModel.js.map +1 -1
  253. package/lib/model/edge/BaseEdgeModel.d.ts +21 -17
  254. package/lib/model/edge/BaseEdgeModel.js +61 -39
  255. package/lib/model/edge/BaseEdgeModel.js.map +1 -1
  256. package/lib/model/edge/BezierEdgeModel.d.ts +5 -3
  257. package/lib/model/edge/BezierEdgeModel.js +6 -2
  258. package/lib/model/edge/BezierEdgeModel.js.map +1 -1
  259. package/lib/model/edge/LineEdgeModel.d.ts +2 -0
  260. package/lib/model/edge/LineEdgeModel.js +2 -1
  261. package/lib/model/edge/LineEdgeModel.js.map +1 -1
  262. package/lib/model/edge/PolylineEdgeModel.d.ts +5 -3
  263. package/lib/model/edge/PolylineEdgeModel.js +21 -14
  264. package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
  265. package/lib/model/node/BaseNodeModel.d.ts +42 -14
  266. package/lib/model/node/BaseNodeModel.js +60 -46
  267. package/lib/model/node/BaseNodeModel.js.map +1 -1
  268. package/lib/model/node/CircleNodeModel.d.ts +4 -3
  269. package/lib/model/node/CircleNodeModel.js +4 -7
  270. package/lib/model/node/CircleNodeModel.js.map +1 -1
  271. package/lib/model/node/DiamondNodeModel.d.ts +5 -4
  272. package/lib/model/node/DiamondNodeModel.js +4 -6
  273. package/lib/model/node/DiamondNodeModel.js.map +1 -1
  274. package/lib/model/node/EllipseNodeModel.d.ts +5 -4
  275. package/lib/model/node/EllipseNodeModel.js +4 -6
  276. package/lib/model/node/EllipseNodeModel.js.map +1 -1
  277. package/lib/model/node/HtmlNodeModel.d.ts +4 -5
  278. package/lib/model/node/HtmlNodeModel.js +2 -12
  279. package/lib/model/node/HtmlNodeModel.js.map +1 -1
  280. package/lib/model/node/PolygonNodeModel.d.ts +5 -4
  281. package/lib/model/node/PolygonNodeModel.js +4 -7
  282. package/lib/model/node/PolygonNodeModel.js.map +1 -1
  283. package/lib/model/node/RectNodeModel.d.ts +7 -5
  284. package/lib/model/node/RectNodeModel.js +10 -7
  285. package/lib/model/node/RectNodeModel.js.map +1 -1
  286. package/lib/model/node/TextNodeModel.d.ts +17 -9
  287. package/lib/model/node/TextNodeModel.js +2 -1
  288. package/lib/model/node/TextNodeModel.js.map +1 -1
  289. package/lib/options.d.ts +11 -14
  290. package/lib/options.js +3 -42
  291. package/lib/options.js.map +1 -1
  292. package/lib/tool/MultipleSelectTool.d.ts +1 -1
  293. package/lib/tool/MultipleSelectTool.js +5 -5
  294. package/lib/tool/MultipleSelectTool.js.map +1 -1
  295. package/lib/tool/TextEditTool.d.ts +3 -3
  296. package/lib/tool/TextEditTool.js +4 -4
  297. package/lib/tool/TextEditTool.js.map +1 -1
  298. package/lib/tool/index.d.ts +24 -2
  299. package/lib/tool/index.js +85 -15
  300. package/lib/tool/index.js.map +1 -1
  301. package/lib/util/drag.d.ts +5 -5
  302. package/lib/util/drag.js +3 -1
  303. package/lib/util/drag.js.map +1 -1
  304. package/lib/util/edge.d.ts +9 -2
  305. package/lib/util/edge.js +27 -15
  306. package/lib/util/edge.js.map +1 -1
  307. package/lib/util/index.d.ts +1 -0
  308. package/lib/util/index.js +1 -0
  309. package/lib/util/index.js.map +1 -1
  310. package/lib/util/node.d.ts +8 -7
  311. package/lib/util/node.js +28 -9
  312. package/lib/util/node.js.map +1 -1
  313. package/lib/util/resize.d.ts +32 -0
  314. package/lib/util/resize.js +204 -0
  315. package/lib/util/resize.js.map +1 -0
  316. package/lib/view/Anchor.d.ts +6 -7
  317. package/lib/view/Anchor.js +5 -2
  318. package/lib/view/Anchor.js.map +1 -1
  319. package/lib/view/Control.d.ts +1 -1
  320. package/lib/view/Control.js +87 -38
  321. package/lib/view/Control.js.map +1 -1
  322. package/lib/view/Graph.d.ts +5 -1
  323. package/lib/view/Graph.js +44 -4
  324. package/lib/view/Graph.js.map +1 -1
  325. package/lib/view/Rotate.js +2 -1
  326. package/lib/view/Rotate.js.map +1 -1
  327. package/lib/view/behavior/index.d.ts +2 -0
  328. package/lib/view/behavior/index.js +19 -0
  329. package/lib/view/behavior/index.js.map +1 -0
  330. package/lib/view/behavior/snapline.d.ts +3 -0
  331. package/lib/{tool → view/behavior}/snapline.js +0 -1
  332. package/lib/view/behavior/snapline.js.map +1 -0
  333. package/lib/view/edge/AdjustPoint.js +11 -22
  334. package/lib/view/edge/AdjustPoint.js.map +1 -1
  335. package/lib/view/edge/BaseEdge.d.ts +2 -2
  336. package/lib/view/edge/BaseEdge.js +29 -21
  337. package/lib/view/edge/BaseEdge.js.map +1 -1
  338. package/lib/view/node/BaseNode.d.ts +4 -4
  339. package/lib/view/node/BaseNode.js +32 -23
  340. package/lib/view/node/BaseNode.js.map +1 -1
  341. package/lib/view/node/CircleNode.d.ts +1 -1
  342. package/lib/view/node/CircleNode.js.map +1 -1
  343. package/lib/view/node/DiamondNode.d.ts +1 -1
  344. package/lib/view/node/DiamondNode.js.map +1 -1
  345. package/lib/view/node/EllipseNode.d.ts +1 -1
  346. package/lib/view/node/EllipseNode.js.map +1 -1
  347. package/lib/view/node/HtmlNode.d.ts +1 -1
  348. package/lib/view/node/HtmlNode.js +2 -2
  349. package/lib/view/node/HtmlNode.js.map +1 -1
  350. package/lib/view/node/PolygonNode.d.ts +1 -1
  351. package/lib/view/node/PolygonNode.js.map +1 -1
  352. package/lib/view/node/RectNode.d.ts +1 -1
  353. package/lib/view/node/RectNode.js.map +1 -1
  354. package/lib/view/node/TextNode.d.ts +1 -1
  355. package/lib/view/node/TextNode.js +1 -1
  356. package/lib/view/node/TextNode.js.map +1 -1
  357. package/lib/view/overlay/CanvasOverlay.js +5 -4
  358. package/lib/view/overlay/CanvasOverlay.js.map +1 -1
  359. package/lib/view/overlay/Grid.d.ts +35 -20
  360. package/lib/view/overlay/Grid.js +35 -26
  361. package/lib/view/overlay/Grid.js.map +1 -1
  362. package/lib/view/overlay/ToolOverlay.d.ts +1 -1
  363. package/lib/view/overlay/ToolOverlay.js +1 -1
  364. package/lib/view/overlay/ToolOverlay.js.map +1 -1
  365. package/lib/view/shape/Circle.d.ts +9 -1
  366. package/lib/view/shape/Circle.js +5 -5
  367. package/lib/view/shape/Circle.js.map +1 -1
  368. package/lib/view/shape/Ellipse.d.ts +10 -1
  369. package/lib/view/shape/Ellipse.js +5 -5
  370. package/lib/view/shape/Ellipse.js.map +1 -1
  371. package/lib/view/shape/Line.d.ts +14 -1
  372. package/lib/view/shape/Line.js +5 -7
  373. package/lib/view/shape/Line.js.map +1 -1
  374. package/lib/view/shape/Path.d.ts +3 -2
  375. package/lib/view/shape/Path.js +3 -3
  376. package/lib/view/shape/Path.js.map +1 -1
  377. package/lib/view/shape/Polygon.d.ts +5 -3
  378. package/lib/view/shape/Polygon.js +6 -6
  379. package/lib/view/shape/Polygon.js.map +1 -1
  380. package/lib/view/shape/Polyline.d.ts +7 -1
  381. package/lib/view/shape/Polyline.js +8 -6
  382. package/lib/view/shape/Polyline.js.map +1 -1
  383. package/lib/view/shape/Rect.d.ts +11 -13
  384. package/lib/view/shape/Rect.js +6 -9
  385. package/lib/view/shape/Rect.js.map +1 -1
  386. package/lib/view/shape/Text.d.ts +19 -1
  387. package/lib/view/shape/Text.js +29 -21
  388. package/lib/view/shape/Text.js.map +1 -1
  389. package/lib/view/text/BaseText.d.ts +12 -15
  390. package/lib/view/text/BaseText.js +46 -29
  391. package/lib/view/text/BaseText.js.map +1 -1
  392. package/lib/view/text/LineText.d.ts +19 -7
  393. package/lib/view/text/LineText.js +62 -57
  394. package/lib/view/text/LineText.js.map +1 -1
  395. package/package.json +5 -4
  396. package/src/LogicFlow.tsx +163 -79
  397. package/src/algorithm/edge.ts +1 -0
  398. package/src/algorithm/index.ts +2 -0
  399. package/src/algorithm/outline.ts +2 -2
  400. package/src/common/drag.ts +219 -0
  401. package/src/common/history.ts +108 -0
  402. package/src/common/index.ts +6 -0
  403. package/src/common/keyboard.ts +108 -0
  404. package/src/common/matrix.ts +122 -0
  405. package/src/common/vector.ts +93 -0
  406. package/src/constant/index.ts +43 -1
  407. package/src/event/eventArgs.ts +173 -34
  408. package/src/event/eventEmitter.ts +2 -3
  409. package/src/index.ts +6 -1
  410. package/src/keyboard/index.ts +2 -0
  411. package/src/keyboard/shortcut.ts +79 -8
  412. package/src/model/BaseModel.ts +18 -7
  413. package/src/model/EditConfigModel.ts +209 -97
  414. package/src/model/GraphModel.ts +64 -9
  415. package/src/model/TransformModel.ts +1 -1
  416. package/src/model/edge/BaseEdgeModel.ts +105 -42
  417. package/src/model/edge/BezierEdgeModel.ts +7 -6
  418. package/src/model/edge/LineEdgeModel.ts +2 -0
  419. package/src/model/edge/PolylineEdgeModel.ts +24 -18
  420. package/src/model/node/BaseNodeModel.ts +72 -47
  421. package/src/model/node/CircleNodeModel.ts +8 -7
  422. package/src/model/node/DiamondNodeModel.ts +9 -6
  423. package/src/model/node/EllipseNodeModel.ts +9 -6
  424. package/src/model/node/HtmlNodeModel.ts +8 -7
  425. package/src/model/node/PolygonNodeModel.ts +9 -7
  426. package/src/model/node/RectNodeModel.ts +16 -8
  427. package/src/model/node/TextNodeModel.ts +14 -1
  428. package/src/options.ts +18 -53
  429. package/src/tool/MultipleSelectTool.tsx +6 -6
  430. package/src/tool/TextEditTool.tsx +3 -3
  431. package/src/tool/index.ts +96 -2
  432. package/src/util/drag.ts +22 -6
  433. package/src/util/edge.ts +39 -13
  434. package/src/util/index.ts +1 -0
  435. package/src/util/node.ts +36 -13
  436. package/src/util/resize.ts +286 -0
  437. package/src/view/Anchor.tsx +7 -5
  438. package/src/view/Control.tsx +93 -62
  439. package/src/view/Graph.tsx +23 -6
  440. package/src/view/Rotate.tsx +2 -1
  441. package/src/view/behavior/index.ts +2 -0
  442. package/src/{tool → view/behavior}/snapline.ts +3 -4
  443. package/src/view/edge/AdjustPoint.tsx +35 -49
  444. package/src/view/edge/BaseEdge.tsx +65 -45
  445. package/src/view/node/BaseNode.tsx +55 -28
  446. package/src/view/node/CircleNode.tsx +3 -1
  447. package/src/view/node/DiamondNode.tsx +3 -1
  448. package/src/view/node/EllipseNode.tsx +3 -1
  449. package/src/view/node/HtmlNode.tsx +5 -3
  450. package/src/view/node/PolygonNode.tsx +3 -1
  451. package/src/view/node/RectNode.tsx +3 -1
  452. package/src/view/node/TextNode.tsx +4 -2
  453. package/src/view/overlay/CanvasOverlay.tsx +5 -4
  454. package/src/view/overlay/Grid.tsx +75 -53
  455. package/src/view/overlay/ToolOverlay.tsx +1 -1
  456. package/src/view/shape/Circle.tsx +21 -7
  457. package/src/view/shape/Ellipse.tsx +20 -6
  458. package/src/view/shape/Line.tsx +24 -9
  459. package/src/view/shape/Path.tsx +9 -6
  460. package/src/view/shape/Polygon.tsx +13 -10
  461. package/src/view/shape/Polyline.tsx +20 -8
  462. package/src/view/shape/Rect.tsx +19 -19
  463. package/src/view/shape/Text.tsx +64 -33
  464. package/src/view/text/BaseText.tsx +76 -42
  465. package/src/view/text/LineText.tsx +94 -80
  466. package/tsconfig.json +1 -1
  467. package/dist/index.js +0 -26
  468. package/dist/index.js.map +0 -1
  469. package/es/tool/snapline.d.ts +0 -3
  470. package/es/tool/snapline.js.map +0 -1
  471. package/es/tool/tool.d.ts +0 -22
  472. package/es/tool/tool.js +0 -43
  473. package/es/tool/tool.js.map +0 -1
  474. package/lib/tool/snapline.d.ts +0 -3
  475. package/lib/tool/snapline.js.map +0 -1
  476. package/lib/tool/tool.d.ts +0 -22
  477. package/lib/tool/tool.js +0 -49
  478. package/lib/tool/tool.js.map +0 -1
  479. package/src/tool/tool.ts +0 -66
@@ -1,5 +1,5 @@
1
- import { assign, cloneDeep, find } from 'lodash-es'
2
- import { action, computed, observable, toJS } from 'mobx'
1
+ import { assign, cloneDeep, find, isUndefined } from 'lodash-es'
2
+ import { action, computed, isObservable, observable, toJS } from 'mobx'
3
3
  import { BaseNodeModel, GraphModel, Model } from '..'
4
4
  import LogicFlow from '../../LogicFlow'
5
5
  import {
@@ -15,17 +15,22 @@ import {
15
15
  ElementType,
16
16
  ModelType,
17
17
  OverlapMode,
18
+ TextMode,
18
19
  } from '../../constant'
19
20
 
20
21
  import Point = LogicFlow.Point
21
22
  import EdgeData = LogicFlow.EdgeData
22
23
  import EdgeConfig = LogicFlow.EdgeConfig
24
+ import TextConfig = LogicFlow.TextConfig
25
+ import PropertiesType = LogicFlow.PropertiesType
23
26
 
24
- export interface IBaseEdgeModel extends Model.BaseModel {
27
+ export interface IBaseEdgeModel<P extends PropertiesType>
28
+ extends Model.BaseModel<P> {
25
29
  /**
26
30
  * model 基础类型,固定为 edge
27
31
  */
28
32
  readonly BaseType: ElementType.EDGE
33
+ properties: P
29
34
 
30
35
  sourceNodeId: string
31
36
  targetNodeId: string
@@ -44,7 +49,9 @@ export interface IBaseEdgeModel extends Model.BaseModel {
44
49
  arrowConfig?: LogicFlow.ArrowConfig
45
50
  }
46
51
 
47
- export class BaseEdgeModel implements IBaseEdgeModel {
52
+ export class BaseEdgeModel<P extends PropertiesType = PropertiesType>
53
+ implements IBaseEdgeModel<P>
54
+ {
48
55
  readonly BaseType = ElementType.EDGE
49
56
  static BaseType: ElementType = ElementType.EDGE
50
57
 
@@ -56,14 +63,15 @@ export class BaseEdgeModel implements IBaseEdgeModel {
56
63
  @observable startPoint!: Point
57
64
  @observable endPoint!: Point
58
65
 
59
- @observable text = {
66
+ @observable textMode = TextMode.TEXT
67
+ @observable text: Required<TextConfig> = {
60
68
  value: '',
61
69
  x: 0,
62
70
  y: 0,
63
71
  draggable: false,
64
72
  editable: true,
65
73
  }
66
- @observable properties: Record<string, unknown> = {}
74
+ @observable properties: P
67
75
  @observable points = ''
68
76
  @observable pointsList: Point[] = []
69
77
 
@@ -83,7 +91,6 @@ export class BaseEdgeModel implements IBaseEdgeModel {
83
91
  graphModel: GraphModel
84
92
  @observable zIndex: number = 0
85
93
  @observable state = ElementState.DEFAULT
86
-
87
94
  modelType = ModelType.EDGE
88
95
  additionStateData?: Model.AdditionStateDataType
89
96
 
@@ -102,11 +109,14 @@ export class BaseEdgeModel implements IBaseEdgeModel {
102
109
  };
103
110
  [propName: string]: unknown // 支持自定义
104
111
 
105
- constructor(data: EdgeConfig, graphModel: GraphModel) {
112
+ constructor(data: EdgeConfig<P>, graphModel: GraphModel) {
106
113
  this.graphModel = graphModel
114
+ this.properties = data.properties ?? ({} as P)
115
+
107
116
  this.initEdgeData(data)
108
117
  this.setAttributes()
109
118
  }
119
+
110
120
  /**
111
121
  * 初始化边数据
112
122
  * @overridable 支持重写
@@ -145,15 +155,18 @@ export class BaseEdgeModel implements IBaseEdgeModel {
145
155
  // 文本位置依赖于边上的所有拐点
146
156
  this.formatText(data)
147
157
  }
158
+
148
159
  /**
149
160
  * 设置model属性
150
161
  * @overridable 支持重写
151
162
  * 每次properties发生变化会触发
152
163
  */
153
164
  setAttributes() {}
165
+
154
166
  createId(): string | null {
155
167
  return null
156
168
  }
169
+
157
170
  /**
158
171
  * 自定义边样式
159
172
  *
@@ -166,6 +179,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
166
179
  ...this.style,
167
180
  }
168
181
  }
182
+
169
183
  /**
170
184
  * 自定义边调整点样式
171
185
  *
@@ -187,6 +201,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
187
201
  const { edgeText } = this.graphModel.theme
188
202
  return cloneDeep(edgeText)
189
203
  }
204
+
190
205
  /**
191
206
  * 自定义边动画样式
192
207
  *
@@ -204,6 +219,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
204
219
  const { edgeAnimation } = this.graphModel.theme
205
220
  return cloneDeep(edgeAnimation)
206
221
  }
222
+
207
223
  /**
208
224
  * 自定义边箭头样式
209
225
  *
@@ -229,6 +245,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
229
245
  ...arrow,
230
246
  }
231
247
  }
248
+
232
249
  /**
233
250
  * 自定义边被选中时展示其范围的矩形框样式
234
251
  *
@@ -247,6 +264,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
247
264
  const { outline } = graphModel.theme
248
265
  return cloneDeep(outline)
249
266
  }
267
+
250
268
  /**
251
269
  * 重新自定义文本位置
252
270
  *
@@ -258,18 +276,21 @@ export class BaseEdgeModel implements IBaseEdgeModel {
258
276
  y: 0,
259
277
  }
260
278
  }
279
+
261
280
  /**
262
281
  * 边的前一个节点
263
282
  */
264
283
  @computed get sourceNode() {
265
284
  return this.graphModel?.nodesMap[this.sourceNodeId]?.model
266
285
  }
286
+
267
287
  /**
268
288
  * 边的后一个节点
269
289
  */
270
290
  @computed get targetNode() {
271
291
  return this.graphModel?.nodesMap[this.targetNodeId]?.model
272
292
  }
293
+
273
294
  @computed get textPosition(): Point {
274
295
  return this.getTextPosition()
275
296
  }
@@ -346,28 +367,37 @@ export class BaseEdgeModel implements IBaseEdgeModel {
346
367
  })
347
368
  return position
348
369
  }
370
+
349
371
  /**
350
372
  * 获取当前边的properties
351
373
  */
352
374
  getProperties() {
353
375
  return toJS(this.properties)
354
376
  }
377
+
355
378
  /**
356
379
  * 获取被保存时返回的数据
357
380
  *
358
381
  * @overridable 支持重写
359
382
  */
360
383
  getData(): EdgeData {
361
- const { x, y, value } = this.text
384
+ let { properties } = this
385
+ if (isObservable(properties)) {
386
+ properties = toJS(properties)
387
+ }
362
388
  const data: EdgeData = {
363
389
  id: this.id,
364
390
  type: this.type,
391
+ properties,
365
392
  sourceNodeId: this.sourceNode.id,
366
393
  targetNodeId: this.targetNode.id,
367
394
  startPoint: assign({}, this.startPoint),
368
395
  endPoint: assign({}, this.endPoint),
369
- properties: toJS(this.properties),
370
396
  }
397
+ if (this.graphModel.overlapMode === OverlapMode.INCREASE) {
398
+ data.zIndex = this.zIndex
399
+ }
400
+ const { x, y, value } = this.text
371
401
  if (value) {
372
402
  data.text = {
373
403
  x,
@@ -375,11 +405,9 @@ export class BaseEdgeModel implements IBaseEdgeModel {
375
405
  value,
376
406
  }
377
407
  }
378
- if (this.graphModel.overlapMode === OverlapMode.INCREASE) {
379
- data.zIndex = this.zIndex
380
- }
381
408
  return data
382
409
  }
410
+
383
411
  /**
384
412
  * 获取边的数据
385
413
  *
@@ -391,6 +419,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
391
419
  getHistoryData(): EdgeData {
392
420
  return this.getData()
393
421
  }
422
+
394
423
  /**
395
424
  * 设置边的属性,会触发重新渲染
396
425
  * @param key 属性名
@@ -398,9 +427,15 @@ export class BaseEdgeModel implements IBaseEdgeModel {
398
427
  */
399
428
  @action
400
429
  setProperty(key: string, val: any): void {
401
- this.properties[key] = formatData(val)
430
+ const preProperties = toJS(this.properties)
431
+ this.properties = {
432
+ ...preProperties,
433
+ [key]: formatData(val),
434
+ }
435
+
402
436
  this.setAttributes()
403
437
  }
438
+
404
439
  /**
405
440
  * 删除边的属性,会触发重新渲染
406
441
  * @param key 属性名
@@ -410,10 +445,10 @@ export class BaseEdgeModel implements IBaseEdgeModel {
410
445
  delete this.properties[key]
411
446
  this.setAttributes()
412
447
  }
448
+
413
449
  /**
414
450
  * 设置边的属性,会触发重新渲染
415
- * @param key 属性名
416
- * @param val 属性值
451
+ * @param properties 要更新的 properties,会做合并
417
452
  */
418
453
  @action
419
454
  setProperties(properties: Record<string, any>): void {
@@ -423,6 +458,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
423
458
  }
424
459
  this.setAttributes()
425
460
  }
461
+
426
462
  /**
427
463
  * 修改边的id
428
464
  */
@@ -437,6 +473,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
437
473
  }
438
474
  this.id = id
439
475
  }
476
+
440
477
  /**
441
478
  * 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
442
479
  * 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
@@ -448,6 +485,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
448
485
  [key]: formatData(val),
449
486
  }
450
487
  }
488
+
451
489
  /**
452
490
  * 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
453
491
  * 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
@@ -459,6 +497,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
459
497
  ...formatData(styles),
460
498
  }
461
499
  }
500
+
462
501
  /**
463
502
  * 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
464
503
  * 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
@@ -470,32 +509,50 @@ export class BaseEdgeModel implements IBaseEdgeModel {
470
509
  }
471
510
  }
472
511
 
512
+ /**
513
+ * 设置当前元素的文本模式
514
+ * @param mode
515
+ */
516
+ @action setTextMode(mode: TextMode) {
517
+ this.textMode = mode
518
+ }
519
+
473
520
  /**
474
521
  * 内部方法,处理初始化文本格式
475
522
  */
476
523
  @action formatText(data: EdgeConfig) {
477
- // 暂时处理,只传入text的情况
478
524
  const { x, y } = this.textPosition
479
- if (!data.text || typeof data.text === 'string') {
480
- this.text = {
481
- value: data.text || '',
482
- x,
483
- y,
484
- draggable: this.text.draggable,
485
- editable: this.text.editable,
486
- }
487
- return
525
+ const { text } = data
526
+ let textConfig: Required<TextConfig> = {
527
+ value: '',
528
+ x,
529
+ y,
530
+ draggable: false,
531
+ editable: true,
488
532
  }
489
533
 
490
- if (Object.prototype.toString.call(data.text) === '[object Object]') {
491
- this.text = {
492
- x: data.text.x || x,
493
- y: data.text.y || y,
494
- value: data.text.value || '',
495
- draggable: this.text.draggable,
496
- editable: this.text.editable,
534
+ if (text) {
535
+ if (typeof text === 'string') {
536
+ textConfig = {
537
+ ...textConfig,
538
+ value: text,
539
+ }
540
+ } else {
541
+ textConfig = {
542
+ ...textConfig,
543
+ x: text.x ?? x,
544
+ y: text.y ?? y,
545
+ value: text.value ?? '',
546
+ }
547
+ if (!isUndefined(text.draggable)) {
548
+ textConfig.draggable = text.draggable
549
+ }
550
+ if (!isUndefined(text.editable)) {
551
+ textConfig.editable = text.editable
552
+ }
497
553
  }
498
554
  }
555
+ this.text = textConfig
499
556
  }
500
557
  /**
501
558
  * 重置文本位置
@@ -505,21 +562,21 @@ export class BaseEdgeModel implements IBaseEdgeModel {
505
562
  this.text.x = x
506
563
  this.text.y = y
507
564
  }
565
+
508
566
  /**
509
567
  * 移动边上的文本
510
568
  */
511
569
  @action moveText(deltaX: number, deltaY: number): void {
512
- if (this.text) {
513
- const { x, y, value, draggable, editable } = this.text
514
- this.text = {
515
- value,
516
- draggable,
517
- x: x + deltaX,
518
- y: y + deltaY,
519
- editable,
520
- }
570
+ const { x, y, value, draggable, editable } = this.text
571
+ this.text = {
572
+ value,
573
+ editable,
574
+ draggable,
575
+ x: x + deltaX,
576
+ y: y + deltaY,
521
577
  }
522
578
  }
579
+
523
580
  /**
524
581
  * 设置文本位置和值
525
582
  */
@@ -528,6 +585,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
528
585
  assign(this.text, textConfig)
529
586
  }
530
587
  }
588
+
531
589
  /**
532
590
  * 更新文本的值
533
591
  */
@@ -537,6 +595,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
537
595
  value,
538
596
  }
539
597
  }
598
+
540
599
  /**
541
600
  * 内部方法,计算边的起点和终点和其对于的锚点Id
542
601
  */
@@ -602,6 +661,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
602
661
  setHitable(flag = true): void {
603
662
  this.isHitable = flag
604
663
  }
664
+
605
665
  @action
606
666
  setHittable(flag = true): void {
607
667
  this.isHittable = flag
@@ -664,16 +724,19 @@ export class BaseEdgeModel implements IBaseEdgeModel {
664
724
  updateAttributes(attributes) {
665
725
  assign(this, attributes)
666
726
  }
727
+
667
728
  // 获取边调整的起点
668
729
  @action
669
730
  getAdjustStart() {
670
731
  return this.startPoint
671
732
  }
733
+
672
734
  // 获取边调整的终点
673
735
  @action
674
736
  getAdjustEnd() {
675
737
  return this.endPoint
676
738
  }
739
+
677
740
  // 起终点拖拽调整过程中,进行直线路径更新
678
741
  @action
679
742
  updateAfterAdjustStartAndEnd({
@@ -1,11 +1,11 @@
1
- import { cloneDeep } from 'lodash-es'
1
+ import { assign, cloneDeep } from 'lodash-es'
2
2
  import { action, observable } from 'mobx'
3
3
  import BaseEdgeModel from './BaseEdgeModel'
4
4
  import { BaseNodeModel } from '../node'
5
5
  import LogicFlow from '../../LogicFlow'
6
+ import GraphModel from '../GraphModel'
6
7
  import { ModelType } from '../../constant'
7
8
  import { getBezierControlPoints, IBezierControls } from '../../util'
8
- import GraphModel from '../GraphModel'
9
9
 
10
10
  import Point = LogicFlow.Point
11
11
  import EdgeConfig = LogicFlow.EdgeConfig
@@ -15,14 +15,11 @@ export class BezierEdgeModel extends BaseEdgeModel {
15
15
 
16
16
  offset!: number
17
17
  @observable path = ''
18
-
19
18
  constructor(data: EdgeConfig, graphModel: GraphModel) {
20
19
  super(data, graphModel)
21
-
22
20
  this.initEdgeData(data)
23
21
  this.setAttributes()
24
22
  }
25
-
26
23
  initEdgeData(data: EdgeConfig): void {
27
24
  this.offset = 100
28
25
  super.initEdgeData(data)
@@ -30,9 +27,11 @@ export class BezierEdgeModel extends BaseEdgeModel {
30
27
  getEdgeStyle() {
31
28
  const { bezier } = this.graphModel.theme
32
29
  const style = super.getEdgeStyle()
30
+ const { style: customStyle = {} } = this.properties
33
31
  return {
34
32
  ...style,
35
33
  ...cloneDeep(bezier),
34
+ ...cloneDeep(customStyle),
36
35
  }
37
36
  }
38
37
  getTextPosition(): Point {
@@ -155,7 +154,9 @@ export class BezierEdgeModel extends BaseEdgeModel {
155
154
  this.pointsList[2] = anchor
156
155
  }
157
156
  this.path = this.getPath(this.pointsList)
158
- this.setText(Object.assign({}, this.text, this.textPosition))
157
+ if (this.text?.value) {
158
+ this.setText(assign({}, this.text, this.textPosition))
159
+ }
159
160
  }
160
161
  // 获取边调整的起点
161
162
  @action
@@ -10,9 +10,11 @@ export class LineEdgeModel extends BaseEdgeModel {
10
10
  getEdgeStyle() {
11
11
  const { line } = this.graphModel.theme
12
12
  const style = super.getEdgeStyle()
13
+ const { style: customStyle = {} } = this.properties
13
14
  return {
14
15
  ...style,
15
16
  ...cloneDeep(line),
17
+ ...cloneDeep(customStyle),
16
18
  }
17
19
  }
18
20
  getTextPosition(): Point {
@@ -1,4 +1,4 @@
1
- import { cloneDeep } from 'lodash-es'
1
+ import { assign, cloneDeep } from 'lodash-es'
2
2
  import { observable, action } from 'mobx'
3
3
  import { BaseEdgeModel } from '.'
4
4
  import { BaseNodeModel, RectNodeModel, CircleNodeModel, Model } from '..'
@@ -25,7 +25,7 @@ import {
25
25
  import Point = LogicFlow.Point
26
26
  import Position = LogicFlow.Position
27
27
  import AppendConfig = LogicFlow.AppendConfig
28
- import ArchorConfig = Model.AnchorConfig
28
+ import AnchorConfig = Model.AnchorConfig
29
29
 
30
30
  export class PolylineEdgeModel extends BaseEdgeModel {
31
31
  modelType = ModelType.POLYLINE_EDGE
@@ -41,22 +41,22 @@ export class PolylineEdgeModel extends BaseEdgeModel {
41
41
  getEdgeStyle() {
42
42
  const { polyline } = this.graphModel.theme
43
43
  const style = super.getEdgeStyle()
44
+ const { style: customStyle = {} } = this.properties
44
45
  return {
45
46
  ...style,
46
47
  ...cloneDeep(polyline),
48
+ ...cloneDeep(customStyle),
47
49
  }
48
50
  }
49
51
 
50
52
  getTextPosition() {
51
- // 在文案为空的情况下,文案位置为双击位置
53
+ // 在文本为空的情况下,文本位置为双击位置
52
54
  const textValue = this.text?.value
53
55
  if (this.dbClickPosition && !textValue) {
54
56
  const { x, y } = this.dbClickPosition
55
- return {
56
- x,
57
- y,
58
- }
57
+ return { x, y }
59
58
  }
59
+ // 文本不为空或者没有双击位置时,取最长边的中点作为文本位置
60
60
  const currentPositionList = points2PointsList(this.points)
61
61
  const [p1, p2] = getLongestEdge(currentPositionList)
62
62
  return {
@@ -69,9 +69,9 @@ export class PolylineEdgeModel extends BaseEdgeModel {
69
69
  getAfterAnchor(
70
70
  direction: SegmentDirection,
71
71
  position: Position,
72
- anchorList: ArchorConfig[],
72
+ anchorList: AnchorConfig[],
73
73
  ) {
74
- let anchor: ArchorConfig
74
+ let anchor: AnchorConfig
75
75
  let minDistance: number
76
76
  anchorList.forEach((item) => {
77
77
  let distanceX: number
@@ -186,7 +186,7 @@ export class PolylineEdgeModel extends BaseEdgeModel {
186
186
  direction: SegmentDirection,
187
187
  positionType: string,
188
188
  position: Position,
189
- anchorList: ArchorConfig[],
189
+ anchorList: AnchorConfig[],
190
190
  draggingPointList: Point[],
191
191
  ) {
192
192
  const pointList = draggingPointList.map((i) => i)
@@ -438,10 +438,13 @@ export class PolylineEdgeModel extends BaseEdgeModel {
438
438
  }
439
439
  this.updatePointsAfterDrag(draggingPointList)
440
440
  this.draggingPointList = draggingPointList
441
- this.setText(Object.assign({}, this.text, this.textPosition))
441
+ // TODO: 判断该逻辑是否需要
442
+ if (this.text?.value) {
443
+ this.setText(assign({}, this.text, this.textPosition))
444
+ }
442
445
  return {
443
- start: Object.assign({}, pointsList[startIndex]),
444
- end: Object.assign({}, pointsList[endIndex]),
446
+ start: assign({}, pointsList[startIndex]),
447
+ end: assign({}, pointsList[endIndex]),
445
448
  startIndex,
446
449
  endIndex,
447
450
  direction,
@@ -571,10 +574,13 @@ export class PolylineEdgeModel extends BaseEdgeModel {
571
574
  this.updatePointsAfterDrag(draggingPointList)
572
575
  this.draggingPointList = draggingPointList
573
576
  }
574
- this.setText(Object.assign({}, this.text, this.textPosition))
577
+ // TODO: 确认该判断逻辑是否需要
578
+ if (this.text?.value) {
579
+ this.setText(assign({}, this.text, this.textPosition))
580
+ }
575
581
  return {
576
- start: Object.assign({}, pointsList[startIndex]),
577
- end: Object.assign({}, pointsList[endIndex]),
582
+ start: assign({}, pointsList[startIndex]),
583
+ end: assign({}, pointsList[endIndex]),
578
584
  startIndex,
579
585
  endIndex,
580
586
  direction,
@@ -591,9 +597,9 @@ export class PolylineEdgeModel extends BaseEdgeModel {
591
597
  this.draggingPointList = []
592
598
  // 更新起终点
593
599
  const startPoint = pointsList[0]
594
- this.startPoint = Object.assign({}, startPoint)
600
+ this.startPoint = assign({}, startPoint)
595
601
  const endPoint = pointsList[pointsList.length - 1]
596
- this.endPoint = Object.assign({}, endPoint)
602
+ this.endPoint = assign({}, endPoint)
597
603
  }
598
604
  this.isDragging = false
599
605
  }