@logicflow/core 2.2.0 → 2.2.2

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 (361) hide show
  1. package/dist/docs/api/logicflow-constructor/index.en.md +106 -0
  2. package/dist/docs/api/logicflow-constructor/index.zh.md +106 -0
  3. package/dist/docs/api/logicflow-constructor/use.en.md +61 -0
  4. package/dist/docs/api/logicflow-constructor/use.zh.md +61 -0
  5. package/dist/docs/api/logicflow-instance/canvas.en.md +197 -0
  6. package/dist/docs/api/logicflow-instance/canvas.zh.md +199 -0
  7. package/dist/docs/api/logicflow-instance/edge.en.md +273 -0
  8. package/dist/docs/api/logicflow-instance/edge.zh.md +273 -0
  9. package/dist/docs/api/logicflow-instance/edit-config.en.md +59 -0
  10. package/dist/docs/api/logicflow-instance/edit-config.zh.md +59 -0
  11. package/dist/docs/api/logicflow-instance/element.en.md +375 -0
  12. package/dist/docs/api/logicflow-instance/element.zh.md +379 -0
  13. package/dist/docs/api/logicflow-instance/event.en.md +326 -0
  14. package/dist/docs/api/logicflow-instance/event.zh.md +406 -0
  15. package/dist/docs/api/logicflow-instance/history.en.md +38 -0
  16. package/dist/docs/api/logicflow-instance/history.zh.md +38 -0
  17. package/dist/docs/api/logicflow-instance/index.en.md +41 -0
  18. package/dist/docs/api/logicflow-instance/index.zh.md +41 -0
  19. package/dist/docs/api/logicflow-instance/node.en.md +308 -0
  20. package/dist/docs/api/logicflow-instance/node.zh.md +308 -0
  21. package/dist/docs/api/logicflow-instance/register.en.md +76 -0
  22. package/dist/docs/api/logicflow-instance/register.zh.md +76 -0
  23. package/dist/docs/api/logicflow-instance/render-and-data.en.md +179 -0
  24. package/dist/docs/api/logicflow-instance/render-and-data.zh.md +181 -0
  25. package/dist/docs/api/logicflow-instance/text.en.md +60 -0
  26. package/dist/docs/api/logicflow-instance/text.zh.md +60 -0
  27. package/dist/docs/api/logicflow-instance/theme.en.md +179 -0
  28. package/dist/docs/api/logicflow-instance/theme.zh.md +179 -0
  29. package/dist/docs/api/runtime-model/edgeModel.en.md +29 -0
  30. package/dist/docs/api/runtime-model/edgeModel.zh.md +325 -0
  31. package/dist/docs/api/runtime-model/graphModel.en.md +275 -0
  32. package/dist/docs/api/runtime-model/graphModel.zh.md +1153 -0
  33. package/dist/docs/api/runtime-model/nodeModel.en.md +37 -0
  34. package/dist/docs/api/runtime-model/nodeModel.zh.md +644 -0
  35. package/dist/docs/api/type/MainTypes.en.md +598 -0
  36. package/dist/docs/api/type/MainTypes.zh.md +867 -0
  37. package/dist/docs/api/type/Theme.en.md +187 -0
  38. package/dist/docs/api/type/Theme.zh.md +187 -0
  39. package/dist/docs/api/type/canvas-types.en.md +25 -0
  40. package/dist/docs/api/type/canvas-types.zh.md +25 -0
  41. package/dist/docs/api/type/index.en.md +96 -0
  42. package/dist/docs/api/type/index.zh.md +99 -0
  43. package/dist/docs/api/type/node-types.en.md +21 -0
  44. package/dist/docs/api/type/node-types.zh.md +21 -0
  45. package/dist/docs/api/type/plugin-types.en.md +24 -0
  46. package/dist/docs/api/type/plugin-types.zh.md +24 -0
  47. package/dist/docs/index.md +11 -0
  48. package/dist/docs/tutorial/about.en.md +38 -0
  49. package/dist/docs/tutorial/about.zh.md +65 -0
  50. package/dist/docs/tutorial/advanced/dnd.en.md +62 -0
  51. package/dist/docs/tutorial/advanced/dnd.zh.md +52 -0
  52. package/dist/docs/tutorial/advanced/edge.en.md +64 -0
  53. package/dist/docs/tutorial/advanced/edge.zh.md +66 -0
  54. package/dist/docs/tutorial/advanced/keyboard.en.md +70 -0
  55. package/dist/docs/tutorial/advanced/keyboard.zh.md +67 -0
  56. package/dist/docs/tutorial/advanced/node.en.md +338 -0
  57. package/dist/docs/tutorial/advanced/node.zh.md +338 -0
  58. package/dist/docs/tutorial/advanced/react.en.md +106 -0
  59. package/dist/docs/tutorial/advanced/react.zh.md +114 -0
  60. package/dist/docs/tutorial/advanced/silent-mode.en.md +75 -0
  61. package/dist/docs/tutorial/advanced/silent-mode.zh.md +71 -0
  62. package/dist/docs/tutorial/advanced/snapline.en.md +54 -0
  63. package/dist/docs/tutorial/advanced/vue.en.md +249 -0
  64. package/dist/docs/tutorial/advanced/vue.zh.md +248 -0
  65. package/dist/docs/tutorial/ai.en.md +64 -0
  66. package/dist/docs/tutorial/ai.zh.md +64 -0
  67. package/dist/docs/tutorial/basic/background.en.md +50 -0
  68. package/dist/docs/tutorial/basic/canvas.en.md +164 -0
  69. package/dist/docs/tutorial/basic/canvas.zh.md +183 -0
  70. package/dist/docs/tutorial/basic/class.en.md +106 -0
  71. package/dist/docs/tutorial/basic/class.zh.md +103 -0
  72. package/dist/docs/tutorial/basic/edge.en.md +151 -0
  73. package/dist/docs/tutorial/basic/edge.zh.md +152 -0
  74. package/dist/docs/tutorial/basic/event.en.md +70 -0
  75. package/dist/docs/tutorial/basic/event.zh.md +66 -0
  76. package/dist/docs/tutorial/basic/grid.en.md +77 -0
  77. package/dist/docs/tutorial/basic/node.en.md +358 -0
  78. package/dist/docs/tutorial/basic/node.zh.md +318 -0
  79. package/dist/docs/tutorial/basic/theme.en.md +154 -0
  80. package/dist/docs/tutorial/basic/theme.zh.md +157 -0
  81. package/dist/docs/tutorial/extension/adapter.en.md +446 -0
  82. package/dist/docs/tutorial/extension/adapter.zh.md +429 -0
  83. package/dist/docs/tutorial/extension/bpmn-element.en.md +1427 -0
  84. package/dist/docs/tutorial/extension/bpmn-element.zh.md +1472 -0
  85. package/dist/docs/tutorial/extension/control.en.md +117 -0
  86. package/dist/docs/tutorial/extension/control.zh.md +118 -0
  87. package/dist/docs/tutorial/extension/curved-edge.en.md +46 -0
  88. package/dist/docs/tutorial/extension/curved-edge.zh.md +46 -0
  89. package/dist/docs/tutorial/extension/custom.en.md +142 -0
  90. package/dist/docs/tutorial/extension/custom.zh.md +138 -0
  91. package/dist/docs/tutorial/extension/dnd-panel.en.md +109 -0
  92. package/dist/docs/tutorial/extension/dnd-panel.zh.md +109 -0
  93. package/dist/docs/tutorial/extension/dynamic-group.en.md +606 -0
  94. package/dist/docs/tutorial/extension/dynamic-group.zh.md +606 -0
  95. package/dist/docs/tutorial/extension/group.en.md +217 -0
  96. package/dist/docs/tutorial/extension/group.zh.md +209 -0
  97. package/dist/docs/tutorial/extension/highlight.en.md +50 -0
  98. package/dist/docs/tutorial/extension/highlight.zh.md +50 -0
  99. package/dist/docs/tutorial/extension/insert-node-in-polyline.en.md +52 -0
  100. package/dist/docs/tutorial/extension/insert-node-in-polyline.zh.md +47 -0
  101. package/dist/docs/tutorial/extension/intro.en.md +72 -0
  102. package/dist/docs/tutorial/extension/intro.zh.md +95 -0
  103. package/dist/docs/tutorial/extension/label.en.md +136 -0
  104. package/dist/docs/tutorial/extension/label.zh.md +135 -0
  105. package/dist/docs/tutorial/extension/layout.en.md +156 -0
  106. package/dist/docs/tutorial/extension/layout.zh.md +156 -0
  107. package/dist/docs/tutorial/extension/menu.en.md +319 -0
  108. package/dist/docs/tutorial/extension/menu.zh.md +377 -0
  109. package/dist/docs/tutorial/extension/minimap.en.md +164 -0
  110. package/dist/docs/tutorial/extension/minimap.zh.md +180 -0
  111. package/dist/docs/tutorial/extension/node-resize.en.md +199 -0
  112. package/dist/docs/tutorial/extension/node-resize.zh.md +221 -0
  113. package/dist/docs/tutorial/extension/pool.en.md +227 -0
  114. package/dist/docs/tutorial/extension/pool.zh.md +227 -0
  115. package/dist/docs/tutorial/extension/proximity-connect.en.md +104 -0
  116. package/dist/docs/tutorial/extension/proximity-connect.zh.md +107 -0
  117. package/dist/docs/tutorial/extension/selection.en.md +166 -0
  118. package/dist/docs/tutorial/extension/selection.zh.md +150 -0
  119. package/dist/docs/tutorial/extension/snapshot.en.md +276 -0
  120. package/dist/docs/tutorial/extension/snapshot.zh.md +276 -0
  121. package/dist/docs/tutorial/get-started.en.md +501 -0
  122. package/dist/docs/tutorial/get-started.zh.md +139 -0
  123. package/dist/docs/tutorial/update.en.md +213 -0
  124. package/dist/docs/tutorial/update.zh.md +212 -0
  125. package/dist/index.css +3 -2
  126. package/dist/index.min.js +1 -1
  127. package/dist/index.min.js.map +1 -1
  128. package/es/LogicFlow.d.ts +9 -0
  129. package/es/LogicFlow.js +0 -1
  130. package/es/constant/index.d.ts +1 -1
  131. package/es/constant/index.js +1 -1
  132. package/es/constant/theme.d.ts +136 -0
  133. package/es/constant/theme.js +680 -0
  134. package/es/index.css +3 -2
  135. package/es/model/GraphModel.d.ts +10 -2
  136. package/es/model/GraphModel.js +48 -14
  137. package/es/model/TransformModel.js +9 -9
  138. package/es/model/edge/BaseEdgeModel.js +7 -2
  139. package/es/model/edge/PolylineEdgeModel.d.ts +7 -0
  140. package/es/model/edge/PolylineEdgeModel.js +136 -7
  141. package/es/model/node/BaseNodeModel.d.ts +12 -1
  142. package/es/model/node/BaseNodeModel.js +9 -2
  143. package/es/model/node/HtmlNodeModel.d.ts +12 -0
  144. package/es/model/node/HtmlNodeModel.js +19 -0
  145. package/es/model/node/PolygonNodeModel.js +3 -3
  146. package/es/options.d.ts +4 -2
  147. package/es/style/index.css +3 -2
  148. package/es/style/index.less +3 -2
  149. package/es/style/raw.d.ts +1 -1
  150. package/es/style/raw.js +1 -1
  151. package/es/tool/MultipleSelectTool.js +10 -5
  152. package/es/util/drag.js +0 -1
  153. package/es/util/edge.d.ts +40 -1
  154. package/es/util/edge.js +43 -9
  155. package/es/util/geometry.d.ts +8 -0
  156. package/es/util/geometry.js +79 -0
  157. package/es/util/theme.d.ts +2 -65
  158. package/es/util/theme.js +4 -281
  159. package/es/view/Anchor.d.ts +1 -0
  160. package/es/view/Anchor.js +24 -21
  161. package/es/view/Control.d.ts +5 -0
  162. package/es/view/Control.js +44 -57
  163. package/es/view/edge/BaseEdge.js +9 -0
  164. package/es/view/edge/PolylineEdge.js +13 -2
  165. package/es/view/node/BaseNode.d.ts +1 -0
  166. package/es/view/node/BaseNode.js +23 -11
  167. package/es/view/node/HtmlNode.js +2 -4
  168. package/es/view/overlay/CanvasOverlay.js +5 -2
  169. package/es/view/overlay/Grid.d.ts +12 -1
  170. package/es/view/overlay/Grid.js +85 -23
  171. package/es/view/overlay/OutlineOverlay.d.ts +1 -0
  172. package/es/view/overlay/OutlineOverlay.js +18 -17
  173. package/es/view/overlay/gridConfig.d.ts +46 -0
  174. package/es/view/overlay/gridConfig.js +99 -0
  175. package/es/view/shape/Polygon.d.ts +0 -7
  176. package/es/view/shape/Polygon.js +12 -43
  177. package/lib/LogicFlow.d.ts +9 -0
  178. package/lib/LogicFlow.js +0 -1
  179. package/lib/constant/index.d.ts +1 -1
  180. package/lib/constant/index.js +16 -2
  181. package/lib/constant/theme.d.ts +136 -0
  182. package/lib/constant/theme.js +683 -0
  183. package/lib/index.css +3 -2
  184. package/lib/model/GraphModel.d.ts +10 -2
  185. package/lib/model/GraphModel.js +49 -15
  186. package/lib/model/TransformModel.js +9 -9
  187. package/lib/model/edge/BaseEdgeModel.js +7 -2
  188. package/lib/model/edge/PolylineEdgeModel.d.ts +7 -0
  189. package/lib/model/edge/PolylineEdgeModel.js +136 -7
  190. package/lib/model/node/BaseNodeModel.d.ts +12 -1
  191. package/lib/model/node/BaseNodeModel.js +9 -2
  192. package/lib/model/node/HtmlNodeModel.d.ts +12 -0
  193. package/lib/model/node/HtmlNodeModel.js +19 -0
  194. package/lib/model/node/PolygonNodeModel.js +3 -3
  195. package/lib/options.d.ts +4 -2
  196. package/lib/style/index.css +3 -2
  197. package/lib/style/index.less +3 -2
  198. package/lib/style/raw.d.ts +1 -1
  199. package/lib/style/raw.js +1 -1
  200. package/lib/tool/MultipleSelectTool.js +10 -5
  201. package/lib/util/drag.js +0 -1
  202. package/lib/util/edge.d.ts +40 -1
  203. package/lib/util/edge.js +43 -9
  204. package/lib/util/geometry.d.ts +8 -0
  205. package/lib/util/geometry.js +81 -1
  206. package/lib/util/theme.d.ts +2 -65
  207. package/lib/util/theme.js +15 -292
  208. package/lib/view/Anchor.d.ts +1 -0
  209. package/lib/view/Anchor.js +24 -21
  210. package/lib/view/Control.d.ts +5 -0
  211. package/lib/view/Control.js +44 -57
  212. package/lib/view/edge/BaseEdge.js +9 -0
  213. package/lib/view/edge/PolylineEdge.js +13 -2
  214. package/lib/view/node/BaseNode.d.ts +1 -0
  215. package/lib/view/node/BaseNode.js +22 -10
  216. package/lib/view/node/HtmlNode.js +1 -3
  217. package/lib/view/overlay/CanvasOverlay.js +5 -2
  218. package/lib/view/overlay/Grid.d.ts +12 -1
  219. package/lib/view/overlay/Grid.js +83 -21
  220. package/lib/view/overlay/OutlineOverlay.d.ts +1 -0
  221. package/lib/view/overlay/OutlineOverlay.js +18 -17
  222. package/lib/view/overlay/gridConfig.d.ts +46 -0
  223. package/lib/view/overlay/gridConfig.js +104 -0
  224. package/lib/view/shape/Polygon.d.ts +0 -7
  225. package/lib/view/shape/Polygon.js +13 -45
  226. package/package.json +9 -2
  227. package/scripts/postinstall-ai-prompt.js +67 -0
  228. package/.turbo/turbo-build$colon$dev.log +0 -10
  229. package/.turbo/turbo-build.log +0 -33
  230. package/CHANGELOG.md +0 -1849
  231. package/__tests__/algorithm/egde.test.ts +0 -131
  232. package/__tests__/algorithm/index.test.ts +0 -74
  233. package/__tests__/algorithm/outline.test.ts +0 -43
  234. package/__tests__/bugs/1545-spec.test.ts +0 -42
  235. package/__tests__/event/event.test.ts +0 -22
  236. package/__tests__/history/history.test.ts +0 -28
  237. package/__tests__/logicflow.test.ts +0 -575
  238. package/__tests__/model/graphmodel.test.ts +0 -87
  239. package/__tests__/util/compatible.test.ts +0 -48
  240. package/__tests__/util/edge.test.ts +0 -224
  241. package/__tests__/util/geometry.test.ts +0 -14
  242. package/__tests__/util/graph.test.ts +0 -16
  243. package/__tests__/util/matrix.test.ts +0 -41
  244. package/__tests__/util/node.test.ts +0 -68
  245. package/__tests__/util/sampling.test.ts +0 -12
  246. package/__tests__/util/vector.test.ts +0 -50
  247. package/__tests__/util/zIndex.test.ts +0 -10
  248. package/src/LogicFlow.tsx +0 -2008
  249. package/src/algorithm/edge.ts +0 -67
  250. package/src/algorithm/index.ts +0 -70
  251. package/src/algorithm/outline.ts +0 -77
  252. package/src/algorithm/rotate.ts +0 -55
  253. package/src/common/drag.ts +0 -219
  254. package/src/common/history.ts +0 -108
  255. package/src/common/index.ts +0 -6
  256. package/src/common/keyboard.ts +0 -108
  257. package/src/common/matrix.ts +0 -122
  258. package/src/common/vector.ts +0 -93
  259. package/src/constant/index.ts +0 -179
  260. package/src/event/event.md +0 -66
  261. package/src/event/eventArgs.ts +0 -643
  262. package/src/event/eventEmitter.ts +0 -156
  263. package/src/history/index.ts +0 -119
  264. package/src/index.less +0 -1
  265. package/src/index.ts +0 -26
  266. package/src/keyboard/index.ts +0 -112
  267. package/src/keyboard/shortcut.ts +0 -200
  268. package/src/model/BaseModel.ts +0 -250
  269. package/src/model/EditConfigModel.ts +0 -334
  270. package/src/model/GraphModel.ts +0 -1788
  271. package/src/model/NestedTransformModel.ts +0 -121
  272. package/src/model/SnaplineModel.ts +0 -256
  273. package/src/model/TransformModel.ts +0 -258
  274. package/src/model/edge/BaseEdgeModel.ts +0 -777
  275. package/src/model/edge/BezierEdgeModel.ts +0 -197
  276. package/src/model/edge/LineEdgeModel.ts +0 -36
  277. package/src/model/edge/PolylineEdgeModel.ts +0 -672
  278. package/src/model/edge/index.ts +0 -4
  279. package/src/model/index.ts +0 -9
  280. package/src/model/node/BaseNodeModel.ts +0 -949
  281. package/src/model/node/CircleNodeModel.ts +0 -91
  282. package/src/model/node/DiamondNodeModel.ts +0 -132
  283. package/src/model/node/EllipseNodeModel.ts +0 -98
  284. package/src/model/node/HtmlNodeModel.ts +0 -50
  285. package/src/model/node/PolygonNodeModel.ts +0 -150
  286. package/src/model/node/RectNodeModel.ts +0 -69
  287. package/src/model/node/TextNodeModel.ts +0 -54
  288. package/src/model/node/index.ts +0 -8
  289. package/src/options.ts +0 -145
  290. package/src/style/index.less +0 -261
  291. package/src/style/raw.ts +0 -220
  292. package/src/tool/MultipleSelectTool.tsx +0 -132
  293. package/src/tool/TextEditTool.tsx +0 -193
  294. package/src/tool/index.ts +0 -101
  295. package/src/typings.d.ts +0 -5
  296. package/src/util/animation.ts +0 -29
  297. package/src/util/browser.ts +0 -4
  298. package/src/util/compatible.ts +0 -15
  299. package/src/util/drag.ts +0 -220
  300. package/src/util/edge.ts +0 -1060
  301. package/src/util/geometry.ts +0 -55
  302. package/src/util/graph.ts +0 -46
  303. package/src/util/index.ts +0 -17
  304. package/src/util/matrix.ts +0 -129
  305. package/src/util/mobx.ts +0 -23
  306. package/src/util/node.ts +0 -543
  307. package/src/util/raf.ts +0 -28
  308. package/src/util/resize.ts +0 -606
  309. package/src/util/sampling.ts +0 -85
  310. package/src/util/theme.ts +0 -375
  311. package/src/util/uuid.ts +0 -26
  312. package/src/util/vector.ts +0 -93
  313. package/src/util/zIndex.ts +0 -6
  314. package/src/view/Anchor.tsx +0 -445
  315. package/src/view/Control.tsx +0 -512
  316. package/src/view/Graph.tsx +0 -141
  317. package/src/view/Rotate.tsx +0 -113
  318. package/src/view/behavior/dnd.ts +0 -162
  319. package/src/view/behavior/index.ts +0 -2
  320. package/src/view/behavior/snapline.ts +0 -16
  321. package/src/view/edge/AdjustPoint.tsx +0 -425
  322. package/src/view/edge/Arrow.tsx +0 -54
  323. package/src/view/edge/BaseEdge.tsx +0 -650
  324. package/src/view/edge/BezierEdge.tsx +0 -101
  325. package/src/view/edge/LineEdge.tsx +0 -81
  326. package/src/view/edge/PolylineEdge.tsx +0 -299
  327. package/src/view/edge/index.ts +0 -6
  328. package/src/view/index.ts +0 -8
  329. package/src/view/node/BaseNode.tsx +0 -571
  330. package/src/view/node/CircleNode.tsx +0 -21
  331. package/src/view/node/DiamondNode.tsx +0 -24
  332. package/src/view/node/EllipseNode.tsx +0 -22
  333. package/src/view/node/HtmlNode.tsx +0 -95
  334. package/src/view/node/PolygonNode.tsx +0 -28
  335. package/src/view/node/RectNode.tsx +0 -30
  336. package/src/view/node/TextNode.tsx +0 -39
  337. package/src/view/node/index.ts +0 -8
  338. package/src/view/overlay/BackgroundOverlay.tsx +0 -34
  339. package/src/view/overlay/BezierAdjustOverlay.tsx +0 -150
  340. package/src/view/overlay/CanvasOverlay.tsx +0 -288
  341. package/src/view/overlay/Grid.tsx +0 -162
  342. package/src/view/overlay/ModificationOverlay.tsx +0 -31
  343. package/src/view/overlay/OutlineOverlay.tsx +0 -170
  344. package/src/view/overlay/SnaplineOverlay.tsx +0 -44
  345. package/src/view/overlay/ToolOverlay.tsx +0 -65
  346. package/src/view/overlay/getTransformHoc.tsx +0 -50
  347. package/src/view/overlay/index.ts +0 -8
  348. package/src/view/shape/Circle.tsx +0 -41
  349. package/src/view/shape/Ellipse.tsx +0 -42
  350. package/src/view/shape/Line.tsx +0 -39
  351. package/src/view/shape/Path.tsx +0 -22
  352. package/src/view/shape/Polygon.tsx +0 -91
  353. package/src/view/shape/Polyline.tsx +0 -31
  354. package/src/view/shape/Rect.tsx +0 -44
  355. package/src/view/shape/Text.tsx +0 -169
  356. package/src/view/shape/index.ts +0 -8
  357. package/src/view/text/BaseText.tsx +0 -134
  358. package/src/view/text/LineText.tsx +0 -168
  359. package/src/view/text/index.ts +0 -2
  360. package/stats.html +0 -4842
  361. package/tsconfig.json +0 -18
@@ -1,101 +0,0 @@
1
- import BaseEdge, { IEdgeState } from './BaseEdge'
2
- import { Path } from '../shape'
3
- import LogicFlow from '../../LogicFlow'
4
- import { getEndTangent } from '../../util'
5
- import { BezierEdgeModel, GraphModel } from '../../model'
6
-
7
- import Point = LogicFlow.Point
8
-
9
- import ArrowInfo = LogicFlow.ArrowInfo
10
-
11
- export type IBezierEdgeProps = {
12
- model: BezierEdgeModel
13
- graphModel: GraphModel
14
- }
15
-
16
- export class BezierEdge extends BaseEdge<IBezierEdgeProps> {
17
- /**
18
- * @overridable 支持重写, 此方法为获取边的形状,如果需要自定义边的形状,请重写此方法。
19
- * @example https://docs.logic-flow.cn/docs/#/zh/guide/basic/edge?id=%e5%9f%ba%e4%ba%8e-react-%e7%bb%84%e4%bb%b6%e8%87%aa%e5%ae%9a%e4%b9%89%e8%be%b9
20
- */
21
- getEdge() {
22
- const { model } = this.props
23
- const style = model.getEdgeStyle()
24
- const { path, isAnimation, arrowConfig } = model as BezierEdgeModel
25
- const animationStyle = model.getEdgeAnimationStyle()
26
- const {
27
- strokeDasharray,
28
- stroke,
29
- strokeDashoffset,
30
- animationName,
31
- animationDuration,
32
- animationIterationCount,
33
- animationTimingFunction,
34
- animationDirection,
35
- } = animationStyle
36
-
37
- return (
38
- <Path
39
- d={path}
40
- {...style}
41
- {...arrowConfig}
42
- {...(isAnimation
43
- ? {
44
- strokeDasharray,
45
- stroke,
46
- style: {
47
- strokeDashoffset,
48
- animationName,
49
- animationDuration,
50
- animationIterationCount,
51
- animationTimingFunction,
52
- animationDirection,
53
- },
54
- }
55
- : {})}
56
- />
57
- )
58
- }
59
-
60
- /**
61
- * @overridable 可重写,在完全自定义边的时候,可以重写此方法,来自定义边的选区。
62
- */
63
- getAppendWidth() {
64
- const { path } = this.props.model as BezierEdgeModel
65
- return <Path d={path} strokeWidth={10} stroke="transparent" fill="none" />
66
- }
67
-
68
- /**
69
- * @deprecated
70
- */
71
- getArrowInfo(): ArrowInfo {
72
- const { model } = this.props
73
- const { hover } = this.state as IEdgeState
74
- const { isSelected } = model as BezierEdgeModel
75
- const { offset } = model.getArrowStyle()
76
- const points = model.pointsList.map((point) => ({
77
- x: point.x,
78
- y: point.y,
79
- }))
80
- const [ePre, end] = getEndTangent(points, offset)
81
- const arrowInfo = {
82
- start: ePre,
83
- end,
84
- hover,
85
- isSelected,
86
- }
87
- return arrowInfo
88
- }
89
-
90
- getLastTwoPoints(): [Point, Point] {
91
- const { model } = this.props
92
- const { offset } = model.getArrowStyle()
93
- const points = model.pointsList.map((point) => ({
94
- x: point.x,
95
- y: point.y,
96
- }))
97
- return getEndTangent(points, offset)
98
- }
99
- }
100
-
101
- export default BezierEdge
@@ -1,81 +0,0 @@
1
- import BaseEdge from './BaseEdge'
2
- import { Line, Path } from '../shape'
3
- import { getAppendAttributes } from '../../util'
4
- import { GraphModel, LineEdgeModel } from '../../model'
5
-
6
- export type ILineEdgeProps = {
7
- model: LineEdgeModel
8
- graphModel: GraphModel
9
- }
10
-
11
- export class LineEdge extends BaseEdge<ILineEdgeProps> {
12
- /**
13
- * @overridable 支持重写, 此方法为获取边的形状,如果需要自定义边的形状,请重写此方法。
14
- * @example https://docs.logic-flow.cn/docs/#/zh/guide/basic/edge?id=%e5%9f%ba%e4%ba%8e-react-%e7%bb%84%e4%bb%b6%e8%87%aa%e5%ae%9a%e4%b9%89%e8%be%b9
15
- */
16
- getEdge() {
17
- const { model } = this.props
18
- const { startPoint, endPoint, isAnimation, arrowConfig } = model
19
- const style = model.getEdgeStyle()
20
- const animationStyle = model.getEdgeAnimationStyle()
21
- const {
22
- strokeDasharray,
23
- stroke,
24
- strokeDashoffset,
25
- animationName,
26
- animationDuration,
27
- animationIterationCount,
28
- animationTimingFunction,
29
- animationDirection,
30
- } = animationStyle
31
- return (
32
- <Line
33
- {...style}
34
- x1={startPoint.x}
35
- y1={startPoint.y}
36
- x2={endPoint.x}
37
- y2={endPoint.y}
38
- {...arrowConfig}
39
- {...(isAnimation
40
- ? {
41
- strokeDasharray,
42
- stroke,
43
- style: {
44
- strokeDashoffset,
45
- animationName,
46
- animationDuration,
47
- animationIterationCount,
48
- animationTimingFunction,
49
- animationDirection,
50
- },
51
- }
52
- : {})}
53
- />
54
- )
55
- }
56
-
57
- /**
58
- * @overridable 可重写,在完全自定义边的时候,可以重写此方法,来自定义边的选区。
59
- */
60
- getAppendWidth() {
61
- const { model } = this.props
62
- const { startPoint, endPoint } = model
63
- const appendInfo = {
64
- start: startPoint,
65
- end: endPoint,
66
- }
67
- const { d, strokeWidth, fill, strokeDasharray, stroke } =
68
- getAppendAttributes(appendInfo)
69
- return (
70
- <Path
71
- d={d}
72
- fill={fill}
73
- strokeWidth={strokeWidth}
74
- stroke={stroke}
75
- strokeDasharray={strokeDasharray}
76
- />
77
- )
78
- }
79
- }
80
-
81
- export default LineEdge
@@ -1,299 +0,0 @@
1
- import { createElement as h } from 'preact/compat'
2
- import BaseEdge, { IEdgeState } from './BaseEdge'
3
- import { Polyline, Path } from '../shape'
4
- import LogicFlow from '../../LogicFlow'
5
- import { GraphModel, PolylineEdgeModel } from '../../model'
6
- import { EventType, SegmentDirection } from '../../constant'
7
- import { StepDrag, points2PointsList } from '../../util'
8
- import { getVerticalPointOfLine } from '../../algorithm'
9
-
10
- import ArrowInfo = LogicFlow.ArrowInfo
11
- import AppendConfig = LogicFlow.AppendConfig
12
- import Point = LogicFlow.Point
13
-
14
- type AppendAttributesType = {
15
- d: string
16
- fill: string
17
- stroke: string
18
- strokeWidth: number
19
- strokeDasharray: string
20
- }
21
-
22
- export type IPolylineEdgeProps = {
23
- model: PolylineEdgeModel
24
- graphModel: GraphModel
25
- }
26
-
27
- export class PolylineEdge extends BaseEdge<IPolylineEdgeProps> {
28
- drag: StepDrag
29
- isDragging?: boolean
30
- isShowAdjustPointTemp?: boolean
31
- appendInfo?: AppendConfig
32
-
33
- constructor() {
34
- super()
35
- this.drag = new StepDrag({
36
- onDragStart: this.onDragStart,
37
- onDragging: this.onDragging,
38
- onDragEnd: this.onDragEnd,
39
- isStopPropagation: false,
40
- })
41
- }
42
-
43
- /**
44
- * 不支持重写
45
- */
46
- onDragStart = () => {
47
- const polylineModel = this.props.model as PolylineEdgeModel
48
- polylineModel.dragAppendStart()
49
- this.isShowAdjustPointTemp = polylineModel.isShowAdjustPoint
50
- polylineModel.isShowAdjustPoint = false
51
- }
52
- /**
53
- * 不支持重写
54
- */
55
- onDragging = ({ deltaX, deltaY }) => {
56
- const { model, graphModel } = this.props
57
- this.isDragging = true
58
- const { transformModel, editConfigModel } = graphModel
59
- const [curDeltaX, curDeltaY] = transformModel.fixDeltaXY(deltaX, deltaY)
60
- const polylineModel = model as PolylineEdgeModel
61
- // 更新当前拖拽的线段信息
62
- // 1、如果只允许调整中间线段调用dragAppendSimple
63
- // 2、如果允许调整所有线段调用dragAppend
64
- const { adjustEdgeMiddle } = editConfigModel
65
- if (adjustEdgeMiddle) {
66
- this.appendInfo = polylineModel.dragAppendSimple(this.appendInfo!, {
67
- x: curDeltaX,
68
- y: curDeltaY,
69
- })
70
- } else {
71
- this.appendInfo = polylineModel.dragAppend(this.appendInfo!, {
72
- x: curDeltaX,
73
- y: curDeltaY,
74
- })
75
- }
76
- }
77
- /**
78
- * 不支持重写
79
- */
80
- onDragEnd = () => {
81
- const {
82
- model,
83
- graphModel: { eventCenter },
84
- } = this.props
85
- const polylineModel = model as PolylineEdgeModel
86
- polylineModel.dragAppendEnd()
87
- this.isDragging = false
88
-
89
- polylineModel.isShowAdjustPoint = this.isShowAdjustPointTemp ?? false
90
- // 情况当前拖拽的线段信息
91
- this.appendInfo = undefined
92
- // 向外抛出事件
93
- eventCenter.emit(EventType.EDGE_ADJUST, { data: polylineModel.getData() })
94
- }
95
- /**
96
- * 不支持重写
97
- */
98
- beforeDragStart = (e: PointerEvent, appendInfo) => {
99
- // 如果允许拖拽调整触发事件处理
100
- if (appendInfo.draggable) {
101
- this.drag.handleMouseDown(e)
102
- }
103
- // 记录当前拖拽的线段信息
104
- this.appendInfo = appendInfo
105
- }
106
-
107
- /**
108
- * @overridable 支持重写, 此方法为获取边的形状,如果需要自定义边的形状,请重写此方法。
109
- * @example https://docs.logic-flow.cn/docs/#/zh/guide/basic/edge?id=%e5%9f%ba%e4%ba%8e-react-%e7%bb%84%e4%bb%b6%e8%87%aa%e5%ae%9a%e4%b9%89%e8%be%b9
110
- */
111
- getEdge() {
112
- const { model } = this.props
113
- const { points, isAnimation, arrowConfig } = model
114
- const style = model.getEdgeStyle()
115
- const animationStyle = model.getEdgeAnimationStyle()
116
- const {
117
- strokeDasharray,
118
- stroke,
119
- strokeDashoffset,
120
- animationName,
121
- animationDuration,
122
- animationIterationCount,
123
- animationTimingFunction,
124
- animationDirection,
125
- } = animationStyle
126
- return (
127
- <Polyline
128
- points={points}
129
- {...style}
130
- {...arrowConfig}
131
- {...(isAnimation
132
- ? {
133
- strokeDasharray,
134
- stroke,
135
- style: {
136
- strokeDashoffset,
137
- animationName,
138
- animationDuration,
139
- animationIterationCount,
140
- animationTimingFunction,
141
- animationDirection,
142
- },
143
- }
144
- : {})}
145
- />
146
- )
147
- }
148
-
149
- /**
150
- * @deprecated
151
- */
152
- getArrowInfo(): ArrowInfo {
153
- const { model } = this.props
154
- const { points, isSelected } = model
155
- const { hover } = this.state as IEdgeState
156
- const currentPositionList = points2PointsList(points)
157
- let startPoint: LogicFlow.Point = currentPositionList[0]
158
- let endPoint: LogicFlow.Point = currentPositionList[0]
159
-
160
- // 两点重合时不计算起终点
161
- if (currentPositionList.length >= 2) {
162
- startPoint = currentPositionList[currentPositionList.length - 2]
163
- endPoint = currentPositionList[currentPositionList.length - 1]
164
- }
165
- return {
166
- start: startPoint,
167
- end: endPoint,
168
- hover,
169
- isSelected,
170
- }
171
- }
172
-
173
- getLastTwoPoints(): [Point, Point] {
174
- const { model } = this.props
175
- const { points } = model
176
- const currentPositionList = points2PointsList(points)
177
- let startPoint: LogicFlow.Point = currentPositionList[0]
178
- let endPoint: LogicFlow.Point = currentPositionList[0]
179
- // 两点重合时不计算起终点
180
- if (currentPositionList.length >= 2) {
181
- startPoint = currentPositionList[currentPositionList.length - 2]
182
- endPoint = currentPositionList[currentPositionList.length - 1]
183
- }
184
- return [startPoint, endPoint]
185
- }
186
-
187
- private getAppendAttributes(appendInfo: AppendConfig): AppendAttributesType {
188
- const { start, end } = appendInfo
189
- let d
190
- if (start.x === end.x && start.y === end.y) {
191
- // 拖拽过程中会出现起终点重合的情况,这时候append无法计算
192
- d = ''
193
- } else {
194
- const config = {
195
- start,
196
- end,
197
- offset: 10,
198
- verticalLength: 5,
199
- }
200
- const startPosition = getVerticalPointOfLine({
201
- ...config,
202
- type: 'start',
203
- })
204
- const endPosition = getVerticalPointOfLine({
205
- ...config,
206
- type: 'end',
207
- })
208
- d = `M${startPosition.leftX} ${startPosition.leftY}
209
- L${startPosition.rightX} ${startPosition.rightY}
210
- L${endPosition.rightX} ${endPosition.rightY}
211
- L${endPosition.leftX} ${endPosition.leftY} z`
212
- }
213
- return {
214
- d,
215
- fill: 'transparent',
216
- stroke: 'transparent',
217
- strokeWidth: 1,
218
- strokeDasharray: '4, 4',
219
- }
220
- }
221
-
222
- private getAppendShape(appendInfo: AppendConfig) {
223
- const { d, strokeWidth, fill, strokeDasharray, stroke } =
224
- this.getAppendAttributes(appendInfo)
225
- return (
226
- <Path
227
- d={d}
228
- fill={fill}
229
- strokeWidth={strokeWidth}
230
- stroke={stroke}
231
- strokeDasharray={strokeDasharray}
232
- />
233
- )
234
- }
235
-
236
- /**
237
- * @overridable 可重写,在完全自定义边的时候,可以重写此方法,来自定义边的选区。
238
- */
239
- getAppendWidth() {
240
- const { model, graphModel } = this.props
241
- const { pointsList, draggable } = model
242
- const LineAppendList: h.JSX.Element[] = []
243
- const pointsLen = pointsList.length
244
- for (let i = 0; i < pointsLen - 1; i++) {
245
- let className = 'lf-polyline-append'
246
- const appendInfo: AppendConfig = {
247
- start: {
248
- x: pointsList[i].x,
249
- y: pointsList[i].y,
250
- },
251
- end: {
252
- x: pointsList[i + 1].x,
253
- y: pointsList[i + 1].y,
254
- },
255
- startIndex: i,
256
- endIndex: i + 1,
257
- direction: SegmentDirection.HORIZONTAL,
258
- draggable: true,
259
- }
260
- let append: h.JSX.Element = (
261
- <g className={className}>{this.getAppendShape(appendInfo)}</g>
262
- )
263
- const { editConfigModel } = graphModel
264
- const { adjustEdge, adjustEdgeMiddle } = editConfigModel
265
- if (adjustEdge && draggable) {
266
- const { startIndex, endIndex } = appendInfo
267
- // 如果不允许调整起点和终点相连的线段,设置该线段appendInfo的dragAble为false
268
- const dragDisable =
269
- adjustEdgeMiddle && (startIndex === 0 || endIndex === pointsLen - 1)
270
- appendInfo.draggable = !dragDisable
271
- if (appendInfo.start.x === appendInfo.end.x) {
272
- // 水平
273
- if (appendInfo.draggable) {
274
- className += '-ew-resize'
275
- }
276
- appendInfo.direction = SegmentDirection.VERTICAL
277
- } else if (appendInfo.start.y === appendInfo.end.y) {
278
- // 垂直
279
- if (appendInfo.draggable) {
280
- className += '-ns-resize'
281
- }
282
- appendInfo.direction = SegmentDirection.HORIZONTAL
283
- }
284
- append = (
285
- <g
286
- className={this.isDragging ? 'lf-dragging' : 'lf-drag-able'}
287
- onPointerDown={(e) => this.beforeDragStart(e, appendInfo)}
288
- >
289
- <g className={className}>{this.getAppendShape(appendInfo)}</g>
290
- </g>
291
- )
292
- }
293
- LineAppendList.push(append)
294
- }
295
- return <g>{LineAppendList}</g>
296
- }
297
- }
298
-
299
- export default PolylineEdge
@@ -1,6 +0,0 @@
1
- export * from './AdjustPoint'
2
- export * from './Arrow'
3
- export * from './BaseEdge'
4
- export * from './BezierEdge'
5
- export * from './LineEdge'
6
- export * from './PolylineEdge'
package/src/view/index.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from './Anchor'
2
- export * from './Rotate'
3
- export * from './Graph'
4
-
5
- export * from './shape'
6
- export * from './node'
7
- export * from './edge'
8
- export * from './text'