@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
@@ -1,8 +1,8 @@
1
- import {
2
- LogicFlow,
1
+ import LogicFlow, {
3
2
  BaseNodeModel,
4
3
  BaseEdgeModel,
5
4
  Model,
5
+ GraphModel,
6
6
  TransformData,
7
7
  TransformType,
8
8
  } from '..'
@@ -24,12 +24,30 @@ type ClickEventArgs = {
24
24
  isMultiple: boolean
25
25
  }
26
26
 
27
- type NodeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
27
+ type NodeEventArgsPick<
28
+ T extends
29
+ | 'preData'
30
+ | 'data'
31
+ | 'model'
32
+ | 'e'
33
+ | 'position'
34
+ | 'deltaX'
35
+ | 'deltaY'
36
+ | 'index',
37
+ > = Pick<
28
38
  {
39
+ /**
40
+ * 上一个状态的节点数据
41
+ */
42
+ preData: NodeData
29
43
  /**
30
44
  * 节点数据
31
45
  */
32
46
  data: NodeData
47
+ /**
48
+ * 节点 model
49
+ */
50
+ model: BaseNodeModel
33
51
  /**
34
52
  * 原生鼠标事件对象
35
53
  */
@@ -38,6 +56,39 @@ type NodeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
38
56
  * 鼠标触发点相对于画布左上角的坐标
39
57
  */
40
58
  position: ClientPosition
59
+ /**
60
+ * 鼠标 X轴移动的距离
61
+ */
62
+ deltaX: number
63
+ /**
64
+ * 鼠标Y轴移动的距离
65
+ */
66
+ deltaY: number
67
+ /**
68
+ * Resize 时调整的是哪个控制点
69
+ */
70
+ index: number
71
+ },
72
+ T
73
+ >
74
+
75
+ type TextEventArgsPick<
76
+ T extends 'data' | 'e' | 'model' | 'element' | 'position',
77
+ > = Pick<
78
+ {
79
+ // 节点数据
80
+ data?: any
81
+ // 原生鼠标事件对象
82
+ e?: MouseEvent | FocusEvent
83
+ // 文本所在元素model
84
+ model?: BaseNodeModel | BaseEdgeModel | unknown
85
+ // 文本dom
86
+ element?: HTMLElement | null
87
+ // 文本位置
88
+ position?: {
89
+ x: number
90
+ y: number
91
+ }
41
92
  },
42
93
  T
43
94
  >
@@ -65,7 +116,7 @@ interface NodeEventArgs {
65
116
  /**
66
117
  * 鼠标移动节点
67
118
  */
68
- 'node:mousemove': NodeEventArgsPick<'data' | 'e'>
119
+ 'node:mousemove': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
69
120
  /**
70
121
  * 鼠标进入节点
71
122
  */
@@ -97,7 +148,7 @@ interface NodeEventArgs {
97
148
  /**
98
149
  * 拖拽节点
99
150
  */
100
- 'node:drag': NodeEventArgsPick<'data' | 'e'>
151
+ 'node:drag': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
101
152
  /**
102
153
  * 拖拽节点结束
103
154
  */
@@ -106,6 +157,16 @@ interface NodeEventArgs {
106
157
  * 右键点击节点
107
158
  */
108
159
  'node:contextmenu': NodeEventArgsPick<'data' | 'e' | 'position'>
160
+ /**
161
+ * 节点旋转
162
+ */
163
+ 'node:rotate': NodeEventArgsPick<'data' | 'e' | 'model'>
164
+ /**
165
+ * 节点缩放
166
+ */
167
+ 'node:resize': NodeEventArgsPick<
168
+ 'preData' | 'data' | 'model' | 'deltaX' | 'deltaY' | 'index'
169
+ >
109
170
  }
110
171
 
111
172
  type EdgeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
@@ -179,6 +240,88 @@ interface EdgeEventArgs {
179
240
  }
180
241
  }
181
242
 
243
+ /**
244
+ * 文本事件
245
+ */
246
+ interface TextEventArgs {
247
+ // 鼠标按下文本
248
+ 'text:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
249
+ // 开始拖拽文本
250
+ 'text:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
251
+ // 文本拖拽
252
+ 'text:drag': TextEventArgsPick<'data' | 'e' | 'model'>
253
+ // 文本拖拽结束
254
+ 'text:drop': TextEventArgsPick<'data' | 'e' | 'model'>
255
+ // 文本单击
256
+ 'text:click': TextEventArgsPick<'data' | 'e' | 'model'>
257
+ // 文本双击
258
+ 'text:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
259
+ // 文本失焦
260
+ 'text:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
261
+ // 鼠标移动文本
262
+ 'text:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
263
+ // 鼠标抬起
264
+ 'text:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
265
+ // 文本获焦
266
+ 'text:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
267
+ // 文本新增
268
+ 'text:add': TextEventArgsPick<'data' | 'e' | 'model'>
269
+ // 文本更新
270
+ 'text:update': TextEventArgsPick<'data' | 'e' | 'model'>
271
+ // 文本清空
272
+ 'text:clear': TextEventArgsPick<'data' | 'e' | 'model'>
273
+ // 文本删除
274
+ 'text:delete': TextEventArgsPick<'data' | 'e' | 'model'>
275
+ // 不允许增加文本
276
+ 'text:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
277
+ }
278
+
279
+ /**
280
+ * label插件文本事件
281
+ */
282
+ interface TextEventArgs {
283
+ // 鼠标按下文本
284
+ 'label:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
285
+ // 开始拖拽文本
286
+ 'label:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
287
+ // 文本拖拽
288
+ 'label:drag': TextEventArgsPick<'data' | 'e' | 'model'>
289
+ // 文本拖拽结束
290
+ 'label:drop': TextEventArgsPick<'data' | 'e' | 'model'>
291
+ // 文本单击
292
+ 'label:click': TextEventArgsPick<'data' | 'e' | 'model'>
293
+ // 文本双击
294
+ 'label:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
295
+ // 文本失焦
296
+ 'label:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
297
+ // 鼠标移动文本
298
+ 'label:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
299
+ // 鼠标抬起
300
+ 'label:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
301
+ // 文本获焦
302
+ 'label:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
303
+ // 文本新增
304
+ 'label:add': TextEventArgsPick<'data' | 'e' | 'model'>
305
+ // 文本更新
306
+ 'label:update': TextEventArgsPick<'data' | 'e' | 'model'>
307
+ // 文本清空
308
+ 'label:clear': TextEventArgsPick<'data' | 'e' | 'model'>
309
+ // 文本删除
310
+ 'label:delete': TextEventArgsPick<'data' | 'e' | 'model'>
311
+ // 文本新增
312
+ 'label:should-add': TextEventArgsPick<'data' | 'e' | 'model' | 'position'>
313
+ // 文本批量新增
314
+ 'label:batch-add': TextEventArgsPick<'data' | 'e' | 'model'>
315
+ // 文本更新
316
+ 'label:should-update': TextEventArgsPick<'data' | 'e' | 'model'>
317
+ // 文本删除
318
+ 'label:should-delete': TextEventArgsPick<'data' | 'e' | 'model'>
319
+ // 文本批量删除
320
+ 'label:batch-delete': TextEventArgsPick<'data' | 'e' | 'model'>
321
+ // 不允许增加文本
322
+ 'label:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
323
+ }
324
+
182
325
  /**
183
326
  * 连线事件
184
327
  */
@@ -240,26 +383,6 @@ interface CommonEventArgs {
240
383
  properties: Record<string, any>
241
384
  }
242
385
  }
243
- /**
244
- * 节点/边的文本更新
245
- */
246
- // TODO: 更新文本事件抛出的对象是否需要更详细?
247
- 'text:update': {
248
- data: {
249
- /**
250
- * 更新的文本
251
- */
252
- text: string
253
- /**
254
- * 节点/边的 id
255
- */
256
- id: string
257
- /**
258
- * 节点/边的类型
259
- */
260
- type: string
261
- }
262
- }
263
386
  /**
264
387
  * 进行画布平移或缩放等变化操作时触发
265
388
  */
@@ -281,6 +404,21 @@ interface CommonEventArgs {
281
404
  * 渲染后的画布数据
282
405
  */
283
406
  data: GraphData
407
+ /**
408
+ * 渲染后的画布 model
409
+ */
410
+ graphModel: GraphModel
411
+ }
412
+ /**
413
+ * 画布重新更新后触发. 即 lf.render(graphData)方法被调用后或者改变画布(graphModel)上的属性后触发。
414
+ * 如果是主动修改某个特定属性导致画布更新,想要在画布更新后做一些操作,建议注册事件后在回调函数中及时注销该事件,或者使用once事件代替on事件。
415
+ * 因为其他属性也可能导致画布更新,触发该事件。
416
+ */
417
+ 'graph:updated': {
418
+ /**
419
+ * 更新后的画布数据
420
+ */
421
+ data: GraphData
284
422
  }
285
423
  }
286
424
 
@@ -465,12 +603,13 @@ interface SelectionEventArgs {
465
603
  'selection:contextmenu': SelectionEventArgsPick<'data' | 'e' | 'position'>
466
604
  }
467
605
 
468
- export interface EventArgs
469
- extends NodeEventArgs,
470
- EdgeEventArgs,
471
- ConnectionEventArgs,
472
- CommonEventArgs,
473
- AnchorEventArgs,
474
- BlankEventArgs,
475
- HistoryEventArgs,
476
- SelectionEventArgs {}
606
+ // 此处主要是对事件参数进行聚合
607
+ export type EventArgs = NodeEventArgs &
608
+ EdgeEventArgs &
609
+ ConnectionEventArgs &
610
+ CommonEventArgs &
611
+ AnchorEventArgs &
612
+ BlankEventArgs &
613
+ HistoryEventArgs &
614
+ SelectionEventArgs &
615
+ TextEventArgs
@@ -1,6 +1,6 @@
1
1
  import { EventArgs } from './eventArgs'
2
2
 
3
- export interface EventType<T extends string = string> {
3
+ export type EventType<T extends string = string> = {
4
4
  readonly callback: EventCallback<T>
5
5
  readonly once: boolean
6
6
  }
@@ -74,10 +74,9 @@ export default class EventEmitter {
74
74
  */
75
75
  emit<T extends keyof EventArgs>(evts: T, eventArgs: CallbackArgs<T>): void
76
76
  emit<T extends string>(evts: T, eventArgs: CallbackArgs<T>): void
77
- emit(evts: string, eventArgs: EventCallback) {
77
+ emit(evts: string, eventArgs?: EventCallback) {
78
78
  evts?.split(',').forEach((evt) => {
79
79
  const events = this._events[evt] || []
80
- // TODO: 这是什么???
81
80
  const wildcardEvents = this._events[WILDCARD] || []
82
81
  // 实际的处理 emit 方法
83
82
  const doEmit = (es: EventType[]) => {
package/src/index.ts CHANGED
@@ -10,12 +10,17 @@ export function observer<P>(props: P) {
10
10
 
11
11
  export { LogicFlow, h, createRef, Component, LogicFlowUtil }
12
12
 
13
+ export * from './util'
14
+ export * from './tool'
13
15
  export * from './view'
14
16
  export * from './model'
15
17
  export * from './options'
16
18
  export * from './keyboard'
19
+ export * from './constant'
20
+ export * from './algorithm'
21
+ export * from './event/eventEmitter'
17
22
  export { ElementState, ModelType, ElementType, EventType } from './constant'
18
23
 
19
- export { formateAnchorConnectValidateData } from './util/node'
24
+ export { formatAnchorConnectValidateData } from './util/node'
20
25
 
21
26
  export default LogicFlow
@@ -2,6 +2,8 @@ import { isArray } from 'lodash-es'
2
2
  import Mousetrap, { MousetrapInstance } from 'mousetrap'
3
3
  import LogicFlow from '../LogicFlow'
4
4
 
5
+ export * from './shortcut'
6
+
5
7
  export type Action = 'keypress' | 'keydown' | 'keyup'
6
8
  export type Handler = (e: KeyboardEvent) => void
7
9
 
@@ -1,22 +1,28 @@
1
+ import { isEmpty } from 'lodash-es'
1
2
  import LogicFlow from '../LogicFlow'
3
+ import { map } from 'lodash-es'
2
4
  import GraphModel from '../model/GraphModel'
3
5
 
4
6
  import NodeData = LogicFlow.NodeData
5
7
  import EdgeData = LogicFlow.EdgeData
8
+ import NodeConfig = LogicFlow.NodeConfig
9
+ import EdgeConfig = LogicFlow.EdgeConfig
6
10
 
7
11
  let selected: LogicFlow.GraphData | null = null
8
12
 
9
- function translationNodeData(nodeData: NodeData, distance: number) {
13
+ export function translateNodeData(nodeData: NodeData, distance: number) {
10
14
  nodeData.x += distance
11
15
  nodeData.y += distance
12
- if (nodeData.text) {
16
+
17
+ if (!isEmpty(nodeData.text)) {
13
18
  nodeData.text.x += distance
14
19
  nodeData.text.y += distance
15
20
  }
21
+
16
22
  return nodeData
17
23
  }
18
24
 
19
- function translationEdgeData(edgeData: EdgeData, distance: number) {
25
+ export function translateEdgeData(edgeData: EdgeData, distance: number) {
20
26
  if (edgeData.startPoint) {
21
27
  edgeData.startPoint.x += distance
22
28
  edgeData.startPoint.y += distance
@@ -31,13 +37,78 @@ function translationEdgeData(edgeData: EdgeData, distance: number) {
31
37
  point.y += distance
32
38
  })
33
39
  }
34
- if (edgeData.text) {
40
+
41
+ if (!isEmpty(edgeData.text)) {
35
42
  edgeData.text.x += distance
36
43
  edgeData.text.y += distance
37
44
  }
38
45
  return edgeData
39
46
  }
40
47
 
48
+ export function transformNodeData(
49
+ nodeData: NodeData,
50
+ distance: number,
51
+ ): NodeConfig {
52
+ const { x, y, text } = nodeData
53
+ // 重新计算 text 的位置,保证粘贴后 text 位置和复制的原节点相对位置一致
54
+ const nextText = text
55
+ ? {
56
+ x: text.x + distance,
57
+ y: text.y + distance,
58
+ value: text.value,
59
+ }
60
+ : undefined
61
+
62
+ return {
63
+ ...nodeData,
64
+ id: '',
65
+ x: x + distance,
66
+ y: y + distance,
67
+ text: nextText,
68
+ }
69
+ }
70
+
71
+ export function transformEdgeData(
72
+ edgeData: EdgeData,
73
+ distance: number,
74
+ ): EdgeConfig {
75
+ const { startPoint, endPoint, pointsList, text, ...edgeConfig } = edgeData
76
+ // 清除原始边的 id
77
+ edgeConfig.id = ''
78
+
79
+ // 重新计算边的位置,包括 startPoint、endPoint、pointsList 以及 text
80
+ // TODO: 看这个是否可以提出一个通用方法,用于重新计算边的位置
81
+ const nextStartPoint = {
82
+ x: startPoint.x + distance,
83
+ y: startPoint.y + distance,
84
+ }
85
+ const nextEndPoint = {
86
+ x: endPoint.x + distance,
87
+ y: endPoint.y + distance,
88
+ }
89
+ const newPointsList: LogicFlow.Point[] = map(pointsList, (point) => {
90
+ return {
91
+ x: point.x + distance,
92
+ y: point.y + distance,
93
+ }
94
+ })
95
+ const nextText = text
96
+ ? {
97
+ ...text,
98
+ x: text.x + distance,
99
+ y: text.y + distance,
100
+ }
101
+ : undefined
102
+
103
+ return {
104
+ ...edgeConfig,
105
+ startPoint: nextStartPoint,
106
+ endPoint: nextEndPoint,
107
+ pointsList: newPointsList,
108
+ text: nextText,
109
+ }
110
+ }
111
+
41
112
  const TRANSLATION_DISTANCE = 40
42
113
  let CHILDREN_TRANSLATION_DISTANCE = 40
43
114
 
@@ -65,10 +136,10 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
65
136
  }
66
137
  selected = elements
67
138
  selected.nodes.forEach((node) =>
68
- translationNodeData(node, TRANSLATION_DISTANCE),
139
+ translateNodeData(node, TRANSLATION_DISTANCE),
69
140
  )
70
141
  selected.edges.forEach((edge) =>
71
- translationEdgeData(edge, TRANSLATION_DISTANCE),
142
+ translateEdgeData(edge, TRANSLATION_DISTANCE),
72
143
  )
73
144
  return false
74
145
  })
@@ -86,10 +157,10 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
86
157
  addElements.nodes.forEach((node) => lf.selectElementById(node.id, true))
87
158
  addElements.edges.forEach((edge) => lf.selectElementById(edge.id, true))
88
159
  selected.nodes.forEach((node) =>
89
- translationNodeData(node, TRANSLATION_DISTANCE),
160
+ translateNodeData(node, TRANSLATION_DISTANCE),
90
161
  )
91
162
  selected.edges.forEach((edge) =>
92
- translationEdgeData(edge, TRANSLATION_DISTANCE),
163
+ translateEdgeData(edge, TRANSLATION_DISTANCE),
93
164
  )
94
165
  CHILDREN_TRANSLATION_DISTANCE =
95
166
  CHILDREN_TRANSLATION_DISTANCE + TRANSLATION_DISTANCE
@@ -4,6 +4,7 @@ import LogicFlow from '../LogicFlow'
4
4
  import { ElementState } from '../constant'
5
5
 
6
6
  export namespace Model {
7
+ import PropertiesType = LogicFlow.PropertiesType
7
8
  export type AdditionStateDataType = Record<string, unknown>
8
9
  export type PropertyType = Record<string, unknown>
9
10
  export type VectorType = [number, number]
@@ -63,11 +64,21 @@ export namespace Model {
63
64
  }
64
65
 
65
66
  // 定义边界数据结构,左上坐标 + 右下坐标定位一个矩形
67
+ // TODO: 在使用该类型的 API 中,都要做声明,返回值格式已更新
66
68
  export type BoxBoundsPoint = {
67
- x1: number // Left Top X
68
- y1: number // Left Top Y
69
- x2: number // Right Bottom X
70
- y2: number // Right Bottom Y
69
+ minX: number // Left Top X
70
+ minY: number // Left Top Y
71
+ maxX: number // Right Bottom X
72
+ maxY: number // Right Bottom Y
73
+ }
74
+
75
+ export interface BoxBounds extends BoxBoundsPoint {
76
+ x: number
77
+ y: number
78
+ width: number
79
+ height: number
80
+ centerX: number
81
+ centerY: number
71
82
  }
72
83
 
73
84
  export type OutlineInfo = {
@@ -90,7 +101,7 @@ export namespace Model {
90
101
  centerY: number
91
102
  }
92
103
 
93
- export interface BaseModel {
104
+ export interface BaseModel<P extends PropertiesType = PropertiesType> {
94
105
  /**
95
106
  * 节点或边对应的 ID.
96
107
  *
@@ -139,11 +150,11 @@ export namespace Model {
139
150
  /**
140
151
  * 元素上的文本
141
152
  *
142
- * LogicFlow 中存在梁总文本:1. 脱离边和节点单独存在的问题;2. 必须和边、节点关联的文本
153
+ * LogicFlow 中存在两种文本:1. 脱离边和节点单独存在的问题;2. 必须和边、节点关联的文本
143
154
  * 此属性控制的是第二种。节点和边在删除、调整的同时,其关联的文本也会对应删除、调整。
144
155
  */
145
156
  text: LogicFlow.TextConfig
146
- properties: Record<string, unknown>
157
+ properties: P
147
158
 
148
159
  isSelected: boolean // 元素是否被选中
149
160
  isHovered: boolean // 鼠标是否悬停在元素上