Merge branch 'xyflow' into svelte-flow-connection-mode

This commit is contained in:
Moritz Klack
2023-09-25 17:17:12 +02:00
committed by GitHub
5 changed files with 22 additions and 4 deletions

View File

@@ -160,9 +160,14 @@
event.detail.event.preventDefault();
console.log('on node contextmenu', event);
}}
on:edgecontextmenu={({ detail: { event, edge } }) => {
event.preventDefault();
console.log('on edge contextmenu', edge);
}}
autoPanOnConnect
autoPanOnNodeDrag
connectionMode={ConnectionMode.Strict}
attributionPosition={'top-center'}
>
<Controls />
<Background variant={BackgroundVariant.Dots} />

View File

@@ -51,6 +51,11 @@
const edge = $edges.find((e) => e.id === id);
dispatch('edgeclick', { event, edge });
}
function onContextMenu(event: MouseEvent) {
const edge = $edges.find((e) => e.id === id);
dispatch('edgecontextmenu', { event, edge });
}
</script>
<!-- svelte-ignore a11y-click-events-have-key-events -->
@@ -62,6 +67,7 @@
class:selected
data-id={id}
on:click={onClick}
on:contextmenu={onContextMenu}
aria-label={ariaLabel === null
? undefined
: ariaLabel

View File

@@ -17,7 +17,7 @@
($elementsSelectable && typeof edge.selectable === 'undefined')
)}
<EdgeWrapper {...edge} type={edgeType} {selectable} on:edgeclick />
<EdgeWrapper {...edge} type={edgeType} {selectable} on:edgeclick on:edgecontextmenu />
{/each}
</g>
</svg>

View File

@@ -55,6 +55,8 @@
export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true;
export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true;
export let onError: $$Props['onError'] = undefined;
export let attributionPosition: $$Props['attributionPosition'] = undefined;
export let proOptions: $$Props['proOptions'] = undefined;
export let defaultMarkerColor = '#b1b1b7';
@@ -151,7 +153,7 @@
>
<Pane on:paneclick panOnDrag={panOnDrag === undefined ? true : panOnDrag}>
<ViewportComponent>
<EdgeRenderer on:edgeclick />
<EdgeRenderer on:edgeclick on:edgecontextmenu />
<ConnectionLine />
<div class="svelte-flow__edgelabel-renderer" />
<NodeRenderer
@@ -172,7 +174,7 @@
<UserSelection />
</Pane>
</Zoom>
<Attribution />
<Attribution {proOptions} position={attributionPosition} />
<slot />
</div>

View File

@@ -15,7 +15,9 @@ import type {
HandleType,
NodeBase,
OnError,
ConnectionMode
ConnectionMode,
PanelPosition,
ProOptions
} from '@xyflow/system';
import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types';
@@ -54,6 +56,8 @@ export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
onlyRenderVisibleElements?: boolean;
autoPanOnConnect?: boolean;
autoPanOnNodeDrag?: boolean;
attributionPosition?: PanelPosition;
proOptions?: ProOptions;
class?: string;
style?: string;
@@ -71,6 +75,7 @@ export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
'on:nodemousemove'?: CustomEvent<{ event: MouseEvent; node: Node }>;
'on:nodemouseleave'?: CustomEvent<{ event: MouseEvent; node: Node }>;
'on:edgeclick'?: CustomEvent<{ event: MouseEvent; edge: Edge }>;
'on:edgecontextmenu'?: CustomEvent<{ event: MouseEvent; edge: Edge }>;
'on:connectstart'?: CustomEvent<{
event: MouseEvent | TouchEvent;
nodeId?: string;