From 6b7e72b06c51912ccee49471fb84cfccb4fb4086 Mon Sep 17 00:00:00 2001
From: Peter
Date: Thu, 21 Sep 2023 12:59:56 +0200
Subject: [PATCH] feat(svelte) add autoPanOnConnect autoPanOnNodeDrag props
---
examples/svelte/src/routes/overview/+page.svelte | 2 ++
packages/svelte/src/lib/components/Handle/Handle.svelte | 5 +++--
.../svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte | 6 +++++-
packages/svelte/src/lib/container/SvelteFlow/types.ts | 2 ++
packages/svelte/src/lib/container/SvelteFlow/utils.ts | 2 ++
packages/svelte/src/lib/store/initial-store.ts | 1 +
6 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/examples/svelte/src/routes/overview/+page.svelte b/examples/svelte/src/routes/overview/+page.svelte
index 31a8d459..05bc506b 100644
--- a/examples/svelte/src/routes/overview/+page.svelte
+++ b/examples/svelte/src/routes/overview/+page.svelte
@@ -159,6 +159,8 @@
event.detail.event.preventDefault();
console.log('on node contextmenu', event);
}}
+ autoPanOnConnect
+ autoPanOnNodeDrag
>
diff --git a/packages/svelte/src/lib/components/Handle/Handle.svelte b/packages/svelte/src/lib/components/Handle/Handle.svelte
index d5310923..0108357b 100644
--- a/packages/svelte/src/lib/components/Handle/Handle.svelte
+++ b/packages/svelte/src/lib/components/Handle/Handle.svelte
@@ -40,7 +40,8 @@
addEdge,
panBy,
cancelConnection,
- updateConnection
+ updateConnection,
+ autoPanOnConnect
} = store;
function onPointerDown(event: MouseEvent | TouchEvent) {
@@ -56,7 +57,7 @@
nodes: $nodes,
connectionMode: $connectionMode,
lib: $lib,
- autoPanOnConnect: true,
+ autoPanOnConnect: $autoPanOnConnect,
isValidConnection: $isValidConnection,
updateConnection,
cancelConnection,
diff --git a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
index 0b2fac70..a24d7aaa 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
+++ b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte
@@ -51,6 +51,8 @@
export let zoomOnPinch: boolean = true;
export let panOnScroll: boolean = false;
export let panOnDrag: boolean | number[] = true;
+ export let autoPanOnConnect: $$Props['autoPanOnConnect'] = true;
+ export let autoPanOnNodeDrag: $$Props['autoPanOnNodeDrag'] = true;
export let defaultMarkerColor = '#b1b1b7';
@@ -102,7 +104,9 @@
nodesConnectable,
elementsSelectable,
onlyRenderVisibleElements,
- isValidConnection
+ isValidConnection,
+ autoPanOnConnect,
+ autoPanOnNodeDrag
};
updateStoreByKeys(store, updatableProps);
diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts
index 1c2f6ebb..2e7d8a53 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/types.ts
+++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts
@@ -49,6 +49,8 @@ export type SvelteFlowProps = DOMAttributes & {
panOnScroll?: boolean;
panOnDrag?: boolean | number[];
onlyRenderVisibleElements?: boolean;
+ autoPanOnConnect?: boolean;
+ autoPanOnNodeDrag?: boolean;
class?: string;
style?: string;
diff --git a/packages/svelte/src/lib/container/SvelteFlow/utils.ts b/packages/svelte/src/lib/container/SvelteFlow/utils.ts
index ce82b5cd..f06a8dab 100644
--- a/packages/svelte/src/lib/container/SvelteFlow/utils.ts
+++ b/packages/svelte/src/lib/container/SvelteFlow/utils.ts
@@ -59,6 +59,8 @@ export type UpdatableStoreProps = {
elementsSelectable?: UnwrapWritable;
onlyRenderVisibleElements?: UnwrapWritable;
isValidConnection?: UnwrapWritable;
+ autoPanOnConnect?: UnwrapWritable;
+ autoPanOnNodeDrag?: UnwrapWritable;
};
export function updateStoreByKeys(store: SvelteFlowStore, keys: UpdatableStoreProps) {
diff --git a/packages/svelte/src/lib/store/initial-store.ts b/packages/svelte/src/lib/store/initial-store.ts
index f7326e4f..bf613085 100644
--- a/packages/svelte/src/lib/store/initial-store.ts
+++ b/packages/svelte/src/lib/store/initial-store.ts
@@ -59,6 +59,7 @@ export const getInitialStore = () => ({
nodeExtent: writable(infiniteExtent),
translateExtent: writable(infiniteExtent),
autoPanOnNodeDrag: writable(true),
+ autoPanOnConnect: writable(true),
fitViewOnInit: writable(false),
fitViewOnInitDone: writable(false),
panZoom: writable(null),