Merge branch 'xyflow' into svelte-flow-connection-mode
This commit is contained in:
@@ -160,9 +160,14 @@
|
|||||||
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
|
||||||
connectionMode={ConnectionMode.Strict}
|
connectionMode={ConnectionMode.Strict}
|
||||||
|
attributionPosition={'top-center'}
|
||||||
>
|
>
|
||||||
<Controls />
|
<Controls />
|
||||||
<Background variant={BackgroundVariant.Dots} />
|
<Background variant={BackgroundVariant.Dots} />
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -55,6 +55,8 @@
|
|||||||
export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true;
|
export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true;
|
||||||
export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true;
|
export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true;
|
||||||
export let onError: $$Props['onError'] = undefined;
|
export let onError: $$Props['onError'] = undefined;
|
||||||
|
export let attributionPosition: $$Props['attributionPosition'] = undefined;
|
||||||
|
export let proOptions: $$Props['proOptions'] = undefined;
|
||||||
|
|
||||||
export let defaultMarkerColor = '#b1b1b7';
|
export let defaultMarkerColor = '#b1b1b7';
|
||||||
|
|
||||||
@@ -151,7 +153,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
|
||||||
@@ -172,7 +174,7 @@
|
|||||||
<UserSelection />
|
<UserSelection />
|
||||||
</Pane>
|
</Pane>
|
||||||
</Zoom>
|
</Zoom>
|
||||||
<Attribution />
|
<Attribution {proOptions} position={attributionPosition} />
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ import type {
|
|||||||
HandleType,
|
HandleType,
|
||||||
NodeBase,
|
NodeBase,
|
||||||
OnError,
|
OnError,
|
||||||
ConnectionMode
|
ConnectionMode,
|
||||||
|
PanelPosition,
|
||||||
|
ProOptions
|
||||||
} from '@xyflow/system';
|
} from '@xyflow/system';
|
||||||
|
|
||||||
import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types';
|
import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types';
|
||||||
@@ -54,6 +56,8 @@ export type SvelteFlowProps = DOMAttributes<HTMLDivElement> & {
|
|||||||
onlyRenderVisibleElements?: boolean;
|
onlyRenderVisibleElements?: boolean;
|
||||||
autoPanOnConnect?: boolean;
|
autoPanOnConnect?: boolean;
|
||||||
autoPanOnNodeDrag?: boolean;
|
autoPanOnNodeDrag?: boolean;
|
||||||
|
attributionPosition?: PanelPosition;
|
||||||
|
proOptions?: ProOptions;
|
||||||
|
|
||||||
class?: string;
|
class?: string;
|
||||||
style?: string;
|
style?: string;
|
||||||
@@ -71,6 +75,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;
|
||||||
|
|||||||
Reference in New Issue
Block a user