Merge branch 'xyflow' into svelte-flow-connection-mode
This commit is contained in:
@@ -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} />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user