js-web-screen-shot
Version:
web端自定义截屏插件(原生JS版)
32 lines (31 loc) • 1.48 kB
TypeScript
import type { CanvasElementSnapshot } from "../../../lib/type/components/canvas";
import type { CropBoxBounds } from "../../../lib/type/components/cropBox";
import type { CanvasElement, CustomCanvasElement } from "../../../lib/type/editor/canvasElements";
export type CustomCanvasElementInput = CustomCanvasElement | CanvasElementSnapshot;
export type CustomCanvasElementApi = {
addElement: (input: CustomCanvasElementInput) => CanvasElementSnapshot | null;
updateElement: (element: CanvasElement) => void;
removeElement: (id: string) => void;
selectElement: (id: string) => boolean;
getElement: (id: string) => CanvasElementSnapshot | undefined;
getActiveElement: () => CanvasElementSnapshot | undefined;
redraw: () => void;
};
export type CustomCanvasElementAdapter = {
toolId?: number;
toolName?: string;
draw: (element: CustomCanvasElement, context: CanvasRenderingContext2D) => void;
hitTest?: (element: CustomCanvasElement, point: {
x: number;
y: number;
}) => boolean;
move?: (element: CustomCanvasElement, delta: {
x: number;
y: number;
}, bounds: CropBoxBounds) => CustomCanvasElement | void;
resize?: (element: CustomCanvasElement, handleIndex: number, point: {
x: number;
y: number;
}, bounds: CropBoxBounds) => CustomCanvasElement | void;
drawActiveBorder?: (element: CustomCanvasElement, context: CanvasRenderingContext2D, dotRadius: number) => void;
};