@rxflow/workflow 0.0.1-alpha.0

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 (446) hide show
  1. package/README.md +43 -0
  2. package/cjs/components/CanvasLoading/index.d.ts +14 -0
  3. package/cjs/components/CanvasLoading/index.d.ts.map +1 -0
  4. package/cjs/components/CanvasLoading/index.js +51 -0
  5. package/cjs/components/CanvasLoading/index.less +69 -0
  6. package/cjs/components/CodeEditor/DebugPanel/index.d.ts +16 -0
  7. package/cjs/components/CodeEditor/DebugPanel/index.d.ts.map +1 -0
  8. package/cjs/components/CodeEditor/DebugPanel/index.js +156 -0
  9. package/cjs/components/CodeEditor/DebugPanel/index.less +56 -0
  10. package/cjs/components/CodeEditor/FileTree/LibraryIcon.d.ts +11 -0
  11. package/cjs/components/CodeEditor/FileTree/LibraryIcon.d.ts.map +1 -0
  12. package/cjs/components/CodeEditor/FileTree/LibraryIcon.js +33 -0
  13. package/cjs/components/CodeEditor/FileTree/icons/Javascript.d.ts +11 -0
  14. package/cjs/components/CodeEditor/FileTree/icons/Javascript.d.ts.map +1 -0
  15. package/cjs/components/CodeEditor/FileTree/icons/Javascript.js +37 -0
  16. package/cjs/components/CodeEditor/FileTree/icons/Python.d.ts +11 -0
  17. package/cjs/components/CodeEditor/FileTree/icons/Python.d.ts.map +1 -0
  18. package/cjs/components/CodeEditor/FileTree/icons/Python.js +37 -0
  19. package/cjs/components/CodeEditor/FileTree/index.d.ts +9 -0
  20. package/cjs/components/CodeEditor/FileTree/index.d.ts.map +1 -0
  21. package/cjs/components/CodeEditor/FileTree/index.js +73 -0
  22. package/cjs/components/CodeEditor/FileTree/index.less +83 -0
  23. package/cjs/components/CodeEditor/FileTree/useFileIcon.d.ts +11 -0
  24. package/cjs/components/CodeEditor/FileTree/useFileIcon.d.ts.map +1 -0
  25. package/cjs/components/CodeEditor/FileTree/useFileIcon.js +44 -0
  26. package/cjs/components/CodeEditor/Header/index.d.ts +15 -0
  27. package/cjs/components/CodeEditor/Header/index.d.ts.map +1 -0
  28. package/cjs/components/CodeEditor/Header/index.js +51 -0
  29. package/cjs/components/CodeEditor/Header/style.less +23 -0
  30. package/cjs/components/CodeEditor/Terminal/XTerm.d.ts +5 -0
  31. package/cjs/components/CodeEditor/Terminal/XTerm.d.ts.map +1 -0
  32. package/cjs/components/CodeEditor/Terminal/XTerm.js +54 -0
  33. package/cjs/components/CodeEditor/Terminal/index.d.ts +15 -0
  34. package/cjs/components/CodeEditor/Terminal/index.d.ts.map +1 -0
  35. package/cjs/components/CodeEditor/Terminal/index.js +30 -0
  36. package/cjs/components/CodeEditor/Terminal/index.less +28 -0
  37. package/cjs/components/CodeEditor/Terminal/types.d.ts +13 -0
  38. package/cjs/components/CodeEditor/editors/JSON.d.ts +12 -0
  39. package/cjs/components/CodeEditor/editors/JSON.d.ts.map +1 -0
  40. package/cjs/components/CodeEditor/editors/JSON.js +43 -0
  41. package/cjs/components/CodeEditor/editors/Python.d.ts +4 -0
  42. package/cjs/components/CodeEditor/editors/Python.d.ts.map +1 -0
  43. package/cjs/components/CodeEditor/editors/Python.js +43 -0
  44. package/cjs/components/CodeEditor/editors/index.less +11 -0
  45. package/cjs/components/CodeEditor/editors/types.d.ts +24 -0
  46. package/cjs/components/CodeEditor/index.d.ts +7 -0
  47. package/cjs/components/CodeEditor/index.d.ts.map +1 -0
  48. package/cjs/components/CodeEditor/index.js +230 -0
  49. package/cjs/components/CodeEditor/style.less +49 -0
  50. package/cjs/components/CodeEditor/types.d.ts +46 -0
  51. package/cjs/components/Handle/NodePopover.d.ts +15 -0
  52. package/cjs/components/Handle/NodePopover.d.ts.map +1 -0
  53. package/cjs/components/Handle/NodePopover.js +169 -0
  54. package/cjs/components/Handle/index.d.ts +24 -0
  55. package/cjs/components/Handle/index.d.ts.map +1 -0
  56. package/cjs/components/Handle/index.js +165 -0
  57. package/cjs/components/Handle/index.less +111 -0
  58. package/cjs/components/InlineCodeEditor/index.d.ts +11 -0
  59. package/cjs/components/InlineCodeEditor/index.d.ts.map +1 -0
  60. package/cjs/components/InlineCodeEditor/index.js +31 -0
  61. package/cjs/components/InlineCodeEditor/index.module.less +0 -0
  62. package/cjs/components/InlineCodeEditor/types.d.ts +22 -0
  63. package/cjs/components/Layout/index.d.ts +14 -0
  64. package/cjs/components/Layout/index.d.ts.map +1 -0
  65. package/cjs/components/Layout/index.js +49 -0
  66. package/cjs/components/Layout/index.less +14 -0
  67. package/cjs/components/LoadingButton.d.ts +16 -0
  68. package/cjs/components/LoadingButton.d.ts.map +1 -0
  69. package/cjs/components/LoadingButton.js +86 -0
  70. package/cjs/components/Sider/index.d.ts +15 -0
  71. package/cjs/components/Sider/index.d.ts.map +1 -0
  72. package/cjs/components/Sider/index.js +142 -0
  73. package/cjs/components/Sider/index.less +68 -0
  74. package/cjs/constants/RunningStatus.d.ts +14 -0
  75. package/cjs/constants/RunningStatus.d.ts.map +1 -0
  76. package/cjs/constants/RunningStatus.js +20 -0
  77. package/cjs/hooks/run/useActiveEdge.d.ts +15 -0
  78. package/cjs/hooks/run/useActiveEdge.d.ts.map +1 -0
  79. package/cjs/hooks/run/useActiveEdge.js +36 -0
  80. package/cjs/hooks/run/useCleanRunState.d.ts +9 -0
  81. package/cjs/hooks/run/useCleanRunState.d.ts.map +1 -0
  82. package/cjs/hooks/run/useCleanRunState.js +33 -0
  83. package/cjs/hooks/run/useNodeRunningState.d.ts +8 -0
  84. package/cjs/hooks/run/useNodeRunningState.d.ts.map +1 -0
  85. package/cjs/hooks/run/useNodeRunningState.js +30 -0
  86. package/cjs/hooks/run/useRunState.d.ts +21 -0
  87. package/cjs/hooks/run/useRunState.d.ts.map +1 -0
  88. package/cjs/hooks/run/useRunState.js +39 -0
  89. package/cjs/hooks/run/useSetRunState.d.ts +18 -0
  90. package/cjs/hooks/run/useSetRunState.d.ts.map +1 -0
  91. package/cjs/hooks/run/useSetRunState.js +39 -0
  92. package/cjs/hooks/state.d.ts +7 -0
  93. package/cjs/hooks/state.d.ts.map +1 -0
  94. package/cjs/hooks/state.js +13 -0
  95. package/cjs/hooks/useDeleteNode.d.ts +2 -0
  96. package/cjs/hooks/useDeleteNode.d.ts.map +1 -0
  97. package/cjs/hooks/useDeleteNode.js +32 -0
  98. package/cjs/hooks/useEdgeIsHover.d.ts +2 -0
  99. package/cjs/hooks/useEdgeIsHover.d.ts.map +1 -0
  100. package/cjs/hooks/useEdgeIsHover.js +20 -0
  101. package/cjs/hooks/useGetSelection.d.ts +13 -0
  102. package/cjs/hooks/useGetSelection.d.ts.map +1 -0
  103. package/cjs/hooks/useGetSelection.js +28 -0
  104. package/cjs/hooks/useGetUpstreamNodes.d.ts +14 -0
  105. package/cjs/hooks/useGetUpstreamNodes.d.ts.map +1 -0
  106. package/cjs/hooks/useGetUpstreamNodes.js +81 -0
  107. package/cjs/hooks/useGetWillDropTarget.d.ts +5 -0
  108. package/cjs/hooks/useGetWillDropTarget.d.ts.map +1 -0
  109. package/cjs/hooks/useGetWillDropTarget.js +27 -0
  110. package/cjs/hooks/useGroupIsWillDrop.d.ts +2 -0
  111. package/cjs/hooks/useGroupIsWillDrop.d.ts.map +1 -0
  112. package/cjs/hooks/useGroupIsWillDrop.js +20 -0
  113. package/cjs/hooks/useIsValidConnection.d.ts +12 -0
  114. package/cjs/hooks/useIsValidConnection.d.ts.map +1 -0
  115. package/cjs/hooks/useIsValidConnection.js +83 -0
  116. package/cjs/hooks/useMouseEvents.d.ts +19 -0
  117. package/cjs/hooks/useMouseEvents.d.ts.map +1 -0
  118. package/cjs/hooks/useMouseEvents.js +49 -0
  119. package/cjs/hooks/useNodeDragHandles.d.ts +10 -0
  120. package/cjs/hooks/useNodeDragHandles.d.ts.map +1 -0
  121. package/cjs/hooks/useNodeDragHandles.js +273 -0
  122. package/cjs/hooks/useNodes.d.ts +9 -0
  123. package/cjs/hooks/useNodes.d.ts.map +1 -0
  124. package/cjs/hooks/useNodes.js +19 -0
  125. package/cjs/hooks/useOnBeforeDelete.d.ts +19 -0
  126. package/cjs/hooks/useOnBeforeDelete.d.ts.map +1 -0
  127. package/cjs/hooks/useOnBeforeDelete.js +104 -0
  128. package/cjs/hooks/useOnConnect.d.ts +12 -0
  129. package/cjs/hooks/useOnConnect.d.ts.map +1 -0
  130. package/cjs/hooks/useOnConnect.js +36 -0
  131. package/cjs/hooks/useOnEdgeMouseEnter.d.ts +13 -0
  132. package/cjs/hooks/useOnEdgeMouseEnter.d.ts.map +1 -0
  133. package/cjs/hooks/useOnEdgeMouseEnter.js +27 -0
  134. package/cjs/hooks/useOnEdgeMouseLeave.d.ts +13 -0
  135. package/cjs/hooks/useOnEdgeMouseLeave.d.ts.map +1 -0
  136. package/cjs/hooks/useOnEdgeMouseLeave.js +27 -0
  137. package/cjs/hooks/useOnNodesChange.d.ts +4 -0
  138. package/cjs/hooks/useOnNodesChange.d.ts.map +1 -0
  139. package/cjs/hooks/useOnNodesChange.js +102 -0
  140. package/cjs/hooks/useOnSelectionChange.d.ts +13 -0
  141. package/cjs/hooks/useOnSelectionChange.d.ts.map +1 -0
  142. package/cjs/hooks/useOnSelectionChange.js +130 -0
  143. package/cjs/hooks/useSetEdges.d.ts +12 -0
  144. package/cjs/hooks/useSetEdges.d.ts.map +1 -0
  145. package/cjs/hooks/useSetEdges.js +29 -0
  146. package/cjs/hooks/useSetSelection.d.ts +3 -0
  147. package/cjs/hooks/useSetSelection.d.ts.map +1 -0
  148. package/cjs/hooks/useSetSelection.js +40 -0
  149. package/cjs/hooks/useSetWillDropTargets.d.ts +2 -0
  150. package/cjs/hooks/useSetWillDropTargets.d.ts.map +1 -0
  151. package/cjs/hooks/useSetWillDropTargets.js +26 -0
  152. package/cjs/hooks/useUpstream.d.ts +3 -0
  153. package/cjs/hooks/useUpstream.d.ts.map +1 -0
  154. package/cjs/hooks/useUpstream.js +105 -0
  155. package/cjs/hooks/useWatchSelectionNodes.d.ts +2 -0
  156. package/cjs/hooks/useWatchSelectionNodes.d.ts.map +1 -0
  157. package/cjs/hooks/useWatchSelectionNodes.js +22 -0
  158. package/cjs/hooks/useWorkFlow.d.ts +12 -0
  159. package/cjs/hooks/useWorkFlow.d.ts.map +1 -0
  160. package/cjs/hooks/useWorkFlow.js +93 -0
  161. package/cjs/hooks/useWorkFlowProps.d.ts +485 -0
  162. package/cjs/hooks/useWorkFlowProps.d.ts.map +1 -0
  163. package/cjs/hooks/useWorkFlowProps.js +98 -0
  164. package/cjs/index.d.ts +23 -0
  165. package/cjs/index.d.ts.map +1 -0
  166. package/cjs/index.js +77 -0
  167. package/cjs/types.d.ts +103 -0
  168. package/cjs/types.d.ts.map +1 -0
  169. package/cjs/types.js +8 -0
  170. package/cjs/utils/arrayUtils.d.ts +2 -0
  171. package/cjs/utils/arrayUtils.d.ts.map +1 -0
  172. package/cjs/utils/arrayUtils.js +23 -0
  173. package/cjs/utils/checkChildren.d.ts +11 -0
  174. package/cjs/utils/checkChildren.d.ts.map +1 -0
  175. package/cjs/utils/checkChildren.js +27 -0
  176. package/cjs/utils/dimensions.d.ts +12 -0
  177. package/cjs/utils/dimensions.d.ts.map +1 -0
  178. package/cjs/utils/dimensions.js +23 -0
  179. package/cjs/utils/dragDataTransfer.d.ts +19 -0
  180. package/cjs/utils/dragDataTransfer.d.ts.map +1 -0
  181. package/cjs/utils/dragDataTransfer.js +29 -0
  182. package/cjs/utils/dropTargetsCheck.d.ts +20 -0
  183. package/cjs/utils/dropTargetsCheck.d.ts.map +1 -0
  184. package/cjs/utils/dropTargetsCheck.js +105 -0
  185. package/cjs/utils/edgeEqualConnect.d.ts +11 -0
  186. package/cjs/utils/edgeEqualConnect.d.ts.map +1 -0
  187. package/cjs/utils/edgeEqualConnect.js +19 -0
  188. package/cjs/utils/events.d.ts +11 -0
  189. package/cjs/utils/events.d.ts.map +1 -0
  190. package/cjs/utils/events.js +19 -0
  191. package/cjs/utils/getEdgeId.d.ts +12 -0
  192. package/cjs/utils/getEdgeId.d.ts.map +1 -0
  193. package/cjs/utils/getEdgeId.js +22 -0
  194. package/cjs/utils/getParentFlow.d.ts +5 -0
  195. package/cjs/utils/getParentFlow.d.ts.map +1 -0
  196. package/cjs/utils/getParentFlow.js +36 -0
  197. package/cjs/utils/graph.d.ts +12 -0
  198. package/cjs/utils/graph.d.ts.map +1 -0
  199. package/cjs/utils/graph.js +55 -0
  200. package/cjs/utils/index.d.ts +18 -0
  201. package/cjs/utils/index.d.ts.map +1 -0
  202. package/cjs/utils/index.js +104 -0
  203. package/cjs/utils/isInSameParent.d.ts +11 -0
  204. package/cjs/utils/isInSameParent.d.ts.map +1 -0
  205. package/cjs/utils/isInSameParent.js +19 -0
  206. package/cjs/utils/parent.d.ts +23 -0
  207. package/cjs/utils/parent.d.ts.map +1 -0
  208. package/cjs/utils/parent.js +166 -0
  209. package/cjs/utils/position.d.ts +29 -0
  210. package/cjs/utils/position.d.ts.map +1 -0
  211. package/cjs/utils/position.js +67 -0
  212. package/cjs/utils/prepareInnerLookup.d.ts +16 -0
  213. package/cjs/utils/prepareInnerLookup.d.ts.map +1 -0
  214. package/cjs/utils/prepareInnerLookup.js +93 -0
  215. package/cjs/utils/scheduleCallback.d.ts +2 -0
  216. package/cjs/utils/scheduleCallback.d.ts.map +1 -0
  217. package/cjs/utils/scheduleCallback.js +38 -0
  218. package/cjs/utils/serialize.d.ts +31 -0
  219. package/cjs/utils/serialize.d.ts.map +1 -0
  220. package/cjs/utils/serialize.js +60 -0
  221. package/cjs/utils/triggerConnect.d.ts +12 -0
  222. package/cjs/utils/triggerConnect.d.ts.map +1 -0
  223. package/cjs/utils/triggerConnect.js +50 -0
  224. package/esm/components/CanvasLoading/index.d.ts +14 -0
  225. package/esm/components/CanvasLoading/index.d.ts.map +1 -0
  226. package/esm/components/CanvasLoading/index.js +45 -0
  227. package/esm/components/CanvasLoading/index.less +69 -0
  228. package/esm/components/CodeEditor/DebugPanel/index.d.ts +16 -0
  229. package/esm/components/CodeEditor/DebugPanel/index.d.ts.map +1 -0
  230. package/esm/components/CodeEditor/DebugPanel/index.js +199 -0
  231. package/esm/components/CodeEditor/DebugPanel/index.less +56 -0
  232. package/esm/components/CodeEditor/FileTree/LibraryIcon.d.ts +11 -0
  233. package/esm/components/CodeEditor/FileTree/LibraryIcon.d.ts.map +1 -0
  234. package/esm/components/CodeEditor/FileTree/LibraryIcon.js +27 -0
  235. package/esm/components/CodeEditor/FileTree/icons/Javascript.d.ts +11 -0
  236. package/esm/components/CodeEditor/FileTree/icons/Javascript.d.ts.map +1 -0
  237. package/esm/components/CodeEditor/FileTree/icons/Javascript.js +32 -0
  238. package/esm/components/CodeEditor/FileTree/icons/Python.d.ts +11 -0
  239. package/esm/components/CodeEditor/FileTree/icons/Python.d.ts.map +1 -0
  240. package/esm/components/CodeEditor/FileTree/icons/Python.js +32 -0
  241. package/esm/components/CodeEditor/FileTree/index.d.ts +9 -0
  242. package/esm/components/CodeEditor/FileTree/index.d.ts.map +1 -0
  243. package/esm/components/CodeEditor/FileTree/index.js +62 -0
  244. package/esm/components/CodeEditor/FileTree/index.less +83 -0
  245. package/esm/components/CodeEditor/FileTree/useFileIcon.d.ts +11 -0
  246. package/esm/components/CodeEditor/FileTree/useFileIcon.d.ts.map +1 -0
  247. package/esm/components/CodeEditor/FileTree/useFileIcon.js +39 -0
  248. package/esm/components/CodeEditor/Header/index.d.ts +15 -0
  249. package/esm/components/CodeEditor/Header/index.d.ts.map +1 -0
  250. package/esm/components/CodeEditor/Header/index.js +43 -0
  251. package/esm/components/CodeEditor/Header/style.less +23 -0
  252. package/esm/components/CodeEditor/Terminal/XTerm.d.ts +5 -0
  253. package/esm/components/CodeEditor/Terminal/XTerm.d.ts.map +1 -0
  254. package/esm/components/CodeEditor/Terminal/XTerm.js +59 -0
  255. package/esm/components/CodeEditor/Terminal/index.d.ts +15 -0
  256. package/esm/components/CodeEditor/Terminal/index.d.ts.map +1 -0
  257. package/esm/components/CodeEditor/Terminal/index.js +23 -0
  258. package/esm/components/CodeEditor/Terminal/index.less +28 -0
  259. package/esm/components/CodeEditor/Terminal/types.d.ts +13 -0
  260. package/esm/components/CodeEditor/editors/JSON.d.ts +12 -0
  261. package/esm/components/CodeEditor/editors/JSON.d.ts.map +1 -0
  262. package/esm/components/CodeEditor/editors/JSON.js +35 -0
  263. package/esm/components/CodeEditor/editors/Python.d.ts +4 -0
  264. package/esm/components/CodeEditor/editors/Python.d.ts.map +1 -0
  265. package/esm/components/CodeEditor/editors/Python.js +34 -0
  266. package/esm/components/CodeEditor/editors/index.less +11 -0
  267. package/esm/components/CodeEditor/editors/types.d.ts +24 -0
  268. package/esm/components/CodeEditor/index.d.ts +7 -0
  269. package/esm/components/CodeEditor/index.d.ts.map +1 -0
  270. package/esm/components/CodeEditor/index.js +233 -0
  271. package/esm/components/CodeEditor/style.less +49 -0
  272. package/esm/components/CodeEditor/types.d.ts +46 -0
  273. package/esm/components/Handle/NodePopover.d.ts +15 -0
  274. package/esm/components/Handle/NodePopover.d.ts.map +1 -0
  275. package/esm/components/Handle/NodePopover.js +165 -0
  276. package/esm/components/Handle/index.d.ts +24 -0
  277. package/esm/components/Handle/index.d.ts.map +1 -0
  278. package/esm/components/Handle/index.js +190 -0
  279. package/esm/components/Handle/index.less +111 -0
  280. package/esm/components/InlineCodeEditor/index.d.ts +11 -0
  281. package/esm/components/InlineCodeEditor/index.d.ts.map +1 -0
  282. package/esm/components/InlineCodeEditor/index.js +24 -0
  283. package/esm/components/InlineCodeEditor/index.module.less +0 -0
  284. package/esm/components/InlineCodeEditor/types.d.ts +22 -0
  285. package/esm/components/Layout/index.d.ts +14 -0
  286. package/esm/components/Layout/index.d.ts.map +1 -0
  287. package/esm/components/Layout/index.js +43 -0
  288. package/esm/components/Layout/index.less +14 -0
  289. package/esm/components/LoadingButton.d.ts +16 -0
  290. package/esm/components/LoadingButton.d.ts.map +1 -0
  291. package/esm/components/LoadingButton.js +112 -0
  292. package/esm/components/Sider/index.d.ts +15 -0
  293. package/esm/components/Sider/index.d.ts.map +1 -0
  294. package/esm/components/Sider/index.js +142 -0
  295. package/esm/components/Sider/index.less +68 -0
  296. package/esm/constants/RunningStatus.d.ts +14 -0
  297. package/esm/constants/RunningStatus.d.ts.map +1 -0
  298. package/esm/constants/RunningStatus.js +15 -0
  299. package/esm/hooks/run/useActiveEdge.d.ts +15 -0
  300. package/esm/hooks/run/useActiveEdge.d.ts.map +1 -0
  301. package/esm/hooks/run/useActiveEdge.js +30 -0
  302. package/esm/hooks/run/useCleanRunState.d.ts +9 -0
  303. package/esm/hooks/run/useCleanRunState.d.ts.map +1 -0
  304. package/esm/hooks/run/useCleanRunState.js +26 -0
  305. package/esm/hooks/run/useNodeRunningState.d.ts +8 -0
  306. package/esm/hooks/run/useNodeRunningState.d.ts.map +1 -0
  307. package/esm/hooks/run/useNodeRunningState.js +26 -0
  308. package/esm/hooks/run/useRunState.d.ts +21 -0
  309. package/esm/hooks/run/useRunState.d.ts.map +1 -0
  310. package/esm/hooks/run/useRunState.js +35 -0
  311. package/esm/hooks/run/useSetRunState.d.ts +18 -0
  312. package/esm/hooks/run/useSetRunState.d.ts.map +1 -0
  313. package/esm/hooks/run/useSetRunState.js +35 -0
  314. package/esm/hooks/state.d.ts +7 -0
  315. package/esm/hooks/state.d.ts.map +1 -0
  316. package/esm/hooks/state.js +6 -0
  317. package/esm/hooks/useDeleteNode.d.ts +2 -0
  318. package/esm/hooks/useDeleteNode.d.ts.map +1 -0
  319. package/esm/hooks/useDeleteNode.js +44 -0
  320. package/esm/hooks/useEdgeIsHover.d.ts +2 -0
  321. package/esm/hooks/useEdgeIsHover.d.ts.map +1 -0
  322. package/esm/hooks/useEdgeIsHover.js +14 -0
  323. package/esm/hooks/useGetSelection.d.ts +13 -0
  324. package/esm/hooks/useGetSelection.d.ts.map +1 -0
  325. package/esm/hooks/useGetSelection.js +21 -0
  326. package/esm/hooks/useGetUpstreamNodes.d.ts +14 -0
  327. package/esm/hooks/useGetUpstreamNodes.d.ts.map +1 -0
  328. package/esm/hooks/useGetUpstreamNodes.js +71 -0
  329. package/esm/hooks/useGetWillDropTarget.d.ts +5 -0
  330. package/esm/hooks/useGetWillDropTarget.d.ts.map +1 -0
  331. package/esm/hooks/useGetWillDropTarget.js +21 -0
  332. package/esm/hooks/useGroupIsWillDrop.d.ts +2 -0
  333. package/esm/hooks/useGroupIsWillDrop.d.ts.map +1 -0
  334. package/esm/hooks/useGroupIsWillDrop.js +14 -0
  335. package/esm/hooks/useIsValidConnection.d.ts +12 -0
  336. package/esm/hooks/useIsValidConnection.d.ts.map +1 -0
  337. package/esm/hooks/useIsValidConnection.js +82 -0
  338. package/esm/hooks/useMouseEvents.d.ts +19 -0
  339. package/esm/hooks/useMouseEvents.d.ts.map +1 -0
  340. package/esm/hooks/useMouseEvents.js +40 -0
  341. package/esm/hooks/useNodeDragHandles.d.ts +10 -0
  342. package/esm/hooks/useNodeDragHandles.d.ts.map +1 -0
  343. package/esm/hooks/useNodeDragHandles.js +311 -0
  344. package/esm/hooks/useNodes.d.ts +9 -0
  345. package/esm/hooks/useNodes.d.ts.map +1 -0
  346. package/esm/hooks/useNodes.js +14 -0
  347. package/esm/hooks/useOnBeforeDelete.d.ts +19 -0
  348. package/esm/hooks/useOnBeforeDelete.d.ts.map +1 -0
  349. package/esm/hooks/useOnBeforeDelete.js +138 -0
  350. package/esm/hooks/useOnConnect.d.ts +12 -0
  351. package/esm/hooks/useOnConnect.d.ts.map +1 -0
  352. package/esm/hooks/useOnConnect.js +26 -0
  353. package/esm/hooks/useOnEdgeMouseEnter.d.ts +13 -0
  354. package/esm/hooks/useOnEdgeMouseEnter.d.ts.map +1 -0
  355. package/esm/hooks/useOnEdgeMouseEnter.js +20 -0
  356. package/esm/hooks/useOnEdgeMouseLeave.d.ts +13 -0
  357. package/esm/hooks/useOnEdgeMouseLeave.d.ts.map +1 -0
  358. package/esm/hooks/useOnEdgeMouseLeave.js +20 -0
  359. package/esm/hooks/useOnNodesChange.d.ts +4 -0
  360. package/esm/hooks/useOnNodesChange.d.ts.map +1 -0
  361. package/esm/hooks/useOnNodesChange.js +107 -0
  362. package/esm/hooks/useOnSelectionChange.d.ts +13 -0
  363. package/esm/hooks/useOnSelectionChange.d.ts.map +1 -0
  364. package/esm/hooks/useOnSelectionChange.js +171 -0
  365. package/esm/hooks/useSetEdges.d.ts +12 -0
  366. package/esm/hooks/useSetEdges.d.ts.map +1 -0
  367. package/esm/hooks/useSetEdges.js +22 -0
  368. package/esm/hooks/useSetSelection.d.ts +3 -0
  369. package/esm/hooks/useSetSelection.d.ts.map +1 -0
  370. package/esm/hooks/useSetSelection.js +33 -0
  371. package/esm/hooks/useSetWillDropTargets.d.ts +2 -0
  372. package/esm/hooks/useSetWillDropTargets.d.ts.map +1 -0
  373. package/esm/hooks/useSetWillDropTargets.js +18 -0
  374. package/esm/hooks/useUpstream.d.ts +3 -0
  375. package/esm/hooks/useUpstream.d.ts.map +1 -0
  376. package/esm/hooks/useUpstream.js +101 -0
  377. package/esm/hooks/useWatchSelectionNodes.d.ts +2 -0
  378. package/esm/hooks/useWatchSelectionNodes.d.ts.map +1 -0
  379. package/esm/hooks/useWatchSelectionNodes.js +14 -0
  380. package/esm/hooks/useWorkFlow.d.ts +12 -0
  381. package/esm/hooks/useWorkFlow.d.ts.map +1 -0
  382. package/esm/hooks/useWorkFlow.js +92 -0
  383. package/esm/hooks/useWorkFlowProps.d.ts +485 -0
  384. package/esm/hooks/useWorkFlowProps.d.ts.map +1 -0
  385. package/esm/hooks/useWorkFlowProps.js +102 -0
  386. package/esm/index.d.ts +23 -0
  387. package/esm/index.d.ts.map +1 -0
  388. package/esm/index.js +28 -0
  389. package/esm/types.d.ts +103 -0
  390. package/esm/types.d.ts.map +1 -0
  391. package/esm/types.js +4 -0
  392. package/esm/utils/arrayUtils.d.ts +2 -0
  393. package/esm/utils/arrayUtils.d.ts.map +1 -0
  394. package/esm/utils/arrayUtils.js +16 -0
  395. package/esm/utils/checkChildren.d.ts +11 -0
  396. package/esm/utils/checkChildren.d.ts.map +1 -0
  397. package/esm/utils/checkChildren.js +16 -0
  398. package/esm/utils/dimensions.d.ts +12 -0
  399. package/esm/utils/dimensions.d.ts.map +1 -0
  400. package/esm/utils/dimensions.js +17 -0
  401. package/esm/utils/dragDataTransfer.d.ts +19 -0
  402. package/esm/utils/dragDataTransfer.d.ts.map +1 -0
  403. package/esm/utils/dragDataTransfer.js +21 -0
  404. package/esm/utils/dropTargetsCheck.d.ts +20 -0
  405. package/esm/utils/dropTargetsCheck.d.ts.map +1 -0
  406. package/esm/utils/dropTargetsCheck.js +116 -0
  407. package/esm/utils/edgeEqualConnect.d.ts +11 -0
  408. package/esm/utils/edgeEqualConnect.d.ts.map +1 -0
  409. package/esm/utils/edgeEqualConnect.js +12 -0
  410. package/esm/utils/events.d.ts +11 -0
  411. package/esm/utils/events.d.ts.map +1 -0
  412. package/esm/utils/events.js +12 -0
  413. package/esm/utils/getEdgeId.d.ts +12 -0
  414. package/esm/utils/getEdgeId.d.ts.map +1 -0
  415. package/esm/utils/getEdgeId.js +16 -0
  416. package/esm/utils/getParentFlow.d.ts +5 -0
  417. package/esm/utils/getParentFlow.d.ts.map +1 -0
  418. package/esm/utils/getParentFlow.js +28 -0
  419. package/esm/utils/graph.d.ts +12 -0
  420. package/esm/utils/graph.d.ts.map +1 -0
  421. package/esm/utils/graph.js +51 -0
  422. package/esm/utils/index.d.ts +18 -0
  423. package/esm/utils/index.d.ts.map +1 -0
  424. package/esm/utils/index.js +18 -0
  425. package/esm/utils/isInSameParent.d.ts +11 -0
  426. package/esm/utils/isInSameParent.d.ts.map +1 -0
  427. package/esm/utils/isInSameParent.js +12 -0
  428. package/esm/utils/parent.d.ts +23 -0
  429. package/esm/utils/parent.d.ts.map +1 -0
  430. package/esm/utils/parent.js +186 -0
  431. package/esm/utils/position.d.ts +29 -0
  432. package/esm/utils/position.d.ts.map +1 -0
  433. package/esm/utils/position.js +61 -0
  434. package/esm/utils/prepareInnerLookup.d.ts +16 -0
  435. package/esm/utils/prepareInnerLookup.d.ts.map +1 -0
  436. package/esm/utils/prepareInnerLookup.js +79 -0
  437. package/esm/utils/scheduleCallback.d.ts +2 -0
  438. package/esm/utils/scheduleCallback.d.ts.map +1 -0
  439. package/esm/utils/scheduleCallback.js +36 -0
  440. package/esm/utils/serialize.d.ts +31 -0
  441. package/esm/utils/serialize.d.ts.map +1 -0
  442. package/esm/utils/serialize.js +64 -0
  443. package/esm/utils/triggerConnect.d.ts +12 -0
  444. package/esm/utils/triggerConnect.d.ts.map +1 -0
  445. package/esm/utils/triggerConnect.js +59 -0
  446. package/package.json +70 -0
@@ -0,0 +1,311 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
+ /**
14
+ * @author: yanxianliang
15
+ * @date: 2025-08-18 21:28
16
+ * @modified:2025/8/18 21:28 by yanxianliang
17
+ * @desc: 节点拖动逻辑处理
18
+ *
19
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
20
+ */
21
+ import { NodeRoleType, useNodeTypeMap } from '@rxflow/base';
22
+ import { checkChildren, evaluatePositionInParent, evaluatePositionOutParent, getParentFlow, isInSameParent } from "./..";
23
+ import { useReactFlow, useStoreApi } from "@xyflow/react";
24
+ import { isMacOs } from "@xyflow/system";
25
+ import { useMemoizedFn } from "ahooks";
26
+ import { message } from "antd";
27
+ import { getDragDataTransfer } from "../utils/dragDataTransfer";
28
+ import { canAddInNode, getAllowedIntersections } from "../utils/dropTargetsCheck";
29
+ import { calcPositionInSubFlow } from "../utils/graph";
30
+ import { useGetWillDropTarget } from "./useGetWillDropTarget";
31
+ import { useSetWillDropTargets } from "./useSetWillDropTargets";
32
+ import { useWorkFlow } from "./useWorkFlow";
33
+ export var useNodeDragHandles = function useNodeDragHandles(_onNodeDragStart, _onNodeDrag, _onNodeDragStop, _onDragOver, _onDrop, _onNodeTypeDrop) {
34
+ var _useReactFlow = useReactFlow(),
35
+ getIntersectingNodes = _useReactFlow.getIntersectingNodes,
36
+ getNodeConnections = _useReactFlow.getNodeConnections,
37
+ deleteElements = _useReactFlow.deleteElements,
38
+ getEdge = _useReactFlow.getEdge,
39
+ screenToFlowPosition = _useReactFlow.screenToFlowPosition,
40
+ getViewport = _useReactFlow.getViewport,
41
+ setNodes = _useReactFlow.setNodes;
42
+ var _useStoreApi = useStoreApi(),
43
+ getState = _useStoreApi.getState;
44
+ var _useWorkFlow = useWorkFlow(),
45
+ getInternalNode = _useWorkFlow.getInternalNode,
46
+ getNode = _useWorkFlow.getNode; // 获取内置节点实例
47
+ var setWillDropTargets = useSetWillDropTargets();
48
+ var getWillDropTarget = useGetWillDropTarget();
49
+ var nodeTypeMap = useNodeTypeMap();
50
+ var onNodeDragStart = useMemoizedFn(function (event, node, nodes) {
51
+ var _getState = getState(),
52
+ nodeLookup = _getState.nodeLookup,
53
+ nodeOrigin = _getState.nodeOrigin,
54
+ parentLookup = _getState.parentLookup;
55
+ var ctrlKey = event.ctrlKey,
56
+ altKey = event.altKey; // mac is metaKey,windows is Ctrl
57
+ var isMetaKeyDown = isMacOs() ? altKey : ctrlKey;
58
+ if (isMetaKeyDown) {
59
+ // 需要修改 dragItems 属性
60
+ // meta key is down 找出有父节点的 node
61
+ if (nodes.length > 0) {
62
+ var _iterator = _createForOfIteratorHelper(nodes),
63
+ _step;
64
+ try {
65
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
66
+ var _node = _step.value;
67
+ if (_node.parentId) {
68
+ var parentNode = getNode(_node.parentId);
69
+ if (parentNode) {
70
+ // 将内置节点属性直接修改为脱离父节点
71
+ // 更新 nodeLookUp
72
+ var innerNode = nodeLookup.get(_node.id);
73
+ if (innerNode) {
74
+ var _parentLookup$get;
75
+ var newPosition = evaluatePositionOutParent(innerNode, nodeOrigin);
76
+ delete innerNode.extent;
77
+ delete innerNode.internals.userNode.extent;
78
+ delete innerNode.parentId; // 删除父节点引用
79
+ delete innerNode.internals.userNode.parentId;
80
+ innerNode.internals.userNode.position = newPosition; // 更新 position 属性
81
+ innerNode.position = newPosition; // 更新 position 属性,绝对为只不需要更新,绝对位置是和父节点不相关的
82
+ (_parentLookup$get = parentLookup.get(_node.parentId)) === null || _parentLookup$get === void 0 || _parentLookup$get.delete(_node.id); // 清除父节点中的引用关系
83
+ }
84
+ }
85
+ }
86
+ }
87
+ } catch (err) {
88
+ _iterator.e(err);
89
+ } finally {
90
+ _iterator.f();
91
+ }
92
+ }
93
+ }
94
+ _onNodeDragStart === null || _onNodeDragStart === void 0 || _onNodeDragStart(event, node, nodes);
95
+ });
96
+ var onNodeDrag = useMemoizedFn(function (event, node, nodes) {
97
+ // 节点拖动,需要计算当前节点对应的释放节点或节点列表
98
+ var _getState2 = getState(),
99
+ nodeLookup = _getState2.nodeLookup;
100
+ var internalNode = nodeLookup.get(node.id);
101
+ if (internalNode) {
102
+ var intersections = getAllowedIntersections(nodeLookup, getIntersectingNodes(internalNode), nodes, nodeTypeMap);
103
+ // 被当前节点覆盖的节点列表
104
+ setWillDropTargets(intersections);
105
+ } else {
106
+ setWillDropTargets([]);
107
+ }
108
+ _onNodeDrag === null || _onNodeDrag === void 0 || _onNodeDrag(event, node, nodes);
109
+ });
110
+ var onNodeDragStop = useMemoizedFn(function (event, node, nodes) {
111
+ var willDrop = getWillDropTarget(); // 获取目标容器元素
112
+ var replaceNodeMap = new Map();
113
+ var _getState3 = getState(),
114
+ nodeOrigin = _getState3.nodeOrigin;
115
+ // 是否是容器节点
116
+ if (willDrop) {
117
+ var parentNode = getInternalNode(willDrop);
118
+ var targetNodeDefinition = parentNode !== null && parentNode !== void 0 && parentNode.type ? nodeTypeMap.get(parentNode.type) : undefined;
119
+ if (targetNodeDefinition) {
120
+ var nodeRoleType = targetNodeDefinition.nodeRoleType;
121
+ if (nodeRoleType === NodeRoleType.SubFlow && !node.parentId) {
122
+ // 检测不通过的时候强制不执行变更
123
+ var allowDrop = true;
124
+ var i = 0;
125
+ while (allowDrop && i < nodes.length) {
126
+ var _node2 = nodes[i];
127
+ var nodeDefinition = nodeTypeMap.get(_node2.type);
128
+ if (parentNode && nodeDefinition && checkChildren(targetNodeDefinition, nodeDefinition)) {
129
+ var newPosition = evaluatePositionInParent(_node2.position, parentNode);
130
+ // position 需要修正
131
+ var nextPosition = calcPositionInSubFlow(targetNodeDefinition, parentNode, _node2, nodeOrigin, newPosition);
132
+ replaceNodeMap.set(_node2.id, _objectSpread(_objectSpread({}, _node2), {}, {
133
+ parentId: willDrop,
134
+ position: nextPosition
135
+ }));
136
+ }
137
+ i++;
138
+ }
139
+ if (allowDrop && replaceNodeMap.size > 0) {
140
+ setNodes(function (prevNodes) {
141
+ return prevNodes.map(function (node) {
142
+ return replaceNodeMap.get(node.id) || node;
143
+ });
144
+ });
145
+ }
146
+ }
147
+ }
148
+ }
149
+ setWillDropTargets([]);
150
+
151
+ // 位置移动结束,如果节点从 Group中移动到了 Group之外,需要自动删除对应的连线
152
+ var willRemoveEdges = [];
153
+ var _iterator2 = _createForOfIteratorHelper(nodes),
154
+ _step2;
155
+ try {
156
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
157
+ var _node3 = _step2.value;
158
+ var connections = getNodeConnections({
159
+ nodeId: _node3.id
160
+ }); // 获取所有连线,剔除 parentId 不一致的
161
+ var _iterator3 = _createForOfIteratorHelper(connections),
162
+ _step3;
163
+ try {
164
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
165
+ var connection = _step3.value;
166
+ var edgeId = connection.edgeId,
167
+ source = connection.source,
168
+ target = connection.target;
169
+ if (source !== _node3.id) {
170
+ var sourceNode = getNode(source);
171
+ if (!sourceNode || !isInSameParent(replaceNodeMap.get(source) || sourceNode, replaceNodeMap.get(_node3.id) || _node3)) {
172
+ // 需要删除当前连线
173
+ var edge = getEdge(edgeId);
174
+ edge && willRemoveEdges.push(edge);
175
+ }
176
+ }
177
+ if (target !== _node3.id) {
178
+ var targetNode = getNode(target);
179
+ if (!targetNode || !isInSameParent(replaceNodeMap.get(target) || targetNode, replaceNodeMap.get(_node3.id) || _node3)) {
180
+ // 需要删除当前连线
181
+ var _edge = getEdge(edgeId);
182
+ _edge && willRemoveEdges.push(_edge);
183
+ }
184
+ }
185
+ }
186
+ } catch (err) {
187
+ _iterator3.e(err);
188
+ } finally {
189
+ _iterator3.f();
190
+ }
191
+ }
192
+ } catch (err) {
193
+ _iterator2.e(err);
194
+ } finally {
195
+ _iterator2.f();
196
+ }
197
+ if (willRemoveEdges.length > 0) {
198
+ deleteElements({
199
+ edges: willRemoveEdges
200
+ });
201
+ }
202
+ _onNodeDragStop === null || _onNodeDragStop === void 0 || _onNodeDragStop(event, node, nodes);
203
+ });
204
+ var onDragOver = useMemoizedFn(function (event) {
205
+ var _dataTransfer$offsetX, _dataTransfer$offsetY, _dataTransfer$width, _dataTransfer$height;
206
+ _onDragOver === null || _onDragOver === void 0 || _onDragOver(event);
207
+ if (!_onDragOver) {
208
+ event.preventDefault();
209
+ event.dataTransfer.dropEffect = 'move';
210
+ }
211
+ var dataTransfer = getDragDataTransfer();
212
+ var offsetX = (_dataTransfer$offsetX = dataTransfer.offsetX) !== null && _dataTransfer$offsetX !== void 0 ? _dataTransfer$offsetX : 0;
213
+ var offsetY = (_dataTransfer$offsetY = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.offsetY) !== null && _dataTransfer$offsetY !== void 0 ? _dataTransfer$offsetY : 0;
214
+ var width = (_dataTransfer$width = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.width) !== null && _dataTransfer$width !== void 0 ? _dataTransfer$width : 0;
215
+ var height = (_dataTransfer$height = dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.height) !== null && _dataTransfer$height !== void 0 ? _dataTransfer$height : 0;
216
+ var targetLeft = event.clientX - offsetX;
217
+ var targetTop = event.clientY - offsetY;
218
+ var targetWidth = width;
219
+ var targetHeight = height;
220
+ var zoom = getViewport().zoom;
221
+ var nodeType = dataTransfer.type;
222
+ var target = event.target;
223
+ if (target) {
224
+ // 获取兴趣节点
225
+ var position = screenToFlowPosition({
226
+ x: targetLeft,
227
+ y: targetTop
228
+ }); // 拖动节点对应的clientX, clientY
229
+
230
+ // 碰撞检测 宽、高
231
+ var _width = Math.ceil(targetWidth / zoom);
232
+ var _height = Math.ceil(targetHeight / zoom);
233
+ var _getState4 = getState(),
234
+ nodeLookup = _getState4.nodeLookup;
235
+ // 执行碰撞检测
236
+ var intersections = getAllowedIntersections(nodeLookup, getIntersectingNodes({
237
+ x: position.x,
238
+ y: position.y,
239
+ width: _width,
240
+ height: _height
241
+ }), nodeType ? [nodeType] : undefined, nodeTypeMap);
242
+ // 被当前节点覆盖的节点列表
243
+ setWillDropTargets(intersections);
244
+ } else {
245
+ setWillDropTargets([]);
246
+ }
247
+ });
248
+ var onDrop = useMemoizedFn( /*#__PURE__*/function () {
249
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
250
+ var type, _getState5, nodeLookup, dropTarget, parentFlow, absolutePosition, positionInFlow;
251
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
252
+ while (1) switch (_context.prev = _context.next) {
253
+ case 0:
254
+ if (!_onDrop) {
255
+ _context.next = 3;
256
+ break;
257
+ }
258
+ _context.next = 3;
259
+ return _onDrop(event);
260
+ case 3:
261
+ if (!_onNodeTypeDrop) {
262
+ _context.next = 18;
263
+ break;
264
+ }
265
+ // 内部处理对应的逻辑
266
+ event.preventDefault(); // onDrop
267
+ type = event.dataTransfer.getData('node@drag'); // 基础检测
268
+ if (!(typeof type === 'undefined' || !type)) {
269
+ _context.next = 8;
270
+ break;
271
+ }
272
+ return _context.abrupt("return");
273
+ case 8:
274
+ _getState5 = getState(), nodeLookup = _getState5.nodeLookup;
275
+ dropTarget = getWillDropTarget(); // 部分节点不允许在全局使用
276
+ if (!(!dropTarget && !canAddInNode(nodeLookup, undefined, [type], nodeTypeMap))) {
277
+ _context.next = 13;
278
+ break;
279
+ }
280
+ // 当前节点不允许在全局使用
281
+ message.error('当前节点不允许在全局使用');
282
+ return _context.abrupt("return");
283
+ case 13:
284
+ parentFlow = getParentFlow(nodeLookup, nodeTypeMap, dropTarget);
285
+ absolutePosition = screenToFlowPosition({
286
+ x: event.clientX,
287
+ y: event.clientY
288
+ }); // 节点 position 属性
289
+ positionInFlow = parentFlow ? evaluatePositionInParent(absolutePosition, parentFlow) : absolutePosition;
290
+ _context.next = 18;
291
+ return _onNodeTypeDrop(parentFlow, positionInFlow, type);
292
+ case 18:
293
+ setWillDropTargets([]);
294
+ case 19:
295
+ case "end":
296
+ return _context.stop();
297
+ }
298
+ }, _callee);
299
+ }));
300
+ return function (_x) {
301
+ return _ref.apply(this, arguments);
302
+ };
303
+ }());
304
+ return {
305
+ onNodeDragStart: onNodeDragStart,
306
+ onNodeDrag: onNodeDrag,
307
+ onNodeDragStop: onNodeDragStop,
308
+ onDragOver: onDragOver,
309
+ onDrop: onDrop
310
+ };
311
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-03 20:31
4
+ * @desc: 监听 nodes变化
5
+ *
6
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
7
+ */
8
+ export declare const useNodes: () => import("..").WorkflowNode[];
9
+ //# sourceMappingURL=useNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodes.d.ts","sourceRoot":"","sources":["useNodes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,QAAQ,mCAEpB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-03 20:31
4
+ * @desc: 监听 nodes变化
5
+ *
6
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
7
+ */
8
+
9
+ import { useSelector } from "./state";
10
+ export var useNodes = function useNodes() {
11
+ return useSelector(function (state) {
12
+ return state.nodes;
13
+ });
14
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-17 12:41
4
+ * @modified:2025/8/17 12:41 by yanxianliang
5
+ * @desc: 删除逻辑处理
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { IWorkflowProps, WorkflowNode } from "..";
10
+ import { Edge, OnBeforeDelete } from "@xyflow/react";
11
+ /**
12
+ * 需要自动关联 子工作流 删除操作
13
+ * @param onBeforeDelete
14
+ */
15
+ export declare const useOnBeforeDelete: <NodeType extends WorkflowNode = WorkflowNode, EdgeType extends Edge = Edge>(onBeforeDelete?: IWorkflowProps<NodeType, EdgeType>['onBeforeDelete']) => ({ nodes, edges }: Parameters<OnBeforeDelete<NodeType, EdgeType>>[0]) => Promise<boolean | {
16
+ nodes: NodeType[];
17
+ edges: EdgeType[];
18
+ }>;
19
+ //# sourceMappingURL=useOnBeforeDelete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnBeforeDelete.d.ts","sourceRoot":"","sources":["useOnBeforeDelete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,cAAc,EAAE,YAAY,EAAC,WAAyB;AAE9D,OAAO,EAAC,IAAI,EAAE,cAAc,EAA4B,MAAM,eAAe,CAAC;AAI9E;;;GAGG;AACH,eAAO,MAAM,iBAAiB,gGAIX,eAAe,QAAQ,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,wBAOzB,WAAW,eAAe,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;;EA2E9F,CAAC"}
@@ -0,0 +1,138 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
7
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8
+ /**
9
+ * @author: yanxianliang
10
+ * @date: 2025-08-17 12:41
11
+ * @modified:2025/8/17 12:41 by yanxianliang
12
+ * @desc: 删除逻辑处理
13
+ *
14
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
15
+ */
16
+
17
+ import { useNodeTypeMap } from '@rxflow/base';
18
+ import { useReactFlow, useStoreApi } from "@xyflow/react";
19
+ import { useMemoizedFn } from "ahooks";
20
+
21
+ /**
22
+ * 需要自动关联 子工作流 删除操作
23
+ * @param onBeforeDelete
24
+ */
25
+ export var useOnBeforeDelete = function useOnBeforeDelete(onBeforeDelete) {
26
+ var nodeTypeMap = useNodeTypeMap();
27
+ var _useReactFlow = useReactFlow(),
28
+ getNode = _useReactFlow.getNode;
29
+ var _useStoreApi = useStoreApi(),
30
+ getState = _useStoreApi.getState;
31
+ var parentLookup = getState().parentLookup;
32
+ return useMemoizedFn( /*#__PURE__*/function () {
33
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
34
+ var nodes, edges, _toBeDeleteNodes, _iterator, _step, node, subFlowNodeId, subFlowNode, childrenMap, lockNodeSet, willDeleteNodeSet, toBeDeleteNodes, _iterator2, _step2, _ref3, _nodeTypeMap$get$dele, _nodeTypeMap$get, _node$deletable, _node, type, canDelete, _subFlowNodeId, _subFlowNode, _childrenMap, toBeDeletedEdges;
35
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
36
+ while (1) switch (_context.prev = _context.next) {
37
+ case 0:
38
+ nodes = _ref.nodes, edges = _ref.edges;
39
+ if (!onBeforeDelete) {
40
+ _context.next = 8;
41
+ break;
42
+ }
43
+ // 子工作流需要自动删除
44
+ _toBeDeleteNodes = [];
45
+ _iterator = _createForOfIteratorHelper(nodes);
46
+ try {
47
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
48
+ node = _step.value;
49
+ _toBeDeleteNodes.push(node);
50
+ // 删除的节点中如果有子工作流
51
+ if (node.subFlowKey) {
52
+ subFlowNodeId = node.subFlowKey;
53
+ subFlowNode = getNode(subFlowNodeId);
54
+ if (subFlowNode) {
55
+ _toBeDeleteNodes.push(subFlowNode);
56
+ }
57
+ childrenMap = parentLookup.get(subFlowNodeId);
58
+ childrenMap === null || childrenMap === void 0 || childrenMap.forEach(function (child) {
59
+ var userNode = child.internals.userNode;
60
+ _toBeDeleteNodes.push(userNode);
61
+ });
62
+ }
63
+ }
64
+ } catch (err) {
65
+ _iterator.e(err);
66
+ } finally {
67
+ _iterator.f();
68
+ }
69
+ _context.next = 7;
70
+ return onBeforeDelete({
71
+ nodes: _toBeDeleteNodes,
72
+ edges: edges
73
+ });
74
+ case 7:
75
+ return _context.abrupt("return", _context.sent);
76
+ case 8:
77
+ lockNodeSet = new Set();
78
+ willDeleteNodeSet = new Set();
79
+ toBeDeleteNodes = [];
80
+ _iterator2 = _createForOfIteratorHelper(nodes);
81
+ try {
82
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
83
+ _node = _step2.value;
84
+ type = _node.type;
85
+ canDelete = type ? (_ref3 = (_nodeTypeMap$get$dele = (_nodeTypeMap$get = nodeTypeMap.get(type)) === null || _nodeTypeMap$get === void 0 ? void 0 : _nodeTypeMap$get.deletable) !== null && _nodeTypeMap$get$dele !== void 0 ? _nodeTypeMap$get$dele : _node.deletable) !== null && _ref3 !== void 0 ? _ref3 : true : (_node$deletable = _node.deletable) !== null && _node$deletable !== void 0 ? _node$deletable : true;
86
+ if (!canDelete) {
87
+ lockNodeSet.add(_node.id); // 不能删除的节点
88
+ } else {
89
+ willDeleteNodeSet.add(_node.id);
90
+ toBeDeleteNodes.push(_node);
91
+ // 删除的节点中如果有子工作流
92
+ if (_node.subFlowKey) {
93
+ _subFlowNodeId = _node.subFlowKey;
94
+ _subFlowNode = getNode(_subFlowNodeId);
95
+ if (_subFlowNode) {
96
+ toBeDeleteNodes.push(_subFlowNode);
97
+ }
98
+ _childrenMap = parentLookup.get(_subFlowNodeId);
99
+ _childrenMap === null || _childrenMap === void 0 || _childrenMap.forEach(function (child) {
100
+ var userNode = child.internals.userNode;
101
+ toBeDeleteNodes.push(userNode);
102
+ });
103
+ }
104
+ }
105
+ }
106
+
107
+ /**
108
+ * 可删除边的条件
109
+ */
110
+ } catch (err) {
111
+ _iterator2.e(err);
112
+ } finally {
113
+ _iterator2.f();
114
+ }
115
+ toBeDeletedEdges = edges.filter(function (edge) {
116
+ var _edge$deletable;
117
+ var canDelete = (_edge$deletable = edge.deletable) !== null && _edge$deletable !== void 0 ? _edge$deletable : true;
118
+ if (!canDelete) {
119
+ return false;
120
+ }
121
+ // 当前节点处于被删除列表,其他的不进行多余处理
122
+ return !lockNodeSet.has(edge.source) && !lockNodeSet.has(edge.target) || willDeleteNodeSet.has(edge.source) || willDeleteNodeSet.has(edge.target);
123
+ });
124
+ return _context.abrupt("return", {
125
+ nodes: toBeDeleteNodes,
126
+ edges: toBeDeletedEdges
127
+ });
128
+ case 15:
129
+ case "end":
130
+ return _context.stop();
131
+ }
132
+ }, _callee);
133
+ }));
134
+ return function (_x) {
135
+ return _ref2.apply(this, arguments);
136
+ };
137
+ }());
138
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 13:43
4
+ * @modified:2025/8/16 13:43 by yanxianliang
5
+ * @desc: 边变化回调
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { IWorkflowProps } from "..";
10
+ import { type Node, Connection, Edge } from "@xyflow/react";
11
+ export declare const useOnConnect: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: IWorkflowProps<NodeType, EdgeType>) => (connection: Connection) => void;
12
+ //# sourceMappingURL=useOnConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnConnect.d.ts","sourceRoot":"","sources":["useOnConnect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,cAAc,EAAC,WAAyB;AAChD,OAAO,EAAC,KAAK,IAAI,EAAE,UAAU,EAAe,IAAI,EAAa,MAAM,eAAe,CAAC;AAInF,eAAO,MAAM,YAAY,sEAGhB,eAAe,QAAQ,EAAE,QAAQ,CAAC,kBAIT,UAAU,SAK3C,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 13:43
4
+ * @modified:2025/8/16 13:43 by yanxianliang
5
+ * @desc: 边变化回调
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ import { useStoreApi } from "@xyflow/react";
11
+ import { useCallback } from "react";
12
+ import { triggerConnect } from "../utils/triggerConnect";
13
+ export var useOnConnect = function useOnConnect(props) {
14
+ var store = useStoreApi();
15
+
16
+ // 还是应该触发 onEdgesChange ==> 或者直接设置
17
+ return useCallback(function (connection) {
18
+ var _store$getState = store.getState(),
19
+ hasDefaultEdges = _store$getState.hasDefaultEdges,
20
+ triggerEdgeChanges = _store$getState.triggerEdgeChanges,
21
+ edges = _store$getState.edges;
22
+ var connectionLimit = props.connectionLimit,
23
+ onConnect = props.onConnect;
24
+ triggerConnect(connection, hasDefaultEdges, edges, triggerEdgeChanges, connectionLimit, onConnect);
25
+ }, []);
26
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 16:43
4
+ * @modified:2025/8/16 16:43 by yanxianliang
5
+ * @desc: 鼠标移动到边上
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { IWorkflowProps } from "..";
10
+ import { Edge, Node } from "@xyflow/react";
11
+ import { type MouseEvent } from "react";
12
+ export declare const useOnEdgeMouseEnter: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(_onEdgeMouseEnter?: IWorkflowProps<NodeType, EdgeType>['onEdgeMouseEnter']) => (event: MouseEvent, edge: EdgeType) => void;
13
+ //# sourceMappingURL=useOnEdgeMouseEnter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnEdgeMouseEnter.d.ts","sourceRoot":"","sources":["useOnEdgeMouseEnter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAC,cAAc,EAAC,WAAyB;AAChD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,OAAO,CAAC;AAGlD,eAAO,MAAM,mBAAmB,mFAGV,eAAe,QAAQ,EAAE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,aAE/C,UAAU,QAAQ,QAAQ,SAMvD,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 16:43
4
+ * @modified:2025/8/16 16:43 by yanxianliang
5
+ * @desc: 鼠标移动到边上
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ import { useCallback } from "react";
11
+ import { useSetState } from "./state";
12
+ export var useOnEdgeMouseEnter = function useOnEdgeMouseEnter(_onEdgeMouseEnter) {
13
+ var setState = useSetState();
14
+ return useCallback(function (event, edge) {
15
+ setState({
16
+ hoveredEdge: edge.id
17
+ });
18
+ _onEdgeMouseEnter === null || _onEdgeMouseEnter === void 0 || _onEdgeMouseEnter(event, edge);
19
+ }, []);
20
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 16:51
4
+ * @modified:2025/8/16 16:51 by yanxianliang
5
+ * @desc: 鼠标移动到边外
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { IWorkflowProps } from "..";
10
+ import { Edge, Node } from "@xyflow/react";
11
+ import { type MouseEvent } from "react";
12
+ export declare const useOnEdgeMouseLeave: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(_onEdgeMouseLeave?: IWorkflowProps<NodeType, EdgeType>['onEdgeMouseLeave']) => (event: MouseEvent, edge: EdgeType) => void;
13
+ //# sourceMappingURL=useOnEdgeMouseLeave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnEdgeMouseLeave.d.ts","sourceRoot":"","sources":["useOnEdgeMouseLeave.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAC,cAAc,EAAC,WAAyB;AAChD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,OAAO,CAAC;AAGnD,eAAO,MAAM,mBAAmB,mFAGV,eAAe,QAAQ,EAAE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,aAE/C,UAAU,QAAQ,QAAQ,SAMtD,CAAA"}