From 8100390142690cf63c56e52675c699971830276e Mon Sep 17 00:00:00 2001
From: Peter
Date: Mon, 25 Sep 2023 10:00:38 +0200
Subject: [PATCH 1/2] feat(svelte) add attributionPosition and proOptions,
closes #3424
---
examples/svelte/src/routes/overview/+page.svelte | 1 +
.../svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte | 4 +++-
packages/svelte/src/lib/container/SvelteFlow/types.ts | 6 +++++-
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/examples/svelte/src/routes/overview/+page.svelte b/examples/svelte/src/routes/overview/+page.svelte
index 05bc506b..f6e0e683 100644
--- a/examples/svelte/src/routes/overview/+page.svelte
+++ b/examples/svelte/src/routes/overview/+page.svelte
@@ -161,6 +161,7 @@
}}
autoPanOnConnect
autoPanOnNodeDrag
+ attributionPosition={'top-center'}
>
diff --git a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
index d6e55ee2..2d2c1a44 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
+++ b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
@@ -54,6 +54,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';
@@ -170,7 +172,7 @@
-
+
diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts
index 04838c3a..a482bbbf 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/types.ts
+++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts
@@ -14,7 +14,9 @@ import type {
IsValidConnection,
HandleType,
NodeBase,
- OnError
+ OnError,
+ PanelPosition,
+ ProOptions
} from '@xyflow/system';
import type { Edge, Node, NodeTypes, KeyDefinition, EdgeTypes } from '$lib/types';
@@ -52,6 +54,8 @@ export type SvelteFlowProps = DOMAttributes & {
onlyRenderVisibleElements?: boolean;
autoPanOnConnect?: boolean;
autoPanOnNodeDrag?: boolean;
+ attributionPosition?: PanelPosition;
+ proOptions?: ProOptions;
class?: string;
style?: string;
From 852372f41b698d65fab1a54906cf40db57d08b5e Mon Sep 17 00:00:00 2001
From: Peter
Date: Mon, 25 Sep 2023 15:32:40 +0200
Subject: [PATCH 2/2] feat(svelte) added on:edgecontextmenu
---
examples/svelte/src/routes/overview/+page.svelte | 4 ++++
.../src/lib/components/EdgeWrapper/EdgeWrapper.svelte | 6 ++++++
.../src/lib/container/EdgeRenderer/EdgeRenderer.svelte | 2 +-
.../svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte | 2 +-
packages/svelte/src/lib/container/SvelteFlow/types.ts | 1 +
5 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/examples/svelte/src/routes/overview/+page.svelte b/examples/svelte/src/routes/overview/+page.svelte
index 05bc506b..769e0662 100644
--- a/examples/svelte/src/routes/overview/+page.svelte
+++ b/examples/svelte/src/routes/overview/+page.svelte
@@ -159,6 +159,10 @@
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
>
diff --git a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte
index 0b99d744..81d35e49 100644
--- a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte
+++ b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte
@@ -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 });
+ }
@@ -62,6 +67,7 @@
class:selected
data-id={id}
on:click={onClick}
+ on:contextmenu={onContextMenu}
aria-label={ariaLabel === null
? undefined
: ariaLabel
diff --git a/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte b/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
index 0658f47a..8835c19a 100644
--- a/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
+++ b/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
@@ -17,7 +17,7 @@
($elementsSelectable && typeof edge.selectable === 'undefined')
)}
-
+
{/each}
diff --git a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
index d6e55ee2..8b43ddb3 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
+++ b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
@@ -149,7 +149,7 @@
>
-
+
& {
'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;