@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.
- package/README.md +43 -0
- package/cjs/components/CanvasLoading/index.d.ts +14 -0
- package/cjs/components/CanvasLoading/index.d.ts.map +1 -0
- package/cjs/components/CanvasLoading/index.js +51 -0
- package/cjs/components/CanvasLoading/index.less +69 -0
- package/cjs/components/CodeEditor/DebugPanel/index.d.ts +16 -0
- package/cjs/components/CodeEditor/DebugPanel/index.d.ts.map +1 -0
- package/cjs/components/CodeEditor/DebugPanel/index.js +156 -0
- package/cjs/components/CodeEditor/DebugPanel/index.less +56 -0
- package/cjs/components/CodeEditor/FileTree/LibraryIcon.d.ts +11 -0
- package/cjs/components/CodeEditor/FileTree/LibraryIcon.d.ts.map +1 -0
- package/cjs/components/CodeEditor/FileTree/LibraryIcon.js +33 -0
- package/cjs/components/CodeEditor/FileTree/icons/Javascript.d.ts +11 -0
- package/cjs/components/CodeEditor/FileTree/icons/Javascript.d.ts.map +1 -0
- package/cjs/components/CodeEditor/FileTree/icons/Javascript.js +37 -0
- package/cjs/components/CodeEditor/FileTree/icons/Python.d.ts +11 -0
- package/cjs/components/CodeEditor/FileTree/icons/Python.d.ts.map +1 -0
- package/cjs/components/CodeEditor/FileTree/icons/Python.js +37 -0
- package/cjs/components/CodeEditor/FileTree/index.d.ts +9 -0
- package/cjs/components/CodeEditor/FileTree/index.d.ts.map +1 -0
- package/cjs/components/CodeEditor/FileTree/index.js +73 -0
- package/cjs/components/CodeEditor/FileTree/index.less +83 -0
- package/cjs/components/CodeEditor/FileTree/useFileIcon.d.ts +11 -0
- package/cjs/components/CodeEditor/FileTree/useFileIcon.d.ts.map +1 -0
- package/cjs/components/CodeEditor/FileTree/useFileIcon.js +44 -0
- package/cjs/components/CodeEditor/Header/index.d.ts +15 -0
- package/cjs/components/CodeEditor/Header/index.d.ts.map +1 -0
- package/cjs/components/CodeEditor/Header/index.js +51 -0
- package/cjs/components/CodeEditor/Header/style.less +23 -0
- package/cjs/components/CodeEditor/Terminal/XTerm.d.ts +5 -0
- package/cjs/components/CodeEditor/Terminal/XTerm.d.ts.map +1 -0
- package/cjs/components/CodeEditor/Terminal/XTerm.js +54 -0
- package/cjs/components/CodeEditor/Terminal/index.d.ts +15 -0
- package/cjs/components/CodeEditor/Terminal/index.d.ts.map +1 -0
- package/cjs/components/CodeEditor/Terminal/index.js +30 -0
- package/cjs/components/CodeEditor/Terminal/index.less +28 -0
- package/cjs/components/CodeEditor/Terminal/types.d.ts +13 -0
- package/cjs/components/CodeEditor/editors/JSON.d.ts +12 -0
- package/cjs/components/CodeEditor/editors/JSON.d.ts.map +1 -0
- package/cjs/components/CodeEditor/editors/JSON.js +43 -0
- package/cjs/components/CodeEditor/editors/Python.d.ts +4 -0
- package/cjs/components/CodeEditor/editors/Python.d.ts.map +1 -0
- package/cjs/components/CodeEditor/editors/Python.js +43 -0
- package/cjs/components/CodeEditor/editors/index.less +11 -0
- package/cjs/components/CodeEditor/editors/types.d.ts +24 -0
- package/cjs/components/CodeEditor/index.d.ts +7 -0
- package/cjs/components/CodeEditor/index.d.ts.map +1 -0
- package/cjs/components/CodeEditor/index.js +230 -0
- package/cjs/components/CodeEditor/style.less +49 -0
- package/cjs/components/CodeEditor/types.d.ts +46 -0
- package/cjs/components/Handle/NodePopover.d.ts +15 -0
- package/cjs/components/Handle/NodePopover.d.ts.map +1 -0
- package/cjs/components/Handle/NodePopover.js +169 -0
- package/cjs/components/Handle/index.d.ts +24 -0
- package/cjs/components/Handle/index.d.ts.map +1 -0
- package/cjs/components/Handle/index.js +165 -0
- package/cjs/components/Handle/index.less +111 -0
- package/cjs/components/InlineCodeEditor/index.d.ts +11 -0
- package/cjs/components/InlineCodeEditor/index.d.ts.map +1 -0
- package/cjs/components/InlineCodeEditor/index.js +31 -0
- package/cjs/components/InlineCodeEditor/index.module.less +0 -0
- package/cjs/components/InlineCodeEditor/types.d.ts +22 -0
- package/cjs/components/Layout/index.d.ts +14 -0
- package/cjs/components/Layout/index.d.ts.map +1 -0
- package/cjs/components/Layout/index.js +49 -0
- package/cjs/components/Layout/index.less +14 -0
- package/cjs/components/LoadingButton.d.ts +16 -0
- package/cjs/components/LoadingButton.d.ts.map +1 -0
- package/cjs/components/LoadingButton.js +86 -0
- package/cjs/components/Sider/index.d.ts +15 -0
- package/cjs/components/Sider/index.d.ts.map +1 -0
- package/cjs/components/Sider/index.js +142 -0
- package/cjs/components/Sider/index.less +68 -0
- package/cjs/constants/RunningStatus.d.ts +14 -0
- package/cjs/constants/RunningStatus.d.ts.map +1 -0
- package/cjs/constants/RunningStatus.js +20 -0
- package/cjs/hooks/run/useActiveEdge.d.ts +15 -0
- package/cjs/hooks/run/useActiveEdge.d.ts.map +1 -0
- package/cjs/hooks/run/useActiveEdge.js +36 -0
- package/cjs/hooks/run/useCleanRunState.d.ts +9 -0
- package/cjs/hooks/run/useCleanRunState.d.ts.map +1 -0
- package/cjs/hooks/run/useCleanRunState.js +33 -0
- package/cjs/hooks/run/useNodeRunningState.d.ts +8 -0
- package/cjs/hooks/run/useNodeRunningState.d.ts.map +1 -0
- package/cjs/hooks/run/useNodeRunningState.js +30 -0
- package/cjs/hooks/run/useRunState.d.ts +21 -0
- package/cjs/hooks/run/useRunState.d.ts.map +1 -0
- package/cjs/hooks/run/useRunState.js +39 -0
- package/cjs/hooks/run/useSetRunState.d.ts +18 -0
- package/cjs/hooks/run/useSetRunState.d.ts.map +1 -0
- package/cjs/hooks/run/useSetRunState.js +39 -0
- package/cjs/hooks/state.d.ts +7 -0
- package/cjs/hooks/state.d.ts.map +1 -0
- package/cjs/hooks/state.js +13 -0
- package/cjs/hooks/useDeleteNode.d.ts +2 -0
- package/cjs/hooks/useDeleteNode.d.ts.map +1 -0
- package/cjs/hooks/useDeleteNode.js +32 -0
- package/cjs/hooks/useEdgeIsHover.d.ts +2 -0
- package/cjs/hooks/useEdgeIsHover.d.ts.map +1 -0
- package/cjs/hooks/useEdgeIsHover.js +20 -0
- package/cjs/hooks/useGetSelection.d.ts +13 -0
- package/cjs/hooks/useGetSelection.d.ts.map +1 -0
- package/cjs/hooks/useGetSelection.js +28 -0
- package/cjs/hooks/useGetUpstreamNodes.d.ts +14 -0
- package/cjs/hooks/useGetUpstreamNodes.d.ts.map +1 -0
- package/cjs/hooks/useGetUpstreamNodes.js +81 -0
- package/cjs/hooks/useGetWillDropTarget.d.ts +5 -0
- package/cjs/hooks/useGetWillDropTarget.d.ts.map +1 -0
- package/cjs/hooks/useGetWillDropTarget.js +27 -0
- package/cjs/hooks/useGroupIsWillDrop.d.ts +2 -0
- package/cjs/hooks/useGroupIsWillDrop.d.ts.map +1 -0
- package/cjs/hooks/useGroupIsWillDrop.js +20 -0
- package/cjs/hooks/useIsValidConnection.d.ts +12 -0
- package/cjs/hooks/useIsValidConnection.d.ts.map +1 -0
- package/cjs/hooks/useIsValidConnection.js +83 -0
- package/cjs/hooks/useMouseEvents.d.ts +19 -0
- package/cjs/hooks/useMouseEvents.d.ts.map +1 -0
- package/cjs/hooks/useMouseEvents.js +49 -0
- package/cjs/hooks/useNodeDragHandles.d.ts +10 -0
- package/cjs/hooks/useNodeDragHandles.d.ts.map +1 -0
- package/cjs/hooks/useNodeDragHandles.js +273 -0
- package/cjs/hooks/useNodes.d.ts +9 -0
- package/cjs/hooks/useNodes.d.ts.map +1 -0
- package/cjs/hooks/useNodes.js +19 -0
- package/cjs/hooks/useOnBeforeDelete.d.ts +19 -0
- package/cjs/hooks/useOnBeforeDelete.d.ts.map +1 -0
- package/cjs/hooks/useOnBeforeDelete.js +104 -0
- package/cjs/hooks/useOnConnect.d.ts +12 -0
- package/cjs/hooks/useOnConnect.d.ts.map +1 -0
- package/cjs/hooks/useOnConnect.js +36 -0
- package/cjs/hooks/useOnEdgeMouseEnter.d.ts +13 -0
- package/cjs/hooks/useOnEdgeMouseEnter.d.ts.map +1 -0
- package/cjs/hooks/useOnEdgeMouseEnter.js +27 -0
- package/cjs/hooks/useOnEdgeMouseLeave.d.ts +13 -0
- package/cjs/hooks/useOnEdgeMouseLeave.d.ts.map +1 -0
- package/cjs/hooks/useOnEdgeMouseLeave.js +27 -0
- package/cjs/hooks/useOnNodesChange.d.ts +4 -0
- package/cjs/hooks/useOnNodesChange.d.ts.map +1 -0
- package/cjs/hooks/useOnNodesChange.js +102 -0
- package/cjs/hooks/useOnSelectionChange.d.ts +13 -0
- package/cjs/hooks/useOnSelectionChange.d.ts.map +1 -0
- package/cjs/hooks/useOnSelectionChange.js +130 -0
- package/cjs/hooks/useSetEdges.d.ts +12 -0
- package/cjs/hooks/useSetEdges.d.ts.map +1 -0
- package/cjs/hooks/useSetEdges.js +29 -0
- package/cjs/hooks/useSetSelection.d.ts +3 -0
- package/cjs/hooks/useSetSelection.d.ts.map +1 -0
- package/cjs/hooks/useSetSelection.js +40 -0
- package/cjs/hooks/useSetWillDropTargets.d.ts +2 -0
- package/cjs/hooks/useSetWillDropTargets.d.ts.map +1 -0
- package/cjs/hooks/useSetWillDropTargets.js +26 -0
- package/cjs/hooks/useUpstream.d.ts +3 -0
- package/cjs/hooks/useUpstream.d.ts.map +1 -0
- package/cjs/hooks/useUpstream.js +105 -0
- package/cjs/hooks/useWatchSelectionNodes.d.ts +2 -0
- package/cjs/hooks/useWatchSelectionNodes.d.ts.map +1 -0
- package/cjs/hooks/useWatchSelectionNodes.js +22 -0
- package/cjs/hooks/useWorkFlow.d.ts +12 -0
- package/cjs/hooks/useWorkFlow.d.ts.map +1 -0
- package/cjs/hooks/useWorkFlow.js +93 -0
- package/cjs/hooks/useWorkFlowProps.d.ts +485 -0
- package/cjs/hooks/useWorkFlowProps.d.ts.map +1 -0
- package/cjs/hooks/useWorkFlowProps.js +98 -0
- package/cjs/index.d.ts +23 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +77 -0
- package/cjs/types.d.ts +103 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/types.js +8 -0
- package/cjs/utils/arrayUtils.d.ts +2 -0
- package/cjs/utils/arrayUtils.d.ts.map +1 -0
- package/cjs/utils/arrayUtils.js +23 -0
- package/cjs/utils/checkChildren.d.ts +11 -0
- package/cjs/utils/checkChildren.d.ts.map +1 -0
- package/cjs/utils/checkChildren.js +27 -0
- package/cjs/utils/dimensions.d.ts +12 -0
- package/cjs/utils/dimensions.d.ts.map +1 -0
- package/cjs/utils/dimensions.js +23 -0
- package/cjs/utils/dragDataTransfer.d.ts +19 -0
- package/cjs/utils/dragDataTransfer.d.ts.map +1 -0
- package/cjs/utils/dragDataTransfer.js +29 -0
- package/cjs/utils/dropTargetsCheck.d.ts +20 -0
- package/cjs/utils/dropTargetsCheck.d.ts.map +1 -0
- package/cjs/utils/dropTargetsCheck.js +105 -0
- package/cjs/utils/edgeEqualConnect.d.ts +11 -0
- package/cjs/utils/edgeEqualConnect.d.ts.map +1 -0
- package/cjs/utils/edgeEqualConnect.js +19 -0
- package/cjs/utils/events.d.ts +11 -0
- package/cjs/utils/events.d.ts.map +1 -0
- package/cjs/utils/events.js +19 -0
- package/cjs/utils/getEdgeId.d.ts +12 -0
- package/cjs/utils/getEdgeId.d.ts.map +1 -0
- package/cjs/utils/getEdgeId.js +22 -0
- package/cjs/utils/getParentFlow.d.ts +5 -0
- package/cjs/utils/getParentFlow.d.ts.map +1 -0
- package/cjs/utils/getParentFlow.js +36 -0
- package/cjs/utils/graph.d.ts +12 -0
- package/cjs/utils/graph.d.ts.map +1 -0
- package/cjs/utils/graph.js +55 -0
- package/cjs/utils/index.d.ts +18 -0
- package/cjs/utils/index.d.ts.map +1 -0
- package/cjs/utils/index.js +104 -0
- package/cjs/utils/isInSameParent.d.ts +11 -0
- package/cjs/utils/isInSameParent.d.ts.map +1 -0
- package/cjs/utils/isInSameParent.js +19 -0
- package/cjs/utils/parent.d.ts +23 -0
- package/cjs/utils/parent.d.ts.map +1 -0
- package/cjs/utils/parent.js +166 -0
- package/cjs/utils/position.d.ts +29 -0
- package/cjs/utils/position.d.ts.map +1 -0
- package/cjs/utils/position.js +67 -0
- package/cjs/utils/prepareInnerLookup.d.ts +16 -0
- package/cjs/utils/prepareInnerLookup.d.ts.map +1 -0
- package/cjs/utils/prepareInnerLookup.js +93 -0
- package/cjs/utils/scheduleCallback.d.ts +2 -0
- package/cjs/utils/scheduleCallback.d.ts.map +1 -0
- package/cjs/utils/scheduleCallback.js +38 -0
- package/cjs/utils/serialize.d.ts +31 -0
- package/cjs/utils/serialize.d.ts.map +1 -0
- package/cjs/utils/serialize.js +60 -0
- package/cjs/utils/triggerConnect.d.ts +12 -0
- package/cjs/utils/triggerConnect.d.ts.map +1 -0
- package/cjs/utils/triggerConnect.js +50 -0
- package/esm/components/CanvasLoading/index.d.ts +14 -0
- package/esm/components/CanvasLoading/index.d.ts.map +1 -0
- package/esm/components/CanvasLoading/index.js +45 -0
- package/esm/components/CanvasLoading/index.less +69 -0
- package/esm/components/CodeEditor/DebugPanel/index.d.ts +16 -0
- package/esm/components/CodeEditor/DebugPanel/index.d.ts.map +1 -0
- package/esm/components/CodeEditor/DebugPanel/index.js +199 -0
- package/esm/components/CodeEditor/DebugPanel/index.less +56 -0
- package/esm/components/CodeEditor/FileTree/LibraryIcon.d.ts +11 -0
- package/esm/components/CodeEditor/FileTree/LibraryIcon.d.ts.map +1 -0
- package/esm/components/CodeEditor/FileTree/LibraryIcon.js +27 -0
- package/esm/components/CodeEditor/FileTree/icons/Javascript.d.ts +11 -0
- package/esm/components/CodeEditor/FileTree/icons/Javascript.d.ts.map +1 -0
- package/esm/components/CodeEditor/FileTree/icons/Javascript.js +32 -0
- package/esm/components/CodeEditor/FileTree/icons/Python.d.ts +11 -0
- package/esm/components/CodeEditor/FileTree/icons/Python.d.ts.map +1 -0
- package/esm/components/CodeEditor/FileTree/icons/Python.js +32 -0
- package/esm/components/CodeEditor/FileTree/index.d.ts +9 -0
- package/esm/components/CodeEditor/FileTree/index.d.ts.map +1 -0
- package/esm/components/CodeEditor/FileTree/index.js +62 -0
- package/esm/components/CodeEditor/FileTree/index.less +83 -0
- package/esm/components/CodeEditor/FileTree/useFileIcon.d.ts +11 -0
- package/esm/components/CodeEditor/FileTree/useFileIcon.d.ts.map +1 -0
- package/esm/components/CodeEditor/FileTree/useFileIcon.js +39 -0
- package/esm/components/CodeEditor/Header/index.d.ts +15 -0
- package/esm/components/CodeEditor/Header/index.d.ts.map +1 -0
- package/esm/components/CodeEditor/Header/index.js +43 -0
- package/esm/components/CodeEditor/Header/style.less +23 -0
- package/esm/components/CodeEditor/Terminal/XTerm.d.ts +5 -0
- package/esm/components/CodeEditor/Terminal/XTerm.d.ts.map +1 -0
- package/esm/components/CodeEditor/Terminal/XTerm.js +59 -0
- package/esm/components/CodeEditor/Terminal/index.d.ts +15 -0
- package/esm/components/CodeEditor/Terminal/index.d.ts.map +1 -0
- package/esm/components/CodeEditor/Terminal/index.js +23 -0
- package/esm/components/CodeEditor/Terminal/index.less +28 -0
- package/esm/components/CodeEditor/Terminal/types.d.ts +13 -0
- package/esm/components/CodeEditor/editors/JSON.d.ts +12 -0
- package/esm/components/CodeEditor/editors/JSON.d.ts.map +1 -0
- package/esm/components/CodeEditor/editors/JSON.js +35 -0
- package/esm/components/CodeEditor/editors/Python.d.ts +4 -0
- package/esm/components/CodeEditor/editors/Python.d.ts.map +1 -0
- package/esm/components/CodeEditor/editors/Python.js +34 -0
- package/esm/components/CodeEditor/editors/index.less +11 -0
- package/esm/components/CodeEditor/editors/types.d.ts +24 -0
- package/esm/components/CodeEditor/index.d.ts +7 -0
- package/esm/components/CodeEditor/index.d.ts.map +1 -0
- package/esm/components/CodeEditor/index.js +233 -0
- package/esm/components/CodeEditor/style.less +49 -0
- package/esm/components/CodeEditor/types.d.ts +46 -0
- package/esm/components/Handle/NodePopover.d.ts +15 -0
- package/esm/components/Handle/NodePopover.d.ts.map +1 -0
- package/esm/components/Handle/NodePopover.js +165 -0
- package/esm/components/Handle/index.d.ts +24 -0
- package/esm/components/Handle/index.d.ts.map +1 -0
- package/esm/components/Handle/index.js +190 -0
- package/esm/components/Handle/index.less +111 -0
- package/esm/components/InlineCodeEditor/index.d.ts +11 -0
- package/esm/components/InlineCodeEditor/index.d.ts.map +1 -0
- package/esm/components/InlineCodeEditor/index.js +24 -0
- package/esm/components/InlineCodeEditor/index.module.less +0 -0
- package/esm/components/InlineCodeEditor/types.d.ts +22 -0
- package/esm/components/Layout/index.d.ts +14 -0
- package/esm/components/Layout/index.d.ts.map +1 -0
- package/esm/components/Layout/index.js +43 -0
- package/esm/components/Layout/index.less +14 -0
- package/esm/components/LoadingButton.d.ts +16 -0
- package/esm/components/LoadingButton.d.ts.map +1 -0
- package/esm/components/LoadingButton.js +112 -0
- package/esm/components/Sider/index.d.ts +15 -0
- package/esm/components/Sider/index.d.ts.map +1 -0
- package/esm/components/Sider/index.js +142 -0
- package/esm/components/Sider/index.less +68 -0
- package/esm/constants/RunningStatus.d.ts +14 -0
- package/esm/constants/RunningStatus.d.ts.map +1 -0
- package/esm/constants/RunningStatus.js +15 -0
- package/esm/hooks/run/useActiveEdge.d.ts +15 -0
- package/esm/hooks/run/useActiveEdge.d.ts.map +1 -0
- package/esm/hooks/run/useActiveEdge.js +30 -0
- package/esm/hooks/run/useCleanRunState.d.ts +9 -0
- package/esm/hooks/run/useCleanRunState.d.ts.map +1 -0
- package/esm/hooks/run/useCleanRunState.js +26 -0
- package/esm/hooks/run/useNodeRunningState.d.ts +8 -0
- package/esm/hooks/run/useNodeRunningState.d.ts.map +1 -0
- package/esm/hooks/run/useNodeRunningState.js +26 -0
- package/esm/hooks/run/useRunState.d.ts +21 -0
- package/esm/hooks/run/useRunState.d.ts.map +1 -0
- package/esm/hooks/run/useRunState.js +35 -0
- package/esm/hooks/run/useSetRunState.d.ts +18 -0
- package/esm/hooks/run/useSetRunState.d.ts.map +1 -0
- package/esm/hooks/run/useSetRunState.js +35 -0
- package/esm/hooks/state.d.ts +7 -0
- package/esm/hooks/state.d.ts.map +1 -0
- package/esm/hooks/state.js +6 -0
- package/esm/hooks/useDeleteNode.d.ts +2 -0
- package/esm/hooks/useDeleteNode.d.ts.map +1 -0
- package/esm/hooks/useDeleteNode.js +44 -0
- package/esm/hooks/useEdgeIsHover.d.ts +2 -0
- package/esm/hooks/useEdgeIsHover.d.ts.map +1 -0
- package/esm/hooks/useEdgeIsHover.js +14 -0
- package/esm/hooks/useGetSelection.d.ts +13 -0
- package/esm/hooks/useGetSelection.d.ts.map +1 -0
- package/esm/hooks/useGetSelection.js +21 -0
- package/esm/hooks/useGetUpstreamNodes.d.ts +14 -0
- package/esm/hooks/useGetUpstreamNodes.d.ts.map +1 -0
- package/esm/hooks/useGetUpstreamNodes.js +71 -0
- package/esm/hooks/useGetWillDropTarget.d.ts +5 -0
- package/esm/hooks/useGetWillDropTarget.d.ts.map +1 -0
- package/esm/hooks/useGetWillDropTarget.js +21 -0
- package/esm/hooks/useGroupIsWillDrop.d.ts +2 -0
- package/esm/hooks/useGroupIsWillDrop.d.ts.map +1 -0
- package/esm/hooks/useGroupIsWillDrop.js +14 -0
- package/esm/hooks/useIsValidConnection.d.ts +12 -0
- package/esm/hooks/useIsValidConnection.d.ts.map +1 -0
- package/esm/hooks/useIsValidConnection.js +82 -0
- package/esm/hooks/useMouseEvents.d.ts +19 -0
- package/esm/hooks/useMouseEvents.d.ts.map +1 -0
- package/esm/hooks/useMouseEvents.js +40 -0
- package/esm/hooks/useNodeDragHandles.d.ts +10 -0
- package/esm/hooks/useNodeDragHandles.d.ts.map +1 -0
- package/esm/hooks/useNodeDragHandles.js +311 -0
- package/esm/hooks/useNodes.d.ts +9 -0
- package/esm/hooks/useNodes.d.ts.map +1 -0
- package/esm/hooks/useNodes.js +14 -0
- package/esm/hooks/useOnBeforeDelete.d.ts +19 -0
- package/esm/hooks/useOnBeforeDelete.d.ts.map +1 -0
- package/esm/hooks/useOnBeforeDelete.js +138 -0
- package/esm/hooks/useOnConnect.d.ts +12 -0
- package/esm/hooks/useOnConnect.d.ts.map +1 -0
- package/esm/hooks/useOnConnect.js +26 -0
- package/esm/hooks/useOnEdgeMouseEnter.d.ts +13 -0
- package/esm/hooks/useOnEdgeMouseEnter.d.ts.map +1 -0
- package/esm/hooks/useOnEdgeMouseEnter.js +20 -0
- package/esm/hooks/useOnEdgeMouseLeave.d.ts +13 -0
- package/esm/hooks/useOnEdgeMouseLeave.d.ts.map +1 -0
- package/esm/hooks/useOnEdgeMouseLeave.js +20 -0
- package/esm/hooks/useOnNodesChange.d.ts +4 -0
- package/esm/hooks/useOnNodesChange.d.ts.map +1 -0
- package/esm/hooks/useOnNodesChange.js +107 -0
- package/esm/hooks/useOnSelectionChange.d.ts +13 -0
- package/esm/hooks/useOnSelectionChange.d.ts.map +1 -0
- package/esm/hooks/useOnSelectionChange.js +171 -0
- package/esm/hooks/useSetEdges.d.ts +12 -0
- package/esm/hooks/useSetEdges.d.ts.map +1 -0
- package/esm/hooks/useSetEdges.js +22 -0
- package/esm/hooks/useSetSelection.d.ts +3 -0
- package/esm/hooks/useSetSelection.d.ts.map +1 -0
- package/esm/hooks/useSetSelection.js +33 -0
- package/esm/hooks/useSetWillDropTargets.d.ts +2 -0
- package/esm/hooks/useSetWillDropTargets.d.ts.map +1 -0
- package/esm/hooks/useSetWillDropTargets.js +18 -0
- package/esm/hooks/useUpstream.d.ts +3 -0
- package/esm/hooks/useUpstream.d.ts.map +1 -0
- package/esm/hooks/useUpstream.js +101 -0
- package/esm/hooks/useWatchSelectionNodes.d.ts +2 -0
- package/esm/hooks/useWatchSelectionNodes.d.ts.map +1 -0
- package/esm/hooks/useWatchSelectionNodes.js +14 -0
- package/esm/hooks/useWorkFlow.d.ts +12 -0
- package/esm/hooks/useWorkFlow.d.ts.map +1 -0
- package/esm/hooks/useWorkFlow.js +92 -0
- package/esm/hooks/useWorkFlowProps.d.ts +485 -0
- package/esm/hooks/useWorkFlowProps.d.ts.map +1 -0
- package/esm/hooks/useWorkFlowProps.js +102 -0
- package/esm/index.d.ts +23 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +28 -0
- package/esm/types.d.ts +103 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +4 -0
- package/esm/utils/arrayUtils.d.ts +2 -0
- package/esm/utils/arrayUtils.d.ts.map +1 -0
- package/esm/utils/arrayUtils.js +16 -0
- package/esm/utils/checkChildren.d.ts +11 -0
- package/esm/utils/checkChildren.d.ts.map +1 -0
- package/esm/utils/checkChildren.js +16 -0
- package/esm/utils/dimensions.d.ts +12 -0
- package/esm/utils/dimensions.d.ts.map +1 -0
- package/esm/utils/dimensions.js +17 -0
- package/esm/utils/dragDataTransfer.d.ts +19 -0
- package/esm/utils/dragDataTransfer.d.ts.map +1 -0
- package/esm/utils/dragDataTransfer.js +21 -0
- package/esm/utils/dropTargetsCheck.d.ts +20 -0
- package/esm/utils/dropTargetsCheck.d.ts.map +1 -0
- package/esm/utils/dropTargetsCheck.js +116 -0
- package/esm/utils/edgeEqualConnect.d.ts +11 -0
- package/esm/utils/edgeEqualConnect.d.ts.map +1 -0
- package/esm/utils/edgeEqualConnect.js +12 -0
- package/esm/utils/events.d.ts +11 -0
- package/esm/utils/events.d.ts.map +1 -0
- package/esm/utils/events.js +12 -0
- package/esm/utils/getEdgeId.d.ts +12 -0
- package/esm/utils/getEdgeId.d.ts.map +1 -0
- package/esm/utils/getEdgeId.js +16 -0
- package/esm/utils/getParentFlow.d.ts +5 -0
- package/esm/utils/getParentFlow.d.ts.map +1 -0
- package/esm/utils/getParentFlow.js +28 -0
- package/esm/utils/graph.d.ts +12 -0
- package/esm/utils/graph.d.ts.map +1 -0
- package/esm/utils/graph.js +51 -0
- package/esm/utils/index.d.ts +18 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +18 -0
- package/esm/utils/isInSameParent.d.ts +11 -0
- package/esm/utils/isInSameParent.d.ts.map +1 -0
- package/esm/utils/isInSameParent.js +12 -0
- package/esm/utils/parent.d.ts +23 -0
- package/esm/utils/parent.d.ts.map +1 -0
- package/esm/utils/parent.js +186 -0
- package/esm/utils/position.d.ts +29 -0
- package/esm/utils/position.d.ts.map +1 -0
- package/esm/utils/position.js +61 -0
- package/esm/utils/prepareInnerLookup.d.ts +16 -0
- package/esm/utils/prepareInnerLookup.d.ts.map +1 -0
- package/esm/utils/prepareInnerLookup.js +79 -0
- package/esm/utils/scheduleCallback.d.ts +2 -0
- package/esm/utils/scheduleCallback.d.ts.map +1 -0
- package/esm/utils/scheduleCallback.js +36 -0
- package/esm/utils/serialize.d.ts +31 -0
- package/esm/utils/serialize.d.ts.map +1 -0
- package/esm/utils/serialize.js +64 -0
- package/esm/utils/triggerConnect.d.ts +12 -0
- package/esm/utils/triggerConnect.d.ts.map +1 -0
- package/esm/utils/triggerConnect.js +59 -0
- package/package.json +70 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useNodes = void 0;
|
|
7
|
+
var _state = require("./state");
|
|
8
|
+
/**
|
|
9
|
+
* @author: yanxianliang
|
|
10
|
+
* @date: 2025-08-03 20:31
|
|
11
|
+
* @desc: 监听 nodes变化
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const useNodes = () => {
|
|
17
|
+
return (0, _state.useSelector)(state => state.nodes);
|
|
18
|
+
};
|
|
19
|
+
exports.useNodes = useNodes;
|
|
@@ -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,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnBeforeDelete = void 0;
|
|
7
|
+
var _base = require("@rxflow/base");
|
|
8
|
+
var _react = require("@xyflow/react");
|
|
9
|
+
var _ahooks = require("ahooks");
|
|
10
|
+
/**
|
|
11
|
+
* @author: yanxianliang
|
|
12
|
+
* @date: 2025-08-17 12:41
|
|
13
|
+
* @modified:2025/8/17 12:41 by yanxianliang
|
|
14
|
+
* @desc: 删除逻辑处理
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 需要自动关联 子工作流 删除操作
|
|
21
|
+
* @param onBeforeDelete
|
|
22
|
+
*/
|
|
23
|
+
const useOnBeforeDelete = onBeforeDelete => {
|
|
24
|
+
const nodeTypeMap = (0, _base.useNodeTypeMap)();
|
|
25
|
+
const {
|
|
26
|
+
getNode
|
|
27
|
+
} = (0, _react.useReactFlow)();
|
|
28
|
+
const {
|
|
29
|
+
getState
|
|
30
|
+
} = (0, _react.useStoreApi)();
|
|
31
|
+
const parentLookup = getState().parentLookup;
|
|
32
|
+
return (0, _ahooks.useMemoizedFn)(async ({
|
|
33
|
+
nodes,
|
|
34
|
+
edges
|
|
35
|
+
}) => {
|
|
36
|
+
if (onBeforeDelete) {
|
|
37
|
+
// 子工作流需要自动删除
|
|
38
|
+
const toBeDeleteNodes = [];
|
|
39
|
+
for (const node of nodes) {
|
|
40
|
+
toBeDeleteNodes.push(node);
|
|
41
|
+
// 删除的节点中如果有子工作流
|
|
42
|
+
if (node.subFlowKey) {
|
|
43
|
+
const subFlowNodeId = node.subFlowKey;
|
|
44
|
+
const subFlowNode = getNode(subFlowNodeId);
|
|
45
|
+
if (subFlowNode) {
|
|
46
|
+
toBeDeleteNodes.push(subFlowNode);
|
|
47
|
+
}
|
|
48
|
+
const childrenMap = parentLookup.get(subFlowNodeId);
|
|
49
|
+
childrenMap?.forEach(child => {
|
|
50
|
+
const userNode = child.internals.userNode;
|
|
51
|
+
toBeDeleteNodes.push(userNode);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return await onBeforeDelete({
|
|
56
|
+
nodes: toBeDeleteNodes,
|
|
57
|
+
edges
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const lockNodeSet = new Set();
|
|
61
|
+
const willDeleteNodeSet = new Set();
|
|
62
|
+
const toBeDeleteNodes = [];
|
|
63
|
+
for (const node of nodes) {
|
|
64
|
+
const type = node.type;
|
|
65
|
+
const canDelete = type ? nodeTypeMap.get(type)?.deletable ?? node.deletable ?? true : node.deletable ?? true;
|
|
66
|
+
if (!canDelete) {
|
|
67
|
+
lockNodeSet.add(node.id); // 不能删除的节点
|
|
68
|
+
} else {
|
|
69
|
+
willDeleteNodeSet.add(node.id);
|
|
70
|
+
toBeDeleteNodes.push(node);
|
|
71
|
+
// 删除的节点中如果有子工作流
|
|
72
|
+
if (node.subFlowKey) {
|
|
73
|
+
const subFlowNodeId = node.subFlowKey;
|
|
74
|
+
const subFlowNode = getNode(subFlowNodeId);
|
|
75
|
+
if (subFlowNode) {
|
|
76
|
+
toBeDeleteNodes.push(subFlowNode);
|
|
77
|
+
}
|
|
78
|
+
const childrenMap = parentLookup.get(subFlowNodeId);
|
|
79
|
+
childrenMap?.forEach(child => {
|
|
80
|
+
const userNode = child.internals.userNode;
|
|
81
|
+
toBeDeleteNodes.push(userNode);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* 可删除边的条件
|
|
89
|
+
*/
|
|
90
|
+
const toBeDeletedEdges = edges.filter(edge => {
|
|
91
|
+
const canDelete = edge.deletable ?? true;
|
|
92
|
+
if (!canDelete) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
// 当前节点处于被删除列表,其他的不进行多余处理
|
|
96
|
+
return !lockNodeSet.has(edge.source) && !lockNodeSet.has(edge.target) || willDeleteNodeSet.has(edge.source) || willDeleteNodeSet.has(edge.target);
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
nodes: toBeDeleteNodes,
|
|
100
|
+
edges: toBeDeletedEdges
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
exports.useOnBeforeDelete = useOnBeforeDelete;
|
|
@@ -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,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnConnect = void 0;
|
|
7
|
+
var _react = require("@xyflow/react");
|
|
8
|
+
var _react2 = require("react");
|
|
9
|
+
var _triggerConnect = require("../utils/triggerConnect");
|
|
10
|
+
/**
|
|
11
|
+
* @author: yanxianliang
|
|
12
|
+
* @date: 2025-08-16 13:43
|
|
13
|
+
* @modified:2025/8/16 13:43 by yanxianliang
|
|
14
|
+
* @desc: 边变化回调
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const useOnConnect = props => {
|
|
20
|
+
const store = (0, _react.useStoreApi)();
|
|
21
|
+
|
|
22
|
+
// 还是应该触发 onEdgesChange ==> 或者直接设置
|
|
23
|
+
return (0, _react2.useCallback)(connection => {
|
|
24
|
+
const {
|
|
25
|
+
hasDefaultEdges,
|
|
26
|
+
triggerEdgeChanges,
|
|
27
|
+
edges
|
|
28
|
+
} = store.getState();
|
|
29
|
+
const {
|
|
30
|
+
connectionLimit,
|
|
31
|
+
onConnect
|
|
32
|
+
} = props;
|
|
33
|
+
(0, _triggerConnect.triggerConnect)(connection, hasDefaultEdges, edges, triggerEdgeChanges, connectionLimit, onConnect);
|
|
34
|
+
}, []);
|
|
35
|
+
};
|
|
36
|
+
exports.useOnConnect = useOnConnect;
|
|
@@ -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,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnEdgeMouseEnter = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _state = require("./state");
|
|
9
|
+
/**
|
|
10
|
+
* @author: yanxianliang
|
|
11
|
+
* @date: 2025-08-16 16:43
|
|
12
|
+
* @modified:2025/8/16 16:43 by yanxianliang
|
|
13
|
+
* @desc: 鼠标移动到边上
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const useOnEdgeMouseEnter = _onEdgeMouseEnter => {
|
|
19
|
+
const setState = (0, _state.useSetState)();
|
|
20
|
+
return (0, _react.useCallback)((event, edge) => {
|
|
21
|
+
setState({
|
|
22
|
+
hoveredEdge: edge.id
|
|
23
|
+
});
|
|
24
|
+
_onEdgeMouseEnter?.(event, edge);
|
|
25
|
+
}, []);
|
|
26
|
+
};
|
|
27
|
+
exports.useOnEdgeMouseEnter = useOnEdgeMouseEnter;
|
|
@@ -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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnEdgeMouseLeave = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _state = require("./state");
|
|
9
|
+
/**
|
|
10
|
+
* @author: yanxianliang
|
|
11
|
+
* @date: 2025-08-16 16:51
|
|
12
|
+
* @modified:2025/8/16 16:51 by yanxianliang
|
|
13
|
+
* @desc: 鼠标移动到边外
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const useOnEdgeMouseLeave = _onEdgeMouseLeave => {
|
|
19
|
+
const setState = (0, _state.useSetState)();
|
|
20
|
+
return (0, _react.useCallback)((event, edge) => {
|
|
21
|
+
setState({
|
|
22
|
+
hoveredEdge: undefined
|
|
23
|
+
});
|
|
24
|
+
_onEdgeMouseLeave?.(event, edge);
|
|
25
|
+
}, []);
|
|
26
|
+
};
|
|
27
|
+
exports.useOnEdgeMouseLeave = useOnEdgeMouseLeave;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IWorkflowProps, WorkflowNode } from "..";
|
|
2
|
+
import { NodeChange } from "@xyflow/react";
|
|
3
|
+
export declare const useOnNodesChange: <NodeType extends WorkflowNode = WorkflowNode>(onNodesChange?: IWorkflowProps<NodeType>['onNodesChange']) => (changes: Array<NodeChange<NodeType>>) => void;
|
|
4
|
+
//# sourceMappingURL=useOnNodesChange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOnNodesChange.d.ts","sourceRoot":"","sources":["useOnNodesChange.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,cAAc,EAAE,YAAY,EAAE,WAAyB;AAEpF,OAAO,EAAC,UAAU,EAAc,MAAM,eAAe,CAAC;AAKtD,eAAO,MAAM,gBAAgB,iEAAkE,eAAe,QAAQ,CAAC,CAAC,eAAe,CAAC,eAIvG,MAAM,WAAW,QAAQ,CAAC,CAAC,SAuE3D,CAAA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnNodesChange = void 0;
|
|
7
|
+
var _base = require("@rxflow/base");
|
|
8
|
+
var _ = require("./..");
|
|
9
|
+
var _react = require("@xyflow/react");
|
|
10
|
+
var _ahooks = require("ahooks");
|
|
11
|
+
var _parent = require("../utils/parent");
|
|
12
|
+
/**
|
|
13
|
+
* @author: yanxianliang
|
|
14
|
+
* @date: 2025-08-18 19:17
|
|
15
|
+
* @modified:2025/8/18 19:17 by yanxianliang
|
|
16
|
+
* @desc: 节点变化内置处理
|
|
17
|
+
*
|
|
18
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const useOnNodesChange = onNodesChange => {
|
|
22
|
+
const {
|
|
23
|
+
getState
|
|
24
|
+
} = (0, _react.useStoreApi)();
|
|
25
|
+
const nodeTypeLookup = (0, _base.useNodeTypeMap)();
|
|
26
|
+
return (0, _ahooks.useMemoizedFn)(changes => {
|
|
27
|
+
if (!onNodesChange) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// 如果 changes 中包括 subFlow dimension的变化,自动同步 start|end 节点位置
|
|
31
|
+
const modifiedChanges = [...changes];
|
|
32
|
+
const {
|
|
33
|
+
parentLookup,
|
|
34
|
+
nodeOrigin,
|
|
35
|
+
nodeLookup
|
|
36
|
+
} = getState();
|
|
37
|
+
const childrenPositionMap = new Map();
|
|
38
|
+
for (const change of changes) {
|
|
39
|
+
const {
|
|
40
|
+
type
|
|
41
|
+
} = change;
|
|
42
|
+
switch (type) {
|
|
43
|
+
// 开始和结束节点的变化
|
|
44
|
+
case "dimensions":
|
|
45
|
+
// resize
|
|
46
|
+
{
|
|
47
|
+
const {
|
|
48
|
+
id,
|
|
49
|
+
dimensions
|
|
50
|
+
} = change;
|
|
51
|
+
const internalNode = nodeLookup.get(id);
|
|
52
|
+
if (internalNode && internalNode.parentId && !(internalNode.expandParent && internalNode.extent === 'parent')) {
|
|
53
|
+
const parentNode = nodeLookup.get(internalNode.parentId);
|
|
54
|
+
if (parentNode && dimensions && parentNode.type && nodeTypeLookup.get(parentNode.type)?.nodeRoleType === _base.NodeRoleType.SubFlow) {
|
|
55
|
+
childrenPositionMap.set(id, {
|
|
56
|
+
id,
|
|
57
|
+
parentId: internalNode.parentId,
|
|
58
|
+
rect: {
|
|
59
|
+
...internalNode.internals.positionAbsolute,
|
|
60
|
+
...dimensions
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case "position":
|
|
68
|
+
{
|
|
69
|
+
// 暂时不支持自动伸缩,目前 extent 没实现
|
|
70
|
+
const {
|
|
71
|
+
id,
|
|
72
|
+
position
|
|
73
|
+
} = change;
|
|
74
|
+
const internalNode = nodeLookup.get(id); // 当前节点
|
|
75
|
+
if (internalNode && internalNode.parentId && position && !(internalNode.expandParent && internalNode.extent === 'parent')) {
|
|
76
|
+
const parentNode = nodeLookup.get(internalNode.parentId);
|
|
77
|
+
if (parentNode && parentNode.type && nodeTypeLookup.get(parentNode.type)?.nodeRoleType === _base.NodeRoleType.SubFlow) {
|
|
78
|
+
const nextPositionAbsolute = (0, _.getPositionAbsolute)(nodeLookup, position, internalNode, nodeOrigin);
|
|
79
|
+
childrenPositionMap.set(id, {
|
|
80
|
+
id,
|
|
81
|
+
parentId: internalNode.parentId,
|
|
82
|
+
// rect: nodeToRect(newNode, nodeOrigin),
|
|
83
|
+
rect: {
|
|
84
|
+
...nextPositionAbsolute,
|
|
85
|
+
width: internalNode.measured.width ?? 0,
|
|
86
|
+
height: internalNode.measured.height ?? 0
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (childrenPositionMap.size > 0) {
|
|
96
|
+
const parentExpandChanges = (0, _parent.handleResizeParent)(childrenPositionMap, nodeLookup, parentLookup, nodeOrigin, nodeTypeLookup);
|
|
97
|
+
modifiedChanges.push(...parentExpandChanges);
|
|
98
|
+
}
|
|
99
|
+
return onNodesChange?.(modifiedChanges);
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
exports.useOnNodesChange = useOnNodesChange;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-08-23 23:49
|
|
4
|
+
* @modified:2025/8/23 23:49 by yanxianliang
|
|
5
|
+
* @desc: selectionChange 回调
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
|
+
*/
|
|
9
|
+
import { Edge, Node, OnSelectionChangeParams } from "@xyflow/react";
|
|
10
|
+
import type { OnSelectionChangeFunc } from "@xyflow/react";
|
|
11
|
+
import { SelectionStrategy } from "@rxflow/base";
|
|
12
|
+
export declare const useOnSelectionChange: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(selectionStrategy: SelectionStrategy, onSelectionChange?: OnSelectionChangeFunc<NodeType, EdgeType>) => (selectionChange: OnSelectionChangeParams<NodeType, EdgeType>) => void;
|
|
13
|
+
//# sourceMappingURL=useOnSelectionChange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOnSelectionChange.d.ts","sourceRoot":"","sources":["useOnSelectionChange.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAc,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAU/C,eAAO,MAAM,oBAAoB,kFACZ,iBAAiB,sBAChB,sBAAsB,QAAQ,EAAE,QAAQ,CAAC,uBAKtB,wBAAwB,QAAQ,EAAE,QAAQ,CAAC,SA6FnF,CAAA"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOnSelectionChange = void 0;
|
|
7
|
+
var _react = require("@xyflow/react");
|
|
8
|
+
var _ahooks = require("ahooks");
|
|
9
|
+
var _base = require("@rxflow/base");
|
|
10
|
+
var _useSetSelection = require("./useSetSelection");
|
|
11
|
+
var _useWorkFlow = require("./useWorkFlow");
|
|
12
|
+
/**
|
|
13
|
+
* @author: yanxianliang
|
|
14
|
+
* @date: 2025-08-23 23:49
|
|
15
|
+
* @modified:2025/8/23 23:49 by yanxianliang
|
|
16
|
+
* @desc: selectionChange 回调
|
|
17
|
+
*
|
|
18
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
// 会触发 select nodeChange 事件,在 onNodesChange 中处理
|
|
22
|
+
|
|
23
|
+
// TODO 这边限制没什么作用
|
|
24
|
+
|
|
25
|
+
// 删除对应的节点/边选中,并更新回调数据
|
|
26
|
+
const useOnSelectionChange = (selectionStrategy, onSelectionChange) => {
|
|
27
|
+
const setSelection = (0, _useSetSelection.useSetSelection)();
|
|
28
|
+
const {
|
|
29
|
+
getNode
|
|
30
|
+
} = (0, _useWorkFlow.useWorkFlow)();
|
|
31
|
+
const storeApi = (0, _react.useStoreApi)();
|
|
32
|
+
return (0, _ahooks.useMemoizedFn)(selectionChange => {
|
|
33
|
+
// 删除子元素
|
|
34
|
+
const {
|
|
35
|
+
nodes,
|
|
36
|
+
edges
|
|
37
|
+
} = selectionChange;
|
|
38
|
+
// 自动删除子节点
|
|
39
|
+
const nodeIdSet = new Set(nodes.map(node => node.id));
|
|
40
|
+
const deletedNodeIdSet = new Set();
|
|
41
|
+
let realNodes = [];
|
|
42
|
+
let realEdges = [];
|
|
43
|
+
switch (selectionStrategy) {
|
|
44
|
+
case _base.SelectionStrategy.PARENT:
|
|
45
|
+
{
|
|
46
|
+
for (const node of nodes) {
|
|
47
|
+
let curr = node;
|
|
48
|
+
let parentIsSelected = false;
|
|
49
|
+
while (curr && curr.parentId) {
|
|
50
|
+
const parentId = curr.parentId;
|
|
51
|
+
if (nodeIdSet.has(parentId)) {
|
|
52
|
+
parentIsSelected = true;
|
|
53
|
+
deletedNodeIdSet.add(node.id);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
curr = getNode(parentId);
|
|
57
|
+
}
|
|
58
|
+
if (!parentIsSelected) {
|
|
59
|
+
realNodes.push(node);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const edge of edges) {
|
|
63
|
+
const {
|
|
64
|
+
source,
|
|
65
|
+
target
|
|
66
|
+
} = edge;
|
|
67
|
+
if (!deletedNodeIdSet.has(source) && !deletedNodeIdSet.has(target)) {
|
|
68
|
+
realEdges.push(edge);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case _base.SelectionStrategy.CHILD:
|
|
74
|
+
{
|
|
75
|
+
// 如果有子节点,排除父节点
|
|
76
|
+
const parentLookup = storeApi.getState().parentLookup;
|
|
77
|
+
const hasSelectedChildren = id => {
|
|
78
|
+
const childrenMap = parentLookup.get(id);
|
|
79
|
+
if (childrenMap) {
|
|
80
|
+
for (const [key] of childrenMap.entries()) {
|
|
81
|
+
if (nodeIdSet.has(key)) {
|
|
82
|
+
// 子元素被选中
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
const checkSubParent = hasSelectedChildren(key);
|
|
86
|
+
if (checkSubParent) {
|
|
87
|
+
// 中间节点被选中
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
};
|
|
94
|
+
for (const node of nodes) {
|
|
95
|
+
if (!hasSelectedChildren(node.id)) {
|
|
96
|
+
realNodes.push(node);
|
|
97
|
+
} else {
|
|
98
|
+
deletedNodeIdSet.add(node.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const edge of edges) {
|
|
102
|
+
const {
|
|
103
|
+
source,
|
|
104
|
+
target
|
|
105
|
+
} = edge;
|
|
106
|
+
if (!deletedNodeIdSet.has(source) && !deletedNodeIdSet.has(target)) {
|
|
107
|
+
realEdges.push(edge);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
default:
|
|
113
|
+
{
|
|
114
|
+
realNodes = nodes;
|
|
115
|
+
realEdges = edges;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const realSelectionChange = {
|
|
120
|
+
nodes: realNodes,
|
|
121
|
+
edges: realEdges
|
|
122
|
+
};
|
|
123
|
+
if (deletedNodeIdSet.size) {
|
|
124
|
+
// 需要删除对应边选中状态
|
|
125
|
+
}
|
|
126
|
+
setSelection(realSelectionChange);
|
|
127
|
+
onSelectionChange?.(realSelectionChange);
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
exports.useOnSelectionChange = useOnSelectionChange;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* @author: yanxianliang
|
|
4
|
+
* @date: 2025-08-16 16:28
|
|
5
|
+
* @modified:2025/8/16 16:28 by yanxianliang
|
|
6
|
+
* @desc: 设置边列表
|
|
7
|
+
*
|
|
8
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
9
|
+
*/
|
|
10
|
+
import { Edge } from "@xyflow/react";
|
|
11
|
+
export declare const useSetEdges: () => import("react").Dispatch<import("react").SetStateAction<Edge[]>>;
|
|
12
|
+
//# sourceMappingURL=useSetEdges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSetEdges.d.ts","sourceRoot":"","sources":["useSetEdges.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AAInC,eAAO,MAAM,WAAW,wEAevB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useSetEdges = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _state = require("./state");
|
|
9
|
+
/**
|
|
10
|
+
* @author: yanxianliang
|
|
11
|
+
* @date: 2025-08-16 16:28
|
|
12
|
+
* @modified:2025/8/16 16:28 by yanxianliang
|
|
13
|
+
* @desc: 设置边列表
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const useSetEdges = () => {
|
|
19
|
+
const setState = (0, _state.useSetState)();
|
|
20
|
+
const getState = (0, _state.useGetState)();
|
|
21
|
+
const setEdges = (0, _react.useCallback)(nextState => {
|
|
22
|
+
const nextEdges = typeof nextState === 'function' ? nextState(getState().edges || []) : nextState;
|
|
23
|
+
setState({
|
|
24
|
+
edges: nextEdges
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
27
|
+
return setEdges;
|
|
28
|
+
};
|
|
29
|
+
exports.useSetEdges = useSetEdges;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSetSelection.d.ts","sourceRoot":"","sources":["useSetSelection.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAKtD,eAAO,MAAM,eAAe,2BAGY,uBAAuB,SAY9D,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useSetSelection = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _state = require("./state");
|
|
9
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
10
|
+
var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
/**
|
|
13
|
+
* @author: yanxianliang
|
|
14
|
+
* @date: 2025-07-26 08:17
|
|
15
|
+
* @modified:2025/7/26 08:17 by yanxianliang
|
|
16
|
+
* @desc: 保存选中结果
|
|
17
|
+
*
|
|
18
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const useSetSelection = () => {
|
|
22
|
+
const setState = (0, _state.useSetState)();
|
|
23
|
+
const getState = (0, _state.useGetState)();
|
|
24
|
+
return (0, _react.useCallback)(selectionsChange => {
|
|
25
|
+
const {
|
|
26
|
+
nodes,
|
|
27
|
+
edges
|
|
28
|
+
} = selectionsChange;
|
|
29
|
+
const nodeIds = nodes.map(node => node.id);
|
|
30
|
+
const edgeIds = edges.map(edge => edge.id);
|
|
31
|
+
const beforeSelectedNodes = getState().selectedNodes || [];
|
|
32
|
+
if (nodeIds.length !== beforeSelectedNodes.length || !(0, _isEqual.default)((0, _sortBy.default)(nodeIds), (0, _sortBy.default)(beforeSelectedNodes))) {
|
|
33
|
+
setState({
|
|
34
|
+
selectedNodes: nodeIds,
|
|
35
|
+
selectedEdges: edgeIds
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}, []);
|
|
39
|
+
};
|
|
40
|
+
exports.useSetSelection = useSetSelection;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSetWillDropTargets.d.ts","sourceRoot":"","sources":["useSetWillDropTargets.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,oBAED,MAAM,EAAE,SAKxC,CAAC"}
|