From 47f9118296b95ad519ead9c68d6753ecbc16cb95 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 30 Apr 2025 20:32:06 +0200 Subject: [PATCH] implement onSelectionChanged --- examples/svelte/src/routes/+layout.ts | 2 + .../examples/overview/CustomNode.svelte | 12 ++++- .../src/routes/examples/overview/Flow.svelte | 5 +- examples/svelte/vite.config.ts | 3 +- .../ViewportPortal/ViewportPortal.svelte | 4 +- .../lib/components/ViewportPortal/types.ts | 2 +- .../container/SvelteFlow/SvelteFlow.svelte | 11 ++++- .../lib/container/SvelteFlow/Wrapper.svelte | 1 + .../src/lib/container/SvelteFlow/types.ts | 9 ++-- .../lib/hooks/useSelectionChanged.svelte.ts | 15 ++++++ packages/svelte/src/lib/index.ts | 1 + .../src/lib/store/initial-store.svelte.ts | 49 ++++++++++++++++++- packages/svelte/src/lib/types/general.ts | 5 ++ 13 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 examples/svelte/src/routes/+layout.ts create mode 100644 packages/svelte/src/lib/hooks/useSelectionChanged.svelte.ts diff --git a/examples/svelte/src/routes/+layout.ts b/examples/svelte/src/routes/+layout.ts new file mode 100644 index 00000000..83addb7e --- /dev/null +++ b/examples/svelte/src/routes/+layout.ts @@ -0,0 +1,2 @@ +export const ssr = false; +export const prerender = false; diff --git a/examples/svelte/src/routes/examples/overview/CustomNode.svelte b/examples/svelte/src/routes/examples/overview/CustomNode.svelte index 6eebee96..300a4e97 100644 --- a/examples/svelte/src/routes/examples/overview/CustomNode.svelte +++ b/examples/svelte/src/routes/examples/overview/CustomNode.svelte @@ -1,11 +1,21 @@
diff --git a/examples/svelte/src/routes/examples/overview/Flow.svelte b/examples/svelte/src/routes/examples/overview/Flow.svelte index ae642925..fb809b81 100644 --- a/examples/svelte/src/routes/examples/overview/Flow.svelte +++ b/examples/svelte/src/routes/examples/overview/Flow.svelte @@ -216,6 +216,10 @@ connectionMode={ConnectionMode.Strict} attributionPosition={'top-center'} deleteKey={['Backspace', 'd']} + onselectionchanged={({ nodes, edges }) => { + console.log('on selection changed via prop', { nodes, edges }); + }} + selectNodesOnDrag > {#snippet before()} @@ -240,7 +244,6 @@ }}>left-right - diff --git a/examples/svelte/vite.config.ts b/examples/svelte/vite.config.ts index e1aa83a9..6b35eada 100644 --- a/examples/svelte/vite.config.ts +++ b/examples/svelte/vite.config.ts @@ -4,7 +4,8 @@ import { defineConfig } from 'vite'; export default defineConfig({ plugins: [sveltekit()], build: { - sourcemap: true + sourcemap: true, + minify: false }, server: { fs: { diff --git a/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte b/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte index f07d11a5..a8ce3cd4 100644 --- a/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte +++ b/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte @@ -2,9 +2,9 @@ import { portal } from '$lib/actions/portal'; import type { ViewportPortalProps } from './types'; - let { moveTo = 'front', children, ...rest }: ViewportPortalProps = $props(); + let { target = 'front', children, ...rest }: ViewportPortalProps = $props(); -
+
{@render children?.()}
diff --git a/packages/svelte/src/lib/components/ViewportPortal/types.ts b/packages/svelte/src/lib/components/ViewportPortal/types.ts index 0d185bee..5b5f78b9 100644 --- a/packages/svelte/src/lib/components/ViewportPortal/types.ts +++ b/packages/svelte/src/lib/components/ViewportPortal/types.ts @@ -2,6 +2,6 @@ import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; export type ViewportPortalProps = { - moveTo: 'front' | 'back'; + target: 'front' | 'back'; children?: Snippet; } & HTMLAttributes; diff --git a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte index b3051afb..e9658dae 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte @@ -1,6 +1,6 @@