@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,102 @@
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
+ var _excluded = ["deleteKeyCode", "nodesConnectable", "nodesDraggable", "nodeTypes", "controlsPosition", "onEdgesChange", "fitView", "onSelectionChange", "selectionStrategy", "selectNodesOnDrag"];
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+ /**
11
+ * @author: yanxianliang
12
+ * @date: 2025-08-25 15:25
13
+ * @modified:2025/8/25 15:25 by yanxianliang
14
+ * @desc: 生成向下传递真是的 props
15
+ *
16
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
17
+ */
18
+ import { SelectionStrategy, useNodeTypeMap } from "@rxflow/base";
19
+ import { useMemoizedFn } from "ahooks";
20
+ import { prepareInnerLookup } from "../utils/prepareInnerLookup";
21
+ import { useIsValidConnection } from "./useIsValidConnection";
22
+ import { useMouseEvents } from "./useMouseEvents";
23
+ import { useNodeDragHandles } from "./useNodeDragHandles";
24
+ import { useOnBeforeDelete } from "./useOnBeforeDelete";
25
+ import { useOnConnect } from "./useOnConnect";
26
+ import { useOnEdgeMouseEnter } from "./useOnEdgeMouseEnter";
27
+ import { useOnEdgeMouseLeave } from "./useOnEdgeMouseLeave";
28
+ import { useOnNodesChange } from "./useOnNodesChange";
29
+ import { useOnSelectionChange } from "./useOnSelectionChange";
30
+ var omitProps = ['height', 'sider', 'loading', 'connectionLimit', 'onNodeTypeDrop', 'renderNodeIcon', 'quickAdd'];
31
+ var defaultDeleteKeyCode = ["Delete", "Backspace"];
32
+ export var useWorkFlowProps = function useWorkFlowProps(props) {
33
+ var _props$deleteKeyCode = props.deleteKeyCode,
34
+ deleteKeyCode = _props$deleteKeyCode === void 0 ? defaultDeleteKeyCode : _props$deleteKeyCode,
35
+ _props$nodesConnectab = props.nodesConnectable,
36
+ nodesConnectable = _props$nodesConnectab === void 0 ? true : _props$nodesConnectab,
37
+ _props$nodesDraggable = props.nodesDraggable,
38
+ nodesDraggable = _props$nodesDraggable === void 0 ? true : _props$nodesDraggable,
39
+ nodeTypes = props.nodeTypes,
40
+ _props$controlsPositi = props.controlsPosition,
41
+ controlsPosition = _props$controlsPositi === void 0 ? 'bottom-left' : _props$controlsPositi,
42
+ onEdgesChange = props.onEdgesChange,
43
+ _props$fitView = props.fitView,
44
+ fitView = _props$fitView === void 0 ? true : _props$fitView,
45
+ _onSelectionChange = props.onSelectionChange,
46
+ _props$selectionStrat = props.selectionStrategy,
47
+ selectionStrategy = _props$selectionStrat === void 0 ? SelectionStrategy.ALL : _props$selectionStrat,
48
+ _props$selectNodesOnD = props.selectNodesOnDrag,
49
+ selectNodesOnDrag = _props$selectNodesOnD === void 0 ? true : _props$selectNodesOnD,
50
+ others = _objectWithoutProperties(props, _excluded);
51
+ var onSelectionChange = useOnSelectionChange(selectionStrategy, _onSelectionChange);
52
+ var nodeTypeLookup = useNodeTypeMap(); // nodeType lookup
53
+
54
+ var isValidConnection = useIsValidConnection(props);
55
+ var onConnect = useOnConnect(props);
56
+ var onEdgeMouseEnter = useOnEdgeMouseEnter(props.onEdgeMouseEnter);
57
+ var onEdgeMouseLeave = useOnEdgeMouseLeave(props.onEdgeMouseLeave);
58
+ var _useMouseEvents = useMouseEvents(props.onMouseEnter, props.onMouseLeave, props.onMouseMove),
59
+ onMouseLeave = _useMouseEvents.onMouseLeave,
60
+ onMouseEnter = _useMouseEvents.onMouseEnter,
61
+ onMouseMove = _useMouseEvents.onMouseMove;
62
+ var onBeforeDelete = useOnBeforeDelete(props.onBeforeDelete);
63
+ var onNodesChange = useOnNodesChange(props.onNodesChange);
64
+ var _useNodeDragHandles = useNodeDragHandles(props.onNodeDragStart, props.onNodeDrag, props.onNodeDragStop, props.onDragOver, props.onDrop, props.onNodeTypeDrop),
65
+ onNodeDragStart = _useNodeDragHandles.onNodeDragStart,
66
+ onNodeDragStop = _useNodeDragHandles.onNodeDragStop,
67
+ onNodeDrag = _useNodeDragHandles.onNodeDrag,
68
+ onDragOver = _useNodeDragHandles.onDragOver,
69
+ onDrop = _useNodeDragHandles.onDrop;
70
+ var layout = useMemoizedFn(function (config) {
71
+ return prepareInnerLookup(config, nodeTypeLookup);
72
+ });
73
+ return _objectSpread(_objectSpread({
74
+ showMiniMap: true,
75
+ controlsPosition: controlsPosition,
76
+ nodeTypes: nodeTypes,
77
+ fitView: fitView
78
+ }, others), {}, {
79
+ selectNodesOnDrag: selectNodesOnDrag,
80
+ omitProps: omitProps,
81
+ nodesDraggable: nodesDraggable,
82
+ nodesConnectable: nodesConnectable,
83
+ deleteKeyCode: deleteKeyCode,
84
+ isValidConnection: isValidConnection,
85
+ onDrop: onDrop,
86
+ onDragOver: onDragOver,
87
+ onConnect: onConnect,
88
+ onEdgesChange: onEdgesChange,
89
+ onNodesChange: onNodesChange,
90
+ onBeforeDelete: onBeforeDelete,
91
+ layout: layout,
92
+ onSelectionChange: onSelectionChange,
93
+ onEdgeMouseEnter: onEdgeMouseEnter,
94
+ onEdgeMouseLeave: onEdgeMouseLeave,
95
+ onMouseLeave: onMouseLeave,
96
+ onMouseEnter: onMouseEnter,
97
+ onMouseMove: onMouseMove,
98
+ onNodeDragStart: onNodeDragStart,
99
+ onNodeDrag: onNodeDrag,
100
+ onNodeDragStop: onNodeDragStop
101
+ });
102
+ };
package/esm/index.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-06-27 09:32
4
+ * @desc: 工作流组件
5
+ *
6
+ * 支持工作流编排能力,支持节点自定义
7
+ *
8
+ * 支持nodes 外部传递
9
+ * 支持x6数据结构转换
10
+ *
11
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
12
+ */
13
+ import '@xyflow/react/dist/style.css';
14
+ import type { Node } from '@xyflow/react';
15
+ import React from "react";
16
+ import { IWorkflowProps } from "./types";
17
+ declare const _default: <NodeType extends Node = Node>(props: IWorkflowProps<NodeType>) => React.ReactElement;
18
+ export default _default;
19
+ export * from './types';
20
+ export * from './utils';
21
+ export * from './constants/RunningStatus';
22
+ export * from './components/Handle';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AAExC,OAAO,KAAa,MAAM,OAAO,CAAC;AAGlC,OAAO,EAAC,cAAc,EAAsB,MAAM,SAAS,CAAC;8DAM+E,eAAe,QAAQ,CAAC,KAAK,MAAM,YAAY;AAA1L,wBAA2L;AAE3L,cAAc,SAAS,CAAC;AAExB,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
package/esm/index.js ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-06-27 09:32
4
+ * @desc: 工作流组件
5
+ *
6
+ * 支持工作流编排能力,支持节点自定义
7
+ *
8
+ * 支持nodes 外部传递
9
+ * 支持x6数据结构转换
10
+ *
11
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
12
+ */
13
+
14
+ import '@xyflow/react/dist/style.css';
15
+ import { createFlow } from "@rxflow/base";
16
+ import { isEqual } from 'lodash';
17
+ import { memo } from "react";
18
+ import { WorkFlowLayout } from "./components/Layout";
19
+ import { useWorkFlowProps } from "./hooks/useWorkFlowProps";
20
+ // 怎么把 nodeType 和 EdgeType 传递进去
21
+ var WorkFlow = createFlow(WorkFlowLayout, useWorkFlowProps);
22
+ export default /*#__PURE__*/memo(WorkFlow, function (prevProps, nextProps) {
23
+ return isEqual(prevProps, nextProps);
24
+ });
25
+ export * from "./types";
26
+ export * from "./utils";
27
+ export * from "./constants/RunningStatus";
28
+ export * from "./components/Handle";
package/esm/types.d.ts ADDED
@@ -0,0 +1,103 @@
1
+ import { BaseStateType, IBaseFlowProps, InnerFlowType, INodeDefinition, NodeRoleType, SelectionStrategy } from "@rxflow/base";
2
+ import { Edge, InternalNode, Node, XYPosition } from '@xyflow/react';
3
+ import { CoordinateExtent } from "@xyflow/system";
4
+ import type { HandleProps as InnerHandleProps } from '@xyflow/system';
5
+ import { HTMLAttributes } from "react";
6
+ import { RunningStatus } from "./constants/RunningStatus";
7
+ export type WorkflowNode = Node & {
8
+ subFlowKey?: string;
9
+ };
10
+ export interface WorkFlowBaseNodeDefinition<DataType extends Record<string, unknown> = Record<string, unknown>> extends INodeDefinition<DataType> {
11
+ nodeRoleType?: Exclude<NodeRoleType, NodeRoleType.SubFlow>;
12
+ allowInFlowTypes?: Array<InnerFlowType | string>;
13
+ forbiddenInFlowTypes?: Array<InnerFlowType | string>;
14
+ }
15
+ export interface WorkFlowSubFlowNodeDefinition<DataType extends Record<string, unknown> = Record<string, unknown>> extends INodeDefinition<DataType> {
16
+ nodeRoleType: NodeRoleType.SubFlow;
17
+ subFlowViewPort?: {
18
+ top?: number;
19
+ bottom?: number;
20
+ left?: number;
21
+ right?: number;
22
+ minWidth?: number;
23
+ minHeight?: number;
24
+ };
25
+ childrenExtent?: CoordinateExtent;
26
+ allowInFlowTypes?: Array<InnerFlowType | string>;
27
+ forbiddenInFlowTypes?: Array<InnerFlowType | string>;
28
+ allowNodeTypes?: string[];
29
+ forbiddenNodeTypes?: string[];
30
+ allowContentSelection?: boolean;
31
+ }
32
+ export type WorkFlowNodeDefinition<DataType extends Record<string, unknown> = Record<string, unknown>> = WorkFlowSubFlowNodeDefinition<DataType> | WorkFlowBaseNodeDefinition<DataType>;
33
+ export type WorkflowExtendProps<NodeType extends WorkflowNode = WorkflowNode> = {
34
+ nodeTypes?: WorkFlowNodeDefinition<NodeType['data']>[];
35
+ readOnly?: boolean;
36
+ loading?: boolean;
37
+ quickAdd?: boolean;
38
+ renderNodeIcon?: (nodeDefinition: WorkFlowNodeDefinition<NodeType['data']>) => React.ReactNode;
39
+ sider?: {
40
+ loading?: boolean;
41
+ };
42
+ /**
43
+ * @description 限制链接规则,配合 connectionMode 和 isValidConnection一起使用,可以实现复杂的链接限制逻辑
44
+ */
45
+ connectionLimit?: {
46
+ /**
47
+ * @description 是否禁止循环链
48
+ */
49
+ preventCycle?: boolean;
50
+ /**
51
+ * @description 是否禁止并发,一个 handle 链接多个目标节点,通常根据工作流是否支持并发来配置
52
+ */
53
+ preventConcurrency?: boolean;
54
+ /**
55
+ * @description 禁止跨层级,比如从主工作流连接子工作流节点,或不同子工作流之间连接
56
+ */
57
+ preventCrossSubFlow?: boolean;
58
+ };
59
+ selectionStrategy?: SelectionStrategy;
60
+ /**
61
+ * @description 侧边拖动节点到画布中,触发对应的新增回调
62
+ */
63
+ onNodeTypeDrop?: (parentFlow: InternalNode<NodeType> | undefined, positionInParent: XYPosition, nodeType: string) => Promise<{
64
+ id: string;
65
+ connectSourceHandle: string;
66
+ connectTargetHandle: string;
67
+ } | undefined>;
68
+ };
69
+ export type IWorkflowProps<NodeType extends WorkflowNode = WorkflowNode, EdgeType extends Edge = Edge> = Omit<IBaseFlowProps<NodeType, EdgeType>, 'nodeTypes'> & WorkflowExtendProps<NodeType>;
70
+ export type NodeRunningStatus = 'running' | 'success' | 'failed';
71
+ export type NodeRunState = {
72
+ status?: NodeRunningStatus;
73
+ timeSpent?: number;
74
+ input?: any;
75
+ output?: any;
76
+ [key: string]: any;
77
+ };
78
+ export type WorkflowRunState = {
79
+ runningStatus?: RunningStatus;
80
+ timeSpent?: number;
81
+ activeEdges?: Set<string>;
82
+ nodeRunMap?: Record<string, NodeRunState>;
83
+ nodePageIndexMap?: Record<string, number>;
84
+ runLogs?: any[];
85
+ };
86
+ export type WorkflowBaseState<NodeType extends WorkflowNode = WorkflowNode, EdgeType extends Edge = Edge> = BaseStateType & {
87
+ nodes: NodeType[];
88
+ edges: EdgeType[];
89
+ selectedNodes?: Array<string>;
90
+ selectedEdges?: Array<string>;
91
+ hoveredEdge?: string;
92
+ dropTargetIds?: string[];
93
+ runState?: WorkflowRunState;
94
+ };
95
+ export type WorkflowState<ExtraState extends Record<string, any> = Record<string, any>, NodeType extends WorkflowNode = WorkflowNode, EdgeType extends Edge = Edge> = ValidityState & WorkflowBaseState<NodeType, EdgeType> & ExtraState;
96
+ export type WorkflowStateApi<ExtraState extends Record<string, any> = Record<string, any>> = {};
97
+ export type NodeErrors = Array<string | [string, any]>;
98
+ export type ValidityState = {
99
+ errors?: Record<string, NodeErrors | undefined>;
100
+ };
101
+ export type NodeTypeLookup = Map<string, WorkFlowNodeDefinition>;
102
+ export type HandleProps = InnerHandleProps & Omit<HTMLAttributes<HTMLDivElement>, 'id'> & {};
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
package/esm/types.js ADDED
@@ -0,0 +1,4 @@
1
+ {}
2
+
3
+ // 异常描述信息,后续可更新异常结构
4
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function stringArrayIsEqual(arr1: string[], arr2: string[]): boolean;
2
+ //# sourceMappingURL=arrayUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrayUtils.d.ts","sourceRoot":"","sources":["arrayUtils.ts"],"names":[],"mappings":"AAUA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAMhE"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-24 23:33
4
+ * @modified:2025/8/24 23:33 by yanxianliang
5
+ * @desc: 数组处理工具
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { isEqual, sortBy } from 'lodash';
10
+ export function stringArrayIsEqual(arr1, arr2) {
11
+ // 1. 检查长度是否相同
12
+ if (arr1.length !== arr2.length) return false;
13
+
14
+ // 2. 使用 Lodash 排序并比较
15
+ return isEqual(sortBy(arr1), sortBy(arr2));
16
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-19 14:20
4
+ * @modified:2025/8/19 14:20 by yanxianliang
5
+ * @desc: 检测是否允许作为子节点
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { WorkFlowNodeDefinition } from "..";
10
+ export declare const checkChildren: (groupDefinition: WorkFlowNodeDefinition, childDefinition: WorkFlowNodeDefinition) => boolean;
11
+ //# sourceMappingURL=checkChildren.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkChildren.d.ts","sourceRoot":"","sources":["checkChildren.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,sBAAsB,EAAC,WAAyB;AAExD,eAAO,MAAM,aAAa,oBAAqB,sBAAsB,mBAAmB,sBAAsB,YAU7G,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-19 14:20
4
+ * @modified:2025/8/19 14:20 by yanxianliang
5
+ * @desc: 检测是否允许作为子节点
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ export var checkChildren = function checkChildren(groupDefinition, childDefinition) {
11
+ var allowNodeTypes = groupDefinition.allowNodeTypes,
12
+ forbiddenNodeTypes = groupDefinition.forbiddenNodeTypes;
13
+ var allowInGroupTypes = childDefinition.allowInGroupTypes,
14
+ forbiddenInGroupTypes = childDefinition.forbiddenInGroupTypes;
15
+ return !(allowNodeTypes && !new Set(allowNodeTypes).has(childDefinition.type) || forbiddenNodeTypes && new Set(forbiddenNodeTypes).has(childDefinition.type) || allowInGroupTypes && !new Set(allowInGroupTypes).has(groupDefinition.type) || forbiddenInGroupTypes && new Set(forbiddenInGroupTypes).has(groupDefinition.type));
16
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-18 21:26
4
+ * @modified:2025/8/18 21:26 by yanxianliang
5
+ * @desc: 获取节点尺寸
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { Node } from "@xyflow/react";
10
+ export declare const getNodeWidth: (node: Node) => number;
11
+ export declare const getNodeHeight: (node: Node) => number;
12
+ //# sourceMappingURL=dimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AAEnC,eAAO,MAAM,YAAY,SAAQ,IAAI,WAEpC,CAAA;AAED,eAAO,MAAM,aAAa,SAAQ,IAAI,WAErC,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-18 21:26
4
+ * @modified:2025/8/18 21:26 by yanxianliang
5
+ * @desc: 获取节点尺寸
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ export var getNodeWidth = function getNodeWidth(node) {
11
+ var _ref, _node$measured$width, _node$measured;
12
+ return (_ref = (_node$measured$width = (_node$measured = node.measured) === null || _node$measured === void 0 ? void 0 : _node$measured.width) !== null && _node$measured$width !== void 0 ? _node$measured$width : node.width) !== null && _ref !== void 0 ? _ref : 0;
13
+ };
14
+ export var getNodeHeight = function getNodeHeight(node) {
15
+ var _ref2, _node$measured$height, _node$measured2;
16
+ return (_ref2 = (_node$measured$height = (_node$measured2 = node.measured) === null || _node$measured2 === void 0 ? void 0 : _node$measured2.height) !== null && _node$measured$height !== void 0 ? _node$measured$height : node.height) !== null && _ref2 !== void 0 ? _ref2 : 0;
17
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-19 18:13
4
+ * @modified:2025/8/19 18:13 by yanxianliang
5
+ * @desc: 拖动数据传递
6
+ *
7
+ * dragOver 事件中不支持读取 dataTransfer,需要用其来传递
8
+ *
9
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
10
+ */
11
+ export declare const setDragDataTransfer: (dataTransfer: Record<string, any>) => void;
12
+ export declare const getDragDataTransfer: () => {
13
+ width?: number | undefined;
14
+ height?: number | undefined;
15
+ offsetX?: number | undefined;
16
+ offsetY?: number | undefined;
17
+ type?: string | undefined;
18
+ };
19
+ //# sourceMappingURL=dragDataTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragDataTransfer.d.ts","sourceRoot":"","sources":["dragDataTransfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,eAAO,MAAM,mBAAmB,iBAAiB,OAAO,MAAM,EAAE,GAAG,CAAC,SAEnE,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;CAE/B,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-19 18:13
4
+ * @modified:2025/8/19 18:13 by yanxianliang
5
+ * @desc: 拖动数据传递
6
+ *
7
+ * dragOver 事件中不支持读取 dataTransfer,需要用其来传递
8
+ *
9
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
10
+ */
11
+
12
+ var dragDataTransfer = {};
13
+ document.addEventListener('dragend', function () {
14
+ dragDataTransfer = {};
15
+ });
16
+ export var setDragDataTransfer = function setDragDataTransfer(dataTransfer) {
17
+ dragDataTransfer = dataTransfer;
18
+ };
19
+ export var getDragDataTransfer = function getDragDataTransfer() {
20
+ return dragDataTransfer;
21
+ };
@@ -0,0 +1,20 @@
1
+ import { NodeTypeLookup, WorkflowNode } from "..";
2
+ import { InternalNode } from "@xyflow/react";
3
+ import { NodeLookup } from "@xyflow/system";
4
+ /**
5
+ * 检测,节点是否支持添加到对应节点类型下
6
+ * @param parentType
7
+ * @param sources
8
+ * @param nodeTypeLookup
9
+ */
10
+ export declare const canAddToParentType: <NodeType extends WorkflowNode = WorkflowNode>(parentType: string, sources: NodeType[] | string[], nodeTypeLookup: NodeTypeLookup) => boolean;
11
+ /**
12
+ * 检测,节点是否支持添加到对应节点下
13
+ * @param nodeLookup
14
+ * @param parentId
15
+ * @param sources
16
+ * @param nodeTypeLookup
17
+ */
18
+ export declare const canAddInNode: <NodeType extends WorkflowNode = WorkflowNode>(nodeLookup: NodeLookup<InternalNode<NodeType>>, parentId: string | null | undefined, sources: NodeType[] | string[], nodeTypeLookup: NodeTypeLookup) => boolean;
19
+ export declare const getAllowedIntersections: <NodeType extends WorkflowNode = WorkflowNode>(nodeLookup: NodeLookup<InternalNode<NodeType>>, intersections: NodeType[], sources: NodeType[] | string[] | undefined, nodeTypeLookup: NodeTypeLookup) => string[];
20
+ //# sourceMappingURL=dropTargetsCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropTargetsCheck.d.ts","sourceRoot":"","sources":["dropTargetsCheck.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,cAAc,EAAE,YAAY,EAAyB,WAAyB;AACtF,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AA0C1C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,6DACjB,MAAM,WACT,QAAQ,EAAE,GAAG,MAAM,EAAE,4CAe/B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,2GAEb,MAAM,GAAG,IAAI,GAAG,SAAS,WAC1B,QAAQ,EAAE,GAAG,MAAM,EAAE,4CAiB/B,CAAA;AAED,eAAO,MAAM,uBAAuB,gHAEnB,QAAQ,EAAE,WAChB,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,6CAU3C,CAAA"}
@@ -0,0 +1,116 @@
1
+ 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; } } }; }
2
+ 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); }
3
+ 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; }
4
+ /**
5
+ * @author: yanxianliang
6
+ * @date: 2025-08-30 16:17
7
+ * @modified:2025/8/30 16:17 by yanxianliang
8
+ * @desc: dropTargets 校验
9
+ *
10
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
11
+ */
12
+ import { InnerFlowType, NodeRoleType } from '@rxflow/base';
13
+ var checkTargetIsAllow = function checkTargetIsAllow(sourceDefinition, targetDefinition, inGlobal) {
14
+ if (!targetDefinition) {
15
+ if (inGlobal) {
16
+ // 全局检测
17
+ if (sourceDefinition.allowInFlowTypes && !new Set(sourceDefinition.allowInFlowTypes).has(InnerFlowType.Global)) {
18
+ return false;
19
+ }
20
+ if (sourceDefinition.forbiddenInFlowTypes && new Set(sourceDefinition.forbiddenInFlowTypes).has(InnerFlowType.Global)) {
21
+ return false;
22
+ }
23
+ return true;
24
+ }
25
+ return true;
26
+ }
27
+ if (targetDefinition.nodeRoleType !== NodeRoleType.SubFlow) {
28
+ // 非子工作流不允许添加
29
+ return false;
30
+ }
31
+ if (sourceDefinition.allowInFlowTypes && !new Set(sourceDefinition.allowInFlowTypes).has(targetDefinition.type)) {
32
+ return false;
33
+ }
34
+ if (sourceDefinition.forbiddenInFlowTypes && new Set(sourceDefinition.forbiddenInFlowTypes).has(targetDefinition.type)) {
35
+ return false;
36
+ }
37
+ if (targetDefinition.allowNodeTypes && !new Set(targetDefinition.allowNodeTypes).has(sourceDefinition.type)) {
38
+ return false;
39
+ }
40
+ if (targetDefinition.forbiddenNodeTypes && new Set(targetDefinition.forbiddenNodeTypes).has(sourceDefinition.type)) {
41
+ return false;
42
+ }
43
+ return true;
44
+ };
45
+
46
+ /**
47
+ * 检测,节点是否支持添加到对应节点类型下
48
+ * @param parentType
49
+ * @param sources
50
+ * @param nodeTypeLookup
51
+ */
52
+ export var canAddToParentType = function canAddToParentType(parentType, sources, nodeTypeLookup) {
53
+ var targetIsGlobal = parentType === InnerFlowType.Global;
54
+ var targetDefinition = nodeTypeLookup.get(parentType);
55
+ if (!targetDefinition && !targetIsGlobal) {
56
+ // 全局的需要特殊处理
57
+ return true;
58
+ }
59
+ var _iterator = _createForOfIteratorHelper(sources),
60
+ _step;
61
+ try {
62
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
63
+ var source = _step.value;
64
+ var sourceTarget = nodeTypeLookup.get(typeof source === 'string' ? source : source.type);
65
+ if (sourceTarget && !checkTargetIsAllow(sourceTarget, targetDefinition, targetIsGlobal)) {
66
+ return false;
67
+ }
68
+ }
69
+ } catch (err) {
70
+ _iterator.e(err);
71
+ } finally {
72
+ _iterator.f();
73
+ }
74
+ return true;
75
+ };
76
+
77
+ /**
78
+ * 检测,节点是否支持添加到对应节点下
79
+ * @param nodeLookup
80
+ * @param parentId
81
+ * @param sources
82
+ * @param nodeTypeLookup
83
+ */
84
+ export var canAddInNode = function canAddInNode(nodeLookup, parentId, sources, nodeTypeLookup) {
85
+ var parentNode = parentId ? nodeLookup.get(parentId) : undefined;
86
+ while (parentNode) {
87
+ var parentType = parentNode.type;
88
+ if (parentType) {
89
+ var parentDefinition = nodeTypeLookup.get(parentType);
90
+ if (parentDefinition && parentDefinition.nodeRoleType === NodeRoleType.SubFlow) {
91
+ return canAddToParentType(parentType, sources, nodeTypeLookup);
92
+ }
93
+ }
94
+ // 有些情况不需要往上检测
95
+ parentNode = parentNode.parentId ? nodeLookup.get(parentNode.parentId) : undefined;
96
+ }
97
+ return canAddToParentType(InnerFlowType.Global, sources, nodeTypeLookup);
98
+ };
99
+ export var getAllowedIntersections = function getAllowedIntersections(nodeLookup, intersections, sources, nodeTypeLookup) {
100
+ var targets = [];
101
+ var _iterator2 = _createForOfIteratorHelper(intersections),
102
+ _step2;
103
+ try {
104
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
105
+ var intersection = _step2.value;
106
+ if (!sources || canAddInNode(nodeLookup, intersection.id, sources, nodeTypeLookup)) {
107
+ targets.push(intersection.id);
108
+ }
109
+ }
110
+ } catch (err) {
111
+ _iterator2.e(err);
112
+ } finally {
113
+ _iterator2.f();
114
+ }
115
+ return targets;
116
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 17:27
4
+ * @modified:2025/8/16 17:27 by yanxianliang
5
+ * @desc: 获取除当前连接外的边
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { Connection, Edge } from "@xyflow/react";
10
+ export declare const edgeEqualConnect: <EdgeType extends Edge = Edge>(edge: EdgeType | Connection, connection: Connection | EdgeType) => boolean;
11
+ //# sourceMappingURL=edgeEqualConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgeEqualConnect.d.ts","sourceRoot":"","sources":["edgeEqualConnect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAE/C,eAAO,MAAM,gBAAgB,uCAAwC,QAAQ,GAAG,UAAU,cAAc,UAAU,GAAG,QAAQ,YAK5H,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 17:27
4
+ * @modified:2025/8/16 17:27 by yanxianliang
5
+ * @desc: 获取除当前连接外的边
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ export var edgeEqualConnect = function edgeEqualConnect(edge, connection) {
11
+ return edge.source === connection.source && edge.target === connection.target && (edge.sourceHandle === connection.sourceHandle || !edge.sourceHandle && !connection.sourceHandle) && (edge.targetHandle === connection.targetHandle || !edge.targetHandle && !connection.targetHandle);
12
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-09-07 12:47
4
+ * @modified:2025/9/7 12:47 by yanxianliang
5
+ * @desc: events default utils
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import React from "react";
10
+ export declare const stopPropagation: (e: React.MouseEvent) => void;
11
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,eAAe,MAAO,gBAAgB,SAElD,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-09-07 12:47
4
+ * @modified:2025/9/7 12:47 by yanxianliang
5
+ * @desc: events default utils
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+
10
+ export var stopPropagation = function stopPropagation(e) {
11
+ e.stopPropagation();
12
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author: yanxianliang
3
+ * @date: 2025-08-16 17:17
4
+ * @modified:2025/8/16 17:17 by yanxianliang
5
+ * @desc: 生成边 id
6
+ *
7
+ * Copyright (c) 2025 by yanxianliang, All Rights Reserved.
8
+ */
9
+ import { Connection } from "@xyflow/react";
10
+ import { EdgeBase } from "@xyflow/system";
11
+ export declare const getEdgeId: ({ source, sourceHandle, target, targetHandle }: Connection | EdgeBase) => string;
12
+ //# sourceMappingURL=getEdgeId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEdgeId.d.ts","sourceRoot":"","sources":["getEdgeId.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAExC,eAAO,MAAM,SAAS,mDAAoD,UAAU,GAAG,QAAQ,KAAG,MACxB,CAAC"}