From fc642e8b3d18ead5db446c6b12e879689faad5c6 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 13 Nov 2024 17:27:44 +0100 Subject: [PATCH] migrate nodetoolbar --- .../src/lib/components/NodeWrapper/types.ts | 2 +- .../NodeRenderer/NodeRenderer.svelte | 32 ++++++---- .../src/lib/container/NodeRenderer/types.ts | 3 - .../plugins/NodeToolbar/NodeToolbar.svelte | 60 +++++++++---------- .../src/lib/plugins/NodeToolbar/types.ts | 2 + 5 files changed, 51 insertions(+), 48 deletions(-) delete mode 100644 packages/svelte/src/lib/container/NodeRenderer/types.ts diff --git a/packages/svelte/src/lib/components/NodeWrapper/types.ts b/packages/svelte/src/lib/components/NodeWrapper/types.ts index 0f746a47..8c547d23 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/types.ts +++ b/packages/svelte/src/lib/components/NodeWrapper/types.ts @@ -38,5 +38,5 @@ export type NodeWrapperProps = Pick< zIndex: number; node: InternalNode; initialized: boolean; - nodeClickDistance: number; + nodeClickDistance?: number; }; diff --git a/packages/svelte/src/lib/container/NodeRenderer/NodeRenderer.svelte b/packages/svelte/src/lib/container/NodeRenderer/NodeRenderer.svelte index b54e15cb..a6cda57e 100644 --- a/packages/svelte/src/lib/container/NodeRenderer/NodeRenderer.svelte +++ b/packages/svelte/src/lib/container/NodeRenderer/NodeRenderer.svelte @@ -2,13 +2,21 @@ import { onDestroy } from 'svelte'; import { nodeHasDimensions } from '@xyflow/system'; + import type { NodeEvents } from '$lib/types/events'; import { NodeWrapper } from '$lib/components/NodeWrapper'; import { useStore } from '$lib/store'; - import type { NodeRendererProps } from './types'; - type $$Props = NodeRendererProps; - - export let nodeClickDistance: $$Props['nodeClickDistance'] = 0; + let { + nodeClickDistance, + onnodeclick, + onnodecontextmenu, + onnodemouseenter, + onnodemousemove, + onnodemouseleave, + onnodedrag, + onnodedragstart, + onnodedragstop + }: { nodeClickDistance?: number } & NodeEvents = $props(); const { visibleNodes, @@ -82,14 +90,14 @@ parentId={node.parentId} {resizeObserver} {nodeClickDistance} - on:nodeclick - on:nodemouseenter - on:nodemousemove - on:nodemouseleave - on:nodedrag - on:nodedragstart - on:nodedragstop - on:nodecontextmenu + {onnodeclick} + {onnodemouseenter} + {onnodemousemove} + {onnodemouseleave} + {onnodedrag} + {onnodedragstart} + {onnodedragstop} + {onnodecontextmenu} /> {/each} diff --git a/packages/svelte/src/lib/container/NodeRenderer/types.ts b/packages/svelte/src/lib/container/NodeRenderer/types.ts deleted file mode 100644 index 93c78afe..00000000 --- a/packages/svelte/src/lib/container/NodeRenderer/types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type NodeRendererProps = { - nodeClickDistance?: number; -}; diff --git a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte index 58d73db5..0e28e583 100644 --- a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte +++ b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte @@ -1,38 +1,32 @@ {#if $domNode && isActive && toolbarNodes} @@ -75,6 +71,6 @@ style:transform style:z-index={zIndex} > - + {@render children?.()} {/if} diff --git a/packages/svelte/src/lib/plugins/NodeToolbar/types.ts b/packages/svelte/src/lib/plugins/NodeToolbar/types.ts index aec506a3..0f192d4b 100644 --- a/packages/svelte/src/lib/plugins/NodeToolbar/types.ts +++ b/packages/svelte/src/lib/plugins/NodeToolbar/types.ts @@ -1,4 +1,5 @@ import type { Position, Align } from '@xyflow/system'; +import type { Snippet } from 'svelte'; export type NodeToolbarProps = { /** The id of the node, or array of ids the toolbar should be displayed at */ @@ -16,4 +17,5 @@ export type NodeToolbarProps = { offset?: number; /** If true, node toolbar is visible even if node is not selected */ isVisible?: boolean; + children?: Snippet; };