UNPKG

truly-ui

Version:

Web Components for Desktop Applications.

89 lines (87 loc) 13.9 kB
/* MIT License Copyright (c) 2019 Temainfo Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ import { Injectable } from '@angular/core'; import { TlDialogInfo } from './dialog-info/dialog-info'; import { TlDialogAlert } from './dialog-alert/dialog-alert'; import { TlDialogError } from './dialog-error/dialog-error'; import { TlDialogConfirmation } from './dialog-confirmation/dialog-confirmation'; import { ModalResult } from '../core/enums/modal-result'; import * as i0 from "@angular/core"; import * as i1 from "../modal/services/modal.service"; export class DialogService { constructor(modalService, factoryResolver) { this.modalService = modalService; this.factoryResolver = factoryResolver; } info(message, options = {}, mdOptions) { return new Promise((resolve) => { this.modalService.createModalDialog(TlDialogInfo, this.factoryResolver, mdOptions).then(value => { resolve(value); }); const optionsObj = Object.assign(options, { message: message }); this.setDialogOptions(optionsObj); }); } alert(message, options = {}, mdOptions) { return new Promise((resolve) => { this.modalService.createModalDialog(TlDialogAlert, this.factoryResolver, mdOptions).then(value => { resolve(value); }); const optionsObj = Object.assign(options, { message: message }); this.setDialogOptions(optionsObj); }); } error(message, options = {}, mdOptions) { return new Promise((resolve) => { this.modalService.createModalDialog(TlDialogError, this.factoryResolver, mdOptions).then(value => { resolve(value); }); const optionsObj = Object.assign(options, { message: message }); this.setDialogOptions(optionsObj); }); } confirmation(message, callbackConfirmation, options = {}, mdOptions) { this.modalService.createModalDialog(TlDialogConfirmation, this.factoryResolver, mdOptions).then((value) => { if (value.mdResult === ModalResult.MRYES) { if (callbackConfirmation.isYes) { callbackConfirmation.isYes(ModalResult.MRYES); } } else if (value.mdResult === ModalResult.MRNO) { if (callbackConfirmation.isNo) { callbackConfirmation.isNo(ModalResult.MRNO); } } }); const optionsObj = Object.assign(options, { message: message }); this.setDialogOptions(optionsObj); } setDialogOptions(options) { Object.keys(options).forEach((value) => { this.modalService.componentInjected.instance[value] = options[value]; }); } } /** @nocollapse */ DialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogService, deps: [{ token: i1.ModalService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ DialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.ModalService }, { type: i0.ComponentFactoryResolver }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90cnVseS11aS9zcmMvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFPakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFRekQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBcUIsWUFBMEIsRUFBVSxlQUF5QztRQUE3RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtJQUNsRyxDQUFDO0lBRUQsSUFBSSxDQUFFLE9BQWUsRUFBRSxVQUF1QixFQUFFLEVBQUUsU0FBd0I7UUFDeEUsT0FBTyxJQUFJLE9BQU8sQ0FBRSxDQUFFLE9BQU8sRUFBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFFLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNqRyxPQUFPLENBQUUsS0FBSyxDQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFFLENBQUM7WUFDSixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FB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Iiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBNSVQgTGljZW5zZVxuXG4gQ29weXJpZ2h0IChjKSAyMDE5IFRlbWFpbmZvIFNvZnR3YXJlXG5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uL21vZGFsL3NlcnZpY2VzL21vZGFsLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBUbERpYWxvZ0luZm8gfSBmcm9tICcuL2RpYWxvZy1pbmZvL2RpYWxvZy1pbmZvJztcbmltcG9ydCB7IFRsRGlhbG9nQWxlcnQgfSBmcm9tICcuL2RpYWxvZy1hbGVydC9kaWFsb2ctYWxlcnQnO1xuaW1wb3J0IHsgVGxEaWFsb2dFcnJvciB9IGZyb20gJy4vZGlhbG9nLWVycm9yL2RpYWxvZy1lcnJvcic7XG5pbXBvcnQgeyBUbERpYWxvZ0NvbmZpcm1hdGlvbiB9IGZyb20gJy4vZGlhbG9nLWNvbmZpcm1hdGlvbi9kaWFsb2ctY29uZmlybWF0aW9uJztcblxuaW1wb3J0IHsgQ29uZmlybWF0aW9uT3B0aW9ucyB9IGZyb20gJy4vZGlhbG9nLWNvbmZpcm1hdGlvbi9jb25maXJtYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBFcnJvck9wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy1lcnJvci9lcnJvci1vcHRpb25zJztcbmltcG9ydCB7IEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4vZGlhbG9nLWFsZXJ0L2FsZXJ0LW9wdGlvbnMnO1xuaW1wb3J0IHsgSW5mb09wdGlvbnMgfSBmcm9tICcuL2RpYWxvZy1pbmZvL2luZm8tb3B0aW9ucyc7XG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICcuLi9tb2RhbC9pbnRlcmZhY2VzL21vZGFsLW9wdGlvbnMnO1xuaW1wb3J0IHsgTW9kYWxSZXN1bHQgfSBmcm9tICcuLi9jb3JlL2VudW1zL21vZGFsLXJlc3VsdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybUNhbGxiYWNrIHtcbiAgaXNZZXM/OiBhbnk7XG4gIGlzTm8/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciApIHtcbiAgfVxuXG4gIGluZm8oIG1lc3NhZ2U6IHN0cmluZywgb3B0aW9uczogSW5mb09wdGlvbnMgPSB7fSwgbWRPcHRpb25zPzogTW9kYWxPcHRpb25zICkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSggKCByZXNvbHZlICkgPT4ge1xuICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuY3JlYXRlTW9kYWxEaWFsb2coIFRsRGlhbG9nSW5mbywgdGhpcy5mYWN0b3J5UmVzb2x2ZXIsIG1kT3B0aW9ucyApLnRoZW4oIHZhbHVlID0+IHtcbiAgICAgICAgcmVzb2x2ZSggdmFsdWUgKTtcbiAgICAgIH0gKTtcbiAgICAgIGNvbnN0IG9wdGlvbnNPYmogPSBPYmplY3QuYXNzaWduKCBvcHRpb25zLCB7IG1lc3NhZ2U6IG1lc3NhZ2UgfSApO1xuICAgICAgdGhpcy5zZXREaWFsb2dPcHRpb25zKCBvcHRpb25zT2JqICk7XG4gICAgfSApO1xuICB9XG5cbiAgYWxlcnQoIG1lc3NhZ2U6IHN0cmluZywgb3B0aW9uczogQWxlcnRPcHRpb25zID0ge30sIG1kT3B0aW9ucz86IE1vZGFsT3B0aW9ucyApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoICggcmVzb2x2ZSApID0+IHtcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNyZWF0ZU1vZGFsRGlhbG9nKCBUbERpYWxvZ0FsZXJ0LCB0aGlzLmZhY3RvcnlSZXNvbHZlciwgbWRPcHRpb25zICkudGhlbiggdmFsdWUgPT4ge1xuICAgICAgICByZXNvbHZlKCB2YWx1ZSApO1xuICAgICAgfSApO1xuICAgICAgY29uc3Qgb3B0aW9uc09iaiA9IE9iamVjdC5hc3NpZ24oIG9wdGlvbnMsIHsgbWVzc2FnZTogbWVzc2FnZSB9ICk7XG4gICAgICB0aGlzLnNldERpYWxvZ09wdGlvbnMoIG9wdGlvbnNPYmogKTtcbiAgICB9ICk7XG4gIH1cblxuICBlcnJvciggbWVzc2FnZTogc3RyaW5nLCBvcHRpb25zOiBFcnJvck9wdGlvbnMgPSB7fSwgbWRPcHRpb25zPzogTW9kYWxPcHRpb25zICkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSggKCByZXNvbHZlICkgPT4ge1xuICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuY3JlYXRlTW9kYWxEaWFsb2coIFRsRGlhbG9nRXJyb3IsIHRoaXMuZmFjdG9yeVJlc29sdmVyLCBtZE9wdGlvbnMgKS50aGVuKCB2YWx1ZSA9PiB7XG4gICAgICAgIHJlc29sdmUoIHZhbHVlICk7XG4gICAgICB9ICk7XG4gICAgICBjb25zdCBvcHRpb25zT2JqID0gT2JqZWN0LmFzc2lnbiggb3B0aW9ucywgeyBtZXNzYWdlOiBtZXNzYWdlIH0gKTtcbiAgICAgIHRoaXMuc2V0RGlhbG9nT3B0aW9ucyggb3B0aW9uc09iaiApO1xuICAgIH0gKTtcbiAgfVxuXG4gIGNvbmZpcm1hdGlvbiggbWVzc2FnZTogc3RyaW5nLCBjYWxsYmFja0NvbmZpcm1hdGlvbjogQ29uZmlybUNhbGxiYWNrLCBvcHRpb25zOiBDb25maXJtYXRpb25PcHRpb25zID0ge30sIG1kT3B0aW9ucz86IE1vZGFsT3B0aW9ucyApIHtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jcmVhdGVNb2RhbERpYWxvZyggVGxEaWFsb2dDb25maXJtYXRpb24sIHRoaXMuZmFjdG9yeVJlc29sdmVyLCBtZE9wdGlvbnMgKS50aGVuKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoIHZhbHVlLm1kUmVzdWx0ID09PSBNb2RhbFJlc3VsdC5NUllFUyApIHtcbiAgICAgICAgaWYgKGNhbGxiYWNrQ29uZmlybWF0aW9uLmlzWWVzKSB7XG4gICAgICAgICAgY2FsbGJhY2tDb25maXJtYXRpb24uaXNZZXMoTW9kYWxSZXN1bHQuTVJZRVMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLm1kUmVzdWx0ID09PSBNb2RhbFJlc3VsdC5NUk5PKSB7XG4gICAgICAgIGlmIChjYWxsYmFja0NvbmZpcm1hdGlvbi5pc05vKSB7XG4gICAgICAgICAgY2FsbGJhY2tDb25maXJtYXRpb24uaXNObyhNb2RhbFJlc3VsdC5NUk5PKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9wdGlvbnNPYmogPSBPYmplY3QuYXNzaWduKCBvcHRpb25zLCB7IG1lc3NhZ2U6IG1lc3NhZ2UgfSApO1xuICAgIHRoaXMuc2V0RGlhbG9nT3B0aW9ucyggb3B0aW9uc09iaiApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaWFsb2dPcHRpb25zKCBvcHRpb25zICkge1xuICAgIE9iamVjdC5rZXlzKCBvcHRpb25zICkuZm9yRWFjaCggKCB2YWx1ZSApID0+IHtcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmNvbXBvbmVudEluamVjdGVkLmluc3RhbmNlWyB2YWx1ZSBdID0gb3B0aW9uc1sgdmFsdWUgXTtcbiAgICB9ICk7XG4gIH1cbn1cbiJdfQ==