vue3-draggable-resizable
Version:
[Vue3 Component] 拖拽缩放并具有自动吸附对齐、参考线等功能
60 lines (59 loc) • 2.94 kB
TypeScript
import { Ref } from 'vue';
import { ContainerProvider, ResizingHandle } from './types';
declare type HandleEvent = MouseEvent | TouchEvent;
export declare function useState<T>(initialState: T): [Ref<T>, (value: T) => T];
export declare function initState(props: any, emit: any): {
id: string;
width: Ref<number>;
height: Ref<number>;
top: Ref<number>;
left: Ref<number>;
enable: Ref<boolean>;
dragging: Ref<boolean>;
resizing: Ref<boolean>;
resizingHandle: Ref<ResizingHandle>;
resizingMaxHeight: Ref<number>;
resizingMaxWidth: Ref<number>;
resizingMinWidth: Ref<number>;
resizingMinHeight: Ref<number>;
aspectRatio: import("vue").ComputedRef<number>;
setEnable: (value: boolean) => boolean;
setDragging: (value: boolean) => boolean;
setResizing: (value: boolean) => boolean;
setResizingHandle: (value: ResizingHandle) => ResizingHandle;
setResizingMaxHeight: (value: number) => number;
setResizingMaxWidth: (value: number) => number;
setResizingMinWidth: (value: number) => number;
setResizingMinHeight: (value: number) => number;
setWidth: (val: number) => number;
setHeight: (val: number) => number;
setTop: (val: number) => number;
setLeft: (val: number) => number;
};
export declare function initParent(containerRef: Ref<HTMLElement | undefined>): {
parentWidth: Ref<number>;
parentHeight: Ref<number>;
};
export declare function initLimitSizeAndMethods(props: any, parentSize: ReturnType<typeof initParent>, containerProps: ReturnType<typeof initState>): {
setWidth(val: number): number;
setHeight(val: number): number;
setTop(val: number): number;
setLeft(val: number): number;
minWidth: import("vue").ComputedRef<number>;
minHeight: import("vue").ComputedRef<number>;
maxWidth: import("vue").ComputedRef<number>;
maxHeight: import("vue").ComputedRef<number>;
minLeft: import("vue").ComputedRef<number>;
minTop: import("vue").ComputedRef<number>;
maxLeft: import("vue").ComputedRef<number>;
maxTop: import("vue").ComputedRef<number>;
};
export declare function initDraggableContainer(containerRef: Ref<HTMLElement | undefined>, containerProps: ReturnType<typeof initState>, limitProps: ReturnType<typeof initLimitSizeAndMethods>, draggable: Ref<boolean>, emit: any, containerProvider: ContainerProvider | null, parentSize: ReturnType<typeof initParent>): {
containerRef: Ref<HTMLElement>;
};
export declare function initResizeHandle(containerProps: ReturnType<typeof initState>, limitProps: ReturnType<typeof initLimitSizeAndMethods>, parentSize: ReturnType<typeof initParent>, props: any, emit: any): {
handlesFiltered: import("vue").ComputedRef<ResizingHandle[]>;
resizeHandleDown: (e: HandleEvent, handleType: ResizingHandle) => void;
};
export declare function watchProps(props: any, limits: ReturnType<typeof initLimitSizeAndMethods>): void;
export {};