{ "version": 3, "sources": ["src/app/shared/confirm-dialog/confirm-dialog.component.ts", "src/app/shared/confirm-dialog/confirm-dialog.component.html", "src/app/shared/confirm-dialog/_models/confirm-config.ts", "src/app/shared/confirm.service.ts"], "sourcesContent": ["import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfirmButton } from './_models/confirm-button';\r\nimport { ConfirmConfig } from './_models/confirm-config';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {SafeHtmlPipe} from \"../../_pipes/safe-html.pipe\";\r\nimport {TranslocoDirective} from \"@jsverse/transloco\";\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n standalone: true,\r\n imports: [CommonModule, SafeHtmlPipe, TranslocoDirective],\r\n templateUrl: './confirm-dialog.component.html',\r\n styleUrls: ['./confirm-dialog.component.scss']\r\n})\r\nexport class ConfirmDialogComponent implements OnInit {\r\n\r\n config!: ConfirmConfig;\r\n\r\n constructor(public modal: NgbActiveModal) {}\r\n\r\n ngOnInit(): void {\r\n if (this.config) {\r\n this.config.buttons.sort(this._button_sort);\r\n }\r\n }\r\n\r\n private _button_sort(x: ConfirmButton, y: ConfirmButton) {\r\n const xIsSecondary = x.type === 'secondary';\r\n const yIsSecondary = y.type === 'secondary';\r\n if (xIsSecondary && !yIsSecondary) {\r\n return -1;\r\n } else if (!xIsSecondary && yIsSecondary) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n clickButton(button: ConfirmButton) {\r\n this.modal.close(button.type === 'primary');\r\n }\r\n\r\n close() {\r\n this.modal.close(false);\r\n }\r\n\r\n}\r\n", "\r\n
\r\n

{{config.header}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n", "import { ConfirmButton } from './confirm-button';\r\n\r\nexport class ConfirmConfig {\r\n _type: string = 'confirm'; // internal only: confirm or alert (todo: use enum)\r\n header: string = 'Confirm';\r\n content: string = '';\r\n buttons: Array = [];\r\n /**\r\n * If the close button shouldn't be rendered\r\n */\r\n disableEscape: boolean = false;\r\n}\r\n", "import { Injectable } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { take } from 'rxjs/operators';\r\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\r\nimport { ConfirmConfig } from './confirm-dialog/_models/confirm-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmService {\r\n\r\n defaultConfirm = new ConfirmConfig();\r\n defaultAlert = new ConfirmConfig();\r\n\r\n constructor(private modalService: NgbModal) {\r\n this.defaultConfirm.buttons.push({text: 'Cancel', type: 'secondary'});\r\n this.defaultConfirm.buttons.push({text: 'Confirm', type: 'primary'});\r\n\r\n this.defaultAlert._type = 'alert';\r\n this.defaultAlert.header = 'Alert';\r\n this.defaultAlert.buttons.push({text: 'Ok', type: 'primary'});\r\n\r\n }\r\n\r\n public async confirm(content?: string, config?: ConfirmConfig): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n if (content === undefined && config === undefined) {\r\n console.error('Confirm must have either text or a config object passed');\r\n return reject(false);\r\n }\r\n\r\n if (content !== undefined && config === undefined) {\r\n config = this.defaultConfirm;\r\n config.content = content;\r\n }\r\n if (content !== undefined && content !== '' && config!.content === '') {\r\n config!.content = content;\r\n }\r\n\r\n const modalRef = this.modalService.open(ConfirmDialogComponent);\r\n modalRef.componentInstance.config = config;\r\n modalRef.closed.pipe(take(1)).subscribe(result => {\r\n return resolve(result);\r\n });\r\n modalRef.dismissed.pipe(take(1)).subscribe(() => {\r\n return resolve(false);\r\n });\r\n });\r\n\r\n }\r\n\r\n public async alert(content?: string, config?: ConfirmConfig): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (content === undefined && config === undefined) {\r\n console.error('Alert must have either text or a config object passed');\r\n return reject(false);\r\n }\r\n\r\n if (content !== undefined && config === undefined) {\r\n config = this.defaultConfirm;\r\n config.content = content;\r\n }\r\n\r\n const modalRef = this.modalService.open(ConfirmDialogComponent, {size: \"lg\", fullscreen: \"md\"});\r\n modalRef.componentInstance.config = config;\r\n modalRef.closed.pipe(take(1)).subscribe(result => {\r\n return resolve(result);\r\n });\r\n modalRef.dismissed.pipe(take(1)).subscribe(() => {\r\n return resolve(false);\r\n });\r\n })\r\n }\r\n}\r\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "close", "\u0275\u0275elementEnd", "btn_r5", "_r4", "$implicit", "clickButton", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275classMapInterpolate1", "type", "\u0275\u0275textInterpolate", "text", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "ConfirmDialogComponent_ng_container_0_button_4_Template", "\u0275\u0275element", "ConfirmDialogComponent_ng_container_0_div_8_Template", "config", "header", "\u0275\u0275property", "disableEscape", "\u0275\u0275pipeBind1", "content", "\u0275\u0275sanitizeHtml", "buttons", "ConfirmDialogComponent", "constructor", "modal", "ngOnInit", "sort", "_button_sort", "x", "y", "xIsSecondary", "yIsSecondary", "button", "\u0275\u0275directiveInject", "NgbActiveModal", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "ConfirmDialogComponent_ng_container_0_Template", "CommonModule", "NgForOf", "NgIf", "SafeHtmlPipe", "TranslocoDirective", "_ConfirmDialogComponent", "ConfirmConfig", "constructor", "_type", "header", "content", "buttons", "disableEscape", "ConfirmService", "constructor", "modalService", "defaultConfirm", "ConfirmConfig", "defaultAlert", "buttons", "push", "text", "type", "_type", "header", "confirm", "content", "config", "__async", "Promise", "resolve", "reject", "undefined", "console", "error", "modalRef", "open", "ConfirmDialogComponent", "componentInstance", "closed", "pipe", "take", "subscribe", "result", "dismissed", "alert", "size", "fullscreen", "\u0275\u0275inject", "NgbModal", "factory", "\u0275fac", "providedIn", "_ConfirmService"] }