export interface DragConfig { container: string | HTMLElement; handler?: string; bounds?: boolean; } export interface Position { x: number; y: number; } export interface DeltaBounds { x: [number, number]; y: [number, number]; } export default class Draggable { private dragConfig; private container$; private handler$; private pos; private delta; private startX; private startY; private deltaBounds; private dragging; constructor(dragConfig: DragConfig); /** * 清除 * * @memberof Draggable */ teardown(): void; private clearDragEvents; /** * 监听容器的鼠标按下事件 * * 此时开始做拖拽的初始化动作。 * * @param {MouseEvent} event */ private onContainerMouseDown; /** * 计算偏移量边界值 * * @memberof Draggable */ private calcBounds; /** * 监听页面的鼠标释放事件,以结束拖拽 */ private onDocumentMouseUp; /** * 获取偏移位置 * * @param {number} pageX * @param {number} pageY * @returns * @memberof Draggable */ private getDelta; /** * 监听页面中的鼠标移动事件 * * @param {*} event * @memberof Draggable */ private onDocumentMouseMove; }