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(