ng-devui
Version:
DevUI components based on Angular
104 lines (103 loc) • 4.9 kB
TypeScript
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { Subject, Subscription } from 'rxjs';
import { DragDropService } from '../services/drag-drop.service';
import { PreserveNextEventEmitter } from './../shared/preserve-next-event-emitter';
import { DragPreviewDirective } from './drag-preview.directive';
import * as i0 from "@angular/core";
export declare class DraggableDirective implements OnInit, AfterViewInit, OnDestroy {
el: ElementRef;
private renderer;
private dragDropService;
private ngZone;
dragPreviewDirective: DragPreviewDirective;
private doc;
draggable: boolean;
/**
* The data that will be available to the droppable directive on its `dropEvent()` 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>;
get disabled(): boolean;
set disabled(value: 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>;
document: Document;
constructor(el: ElementRef, renderer: Renderer2, dragDropService: DragDropService, ngZone: NgZone, dragPreviewDirective: DragPreviewDirective, doc: any);
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;
static ɵfac: i0.ɵɵFactoryDeclaration<DraggableDirective, [null, null, null, null, { optional: true; self: true; }, null]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableDirective, "[dDraggable]", never, { "dragData": { "alias": "dragData"; "required": false; }; "dragHandle": { "alias": "dragHandle"; "required": false; }; "dragEffect": { "alias": "dragEffect"; "required": false; }; "dragScope": { "alias": "dragScope"; "required": false; }; "dragHandleClass": { "alias": "dragHandleClass"; "required": false; }; "dragOverClass": { "alias": "dragOverClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enableDragFollow": { "alias": "enableDragFollow"; "required": false; }; "dragFollowOptions": { "alias": "dragFollowOptions"; "required": false; }; "originPlaceholder": { "alias": "originPlaceholder"; "required": false; }; "dragIdentity": { "alias": "dragIdentity"; "required": false; }; "dragItemParentName": { "alias": "dragItemParentName"; "required": false; }; "dragItemChildrenName": { "alias": "dragItemChildrenName"; "required": false; }; }, { "dragStartEvent": "dragStartEvent"; "dragEvent": "dragEvent"; "dragEndEvent": "dragEndEvent"; "dropEndEvent": "dropEndEvent"; }, never, never, false, never>;
}