js-web-screen-shot
Version:
web端自定义截屏插件(原生JS版)
135 lines (134 loc) • 3.44 kB
TypeScript
import { CropBoxBounds } from "../../../../lib/type/components/cropBox";
import { ArrowLikeElement } from "../../../../lib/type/editor/ArrowLikeElement";
type Point = {
x: number;
y: number;
};
export declare const getArrowEndpoints: (element: ArrowLikeElement) => {
start: Point;
end: Point;
};
export declare const getArrowBoundingRect: (element: ArrowLikeElement) => {
x: number;
y: number;
width: number;
height: number;
};
export declare const drawArrowElement: (context: CanvasRenderingContext2D, element: ArrowLikeElement, drawHandlesOptions?: {
drawState: boolean;
dotRadius: number;
}) => void;
export declare const getMousePositionOnArrowHandle: (mouseX: number, mouseY: number, element: ArrowLikeElement, dotRadius: number) => number | null;
export declare const isMouseOnArrow: (mouseX: number, mouseY: number, element: ArrowLikeElement, tolerance?: number) => boolean;
export declare const resizeArrowElement: (element: ArrowLikeElement, handleIndex: number, newMouseX: number, newMouseY: number, clipArea?: CropBoxBounds) => {
startX: number;
startY: number;
endX: number;
endY: number;
x: number;
y: number;
width: number;
height: number;
x2: number;
y2: number;
arrowType: "line";
theta: number;
slashLength: number;
borderWidth: number;
color: string;
id: string;
drawNode?: boolean | undefined;
dotRadius?: number | undefined;
} | {
startX: number;
startY: number;
endX: number;
endY: number;
x: number;
y: number;
width: number;
height: number;
x2: number;
y2: number;
arrowType: "filled";
borderWidth: number;
color: string;
id: string;
drawNode?: boolean | undefined;
dotRadius?: number | undefined;
};
export declare const moveArrowElement: (element: ArrowLikeElement, deltaX: number, deltaY: number, clipArea: CropBoxBounds) => {
startX: number;
startY: number;
endX: number;
endY: number;
x: number;
y: number;
width: number;
height: number;
x2: number;
y2: number;
arrowType: "line";
theta: number;
slashLength: number;
borderWidth: number;
color: string;
id: string;
drawNode?: boolean | undefined;
dotRadius?: number | undefined;
} | {
startX: number;
startY: number;
endX: number;
endY: number;
x: number;
y: number;
width: number;
height: number;
x2: number;
y2: number;
arrowType: "filled";
borderWidth: number;
color: string;
id: string;
drawNode?: boolean | undefined;
dotRadius?: number | undefined;
};
export declare const updateArrowDrawNodeState: (element: ArrowLikeElement, drawState: boolean, dotRadius: number) => {
drawNode: boolean;
dotRadius: number;
arrowType: "line";
startX: number;
startY: number;
endX: number;
endY: number;
x2: number;
y2: number;
theta: number;
slashLength: number;
width: number;
height: number;
borderWidth: number;
color: string;
id: string;
x: number;
y: number;
} | {
drawNode: boolean;
dotRadius: number;
arrowType: "filled";
startX: number;
startY: number;
endX: number;
endY: number;
x2: number;
y2: number;
width: number;
height: number;
borderWidth: number;
color: string;
id: string;
x: number;
y: number;
};
export {};