UNPKG

2.07 kBTypeScriptView Raw
1import { OnInit, ElementRef, OnDestroy, EventEmitter, NgZone, Renderer2 } from '@angular/core';
2import { Subscription } from 'rxjs';
3import { DraggableHelper } from './draggable-helper.provider';
4import { DraggableScrollContainerDirective } from './draggable-scroll-container.directive';
5export interface DropEvent<T = any> {
6 dropData: T;
7}
8export interface ValidateDropParams {
9 /**
10 * ClientX value of the mouse location where the drop occurred
11 */
12 clientX: number;
13 /**
14 * ClientY value of the mouse location where the drop occurred
15 */
16 clientY: number;
17 /**
18 * The target of the event where the drop occurred
19 */
20 target: EventTarget;
21}
22export declare type ValidateDrop = (params: ValidateDropParams) => boolean;
23export declare class DroppableDirective implements OnInit, OnDestroy {
24 private element;
25 private draggableHelper;
26 private zone;
27 private renderer;
28 private scrollContainer;
29 /**
30 * Added to the element when an element is dragged over it
31 */
32 dragOverClass: string;
33 /**
34 * Added to the element any time a draggable element is being dragged
35 */
36 dragActiveClass: string;
37 /**
38 * Allow custom behaviour to control when the element is dropped
39 */
40 validateDrop: ValidateDrop;
41 /**
42 * Called when a draggable element starts overlapping the element
43 */
44 dragEnter: EventEmitter<DropEvent<any>>;
45 /**
46 * Called when a draggable element stops overlapping the element
47 */
48 dragLeave: EventEmitter<DropEvent<any>>;
49 /**
50 * Called when a draggable element is moved over the element
51 */
52 dragOver: EventEmitter<DropEvent<any>>;
53 /**
54 * Called when a draggable element is dropped on this element
55 */
56 drop: EventEmitter<DropEvent<any>>;
57 currentDragSubscription: Subscription;
58 constructor(element: ElementRef<HTMLElement>, draggableHelper: DraggableHelper, zone: NgZone, renderer: Renderer2, scrollContainer: DraggableScrollContainerDirective);
59 ngOnInit(): void;
60 ngOnDestroy(): void;
61}