{"version":3,"file":"ngx-bootstrap-sortable.mjs","sources":["../../../../src/sortable/draggable-item.service.ts","../../../../src/sortable/sortable.component.ts","../../../../src/sortable/sortable.module.ts","../../../../src/sortable/ngx-bootstrap-sortable.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DraggableItem } from './draggable-item';\n\n@Injectable({providedIn: 'platform'})\nexport class DraggableItemService {\n  private draggableItem?: DraggableItem;\n\n  private onCapture: Subject<DraggableItem> = new Subject<DraggableItem>();\n\n  dragStart(item: DraggableItem): void {\n    this.draggableItem = item;\n  }\n\n  getItem(): DraggableItem | undefined {\n    return this.draggableItem;\n  }\n\n  captureItem(overZoneIndex: number, newIndex: number): DraggableItem | undefined {\n    if (this.draggableItem && this.draggableItem.overZoneIndex !== overZoneIndex) {\n      this.draggableItem.lastZoneIndex = this.draggableItem.overZoneIndex;\n      this.draggableItem.overZoneIndex = overZoneIndex;\n      this.onCapture.next(this.draggableItem);\n      this.draggableItem = Object.assign({}, this.draggableItem, {\n        overZoneIndex,\n        i: newIndex\n      });\n    }\n\n    return this.draggableItem;\n  }\n\n  onCaptureItem(): Subject<DraggableItem> {\n    return this.onCapture;\n  }\n}\n","import {\n  Component,\n  forwardRef,\n  TemplateRef,\n  input,\n  output\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DraggableItem } from './draggable-item';\nimport { DraggableItemService } from './draggable-item.service';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n    selector: 'bs-sortable',\n    exportAs: 'bs-sortable',\n    template: `\n<div\n  [ngClass]=\"wrapperClass()\"\n  [ngStyle]=\"wrapperStyle()\"\n  (dragover)=\"cancelEvent($event)\"\n  (dragenter)=\"cancelEvent($event)\"\n  (drop)=\"resetActiveItem($event)\"\n  (mouseleave)=\"resetActiveItem($event)\">\n  @if (showPlaceholder) {\n    <div\n      [ngClass]=\"placeholderClass()\"\n      [ngStyle]=\"placeholderStyle()\"\n      (dragover)=\"onItemDragover($event, 0)\"\n      (dragenter)=\"cancelEvent($event)\"\n    >{{placeholderItem()}}</div>\n  }\n  @for (item of items; track item; let i = $index) {\n    <div\n      [ngClass]=\"[ itemClass(), i === activeItem ? itemActiveClass() : '' ]\"\n      [ngStyle]=\"getItemStyle(i === activeItem)\"\n      draggable=\"true\"\n      (dragstart)=\"onItemDragstart($event, item, i)\"\n      (dragend)=\"resetActiveItem($event)\"\n      (dragover)=\"onItemDragover($event, i)\"\n      (dragenter)=\"cancelEvent($event)\"\n      aria-dropeffect=\"move\"\n      [attr.aria-grabbed]=\"i === activeItem\"\n      ><ng-template [ngTemplateOutlet]=\"itemTemplate() || defItemTemplate\"\n    [ngTemplateOutletContext]=\"{item:item, index: i}\"></ng-template></div>\n  }\n</div>\n\n<ng-template #defItemTemplate let-item=\"item\">{{item.value}}</ng-template>\n`,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => SortableComponent),\n            multi: true\n        }\n    ],\n    standalone: true,\n    imports: [NgClass, NgStyle, NgTemplateOutlet]\n})\nexport class SortableComponent implements ControlValueAccessor {\n  private static globalZoneIndex = 0;\n  /** field name if input array consists of objects */\n  fieldName = input<string | undefined>();\n\n  /** class name for items wrapper */\n  wrapperClass = input<string>('');\n\n  /** style object for items wrapper */\n  wrapperStyle = input<Record<string, string>>({});\n\n  /** class name for item */\n  itemClass = input<string>('');\n\n  /** style object for item */\n  itemStyle = input<Record<string, string>>({});\n\n  /** class name for active item */\n  itemActiveClass = input<string>('');\n\n  /** style object for active item */\n  itemActiveStyle = input<Record<string, string>>({});\n\n  /** class name for placeholder */\n  placeholderClass = input<string>('');\n\n  /** style object for placeholder */\n  placeholderStyle = input<Record<string, string>>({});\n\n  /** placeholder item which will be shown if collection is empty */\n  placeholderItem = input<string>('');\n\n  /** used to specify a custom item template. Template variables: item and index; */\n  itemTemplate = input<TemplateRef<unknown> | undefined>();\n\n  /** fired on array change (reordering, insert, remove), same as <code>ngModelChange</code>.\n   *  Returns new items collection as a payload.\n   */\n  onChange = output<unknown[]>();\n\n  showPlaceholder = false;\n  activeItem = -1;\n\n  get items(): SortableItem[] {\n    return this._items;\n  }\n\n  set items(value: SortableItem[]) {\n    this._items = value;\n    const out = this.items.map((x: SortableItem) => x.initData);\n    this.onChanged(out);\n    this.onChange.emit(out);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  onTouched: any = Function.prototype;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  onChanged: any = Function.prototype;\n\n  private transfer: DraggableItemService;\n  private currentZoneIndex: number;\n  private _items: SortableItem[] = [];\n\n  constructor(transfer: DraggableItemService) {\n    this.transfer = transfer;\n    this.currentZoneIndex = SortableComponent.globalZoneIndex++;\n    this.transfer\n      .onCaptureItem()\n      .subscribe((item: DraggableItem) => this.onDrop(item));\n  }\n\n  onItemDragstart(\n    event: DragEvent,\n    item: SortableItem,\n    i: number\n  ): void {\n    this.initDragstartEvent(event);\n    this.onTouched();\n    this.transfer.dragStart({\n      event,\n      item,\n      i,\n      initialIndex: i,\n      lastZoneIndex: this.currentZoneIndex,\n      overZoneIndex: this.currentZoneIndex\n    });\n  }\n\n  onItemDragover(event: DragEvent, i: number): void {\n    if (!this.transfer.getItem()) {\n      return;\n    }\n    event.preventDefault();\n    const dragItem = this.transfer.captureItem(\n      this.currentZoneIndex,\n      this.items.length\n    );\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    let newArray: any[] = [];\n\n    if (!dragItem) {\n      return;\n    }\n\n    if (!this.items.length) {\n      newArray = [dragItem.item];\n    } else if (dragItem.i > i) {\n      newArray = [\n        ...this.items.slice(0, i),\n        dragItem.item,\n        ...this.items.slice(i, dragItem.i),\n        ...this.items.slice(dragItem.i + 1)\n      ];\n    } else {\n      // this.draggedItem.i < i\n      newArray = [\n        ...this.items.slice(0, dragItem.i),\n        ...this.items.slice(dragItem.i + 1, i + 1),\n        dragItem.item,\n        ...this.items.slice(i + 1)\n      ];\n    }\n    this.items = newArray;\n    dragItem.i = i;\n    this.activeItem = i;\n    this.updatePlaceholderState();\n  }\n\n  cancelEvent(event?: DragEvent|MouseEvent): void {\n    if (!this.transfer.getItem() || !event) {\n      return;\n    }\n    event.preventDefault();\n  }\n\n  onDrop(item: DraggableItem): void {\n    if (\n      item &&\n      item.overZoneIndex !== this.currentZoneIndex &&\n      item.lastZoneIndex === this.currentZoneIndex\n    ) {\n      this.items = this.items.filter(\n        (x: SortableItem, i: number) => i !== item.i\n      );\n      this.updatePlaceholderState();\n    }\n    this.resetActiveItem();\n  }\n\n  resetActiveItem(event?: DragEvent|MouseEvent): void {\n    this.cancelEvent(event);\n    this.activeItem = -1;\n  }\n\n  registerOnChange(callback: () => void): void {\n    this.onChanged = callback;\n  }\n\n  registerOnTouched(callback: () => void): void {\n    this.onTouched = callback;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  writeValue(value: any[]): void {\n    if (value) {\n      const fieldNameValue = this.fieldName();\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      this.items = value.map((x: any, i: number) => ({\n        id: i,\n        initData: x,\n        value: fieldNameValue ? x[fieldNameValue] : x\n      }));\n    } else {\n      this.items = [];\n    }\n    this.updatePlaceholderState();\n  }\n\n  updatePlaceholderState(): void {\n    this.showPlaceholder = !this._items.length;\n  }\n\n  getItemStyle(isActive: boolean) {\n    return isActive\n      ? Object.assign({}, this.itemStyle(), this.itemActiveStyle())\n      : this.itemStyle();\n  }\n\n  private initDragstartEvent(event: DragEvent): void {\n    // it is necessary for mozilla\n    // data type should be 'Text' instead of 'text/plain' to keep compatibility\n    // with IE\n    event.dataTransfer?.setData('Text', 'placeholder');\n  }\n}\n\nexport declare interface SortableItem {\n  id: number;\n  value: string;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  initData: any;\n}\n","import { NgModule } from '@angular/core';\n\nimport { SortableComponent } from './sortable.component';\n\n@NgModule({\n    imports: [SortableComponent],\n    exports: [SortableComponent]\n})\nexport class SortableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DraggableItemService"],"mappings":"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"}