1 import { Component, OnInit } from '@angular/core'
2 import { ConfirmDialogComponent } from '../confirm-dialog.component'
3 import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
4 import { DocumentService } from 'src/app/services/rest/document.service'
5 import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'
6 import { Subject, takeUntil } from 'rxjs'
7 import { Document } from 'src/app/data/document'
10 selector: 'pngx-merge-confirm-dialog',
11 templateUrl: './merge-confirm-dialog.component.html',
12 styleUrl: './merge-confirm-dialog.component.scss',
14 export class MergeConfirmDialogComponent
15 extends ConfirmDialogComponent
18 public documentIDs: number[] = []
19 private _documents: Document[] = []
20 get documents(): Document[] {
21 return this._documents
24 public metadataDocumentID: number = -1
26 private unsubscribeNotifier: Subject<any> = new Subject()
29 activeModal: NgbActiveModal,
30 private documentService: DocumentService
37 .getCachedMany(this.documentIDs)
38 .pipe(takeUntil(this.unsubscribeNotifier))
39 .subscribe((documents) => {
40 this._documents = documents
44 onDrop(event: CdkDragDrop<number[]>) {
45 moveItemInArray(this.documentIDs, event.previousIndex, event.currentIndex)
48 getDocument(documentID: number): Document {
49 return this.documents.find((d) => d.id === documentID)