ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
54 lines (53 loc) • 2.26 kB
TypeScript
import type { NamedBean } from '../context/bean';
import { BeanStub } from '../context/beanStub';
/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,
* second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */
export declare class DragService extends BeanStub implements NamedBean {
beanName: "dragSvc";
private currentDragParams;
dragging: boolean;
startTarget: EventTarget | null;
private mouseStartEvent;
private touchLastTime;
private touchStart;
private dragEndFunctions;
private readonly dragSources;
destroy(): void;
private removeListener;
removeDragSource(params: DragListenerParams): void;
addDragSource(params: DragListenerParams): void;
private onTouchStart;
private onMouseDown;
private addTemporaryEvents;
private isEventNearStartEvent;
private getFirstActiveTouch;
private onCommonMove;
private onTouchMove;
private onMouseMove;
private shouldPreventMouseEvent;
onTouchUp(touchEvent: TouchEvent, el: Element): void;
onMouseUp(mouseEvent: MouseEvent, el: Element): void;
onUpCommon(eventOrTouch: MouseEvent | Touch, el: Element): void;
cancelDrag(el: Element): void;
private resetDragProperties;
}
export interface DragListenerParams {
/** After how many pixels of dragging should the drag operation start. Default is 4px. */
dragStartPixels?: number;
/** Dom element to add the drag handling to */
eElement: Element;
/** Some places may wish to ignore certain events, eg range selection ignores shift clicks */
skipMouseEvent?: (mouseEvent: MouseEvent) => boolean;
/** Callback for drag starting */
onDragStart: (mouseEvent: MouseEvent | Touch) => void;
/** Callback for drag stopping */
onDragStop: (mouseEvent: MouseEvent | Touch) => void;
/** Callback for drag cancel */
onDragCancel?: () => void;
/** Callback for mouse move while dragging */
onDragging: (mouseEvent: MouseEvent | Touch) => void;
/** Include touch events for this Drag Listener */
includeTouch?: boolean;
/** If `true`, it will stop the propagation of Touch Events */
stopPropagationForTouch?: boolean;
}