From aee1b6b9f80efd6de9762a76ad89c60d602419cf Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 18 Jan 2024 16:27:51 +0100 Subject: [PATCH] add getNode, getNodes, getEdge, getEdges --- packages/svelte/src/lib/hooks/useSvelteFlow.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/hooks/useSvelteFlow.ts b/packages/svelte/src/lib/hooks/useSvelteFlow.ts index d47ee45b..0cf53f5c 100644 --- a/packages/svelte/src/lib/hooks/useSvelteFlow.ts +++ b/packages/svelte/src/lib/hooks/useSvelteFlow.ts @@ -29,6 +29,10 @@ import { isNode } from '$lib/utils'; export function useSvelteFlow(): { zoomIn: ZoomInOut; zoomOut: ZoomInOut; + getNode: (id: string) => Node | undefined; + getNodes: (ids: string[]) => (Node | undefined)[]; + getEdge: (id: string) => Edge | undefined; + getEdges: (ids: string[]) => (Edge | undefined)[]; setZoom: (zoomLevel: number, options?: ViewportHelperFunctionOptions) => void; getZoom: () => number; setCenter: (x: number, y: number, options?: SetCenterOptions) => void; @@ -82,7 +86,9 @@ export function useSvelteFlow(): { panZoom, nodes, edges, - domNode + domNode, + nodeLookup, + edgeLookup } = useStore(); const getNodeRect = ( @@ -121,6 +127,10 @@ export function useSvelteFlow(): { return { zoomIn, zoomOut, + getNode: (id) => get(nodeLookup).get(id), + getNodes: (ids) => ids.map((id) => get(nodeLookup).get(id)), + getEdge: (id) => get(edgeLookup).get(id), + getEdges: (ids) => ids.map((id) => get(edgeLookup).get(id)), setZoom: (zoomLevel, options) => { get(panZoom)?.scaleTo(zoomLevel, { duration: options?.duration }); },