From 54dfd8498b04d4c06ee9dd6a799454f1b7d3f152 Mon Sep 17 00:00:00 2001
From: Braks <78412429+bcakmakoglu@users.noreply.github.com>
Date: Thu, 18 Nov 2021 13:40:51 +0100
Subject: [PATCH] feat: add zoom-pane slot
* if the user wants to pass a slot into zoom pane
* props are the current width/height and transform values
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
---
src/container/VueFlow/VueFlow.vue | 51 +++++++++++++++--------------
src/container/ZoomPane/ZoomPane.vue | 17 +++++-----
2 files changed, 36 insertions(+), 32 deletions(-)
diff --git a/src/container/VueFlow/VueFlow.vue b/src/container/VueFlow/VueFlow.vue
index 53df4deb..6419679d 100644
--- a/src/container/VueFlow/VueFlow.vue
+++ b/src/container/VueFlow/VueFlow.vue
@@ -161,31 +161,34 @@ const edgeTypes = computed(() => {
:pan-on-scroll-mode="props.panOnScrollMode"
:pane-moveable="props.paneMoveable"
>
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/container/ZoomPane/ZoomPane.vue b/src/container/ZoomPane/ZoomPane.vue
index 503975fb..a2afa859 100644
--- a/src/container/ZoomPane/ZoomPane.vue
+++ b/src/container/ZoomPane/ZoomPane.vue
@@ -73,7 +73,6 @@ invoke(async () => {
if (viewChanged(transform.value, event.transform)) {
const flowTransform = eventToFlowTransform(event.transform)
transform.value = flowTransform
-
hooks.moveStart.trigger(flowTransform)
}
})
@@ -82,7 +81,6 @@ invoke(async () => {
if (viewChanged(transform.value, event.transform)) {
const flowTransform = eventToFlowTransform(event.transform)
transform.value = flowTransform
-
hooks.moveEnd.trigger(flowTransform)
}
})
@@ -95,7 +93,6 @@ invoke(async () => {
if (viewChanged(transform.value, event.transform)) {
const flowTransform = eventToFlowTransform(event.transform)
transform.value = flowTransform
-
hooks.move.trigger(flowTransform)
}
})
@@ -185,11 +182,15 @@ store.dimensions = {
height: height.value,
}
-watch([width, height], ([newWidth, newHeight]) => {
- store.dimensions.width = newWidth
- store.dimensions.height = newHeight
-})
-watch(transform, (val) => (store.transform = [val.x, val.y, val.zoom]))
+watch(
+ [width, height],
+ ([newWidth, newHeight]) => {
+ store.dimensions.width = newWidth
+ store.dimensions.height = newHeight
+ },
+ { flush: 'pre' },
+)
+watch(transform, (val) => (store.transform = [val.x, val.y, val.zoom]), { flush: 'pre' })
const { zoomIn, zoomOut, zoomTo, transform: setTransform, fitView } = useZoomPanHelper()
watchOnce(