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 }>;
};