@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,643 +0,0 @@
1
- import LogicFlow, {
2
- BaseNodeModel,
3
- BaseEdgeModel,
4
- Model,
5
- GraphModel,
6
- TransformData,
7
- TransformType,
8
- } from '..'
9
-
10
- import NodeData = LogicFlow.NodeData
11
- import EdgeData = LogicFlow.EdgeData
12
- import GraphData = LogicFlow.GraphData
13
- import AnchorConfig = Model.AnchorConfig
14
- import ClientPosition = LogicFlow.ClientPosition
15
-
16
- type ClickEventArgs = {
17
- /**
18
- * 点击后节点是否处于选中状态
19
- */
20
- isSelected: boolean
21
- /**
22
- * 是否为多选状态
23
- */
24
- isMultiple: boolean
25
- }
26
-
27
- type NodeEventArgsPick<
28
- T extends
29
- | 'preData'
30
- | 'data'
31
- | 'model'
32
- | 'e'
33
- | 'position'
34
- | 'deltaX'
35
- | 'deltaY'
36
- | 'index',
37
- > = Pick<
38
- {
39
- /**
40
- * 上一个状态的节点数据
41
- */
42
- preData: NodeData
43
- /**
44
- * 节点数据
45
- */
46
- data: NodeData
47
- /**
48
- * 节点 model
49
- */
50
- model: BaseNodeModel
51
- /**
52
- * 原生鼠标事件对象
53
- */
54
- e: MouseEvent
55
- /**
56
- * 鼠标触发点相对于画布左上角的坐标
57
- */
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
- }
92
- },
93
- T
94
- >
95
-
96
- /**
97
- * 节点事件
98
- */
99
- interface NodeEventArgs {
100
- /**
101
- * 单击节点
102
- */
103
- 'node:click': NodeEventArgsPick<'data' | 'e' | 'position'> & ClickEventArgs
104
- /**
105
- * 双击节点
106
- */
107
- 'node:dbclick': NodeEventArgsPick<'data' | 'e' | 'position'>
108
- /**
109
- * 鼠标按下节点
110
- */
111
- 'node:mousedown': NodeEventArgsPick<'data' | 'e'>
112
- /**
113
- * 鼠标抬起节点
114
- */
115
- 'node:mouseup': NodeEventArgsPick<'data' | 'e'>
116
- /**
117
- * 鼠标移动节点
118
- */
119
- 'node:mousemove': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
120
- /**
121
- * 鼠标进入节点
122
- */
123
- 'node:mouseenter': NodeEventArgsPick<'data' | 'e'>
124
- /**
125
- * 鼠标离开节点
126
- */
127
- 'node:mouseleave': NodeEventArgsPick<'data' | 'e'>
128
- /**
129
- * 添加节点
130
- */
131
- 'node:add': NodeEventArgsPick<'data'>
132
- /**
133
- * 删除节点
134
- */
135
- 'node:delete': NodeEventArgsPick<'data' | 'model'>
136
- /**
137
- * 添加外部拖入节点
138
- */
139
- 'node:dnd-add': NodeEventArgsPick<'data'>
140
- /**
141
- * 拖拽外部拖入节点
142
- */
143
- 'node:dnd-drag': NodeEventArgsPick<'data' | 'e'>
144
- /**
145
- * 开始拖拽节点
146
- */
147
- 'node:dragstart': NodeEventArgsPick<'data' | 'e'>
148
- /**
149
- * 拖拽节点
150
- */
151
- 'node:drag': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
152
- /**
153
- * 拖拽节点结束
154
- */
155
- 'node:drop': NodeEventArgsPick<'data' | 'e'>
156
- /**
157
- * 右键点击节点
158
- */
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
- >
170
- /**
171
- * 元素的 properties 发生改变
172
- */
173
- 'node:properties-change': {
174
- /**
175
- * 元素的 id
176
- */
177
- id: string
178
- /**
179
- * 改变的 properties 的 key
180
- */
181
- keys: string[]
182
- /**
183
- * 改变前的 properties
184
- */
185
- preProperties: Record<string, any>
186
- /**
187
- * 改变后的 properties
188
- */
189
- properties: Record<string, any>
190
- }
191
- /**
192
- * 节点获焦
193
- */
194
- 'node:focus': NodeEventArgsPick<'data'>
195
- /**
196
- * 节点失焦
197
- */
198
- 'node:blur': NodeEventArgsPick<'data'>
199
- }
200
-
201
- type EdgeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
202
- {
203
- /**
204
- * 边数据
205
- */
206
- data: EdgeData
207
- /**
208
- * 原生鼠标事件对象
209
- */
210
- e: MouseEvent
211
- /**
212
- * 鼠标触发点相对于画布左上角的坐标
213
- */
214
- position: ClientPosition
215
- },
216
- T
217
- >
218
-
219
- /**
220
- * 边事件
221
- */
222
- interface EdgeEventArgs {
223
- /**
224
- * 单击边
225
- */
226
- 'edge:click': EdgeEventArgsPick<'data' | 'e' | 'position'>
227
- /**
228
- * 双击边
229
- */
230
- 'edge:dbclick': EdgeEventArgsPick<'data' | 'e' | 'position'>
231
- /**
232
- * 鼠标进入边
233
- */
234
- 'edge:mouseenter': EdgeEventArgsPick<'data' | 'e'>
235
- /**
236
- * 鼠标离开边
237
- */
238
- 'edge:mouseleave': EdgeEventArgsPick<'data' | 'e'>
239
- /**
240
- * 添加边
241
- */
242
- 'edge:add': EdgeEventArgsPick<'data'>
243
- /**
244
- * 删除边
245
- */
246
- 'edge:delete': EdgeEventArgsPick<'data'>
247
- /**
248
- * 右键点击边
249
- */
250
- 'edge:contextmenu': EdgeEventArgsPick<'data' | 'e' | 'position'>
251
- /**
252
- * 拖拽调整边
253
- */
254
- 'edge:adjust': EdgeEventArgsPick<'data'>
255
- /**
256
- * 调整边的起点/终点
257
- */
258
- 'edge:exchange-node': {
259
- data: {
260
- /**
261
- * 新的边的数据
262
- */
263
- newEdge: EdgeData
264
- /**
265
- * 旧的边的数据
266
- */
267
- oldEdge: EdgeData
268
- }
269
- }
270
- /**
271
- * 边获焦
272
- */
273
- 'edge:focus': EdgeEventArgsPick<'data'>
274
- /**
275
- * 边失焦
276
- */
277
- 'edge:blur': EdgeEventArgsPick<'data'>
278
- }
279
-
280
- /**
281
- * 文本事件
282
- */
283
- interface TextEventArgs {
284
- // 鼠标按下文本
285
- 'text:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
286
- // 开始拖拽文本
287
- 'text:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
288
- // 文本拖拽
289
- 'text:drag': TextEventArgsPick<'data' | 'e' | 'model'>
290
- // 文本拖拽结束
291
- 'text:drop': TextEventArgsPick<'data' | 'e' | 'model'>
292
- // 文本单击
293
- 'text:click': TextEventArgsPick<'data' | 'e' | 'model'>
294
- // 文本双击
295
- 'text:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
296
- // 文本失焦
297
- 'text:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
298
- // 鼠标移动文本
299
- 'text:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
300
- // 鼠标抬起
301
- 'text:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
302
- // 文本获焦
303
- 'text:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
304
- // 文本新增
305
- 'text:add': TextEventArgsPick<'data' | 'e' | 'model'>
306
- // 文本更新
307
- 'text:update': TextEventArgsPick<'data' | 'e' | 'model'>
308
- // 文本清空
309
- 'text:clear': TextEventArgsPick<'data' | 'e' | 'model'>
310
- // 文本删除
311
- 'text:delete': TextEventArgsPick<'data' | 'e' | 'model'>
312
- // 不允许增加文本
313
- 'text:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
314
- }
315
-
316
- /**
317
- * label插件文本事件
318
- */
319
- interface TextEventArgs {
320
- // 鼠标按下文本
321
- 'label:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
322
- // 开始拖拽文本
323
- 'label:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
324
- // 文本拖拽
325
- 'label:drag': TextEventArgsPick<'data' | 'e' | 'model'>
326
- // 文本拖拽结束
327
- 'label:drop': TextEventArgsPick<'data' | 'e' | 'model'>
328
- // 文本单击
329
- 'label:click': TextEventArgsPick<'data' | 'e' | 'model'>
330
- // 文本双击
331
- 'label:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
332
- // 文本失焦
333
- 'label:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
334
- // 鼠标移动文本
335
- 'label:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
336
- // 鼠标抬起
337
- 'label:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
338
- // 文本获焦
339
- 'label:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
340
- // 文本新增
341
- 'label:add': TextEventArgsPick<'data' | 'e' | 'model'>
342
- // 文本更新
343
- 'label:update': TextEventArgsPick<'data' | 'e' | 'model'>
344
- // 文本清空
345
- 'label:clear': TextEventArgsPick<'data' | 'e' | 'model'>
346
- // 文本删除
347
- 'label:delete': TextEventArgsPick<'data' | 'e' | 'model'>
348
- // 文本新增
349
- 'label:should-add': TextEventArgsPick<'data' | 'e' | 'model' | 'position'>
350
- // 文本批量新增
351
- 'label:batch-add': TextEventArgsPick<'data' | 'e' | 'model'>
352
- // 文本更新
353
- 'label:should-update': TextEventArgsPick<'data' | 'e' | 'model'>
354
- // 文本删除
355
- 'label:should-delete': TextEventArgsPick<'data' | 'e' | 'model'>
356
- // 文本批量删除
357
- 'label:batch-delete': TextEventArgsPick<'data' | 'e' | 'model'>
358
- // 不允许增加文本
359
- 'label:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
360
- }
361
-
362
- /**
363
- * 连线事件
364
- */
365
- interface ConnectionEventArgs {
366
- 'connection:not-allowed': {
367
- /**
368
- * 目标节点数据
369
- */
370
- data: NodeData
371
- /**
372
- * 校验信息
373
- */
374
- msg?: string
375
- }
376
- }
377
-
378
- /**
379
- * 公共事件
380
- */
381
- interface CommonEventArgs {
382
- 'element:click': {
383
- /**
384
- * 点击元素的数据(节点/边)
385
- */
386
- data: NodeData | EdgeData
387
- /**
388
- * 原生鼠标事件对象
389
- */
390
- e: MouseEvent
391
- /**
392
- * 鼠标触发点相对于画布左上角的坐标
393
- */
394
- position: ClientPosition
395
- }
396
- /**
397
- * 进行画布平移或缩放等变化操作时触发
398
- */
399
- 'graph:transform': {
400
- /**
401
- * 变换操作类型
402
- */
403
- type: TransformType
404
- /**
405
- * 变换操作后的数据
406
- */
407
- transform: TransformData
408
- }
409
- /**
410
- * 画布渲染数据后触发,即 `lf.render()` 方法被调用后触发。
411
- */
412
- 'graph:rendered': {
413
- /**
414
- * 渲染后的画布数据
415
- */
416
- data: GraphData
417
- /**
418
- * 渲染后的画布 model
419
- */
420
- graphModel: GraphModel
421
- }
422
- /**
423
- * 画布重新更新后触发. 即 lf.render(graphData)方法被调用后或者改变画布(graphModel)上的属性后触发。
424
- * 如果是主动修改某个特定属性导致画布更新,想要在画布更新后做一些操作,建议注册事件后在回调函数中及时注销该事件,或者使用once事件代替on事件。
425
- * 因为其他属性也可能导致画布更新,触发该事件。
426
- */
427
- 'graph:updated': {
428
- /**
429
- * 更新后的画布数据
430
- */
431
- data: GraphData
432
- }
433
- /**
434
- * 画布容器大小发生变化触发,为了性能考虑对事件做了防抖处理,间隔为16ms
435
- */
436
- 'graph:resize': {
437
- /**
438
- * 更新后的画布数据
439
- */
440
- target: HTMLElement
441
- contentRect: DOMRectReadOnly
442
- }
443
- }
444
-
445
- type AnchorEventArgsPick<T extends 'data' | 'e' | 'nodeModel' | 'edgeModel'> =
446
- Pick<
447
- {
448
- /**
449
- * 锚点数据
450
- */
451
- data: AnchorConfig
452
- /**
453
- * 原生鼠标事件对象
454
- */
455
- e: MouseEvent
456
- /**
457
- * 锚点所属节点的数据
458
- */
459
- nodeModel: BaseNodeModel
460
- /**
461
- * 通过拖动锚点连线添加的边的数据
462
- */
463
- edgeModel?: BaseEdgeModel
464
- },
465
- T
466
- >
467
-
468
- /**
469
- * 锚点事件
470
- */
471
- interface AnchorEventArgs {
472
- /**
473
- * anchor 锚点 click
474
- */
475
- 'anchor:click': AnchorEventArgsPick<'data' | 'e' | 'nodeModel'>
476
- /**
477
- * anchor 锚点 mousedown
478
- */
479
- 'anchor:mousedown': AnchorEventArgsPick<'data' | 'e' | 'nodeModel'>
480
- /**
481
- * 开始拖拽锚点
482
- */
483
- 'anchor:dragstart': AnchorEventArgsPick<'data' | 'e' | 'nodeModel'>
484
- /**
485
- * 拖拽锚点
486
- */
487
- 'anchor:drag': AnchorEventArgsPick<'data' | 'e' | 'nodeModel'>
488
- /**
489
- * 拖拽锚点结束,并成功添加边。
490
- * 只有在创建连线成功时才触发。用于区分手动创建的连线和自动创建的连线 `edge:add`
491
- */
492
- 'anchor:drop': AnchorEventArgsPick<'data' | 'e' | 'nodeModel' | 'edgeModel'>
493
- /**
494
- * 拖拽锚点结束,不管是否成功添加边都会触发
495
- */
496
- 'anchor:dragend': AnchorEventArgsPick<
497
- 'data' | 'e' | 'nodeModel' | 'edgeModel'
498
- >
499
- }
500
-
501
- type BlankEventArgsPick<T extends 'e' | 'position'> = Pick<
502
- {
503
- /**
504
- * 原生鼠标事件对象
505
- */
506
- e: MouseEvent
507
- /**
508
- * 鼠标触发点相对于画布左上角的坐标
509
- */
510
- position: ClientPosition
511
- },
512
- T
513
- >
514
-
515
- /**
516
- * 画布事件
517
- */
518
- interface BlankEventArgs {
519
- /**
520
- * 鼠标按下画布
521
- */
522
- 'blank:mousedown': BlankEventArgsPick<'e'>
523
- /**
524
- * 鼠标抬起画布
525
- */
526
- 'blank:mouseup': BlankEventArgsPick<'e'>
527
- /**
528
- * 鼠标移动画布
529
- */
530
- 'blank:mousemove': BlankEventArgsPick<'e'>
531
- /**
532
- * 单击画布
533
- */
534
- 'blank:click': BlankEventArgsPick<'e'>
535
- /**
536
- * 右键点击画布
537
- */
538
- 'blank:contextmenu': BlankEventArgsPick<'e' | 'position'>
539
- /**
540
- * 开始拖拽画布
541
- */
542
- 'blank:dragstart': BlankEventArgsPick<'e'>
543
- /**
544
- * 拖拽画布
545
- */
546
- 'blank:drag': BlankEventArgsPick<'e'>
547
- /**
548
- * 拖拽画布结束
549
- */
550
- 'blank:drop': BlankEventArgsPick<'e'>
551
- }
552
-
553
- interface HistoryEventArgs {
554
- /**
555
- * 历史记录变化
556
- */
557
- 'history:change': {
558
- /**
559
- * 历史数据
560
- */
561
- data: {
562
- /**
563
- * 可撤销的 graph 快照
564
- */
565
- undos: GraphData[]
566
- /**
567
- * 可重做的 graph 快照
568
- */
569
- redos: GraphData[]
570
- /**
571
- * 是否可以撤销
572
- */
573
- undoAble: boolean
574
- /**
575
- * 是否可以重做
576
- */
577
- redoAble: boolean
578
- }
579
- }
580
- }
581
-
582
- type SelectionEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
583
- {
584
- /**
585
- * 选中元素的数据(节点/边)
586
- */
587
- data: GraphData
588
- /**
589
- * 原生鼠标事件对象
590
- */
591
- e: MouseEvent
592
- /**
593
- * 鼠标触发点相对于画布左上角的坐标
594
- */
595
- position: ClientPosition
596
- },
597
- T
598
- >
599
-
600
- /**
601
- * 选区事件
602
- */
603
- interface SelectionEventArgs {
604
- /**
605
- * 鼠标按下选区
606
- */
607
- 'selection:mousedown': SelectionEventArgsPick<'e'>
608
- /**
609
- * 开始拖拽选区
610
- */
611
- 'selection:dragstart': SelectionEventArgsPick<'e'>
612
- /**
613
- * 拖拽选区
614
- */
615
- 'selection:drag': SelectionEventArgsPick<'e'>
616
- /**
617
- * 拖拽选区结束
618
- */
619
- 'selection:drop': SelectionEventArgsPick<'e'>
620
- /**
621
- * 鼠标移动选区
622
- */
623
- 'selection:mousemove': SelectionEventArgsPick<'e' | 'position'>
624
- /**
625
- * 鼠标抬起选区
626
- */
627
- 'selection:mouseup': SelectionEventArgsPick<'e'>
628
- /**
629
- * 右键点击选区
630
- */
631
- 'selection:contextmenu': SelectionEventArgsPick<'data' | 'e' | 'position'>
632
- }
633
-
634
- // 此处主要是对事件参数进行聚合
635
- export type EventArgs = NodeEventArgs &
636
- EdgeEventArgs &
637
- ConnectionEventArgs &
638
- CommonEventArgs &
639
- AnchorEventArgs &
640
- BlankEventArgs &
641
- HistoryEventArgs &
642
- SelectionEventArgs &
643
- TextEventArgs