{"version":3,"file":"swimlane-ngx-dnd.mjs","sources":["../../../../projects/swimlane/ngx-dnd/src/lib/services/drake-store.service.ts","../../../../projects/swimlane/ngx-dnd/src/lib/directives/ngx-droppable.directive.ts","../../../../projects/swimlane/ngx-dnd/src/lib/directives/ngx-draggable.directive.ts","../../../../projects/swimlane/ngx-dnd/src/lib/directives/ngx-drag-handle.directive.ts","../../../../projects/swimlane/ngx-dnd/src/lib/components/container/container.component.html","../../../../projects/swimlane/ngx-dnd/src/lib/components/container/container.component.ts","../../../../projects/swimlane/ngx-dnd/src/lib/components/item/item.component.html","../../../../projects/swimlane/ngx-dnd/src/lib/components/item/item.component.ts","../../../../projects/swimlane/ngx-dnd/src/lib/ngx-dnd.module.ts","../../../../projects/swimlane/ngx-dnd/src/swimlane-ngx-dnd.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport dragula from '@swimlane/dragula';\nimport { DroppableDirective } from '../directives/ngx-droppable.directive';\nimport { DraggableDirective } from '../directives/ngx-draggable.directive';\n\n/**\n * Central service that handles all events\n *\n * @export\n */\n@Injectable({ providedIn: 'root' })\nexport class DrakeStoreService {\n  private droppableMap = new WeakMap<any, DroppableDirective>();\n  private draggableMap = new WeakMap<any, DraggableDirective>();\n  private dragulaOptions: dragula.DragulaOptions;\n  private drake: dragula.Drake;\n\n  constructor() {\n    this.dragulaOptions = this.createDrakeOptions();\n    this.drake = dragula([], this.dragulaOptions);\n    this.registerEvents();\n  }\n\n  register(droppable: DroppableDirective) {\n    this.droppableMap.set(droppable.container, droppable);\n    this.drake.containers.push(droppable.container);\n  }\n\n  remove(droppable: DroppableDirective) {\n    this.droppableMap.delete(droppable.container);\n    const idx = this.drake.containers.indexOf(droppable.container);\n    if (idx > -1) {\n      this.drake.containers.splice(idx, 1);\n    }\n  }\n\n  registerDraggable(draggable: DraggableDirective) {\n    this.draggableMap.set(draggable.element, draggable);\n  }\n\n  removeDraggable(draggable: DraggableDirective) {\n    this.draggableMap.delete(draggable.element);\n  }\n\n  createDrakeOptions(): dragula.DragulaOptions {\n    const accepts = (el: any, target: any /*, source: any, sibling: any */) => {\n      if (el.contains(target)) {\n        return false;\n      }\n      const elementComponent = this.draggableMap.get(el);\n      const targetComponent = this.droppableMap.get(target);\n      if (elementComponent && targetComponent) {\n        return elementComponent.dropZones.includes(targetComponent.dropZone);\n      }\n      return true;\n    };\n\n    const copy = (_: any, source: any) => {\n      const sourceComponent = this.droppableMap.get(source);\n      if (sourceComponent) {\n        return sourceComponent.copy;\n      }\n      return false;\n    };\n\n    const moves = (el?: any, source?: any, handle?: any, sibling?: any) => {\n      const elementComponent = this.draggableMap.get(el);\n      if (elementComponent) {\n        return elementComponent.moves(source, handle, sibling);\n      }\n      return true;\n    };\n\n    const direction: any = (el: any, target: any, _: any) => {\n      const targetComponent = this.droppableMap.get(target);\n      return targetComponent.direction || 'vertical';\n    };\n\n    return { accepts, copy, moves, revertOnSpill: true, direction };\n  }\n\n  registerEvents(): void {\n    let dragElm: any;\n    let draggedItem: any;\n\n    this.drake.on('drag', (el: any, source: any) => {\n      draggedItem = undefined;\n      dragElm = el;\n\n      if (!el || !source) {\n        return;\n      }\n\n      if (this.draggableMap.has(el)) {\n        const elementComponent = this.draggableMap.get(el);\n        draggedItem = elementComponent.model;\n\n        elementComponent.drag.emit({\n          type: 'drag',\n          el,\n          source,\n          value: draggedItem\n        });\n      }\n\n      if (this.droppableMap.has(source)) {\n        const sourceComponent = this.droppableMap.get(source);\n        this.dragulaOptions.removeOnSpill = sourceComponent.removeOnSpill;\n\n        sourceComponent.drag.emit({\n          type: 'drag',\n          el,\n          source,\n          sourceComponent,\n          value: draggedItem\n        });\n      }\n    });\n\n    this.drake.on('drop', (el: any, target: any, source: any) => {\n      const targetComponent = this.droppableMap.get(target);\n\n      if (!targetComponent) {\n        // not a target, abort\n        return;\n      }\n\n      let dropElmModel = draggedItem;\n      const dropIndex = Array.prototype.indexOf.call(target.children, el);\n\n      if (dropIndex < 0) {\n        // dropIndex is bad... cancel\n        this.drake.cancel(true);\n        return;\n      }\n\n      const sourceComponent = this.droppableMap.get(source);\n\n      if (sourceComponent) {\n        const sourceModel = sourceComponent.model;\n        const targetModel = targetComponent.model;\n\n        const hasDragModel = !!(sourceModel && draggedItem);\n        const dragIndex = hasDragModel ? sourceModel.indexOf(draggedItem) : -1;\n        if (hasDragModel && dragIndex < 0) {\n          // dragIndex is bad... cancel\n          this.drake.cancel(true);\n          return;\n        }\n\n        if (targetModel) {\n          const reorder = dragIndex > -1 && sourceModel && target === source;\n          const copy = !sourceModel || dragElm !== el;\n          if (reorder) {\n            sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n          } else {\n            if (el.parentNode === target) {\n              target.removeChild(el);\n            }\n\n            if (copy) {\n              dropElmModel = JSON.parse(JSON.stringify(dropElmModel));\n            } else {\n              if (el.parentNode !== source) {\n                // add element back, let angular remove it\n                this.drake.cancel(true);\n              }\n              sourceModel.splice(dragIndex, 1);\n            }\n            targetModel.splice(dropIndex, 0, dropElmModel);\n          }\n        }\n      }\n\n      targetComponent.drop.emit({\n        type: 'drop',\n        el,\n        source,\n        value: dropElmModel,\n        dropIndex\n      });\n    });\n\n    this.drake.on('remove', (el: any, container: any, source: any) => {\n      if (this.droppableMap.has(source)) {\n        const sourceComponent = this.droppableMap.get(source);\n        const sourceModel = sourceComponent.model;\n\n        const dragIndex = draggedItem && sourceModel ? sourceModel.indexOf(draggedItem) : -1;\n\n        if (dragIndex > -1) {\n          if (el.parentNode !== source) {\n            // add element back, let angular remove it\n            source.appendChild(el);\n          }\n          sourceModel.splice(dragIndex, 1);\n        }\n\n        sourceComponent.remove.emit({\n          type: 'remove',\n          el,\n          container,\n          source,\n          value: draggedItem\n        });\n      }\n    });\n\n    this.drake.on('cancel', (el: any, container: any, source: any) => {\n      if (this.droppableMap.has(container)) {\n        const containerComponent = this.droppableMap.get(container);\n        containerComponent.cancel.emit({\n          type: 'cancel',\n          el,\n          container,\n          source,\n          value: draggedItem\n        });\n      }\n    });\n\n    this.drake.on('over', (el: any, container: any, source: any) => {\n      if (this.droppableMap.has(container)) {\n        const containerComponent = this.droppableMap.get(container);\n        containerComponent.over.emit({\n          type: 'over',\n          el,\n          container,\n          source,\n          value: draggedItem\n        });\n      }\n    });\n\n    this.drake.on('out', (el: any, container: any, source: any) => {\n      if (this.droppableMap.has(container)) {\n        const containerComponent = this.droppableMap.get(container);\n        containerComponent.out.emit({\n          type: 'out',\n          el,\n          container,\n          source,\n          value: draggedItem\n        });\n      }\n    });\n  }\n}\n","import {\n  Directive,\n  Input,\n  Output,\n  OnInit,\n  OnDestroy,\n  AfterViewInit,\n  ElementRef,\n  EventEmitter,\n  Renderer2\n} from '@angular/core';\n\nimport { DrakeStoreService } from '../services/drake-store.service';\n\nlet i = 10000;\nfunction getNextId() {\n  return i++;\n}\n\n/**\n * Makes the container droppable and children draggable.\n *\n * @export\n */\n@Directive({\n  selector: '[ngxDroppable]',\n  standalone: false\n})\nexport class DroppableDirective implements OnInit, OnDestroy, AfterViewInit {\n  @Input() model: any;\n  @Input() copy = false;\n  @Input() removeOnSpill = false;\n  @Input() ngxDroppable: string;\n  @Input() direction: 'vertical' | 'horizontal' | 'mixed' = 'vertical';\n\n  @Output() drop: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() drag: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() over: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() out: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() remove: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() cancel: EventEmitter<any> = new EventEmitter<any>();\n\n  get container(): any {\n    return this.el.nativeElement;\n  }\n\n  @Input()\n  get dropZone(): string {\n    return this._dropZone || this.ngxDroppable || this.defaultZone;\n  }\n  set dropZone(val: string) {\n    this._dropZone = val;\n  }\n\n  defaultZone: string;\n  _dropZone: string;\n\n  constructor(private el: ElementRef, private renderer: Renderer2, private drakesService: DrakeStoreService) {}\n\n  ngOnInit(): void {\n    this.defaultZone = `@@DefaultDropZone-${getNextId()}@@`;\n    this.drakesService.register(this);\n  }\n\n  ngAfterViewInit(): void {\n    this.over.subscribe(() => {\n      this.renderer.addClass(this.container, 'gu-over');\n    });\n    this.out.subscribe(() => {\n      this.renderer.removeClass(this.container, 'gu-over');\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.drakesService.remove(this);\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  HostListener,\n  Input,\n  Output,\n  EventEmitter,\n  OnDestroy,\n  OnInit,\n  DoCheck\n} from '@angular/core';\n\nimport { DroppableDirective } from './ngx-droppable.directive';\nimport { DrakeStoreService } from '../services/drake-store.service';\n\n/**\n * Adds properties and events to draggable elements\n *\n * @export\n */\n@Directive({\n  selector: '[ngxDraggable]',\n  standalone: false\n})\nexport class DraggableDirective implements OnInit, OnDestroy, DoCheck {\n  @Input() ngxDraggable: string[];\n  @Input() model: any;\n\n  @Input()\n  get dropZones(): any {\n    return this._dropZones || this.ngxDraggable || this._parentDropzones;\n  }\n  set dropZones(val: any) {\n    this._dropZones = val;\n  }\n\n  @Input('moves') _moves: boolean | ((...args: any[]) => any) = true;\n\n  /*\n  ContentChildren doesn't get children created with NgTemplateOutlet\n  See https://github.com/angular/angular/issues/14842\n  Implemented via updateElements method\n\n  @ContentChildren(DragHandleDirective, {descendants: true})\n  handlesList: QueryList<DragHandleDirective>; */\n\n  handles: any[] = [];\n\n  get hasHandle() {\n    return !!this.handles.length;\n  }\n\n  @Output() drag: EventEmitter<any> = new EventEmitter<any>();\n\n  dragDelay: number = 200; // milliseconds\n  dragDelayed: boolean = true;\n\n  touchTimeout: any;\n\n  get element(): any {\n    return this.el.nativeElement;\n  }\n\n  _dropZones: string[];\n  _parentDropzones: string[];\n\n  constructor(\n    private el: ElementRef,\n    private drakesService: DrakeStoreService,\n    private droppableDirective: DroppableDirective\n  ) {}\n\n  // From: https://github.com/bevacqua/dragula/issues/289#issuecomment-277143172\n  @HostListener('touchmove', ['$event'])\n  onMove(e: Event) {\n    if (!this._moves || this.dragDelayed) {\n      e.stopPropagation();\n      clearTimeout(this.touchTimeout);\n    }\n  }\n\n  @HostListener('touchstart')\n  onDown() {\n    if (this._moves) {\n      this.touchTimeout = setTimeout(() => {\n        this.dragDelayed = false;\n      }, this.dragDelay);\n    }\n  }\n\n  @HostListener('touchend')\n  onUp() {\n    if (this._moves) {\n      clearTimeout(<number>this.touchTimeout);\n      this.dragDelayed = true;\n    }\n  }\n\n  ngOnInit(): void {\n    this.update();\n  }\n\n  update(): void {\n    this._parentDropzones = [this.droppableDirective.dropZone];\n    this.drakesService.registerDraggable(this);\n    this.updateElements();\n  }\n\n  ngOnDestroy(): void {\n    this.drakesService.removeDraggable(this);\n  }\n\n  updateElements(): void {\n    const nativeElement = this.el.nativeElement;\n    const handles: NodeList = nativeElement.querySelectorAll('[ngxdraghandle]');\n    this.handles = Array.from(handles).filter((h: any) => findFirstDraggableParent(h) === nativeElement);\n\n    function findFirstDraggableParent(c: any) {\n      while (c.parentNode) {\n        c = c.parentNode;\n        if (c.hasAttribute && c.hasAttribute('ngxdraggable')) {\n          return c;\n        }\n      }\n    }\n  }\n\n  canMove(source?: any, handle?: any, sibling?: any): boolean {\n    if (typeof this._moves === 'boolean') return this._moves;\n    if (typeof this._moves === 'function') return this._moves(this.model, source, handle, sibling);\n    return true;\n  }\n\n  moves(source: any, handle: any, sibling: any): boolean {\n    if (!this.canMove(source, handle, sibling)) return false;\n\n    return this.hasHandle ? this.handles.some(h => handelFor(handle, h)) : true;\n\n    function handelFor(c: any, p: any) {\n      if (c === p) return true;\n      while ((c = c.parentNode) && c !== p); // tslint:disable-line\n      return !!c;\n    }\n  }\n\n  ngDoCheck(): void {\n    this.updateElements();\n  }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Adds properties and events to drag handle elements\n *\n * @export\n */\n@Directive({\n  selector: '[ngxDragHandle]',\n  standalone: false\n})\nexport class DragHandleDirective {}\n","<div\n  ngxDroppable\n  [dropZone]=\"dropZone\"\n  [model]=\"model\"\n  [copy]=\"copy\"\n  [ngClass]=\"{ 'gu-empty': !model?.length }\"\n  [removeOnSpill]=\"removeOnSpill\"\n  class=\"ngx-dnd-container\"\n>\n  @if (model) { @for (item of model; track item) {\n  <ngx-dnd-item\n    ngxDraggable\n    [model]=\"item\"\n    [dropZone]=\"dropZone\"\n    [dropZones]=\"dropZones\"\n    [copy]=\"copy\"\n    [moves]=\"moves\"\n    [removeOnSpill]=\"removeOnSpill\"\n    [droppableItemClass]=\"droppableItemClass\"\n  >\n  </ngx-dnd-item>\n  } } @if (!model) {\n  <ng-content></ng-content>\n  }\n</div>\n","import {\n  Component,\n  OnInit,\n  AfterViewInit,\n  Input,\n  Output,\n  ViewEncapsulation,\n  ContentChild,\n  TemplateRef,\n  ViewChild,\n  EventEmitter,\n  ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { DroppableDirective } from '../../directives/ngx-droppable.directive';\n\nlet i = 0;\nfunction getNextId() {\n  return i++;\n}\n\n/**\n * Component that allows nested ngxDroppable and ngxDraggables\n *\n * @export\n */\n@Component({\n  selector: 'ngx-dnd-container',\n  templateUrl: './container.component.html',\n  styleUrls: ['./container.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Eager,\n  standalone: false\n})\nexport class ContainerComponent implements OnInit, AfterViewInit {\n  @Input() model: any;\n  @Input() copy = false;\n  @Input() removeOnSpill = false;\n  @Input() droppableItemClass: string | ((o: any) => any);\n\n  @Input() dropZone = `@@DefaultDropZone-${getNextId()}@@`;\n\n  @Input()\n  get dropZones() {\n    return this._dropZones || this._defaultZones;\n  }\n  set dropZones(val) {\n    this._dropZones = val;\n  }\n\n  @Input() moves: (model: any, source: any, handle: any, sibling: any) => boolean;\n\n  // @Input() classes: any = {};\n  // @Input() dragulaOptions: any;\n\n  @Input('template')\n  set templateInput(template: TemplateRef<any>) {\n    this.template = template;\n  }\n\n  @ContentChild(TemplateRef, { static: true })\n  set templateChild(template: TemplateRef<any>) {\n    this.template = template;\n  }\n\n  template: TemplateRef<any>;\n\n  @ViewChild(DroppableDirective, { static: true })\n  droppable: any;\n\n  @Output() drop: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() drag: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() over: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() out: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() remove: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() cancel: EventEmitter<any> = new EventEmitter<any>();\n\n  _dropZones: string[];\n  _defaultZones: string[];\n\n  ngOnInit() {\n    this._defaultZones = [this.dropZone];\n  }\n\n  ngAfterViewInit() {\n    this.droppable.drag.subscribe((v: any) => this.drag.emit(v));\n    this.droppable.drop.subscribe((v: any) => this.drop.emit(v));\n    this.droppable.over.subscribe((v: any) => this.over.emit(v));\n    this.droppable.out.subscribe((v: any) => this.out.emit(v));\n    this.droppable.remove.subscribe((v: any) => this.remove.emit(v));\n    this.droppable.cancel.subscribe((v: any) => this.cancel.emit(v));\n  }\n}\n","@switch (type) { @case ('array') {\n<ngx-dnd-container\n  [model]=\"model\"\n  [template]=\"container.template\"\n  [dropZone]=\"dropZone\"\n  [dropZones]=\"dropZones\"\n  [removeOnSpill]=\"removeOnSpill\"\n  [droppableItemClass]=\"droppableItemClass\"\n  [copy]=\"copy\"\n>\n</ngx-dnd-container>\n} @case ('object') { @if (container.template) {\n<ng-template [ngTemplateOutlet]=\"container.template\" [ngTemplateOutletContext]=\"data\"> </ng-template>\n} @if (!container.template) {\n<div class=\"ngx-dnd-content\">\n  {{ model.label }}\n</div>\n@if (model.children) {\n<ngx-dnd-container\n  [model]=\"model.children\"\n  [template]=\"container.template\"\n  [dropZone]=\"dropZone\"\n  [dropZones]=\"dropZones\"\n  [removeOnSpill]=\"removeOnSpill\"\n  [droppableItemClass]=\"droppableItemClass\"\n  [copy]=\"copy\"\n>\n</ngx-dnd-container>\n} } } @case ('undefined') { } @default { @if (container.template) {\n<ng-template [ngTemplateOutlet]=\"container.template\" [ngTemplateOutletContext]=\"data\"> </ng-template>\n} @if (!container.template) {\n<div class=\"ngx-dnd-content\">\n  {{ model }}\n</div>\n} } }\n","import { Component, OnInit, Input, ViewEncapsulation, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\nimport { ContainerComponent } from '../container/container.component';\nimport { DraggableDirective } from '../../directives/ngx-draggable.directive';\n\n/**\n * Component that allows nested ngxDroppable and ngxDraggables\n * Should only be use inside a ngx-dnd-container\n * Outside a ngx-dnd-container use ngxDroppable\n *\n * @export\n */\n@Component({\n  selector: 'ngx-dnd-item',\n  templateUrl: './item.component.html',\n  styleUrls: ['./item.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Eager,\n  standalone: false\n})\nexport class ItemComponent implements OnInit {\n  @Input() model: any;\n\n  @Input()\n  get dropZone() {\n    return this._dropZone || this.container.dropZone;\n  }\n  set dropZone(val) {\n    this._dropZone = val;\n  }\n\n  @Input()\n  get dropZones() {\n    return this._dropZones || this.container.dropZones;\n  }\n  set dropZones(val) {\n    this._dropZones = val;\n  }\n\n  @Input()\n  get droppableItemClass() {\n    return this._droppableItemClass || this.container.droppableItemClass;\n  }\n  set droppableItemClass(val) {\n    this._droppableItemClass = val;\n  }\n\n  @Input()\n  get removeOnSpill() {\n    return typeof this._removeOnSpill === 'boolean' ? this._removeOnSpill : this.container.removeOnSpill;\n  }\n  set removeOnSpill(val) {\n    this._removeOnSpill = val;\n  }\n\n  @Input()\n  get copy() {\n    return typeof this._copy === 'boolean' ? this._copy : this.container.copy;\n  }\n  set copy(val) {\n    this._copy = val;\n  }\n\n  _copy = false;\n  _dropZone: any;\n  _dropZones: any;\n  _droppableItemClass: any;\n  _removeOnSpill = false;\n  data: any;\n\n  get hasHandle(): boolean {\n    return this.draggableDirective.hasHandle;\n  }\n\n  get moveDisabled(): boolean {\n    return !this.draggableDirective.canMove();\n  }\n\n  @HostBinding('class')\n  get classString() {\n    const itemClass =\n      typeof this.droppableItemClass === 'function' ? this.droppableItemClass(this.model) : this.droppableItemClass;\n\n    const classes = ['ngx-dnd-item', itemClass || ''];\n    if (this.moveDisabled) {\n      classes.push('move-disabled');\n    }\n    if (this.hasHandle) {\n      classes.push('has-handle');\n    }\n    return classes.join(' ');\n  }\n\n  get type() {\n    if (Array.isArray(this.model)) {\n      return 'array';\n    }\n    return typeof this.model;\n  }\n\n  constructor(public container: ContainerComponent, public draggableDirective: DraggableDirective) {}\n\n  ngOnInit() {\n    this.data = {\n      model: this.model,\n      type: this.type,\n      dropZone: this.dropZone,\n      template: this.container.template\n    };\n  }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DraggableDirective } from './directives/ngx-draggable.directive';\nimport { DroppableDirective } from './directives/ngx-droppable.directive';\nimport { DragHandleDirective } from './directives/ngx-drag-handle.directive';\nimport { ContainerComponent } from './components/container/container.component';\nimport { ItemComponent } from './components/item/item.component';\nimport { DrakeStoreService } from './services/drake-store.service';\n\nconst components = [ContainerComponent, ItemComponent];\nconst directives = [DraggableDirective, DroppableDirective, DragHandleDirective];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [...components, ...directives],\n  exports: [...components, ...directives]\n})\nexport class NgxDnDModule {\n  static forRoot(): ModuleWithProviders<NgxDnDModule> {\n    return {\n      ngModule: NgxDnDModule,\n      providers: [DrakeStoreService]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i","getNextId","i1.DrakeStoreService","i2.DroppableDirective","i1.ContainerComponent","i2.DraggableDirective","i1"],"mappings":"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"}