@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
98 lines (97 loc) • 3.61 kB
TypeScript
import { Subscription, Subject } from 'rxjs';
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { DragDropService } from '../services/drag-drop.service';
import { PreserveNextEventEmitter } from './../shared/preserve-next-event-emitter';
import { DragPreviewDirective } from './drag-preview.directive';
export declare class DraggableDirective implements OnInit, AfterViewInit, OnDestroy {
el: ElementRef;
private renderer;
private dragDropService;
private ngZone;
dragPreviewDirective: DragPreviewDirective;
draggable: boolean;
/**
* The data that will be available to the droppable directive on its `onDrop()` event.
*/
dragData: any;
/**
* The selector that defines the drag Handle. If defined drag will only be allowed if dragged from the selector element.
*/
dragHandle: string;
/**
* Currently not used
*/
dragEffect: string;
/**
* Defines compatible drag drop pairs. Values must match both in draggable and droppable.dropScope.
*/
dragScope: string | Array<string>;
dragHandleClass: string;
/**
* CSS class applied on the draggable that is applied when the item is being dragged.
*/
dragOverClass: string;
/**
* Event fired when Drag is started
*/
dragStartEvent: EventEmitter<any>;
/**
* @deprecated
* Event fired while the element is being dragged
* 为了性能优化,该函数废弃,请用(drag)自行监听, 如果不需要angular脏检测则最好用runOutsideAngular的addEventListener监听以获得好的性能
*/
dragEvent: PreserveNextEventEmitter<any>;
/**
* Event fired when dragged ends
*/
dragEndEvent: EventEmitter<any>;
/**
* Keeps track of mouse over element that is used to determine drag handles
*/
private mouseOverElement;
dropEndEvent: PreserveNextEventEmitter<any>;
disabled: boolean;
private _disabled;
enableDragFollow: boolean;
dragFollowOptions: {
appendToBody?: boolean;
};
originPlaceholder: {
show?: boolean;
tag?: string;
style?: {
[cssProperties: string]: string;
};
text?: string;
removeDelay?: number;
};
dragIdentity: any;
dragItemParentName: string;
dragItemChildrenName: string;
dragsSub: Subscription;
destroyDragEndSub: Subscription;
isDestroyed: boolean;
private delayRemoveOriginPlaceholderTimer;
batchDraggable: any;
private dragOriginPlaceholder;
private dragOriginPlaceholderNextSibling;
dragElShowHideEvent: Subject<boolean>;
beforeDragStartEvent: Subject<boolean>;
constructor(el: ElementRef, renderer: Renderer2, dragDropService: DragDropService, ngZone: NgZone, dragPreviewDirective: DragPreviewDirective);
ngOnInit(): void;
dropSubscription(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
dragStart(e: any): void;
dragEnd(e: any): void;
mouseover(e: any): void;
private allowDrag;
private applyDragHandleClass;
private getDragHandleElement;
private mousePosition;
insertOriginPlaceholder: (directShow?: boolean, updateService?: boolean) => void;
removeOriginPlaceholder: (updateService?: boolean) => void;
delayRemoveOriginPlaceholder: (updateService?: boolean) => void;
findNextSibling(currentNextSibling: any): any;
private checkAndGetViewPointChange;
}