UNPKG

2.62 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';
5import * as i0 from "@angular/core";
6export interface DropEvent<T = any> {
7 dropData: T;
8 /**
9 * ClientX value of the mouse location where the drop occurred
10 */
11 clientX: number;
12 /**
13 * ClientY value of the mouse location where the drop occurred
14 */
15 clientY: number;
16 /**
17 * The target of the event where the drop occurred
18 */
19 target: EventTarget;
20}
21export interface DragEvent<T = any> extends DropEvent<T> {
22}
23export interface ValidateDropParams extends DropEvent {
24}
25export declare type ValidateDrop = (params: ValidateDropParams) => boolean;
26export declare class DroppableDirective implements OnInit, OnDestroy {
27 private element;
28 private draggableHelper;
29 private zone;
30 private renderer;
31 private scrollContainer;
32 /**
33 * Added to the element when an element is dragged over it
34 */
35 dragOverClass: string;
36 /**
37 * Added to the element any time a draggable element is being dragged
38 */
39 dragActiveClass: string;
40 /**
41 * Allow custom behaviour to control when the element is dropped
42 */
43 validateDrop: ValidateDrop;
44 /**
45 * Called when a draggable element starts overlapping the element
46 */
47 dragEnter: EventEmitter<DropEvent<any>>;
48 /**
49 * Called when a draggable element stops overlapping the element
50 */
51 dragLeave: EventEmitter<DropEvent<any>>;
52 /**
53 * Called when a draggable element is moved over the element
54 */
55 dragOver: EventEmitter<DropEvent<any>>;
56 /**
57 * Called when a draggable element is dropped on this element
58 */
59 drop: EventEmitter<DropEvent<any>>;
60 currentDragSubscription: Subscription;
61 constructor(element: ElementRef<HTMLElement>, draggableHelper: DraggableHelper, zone: NgZone, renderer: Renderer2, scrollContainer: DraggableScrollContainerDirective);
62 ngOnInit(): void;
63 ngOnDestroy(): void;
64 static ɵfac: i0.ɵɵFactoryDeclaration<DroppableDirective, [null, null, null, null, { optional: true; }]>;
65 static ɵdir: i0.ɵɵDirectiveDeclaration<DroppableDirective, "[mwlDroppable]", never, { "dragOverClass": "dragOverClass"; "dragActiveClass": "dragActiveClass"; "validateDrop": "validateDrop"; }, { "dragEnter": "dragEnter"; "dragLeave": "dragLeave"; "dragOver": "dragOver"; "drop": "drop"; }, never, never, false, never>;
66}