Add panOnScrollSpeed prop

This commit is contained in:
Jaan
2025-09-09 13:29:46 +02:00
parent 2d871bd3e6
commit 0e5ceb82b2
4 changed files with 11 additions and 1 deletions
@@ -59,6 +59,7 @@
zoomOnDoubleClick = true, zoomOnDoubleClick = true,
zoomOnPinch = true, zoomOnPinch = true,
panOnScroll = false, panOnScroll = false,
panOnScrollSpeed = 0.5,
panOnDrag = true, panOnDrag = true,
selectionOnDrag = true, selectionOnDrag = true,
connectionLineComponent, connectionLineComponent,
@@ -152,6 +153,7 @@
{zoomOnDoubleClick} {zoomOnDoubleClick}
{zoomOnPinch} {zoomOnPinch}
{panOnScroll} {panOnScroll}
{panOnScrollSpeed}
{panOnDrag} {panOnDrag}
{paneClickDistance} {paneClickDistance}
{onmovestart} {onmovestart}
@@ -305,6 +305,12 @@ export type SvelteFlowProps<
* @default false * @default false
*/ */
panOnScroll?: boolean; panOnScroll?: boolean;
/**
* Controls how fast viewport should be panned on scroll.
* Use together with `panOnScroll` prop.
* @default 0.5
*/
panOnScrollSpeed?: number;
/** /**
* This prop is used to limit the direction of panning when panOnScroll is enabled. * This prop is used to limit the direction of panning when panOnScroll is enabled.
* The "free" option allows panning in any direction. * The "free" option allows panning in any direction.
@@ -14,6 +14,7 @@
zoomOnPinch = true, zoomOnPinch = true,
panOnDrag = true, panOnDrag = true,
panOnScroll = false, panOnScroll = false,
panOnScrollSpeed = 0.5,
paneClickDistance = 1, paneClickDistance = 1,
onmovestart, onmovestart,
onmove, onmove,
@@ -58,7 +59,7 @@
zoomOnPinch, zoomOnPinch,
panOnScroll: panOnScrollActive, panOnScroll: panOnScrollActive,
panOnDrag: panOnDragActive, panOnDrag: panOnDragActive,
panOnScrollSpeed: 0.5, panOnScrollSpeed,
panOnScrollMode: panOnScrollMode || PanOnScrollMode.Free, panOnScrollMode: panOnScrollMode || PanOnScrollMode.Free,
zoomActivationKeyPressed: store.zoomActivationKeyPressed, zoomActivationKeyPressed: store.zoomActivationKeyPressed,
preventScrolling: typeof preventScrolling === 'boolean' ? preventScrolling : true, preventScrolling: typeof preventScrolling === 'boolean' ? preventScrolling : true,
@@ -6,6 +6,7 @@ import type { Snippet } from 'svelte';
export type ZoomProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = { export type ZoomProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = {
store: SvelteFlowStore<NodeType, EdgeType>; store: SvelteFlowStore<NodeType, EdgeType>;
panOnScrollMode: PanOnScrollMode; panOnScrollMode: PanOnScrollMode;
panOnScrollSpeed: number;
preventScrolling: boolean; preventScrolling: boolean;
zoomOnScroll: boolean; zoomOnScroll: boolean;
zoomOnDoubleClick: boolean; zoomOnDoubleClick: boolean;