@nova-ui/bits
Version:
SolarWinds Nova Framework
71 lines (70 loc) • 2.66 kB
TypeScript
import { ElementRef, EventEmitter, NgZone, OnInit } from "@angular/core";
import { DragAndDropService } from "./drag-and-drop.service";
import { IDragEvent } from "./public-api";
import { UtilService } from "../../../services/util.service";
import * as i0 from "@angular/core";
/**
* Directive that provides draggable behavior for an element
*
* __Usage:__
*
* Bind this directive to an element to add a draggable behavior to it.
*
* `<div nuiDraggable>Some content</div>`
*
* Make sure that this zone has some content, because draggable directive doesn't set any height
* to the element. This won't work:
*
* `<div nuiDraggable></div>`
*
* Don't forget to assign some payload (data for transmission from draggable to droppable).
* It can be an `Object`, string or whatever can be converted to a string:
*
* `<div nuiDraggable [payload]="myData"></div>`
*
* To subscribe to an event `dragStart, dragEnd` just transmit an attribute
*
* `<div nuiDroppable (dragStart)="dragStart($event)"></div>`
*
* And `dragStart` method will look like that:
*
* `public dragStart(dropEvent: DragEvent) {
* //dropEvent - HTML 5 drag event (native)
* };`
*
* <example-url>./../examples/index.html#/dragdrop</example-url>
*
* @dynamic
* @ignore
*/
export declare class DraggableDirective implements OnInit {
private elRef;
private zone;
private utilService;
private dragAndDropService;
private document;
private static draggableClass;
private static draggingClass;
private static dragSourceClass;
private static adornerClass;
private static adornerHaloClass;
private static dragsourceOverlayClass;
adornerDragClass: string;
payload: any;
dragStart: EventEmitter<any>;
dragEnd: EventEmitter<any>;
private adorner?;
private dragsourceOverlay?;
private moveDragAdorner;
draggable: boolean;
onDragStart(event: IDragEvent): void;
onDragEnd(event: IDragEvent): void;
constructor(elRef: ElementRef, zone: NgZone, utilService: UtilService, dragAndDropService: DragAndDropService, document: Document);
ngOnInit(): void;
private mouseHook;
private createDragVisuals;
private setImageAndData;
private autoScroll;
static ɵfac: i0.ɵɵFactoryDeclaration<DraggableDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableDirective, "[nuiDraggable]", never, { "adornerDragClass": { "alias": "adornerDragClass"; "required": false; }; "payload": { "alias": "payload"; "required": false; }; }, { "dragStart": "dragStart"; "dragEnd": "dragEnd"; }, never, never, false, never>;
}