mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
build: decouple package deps and introduce yarn workspaces (#7415)
* feat: decouple package deps and introduce yarn workspaces * update root directory * fix * fix scripts * fix lint * update path in scripts * remove yarn.lock files from packages * ignore workspace * dummy * dummy * remove comment check * revert workflow changes * ignore ws when installing gh actions * remove log * update path * fix * fix typo
This commit is contained in:
parent
b7d7ccc929
commit
d6cd8b78f1
567 changed files with 5066 additions and 8648 deletions
40
packages/excalidraw/scene/zoom.ts
Normal file
40
packages/excalidraw/scene/zoom.ts
Normal file
|
@ -0,0 +1,40 @@
|
|||
import { MIN_ZOOM } from "../constants";
|
||||
import { AppState, NormalizedZoomValue } from "../types";
|
||||
|
||||
export const getNormalizedZoom = (zoom: number): NormalizedZoomValue => {
|
||||
return Math.max(MIN_ZOOM, Math.min(zoom, 30)) as NormalizedZoomValue;
|
||||
};
|
||||
|
||||
export const getStateForZoom = (
|
||||
{
|
||||
viewportX,
|
||||
viewportY,
|
||||
nextZoom,
|
||||
}: {
|
||||
viewportX: number;
|
||||
viewportY: number;
|
||||
nextZoom: NormalizedZoomValue;
|
||||
},
|
||||
appState: AppState,
|
||||
) => {
|
||||
const appLayerX = viewportX - appState.offsetLeft;
|
||||
const appLayerY = viewportY - appState.offsetTop;
|
||||
|
||||
const currentZoom = appState.zoom.value;
|
||||
|
||||
// get original scroll position without zoom
|
||||
const baseScrollX = appState.scrollX + (appLayerX - appLayerX / currentZoom);
|
||||
const baseScrollY = appState.scrollY + (appLayerY - appLayerY / currentZoom);
|
||||
|
||||
// get scroll offsets for target zoom level
|
||||
const zoomOffsetScrollX = -(appLayerX - appLayerX / nextZoom);
|
||||
const zoomOffsetScrollY = -(appLayerY - appLayerY / nextZoom);
|
||||
|
||||
return {
|
||||
scrollX: baseScrollX + zoomOffsetScrollX,
|
||||
scrollY: baseScrollY + zoomOffsetScrollY,
|
||||
zoom: {
|
||||
value: nextZoom,
|
||||
},
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue