{"version":3,"sources":["node_modules/@capacitor/dialog/dist/esm/index.js","src/app/services/dialog/dialog.service.ts"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Dialog = registerPlugin('Dialog', {\n web: () => import('./web').then(m => new m.DialogWeb())\n});\nexport * from './definitions';\nexport { Dialog };\n","import { AlertController } from '@ionic/angular/standalone';\nimport { AlertOptions, ConfirmOptions, Dialog, PromptOptions, PromptResult } from '@capacitor/dialog';\nimport { Capacitor } from '@capacitor/core';\nimport { Injectable, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\n/*\n * DialogService offers access to native dialogs. On web Ionic alert controller is used.\n */\nexport class DialogService {\n private readonly alertController: AlertController = inject(AlertController);\n private readonly translate: TranslateService = inject(TranslateService);\n\n /*\n * A method to display alert dialog\n */\n public async showAlert(options: AlertOptions): Promise {\n if (Capacitor.isNativePlatform()) {\n return await Dialog.alert(options);\n } else {\n let resolveFunction: () => void;\n const alert = await this.alertController.create({\n backdropDismiss: false,\n header: this.translate.instant(options.title || ''),\n message: this.translate.instant(options.message || ''),\n buttons: [\n {\n text: 'OK',\n handler: () => resolveFunction()\n }\n ]\n });\n await alert.present();\n return new Promise(resolve => {\n resolveFunction = resolve;\n });\n }\n }\n\n /*\n * A method to display confirm dialog\n */\n public async showConfirm(options: ConfirmOptions): Promise {\n if (Capacitor.isNativePlatform()) {\n const { value } = await Dialog.confirm({\n cancelButtonTitle: options.cancelButtonTitle\n ? this.translate.instant(options.cancelButtonTitle)\n : this.translate.instant('buttons_cancel'),\n okButtonTitle: options.okButtonTitle ? this.translate.instant(options.okButtonTitle) : 'OK',\n ...options\n });\n return value;\n } else {\n let resolveFunction: (confirm: boolean) => void;\n if (options.title && options.message) {\n const alert = await this.alertController.create({\n backdropDismiss: false,\n header: this.translate.instant(options.title),\n message: this.translate.instant(options.message),\n buttons: [\n {\n text: options.cancelButtonTitle\n ? this.translate.instant(options.cancelButtonTitle)\n : this.translate.instant('buttons_cancel'),\n role: 'cancel',\n handler: () => resolveFunction(false)\n },\n {\n text: options.okButtonTitle ? this.translate.instant(options.okButtonTitle) : 'OK',\n handler: () => resolveFunction(true)\n }\n ]\n });\n await alert.present();\n }\n return new Promise(resolve => {\n resolveFunction = resolve;\n });\n }\n }\n\n /*\n * A method to display prompt dialog\n */\n public async showPrompt(\n options: PromptOptions,\n inputType: 'text' | 'number' | 'checkbox' = 'text'\n ): Promise {\n if (Capacitor.isNativePlatform()) {\n const { value, cancelled } = await Dialog.prompt({\n title: this.translate.instant(options.title || ''),\n message: this.translate.instant(options.message),\n inputText: options.inputText ? this.translate.instant(options.inputText) : null,\n cancelButtonTitle: this.translate.instant(options.cancelButtonTitle || 'buttons_cancel')\n });\n return { value, cancelled };\n } else {\n let resolveFunction: (result: PromptResult) => PromptResult;\n const alert = await this.alertController.create({\n inputs: [\n {\n name: 'value',\n type: inputType,\n placeholder: options.inputPlaceholder ? this.translate.instant(options.inputPlaceholder) : null,\n value: options.inputText ? this.translate.instant(options.inputText) : null,\n label: options.inputPlaceholder ? this.translate.instant(options.inputPlaceholder) : null\n }\n ],\n backdropDismiss: false,\n header: this.translate.instant(options.title || ''),\n message: this.translate.instant(options.message),\n buttons: [\n {\n text: 'OK',\n handler: (result: PromptResult): void => {\n // we have to parse the result here in order of the input type\n if (inputType === 'number' || inputType === 'text') {\n resolveFunction({\n value: result && result.value,\n cancelled: false\n });\n } else if (inputType === 'checkbox') {\n let checkboxResult = result as any;\n resolveFunction({\n value: result && checkboxResult[0] ? checkboxResult[0] : '',\n cancelled: false\n });\n }\n }\n },\n {\n text: this.translate.instant(options.cancelButtonTitle || 'buttons_cancel'),\n role: 'cancel',\n handler: () =>\n resolveFunction({\n value: '',\n cancelled: true\n })\n }\n ]\n });\n await alert.present();\n return new Promise(resolve => {\n resolveFunction = resolve as any;\n });\n }\n }\n}\n"],"names":["Dialog","registerPlugin","m","DialogService","constructor","alertController","inject","AlertController","translate","TranslateService","showAlert","options","__async","Capacitor","isNativePlatform","Dialog","alert","resolveFunction","create","backdropDismiss","header","instant","title","message","buttons","text","handler","present","Promise","resolve","showConfirm","value","confirm","__spreadValues","cancelButtonTitle","okButtonTitle","role","showPrompt","inputType","cancelled","prompt","inputText","inputs","name","type","placeholder","inputPlaceholder","label","result","checkboxResult","factory","ɵfac","providedIn","_DialogService"],"mappings":"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","debug_id":"c2e45987-7e7e-5baf-b2a2-b8c40b2cc487"}