UNPKG

es-drager

Version:

A draggable, resizable, rotatable component based on vue3

61 lines (60 loc) 2.04 kB
import { DragData } from './drager'; export type MouseTouchEvent = MouseEvent | TouchEvent; /** * 统一处理拖拽事件 * @param onMousemove 鼠标移动处理函数 */ export declare function setupMove(onMousemove: (e: MouseTouchEvent) => void, onMouseupCb?: (e: MouseTouchEvent) => void): void; export declare function getXY(e: MouseTouchEvent): { clientX: number; clientY: number; }; export declare const withUnit: (val?: number | string) => string; export declare const resizableMap: { n: string; s: string; e: string; w: string; ne: string; nw: string; se: string; sw: string; }; export declare const cursorDirectionArray: string[]; export declare const getCursor: (rotateAngle: number, d: string) => string; export declare const getDotList: (angle?: number, resizeList?: string[]) => any[]; export declare const degToRadian: (deg: number) => number; export declare const getLength: (x: number, y: number) => number; export declare const getNewStyle: (type: string, rect: any, deltaW: number, deltaH: number, ratio: number | undefined, minWidth: number, minHeight: number) => { position: { centerX: any; centerY: any; }; size: { width: number; height: number; }; }; export declare const centerToTL: ({ centerX, centerY, width, height, angle }: any) => DragData; export declare const formatData: (data: DragData, centerX: number, centerY: number) => { width: number; height: number; left: number; top: number; }; /** * @param diff 移动的距离 * @param grid 网格大小 */ export declare function calcGrid(diff: number, grid: number): number; /** * 检查两个元素是否发生碰撞 * @param element1 拖拽元素 * @param element2 碰撞对象 * @returns */ export declare function checkCollision(element1: Element, element2: Element, scaleRatio: number): boolean; /** * 获取缩放后得Rect */ export declare const getBoundingClientRectByScale: (el: HTMLElement | Element, scaleRatio: number) => DOMRect;