@logicflow/core 2.0.0-beta.1 → 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 (469) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +9 -9
  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 +9 -3
  6. package/es/LogicFlow.d.ts +88 -40
  7. package/es/LogicFlow.js +38 -33
  8. package/es/LogicFlow.js.map +1 -1
  9. package/es/algorithm/edge.js.map +1 -1
  10. package/es/algorithm/index.d.ts +2 -0
  11. package/es/algorithm/index.js +2 -0
  12. package/es/algorithm/index.js.map +1 -1
  13. package/es/algorithm/outline.d.ts +1 -1
  14. package/es/common/drag.d.ts +51 -0
  15. package/es/common/drag.js +145 -0
  16. package/es/common/drag.js.map +1 -0
  17. package/es/common/history.d.ts +28 -0
  18. package/es/common/history.js +92 -0
  19. package/es/common/history.js.map +1 -0
  20. package/es/common/index.d.ts +5 -0
  21. package/es/common/index.js +6 -0
  22. package/es/common/index.js.map +1 -0
  23. package/es/common/keyboard.d.ts +34 -0
  24. package/es/common/keyboard.js +80 -0
  25. package/es/common/keyboard.js.map +1 -0
  26. package/es/common/matrix.d.ts +30 -0
  27. package/es/common/matrix.js +155 -0
  28. package/es/common/matrix.js.map +1 -0
  29. package/es/common/vector.d.ts +23 -0
  30. package/es/common/vector.js +97 -0
  31. package/es/common/vector.js.map +1 -0
  32. package/es/constant/index.d.ts +39 -2
  33. package/es/constant/index.js +41 -1
  34. package/es/constant/index.js.map +1 -1
  35. package/es/event/eventArgs.d.ts +103 -25
  36. package/es/event/eventEmitter.d.ts +2 -2
  37. package/es/event/eventEmitter.js +0 -1
  38. package/es/event/eventEmitter.js.map +1 -1
  39. package/es/index.d.ts +6 -1
  40. package/es/index.js +6 -1
  41. package/es/index.js.map +1 -1
  42. package/es/keyboard/index.d.ts +1 -0
  43. package/es/keyboard/index.js +1 -0
  44. package/es/keyboard/index.js.map +1 -1
  45. package/es/keyboard/shortcut.d.ts +8 -0
  46. package/es/keyboard/shortcut.js +70 -8
  47. package/es/keyboard/shortcut.js.map +1 -1
  48. package/es/model/BaseModel.d.ts +16 -7
  49. package/es/model/EditConfigModel.d.ts +97 -36
  50. package/es/model/EditConfigModel.js +169 -82
  51. package/es/model/EditConfigModel.js.map +1 -1
  52. package/es/model/GraphModel.d.ts +36 -14
  53. package/es/model/GraphModel.js +60 -10
  54. package/es/model/GraphModel.js.map +1 -1
  55. package/es/model/SnaplineModel.d.ts +2 -0
  56. package/es/model/TransformModel.js +1 -1
  57. package/es/model/TransformModel.js.map +1 -1
  58. package/es/model/edge/BaseEdgeModel.d.ts +21 -17
  59. package/es/model/edge/BaseEdgeModel.js +64 -42
  60. package/es/model/edge/BaseEdgeModel.js.map +1 -1
  61. package/es/model/edge/BezierEdgeModel.d.ts +5 -3
  62. package/es/model/edge/BezierEdgeModel.js +7 -3
  63. package/es/model/edge/BezierEdgeModel.js.map +1 -1
  64. package/es/model/edge/LineEdgeModel.d.ts +2 -0
  65. package/es/model/edge/LineEdgeModel.js +2 -1
  66. package/es/model/edge/LineEdgeModel.js.map +1 -1
  67. package/es/model/edge/PolylineEdgeModel.d.ts +5 -3
  68. package/es/model/edge/PolylineEdgeModel.js +22 -15
  69. package/es/model/edge/PolylineEdgeModel.js.map +1 -1
  70. package/es/model/node/BaseNodeModel.d.ts +42 -14
  71. package/es/model/node/BaseNodeModel.js +62 -48
  72. package/es/model/node/BaseNodeModel.js.map +1 -1
  73. package/es/model/node/CircleNodeModel.d.ts +4 -3
  74. package/es/model/node/CircleNodeModel.js +4 -7
  75. package/es/model/node/CircleNodeModel.js.map +1 -1
  76. package/es/model/node/DiamondNodeModel.d.ts +5 -4
  77. package/es/model/node/DiamondNodeModel.js +4 -6
  78. package/es/model/node/DiamondNodeModel.js.map +1 -1
  79. package/es/model/node/EllipseNodeModel.d.ts +5 -4
  80. package/es/model/node/EllipseNodeModel.js +4 -6
  81. package/es/model/node/EllipseNodeModel.js.map +1 -1
  82. package/es/model/node/HtmlNodeModel.d.ts +4 -5
  83. package/es/model/node/HtmlNodeModel.js +2 -12
  84. package/es/model/node/HtmlNodeModel.js.map +1 -1
  85. package/es/model/node/PolygonNodeModel.d.ts +5 -4
  86. package/es/model/node/PolygonNodeModel.js +4 -7
  87. package/es/model/node/PolygonNodeModel.js.map +1 -1
  88. package/es/model/node/RectNodeModel.d.ts +7 -5
  89. package/es/model/node/RectNodeModel.js +10 -7
  90. package/es/model/node/RectNodeModel.js.map +1 -1
  91. package/es/model/node/TextNodeModel.d.ts +17 -9
  92. package/es/model/node/TextNodeModel.js +2 -1
  93. package/es/model/node/TextNodeModel.js.map +1 -1
  94. package/es/options.d.ts +6 -3
  95. package/es/options.js +2 -11
  96. package/es/options.js.map +1 -1
  97. package/es/tool/MultipleSelectTool.d.ts +1 -1
  98. package/es/tool/MultipleSelectTool.js +5 -5
  99. package/es/tool/MultipleSelectTool.js.map +1 -1
  100. package/es/tool/TextEditTool.d.ts +3 -3
  101. package/es/tool/TextEditTool.js +2 -2
  102. package/es/tool/TextEditTool.js.map +1 -1
  103. package/es/tool/index.d.ts +24 -2
  104. package/es/tool/index.js +82 -2
  105. package/es/tool/index.js.map +1 -1
  106. package/es/util/drag.d.ts +5 -5
  107. package/es/util/drag.js +3 -1
  108. package/es/util/drag.js.map +1 -1
  109. package/es/util/edge.d.ts +9 -2
  110. package/es/util/edge.js +23 -12
  111. package/es/util/edge.js.map +1 -1
  112. package/es/util/index.d.ts +1 -0
  113. package/es/util/index.js +1 -0
  114. package/es/util/index.js.map +1 -1
  115. package/es/util/node.d.ts +8 -7
  116. package/es/util/node.js +26 -7
  117. package/es/util/node.js.map +1 -1
  118. package/es/util/resize.d.ts +32 -0
  119. package/es/util/resize.js +197 -0
  120. package/es/util/resize.js.map +1 -0
  121. package/es/view/Anchor.d.ts +6 -7
  122. package/es/view/Anchor.js +6 -3
  123. package/es/view/Anchor.js.map +1 -1
  124. package/es/view/Control.d.ts +1 -1
  125. package/es/view/Control.js +88 -39
  126. package/es/view/Control.js.map +1 -1
  127. package/es/view/Graph.d.ts +5 -1
  128. package/es/view/Graph.js +43 -3
  129. package/es/view/Graph.js.map +1 -1
  130. package/es/view/Rotate.js +2 -1
  131. package/es/view/Rotate.js.map +1 -1
  132. package/es/view/behavior/index.d.ts +2 -0
  133. package/es/view/behavior/index.js +3 -0
  134. package/es/view/behavior/index.js.map +1 -0
  135. package/es/view/behavior/snapline.d.ts +3 -0
  136. package/es/{tool → view/behavior}/snapline.js +0 -1
  137. package/es/view/behavior/snapline.js.map +1 -0
  138. package/es/view/edge/AdjustPoint.js +12 -23
  139. package/es/view/edge/AdjustPoint.js.map +1 -1
  140. package/es/view/edge/BaseEdge.d.ts +2 -2
  141. package/es/view/edge/BaseEdge.js +30 -22
  142. package/es/view/edge/BaseEdge.js.map +1 -1
  143. package/es/view/node/BaseNode.d.ts +4 -4
  144. package/es/view/node/BaseNode.js +33 -24
  145. package/es/view/node/BaseNode.js.map +1 -1
  146. package/es/view/node/CircleNode.d.ts +1 -1
  147. package/es/view/node/CircleNode.js.map +1 -1
  148. package/es/view/node/DiamondNode.d.ts +1 -1
  149. package/es/view/node/DiamondNode.js.map +1 -1
  150. package/es/view/node/EllipseNode.d.ts +1 -1
  151. package/es/view/node/EllipseNode.js.map +1 -1
  152. package/es/view/node/HtmlNode.d.ts +1 -1
  153. package/es/view/node/HtmlNode.js +2 -2
  154. package/es/view/node/HtmlNode.js.map +1 -1
  155. package/es/view/node/PolygonNode.d.ts +1 -1
  156. package/es/view/node/PolygonNode.js.map +1 -1
  157. package/es/view/node/RectNode.d.ts +1 -1
  158. package/es/view/node/RectNode.js.map +1 -1
  159. package/es/view/node/TextNode.d.ts +1 -1
  160. package/es/view/node/TextNode.js +1 -1
  161. package/es/view/node/TextNode.js.map +1 -1
  162. package/es/view/overlay/CanvasOverlay.js +5 -4
  163. package/es/view/overlay/CanvasOverlay.js.map +1 -1
  164. package/es/view/overlay/ToolOverlay.d.ts +1 -1
  165. package/es/view/overlay/ToolOverlay.js +1 -1
  166. package/es/view/overlay/ToolOverlay.js.map +1 -1
  167. package/es/view/shape/Circle.d.ts +9 -1
  168. package/es/view/shape/Circle.js +5 -5
  169. package/es/view/shape/Circle.js.map +1 -1
  170. package/es/view/shape/Ellipse.d.ts +10 -1
  171. package/es/view/shape/Ellipse.js +5 -5
  172. package/es/view/shape/Ellipse.js.map +1 -1
  173. package/es/view/shape/Line.d.ts +14 -1
  174. package/es/view/shape/Line.js +5 -7
  175. package/es/view/shape/Line.js.map +1 -1
  176. package/es/view/shape/Path.d.ts +3 -2
  177. package/es/view/shape/Path.js +3 -3
  178. package/es/view/shape/Path.js.map +1 -1
  179. package/es/view/shape/Polygon.d.ts +5 -3
  180. package/es/view/shape/Polygon.js +6 -6
  181. package/es/view/shape/Polygon.js.map +1 -1
  182. package/es/view/shape/Polyline.d.ts +7 -1
  183. package/es/view/shape/Polyline.js +8 -6
  184. package/es/view/shape/Polyline.js.map +1 -1
  185. package/es/view/shape/Rect.d.ts +11 -13
  186. package/es/view/shape/Rect.js +6 -9
  187. package/es/view/shape/Rect.js.map +1 -1
  188. package/es/view/shape/Text.d.ts +19 -1
  189. package/es/view/shape/Text.js +28 -21
  190. package/es/view/shape/Text.js.map +1 -1
  191. package/es/view/text/BaseText.d.ts +12 -15
  192. package/es/view/text/BaseText.js +43 -29
  193. package/es/view/text/BaseText.js.map +1 -1
  194. package/es/view/text/LineText.d.ts +19 -7
  195. package/es/view/text/LineText.js +62 -54
  196. package/es/view/text/LineText.js.map +1 -1
  197. package/lib/LogicFlow.d.ts +88 -40
  198. package/lib/LogicFlow.js +40 -35
  199. package/lib/LogicFlow.js.map +1 -1
  200. package/lib/algorithm/edge.js.map +1 -1
  201. package/lib/algorithm/index.d.ts +2 -0
  202. package/lib/algorithm/index.js +17 -1
  203. package/lib/algorithm/index.js.map +1 -1
  204. package/lib/algorithm/outline.d.ts +1 -1
  205. package/lib/common/drag.d.ts +51 -0
  206. package/lib/common/drag.js +148 -0
  207. package/lib/common/drag.js.map +1 -0
  208. package/lib/common/history.d.ts +28 -0
  209. package/lib/common/history.js +95 -0
  210. package/lib/common/history.js.map +1 -0
  211. package/lib/common/index.d.ts +5 -0
  212. package/lib/common/index.js +22 -0
  213. package/lib/common/index.js.map +1 -0
  214. package/lib/common/keyboard.d.ts +34 -0
  215. package/lib/common/keyboard.js +86 -0
  216. package/lib/common/keyboard.js.map +1 -0
  217. package/lib/common/matrix.d.ts +30 -0
  218. package/lib/common/matrix.js +158 -0
  219. package/lib/common/matrix.js.map +1 -0
  220. package/lib/common/vector.d.ts +23 -0
  221. package/lib/common/vector.js +101 -0
  222. package/lib/common/vector.js.map +1 -0
  223. package/lib/constant/index.d.ts +39 -2
  224. package/lib/constant/index.js +42 -2
  225. package/lib/constant/index.js.map +1 -1
  226. package/lib/event/eventArgs.d.ts +103 -25
  227. package/lib/event/eventEmitter.d.ts +2 -2
  228. package/lib/event/eventEmitter.js +0 -1
  229. package/lib/event/eventEmitter.js.map +1 -1
  230. package/lib/index.d.ts +6 -1
  231. package/lib/index.js +7 -2
  232. package/lib/index.js.map +1 -1
  233. package/lib/keyboard/index.d.ts +1 -0
  234. package/lib/keyboard/index.js +15 -0
  235. package/lib/keyboard/index.js.map +1 -1
  236. package/lib/keyboard/shortcut.d.ts +8 -0
  237. package/lib/keyboard/shortcut.js +75 -9
  238. package/lib/keyboard/shortcut.js.map +1 -1
  239. package/lib/model/BaseModel.d.ts +16 -7
  240. package/lib/model/EditConfigModel.d.ts +97 -36
  241. package/lib/model/EditConfigModel.js +168 -81
  242. package/lib/model/EditConfigModel.js.map +1 -1
  243. package/lib/model/GraphModel.d.ts +36 -14
  244. package/lib/model/GraphModel.js +59 -9
  245. package/lib/model/GraphModel.js.map +1 -1
  246. package/lib/model/SnaplineModel.d.ts +2 -0
  247. package/lib/model/TransformModel.js +1 -1
  248. package/lib/model/TransformModel.js.map +1 -1
  249. package/lib/model/edge/BaseEdgeModel.d.ts +21 -17
  250. package/lib/model/edge/BaseEdgeModel.js +61 -39
  251. package/lib/model/edge/BaseEdgeModel.js.map +1 -1
  252. package/lib/model/edge/BezierEdgeModel.d.ts +5 -3
  253. package/lib/model/edge/BezierEdgeModel.js +6 -2
  254. package/lib/model/edge/BezierEdgeModel.js.map +1 -1
  255. package/lib/model/edge/LineEdgeModel.d.ts +2 -0
  256. package/lib/model/edge/LineEdgeModel.js +2 -1
  257. package/lib/model/edge/LineEdgeModel.js.map +1 -1
  258. package/lib/model/edge/PolylineEdgeModel.d.ts +5 -3
  259. package/lib/model/edge/PolylineEdgeModel.js +21 -14
  260. package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
  261. package/lib/model/node/BaseNodeModel.d.ts +42 -14
  262. package/lib/model/node/BaseNodeModel.js +60 -46
  263. package/lib/model/node/BaseNodeModel.js.map +1 -1
  264. package/lib/model/node/CircleNodeModel.d.ts +4 -3
  265. package/lib/model/node/CircleNodeModel.js +4 -7
  266. package/lib/model/node/CircleNodeModel.js.map +1 -1
  267. package/lib/model/node/DiamondNodeModel.d.ts +5 -4
  268. package/lib/model/node/DiamondNodeModel.js +4 -6
  269. package/lib/model/node/DiamondNodeModel.js.map +1 -1
  270. package/lib/model/node/EllipseNodeModel.d.ts +5 -4
  271. package/lib/model/node/EllipseNodeModel.js +4 -6
  272. package/lib/model/node/EllipseNodeModel.js.map +1 -1
  273. package/lib/model/node/HtmlNodeModel.d.ts +4 -5
  274. package/lib/model/node/HtmlNodeModel.js +2 -12
  275. package/lib/model/node/HtmlNodeModel.js.map +1 -1
  276. package/lib/model/node/PolygonNodeModel.d.ts +5 -4
  277. package/lib/model/node/PolygonNodeModel.js +4 -7
  278. package/lib/model/node/PolygonNodeModel.js.map +1 -1
  279. package/lib/model/node/RectNodeModel.d.ts +7 -5
  280. package/lib/model/node/RectNodeModel.js +10 -7
  281. package/lib/model/node/RectNodeModel.js.map +1 -1
  282. package/lib/model/node/TextNodeModel.d.ts +17 -9
  283. package/lib/model/node/TextNodeModel.js +2 -1
  284. package/lib/model/node/TextNodeModel.js.map +1 -1
  285. package/lib/options.d.ts +6 -3
  286. package/lib/options.js +2 -11
  287. package/lib/options.js.map +1 -1
  288. package/lib/tool/MultipleSelectTool.d.ts +1 -1
  289. package/lib/tool/MultipleSelectTool.js +5 -5
  290. package/lib/tool/MultipleSelectTool.js.map +1 -1
  291. package/lib/tool/TextEditTool.d.ts +3 -3
  292. package/lib/tool/TextEditTool.js +4 -4
  293. package/lib/tool/TextEditTool.js.map +1 -1
  294. package/lib/tool/index.d.ts +24 -2
  295. package/lib/tool/index.js +85 -15
  296. package/lib/tool/index.js.map +1 -1
  297. package/lib/util/drag.d.ts +5 -5
  298. package/lib/util/drag.js +3 -1
  299. package/lib/util/drag.js.map +1 -1
  300. package/lib/util/edge.d.ts +9 -2
  301. package/lib/util/edge.js +27 -15
  302. package/lib/util/edge.js.map +1 -1
  303. package/lib/util/index.d.ts +1 -0
  304. package/lib/util/index.js +1 -0
  305. package/lib/util/index.js.map +1 -1
  306. package/lib/util/node.d.ts +8 -7
  307. package/lib/util/node.js +28 -9
  308. package/lib/util/node.js.map +1 -1
  309. package/lib/util/resize.d.ts +32 -0
  310. package/lib/util/resize.js +204 -0
  311. package/lib/util/resize.js.map +1 -0
  312. package/lib/view/Anchor.d.ts +6 -7
  313. package/lib/view/Anchor.js +5 -2
  314. package/lib/view/Anchor.js.map +1 -1
  315. package/lib/view/Control.d.ts +1 -1
  316. package/lib/view/Control.js +87 -38
  317. package/lib/view/Control.js.map +1 -1
  318. package/lib/view/Graph.d.ts +5 -1
  319. package/lib/view/Graph.js +42 -2
  320. package/lib/view/Graph.js.map +1 -1
  321. package/lib/view/Rotate.js +2 -1
  322. package/lib/view/Rotate.js.map +1 -1
  323. package/lib/view/behavior/index.d.ts +2 -0
  324. package/lib/view/behavior/index.js +19 -0
  325. package/lib/view/behavior/index.js.map +1 -0
  326. package/lib/view/behavior/snapline.d.ts +3 -0
  327. package/lib/{tool → view/behavior}/snapline.js +0 -1
  328. package/lib/view/behavior/snapline.js.map +1 -0
  329. package/lib/view/edge/AdjustPoint.js +11 -22
  330. package/lib/view/edge/AdjustPoint.js.map +1 -1
  331. package/lib/view/edge/BaseEdge.d.ts +2 -2
  332. package/lib/view/edge/BaseEdge.js +29 -21
  333. package/lib/view/edge/BaseEdge.js.map +1 -1
  334. package/lib/view/node/BaseNode.d.ts +4 -4
  335. package/lib/view/node/BaseNode.js +32 -23
  336. package/lib/view/node/BaseNode.js.map +1 -1
  337. package/lib/view/node/CircleNode.d.ts +1 -1
  338. package/lib/view/node/CircleNode.js.map +1 -1
  339. package/lib/view/node/DiamondNode.d.ts +1 -1
  340. package/lib/view/node/DiamondNode.js.map +1 -1
  341. package/lib/view/node/EllipseNode.d.ts +1 -1
  342. package/lib/view/node/EllipseNode.js.map +1 -1
  343. package/lib/view/node/HtmlNode.d.ts +1 -1
  344. package/lib/view/node/HtmlNode.js +2 -2
  345. package/lib/view/node/HtmlNode.js.map +1 -1
  346. package/lib/view/node/PolygonNode.d.ts +1 -1
  347. package/lib/view/node/PolygonNode.js.map +1 -1
  348. package/lib/view/node/RectNode.d.ts +1 -1
  349. package/lib/view/node/RectNode.js.map +1 -1
  350. package/lib/view/node/TextNode.d.ts +1 -1
  351. package/lib/view/node/TextNode.js +1 -1
  352. package/lib/view/node/TextNode.js.map +1 -1
  353. package/lib/view/overlay/CanvasOverlay.js +5 -4
  354. package/lib/view/overlay/CanvasOverlay.js.map +1 -1
  355. package/lib/view/overlay/ToolOverlay.d.ts +1 -1
  356. package/lib/view/overlay/ToolOverlay.js +1 -1
  357. package/lib/view/overlay/ToolOverlay.js.map +1 -1
  358. package/lib/view/shape/Circle.d.ts +9 -1
  359. package/lib/view/shape/Circle.js +5 -5
  360. package/lib/view/shape/Circle.js.map +1 -1
  361. package/lib/view/shape/Ellipse.d.ts +10 -1
  362. package/lib/view/shape/Ellipse.js +5 -5
  363. package/lib/view/shape/Ellipse.js.map +1 -1
  364. package/lib/view/shape/Line.d.ts +14 -1
  365. package/lib/view/shape/Line.js +5 -7
  366. package/lib/view/shape/Line.js.map +1 -1
  367. package/lib/view/shape/Path.d.ts +3 -2
  368. package/lib/view/shape/Path.js +3 -3
  369. package/lib/view/shape/Path.js.map +1 -1
  370. package/lib/view/shape/Polygon.d.ts +5 -3
  371. package/lib/view/shape/Polygon.js +6 -6
  372. package/lib/view/shape/Polygon.js.map +1 -1
  373. package/lib/view/shape/Polyline.d.ts +7 -1
  374. package/lib/view/shape/Polyline.js +8 -6
  375. package/lib/view/shape/Polyline.js.map +1 -1
  376. package/lib/view/shape/Rect.d.ts +11 -13
  377. package/lib/view/shape/Rect.js +6 -9
  378. package/lib/view/shape/Rect.js.map +1 -1
  379. package/lib/view/shape/Text.d.ts +19 -1
  380. package/lib/view/shape/Text.js +29 -21
  381. package/lib/view/shape/Text.js.map +1 -1
  382. package/lib/view/text/BaseText.d.ts +12 -15
  383. package/lib/view/text/BaseText.js +46 -29
  384. package/lib/view/text/BaseText.js.map +1 -1
  385. package/lib/view/text/LineText.d.ts +19 -7
  386. package/lib/view/text/LineText.js +62 -57
  387. package/lib/view/text/LineText.js.map +1 -1
  388. package/package.json +2 -1
  389. package/src/LogicFlow.tsx +163 -79
  390. package/src/algorithm/edge.ts +1 -0
  391. package/src/algorithm/index.ts +2 -0
  392. package/src/algorithm/outline.ts +2 -2
  393. package/src/common/drag.ts +219 -0
  394. package/src/common/history.ts +108 -0
  395. package/src/common/index.ts +6 -0
  396. package/src/common/keyboard.ts +108 -0
  397. package/src/common/matrix.ts +122 -0
  398. package/src/common/vector.ts +93 -0
  399. package/src/constant/index.ts +43 -1
  400. package/src/event/eventArgs.ts +173 -34
  401. package/src/event/eventEmitter.ts +2 -3
  402. package/src/index.ts +6 -1
  403. package/src/keyboard/index.ts +2 -0
  404. package/src/keyboard/shortcut.ts +79 -8
  405. package/src/model/BaseModel.ts +18 -7
  406. package/src/model/EditConfigModel.ts +209 -97
  407. package/src/model/GraphModel.ts +64 -9
  408. package/src/model/TransformModel.ts +1 -1
  409. package/src/model/edge/BaseEdgeModel.ts +75 -44
  410. package/src/model/edge/BezierEdgeModel.ts +7 -6
  411. package/src/model/edge/LineEdgeModel.ts +2 -0
  412. package/src/model/edge/PolylineEdgeModel.ts +24 -18
  413. package/src/model/node/BaseNodeModel.ts +72 -47
  414. package/src/model/node/CircleNodeModel.ts +8 -7
  415. package/src/model/node/DiamondNodeModel.ts +9 -6
  416. package/src/model/node/EllipseNodeModel.ts +9 -6
  417. package/src/model/node/HtmlNodeModel.ts +8 -7
  418. package/src/model/node/PolygonNodeModel.ts +9 -7
  419. package/src/model/node/RectNodeModel.ts +16 -8
  420. package/src/model/node/TextNodeModel.ts +14 -1
  421. package/src/options.ts +11 -15
  422. package/src/tool/MultipleSelectTool.tsx +6 -6
  423. package/src/tool/TextEditTool.tsx +3 -3
  424. package/src/tool/index.ts +96 -2
  425. package/src/util/drag.ts +22 -6
  426. package/src/util/edge.ts +39 -13
  427. package/src/util/index.ts +1 -0
  428. package/src/util/node.ts +36 -13
  429. package/src/util/resize.ts +286 -0
  430. package/src/view/Anchor.tsx +7 -5
  431. package/src/view/Control.tsx +93 -62
  432. package/src/view/Graph.tsx +21 -4
  433. package/src/view/Rotate.tsx +2 -1
  434. package/src/view/behavior/index.ts +2 -0
  435. package/src/{tool → view/behavior}/snapline.ts +3 -4
  436. package/src/view/edge/AdjustPoint.tsx +35 -49
  437. package/src/view/edge/BaseEdge.tsx +65 -45
  438. package/src/view/node/BaseNode.tsx +55 -28
  439. package/src/view/node/CircleNode.tsx +3 -1
  440. package/src/view/node/DiamondNode.tsx +3 -1
  441. package/src/view/node/EllipseNode.tsx +3 -1
  442. package/src/view/node/HtmlNode.tsx +5 -3
  443. package/src/view/node/PolygonNode.tsx +3 -1
  444. package/src/view/node/RectNode.tsx +3 -1
  445. package/src/view/node/TextNode.tsx +4 -2
  446. package/src/view/overlay/CanvasOverlay.tsx +5 -4
  447. package/src/view/overlay/ToolOverlay.tsx +1 -1
  448. package/src/view/shape/Circle.tsx +21 -7
  449. package/src/view/shape/Ellipse.tsx +20 -6
  450. package/src/view/shape/Line.tsx +24 -9
  451. package/src/view/shape/Path.tsx +9 -6
  452. package/src/view/shape/Polygon.tsx +13 -10
  453. package/src/view/shape/Polyline.tsx +20 -8
  454. package/src/view/shape/Rect.tsx +19 -19
  455. package/src/view/shape/Text.tsx +64 -33
  456. package/src/view/text/BaseText.tsx +76 -42
  457. package/src/view/text/LineText.tsx +94 -80
  458. package/tsconfig.json +1 -1
  459. package/es/tool/snapline.d.ts +0 -3
  460. package/es/tool/snapline.js.map +0 -1
  461. package/es/tool/tool.d.ts +0 -22
  462. package/es/tool/tool.js +0 -43
  463. package/es/tool/tool.js.map +0 -1
  464. package/lib/tool/snapline.d.ts +0 -3
  465. package/lib/tool/snapline.js.map +0 -1
  466. package/lib/tool/tool.d.ts +0 -22
  467. package/lib/tool/tool.js +0 -49
  468. package/lib/tool/tool.js.map +0 -1
  469. package/src/tool/tool.ts +0 -66
@@ -2,7 +2,7 @@ import { createElement as h, Component } from 'preact/compat'
2
2
  import { cloneDeep, find, forEach, map } from 'lodash-es'
3
3
  import { Rect } from './shape'
4
4
  import LogicFlow from '../LogicFlow'
5
- import { getNodeBBox, IDragParams, StepDrag } from '../util'
5
+ import { getNodeBBox, IDragParams, StepDrag, handleResize } from '../util'
6
6
  import { BaseNodeModel, GraphModel } from '../model'
7
7
 
8
8
  import NodeData = LogicFlow.NodeData
@@ -103,11 +103,19 @@ export class ResizeControl extends Component<
103
103
 
104
104
  triggerResizeEvent = (
105
105
  preNodeData: ResizeNodeData,
106
- nextNodeData: ResizeNodeData,
106
+ curNodeData: ResizeNodeData,
107
+ deltaX,
108
+ deltaY,
109
+ index,
110
+ nodeModel: BaseNodeModel,
107
111
  ) => {
108
112
  this.graphModel.eventCenter.emit(EventType.NODE_RESIZE, {
109
- preNodeData,
110
- nextNodeData,
113
+ preData: preNodeData,
114
+ data: curNodeData,
115
+ deltaX,
116
+ deltaY,
117
+ index,
118
+ model: nodeModel,
111
119
  })
112
120
  }
113
121
 
@@ -232,64 +240,75 @@ export class ResizeControl extends Component<
232
240
  }
233
241
 
234
242
  resizeNode = ({ deltaX, deltaY }: VectorData) => {
235
- // TODO: 调用每个节点中更新缩放时的方法 updateNode 函数,用来各节点缩放的方法
236
- // 1. 计算当前 Control 的一些信息,
237
- const {
238
- r, // circle
239
- rx, // ellipse/diamond
240
- ry,
241
- width, // rect/html
242
- height,
243
- PCTResizeInfo,
244
-
245
- minWidth,
246
- minHeight,
247
- maxWidth,
248
- maxHeight,
249
- } = this.nodeModel
250
- const isFreezeWidth = minWidth === maxWidth
251
- const isFreezeHeight = minHeight === maxHeight
252
-
253
- const resizeInfo = {
254
- width: r || rx || width,
255
- height: r || ry || height,
243
+ const { index } = this
244
+ const { model, graphModel } = this.props
245
+
246
+ // DONE: 调用每个节点中更新缩放时的方法 updateNode 函数,用来各节点缩放的方法
247
+ handleResize({
256
248
  deltaX,
257
249
  deltaY,
258
- PCTResizeInfo,
259
- }
260
-
261
- const pct = r || (rx && ry) ? 1 / 2 : 1
262
- const nextSize = this.recalcResizeInfo(
263
- this.index,
264
- resizeInfo,
265
- pct,
266
- isFreezeWidth,
267
- isFreezeHeight,
268
- )
269
-
270
- // 限制放大缩小的最大最小范围
271
- if (
272
- nextSize.width < minWidth ||
273
- nextSize.width > maxWidth ||
274
- nextSize.height < minHeight ||
275
- nextSize.height > maxHeight
276
- ) {
277
- this.dragHandler.cancelDrag()
278
- return
279
- }
280
- // 如果限制了宽高不变,对应的 x/y 不产生位移
281
- nextSize.deltaX = isFreezeWidth ? 0 : nextSize.deltaX
282
- nextSize.deltaY = isFreezeWidth ? 0 : nextSize.deltaY
283
-
284
- const preNodeData = this.nodeModel.getData()
285
- const nextNodeData = this.nodeModel.resize(nextSize)
286
-
287
- console.log('nextNodeData ===>>>', nextNodeData)
288
-
289
- // 更新边
290
- this.updateEdgePointByAnchors()
291
- // 触发 resize 事件
292
- this.triggerResizeEvent(preNodeData, nextNodeData)
250
+ index,
251
+ nodeModel: model,
252
+ graphModel,
253
+ cancelCallback: () => {
254
+ this.dragHandler.cancelDrag()
255
+ },
256
+ })
257
+ // 1. 计算当前 Control 的一些信息,
258
+ // const {
259
+ // r, // circle
260
+ // rx, // ellipse/diamond
261
+ // ry,
262
+ // width, // rect/html
263
+ // height,
264
+ // PCTResizeInfo,
265
+ //
266
+ // minWidth,
267
+ // minHeight,
268
+ // maxWidth,
269
+ // maxHeight,
270
+ // } = this.nodeModel
271
+ // const isFreezeWidth = minWidth === maxWidth
272
+ // const isFreezeHeight = minHeight === maxHeight
273
+ //
274
+ // const resizeInfo = {
275
+ // width: r || rx || width,
276
+ // height: r || ry || height,
277
+ // deltaX,
278
+ // deltaY,
279
+ // PCTResizeInfo,
280
+ // }
281
+ //
282
+ // const pct = r || (rx && ry) ? 1 / 2 : 1
283
+ // const nextSize = this.recalcResizeInfo(
284
+ // this.index,
285
+ // resizeInfo,
286
+ // pct,
287
+ // isFreezeWidth,
288
+ // isFreezeHeight,
289
+ // )
290
+ //
291
+ // // 限制放大缩小的最大最小范围
292
+ // if (
293
+ // nextSize.width < minWidth ||
294
+ // nextSize.width > maxWidth ||
295
+ // nextSize.height < minHeight ||
296
+ // nextSize.height > maxHeight
297
+ // ) {
298
+ // this.dragHandler.cancelDrag()
299
+ // return
300
+ // }
301
+ // // 如果限制了宽高不变,对应的 x/y 不产生位移
302
+ // nextSize.deltaX = isFreezeWidth ? 0 : nextSize.deltaX
303
+ // nextSize.deltaY = isFreezeWidth ? 0 : nextSize.deltaY
304
+ //
305
+ // const preNodeData = this.nodeModel.getData()
306
+ // const curNodeData = this.nodeModel.resize(nextSize)
307
+ //
308
+ // // 更新边
309
+ // this.updateEdgePointByAnchors()
310
+ // // 触发 resize 事件
311
+ // this.triggerResizeEvent(preNodeData, curNodeData, deltaX, deltaY, this.index, this.nodeModel)
293
312
  }
294
313
 
295
314
  onDragging = ({ deltaX, deltaY }: IDragParams) => {
@@ -304,6 +323,7 @@ export class ResizeControl extends Component<
304
323
 
305
324
  // 由于将拖拽放大缩小改成丝滑模式,这个时候需要再拖拽结束的时候,将节点的位置更新到 grid 上。
306
325
  onDragEnd = () => {
326
+ // TODO: 确认下面该代码是否还需要(应该是默认让节点拖拽以 gridSize 为步长移动)
307
327
  // const { gridSize = 1 } = this.graphModel
308
328
  // const x = gridSize * Math.round(this.nodeModel.x / gridSize)
309
329
  // const y = gridSize * Math.round(this.nodeModel.y / gridSize)
@@ -319,14 +339,25 @@ export class ResizeControl extends Component<
319
339
 
320
340
  render(): h.JSX.Element {
321
341
  const { x, y, direction, model } = this.props
322
- const style = model.getResizeControlStyle()
342
+ const { width, height, ...restStyle } = model.getResizeControlStyle()
323
343
  return (
324
344
  <g className={`lf-resize-control lf-resize-control-${direction}`}>
325
345
  <Rect
326
346
  className="lf-resize-control-content"
327
347
  x={x}
328
348
  y={y}
329
- {...style}
349
+ width={width ?? 7}
350
+ height={height ?? 7}
351
+ {...restStyle}
352
+ />
353
+ <Rect
354
+ className="lf-resize-control-content"
355
+ x={x}
356
+ y={y}
357
+ width={25}
358
+ height={25}
359
+ fill="transparent"
360
+ stroke="transparent"
330
361
  onMouseDown={this.dragHandler.handleMouseDown}
331
362
  />
332
363
  </g>
@@ -1,5 +1,5 @@
1
1
  import { Component, ComponentType } from 'preact/compat'
2
- import { map } from 'lodash-es'
2
+ import { map, throttle } from 'lodash-es'
3
3
  import {
4
4
  CanvasOverlay,
5
5
  ToolOverlay,
@@ -12,14 +12,15 @@ import {
12
12
  } from './overlay'
13
13
  import DnD from './behavior/dnd'
14
14
  import { observer } from '..'
15
+ import Tool from '../tool'
15
16
  import { Options as LFOptions } from '../options'
16
- import Tool from '../tool/tool'
17
17
  import {
18
18
  GraphModel,
19
19
  BaseEdgeModel,
20
20
  BaseNodeModel,
21
21
  SnaplineModel,
22
22
  } from '../model'
23
+ import { EventType } from '../constant'
23
24
 
24
25
  type IGraphProps = {
25
26
  getView: (type: string) => ComponentType<any> | undefined
@@ -37,6 +38,23 @@ type ContainerStyle = {
37
38
 
38
39
  @observer
39
40
  class Graph extends Component<IGraphProps> {
41
+ handleResize = () => {
42
+ this.props.graphModel.resize()
43
+ }
44
+
45
+ componentDidMount() {
46
+ window.addEventListener('resize', throttle(this.handleResize, 200))
47
+ }
48
+
49
+ componentDidUpdate() {
50
+ const data = this.props.graphModel.modelToGraphData()
51
+ this.props.graphModel.eventCenter.emit(EventType.GRAPH_UPDATED, { data })
52
+ }
53
+
54
+ componentWillUnmount() {
55
+ window.removeEventListener('resize', throttle(this.handleResize, 200))
56
+ }
57
+
40
58
  getComponent(
41
59
  model: BaseEdgeModel | BaseNodeModel,
42
60
  graphModel: GraphModel,
@@ -71,9 +89,8 @@ class Graph extends Component<IGraphProps> {
71
89
  const grid = options.grid && Grid.getGridOptions(options.grid)
72
90
  const { fakeNode, editConfigModel } = graphModel
73
91
  const { adjustEdge } = editConfigModel
74
-
75
92
  return (
76
- <div className="lf-graph" flow-id={graphModel.flowId} style={style}>
93
+ <div className="lf-graph" flow-id={graphModel.flowId}>
77
94
  <CanvasOverlay graphModel={graphModel} dnd={dnd}>
78
95
  <g className="lf-base">
79
96
  {map(graphModel.sortElements, (nodeModel) =>
@@ -83,7 +83,8 @@ class RotateControlPoint extends Component<IRotateControlProps> {
83
83
 
84
84
  eventCenter.emit(EventType.NODE_ROTATE, {
85
85
  e: event,
86
- nodeModel,
86
+ model: nodeModel,
87
+ data: nodeModel.getData(),
87
88
  })
88
89
  }
89
90
 
@@ -0,0 +1,2 @@
1
+ export * from './dnd'
2
+ export * from './snapline'
@@ -1,13 +1,12 @@
1
- import EventEmitter from '../event/eventEmitter'
2
- import SnaplineModel from '../model/SnaplineModel'
1
+ import EventEmitter from '../../event/eventEmitter'
2
+ import SnaplineModel from '../../model/SnaplineModel'
3
3
 
4
4
  export function snapline(
5
5
  eventCenter: EventEmitter,
6
6
  snaplineModel: SnaplineModel,
7
7
  ): void {
8
8
  // 节点拖动时启动对齐线计算
9
- eventCenter.on('node:mousemove', ({ data }: any) => {
10
- // TODO: 取消注释,定义 data 类型,解决编译问题
9
+ eventCenter.on('node:mousemove', ({ data }) => {
11
10
  snaplineModel.setNodeSnapLine(data)
12
11
  })
13
12
  // 节点拖动结束时,对齐线消失
@@ -4,7 +4,7 @@ import { GraphModel, BaseNodeModel, BaseEdgeModel, Model } from '../../model'
4
4
  import {
5
5
  IDragParams,
6
6
  StepDrag,
7
- formateAnchorConnectValidateData,
7
+ formatAnchorConnectValidateData,
8
8
  targetNodeInfo,
9
9
  NodeContaint,
10
10
  } from '../../util'
@@ -125,54 +125,40 @@ export class AdjustPoint extends Component<IProps, IState> {
125
125
  )
126
126
  // 如果一定的坐标能够找到目标节点,预结算当前节点与目标节点的路径进行展示
127
127
  if (info && info.node && this.isAllowAdjust(info).pass) {
128
- let params: {
129
- startPoint: Point
130
- endPoint: Point
131
- sourceNode: BaseNodeModel
132
- targetNode: BaseNodeModel
133
- }
134
128
  const { startPoint, endPoint, sourceNode, targetNode } = edgeModel
135
- if (type === AdjustType.SOURCE) {
136
- params = {
137
- startPoint: {
138
- x: info.anchor.x,
139
- y: info.anchor.y,
140
- },
141
- endPoint: {
142
- x: endPoint.x,
143
- y: endPoint.y,
144
- },
145
- sourceNode: info.node,
146
- targetNode,
147
- }
148
- } else if (type === AdjustType.TARGET) {
149
- params = {
150
- startPoint: {
151
- x: startPoint.x,
152
- y: startPoint.y,
153
- },
154
- endPoint: {
155
- x: info.anchor.x,
156
- y: info.anchor.y,
157
- },
158
- sourceNode,
159
- targetNode: info.node,
160
- }
161
- }
162
- edgeModel.updateAfterAdjustStartAndEnd(params!)
163
- } else if (type === AdjustType.SOURCE) {
164
- // 如果没有找到目标节点,更显起终点为当前坐标
165
- edgeModel.updateStartPoint({
166
- x,
167
- y,
168
- })
169
- } else if (type === AdjustType.TARGET) {
170
- edgeModel.updateEndPoint({
171
- x,
172
- y,
173
- })
129
+ const params =
130
+ type === AdjustType.SOURCE
131
+ ? {
132
+ startPoint: {
133
+ x: info.anchor.x,
134
+ y: info.anchor.y,
135
+ },
136
+ endPoint: {
137
+ x: endPoint.x,
138
+ y: endPoint.y,
139
+ },
140
+ sourceNode: info.node,
141
+ targetNode,
142
+ }
143
+ : {
144
+ startPoint: {
145
+ x: startPoint.x,
146
+ y: startPoint.y,
147
+ },
148
+ endPoint: {
149
+ x: info.anchor.x,
150
+ y: info.anchor.y,
151
+ },
152
+ sourceNode,
153
+ targetNode: info.node,
154
+ }
155
+ edgeModel.updateAfterAdjustStartAndEnd(params)
156
+ } else {
157
+ // 如果没有找到目标节点,更新起终点为当前坐标
158
+ type === AdjustType.SOURCE
159
+ ? edgeModel.updateStartPoint({ x, y })
160
+ : edgeModel.updateEndPoint({ x, y })
174
161
  }
175
-
176
162
  if (edgeModel.text.value && editConfigModel.adjustEdge) {
177
163
  edgeModel.setText(
178
164
  Object.assign({}, edgeModel.text, edgeModel.textPosition),
@@ -394,11 +380,11 @@ export class AdjustPoint extends Component<IProps, IState> {
394
380
  )
395
381
  this.sourceRuleResults.set(
396
382
  targetInfoId,
397
- formateAnchorConnectValidateData(sourceRuleResult),
383
+ formatAnchorConnectValidateData(sourceRuleResult),
398
384
  )
399
385
  this.targetRuleResults.set(
400
386
  targetInfoId,
401
- formateAnchorConnectValidateData(targetRuleResult),
387
+ formatAnchorConnectValidateData(targetRuleResult),
402
388
  )
403
389
  }
404
390
  const { isAllPass: isSourcePass, msg: sourceMsg } =
@@ -3,7 +3,7 @@ import { Circle } from '../shape'
3
3
  import { LineText } from '../text'
4
4
  import LogicFlow from '../../LogicFlow'
5
5
  import { GraphModel, BaseEdgeModel, PolylineEdgeModel } from '../../model'
6
- import { ElementState, EventType, ModelType } from '../../constant'
6
+ import { ElementState, EventType, ModelType, TextMode } from '../../constant'
7
7
  import {
8
8
  isMultipleSelect,
9
9
  getClosestPointOfPolyline,
@@ -56,24 +56,31 @@ export abstract class BaseEdge<P extends IProps> extends Component<
56
56
  */
57
57
  getText(): h.JSX.Element | null {
58
58
  const { model, graphModel } = this.props
59
- // 文本被编辑的时候,显示编辑框,不显示文本。
60
- if (model.state === ElementState.TEXT_EDIT) {
61
- return null
62
- }
63
- let draggable = false
64
59
  const { editConfigModel } = graphModel
65
- if (model.text.draggable || editConfigModel.edgeTextDraggable) {
66
- draggable = true
60
+
61
+ // 边文本模式非 TEXT 时,不显示文本
62
+ if (editConfigModel.edgeTextMode !== TextMode.TEXT) return null
63
+ // 文本被编辑的时候,显示编辑框,不显示文本。
64
+ if (model.state === ElementState.TEXT_EDIT) return null
65
+
66
+ if (model.text) {
67
+ let draggable = false
68
+ if (editConfigModel.edgeTextDraggable && model.text.draggable) {
69
+ draggable = true
70
+ }
71
+ return (
72
+ <LineText
73
+ ref={this.textRef}
74
+ editable={
75
+ editConfigModel.edgeTextEdit && (model.text.editable ?? true)
76
+ }
77
+ model={model}
78
+ graphModel={graphModel}
79
+ draggable={draggable}
80
+ />
81
+ )
67
82
  }
68
- return (
69
- <LineText
70
- ref={this.textRef}
71
- editable={editConfigModel.edgeTextEdit && model.text.editable}
72
- model={model}
73
- graphModel={graphModel}
74
- draggable={draggable}
75
- />
76
- )
83
+ return null
77
84
  }
78
85
 
79
86
  /**
@@ -240,24 +247,36 @@ export abstract class BaseEdge<P extends IProps> extends Component<
240
247
  */
241
248
  private getAdjustPoints() {
242
249
  const { model, graphModel } = this.props
250
+ const {
251
+ editConfigModel: {
252
+ adjustEdgeStartAndEnd,
253
+ adjustEdgeStart,
254
+ adjustEdgeEnd,
255
+ },
256
+ } = graphModel
243
257
  const start = model.getAdjustStart()
244
258
  const end = model.getAdjustEnd()
259
+
245
260
  return (
246
261
  <g>
247
- <AdjustPoint
248
- type={AdjustType.SOURCE}
249
- {...start}
250
- getAdjustPointShape={this.getAdjustPointShape}
251
- edgeModel={model}
252
- graphModel={graphModel}
253
- />
254
- <AdjustPoint
255
- type={AdjustType.TARGET}
256
- {...end}
257
- getAdjustPointShape={this.getAdjustPointShape}
258
- edgeModel={model}
259
- graphModel={graphModel}
260
- />
262
+ {adjustEdgeStartAndEnd && adjustEdgeStart && (
263
+ <AdjustPoint
264
+ type={AdjustType.SOURCE}
265
+ {...start}
266
+ getAdjustPointShape={this.getAdjustPointShape}
267
+ edgeModel={model}
268
+ graphModel={graphModel}
269
+ />
270
+ )}
271
+ {adjustEdgeStartAndEnd && adjustEdgeEnd && (
272
+ <AdjustPoint
273
+ type={AdjustType.TARGET}
274
+ {...end}
275
+ getAdjustPointShape={this.getAdjustPointShape}
276
+ edgeModel={model}
277
+ graphModel={graphModel}
278
+ />
279
+ )}
261
280
  </g>
262
281
  )
263
282
  }
@@ -307,24 +326,24 @@ export abstract class BaseEdge<P extends IProps> extends Component<
307
326
  /**
308
327
  * 不支持重写,如果想要基于hover状态设置不同的样式,请在model中使用isHovered属性。
309
328
  */
310
- setHoverON = (ev: MouseEvent) => {
329
+ setHoverOn = (ev: MouseEvent) => {
311
330
  // ! hover多次触发, onMouseOver + onMouseEnter
312
331
  const {
313
332
  model: { isHovered },
314
333
  } = this.props
315
334
  if (isHovered) return
316
- this.textRef && this.textRef.current && this.textRef.current.setHoverON()
335
+ this.textRef && this.textRef.current && this.textRef.current.setHoverOn()
317
336
  this.handleHover(true, ev)
318
337
  }
319
338
  /**
320
339
  * 不支持重写,如果想要基于hover状态设置不同的样式,请在model中使用isHovered属性。
321
340
  */
322
- setHoverOFF = (ev: MouseEvent) => {
341
+ setHoverOff = (ev: MouseEvent) => {
323
342
  const {
324
343
  model: { isHovered },
325
344
  } = this.props
326
345
  if (!isHovered) return
327
- this.textRef && this.textRef.current && this.textRef.current.setHoverOFF()
346
+ this.textRef && this.textRef.current && this.textRef.current.setHoverOff()
328
347
  this.handleHover(false, ev)
329
348
  }
330
349
  /**
@@ -385,15 +404,17 @@ export abstract class BaseEdge<P extends IProps> extends Component<
385
404
  })
386
405
  if (isDoubleClick) {
387
406
  const { editConfigModel, textEditElement } = graphModel
407
+ const { id, text, modelType } = model
388
408
  // 当前边正在编辑,需要先重置状态才能变更文本框位置
389
- if (textEditElement && textEditElement.id === model.id) {
390
- graphModel.setElementStateById(model.id, ElementState.DEFAULT)
409
+ if (textEditElement && textEditElement.id === id) {
410
+ graphModel.setElementStateById(id, ElementState.DEFAULT)
391
411
  }
392
412
  // 边文案可编辑状态,才可以进行文案编辑
393
- if (editConfigModel.edgeTextEdit && model.text.editable) {
394
- graphModel.setElementStateById(model.id, ElementState.TEXT_EDIT)
413
+ if (editConfigModel.edgeTextEdit && text.editable) {
414
+ model.setSelected(false)
415
+ graphModel.setElementStateById(id, ElementState.TEXT_EDIT)
395
416
  }
396
- if (model.modelType === ModelType.POLYLINE_EDGE) {
417
+ if (modelType === ModelType.POLYLINE_EDGE) {
397
418
  const polylineEdgeModel = model as PolylineEdgeModel
398
419
  const {
399
420
  canvasOverlayPosition: { x, y },
@@ -401,14 +422,13 @@ export abstract class BaseEdge<P extends IProps> extends Component<
401
422
  x: e.x,
402
423
  y: e.y,
403
424
  })
404
- const crossPoint = getClosestPointOfPolyline(
425
+ polylineEdgeModel.dbClickPosition = getClosestPointOfPolyline(
405
426
  {
406
427
  x,
407
428
  y,
408
429
  },
409
430
  polylineEdgeModel.points,
410
431
  )
411
- polylineEdgeModel.dbClickPosition = crossPoint
412
432
  }
413
433
  graphModel.eventCenter.emit(EventType.EDGE_DBCLICK, {
414
434
  data: edgeData,
@@ -471,9 +491,9 @@ export abstract class BaseEdge<P extends IProps> extends Component<
471
491
  onMouseDown={this.handleMouseDown}
472
492
  onMouseUp={this.handleMouseUp}
473
493
  onContextMenu={this.handleContextMenu}
474
- onMouseOver={this.setHoverON}
475
- onMouseEnter={this.setHoverON}
476
- onMouseLeave={this.setHoverOFF}
494
+ onMouseOver={this.setHoverOn}
495
+ onMouseEnter={this.setHoverOn}
496
+ onMouseLeave={this.setHoverOff}
477
497
  >
478
498
  {this.getShape()}
479
499
  {this.getAppend()}