UNPKG

js-web-screen-shot

Version:

web端自定义截屏插件(原生JS版)

32 lines (31 loc) 1.48 kB
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; };