office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
53 lines (52 loc) • 1.84 kB
TypeScript
import { EventGroup } from '../../Utilities';
import { IDragDropHelper, IDragDropOptions } from './interfaces';
import { ISelection } from '../../utilities/selection/interfaces';
export interface IDragDropHelperParams {
selection: ISelection;
minimumPixelsForDrag?: number;
}
export declare class DragDropHelper implements IDragDropHelper {
private _dragEnterCounts;
private _isDragging;
private _dragData;
private _selection;
private _activeTargets;
private _events;
private _lastId;
constructor(params: IDragDropHelperParams);
dispose(): void;
subscribe(root: HTMLElement, events: EventGroup, dragDropOptions: IDragDropOptions): {
key: string;
dispose(): void;
};
unsubscribe(root: HTMLElement, key: string): void;
private _onDragEnd(target, event);
/**
* clear drag data when mouse up on body
*/
private _onMouseUp(event);
/**
* clear drag data when mouse up outside of the document
*/
private _onDocumentMouseUp(event);
/**
* when mouse move over a new drop target while dragging some items,
* fire dragleave on the old target and fire dragenter to the new target
* The target will handle style change on dragenter and dragleave events.
*/
private _onMouseMove(target, event);
/**
* when mouse leave a target while dragging some items, fire dragleave to the target
*/
private _onMouseLeave(target, event);
/**
* when mouse down on a draggable item, we start to track dragdata.
*/
private _onMouseDown(target, event);
/**
* determine whether the child target is a descendant of the parent
*/
private _isChild(parent, child);
private _isDraggable(target);
private _isDroppable(target);
}