feat(core): add setViewport and getViewport to viewport helper

This commit is contained in:
braks
2023-07-24 23:46:59 +02:00
committed by Braks
parent ed6c298385
commit 9f63252c62
4 changed files with 20 additions and 3 deletions
+12 -1
View File
@@ -1,5 +1,6 @@
import { until } from '@vueuse/core'
import { zoomIdentity } from 'd3-zoom'
import { ref } from 'vue'
import { computed, ref } from 'vue'
import type { ComputedGetters, D3Selection, GraphNode, State, ViewportFunctions } from '~/types'
import { clampPosition, getRectOfNodes, getTransformForBounds, pointToRendererPoint } from '~/utils'
@@ -21,7 +22,9 @@ const initialViewportHelper: ExtendedViewport = {
setCenter: noop,
fitBounds: noop,
project: (position) => position,
setViewport: noop,
setTransform: noop,
getViewport: () => ({ x: 0, y: 0, zoom: 1 }),
getTransform: () => ({ x: 0, y: 0, zoom: 1 }),
initialized: false,
}
@@ -97,9 +100,17 @@ export function useViewport(state: State, getters: ComputedGetters) {
}
})
},
setViewport: (transform, options) => {
transformViewport(transform.x, transform.y, transform.zoom, options?.duration)
},
setTransform: (transform, options) => {
return transformViewport(transform.x, transform.y, transform.zoom, options?.duration)
},
getViewport: () => ({
x: viewport.x,
y: viewport.y,
zoom: viewport.zoom,
}),
getTransform: () => {
return {
x: viewport.x,