mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
feats: 为 snow-shot 提供自定义功能
This commit is contained in:
parent
58f7d33d80
commit
27e0350fa7
21 changed files with 940 additions and 478 deletions
|
@ -50,7 +50,7 @@
|
|||
"bugs": "https://github.com/excalidraw/excalidraw/issues",
|
||||
"repository": "https://github.com/excalidraw/excalidraw",
|
||||
"scripts": {
|
||||
"gen:types": "rm -rf types && tsc",
|
||||
"build:esm": "rm -rf dist && node ../../scripts/buildBase.js && yarn gen:types"
|
||||
"gen:types": "rimraf -rf types && tsc",
|
||||
"build:esm": "rimraf -rf dist && node ../../scripts/buildBase.js && yarn gen:types"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import type { KeyboardModifiersObject } from "@excalidraw/excalidraw/types";
|
||||
|
||||
import { isDarwin } from "./constants";
|
||||
|
||||
import type { ValueOf } from "./utility-types";
|
||||
|
||||
|
||||
export const CODES = {
|
||||
EQUAL: "Equal",
|
||||
MINUS: "Minus",
|
||||
|
@ -140,12 +143,60 @@ export const isArrowKey = (key: string) =>
|
|||
key === KEYS.ARROW_DOWN ||
|
||||
key === KEYS.ARROW_UP;
|
||||
|
||||
export const shouldResizeFromCenter = (event: MouseEvent | KeyboardEvent) =>
|
||||
const shouldResizeFromCenterDefault = (event: MouseEvent | KeyboardEvent) =>
|
||||
event.altKey;
|
||||
|
||||
export const shouldMaintainAspectRatio = (event: MouseEvent | KeyboardEvent) =>
|
||||
const shouldMaintainAspectRatioDefault = (event: MouseEvent | KeyboardEvent) =>
|
||||
event.shiftKey;
|
||||
|
||||
const shouldRotateWithDiscreteAngleDefault = (
|
||||
event: MouseEvent | KeyboardEvent | React.PointerEvent<HTMLCanvasElement>,
|
||||
) => event.shiftKey;
|
||||
|
||||
const shouldSnappingDefault = (event: KeyboardModifiersObject) =>
|
||||
event[KEYS.CTRL_OR_CMD];
|
||||
|
||||
let shouldResizeFromCenterFunction = shouldResizeFromCenterDefault;
|
||||
let shouldMaintainAspectRatioFunction = shouldMaintainAspectRatioDefault;
|
||||
let shouldRotateWithDiscreteAngleFunction =
|
||||
shouldRotateWithDiscreteAngleDefault;
|
||||
let shouldSnappingFunction = shouldSnappingDefault;
|
||||
|
||||
export const setShouldResizeFromCenter = (
|
||||
shouldResizeFromCenter: (event: MouseEvent | KeyboardEvent) => boolean,
|
||||
) => {
|
||||
shouldResizeFromCenterFunction = shouldResizeFromCenter;
|
||||
};
|
||||
|
||||
export const setShouldMaintainAspectRatio = (
|
||||
shouldMaintainAspectRatio: (event: MouseEvent | KeyboardEvent) => boolean,
|
||||
) => {
|
||||
shouldMaintainAspectRatioFunction = shouldMaintainAspectRatio;
|
||||
};
|
||||
|
||||
export const setShouldRotateWithDiscreteAngle = (
|
||||
shouldRotateWithDiscreteAngle: (
|
||||
event: MouseEvent | KeyboardEvent | React.PointerEvent<HTMLCanvasElement>,
|
||||
) => boolean,
|
||||
) => {
|
||||
shouldRotateWithDiscreteAngleFunction = shouldRotateWithDiscreteAngle;
|
||||
};
|
||||
|
||||
export const setShouldSnapping = (
|
||||
shouldSnapping: (event: KeyboardModifiersObject) => boolean,
|
||||
) => {
|
||||
shouldSnappingFunction = shouldSnapping;
|
||||
};
|
||||
|
||||
export const shouldResizeFromCenter = (event: MouseEvent | KeyboardEvent) =>
|
||||
shouldResizeFromCenterFunction(event);
|
||||
|
||||
export const shouldMaintainAspectRatio = (event: MouseEvent | KeyboardEvent) =>
|
||||
shouldMaintainAspectRatioFunction(event);
|
||||
|
||||
export const shouldRotateWithDiscreteAngle = (
|
||||
event: MouseEvent | KeyboardEvent | React.PointerEvent<HTMLCanvasElement>,
|
||||
) => event.shiftKey;
|
||||
) => shouldRotateWithDiscreteAngleFunction(event);
|
||||
|
||||
export const shouldSnapping = (event: KeyboardModifiersObject) =>
|
||||
shouldSnappingFunction(event);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue