angular-draggable-droppable
Version:
Drag and drop for angular 15.0+
67 lines (66 loc) • 2.62 kB
TypeScript
import { OnInit, ElementRef, OnDestroy, EventEmitter, NgZone, Renderer2 } from '@angular/core';
import { Subscription } from 'rxjs';
import { DraggableHelper } from './draggable-helper.provider';
import { DraggableScrollContainerDirective } from './draggable-scroll-container.directive';
import * as i0 from "@angular/core";
export interface DropEvent<T = any> {
dropData: T;
/**
* ClientX value of the mouse location where the drop occurred
*/
clientX: number;
/**
* ClientY value of the mouse location where the drop occurred
*/
clientY: number;
/**
* The target of the event where the drop occurred
*/
target: EventTarget;
}
export interface DragEvent<T = any> extends DropEvent<T> {
}
export interface ValidateDropParams extends DropEvent {
}
export declare type ValidateDrop = (params: ValidateDropParams) => boolean;
export declare class DroppableDirective implements OnInit, OnDestroy {
private element;
private draggableHelper;
private zone;
private renderer;
private scrollContainer;
/**
* Added to the element when an element is dragged over it
*/
dragOverClass: string;
/**
* Added to the element any time a draggable element is being dragged
*/
dragActiveClass: string;
/**
* Allow custom behaviour to control when the element is dropped
*/
validateDrop: ValidateDrop;
/**
* Called when a draggable element starts overlapping the element
*/
dragEnter: EventEmitter<DropEvent<any>>;
/**
* Called when a draggable element stops overlapping the element
*/
dragLeave: EventEmitter<DropEvent<any>>;
/**
* Called when a draggable element is moved over the element
*/
dragOver: EventEmitter<DropEvent<any>>;
/**
* Called when a draggable element is dropped on this element
*/
drop: EventEmitter<DropEvent<any>>;
currentDragSubscription: Subscription;
constructor(element: ElementRef<HTMLElement>, draggableHelper: DraggableHelper, zone: NgZone, renderer: Renderer2, scrollContainer: DraggableScrollContainerDirective);
ngOnInit(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DroppableDirective, [null, null, null, null, { optional: true; }]>;
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>;
}