{"version":3,"file":"hslayers-ng-common-dialogs.mjs","sources":["../../../projects/hslayers/common/dialogs/dialog-item.ts","../../../projects/hslayers/common/dialogs/dialog-container.service.ts","../../../projects/hslayers/common/dialogs/dialog-host.directive.ts","../../../projects/hslayers/common/dialogs/dialog-container.component.ts","../../../projects/hslayers/common/dialogs/dialog-container.component.html","../../../projects/hslayers/common/dialogs/rename-layer/rename-layer.component.ts","../../../projects/hslayers/common/dialogs/rename-layer/rename-layer.component.html","../../../projects/hslayers/common/dialogs/overwrite-layer/overwrite-layer.component.ts","../../../projects/hslayers/common/dialogs/overwrite-layer/overwrite-layer.component.html","../../../projects/hslayers/common/dialogs/compositions-warning/warning-dialog.component.ts","../../../projects/hslayers/common/dialogs/compositions-warning/warning-dialog.component.html","../../../projects/hslayers/common/dialogs/hslayers-ng-common-dialogs.ts"],"sourcesContent":["import {Type} from '@angular/core';\n\nexport class HsDialogItem {\n  resolve: (value?: unknown) => void;\n  reject: (reason?: any) => void;\n  waitResult(): Promise<any> {\n    const promise = new Promise((resolve, reject) => {\n      this.resolve = resolve;\n      this.reject = reject;\n    });\n    return promise;\n  }\n  constructor(\n    public component: Type<any>,\n    public data: any,\n  ) {}\n}\n","import {Injectable, Type} from '@angular/core';\n\nimport {ReplaySubject, Subject} from 'rxjs';\n\nimport {HsDialogComponent} from './dialog-component.interface';\nimport {HsDialogItem} from './dialog-item';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HsDialogContainerService {\n  dialogs: Array<any> = [];\n  dialogObserver: ReplaySubject<HsDialogItem> = new ReplaySubject();\n  dialogDestroyObserver: Subject<any> = new Subject();\n\n  constructor() {}\n\n  cleanup() {\n    this.dialogObserver.complete();\n    this.dialogObserver = new ReplaySubject();\n  }\n\n  create(component: Type<any>, data: any): HsDialogItem {\n    const item = new HsDialogItem(component, data);\n    this.dialogObserver.next(item);\n    return item;\n  }\n\n  destroy(component: HsDialogComponent): void {\n    if (component.cleanup) {\n      component.cleanup();\n    }\n    const dialogCollection = this.dialogs;\n    const dialogIx = dialogCollection.findIndex((d) => d == component);\n    if (dialogIx > -1) {\n      dialogCollection.splice(dialogIx, 1);\n    }\n    this.dialogDestroyObserver.next(component);\n  }\n}\n","import {Directive, ViewContainerRef, inject} from '@angular/core';\n\n@Directive({\n  selector: '[hsDialogHost]',\n  standalone: true,\n})\nexport class HsDialogHostDirective {\n  viewContainerRef = inject(ViewContainerRef);\n}\n","import {\n  Component,\n  DestroyRef,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n  inject,\n} from '@angular/core';\n\nimport {HsDialogComponent} from './dialog-component.interface';\nimport {HsDialogContainerService} from './dialog-container.service';\nimport {HsDialogHostDirective} from './dialog-host.directive';\nimport {HsDialogItem} from './dialog-item';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\n@Component({\n  selector: 'hs-dialog-container',\n  templateUrl: './dialog-container.component.html',\n  imports: [HsDialogHostDirective],\n})\nexport class HsDialogContainerComponent implements OnInit, OnDestroy {\n  hsDialogContainerService = inject(HsDialogContainerService);\n\n  @ViewChild(HsDialogHostDirective, {static: true})\n  dialogHost: HsDialogHostDirective;\n  interval: any;\n  private destroyRef = inject(DestroyRef);\n\n  ngOnDestroy(): void {\n    this.hsDialogContainerService.cleanup();\n  }\n\n  ngOnInit(): void {\n    this.hsDialogContainerService.dialogObserver\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe((item: HsDialogItem) => {\n        this.loadDialog(item);\n      });\n\n    this.hsDialogContainerService.dialogDestroyObserver\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe((item: HsDialogComponent) => {\n        this.destroyDialog(item);\n      });\n  }\n\n  destroyDialog(dialog: HsDialogComponent): void {\n    const viewContainerRef = this.dialogHost.viewContainerRef;\n    const index = viewContainerRef.indexOf(dialog.viewRef);\n    if (index > -1) {\n      viewContainerRef.remove(index);\n    }\n  }\n\n  loadDialog(dialogItem: HsDialogItem): void {\n    const viewContainerRef = this.dialogHost.viewContainerRef;\n    //    viewContainerRef.clear();\n    const componentRef = viewContainerRef.createComponent(dialogItem.component);\n    (<HsDialogComponent>componentRef.instance).viewRef = componentRef.hostView;\n    /**\n     * Quick workaround for possiblity to use singal input in dialogs.\n     * To achieve so wrap data into a another object {data: originalData, signalInput: true}\n     */\n    if (dialogItem.data.signalInput) {\n      componentRef.setInput('data', dialogItem.data.data);\n    } else {\n      (<HsDialogComponent>componentRef.instance).data = dialogItem.data;\n    }\n    (<HsDialogComponent>componentRef.instance).dialogItem = dialogItem;\n    this.hsDialogContainerService.dialogs.push(\n      componentRef.instance as HsDialogComponent,\n    );\n  }\n}\n","<div>\n    <ng-template hsDialogHost></ng-template>\n</div>\n","import {Component, OnInit, ViewRef, inject} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TranslatePipe} from '@ngx-translate/core';\n\nimport {HsDialogComponent} from '../dialog-component.interface';\nimport {HsDialogContainerService} from '../dialog-container.service';\nimport {HsDialogItem} from '../dialog-item';\n\n@Component({\n  selector: 'hs-rename-layer-dialog',\n  templateUrl: './rename-layer.component.html',\n  imports: [TranslatePipe, FormsModule],\n})\nexport class HsRenameLayerDialogComponent implements HsDialogComponent, OnInit {\n  hsDialogContainerService = inject(HsDialogContainerService);\n\n  dialogItem: HsDialogItem;\n  viewRef: ViewRef;\n  newLayerName: string;\n  data: {\n    currentName: string;\n  };\n\n  ngOnInit(): void {\n    this.newLayerName = this.data.currentName;\n  }\n\n  /**\n   * Close the dialog\n   */\n  close(): void {\n    this.hsDialogContainerService.destroy(this);\n    this.dialogItem.resolve(false);\n  }\n\n  /**\n   * Continue with the new layer name from user's input\n   */\n  continue(): void {\n    this.hsDialogContainerService.destroy(this);\n    this.dialogItem.resolve(this.newLayerName);\n  }\n\n  handleKeyUp(e: KeyboardEvent): void {\n    if (e.key == 'Enter') {\n      this.continue();\n    } else if (e.key == 'Escape') {\n      this.close();\n    }\n  }\n}\n","<div class=\"modal in hs-layer-overwrite-dialog\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">{{'COMMON.renameLayer' | translate}}</h4>\n        <button type=\"button\" (click)=\"close()\" class=\"btn-close\" data-dismiss=\"modal\"\n          [attr.aria-label]=\"'COMMON.close' | translate \">\n        </button>\n      </div>\n      <div class=\"modal-body\" style=\"overflow-y:auto\">\n        <div class=\"form-floating m-2\">\n          <input class=\"form-control\" name=\"name\" [(ngModel)]=\"newLayerName\" [placeholder]=\"'COMMON.name' | translate\"\n            (keyup)=\"handleKeyUp($event)\" />\n          <label for=\"name\" class=\"capabilities_label control-label\">{{'COMMON.name' | translate}}</label>\n        </div>\n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-primary compositions-btn-overwrite\" (click)=\"continue()\"\n          data-dismiss=\"modal\" [disabled]=\"!newLayerName\">{{'COMMON.continue' | translate }}</button>\n\n        <button type=\"button\" class=\"btn btn-secondary compositions-btn-cancel\" (click)=\"close()\"\n          data-dismiss=\"modal\">{{'COMMON.cancel' | translate }}</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import {Component, ViewRef, inject} from '@angular/core';\nimport {TranslatePipe} from '@ngx-translate/core';\n\nimport {FileDataObject, VectorDataObject} from 'hslayers-ng/types';\nimport {HsDialogComponent} from '../dialog-component.interface';\nimport {HsDialogContainerService} from '../dialog-container.service';\nimport {HsDialogItem} from '../dialog-item';\nimport {HsRenameLayerDialogComponent} from '../rename-layer/rename-layer.component';\n\n@Component({\n  selector: 'hs-layer-overwrite-dialog',\n  templateUrl: './overwrite-layer.component.html',\n  imports: [TranslatePipe],\n})\nexport class HsLayerOverwriteDialogComponent implements HsDialogComponent {\n  hsDialogContainerService = inject(HsDialogContainerService);\n\n  dialogItem: HsDialogItem;\n  viewRef: ViewRef;\n  data: {\n    dataObj: FileDataObject | VectorDataObject;\n    repetive: boolean;\n  };\n\n  /**\n   * Close the dialog\n   */\n  close(): void {\n    this.hsDialogContainerService.destroy(this);\n    this.dialogItem.resolve('cancel');\n  }\n\n  /**\n   * Overwrite the existing layer with current layer data\n   */\n  overwrite(): void {\n    this.hsDialogContainerService.destroy(this);\n    this.dialogItem.resolve('overwrite');\n  }\n\n  async renameAndAdd(): Promise<void> {\n    const renameDialogRef = this.hsDialogContainerService.create(\n      HsRenameLayerDialogComponent,\n      {\n        currentName: this.data.dataObj.name,\n      },\n    );\n    const result = await renameDialogRef.waitResult();\n    if (!result) {\n      //Do nothing\n    } else {\n      this.data.dataObj.name = result;\n      this.data.dataObj.title = result;\n\n      this.hsDialogContainerService.destroy(this);\n      this.dialogItem.resolve('add');\n    }\n  }\n}\n","<div class=\"modal in hs-layer-overwrite-dialog\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-header\">\n        <h4 class=\"modal-title\">{{'ADDDATA.dialogOverWrite.overwriteExistingLayer' | translate}}</h4>\n        <button type=\"button\" (click)=\"close()\" class=\"btn-close\" data-dismiss=\"modal\"\n          [attr.aria-label]=\"'COMMON.close' | translate \">\n        </button>\n      </div>\n      <div class=\"modal-body\" style=\"overflow-y:auto\">\n        <p class=\"fw-bold h6\">{{'ADDDATA.dialogOverWrite.doYouWishToOverwrite' | translate }}\n          {{data.dataObj.name}}?</p>\n        @if (data.repetive) {\n        <p class=\"h6 small\">{{'ADDDATA.dialogOverWrite.noteForRepetiveDialog' | translate}}</p>\n        }\n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-primary compositions-btn-overwrite\" (click)=\"overwrite()\"\n          data-dismiss=\"modal\">{{'SAVECOMPOSITION.form.overwrite' | translate }}</button>\n        <button type=\"button\" class=\"btn btn-secondary compositions-btn-cancel\" (click)=\"renameAndAdd()\"\n          data-dismiss=\"modal\">{{'COMMON.renameLayer' | translate }}</button>\n        <button type=\"button\" class=\"btn btn-secondary compositions-btn-cancel\" (click)=\"close()\"\n          data-dismiss=\"modal\">{{'COMMON.cancel' | translate }}</button>\n      </div>\n    </div>\n  </div>\n</div>\n","import {Component, ViewRef, inject} from '@angular/core';\nimport {TranslatePipe} from '@ngx-translate/core';\n\nimport {HsDialogComponent} from '../dialog-component.interface';\nimport {HsDialogContainerService} from '../dialog-container.service';\n@Component({\n  selector: 'hs-compositions-warning-dialog',\n  templateUrl: './warning-dialog.component.html',\n  imports: [TranslatePipe],\n})\nexport class HsCompositionsWarningDialogComponent implements HsDialogComponent {\n  hsDialogContainerService = inject(HsDialogContainerService);\n\n  viewRef: ViewRef;\n  data: any;\n\n  close(): void {\n    this.hsDialogContainerService.destroy(this);\n  }\n}\n","<div class=\"modal in hs-composition-warning-dialog\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n    <div class=\"modal-dialog\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h4 class=\"modal-title\">{{'COMMON.warning' | translate }}</h4>\n                <button type=\"button\" (click)=\"close()\" class=\"btn-close\" data-dismiss=\"modal\"\n                    [attr.aria-label]=\"'COMMON.close' | translate\">\n                </button>\n            </div>\n            <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto\">\n                <br>{{'COMMON.name' | translate }}: <b>{{data.composition_title}}</b>\n                <hr>\n                <br>{{data.message | translate }}\n                <br>{{'COMPOSITIONS.dialogWarning.toContinue' | translate }}\n            </div>\n            <div class=\"modal-footer\">\n                <button type=\"button\" class=\"btn btn-primary compositions-btn-warning\" (click)=\"close()\"\n                    data-dismiss=\"modal\">{{'COMMON.ignoreAndContinue' | translate }}</button>\n            </div>\n        </div>\n    </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}