diff --git a/.changeset/perfect-coins-rest.md b/.changeset/perfect-coins-rest.md new file mode 100644 index 000000000..e3613515d --- /dev/null +++ b/.changeset/perfect-coins-rest.md @@ -0,0 +1,5 @@ +--- +"@vue-flow/core": minor +--- + +Expose `wheelDelta` utility fn diff --git a/.changeset/quick-dolphins-juggle.md b/.changeset/quick-dolphins-juggle.md new file mode 100644 index 000000000..c5d5591ab --- /dev/null +++ b/.changeset/quick-dolphins-juggle.md @@ -0,0 +1,5 @@ +--- +"@vue-flow/minimap": patch +--- + +Apply wheelDelta to zoom diff --git a/examples/vite/src/Basic/CustomNode.vue b/examples/vite/src/Basic/CustomNode.vue new file mode 100644 index 000000000..6a7ff6fe3 --- /dev/null +++ b/examples/vite/src/Basic/CustomNode.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/packages/core/src/container/Viewport/Viewport.vue b/packages/core/src/container/Viewport/Viewport.vue index 3d98d0fab..a5c14c287 100644 --- a/packages/core/src/container/Viewport/Viewport.vue +++ b/packages/core/src/container/Viewport/Viewport.vue @@ -8,7 +8,7 @@ import { PanOnScrollMode } from '../../types' import { useKeyPress } from '../../composables/useKeyPress' import { useVueFlow } from '../../composables/useVueFlow' import { useResizeHandler } from '../../composables/useResizeHandler' -import { clamp, isMacOs, warn } from '../../utils' +import { clamp, isMacOs, warn, wheelDelta } from '../../utils' import Pane from '../Pane/Pane.vue' import Transform from './Transform.vue' @@ -380,12 +380,6 @@ function isRightClickPan(pan: boolean | number[], usedButton: number) { return usedButton === 2 && Array.isArray(pan) && pan.includes(2) } -function wheelDelta(event: any) { - const factor = event.ctrlKey && isMacOs() ? 10 : 1 - - return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * factor -} - function viewChanged(prevViewport: ViewportTransform, eventTransform: ZoomTransform) { return ( (prevViewport.x !== eventTransform.x && !Number.isNaN(eventTransform.x)) || diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 782f2ed2b..a5b9c50ad 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -48,6 +48,7 @@ export { getBoundsofRects, connectionExists, clamp, + wheelDelta, } from './utils/graph' /** diff --git a/packages/core/src/utils/graph.ts b/packages/core/src/utils/graph.ts index 209709b76..60b185575 100644 --- a/packages/core/src/utils/graph.ts +++ b/packages/core/src/utils/graph.ts @@ -21,7 +21,7 @@ import type { XYPosition, XYZPosition, } from '../types' -import { isDef, snapPosition, warn } from '.' +import { isDef, isMacOs, snapPosition, warn } from '.' export function nodeToRect(node: GraphNode): Rect { return { @@ -504,3 +504,9 @@ export function getMarkerId(marker: EdgeMarkerType | undefined, vueFlowId?: stri .map((key) => `${key}=${marker[key]}`) .join('&')}` } + +export function wheelDelta(event: any) { + const factor = event.ctrlKey && isMacOs() ? 10 : 1 + + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * factor +} diff --git a/packages/minimap/src/MiniMap.vue b/packages/minimap/src/MiniMap.vue index 52ad94a52..af06395a8 100644 --- a/packages/minimap/src/MiniMap.vue +++ b/packages/minimap/src/MiniMap.vue @@ -1,6 +1,6 @@