afdi-ambition-fbim-fe
Version:
3D组态BIM编辑器
94 lines (93 loc) • 2.36 kB
TypeScript
import { Ref } from 'vue';
type PositionKeys = 'top' | 'bottom' | 'left' | 'right';
type ResizePosition = PositionKeys | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | '';
interface ProcessedDOMRect {
top: number;
right: number;
bottom: number;
left: number;
width: number;
height: number;
}
interface SizeUnit {
width: string;
height: string;
}
interface PositionUnit {
left: string;
top: string;
right: string;
bottom: string;
}
export interface Size {
width: number;
height: number;
}
interface Point {
x: number;
y: number;
}
type CropAreaStylesType = SizeUnit & PositionUnit;
export type RectSizePosition = Point & Size;
export declare function useCropState(): {
cropAreaRef: Ref<HTMLCanvasElement | null>;
cropWrapperRef: Ref<HTMLCanvasElement | null>;
cropAreaStyles: {
width: string;
height: string;
left: string;
top: string;
right: string;
bottom: string;
};
resizePosition: import('vue').Reactive<ResizePosition[]>;
positionType: Ref<ResizePosition>;
maxSize: {
width: number;
height: number;
};
isMove: Ref<boolean>;
originPosition: {
x: number;
y: number;
};
moveStartPosition: {
x: number;
y: number;
};
rectSizePosition: {
x: number;
y: number;
width: number;
height: number;
};
wrapperInfo: {
top: number;
right: number;
bottom: number;
left: number;
width: number;
height: number;
};
};
export declare function useCropMethod(props: {
cropAreaRef: Ref<HTMLCanvasElement | null>;
cropWrapperRef: Ref<HTMLCanvasElement | null>;
positionType: Ref<ResizePosition>;
maxSize: Size;
cropAreaStyles: CropAreaStylesType;
isMove: Ref<boolean>;
moveStartPosition: Point;
originPosition: Point;
rectSizePosition: RectSizePosition;
wrapperInfo: ProcessedDOMRect;
cropScale: Ref<number>;
}): {
onMousemove: (event: MouseEvent) => void;
onMouseup: () => void;
onAreaMousedown: (event: MouseEvent) => void;
onAreaMouseup: () => void;
onMousedown: (event: MouseEvent, position: ResizePosition) => void;
processDOMRect: (rect: DOMRect) => ProcessedDOMRect;
};
export {};