diff --git a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte index c7390408..aabff7b7 100644 --- a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte +++ b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte @@ -41,13 +41,13 @@ $: markerStartUrl = markerStart ? `url(#${getMarkerId(markerStart, $flowId)})` : undefined; $: markerEndUrl = markerEnd ? `url(#${getMarkerId(markerEnd, $flowId)})` : undefined; - function onClick() { + function onClick(event: MouseEvent | TouchEvent) { if (selectable) { addSelectedEdges([id]); } const edge = $edges.find((e) => e.id === id); - dispatch('edgeclick', edge); + dispatch('edgeclick', { event, edge }); } diff --git a/packages/svelte/src/lib/components/Handle/Handle.svelte b/packages/svelte/src/lib/components/Handle/Handle.svelte index ff1ca8e4..d5310923 100644 --- a/packages/svelte/src/lib/components/Handle/Handle.svelte +++ b/packages/svelte/src/lib/components/Handle/Handle.svelte @@ -1,7 +1,7 @@ @@ -112,9 +112,9 @@ style:transform="translate({positionOrigin?.x ?? 0}px, {positionOrigin?.y ?? 0}px)" {style} on:click={onSelectNodeHandler} - on:mouseenter={() => dispatchEvent('nodemouseenter')} - on:mouseleave={() => dispatchEvent('nodemouseleave')} - on:mousemove={() => dispatchEvent('nodemousemove')} + on:mouseenter={(event) => dispatchEvent('nodemouseenter', event)} + on:mouseleave={(event) => dispatchEvent('nodemouseleave', event)} + on:mousemove={(event) => dispatchEvent('nodemousemove', event)} > diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index b6d12104..97d5a3a9 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -3,7 +3,6 @@ import type { Connection, ConnectionLineType, NodeOrigin, - OnConnectStartParams, Viewport, SelectionMode, SnapGrid, @@ -12,7 +11,8 @@ import type { OnMoveEnd, CoordinateExtent, PanOnScrollMode, - IsValidConnection + IsValidConnection, + HandleType } from '@xyflow/system'; import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types'; @@ -59,14 +59,19 @@ export type SvelteFlowProps = DOMAttributes & { onMove?: OnMove; onMoveEnd?: OnMoveEnd; - 'on:nodeclick'?: CustomEvent; - 'on:nodemouseenter'?: CustomEvent; - 'on:nodemousemove'?: CustomEvent; - 'on:nodemouseleave'?: CustomEvent; - 'on:edgeclick'?: CustomEvent; - 'on:connectstart'?: CustomEvent; - 'on:connect'?: CustomEvent; - 'on:connectend'?: CustomEvent; - 'on:paneclick'?: CustomEvent; - 'on:panecontextmenu'?: CustomEvent; + 'on:nodeclick'?: CustomEvent<{ event: MouseEvent | TouchEvent; node: Node }>; + 'on:nodemouseenter'?: CustomEvent<{ event: MouseEvent; node: Node }>; + 'on:nodemousemove'?: CustomEvent<{ event: MouseEvent; node: Node }>; + 'on:nodemouseleave'?: CustomEvent<{ event: MouseEvent; node: Node }>; + 'on:edgeclick'?: CustomEvent<{ event: MouseEvent; edge: Edge }>; + 'on:connectstart'?: CustomEvent<{ + event: MouseEvent | TouchEvent; + nodeId?: string; + handleId?: string; + handleType?: HandleType; + }>; + 'on:connect'?: CustomEvent<{ connection: Connection }>; + 'on:connectend'?: CustomEvent<{ event: MouseEvent | TouchEvent }>; + 'on:paneclick'?: CustomEvent<{ event: MouseEvent | TouchEvent }>; + 'on:panecontextmenu'?: CustomEvent<{ event: MouseEvent }>; };