@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
@@ -24,21 +24,37 @@ var __assign = (this && this.__assign) || function () {
24
24
  };
25
25
  return __assign.apply(this, arguments);
26
26
  };
27
+ var __read = (this && this.__read) || function (o, n) {
28
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
29
+ if (!m) return o;
30
+ var i = m.call(o), r, ar = [], e;
31
+ try {
32
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
33
+ }
34
+ catch (error) { e = { error: error }; }
35
+ finally {
36
+ try {
37
+ if (r && !r.done && (m = i["return"])) m.call(i);
38
+ }
39
+ finally { if (e) throw e.error; }
40
+ }
41
+ return ar;
42
+ };
27
43
  import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
28
- import Text from '../shape/Text';
29
- import Rect from '../shape/Rect';
30
- import BaseText from './BaseText';
31
- import { getBytesLength, getHtmlTextHeight, getSvgTextWidthHeight, } from '../../util';
44
+ import { Text, Rect } from '..';
45
+ import { BaseText } from '.';
46
+ import { getHtmlTextHeight, getSvgTextSize } from '../../util';
32
47
  var LineText = /** @class */ (function (_super) {
33
48
  __extends(LineText, _super);
34
- function LineText(config) {
35
- var _this = _super.call(this, config) || this;
36
- _this.setHoverON = function () {
49
+ function LineText(props) {
50
+ var _this = _super.call(this, props) || this;
51
+ // Hover 状态相关
52
+ _this.setHoverOn = function () {
37
53
  _this.setState({
38
54
  isHovered: true,
39
55
  });
40
56
  };
41
- _this.setHoverOFF = function () {
57
+ _this.setHoverOff = function () {
42
58
  _this.setState({
43
59
  isHovered: false,
44
60
  });
@@ -49,23 +65,22 @@ var LineText = /** @class */ (function (_super) {
49
65
  return _this;
50
66
  }
51
67
  LineText.prototype.getBackground = function () {
68
+ var isHovered = this.state.isHovered;
52
69
  var model = this.props.model;
70
+ var text = model.text;
53
71
  var style = model.getTextStyle();
54
- var text = model.text, modelWidth = model.width;
55
72
  var backgroundStyle = style.background || {};
56
- var isHovered = this.state.isHovered;
57
- if (isHovered && (style === null || style === void 0 ? void 0 : style.hover) && (style === null || style === void 0 ? void 0 : style.hover.background)) {
58
- backgroundStyle = __assign(__assign({}, backgroundStyle), style === null || style === void 0 ? void 0 : style.hover.background);
73
+ if (isHovered && style.hover && style.hover.background) {
74
+ backgroundStyle = __assign(__assign({}, backgroundStyle), style.hover.background);
59
75
  }
60
- // 存在文本并且文本背景不为透明时计算背景框
61
- if (text && text.value && backgroundStyle.fill !== 'transparent') {
62
- var _a = style !== null && style !== void 0 ? style : {}, fontSize = _a.fontSize, overflowMode = _a.overflowMode, lineHeight = _a.lineHeight, wrapPadding = _a.wrapPadding, textWidth = _a.textWidth;
63
- var value = text.value;
64
- var x = text.x, y = text.y;
65
- var rows = String(value).split(/[\r\n]/g);
66
- // 计算行数
76
+ // 当存在文本并且文本背景不为透明时,计算背景框
77
+ if ((text === null || text === void 0 ? void 0 : text.value) && (backgroundStyle === null || backgroundStyle === void 0 ? void 0 : backgroundStyle.fill) !== 'transparent') {
78
+ var fontSize = style.fontSize, textWidth = style.textWidth, lineHeight = style.lineHeight, overflowMode = style.overflowMode;
79
+ var wrapPadding = backgroundStyle.wrapPadding;
80
+ var rows = text === null || text === void 0 ? void 0 : text.value.split(/[\r\n]/g);
67
81
  var rowsLength = rows.length;
68
- var rectAttr = void 0;
82
+ var x = text.x, y = text.y;
83
+ var rectAttr = {};
69
84
  if (overflowMode === 'autoWrap' && textWidth) {
70
85
  var textHeight = getHtmlTextHeight({
71
86
  rows: rows,
@@ -78,69 +93,62 @@ var LineText = /** @class */ (function (_super) {
78
93
  rowsLength: rowsLength,
79
94
  className: 'lf-get-text-height',
80
95
  });
81
- rectAttr = __assign(__assign({}, backgroundStyle), { x: x - 1, y: y - 1, width: textWidth, height: textHeight });
96
+ rectAttr = __assign(__assign({}, backgroundStyle), { x: x, y: y, width: textWidth, height: textHeight });
82
97
  }
83
98
  else {
84
- // 计算文本中最长的一行的字节数
85
- var longestBytes_1 = 0;
86
- rows &&
87
- rows.forEach(function (item) {
88
- var rowByteLength = getBytesLength(item);
89
- longestBytes_1 =
90
- rowByteLength > longestBytes_1 ? rowByteLength : longestBytes_1;
91
- });
92
- // 背景框宽度,最长一行字节数/2 * fontsize + 2
93
- // 背景框宽度, 行数 * fontsize + 2
94
- var _b = getSvgTextWidthHeight({
95
- rows: rows,
96
- fontSize: fontSize,
97
- rowsLength: rowsLength,
98
- }), width = _b.width, height = _b.height;
99
+ // 背景框宽度,最长一行字节数 / 2 * fontSize + 2
100
+ // 背景框宽度,行数 * fontSize + 2
101
+ var _a = getSvgTextSize({ rows: rows, rowsLength: rowsLength, fontSize: fontSize }), width = _a.width, height = _a.height;
99
102
  if (overflowMode === 'ellipsis') {
100
103
  // https://github.com/didi/LogicFlow/issues/1151
101
104
  // 边上的文字过长(使用"ellipsis"模式)出现省略号,背景也需要进行宽度的重新计算
102
105
  // 跟Text.tsx保持同样的计算逻辑(overflowMode === 'ellipsis')
103
106
  // Text.tsx使用textRealWidth=textWidth || width
104
107
  // Text.tsx使用foreignObjectHeight = fontSize + 2;
105
- width = textWidth || modelWidth;
108
+ width = textWidth;
106
109
  height = fontSize + 2;
107
110
  }
108
- // 根据设置的padding调整width, height, x, y的值
111
+ // 根据设置的 padding 调整 width, height, x, y 的值
112
+ // TODO: 下面方法感觉可以提取成工具方法
109
113
  if (typeof backgroundStyle.wrapPadding === 'string') {
110
- var paddings = backgroundStyle.wrapPadding
114
+ var padding = backgroundStyle.wrapPadding
111
115
  .split(',')
112
116
  .filter(function (padding) { return padding.trim(); })
113
117
  .map(function (padding) { return parseFloat(padding.trim()); });
114
- if (paddings.length > 0 && paddings.length <= 4) {
115
- if (paddings.length === 1) {
116
- paddings = [paddings[0], paddings[0], paddings[0], paddings[0]];
118
+ if (padding.length > 0 && padding.length <= 4) {
119
+ if (padding.length === 1) {
120
+ var _b = __read(padding, 1), allSides = _b[0];
121
+ padding = [allSides, allSides, allSides, allSides];
117
122
  }
118
- else if (paddings.length === 2) {
119
- paddings = [paddings[0], paddings[1], paddings[0], paddings[1]];
123
+ else if (padding.length === 2) {
124
+ var _c = __read(padding, 2), vertical = _c[0], horizontal = _c[1];
125
+ padding = [vertical, horizontal, vertical, horizontal];
120
126
  }
121
- else if (paddings.length === 3) {
122
- paddings = [paddings[0], paddings[1], paddings[2], paddings[1]];
127
+ else if (padding.length === 3) {
128
+ var _d = __read(padding, 3), top_1 = _d[0], horizontal = _d[1], bottom_1 = _d[2];
129
+ padding = [top_1, horizontal, bottom_1, horizontal];
123
130
  }
124
- width += paddings[1] + paddings[3];
125
- height += paddings[0] + paddings[2];
126
- x = x + (paddings[1] - paddings[3]) / 2;
127
- y = y + (paddings[2] - paddings[0]) / 2;
131
+ var _e = __read(padding, 4), top_2 = _e[0], right = _e[1], bottom = _e[2], left = _e[3];
132
+ width += right + left;
133
+ height += top_2 + bottom;
134
+ x = x + (right - left) / 2;
135
+ y = y + (bottom - top_2) / 2;
128
136
  }
129
137
  }
130
138
  rectAttr = __assign(__assign({}, backgroundStyle), { x: x - 1, y: y - 1, width: width, height: height });
131
139
  }
132
140
  return _jsx(Rect, __assign({}, rectAttr));
133
141
  }
142
+ return null;
134
143
  };
135
144
  LineText.prototype.getShape = function () {
136
145
  var model = this.props.model;
137
- var text = model.text;
138
- var value = text.value, x = text.x, y = text.y;
146
+ var _a = model.text, x = _a.x, y = _a.y, value = _a.value;
139
147
  if (!value)
140
148
  return null;
141
149
  var style = model.getTextStyle();
142
- var attr = __assign({ x: x, y: y, className: 'lf-element-text', value: value }, style);
143
- return (_jsxs("g", { className: "lf-line-text", onMouseEnter: this.setHoverON, onMouseLeave: this.setHoverOFF, children: [this.getBackground(), _jsx(Text, __assign({}, attr, { model: model }))] }));
150
+ var attrs = __assign({ x: x, y: y, value: value, model: model, className: 'lf-element-text' }, style);
151
+ return (_jsxs("g", { className: "lf-line-text", onMouseEnter: this.setHoverOn, onMouseLeave: this.setHoverOff, children: [this.getBackground(), _jsx(Text, __assign({}, attrs))] }));
144
152
  };
145
153
  return LineText;
146
154
  }(BaseText));
@@ -1 +1 @@
1
- {"version":3,"file":"LineText.js","sourceRoot":"","sources":["../../../src/view/text/LineText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LineText.js","sourceRoot":"","sources":["../../../src/view/text/LineText.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { ComponentType, createElement as h } from 'preact/compat';
2
2
  import { Options as LFOptions } from './options';
3
3
  import * as _Model from './model';
4
- import { BaseEdgeModel, BaseNodeModel, EditConfigInterface, GraphModel, SnaplineModel, ZoomParamType } from './model';
5
- import Dnd from './view/behavior/dnd';
6
- import Tool from './tool/tool';
7
- import Keyboard from './keyboard';
4
+ import { BaseEdgeModel, BaseNodeModel, IEditConfigType, GraphModel, SnaplineModel, ZoomParamType } from './model';
5
+ import { Dnd } from './view/behavior';
6
+ import Tool from './tool';
8
7
  import History from './history';
8
+ import Keyboard from './keyboard';
9
9
  import { EventCallback, CallbackArgs, EventArgs } from './event/eventEmitter';
10
10
  import { EventType, SegmentDirection } from './constant';
11
11
  import Extension = LogicFlow.Extension;
12
- import RegisteredExtension = LogicFlow.RegisteredExtension;
12
+ import ExtensionConfig = LogicFlow.ExtensionConfig;
13
13
  import ExtensionConstructor = LogicFlow.ExtensionConstructor;
14
14
  import GraphConfigData = LogicFlow.GraphConfigData;
15
15
  import NodeConfig = LogicFlow.NodeConfig;
@@ -21,10 +21,12 @@ import RegisterConfig = LogicFlow.RegisterConfig;
21
21
  import GraphElements = LogicFlow.GraphElements;
22
22
  import Position = LogicFlow.Position;
23
23
  import PointTuple = LogicFlow.PointTuple;
24
- import ExtensionRender = LogicFlow.ExtensionRender;
24
+ import ExtensionRenderFunc = LogicFlow.ExtensionRenderFunc;
25
25
  import RegisterElementFunc = LogicFlow.RegisterElementFunc;
26
26
  import PropertiesType = LogicFlow.PropertiesType;
27
27
  import ClientPosition = LogicFlow.ClientPosition;
28
+ import ExtensionDefinition = LogicFlow.ExtensionDefinition;
29
+ import ExtensionType = LogicFlow.ExtensionType;
28
30
  declare const pluginFlag: unique symbol;
29
31
  export declare class LogicFlow {
30
32
  readonly container: HTMLElement;
@@ -36,10 +38,10 @@ export declare class LogicFlow {
36
38
  dnd: Dnd;
37
39
  tool: Tool;
38
40
  snaplineModel?: SnaplineModel;
39
- components: ExtensionRender[];
40
- readonly plugins: ExtensionConstructor[];
41
- static extensions: Map<string, RegisteredExtension>;
42
- extension: Record<string, Extension>;
41
+ components: ExtensionRenderFunc[];
42
+ readonly plugins: ExtensionType[];
43
+ static extensions: Map<string, ExtensionConfig>;
44
+ extension: Record<string, Extension | ExtensionDefinition>;
43
45
  readonly width?: number;
44
46
  readonly height?: number;
45
47
  /**
@@ -48,8 +50,8 @@ export declare class LogicFlow {
48
50
  * 详情请参考 adapter docs
49
51
  * 包括 adapterIn 和 adapterOut 两个方法
50
52
  */
51
- private adapterIn?;
52
- private adapterOut?;
53
+ adapterIn?: (data: unknown) => GraphData;
54
+ adapterOut?: (data: GraphData, ...rest: any) => unknown;
53
55
  [propName: string]: any;
54
56
  private initContainer;
55
57
  protected get [Symbol.toStringTag](): string;
@@ -120,27 +122,27 @@ export declare class LogicFlow {
120
122
  * 获取所有以此节点为终点的边
121
123
  * @param { string } nodeId
122
124
  */
123
- getNodeIncomingEdge(nodeId: string): _Model.BaseEdgeModel[];
125
+ getNodeIncomingEdge(nodeId: string): _Model.BaseEdgeModel<PropertiesType>[];
124
126
  /**
125
127
  * 获取所有以此节点为起点的边
126
128
  * @param {string} nodeId
127
129
  */
128
- getNodeOutgoingEdge(nodeId: string): _Model.BaseEdgeModel[];
130
+ getNodeOutgoingEdge(nodeId: string): _Model.BaseEdgeModel<PropertiesType>[];
129
131
  /**
130
132
  * 获取节点连接到的所有起始节点
131
133
  * @param {string} nodeId
132
134
  */
133
- getNodeIncomingNode(nodeId: string): _Model.BaseNodeModel[];
135
+ getNodeIncomingNode(nodeId: string): _Model.BaseNodeModel<PropertiesType>[];
134
136
  /**
135
137
  * 获取节点连接到的所有目标节点
136
138
  * @param {string} nodeId
137
139
  */
138
- getNodeOutgoingNode(nodeId: string): _Model.BaseNodeModel[];
140
+ getNodeOutgoingNode(nodeId: string): _Model.BaseNodeModel<PropertiesType>[];
139
141
  /**
140
142
  * 内部保留方法
141
143
  * 创建一个fakeNode,用于dnd插件拖动节点进画布的时候使用。
142
144
  */
143
- createFakeNode(nodeConfig: NodeConfig): _Model.BaseNodeModel | null;
145
+ createFakeNode(nodeConfig: NodeConfig): _Model.BaseNodeModel<PropertiesType> | null;
144
146
  /**
145
147
  * 内部保留方法
146
148
  * 移除fakeNode
@@ -253,7 +255,7 @@ export declare class LogicFlow {
253
255
  * @param edges
254
256
  * @param distance
255
257
  */
256
- addElements({ nodes, edges }: GraphConfigData, distance?: number): GraphElements | undefined;
258
+ addElements({ nodes, edges }: GraphConfigData, distance?: number): GraphElements;
257
259
  /**
258
260
  * 将图形选中
259
261
  * @param id 选择元素ID
@@ -351,12 +353,12 @@ export declare class LogicFlow {
351
353
  * @param {object} config 编辑配置
352
354
  * @see todo docs link
353
355
  */
354
- updateEditConfig(config: EditConfigInterface): void;
356
+ updateEditConfig(config: Partial<IEditConfigType>): void;
355
357
  /**
356
358
  * 获取流程图当前编辑相关设置
357
359
  * @see todo docs link
358
360
  */
359
- getEditConfig(): Partial<_Model.EditConfigModel>;
361
+ getEditConfig(): _Model.IEditConfigType;
360
362
  /*********************************************************
361
363
  * Graph 相关方法
362
364
  ********************************************************/
@@ -560,7 +562,7 @@ export declare class LogicFlow {
560
562
  * @param extension
561
563
  * @param props
562
564
  */
563
- static use(extension: ExtensionConstructor, props?: Record<string, unknown>): void;
565
+ static use(extension: ExtensionConstructor | ExtensionDefinition, props?: Record<string, unknown>): void;
564
566
  private installPlugins;
565
567
  /**
566
568
  * 加载插件-内部方法
@@ -568,18 +570,24 @@ export declare class LogicFlow {
568
570
  private installPlugin;
569
571
  }
570
572
  export declare namespace LogicFlow {
573
+ /**
574
+ * LogicFlow init Options
575
+ */
571
576
  interface Options extends LFOptions.Common {
572
577
  }
573
578
  type DomAttributes = {
574
579
  className?: string;
575
580
  [key: string]: string | undefined;
576
581
  };
577
- type PropertiesType = {
582
+ interface PropertiesType {
578
583
  width?: number;
579
584
  height?: number;
580
585
  rx?: number;
581
586
  ry?: number;
582
- } & Record<string, any>;
587
+ style?: LogicFlow.CommonTheme;
588
+ textStyle?: LogicFlow.CommonTheme;
589
+ [key: string]: any;
590
+ }
583
591
  type AttributesType = Record<string, any>;
584
592
  type VectorData = {
585
593
  deltaX: number;
@@ -623,9 +631,37 @@ export declare namespace LogicFlow {
623
631
  };
624
632
  type TextConfig = {
625
633
  value: string;
634
+ x: number;
635
+ y: number;
636
+ editable?: boolean;
637
+ draggable?: boolean;
638
+ };
639
+ type LabelConfig = {
640
+ id?: string;
641
+ x: number;
642
+ y: number;
643
+ content?: string;
644
+ value: string;
645
+ rotate?: number;
646
+ style?: h.JSX.CSSProperties;
626
647
  editable?: boolean;
627
648
  draggable?: boolean;
628
- } & Point;
649
+ labelWidth?: number;
650
+ textOverflowMode?: 'ellipsis' | 'wrap' | 'clip' | 'nowrap' | 'default';
651
+ vertical?: boolean;
652
+ };
653
+ type LabelOption = {
654
+ isVertical: boolean;
655
+ isMultiple: boolean;
656
+ maxCount?: number;
657
+ };
658
+ interface LabelData extends LabelConfig {
659
+ id: string;
660
+ x: number;
661
+ y: number;
662
+ content: string;
663
+ value: string;
664
+ }
629
665
  type AppendConfig = {
630
666
  startIndex: number;
631
667
  endIndex: number;
@@ -662,16 +698,18 @@ export declare namespace LogicFlow {
662
698
  properties?: Record<string, unknown>;
663
699
  [key: string]: any;
664
700
  };
665
- interface NodeConfig {
701
+ interface NodeConfig<P extends PropertiesType = PropertiesType> {
666
702
  id?: string;
667
703
  type: string;
668
704
  x: number;
669
705
  y: number;
670
706
  text?: TextConfig | string;
671
707
  zIndex?: number;
672
- properties?: PropertiesType;
708
+ properties?: P;
673
709
  virtual?: boolean;
674
710
  rotate?: number;
711
+ rotatable?: boolean;
712
+ resizable?: boolean;
675
713
  [key: string]: any;
676
714
  }
677
715
  interface NodeData extends NodeConfig {
@@ -679,7 +717,7 @@ export declare namespace LogicFlow {
679
717
  text?: TextConfig;
680
718
  [key: string]: unknown;
681
719
  }
682
- interface EdgeConfig {
720
+ interface EdgeConfig<P extends PropertiesType = PropertiesType> {
683
721
  id?: string;
684
722
  type?: string;
685
723
  sourceNodeId: string;
@@ -691,7 +729,7 @@ export declare namespace LogicFlow {
691
729
  text?: TextConfig | string;
692
730
  pointsList?: Point[];
693
731
  zIndex?: number;
694
- properties?: PropertiesType;
732
+ properties?: P;
695
733
  }
696
734
  interface EdgeData extends EdgeConfig {
697
735
  id: string;
@@ -735,6 +773,8 @@ export declare namespace LogicFlow {
735
773
  radius?: number;
736
774
  rx?: number;
737
775
  ry?: number;
776
+ width?: number;
777
+ height?: number;
738
778
  path?: string;
739
779
  [key: string]: unknown;
740
780
  };
@@ -799,6 +839,7 @@ export declare namespace LogicFlow {
799
839
  * ellipsis: 超出省略
800
840
  */
801
841
  overflowMode?: 'default' | 'autoWrap' | 'ellipsis';
842
+ textWidth?: number;
802
843
  background?: RectTheme;
803
844
  /**
804
845
  * 背景区域 padding
@@ -908,8 +949,8 @@ export declare namespace LogicFlow {
908
949
  coordinate: Position;
909
950
  };
910
951
  export type FocusOnArgsType = FocusOnById | FocusOnByCoordinate;
911
- export type BaseNodeModelCtor = typeof BaseNodeModel;
912
- export type BaseEdgeModelCtor = typeof BaseEdgeModel;
952
+ export type BaseNodeModelCtor = typeof BaseNodeModel<PropertiesType>;
953
+ export type BaseEdgeModelCtor = typeof BaseEdgeModel<PropertiesType>;
913
954
  export type GraphElementCtor = BaseNodeModelCtor | BaseEdgeModelCtor;
914
955
  export type GraphElement = BaseNodeModel | BaseEdgeModel;
915
956
  export type GraphElements = {
@@ -936,26 +977,33 @@ export declare namespace LogicFlow {
936
977
  export interface LogicFlowConstructor {
937
978
  new (options: LFOptions.Definition): LogicFlow;
938
979
  }
939
- export type RegisteredExtension = {
980
+ /**
981
+ * Extension 插件类型
982
+ */
983
+ export type ExtensionType = ExtensionConstructor | ExtensionDefinition;
984
+ export type ExtensionConfig = {
940
985
  [pluginFlag]: symbol;
941
- extension: ExtensionConstructor;
942
- props?: Record<string, unknown>;
986
+ extension: ExtensionType;
987
+ props?: Record<string, any>;
943
988
  };
944
- export type ExtensionProps = {
989
+ export type IExtensionProps = {
945
990
  lf: LogicFlow;
946
991
  LogicFlow: LogicFlowConstructor;
947
- options: Record<string, unknown>;
948
992
  props?: Record<string, unknown>;
993
+ options: Record<string, unknown>;
949
994
  };
950
995
  export interface ExtensionConstructor {
951
996
  pluginName: string;
952
- new (props: ExtensionProps): Extension;
997
+ new (props: IExtensionProps): Extension;
953
998
  }
954
- export type ExtensionRender = (lf: LogicFlow, container: HTMLElement) => void;
999
+ export type ExtensionRenderFunc = (lf: LogicFlow, container: HTMLElement) => void;
1000
+ export type ExtensionDefinition = {
1001
+ pluginName: string;
1002
+ install?: (lf: LogicFlow, LFCtor: LogicFlowConstructor) => void;
1003
+ render?: ExtensionRenderFunc;
1004
+ };
955
1005
  export interface Extension {
956
- readonly pluginName?: string;
957
- install?: (lf: LogicFlow, logicFlow: LogicFlowConstructor) => void;
958
- render?: ExtensionRender;
1006
+ render: ExtensionRenderFunc;
959
1007
  destroy?: () => void;
960
1008
  }
961
1009
  export {};