js-web-screen-shot
Version:
web端自定义截屏插件(原生JS版)
55 lines (54 loc) • 1.31 kB
TypeScript
import type { CropBoxBorderOption, CropBoxBorderStyleIndex } from "../../../lib/constants/cropBoxOptions";
export type SelectionBorderNode = {
x: number;
y: number;
width: number;
height: number;
index: CropBoxBorderStyleIndex;
option: CropBoxBorderOption;
};
export type BorderContext = {
startX: number;
startY: number;
width: number;
height: number;
endX: number;
endY: number;
centerX: number;
centerY: number;
halfBorderSize: number;
innerWidth: number;
innerHeight: number;
borderSize: number;
};
export type BorderTemplate = {
option: CropBoxBorderOption;
index: CropBoxBorderStyleIndex;
x: (ctx: BorderContext) => number;
y: (ctx: BorderContext) => number;
width: (ctx: BorderContext) => number;
height: (ctx: BorderContext) => number;
};
export type DragStartPosition = {
moveStartX: number;
moveStartY: number;
};
export type CropBoxBounds = {
startX: number;
startY: number;
width: number;
height: number;
};
export type CropBoxResizeState = {
tempStartX: number;
tempStartY: number;
tempWidth: number;
tempHeight: number;
};
export type CropBoxRenderBounds = CropBoxBounds;
export type CropBoxPreset = {
x: number;
y: number;
w: number;
h: number;
};