@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,20 @@
|
|
|
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
|
+
|
|
10
|
+
import { useCallback } from "react";
|
|
11
|
+
import { useSetState } from "./state";
|
|
12
|
+
export var useOnEdgeMouseLeave = function useOnEdgeMouseLeave(_onEdgeMouseLeave) {
|
|
13
|
+
var setState = useSetState();
|
|
14
|
+
return useCallback(function (event, edge) {
|
|
15
|
+
setState({
|
|
16
|
+
hoveredEdge: undefined
|
|
17
|
+
});
|
|
18
|
+
_onEdgeMouseLeave === null || _onEdgeMouseLeave === void 0 || _onEdgeMouseLeave(event, edge);
|
|
19
|
+
}, []);
|
|
20
|
+
};
|
|
@@ -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,107 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
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); }
|
|
7
|
+
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; } } }; }
|
|
8
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
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); }
|
|
11
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
+
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; }
|
|
14
|
+
/**
|
|
15
|
+
* @author: yanxianliang
|
|
16
|
+
* @date: 2025-08-18 19:17
|
|
17
|
+
* @modified:2025/8/18 19:17 by yanxianliang
|
|
18
|
+
* @desc: 节点变化内置处理
|
|
19
|
+
*
|
|
20
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
21
|
+
*/
|
|
22
|
+
import { NodeRoleType, useNodeTypeMap } from '@rxflow/base';
|
|
23
|
+
import { getPositionAbsolute } from "./..";
|
|
24
|
+
import { useStoreApi } from "@xyflow/react";
|
|
25
|
+
import { useMemoizedFn } from "ahooks";
|
|
26
|
+
import { handleResizeParent } from "../utils/parent";
|
|
27
|
+
export var useOnNodesChange = function useOnNodesChange(onNodesChange) {
|
|
28
|
+
var _useStoreApi = useStoreApi(),
|
|
29
|
+
getState = _useStoreApi.getState;
|
|
30
|
+
var nodeTypeLookup = useNodeTypeMap();
|
|
31
|
+
return useMemoizedFn(function (changes) {
|
|
32
|
+
if (!onNodesChange) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// 如果 changes 中包括 subFlow dimension的变化,自动同步 start|end 节点位置
|
|
36
|
+
var modifiedChanges = _toConsumableArray(changes);
|
|
37
|
+
var _getState = getState(),
|
|
38
|
+
parentLookup = _getState.parentLookup,
|
|
39
|
+
nodeOrigin = _getState.nodeOrigin,
|
|
40
|
+
nodeLookup = _getState.nodeLookup;
|
|
41
|
+
var childrenPositionMap = new Map();
|
|
42
|
+
var _iterator = _createForOfIteratorHelper(changes),
|
|
43
|
+
_step;
|
|
44
|
+
try {
|
|
45
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
46
|
+
var change = _step.value;
|
|
47
|
+
var type = change.type;
|
|
48
|
+
switch (type) {
|
|
49
|
+
// 开始和结束节点的变化
|
|
50
|
+
case "dimensions":
|
|
51
|
+
// resize
|
|
52
|
+
{
|
|
53
|
+
var id = change.id,
|
|
54
|
+
dimensions = change.dimensions;
|
|
55
|
+
var internalNode = nodeLookup.get(id);
|
|
56
|
+
if (internalNode && internalNode.parentId && !(internalNode.expandParent && internalNode.extent === 'parent')) {
|
|
57
|
+
var _nodeTypeLookup$get;
|
|
58
|
+
var parentNode = nodeLookup.get(internalNode.parentId);
|
|
59
|
+
if (parentNode && dimensions && parentNode.type && ((_nodeTypeLookup$get = nodeTypeLookup.get(parentNode.type)) === null || _nodeTypeLookup$get === void 0 ? void 0 : _nodeTypeLookup$get.nodeRoleType) === NodeRoleType.SubFlow) {
|
|
60
|
+
childrenPositionMap.set(id, {
|
|
61
|
+
id: id,
|
|
62
|
+
parentId: internalNode.parentId,
|
|
63
|
+
rect: _objectSpread(_objectSpread({}, internalNode.internals.positionAbsolute), dimensions)
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "position":
|
|
70
|
+
{
|
|
71
|
+
// 暂时不支持自动伸缩,目前 extent 没实现
|
|
72
|
+
var _id = change.id,
|
|
73
|
+
position = change.position;
|
|
74
|
+
var _internalNode = nodeLookup.get(_id); // 当前节点
|
|
75
|
+
if (_internalNode && _internalNode.parentId && position && !(_internalNode.expandParent && _internalNode.extent === 'parent')) {
|
|
76
|
+
var _nodeTypeLookup$get2;
|
|
77
|
+
var _parentNode = nodeLookup.get(_internalNode.parentId);
|
|
78
|
+
if (_parentNode && _parentNode.type && ((_nodeTypeLookup$get2 = nodeTypeLookup.get(_parentNode.type)) === null || _nodeTypeLookup$get2 === void 0 ? void 0 : _nodeTypeLookup$get2.nodeRoleType) === NodeRoleType.SubFlow) {
|
|
79
|
+
var _internalNode$measure, _internalNode$measure2;
|
|
80
|
+
var nextPositionAbsolute = getPositionAbsolute(nodeLookup, position, _internalNode, nodeOrigin);
|
|
81
|
+
childrenPositionMap.set(_id, {
|
|
82
|
+
id: _id,
|
|
83
|
+
parentId: _internalNode.parentId,
|
|
84
|
+
// rect: nodeToRect(newNode, nodeOrigin),
|
|
85
|
+
rect: _objectSpread(_objectSpread({}, nextPositionAbsolute), {}, {
|
|
86
|
+
width: (_internalNode$measure = _internalNode.measured.width) !== null && _internalNode$measure !== void 0 ? _internalNode$measure : 0,
|
|
87
|
+
height: (_internalNode$measure2 = _internalNode.measured.height) !== null && _internalNode$measure2 !== void 0 ? _internalNode$measure2 : 0
|
|
88
|
+
})
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
} catch (err) {
|
|
97
|
+
_iterator.e(err);
|
|
98
|
+
} finally {
|
|
99
|
+
_iterator.f();
|
|
100
|
+
}
|
|
101
|
+
if (childrenPositionMap.size > 0) {
|
|
102
|
+
var parentExpandChanges = handleResizeParent(childrenPositionMap, nodeLookup, parentLookup, nodeOrigin, nodeTypeLookup);
|
|
103
|
+
modifiedChanges.push.apply(modifiedChanges, _toConsumableArray(parentExpandChanges));
|
|
104
|
+
}
|
|
105
|
+
return onNodesChange === null || onNodesChange === void 0 ? void 0 : onNodesChange(modifiedChanges);
|
|
106
|
+
});
|
|
107
|
+
};
|
|
@@ -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,171 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
4
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
5
|
+
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; } } }; }
|
|
6
|
+
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); }
|
|
7
|
+
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; }
|
|
8
|
+
/**
|
|
9
|
+
* @author: yanxianliang
|
|
10
|
+
* @date: 2025-08-23 23:49
|
|
11
|
+
* @modified:2025/8/23 23:49 by yanxianliang
|
|
12
|
+
* @desc: selectionChange 回调
|
|
13
|
+
*
|
|
14
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
15
|
+
*/
|
|
16
|
+
import { useStoreApi } from "@xyflow/react";
|
|
17
|
+
import { useMemoizedFn } from "ahooks";
|
|
18
|
+
import { SelectionStrategy } from "@rxflow/base";
|
|
19
|
+
import { useSetSelection } from "./useSetSelection";
|
|
20
|
+
import { useWorkFlow } from "./useWorkFlow";
|
|
21
|
+
|
|
22
|
+
// 会触发 select nodeChange 事件,在 onNodesChange 中处理
|
|
23
|
+
|
|
24
|
+
// TODO 这边限制没什么作用
|
|
25
|
+
|
|
26
|
+
// 删除对应的节点/边选中,并更新回调数据
|
|
27
|
+
export var useOnSelectionChange = function useOnSelectionChange(selectionStrategy, onSelectionChange) {
|
|
28
|
+
var setSelection = useSetSelection();
|
|
29
|
+
var _useWorkFlow = useWorkFlow(),
|
|
30
|
+
getNode = _useWorkFlow.getNode;
|
|
31
|
+
var storeApi = useStoreApi();
|
|
32
|
+
return useMemoizedFn(function (selectionChange) {
|
|
33
|
+
// 删除子元素
|
|
34
|
+
var nodes = selectionChange.nodes,
|
|
35
|
+
edges = selectionChange.edges;
|
|
36
|
+
// 自动删除子节点
|
|
37
|
+
var nodeIdSet = new Set(nodes.map(function (node) {
|
|
38
|
+
return node.id;
|
|
39
|
+
}));
|
|
40
|
+
var deletedNodeIdSet = new Set();
|
|
41
|
+
var realNodes = [];
|
|
42
|
+
var realEdges = [];
|
|
43
|
+
switch (selectionStrategy) {
|
|
44
|
+
case SelectionStrategy.PARENT:
|
|
45
|
+
{
|
|
46
|
+
var _iterator = _createForOfIteratorHelper(nodes),
|
|
47
|
+
_step;
|
|
48
|
+
try {
|
|
49
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
50
|
+
var node = _step.value;
|
|
51
|
+
var curr = node;
|
|
52
|
+
var parentIsSelected = false;
|
|
53
|
+
while (curr && curr.parentId) {
|
|
54
|
+
var parentId = curr.parentId;
|
|
55
|
+
if (nodeIdSet.has(parentId)) {
|
|
56
|
+
parentIsSelected = true;
|
|
57
|
+
deletedNodeIdSet.add(node.id);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
curr = getNode(parentId);
|
|
61
|
+
}
|
|
62
|
+
if (!parentIsSelected) {
|
|
63
|
+
realNodes.push(node);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
} catch (err) {
|
|
67
|
+
_iterator.e(err);
|
|
68
|
+
} finally {
|
|
69
|
+
_iterator.f();
|
|
70
|
+
}
|
|
71
|
+
var _iterator2 = _createForOfIteratorHelper(edges),
|
|
72
|
+
_step2;
|
|
73
|
+
try {
|
|
74
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
75
|
+
var edge = _step2.value;
|
|
76
|
+
var source = edge.source,
|
|
77
|
+
target = edge.target;
|
|
78
|
+
if (!deletedNodeIdSet.has(source) && !deletedNodeIdSet.has(target)) {
|
|
79
|
+
realEdges.push(edge);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
} catch (err) {
|
|
83
|
+
_iterator2.e(err);
|
|
84
|
+
} finally {
|
|
85
|
+
_iterator2.f();
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case SelectionStrategy.CHILD:
|
|
90
|
+
{
|
|
91
|
+
// 如果有子节点,排除父节点
|
|
92
|
+
var parentLookup = storeApi.getState().parentLookup;
|
|
93
|
+
var hasSelectedChildren = function hasSelectedChildren(id) {
|
|
94
|
+
var childrenMap = parentLookup.get(id);
|
|
95
|
+
if (childrenMap) {
|
|
96
|
+
var _iterator3 = _createForOfIteratorHelper(childrenMap.entries()),
|
|
97
|
+
_step3;
|
|
98
|
+
try {
|
|
99
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
100
|
+
var _step3$value = _slicedToArray(_step3.value, 1),
|
|
101
|
+
key = _step3$value[0];
|
|
102
|
+
if (nodeIdSet.has(key)) {
|
|
103
|
+
// 子元素被选中
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
var checkSubParent = hasSelectedChildren(key);
|
|
107
|
+
if (checkSubParent) {
|
|
108
|
+
// 中间节点被选中
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
} catch (err) {
|
|
113
|
+
_iterator3.e(err);
|
|
114
|
+
} finally {
|
|
115
|
+
_iterator3.f();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
};
|
|
120
|
+
var _iterator4 = _createForOfIteratorHelper(nodes),
|
|
121
|
+
_step4;
|
|
122
|
+
try {
|
|
123
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
124
|
+
var _node = _step4.value;
|
|
125
|
+
if (!hasSelectedChildren(_node.id)) {
|
|
126
|
+
realNodes.push(_node);
|
|
127
|
+
} else {
|
|
128
|
+
deletedNodeIdSet.add(_node.id);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
} catch (err) {
|
|
132
|
+
_iterator4.e(err);
|
|
133
|
+
} finally {
|
|
134
|
+
_iterator4.f();
|
|
135
|
+
}
|
|
136
|
+
var _iterator5 = _createForOfIteratorHelper(edges),
|
|
137
|
+
_step5;
|
|
138
|
+
try {
|
|
139
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
140
|
+
var _edge = _step5.value;
|
|
141
|
+
var _source = _edge.source,
|
|
142
|
+
_target = _edge.target;
|
|
143
|
+
if (!deletedNodeIdSet.has(_source) && !deletedNodeIdSet.has(_target)) {
|
|
144
|
+
realEdges.push(_edge);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
} catch (err) {
|
|
148
|
+
_iterator5.e(err);
|
|
149
|
+
} finally {
|
|
150
|
+
_iterator5.f();
|
|
151
|
+
}
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
default:
|
|
155
|
+
{
|
|
156
|
+
realNodes = nodes;
|
|
157
|
+
realEdges = edges;
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
var realSelectionChange = {
|
|
162
|
+
nodes: realNodes,
|
|
163
|
+
edges: realEdges
|
|
164
|
+
};
|
|
165
|
+
if (deletedNodeIdSet.size) {
|
|
166
|
+
// 需要删除对应边选中状态
|
|
167
|
+
}
|
|
168
|
+
setSelection(realSelectionChange);
|
|
169
|
+
onSelectionChange === null || onSelectionChange === void 0 || onSelectionChange(realSelectionChange);
|
|
170
|
+
});
|
|
171
|
+
};
|
|
@@ -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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-08-16 16:28
|
|
4
|
+
* @modified:2025/8/16 16:28 by yanxianliang
|
|
5
|
+
* @desc: 设置边列表
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { useCallback } from "react";
|
|
11
|
+
import { useSetState, useGetState } from "./state";
|
|
12
|
+
export var useSetEdges = function useSetEdges() {
|
|
13
|
+
var setState = useSetState();
|
|
14
|
+
var getState = useGetState();
|
|
15
|
+
var setEdges = useCallback(function (nextState) {
|
|
16
|
+
var nextEdges = typeof nextState === 'function' ? nextState(getState().edges || []) : nextState;
|
|
17
|
+
setState({
|
|
18
|
+
edges: nextEdges
|
|
19
|
+
});
|
|
20
|
+
}, []);
|
|
21
|
+
return setEdges;
|
|
22
|
+
};
|
|
@@ -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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-07-26 08:17
|
|
4
|
+
* @modified:2025/7/26 08:17 by yanxianliang
|
|
5
|
+
* @desc: 保存选中结果
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
|
+
*/
|
|
9
|
+
import { useCallback } from "react";
|
|
10
|
+
import { useSetState, useGetState } from "./state";
|
|
11
|
+
import isEqual from "lodash/isEqual";
|
|
12
|
+
import sortBy from "lodash/sortBy";
|
|
13
|
+
export var useSetSelection = function useSetSelection() {
|
|
14
|
+
var setState = useSetState();
|
|
15
|
+
var getState = useGetState();
|
|
16
|
+
return useCallback(function (selectionsChange) {
|
|
17
|
+
var nodes = selectionsChange.nodes,
|
|
18
|
+
edges = selectionsChange.edges;
|
|
19
|
+
var nodeIds = nodes.map(function (node) {
|
|
20
|
+
return node.id;
|
|
21
|
+
});
|
|
22
|
+
var edgeIds = edges.map(function (edge) {
|
|
23
|
+
return edge.id;
|
|
24
|
+
});
|
|
25
|
+
var beforeSelectedNodes = getState().selectedNodes || [];
|
|
26
|
+
if (nodeIds.length !== beforeSelectedNodes.length || !isEqual(sortBy(nodeIds), sortBy(beforeSelectedNodes))) {
|
|
27
|
+
setState({
|
|
28
|
+
selectedNodes: nodeIds,
|
|
29
|
+
selectedEdges: edgeIds
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
33
|
+
};
|
|
@@ -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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-08-13 16:16
|
|
4
|
+
* @modified:2025/8/13 16:16 by yanxianliang
|
|
5
|
+
* @desc: 更新释放目标
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
|
+
*/
|
|
9
|
+
import { useCallback } from 'react';
|
|
10
|
+
import { useSetState } from "./state";
|
|
11
|
+
export var useSetWillDropTargets = function useSetWillDropTargets() {
|
|
12
|
+
var setState = useSetState();
|
|
13
|
+
return useCallback(function (targetIds) {
|
|
14
|
+
setState({
|
|
15
|
+
dropTargetIds: targetIds
|
|
16
|
+
});
|
|
17
|
+
}, []);
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpstream.d.ts","sourceRoot":"","sources":["useUpstream.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,IAAI,EAAc,IAAI,EAAe,MAAM,eAAe,CAAC;AAanE,eAAO,MAAM,YAAY,mEAInB,MAAM,wCA8EX,CAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
/**
|
|
8
|
+
* @author: yanxianliang
|
|
9
|
+
* @date: 2025-08-23 00:56
|
|
10
|
+
* @desc: 获取上游
|
|
11
|
+
*
|
|
12
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
13
|
+
*/
|
|
14
|
+
import { useCallback, useEffect, useState } from "react";
|
|
15
|
+
import { useReactFlow } from "@xyflow/react";
|
|
16
|
+
import { useDebounceFn, useMemoizedFn } from 'ahooks';
|
|
17
|
+
import { unstable_scheduleCallback as scheduleCallback, unstable_IdlePriority as IdlePriority, unstable_shouldYield as shouldYield } from 'scheduler';
|
|
18
|
+
import { stringArrayIsEqual } from "../utils/arrayUtils";
|
|
19
|
+
import { useOnEdgesChange } from "@rxflow/base";
|
|
20
|
+
var defaultUpstreams = [];
|
|
21
|
+
export var useUpstreams = function useUpstreams(id) {
|
|
22
|
+
var allowParentFlow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
23
|
+
var _useState = useState(defaultUpstreams),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
upstreams = _useState2[0],
|
|
26
|
+
setUpstreams = _useState2[1];
|
|
27
|
+
var _useReactFlow = useReactFlow(),
|
|
28
|
+
getNodeConnections = _useReactFlow.getNodeConnections,
|
|
29
|
+
getNode = _useReactFlow.getNode;
|
|
30
|
+
|
|
31
|
+
// 防抖
|
|
32
|
+
var _useDebounceFn = useDebounceFn(function () {
|
|
33
|
+
var upstreams = [];
|
|
34
|
+
var upstreamIdSet = new Set(id);
|
|
35
|
+
var getUpstream = function getUpstream(nodeId) {
|
|
36
|
+
var connections = getNodeConnections({
|
|
37
|
+
nodeId: nodeId
|
|
38
|
+
}); // 当前节点所有的链接线
|
|
39
|
+
connections.forEach(function (connection) {
|
|
40
|
+
var source = connection.source,
|
|
41
|
+
target = connection.target;
|
|
42
|
+
var targetNode = getNode(target);
|
|
43
|
+
if (!upstreamIdSet.has(source) && target === nodeId && source !== (targetNode === null || targetNode === void 0 ? void 0 : targetNode.parentId)) {
|
|
44
|
+
upstreams.push(source);
|
|
45
|
+
upstreamIdSet.add(source);
|
|
46
|
+
getUpstream(source);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var node = getNode(nodeId);
|
|
50
|
+
if (node !== null && node !== void 0 && node.parentId) {
|
|
51
|
+
var parentNode = getNode(node.parentId);
|
|
52
|
+
if (parentNode) {
|
|
53
|
+
upstreamIdSet.add(parentNode.id);
|
|
54
|
+
if (allowParentFlow) {
|
|
55
|
+
getUpstream(parentNode.id);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
getUpstream(id);
|
|
61
|
+
setUpstreams(function (beforeUpstreams) {
|
|
62
|
+
if (stringArrayIsEqual(beforeUpstreams, upstreams)) {
|
|
63
|
+
return beforeUpstreams;
|
|
64
|
+
}
|
|
65
|
+
return upstreams;
|
|
66
|
+
});
|
|
67
|
+
}, {
|
|
68
|
+
wait: 500
|
|
69
|
+
}),
|
|
70
|
+
run = _useDebounceFn.run;
|
|
71
|
+
var doAnalysis = useCallback(function () {
|
|
72
|
+
var task = function task() {
|
|
73
|
+
if (shouldYield()) {
|
|
74
|
+
// 检查当前帧是否有剩余时间
|
|
75
|
+
return task; // 无时间则中断,等待下次调度
|
|
76
|
+
}
|
|
77
|
+
run();
|
|
78
|
+
};
|
|
79
|
+
// 闲置时执行
|
|
80
|
+
scheduleCallback(IdlePriority, task); // 最低优先级执行
|
|
81
|
+
}, []);
|
|
82
|
+
var onEdgesChange = useMemoizedFn(function (changes) {
|
|
83
|
+
if (!id) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// edges change
|
|
87
|
+
var watchChanges = changes.find(function (change) {
|
|
88
|
+
var type = change.type;
|
|
89
|
+
return type === 'add' || type === 'remove' || type === 'replace';
|
|
90
|
+
});
|
|
91
|
+
if (watchChanges) {
|
|
92
|
+
// 边更新了,检测上游
|
|
93
|
+
doAnalysis();
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
useOnEdgesChange(onEdgesChange);
|
|
97
|
+
useEffect(function () {
|
|
98
|
+
doAnalysis(); // 直接触发一次
|
|
99
|
+
}, []);
|
|
100
|
+
return upstreams;
|
|
101
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWatchSelectionNodes.d.ts","sourceRoot":"","sources":["useWatchSelectionNodes.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,4BAIlC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author: yanxianliang
|
|
3
|
+
* @date: 2025-07-26 08:11
|
|
4
|
+
* @modified:2025/7/26 08:11 by yanxianliang
|
|
5
|
+
* @desc: 监听选中节点
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
|
|
8
|
+
*/
|
|
9
|
+
import { useSelector } from "./state";
|
|
10
|
+
export var useWatchSelectionNodes = function useWatchSelectionNodes() {
|
|
11
|
+
return useSelector(function (state) {
|
|
12
|
+
return state.selectedNodes;
|
|
13
|
+
});
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Connection, type Edge, type Node, ReactFlowInstance } from "@xyflow/react";
|
|
2
|
+
/**
|
|
3
|
+
* useWorkFlow 必须在 StoreProvider 下面使用
|
|
4
|
+
*/
|
|
5
|
+
export declare const useWorkFlow: <NodeType extends Node = Node, EdgeType extends Edge = Edge>() => import("@xyflow/react").GeneralHelpers<NodeType, EdgeType> & import("@xyflow/react").ViewportHelperFunctions & {
|
|
6
|
+
viewportInitialized: boolean;
|
|
7
|
+
} & {
|
|
8
|
+
connect: (connection: Connection) => void;
|
|
9
|
+
getChildren: (nodeId?: string, allowSubFlow?: boolean) => NodeType[];
|
|
10
|
+
getParents: (nodeId?: string) => NodeType[];
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useWorkFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWorkFlow.d.ts","sourceRoot":"","sources":["useWorkFlow.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,UAAU,EACV,KAAK,IAAI,EACT,KAAK,IAAI,EACT,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AAIvB;;GAEG;AACH,eAAO,MAAM,WAAW;;;0BAIA,UAAU,KAAK,IAAI;2BAClB,MAAM,iBAAiB,OAAO,KAAK,QAAQ,EAAE;0BAC9C,MAAM,KAAK,QAAQ,EAAE;CA2F5C,CAAA"}
|