UNPKG

primeng

Version:

PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB

1 lines 17.8 kB
{"version":3,"file":"primeng-dragdrop.mjs","sources":["../../src/dragdrop/dragdrop.ts","../../src/dragdrop/primeng-dragdrop.ts"],"sourcesContent":["import { AfterViewInit, booleanAttribute, Directive, ElementRef, EventEmitter, HostListener, Input, NgModule, NgZone, OnDestroy, Output, Renderer2 } from '@angular/core';\nimport { addClass, removeClass } from '@primeuix/utils';\nimport { DomHandler } from 'primeng/dom';\nimport { VoidListener } from 'primeng/ts-helpers';\n\n/**\n * pDraggable directive apply draggable behavior to any element.\n * @group Components\n */\n@Directive({\n selector: '[pDraggable]',\n standalone: true\n})\nexport class Draggable implements AfterViewInit, OnDestroy {\n @Input('pDraggable') scope: string | undefined;\n /**\n * Defines the cursor style.\n * @group Props\n */\n @Input() dragEffect: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized' | undefined;\n /**\n * Selector to define the drag handle, by default anywhere on the target element is a drag handle to start dragging.\n * @group Props\n */\n @Input() dragHandle: string | undefined;\n /**\n * Callback to invoke when drag begins.\n * @param {DragEvent} event - Drag event.\n * @group Emits\n */\n @Output() onDragStart: EventEmitter<DragEvent> = new EventEmitter();\n /**\n * Callback to invoke when drag ends.\n * @param {DragEvent} event - Drag event.\n * @group Emits\n */\n @Output() onDragEnd: EventEmitter<DragEvent> = new EventEmitter();\n /**\n * Callback to invoke on dragging.\n * @param {DragEvent} event - Drag event.\n * @group Emits\n */\n @Output() onDrag: EventEmitter<DragEvent> = new EventEmitter();\n\n handle: any;\n\n dragListener: VoidListener;\n\n mouseDownListener: VoidListener;\n\n mouseUpListener: VoidListener;\n\n _pDraggableDisabled: boolean = false;\n\n constructor(\n public el: ElementRef,\n public zone: NgZone,\n private renderer: Renderer2\n ) {}\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 } 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.renderer.listen(this.el.nativeElement, 'drag', this.drag.bind(this));\n });\n }\n }\n\n unbindDragListener() {\n if (this.dragListener) {\n this.zone.runOutsideAngular(() => {\n this.dragListener && 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.renderer.listen(this.el.nativeElement, 'mousedown', this.mousedown.bind(this));\n this.mouseUpListener = this.renderer.listen(this.el.nativeElement, 'mouseup', this.mouseup.bind(this));\n });\n }\n }\n\n unbindMouseListeners() {\n if (this.mouseDownListener && this.mouseUpListener) {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener && this.mouseDownListener();\n this.mouseUpListener && this.mouseUpListener();\n this.mouseDownListener = null;\n this.mouseUpListener = null;\n });\n }\n }\n\n drag(event: DragEvent) {\n this.onDrag.emit(event);\n }\n\n @HostListener('dragstart', ['$event'])\n dragStart(event: DragEvent) {\n if (this.allowDrag() && !this.pDraggableDisabled) {\n if (this.dragEffect) {\n (event.dataTransfer as DataTransfer).effectAllowed = this.dragEffect;\n }\n (event.dataTransfer as DataTransfer).setData('text', this.scope!);\n\n this.onDragStart.emit(event);\n\n this.bindDragListener();\n } else {\n event.preventDefault();\n }\n }\n\n @HostListener('dragend', ['$event'])\n dragEnd(event: DragEvent) {\n this.onDragEnd.emit(event);\n this.unbindDragListener();\n }\n\n mousedown(event: MouseEvent) {\n this.handle = event.target;\n }\n\n mouseup(event: MouseEvent) {\n this.handle = null;\n }\n\n allowDrag(): boolean {\n if (this.dragHandle && this.handle) return DomHandler.matches(this.handle, this.dragHandle);\n else return true;\n }\n\n ngOnDestroy() {\n this.unbindDragListener();\n this.unbindMouseListeners();\n }\n}\n/**\n * pDroppable directive apply droppable behavior to any element.\n * @group Components\n */\n@Directive({\n selector: '[pDroppable]',\n standalone: true\n})\nexport class Droppable implements AfterViewInit, OnDestroy {\n @Input('pDroppable') scope: string | string[] | undefined;\n /**\n * Whether the element is droppable, useful for conditional cases.\n * @group Props\n */\n _pDroppableDisabled: boolean = false;\n\n @Input() get pDroppableDisabled(): boolean {\n return this._pDroppableDisabled;\n }\n set pDroppableDisabled(_pDroppableDisabled: boolean) {\n this._pDroppableDisabled = _pDroppableDisabled;\n\n if (this._pDroppableDisabled) {\n this.unbindDragOverListener();\n } else {\n this.bindDragOverListener();\n }\n }\n /**\n * Defines the cursor style, valid values are none, copy, move, link, copyMove, copyLink, linkMove and all.\n * @group Props\n */\n @Input() dropEffect: 'none' | 'copy' | 'link' | 'move' | undefined;\n /**\n * Callback to invoke when a draggable enters drop area.\n * @group Emits\n */\n @Output() onDragEnter: EventEmitter<DragEvent> = new EventEmitter();\n /**\n * Callback to invoke when a draggable leave drop area.\n * @group Emits\n */\n @Output() onDragLeave: EventEmitter<DragEvent> = new EventEmitter();\n /**\n * Callback to invoke when a draggable is dropped onto drop area.\n * @group Emits\n */\n @Output() onDrop: EventEmitter<DragEvent> = new EventEmitter();\n\n constructor(\n public el: ElementRef,\n public zone: NgZone,\n private renderer: Renderer2\n ) {}\n\n dragOverListener: VoidListener;\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.renderer.listen(this.el.nativeElement, 'dragover', this.dragOver.bind(this));\n });\n }\n }\n\n unbindDragOverListener() {\n if (this.dragOverListener) {\n this.zone.runOutsideAngular(() => {\n this.dragOverListener && this.dragOverListener();\n this.dragOverListener = null;\n });\n }\n }\n\n dragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n @HostListener('drop', ['$event'])\n drop(event: DragEvent) {\n if (this.allowDrop(event)) {\n 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: DragEvent) {\n event.preventDefault();\n\n if (this.dropEffect) {\n (event.dataTransfer as DataTransfer).dropEffect = this.dropEffect;\n }\n\n addClass(this.el.nativeElement, 'p-draggable-enter');\n this.onDragEnter.emit(event);\n }\n\n @HostListener('dragleave', ['$event'])\n dragLeave(event: DragEvent) {\n event.preventDefault();\n\n if (!this.el.nativeElement.contains(event.relatedTarget)) {\n removeClass(this.el.nativeElement, 'p-draggable-enter');\n this.onDragLeave.emit(event);\n }\n }\n\n allowDrop(event: DragEvent): boolean {\n let dragScope = (event.dataTransfer as DataTransfer).getData('text');\n if (typeof this.scope == 'string' && dragScope == this.scope) {\n return true;\n } else if (Array.isArray(this.scope)) {\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: [Draggable, Droppable],\n exports: [Draggable, Droppable]\n})\nexport class DragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}