Merge pull request #3448 from wbkd/svelte-flow-on-edge-context-menu

feat(svelte) added on:edgecontextmenu
This commit is contained in:
Moritz Klack
2023-09-25 17:15:33 +02:00
committed by GitHub
5 changed files with 13 additions and 2 deletions
@@ -159,6 +159,10 @@
event.detail.event.preventDefault(); event.detail.event.preventDefault();
console.log('on node contextmenu', event); console.log('on node contextmenu', event);
}} }}
on:edgecontextmenu={({ detail: { event, edge } }) => {
event.preventDefault();
console.log('on edge contextmenu', edge);
}}
autoPanOnConnect autoPanOnConnect
autoPanOnNodeDrag autoPanOnNodeDrag
attributionPosition={'top-center'} attributionPosition={'top-center'}
@@ -51,6 +51,11 @@
const edge = $edges.find((e) => e.id === id); const edge = $edges.find((e) => e.id === id);
dispatch('edgeclick', { event, edge }); dispatch('edgeclick', { event, edge });
} }
function onContextMenu(event: MouseEvent) {
const edge = $edges.find((e) => e.id === id);
dispatch('edgecontextmenu', { event, edge });
}
</script> </script>
<!-- svelte-ignore a11y-click-events-have-key-events --> <!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -62,6 +67,7 @@
class:selected class:selected
data-id={id} data-id={id}
on:click={onClick} on:click={onClick}
on:contextmenu={onContextMenu}
aria-label={ariaLabel === null aria-label={ariaLabel === null
? undefined ? undefined
: ariaLabel : ariaLabel
@@ -17,7 +17,7 @@
($elementsSelectable && typeof edge.selectable === 'undefined') ($elementsSelectable && typeof edge.selectable === 'undefined')
)} )}
<EdgeWrapper {...edge} type={edgeType} {selectable} on:edgeclick /> <EdgeWrapper {...edge} type={edgeType} {selectable} on:edgeclick on:edgecontextmenu />
{/each} {/each}
</g> </g>
</svg> </svg>
@@ -151,7 +151,7 @@
> >
<Pane on:paneclick panOnDrag={panOnDrag === undefined ? true : panOnDrag}> <Pane on:paneclick panOnDrag={panOnDrag === undefined ? true : panOnDrag}>
<ViewportComponent> <ViewportComponent>
<EdgeRenderer on:edgeclick /> <EdgeRenderer on:edgeclick on:edgecontextmenu />
<ConnectionLine /> <ConnectionLine />
<div class="svelte-flow__edgelabel-renderer" /> <div class="svelte-flow__edgelabel-renderer" />
<NodeRenderer <NodeRenderer
@@ -73,6 +73,7 @@ export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
'on:nodemousemove'?: CustomEvent<{ event: MouseEvent; node: Node }>; 'on:nodemousemove'?: CustomEvent<{ event: MouseEvent; node: Node }>;
'on:nodemouseleave'?: CustomEvent<{ event: MouseEvent; node: Node }>; 'on:nodemouseleave'?: CustomEvent<{ event: MouseEvent; node: Node }>;
'on:edgeclick'?: CustomEvent<{ event: MouseEvent; edge: Edge }>; 'on:edgeclick'?: CustomEvent<{ event: MouseEvent; edge: Edge }>;
'on:edgecontextmenu'?: CustomEvent<{ event: MouseEvent; edge: Edge }>;
'on:connectstart'?: CustomEvent<{ 'on:connectstart'?: CustomEvent<{
event: MouseEvent | TouchEvent; event: MouseEvent | TouchEvent;
nodeId?: string; nodeId?: string;