feat(minimap): add inversePan and zoomStep props
Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
@@ -23,6 +23,8 @@ const {
|
|||||||
pannable = false,
|
pannable = false,
|
||||||
zoomable = false,
|
zoomable = false,
|
||||||
ariaLabel = 'Vue Flow mini map',
|
ariaLabel = 'Vue Flow mini map',
|
||||||
|
inversePan = false,
|
||||||
|
zoomStep = 10,
|
||||||
} = defineProps<MiniMapProps>()
|
} = defineProps<MiniMapProps>()
|
||||||
|
|
||||||
const emit = defineEmits(['click', 'nodeClick', 'nodeDblclick', 'nodeMouseenter', 'nodeMousemove', 'nodeMouseleave'])
|
const emit = defineEmits(['click', 'nodeClick', 'nodeDblclick', 'nodeMouseenter', 'nodeMousemove', 'nodeMouseleave'])
|
||||||
@@ -111,7 +113,9 @@ watchEffect(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const pinchDelta =
|
const pinchDelta =
|
||||||
-event.sourceEvent.deltaY * (event.sourceEvent.deltaMode === 1 ? 0.05 : event.sourceEvent.deltaMode ? 1 : 0.002) * 10
|
-event.sourceEvent.deltaY *
|
||||||
|
(event.sourceEvent.deltaMode === 1 ? 0.05 : event.sourceEvent.deltaMode ? 1 : 0.002) *
|
||||||
|
zoomStep
|
||||||
const zoom = viewport.value.zoom * 2 ** pinchDelta
|
const zoom = viewport.value.zoom * 2 ** pinchDelta
|
||||||
|
|
||||||
d3Zoom.value.scaleTo(d3Selection.value, zoom)
|
d3Zoom.value.scaleTo(d3Selection.value, zoom)
|
||||||
@@ -122,9 +126,11 @@ watchEffect(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const moveScale = viewScale.value * Math.max(1, viewport.value.zoom) * (inversePan ? -1 : 1)
|
||||||
|
|
||||||
const position = {
|
const position = {
|
||||||
x: viewport.value.x - event.sourceEvent.movementX * viewScale.value * Math.max(1, viewport.value.zoom),
|
x: viewport.value.x - event.sourceEvent.movementX * moveScale,
|
||||||
y: viewport.value.y - event.sourceEvent.movementY * viewScale.value * Math.max(1, viewport.value.zoom),
|
y: viewport.value.y - event.sourceEvent.movementY * moveScale,
|
||||||
}
|
}
|
||||||
|
|
||||||
const extent: CoordinateExtent = [
|
const extent: CoordinateExtent = [
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ export interface MiniMapProps {
|
|||||||
height?: number
|
height?: number
|
||||||
|
|
||||||
ariaLabel?: string | null
|
ariaLabel?: string | null
|
||||||
|
/** Enable inverse panning, i.e. drag minimap to move viewport in opposite direction */
|
||||||
|
inversePan?: boolean
|
||||||
|
/** Specify zoom step */
|
||||||
|
zoomStep?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
/** these props are passed to mini map node slots */
|
/** these props are passed to mini map node slots */
|
||||||
|
|||||||
Reference in New Issue
Block a user