{"version":3,"file":"primeng-dragdrop.umd.js","sources":["../../src/app/components/dragdrop/dragdrop.ts","../../src/app/components/dragdrop/primeng-dragdrop.ts"],"sourcesContent":["import {NgModule,Directive,OnDestroy,AfterViewInit,ElementRef,HostListener,Input,Output,EventEmitter,NgZone} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DomHandler} from 'primeng/dom';\n\n@Directive({\n    selector: '[pDraggable]'\n})\nexport class Draggable implements AfterViewInit, OnDestroy {\n    \n    @Input('pDraggable') scope: string;\n        \n    @Input() dragEffect: string;\n    \n    @Input() dragHandle: string;\n    \n    @Output() onDragStart: EventEmitter<any> = new EventEmitter();\n    \n    @Output() onDragEnd: EventEmitter<any> = new EventEmitter();\n    \n    @Output() onDrag: EventEmitter<any> = new EventEmitter();\n    \n    handle: any;\n\n    dragListener: any;\n\n    mouseDownListener: any;\n\n    mouseUpListener: any;\n\n    _pDraggableDisabled: boolean;\n        \n    constructor(public el: ElementRef, public zone: NgZone) {}\n\n    @Input() get pDraggableDisabled(): boolean {\n        return this._pDraggableDisabled;\n    }\n    set pDraggableDisabled(_pDraggableDisabled:boolean) {\n        this._pDraggableDisabled = _pDraggableDisabled;\n        \n        if (this._pDraggableDisabled) {\n            this.unbindMouseListeners();\n        }\n        else {\n            this.el.nativeElement.draggable = true;\n            this.bindMouseListeners();\n        }\n    }\n    \n    ngAfterViewInit() {\n        if (!this.pDraggableDisabled) {\n            this.el.nativeElement.draggable = true;\n            this.bindMouseListeners();\n        }\n    }\n\n    bindDragListener() {\n        if (!this.dragListener) {\n            this.zone.runOutsideAngular(() => {\n                this.dragListener = this.drag.bind(this);\n                this.el.nativeElement.addEventListener('drag', this.dragListener);\n            });\n        }\n    }\n\n    unbindDragListener() {\n        if (this.dragListener) {\n            this.zone.runOutsideAngular(() => {\n                this.el.nativeElement.removeEventListener('drag', this.dragListener);\n                this.dragListener = null;\n            });\n        }\n    }\n\n    bindMouseListeners() {\n        if (!this.mouseDownListener && !this.mouseUpListener) {\n            this.zone.runOutsideAngular(() => {\n                this.mouseDownListener = this.mousedown.bind(this);\n                this.mouseUpListener = this.mouseup.bind(this);\n                this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n                this.el.nativeElement.addEventListener('mouseup', this.mouseUpListener);\n            });\n        }\n    }\n\n    unbindMouseListeners() {\n        if (this.mouseDownListener && this.mouseUpListener) {\n            this.zone.runOutsideAngular(() => {\n                this.el.nativeElement.removeEventListener('mousedown', this.mouseDownListener);\n                this.el.nativeElement.removeEventListener('mouseup', this.mouseUpListener);\n                this.mouseDownListener = null;\n                this.mouseUpListener = null;\n            });\n        }\n    }\n\n    drag(event) {\n        this.onDrag.emit(event);\n    }\n\n    @HostListener('dragstart', ['$event']) \n    dragStart(event) {\n        if (this.allowDrag() && !this.pDraggableDisabled) {\n            if (this.dragEffect) {\n                event.dataTransfer.effectAllowed = this.dragEffect;\n            }\n            event.dataTransfer.setData('text', this.scope);\n            \n            this.onDragStart.emit(event);\n\n            this.bindDragListener();\n        }\n        else {\n            event.preventDefault();\n        }\n    }\n\n    @HostListener('dragend', ['$event']) \n    dragEnd(event) {\n        this.onDragEnd.emit(event);\n        this.unbindDragListener();\n    }\n    \n    mousedown(event) {\n        this.handle = event.target;\n    }\n\n    mouseup(event) {\n        this.handle = null;\n    }\n    \n    allowDrag() : boolean {\n        if (this.dragHandle && this.handle)\n            return DomHandler.matches(this.handle, this.dragHandle);\n        else\n            return true;\n    }\n\n    ngOnDestroy() {\n        this.unbindDragListener();\n        this.unbindMouseListeners();\n    }\n    \n}\n\n@Directive({\n    selector: '[pDroppable]'\n})\nexport class Droppable implements AfterViewInit, OnDestroy {\n    \n    @Input('pDroppable') scope: string|string[];\n\n    @Input() pDroppableDisabled: boolean;\n        \n    @Input() dropEffect: string;\n        \n    @Output() onDragEnter: EventEmitter<any> = new EventEmitter();\n    \n    @Output() onDragLeave: EventEmitter<any> = new EventEmitter();\n    \n    @Output() onDrop: EventEmitter<any> = new EventEmitter();\n    \n    constructor(public el: ElementRef, public zone: NgZone) {}\n\n    dragOverListener: any;\n\n    ngAfterViewInit() {\n        if (!this.pDroppableDisabled) {\n            this.bindDragOverListener();\n        }\n    }\n\n    bindDragOverListener() {\n        if (!this.dragOverListener) {\n            this.zone.runOutsideAngular(() => {\n                this.dragOverListener = this.dragOver.bind(this);\n                this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n            });\n        }\n    }\n\n    unbindDragOverListener() {\n        if (this.dragOverListener) {\n            this.zone.runOutsideAngular(() => {\n                this.el.nativeElement.removeEventListener('dragover', this.dragOverListener);\n                this.dragOverListener = null;\n            });\n        }\n    }\n\n    dragOver(event) {\n        event.preventDefault();\n    }\n            \n    @HostListener('drop', ['$event'])\n    drop(event) {\n        if (this.allowDrop(event)) {\n            DomHandler.removeClass(this.el.nativeElement, 'p-draggable-enter');\n            event.preventDefault();\n            this.onDrop.emit(event);\n        }\n    }\n    \n    @HostListener('dragenter', ['$event']) \n    dragEnter(event) {\n        event.preventDefault();\n        \n        if (this.dropEffect) {\n            event.dataTransfer.dropEffect = this.dropEffect;\n        }\n            \n        DomHandler.addClass(this.el.nativeElement, 'p-draggable-enter');\n        this.onDragEnter.emit(event);\n    }\n    \n    @HostListener('dragleave', ['$event']) \n    dragLeave(event) {\n        event.preventDefault();\n                \n        DomHandler.removeClass(this.el.nativeElement, 'p-draggable-enter');\n        this.onDragLeave.emit(event);\n    }\n        \n    allowDrop(event): boolean {\n        let dragScope = event.dataTransfer.getData('text');\n        if (typeof (this.scope) == \"string\" && dragScope == this.scope) {\n            return true;\n        }\n        else if (this.scope instanceof Array) {\n            for(let j = 0; j < this.scope.length; j++) {\n                if (dragScope == this.scope[j]) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n\n    ngOnDestroy() {\n        this.unbindDragOverListener();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [Draggable,Droppable],\n    declarations: [Draggable,Droppable]\n})\nexport class DragDropModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","DomHandler","Directive","Input","Output","HostListener","CommonModule","NgModule"],"mappings":"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"}