From bb28ef4846dfe68237ce47c6d6b4ec0cf3665518 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 19 Feb 2025 12:03:55 +0100 Subject: [PATCH] Add elevateNodesOnSelect prop, fix z-index not increased when selecting nodes --- packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte | 1 + packages/svelte/src/lib/container/SvelteFlow/types.ts | 5 +++++ packages/svelte/src/lib/store/initial-store.svelte.ts | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index 6a65fb72..307e08b9 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -64,6 +64,7 @@ colorModeSSR, style, defaultEdgeOptions, + elevateNodesOnSelect, ...divAttributes } = $derived(rest); diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index d922f25e..048ce33d 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -328,6 +328,11 @@ export type SvelteFlowProps = NodeEvents & * If you have custom connection logic its preferred to use this callback over the isValidConnection prop on the handle component for performance reasons. * @default (connection: Connection) => true */ + + /** Enabling this option will raise the z-index of nodes when they are selected. + * @default true + */ + elevateNodesOnSelect?: boolean; isValidConnection?: IsValidConnection; /** This event handler is called when the user begins to pan or zoom the viewport */ onMoveStart?: OnMoveStart; diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 0c937bd8..1a55f222 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -82,7 +82,7 @@ export const getInitialStore = (signals: StoreSignals) => { adoptUserNodes(signals.nodes, this.nodeLookup, this.parentLookup, { nodeExtent: this.nodeExtent, nodeOrigin: this.nodeOrigin, - elevateNodesOnSelect: false, + elevateNodesOnSelect: signals.props.elevateNodesOnSelect ?? true, checkEquality: true }); return signals.nodes;