@logicflow/core 2.0.0-beta.1 → 2.0.0-beta.11

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 +10 -10
  2. package/.turbo/turbo-build.log +36 -36
  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
package/src/util/edge.ts CHANGED
@@ -1,10 +1,13 @@
1
- import { pick } from 'lodash-es'
1
+ import { pick, forEach } from 'lodash-es'
2
2
  import { getNodeBBox, isInNode, distance, sampleCubic } from '.'
3
3
  import LogicFlow from '../LogicFlow'
4
4
  import { Options } from '../options'
5
5
  import { SegmentDirection } from '../constant'
6
- import { getVerticalPointOfLine } from '../algorithm'
7
- import { getCrossPointOfLine, isInSegment } from '../algorithm/edge'
6
+ import {
7
+ getVerticalPointOfLine,
8
+ getCrossPointOfLine,
9
+ isInSegment,
10
+ } from '../algorithm'
8
11
  import {
9
12
  Model,
10
13
  BaseNodeModel,
@@ -397,7 +400,7 @@ export const getNextNeighborPoints = (
397
400
  return filterRepeatPoints(neighbors)
398
401
  }
399
402
 
400
- /* 路径查找,Astart查找+曼哈顿距离
403
+ /* 路径查找,AStar查找+曼哈顿距离
401
404
  * 算法wiki:https://zh.wikipedia.org/wiki/A*%E6%90%9C%E5%B0%8B%E6%BC%94%E7%AE%97%E6%B3%95
402
405
  * 方法无法复用,且调用了很多polyline相关的方法,暂不抽离到src/algorithm中
403
406
  */
@@ -590,10 +593,10 @@ export const getPolylinePoints = (
590
593
  * @param pointsList 多个点组成的数组
591
594
  */
592
595
  export const getLongestEdge = (pointsList: Point[]): [Point, Point] => {
593
- let points
594
596
  if (pointsList.length === 1) {
595
- points = [pointsList[0], pointsList[0]]
596
- } else if (pointsList.length >= 2) {
597
+ const [point] = pointsList
598
+ return [point, point]
599
+ } else {
597
600
  let point1 = pointsList[0]
598
601
  let point2 = pointsList[1]
599
602
  let edgeLength = distance(point1.x, point1.y, point2.x, point2.y)
@@ -612,9 +615,8 @@ export const getLongestEdge = (pointsList: Point[]): [Point, Point] => {
612
615
  point2 = newPoint2
613
616
  }
614
617
  }
615
- points = [point1, point2]
618
+ return [point1, point2]
616
619
  }
617
- return points
618
620
  }
619
621
 
620
622
  /* 线段是否在节点内部,被包含了 */
@@ -650,8 +652,7 @@ export const getCrossPointInRect = (
650
652
  start: Point,
651
653
  end: Point,
652
654
  node: BaseNodeModel,
653
- ): Point => {
654
- let point
655
+ ): Point | false | undefined => {
655
656
  let crossSegments: [Point, Point] | undefined = undefined
656
657
  const nodeBox = getNodeBBox(node)
657
658
  const points = getPointsFromBBox(nodeBox)
@@ -667,9 +668,8 @@ export const getCrossPointInRect = (
667
668
  }
668
669
  }
669
670
  if (crossSegments) {
670
- point = getCrossPointOfLine(start, end, crossSegments[0], crossSegments[1])
671
+ return getCrossPointOfLine(start, end, crossSegments[0], crossSegments[1])
671
672
  }
672
- return point
673
673
  }
674
674
  /* 判断线段的方向 */
675
675
  export const segmentDirection = (
@@ -915,6 +915,7 @@ export const getEndTangent = (
915
915
  * 获取移动边后,文本位置距离边上的最近的一点
916
916
  * @param point 边上文本的位置
917
917
  * @param points 边的各个拐点
918
+ * TODO: Label实验没问题后统一改成新的计算方式,把这个方法废弃
918
919
  */
919
920
  export const getClosestPointOfPolyline = (
920
921
  point: Point,
@@ -1032,3 +1033,28 @@ export function createEdgeGenerator(
1032
1033
  return Object.assign({ type: result }, currentEdge)
1033
1034
  }
1034
1035
  }
1036
+
1037
+ // 获取 Svg 标签文案高度,自动换行
1038
+ export type IGetSvgTextSizeParams = {
1039
+ rows: string[]
1040
+ rowsLength: number
1041
+ fontSize: number
1042
+ }
1043
+ export const getSvgTextSize = ({
1044
+ rows,
1045
+ rowsLength,
1046
+ fontSize,
1047
+ }: IGetSvgTextSizeParams): LogicFlow.RectSize => {
1048
+ let longestBytes = 0
1049
+ forEach(rows, (row) => {
1050
+ const rowBytesLength = getBytesLength(row)
1051
+ longestBytes = rowBytesLength > longestBytes ? rowBytesLength : longestBytes
1052
+ })
1053
+
1054
+ // 背景框宽度,最长一行字节数/2 * fontsize + 2
1055
+ // 背景框宽度, 行数 * fontsize + 2
1056
+ return {
1057
+ width: Math.ceil(longestBytes / 2) * fontSize + fontSize / 4,
1058
+ height: rowsLength * (fontSize + 2) + fontSize / 4,
1059
+ }
1060
+ }
package/src/util/index.ts CHANGED
@@ -9,6 +9,7 @@ export * from './matrix'
9
9
  export * from './mobx'
10
10
  export * from './node'
11
11
  export * from './raf'
12
+ export * from './resize'
12
13
  export * from './sampling'
13
14
  export * from './theme'
14
15
  export * from './uuid'
package/src/util/node.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { pick } from 'lodash-es'
2
+ import { createElement as h } from 'preact/compat'
2
3
  import { getBytesLength } from './edge'
3
4
  import LogicFlow from '../LogicFlow'
4
5
  import {
@@ -18,6 +19,7 @@ import Direction = LogicFlow.Direction
18
19
  import NodeConfig = LogicFlow.NodeConfig
19
20
  import LineSegment = LogicFlow.LineSegment
20
21
  import AnchorInfo = Model.AnchorInfo
22
+ import BoxBoundsPoint = Model.BoxBoundsPoint
21
23
 
22
24
  /* 获取所有锚点 */
23
25
  export const getAnchors = (data: BaseNodeModel) => {
@@ -144,13 +146,9 @@ export type NodeBBox = {
144
146
  y: number
145
147
  width: number
146
148
  height: number
147
- minX: number
148
- minY: number
149
- maxX: number
150
- maxY: number
151
149
  centerX: number
152
150
  centerY: number
153
- }
151
+ } & BoxBoundsPoint
154
152
 
155
153
  /* 获取节点bbox */
156
154
  export const getNodeBBox = (node: BaseNodeModel): NodeBBox => {
@@ -411,9 +409,14 @@ export const pickNodeConfig = (data: NodeConfig): NodeConfig => {
411
409
  'x',
412
410
  'y',
413
411
  'text',
412
+ 'label',
414
413
  'properties',
415
414
  'virtual', // 区域节点是否为dnd添加的虚拟节点
416
415
  'rotate',
416
+
417
+ // TODO: 确认是否可以加到此处
418
+ 'resizable',
419
+ 'rotatable',
417
420
  ])
418
421
  return nodeData
419
422
  }
@@ -444,7 +447,26 @@ export const getNodeAnchorPosition = (
444
447
  }
445
448
  }
446
449
 
447
- // 获取文案高度,自动换行,利用dom计算高度
450
+ /*********************************************************
451
+ * Text 节点文本相关工具函数
452
+ ********************************************************/
453
+ // Text 相关节点工具函数
454
+ // TODO: 获取文案高度,设置自动换行,利用 dom 计算高度
455
+ // function getTextHeight(text: string, font: string): number {
456
+ // const span = document.createElement('span');
457
+ // span.textContent = text;
458
+ // span.style.font = font;
459
+
460
+ // const range = document.createRange();
461
+ // range.selectNodeContents(span);
462
+
463
+ // const rect = range.getBoundingClientRect();
464
+ // const height = rect.height;
465
+
466
+ // return height;
467
+ // }
468
+
469
+ // 获取文案高度,自动换行,利用 dom 计算高度
448
470
  export const getHtmlTextHeight = ({
449
471
  rows,
450
472
  style,
@@ -452,18 +474,18 @@ export const getHtmlTextHeight = ({
452
474
  className,
453
475
  }: {
454
476
  rows: string[]
455
- style: any // TODO: 完善类型
477
+ style: h.JSX.CSSProperties
456
478
  rowsLength: number
457
479
  className: string
458
480
  }) => {
459
481
  const dom = document.createElement('div')
460
- dom.style.fontSize = style.fontSize
461
- dom.style.width = style.width
462
482
  dom.className = className
463
- dom.style.lineHeight = style.lineHeight
464
- dom.style.padding = style.padding
483
+ dom.style.fontSize = `${style.fontSize}`
484
+ dom.style.width = `${style.width}`
485
+ dom.style.lineHeight = `${style.lineHeight}`
486
+ dom.style.padding = `${style.padding}`
465
487
  if (style.fontFamily) {
466
- dom.style.fontFamily = style.fontFamily
488
+ dom.style.fontFamily = `${style.fontFamily}`
467
489
  }
468
490
  if (rowsLength > 1) {
469
491
  rows.forEach((row) => {
@@ -479,6 +501,7 @@ export const getHtmlTextHeight = ({
479
501
  document.body.removeChild(dom)
480
502
  return height
481
503
  }
504
+
482
505
  // 获取文案高度,自动换行,利用dom计算高度
483
506
  export const getSvgTextWidthHeight = ({
484
507
  rows,
@@ -506,7 +529,7 @@ export const getSvgTextWidthHeight = ({
506
529
  /**
507
530
  * @description 格式化边校验信息
508
531
  */
509
- export const formateAnchorConnectValidateData = (
532
+ export const formatAnchorConnectValidateData = (
510
533
  data: Model.ConnectRuleResult,
511
534
  ) => {
512
535
  if (typeof data !== 'object') {
@@ -0,0 +1,286 @@
1
+ import { ResizeControl, ResizeControlIndex } from '../view/Control'
2
+ import { cloneDeep, find, forEach } from 'lodash-es'
3
+ import { BaseNodeModel, GraphModel } from '../model'
4
+ import { EventType } from '../constant'
5
+
6
+ import ResizeInfo = ResizeControl.ResizeInfo
7
+ import ResizeNodeData = ResizeControl.ResizeNodeData
8
+
9
+ /**
10
+ * 计算 Control 拖动后,节点的高度信息
11
+ * @param index
12
+ * @param resizeInfo
13
+ * @param pct
14
+ * @param freezeWidth
15
+ * @param freezeHeight
16
+ */
17
+ export const recalcResizeInfo = (
18
+ index: ResizeControlIndex,
19
+ resizeInfo: ResizeInfo,
20
+ pct = 1,
21
+ freezeWidth = false,
22
+ freezeHeight = false,
23
+ ): ResizeInfo => {
24
+ const nextResizeInfo = cloneDeep(resizeInfo)
25
+ let { deltaX, deltaY } = nextResizeInfo
26
+ const { width, height, PCTResizeInfo } = nextResizeInfo
27
+ if (PCTResizeInfo) {
28
+ const sensitivity = 4 // 越低越灵敏
29
+ let deltaScale = 0
30
+ let combineDelta = 0
31
+ switch (index) {
32
+ case ResizeControlIndex.LEFT_TOP:
33
+ combineDelta = (deltaX * -1 - deltaY) / sensitivity
34
+ break
35
+ case ResizeControlIndex.RIGHT_TOP:
36
+ combineDelta = (deltaX - deltaY) / sensitivity
37
+ break
38
+ case ResizeControlIndex.RIGHT_BOTTOM:
39
+ combineDelta = (deltaX + deltaY) / sensitivity
40
+ break
41
+ case ResizeControlIndex.LEFT_BOTTOM:
42
+ combineDelta = (deltaX * -1 + deltaY) / sensitivity
43
+ break
44
+ default:
45
+ break
46
+ }
47
+
48
+ if (combineDelta !== 0) {
49
+ deltaScale =
50
+ Math.round(
51
+ (combineDelta / PCTResizeInfo.ResizeBasis.basisHeight) * 100000,
52
+ ) / 1000
53
+ }
54
+
55
+ PCTResizeInfo.ResizePCT.widthPCT = Math.max(
56
+ Math.min(
57
+ PCTResizeInfo.ResizePCT.widthPCT + deltaScale,
58
+ PCTResizeInfo.ScaleLimit.maxScaleLimit,
59
+ ),
60
+ PCTResizeInfo.ScaleLimit.minScaleLimit,
61
+ )
62
+ PCTResizeInfo.ResizePCT.heightPCT = Math.max(
63
+ Math.min(
64
+ PCTResizeInfo.ResizePCT.heightPCT + deltaScale,
65
+ PCTResizeInfo.ScaleLimit.maxScaleLimit,
66
+ ),
67
+ PCTResizeInfo.ScaleLimit.minScaleLimit,
68
+ )
69
+
70
+ const spcWidth = Math.round(
71
+ (PCTResizeInfo.ResizePCT.widthPCT *
72
+ PCTResizeInfo.ResizeBasis.basisWidth) /
73
+ 100,
74
+ )
75
+ const spcHeight = Math.round(
76
+ (PCTResizeInfo.ResizePCT.heightPCT *
77
+ PCTResizeInfo.ResizeBasis.basisHeight) /
78
+ 100,
79
+ )
80
+
81
+ switch (index) {
82
+ case ResizeControlIndex.LEFT_TOP:
83
+ deltaX = width - spcWidth
84
+ deltaY = height - spcHeight
85
+ break
86
+ case ResizeControlIndex.RIGHT_TOP:
87
+ deltaX = spcWidth - width
88
+ deltaY = height - spcHeight
89
+ break
90
+ case ResizeControlIndex.RIGHT_BOTTOM:
91
+ deltaX = spcWidth - width
92
+ deltaY = spcHeight - height
93
+ break
94
+ case ResizeControlIndex.LEFT_BOTTOM:
95
+ deltaX = width - spcWidth
96
+ deltaY = spcHeight - height
97
+ break
98
+ default:
99
+ break
100
+ }
101
+ return nextResizeInfo
102
+ }
103
+
104
+ // 如果限制了宽/高不变,对应的 width/height 保持一致
105
+ switch (index) {
106
+ case ResizeControlIndex.LEFT_TOP:
107
+ nextResizeInfo.width = freezeWidth ? width : width - deltaX * pct
108
+ nextResizeInfo.height = freezeHeight ? height : height - deltaY * pct
109
+ break
110
+ case ResizeControlIndex.RIGHT_TOP:
111
+ nextResizeInfo.width = freezeWidth ? width : width + deltaX * pct
112
+ nextResizeInfo.height = freezeHeight ? height : height - deltaY * pct
113
+ break
114
+ case ResizeControlIndex.RIGHT_BOTTOM:
115
+ nextResizeInfo.width = freezeWidth ? width : width + deltaX * pct
116
+ nextResizeInfo.height = freezeHeight ? height : height + deltaY * pct
117
+ break
118
+ case ResizeControlIndex.LEFT_BOTTOM:
119
+ nextResizeInfo.width = freezeWidth ? width : width - deltaX * pct
120
+ nextResizeInfo.height = freezeHeight ? height : height + deltaY * pct
121
+ break
122
+ default:
123
+ break
124
+ }
125
+
126
+ return nextResizeInfo
127
+ }
128
+
129
+ export const updateEdgePointByAnchors = (
130
+ nodeModel: BaseNodeModel,
131
+ graphModel: GraphModel,
132
+ ) => {
133
+ // https://github.com/didi/LogicFlow/issues/807
134
+ // https://github.com/didi/LogicFlow/issues/875
135
+ // 之前的做法,比如Rect是使用getRectResizeEdgePoint()计算边的point缩放后的位置
136
+ // getRectResizeEdgePoint()考虑了瞄点在四条边以及在4个圆角的情况
137
+ // 使用的是一种等比例缩放的模式,比如:
138
+ // const pct = (y - beforeNode.y) / (beforeNode.height / 2 - radius)
139
+ // afterPoint.y = afterNode.y + (afterNode.height / 2 - radius) * pct
140
+ // 但是用户自定义的getDefaultAnchor()不一定是按照比例编写的
141
+ // 它可能是 x: x + 20:每次缩放都会保持在x右边20的位置,因此用户自定义瞄点时,然后产生无法跟随的问题
142
+ // 现在的做法是:直接获取用户自定义瞄点的位置,然后用这个位置作为边的新的起点,而不是自己进行计算
143
+ const { id, anchors } = nodeModel
144
+ const edges = graphModel.getNodeEdges(id)
145
+ // 更新边
146
+ forEach(edges, (edge) => {
147
+ if (edge.sourceNodeId === id) {
148
+ // 边是以该节点为 sourceNode 时
149
+ const anchorItem = find(
150
+ anchors,
151
+ (anchor) => anchor.id === edge.sourceAnchorId,
152
+ )
153
+
154
+ if (anchorItem) {
155
+ edge.updateStartPoint({
156
+ x: anchorItem.x,
157
+ y: anchorItem.y,
158
+ })
159
+ }
160
+ } else if (edge.targetNodeId === id) {
161
+ // 边是以该节点为 targetNode 时
162
+ const anchorItem = find(
163
+ anchors,
164
+ (anchor) => anchor.id === edge.targetAnchorId,
165
+ )
166
+
167
+ if (anchorItem) {
168
+ edge.updateEndPoint({
169
+ x: anchorItem.x,
170
+ y: anchorItem.y,
171
+ })
172
+ }
173
+ }
174
+ })
175
+ }
176
+
177
+ export const triggerResizeEvent = (
178
+ preNodeData: ResizeNodeData,
179
+ curNodeData: ResizeNodeData,
180
+ deltaX: number,
181
+ deltaY: number,
182
+ index: number,
183
+ nodeModel: BaseNodeModel,
184
+ graphModel: GraphModel,
185
+ ) => {
186
+ graphModel.eventCenter.emit(EventType.NODE_RESIZE, {
187
+ preData: preNodeData,
188
+ data: curNodeData,
189
+ deltaX,
190
+ deltaY,
191
+ index,
192
+ model: nodeModel,
193
+ })
194
+ }
195
+
196
+ // TODO:确认 handleResize 函数的类型定义
197
+ // export type IHandleResizeParams = {
198
+ // deltaX: number
199
+ // deltaY: number
200
+ // index: ResizeControlIndex
201
+ // nodeModel: BaseNodeModel
202
+ // graphModel: GraphModel
203
+ // cancelCallback?: () => void
204
+ // }
205
+
206
+ /**
207
+ * 处理节点的 resize 事件,提出来放到 utils 中,方便在外面(extension)中使用
208
+ * @param deltaX
209
+ * @param deltaY
210
+ * @param index
211
+ * @param nodeModel
212
+ * @param graphModel
213
+ * @param cancelCallback
214
+ */
215
+ export const handleResize = ({
216
+ deltaX,
217
+ deltaY,
218
+ index,
219
+ nodeModel,
220
+ graphModel,
221
+ cancelCallback,
222
+ }) => {
223
+ const {
224
+ r, // circle
225
+ rx, // ellipse/diamond
226
+ ry,
227
+ width, // rect/html
228
+ height,
229
+ PCTResizeInfo,
230
+
231
+ minWidth,
232
+ minHeight,
233
+ maxWidth,
234
+ maxHeight,
235
+ } = nodeModel
236
+ const isFreezeWidth = minWidth === maxWidth
237
+ const isFreezeHeight = minHeight === maxHeight
238
+
239
+ const resizeInfo = {
240
+ width: r || rx || width,
241
+ height: r || ry || height,
242
+ deltaX,
243
+ deltaY,
244
+ PCTResizeInfo,
245
+ }
246
+
247
+ const pct = r || (rx && ry) ? 1 / 2 : 1
248
+ const nextSize = recalcResizeInfo(
249
+ index,
250
+ resizeInfo,
251
+ pct,
252
+ isFreezeWidth,
253
+ isFreezeHeight,
254
+ )
255
+
256
+ // 限制放大缩小的最大最小范围
257
+ if (
258
+ nextSize.width < minWidth ||
259
+ nextSize.width > maxWidth ||
260
+ nextSize.height < minHeight ||
261
+ nextSize.height > maxHeight
262
+ ) {
263
+ // this.dragHandler.cancelDrag()
264
+ cancelCallback?.()
265
+ return
266
+ }
267
+ // 如果限制了宽高不变,对应的 x/y 不产生位移
268
+ nextSize.deltaX = isFreezeWidth ? 0 : nextSize.deltaX
269
+ nextSize.deltaY = isFreezeWidth ? 0 : nextSize.deltaY
270
+
271
+ const preNodeData = nodeModel.getData()
272
+ const curNodeData = nodeModel.resize(nextSize)
273
+
274
+ // 更新边
275
+ updateEdgePointByAnchors(nodeModel, graphModel)
276
+ // 触发 resize 事件
277
+ triggerResizeEvent(
278
+ preNodeData,
279
+ curNodeData,
280
+ deltaX,
281
+ deltaY,
282
+ index,
283
+ nodeModel,
284
+ graphModel,
285
+ )
286
+ }
@@ -6,7 +6,7 @@ import { ElementState, EventType } from '../constant'
6
6
  import { GraphModel, BaseNodeModel, Model } from '../model'
7
7
  import {
8
8
  StepDrag,
9
- formateAnchorConnectValidateData,
9
+ formatAnchorConnectValidateData,
10
10
  targetNodeInfo,
11
11
  distance,
12
12
  cancelRaf,
@@ -29,7 +29,7 @@ interface IProps {
29
29
  anchorIndex: number
30
30
  graphModel: GraphModel
31
31
  nodeModel: BaseNodeModel
32
- setHoverOFF: (e: MouseEvent) => void
32
+ setHoverOff: (e: MouseEvent) => void
33
33
  }
34
34
 
35
35
  interface IState {
@@ -116,7 +116,7 @@ class Anchor extends Component<IProps, IState> {
116
116
  endY: anchorData.y,
117
117
  })
118
118
  }
119
- onDragging = ({ event }) => {
119
+ onDragging = ({ event }: IDragParams) => {
120
120
  const { graphModel, nodeModel, anchorData } = this.props
121
121
  const {
122
122
  transformModel,
@@ -125,6 +125,8 @@ class Anchor extends Component<IProps, IState> {
125
125
  height,
126
126
  editConfigModel: { autoExpand, stopMoveGraph },
127
127
  } = graphModel
128
+ // TODO:确认该方法是否有影响!理论上 onDragging 时 event 必有值
129
+ if (!event) return
128
130
  const { clientX, clientY } = event
129
131
  const {
130
132
  domOverlayPosition: { x, y },
@@ -326,11 +328,11 @@ class Anchor extends Component<IProps, IState> {
326
328
  )
327
329
  this.sourceRuleResults.set(
328
330
  targetInfoId,
329
- formateAnchorConnectValidateData(sourceRuleResult),
331
+ formatAnchorConnectValidateData(sourceRuleResult),
330
332
  )
331
333
  this.targetRuleResults.set(
332
334
  targetInfoId,
333
- formateAnchorConnectValidateData(targetRuleResult),
335
+ formatAnchorConnectValidateData(targetRuleResult),
334
336
  )
335
337
  }
336
338
  const { isAllPass: isSourcePass } =