UNPKG

@dbg-riskit/angular-view

Version:

134 lines 17.4 kB
import { Injectable } from '@angular/core'; import { first } from 'rxjs/operators'; import { LoaderComponent } from './loader.component'; import { MessageDialogComponent } from './message.dialog.component'; import { ProgressLoaderComponent } from './progress.loader.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; export class DialogService { constructor(dialog) { this.dialog = dialog; } showWarnDialog(message, note) { return this.showMessageDialog({ dialogType: 'warning', message, note }); } showWarnQuestionDialog(destroyCallback, destructiveButtonLabel, message, note) { return this.showMessageDialog({ dialogType: 'warning', message, note, buttons: [ { label: destructiveButtonLabel, value: true, primary: true }, { label: 'Cancel', value: false } ], answerCallback(result) { if (result) { destroyCallback(); } } }); } showErrorDialog(message, note) { return this.showMessageDialog({ dialogType: 'error', message, note }); } showInfoDialog(message, note) { return this.showMessageDialog({ dialogType: 'info', message, note }); } showSuccessDialog(message, note) { return this.showMessageDialog({ dialogType: 'success', message, note }); } showQuestionDialog(buttons, answerCallback, message, note) { return this.showMessageDialog({ dialogType: 'question', message, note, buttons, answerCallback }); } showMessageDialog(config) { return this.showDialog(MessageDialogComponent, { ...config.config, data: { dialogType: config.dialogType, buttons: config.buttons, title: config.title, message: config.message, note: config.note, icon: config.icon } }, config.answerCallback); } /* eslint-enable */ showLoaderDialog(data) { if (typeof data === 'string') { data = { title: data }; } return this.showDialog(LoaderComponent, { disableClose: true, hasBackdrop: true, data }); } /* eslint-enable */ showProgressLoaderDialog(data) { if (typeof data === 'string') { data = { title: data }; } return this.showDialog(ProgressLoaderComponent, { disableClose: true, hasBackdrop: true, data }); } /* eslint-enable */ showDialog(dialogClass, configOrCallback, callback) { let config; if (typeof configOrCallback === 'function') { callback = configOrCallback; } else { config = configOrCallback; } const dialogRef = this.dialog.open(dialogClass, config); dialogRef.afterClosed().pipe(first()).subscribe((result) => { if (callback) { callback(result); } }); return dialogRef.componentInstance; } } DialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); DialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DialogService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DialogService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcvc3JjL2xpYi9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQTZCLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQy9FLE9BQU8sRUFJSCxzQkFBc0IsRUFDekIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQXFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7OztBQW9CeEcsTUFBTSxPQUFPLGFBQWE7SUFFdEIsWUFBbUMsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUNwRCxDQUFDO0lBRU0sY0FBYyxDQUFDLE9BQWUsRUFBRSxJQUFhO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzFCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLE9BQU87WUFDUCxJQUFJO1NBQ1AsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGVBQTJCLEVBQzNCLHNCQUE4QixFQUM5QixPQUFlLEVBQ2YsSUFBYTtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQixVQUFVLEVBQUUsU0FBUztZQUNyQixPQUFPO1lBQ1AsSUFBSTtZQUNKLE9BQU8sRUFBSztnQkFDUjtvQkFDSSxLQUFLLEVBQUksc0JBQXNCO29CQUMvQixLQUFLLEVBQUksSUFBSTtvQkFDYixPQUFPLEVBQUUsSUFBSTtpQkFDaEI7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLFFBQVE7b0JBQ2YsS0FBSyxFQUFFLEtBQUs7aUJBQ2Y7YUFDSjtZQUNELGNBQWMsQ0FBQyxNQUFnQjtnQkFDM0IsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsZUFBZSxFQUFFLENBQUM7aUJBQ3JCO1lBQ0wsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlLENBQUMsT0FBZSxFQUFFLElBQWE7UUFDakQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDMUIsVUFBVSxFQUFFLE9BQU87WUFDbkIsT0FBTztZQUNQLElBQUk7U0FDUCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sY0FBYyxDQUFDLE9BQWUsRUFBRSxJQUFhO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzFCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLE9BQU87WUFDUCxJQUFJO1NBQ1AsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxJQUFhO1FBQ25ELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzFCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLE9BQU87WUFDUCxJQUFJO1NBQ1AsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGtCQUFrQixDQUFJLE9BQStCLEVBQy9CLGNBQW1DLEVBQ25DLE9BQWUsRUFDZixJQUFhO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzFCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLE9BQU87WUFDUCxJQUFJO1lBQ0osT0FBTztZQUNQLGNBQWM7U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGlCQUFpQixDQUFJLE1BUzNCO1FBQ0csT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFO1lBQ3ZDLEdBQUcsTUFBTSxDQUFDLE1BQU07WUFDaEIsSUFBSSxFQUFFO2dCQUNGLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDN0IsT0FBTyxFQUFLLE1BQU0sQ0FBQyxPQUFPO2dCQUMxQixLQUFLLEVBQU8sTUFBTSxDQUFDLEtBQUs7Z0JBQ3hCLE9BQU8sRUFBSyxNQUFNLENBQUMsT0FBTztnQkFDMUIsSUFBSSxFQUFRLE1BQU0sQ0FBQyxJQUFJO2dCQUN2QixJQUFJLEVBQVEsTUFBTSxDQUFDLElBQUk7YUFDQTtTQUM5QixFQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBS0QsbUJBQW1CO0lBQ1osZ0JBQWdCLENBQUMsSUFBMkI7UUFDL0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxHQUFHO2dCQUNILEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRTtZQUNwQyxZQUFZLEVBQUUsSUFBSTtZQUNsQixXQUFXLEVBQUcsSUFBSTtZQUNsQixJQUFJO1NBQ1AsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUtELG1CQUFtQjtJQUNaLHdCQUF3QixDQUFDLElBQW1DO1FBQy9ELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLElBQUksR0FBRztnQkFDSCxLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRTtZQUM1QyxZQUFZLEVBQUUsSUFBSTtZQUNsQixXQUFXLEVBQUcsSUFBSTtZQUNsQixJQUFJO1NBQ1AsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVdELG1CQUFtQjtJQUNaLFVBQVUsQ0FBd0MsV0FBb0IsRUFDcEIsZ0JBQzRCLEVBQzVCLFFBQStCO1FBQ3BGLElBQUksTUFBbUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssVUFBVSxFQUFFO1lBQ3hDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztTQUMvQjthQUFNO1lBQ0gsTUFBTSxHQUFHLGdCQUFnQixDQUFDO1NBQzdCO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhELFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQ3hCLEtBQUssRUFBRSxDQUNWLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBVSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztJQUN2QyxDQUFDOzswR0F2S1EsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RpYWxvZ0RhdGEgYXMgTG9hZGVyQ29uZmlnLCBMb2FkZXJDb21wb25lbnR9IGZyb20gJy4vbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIERpYWxvZ0J1dHRvbixcbiAgICBEaWFsb2dDb25maWcgYXMgTWVzc2FnZURpYWxvZ0NvbmZpZyxcbiAgICBEaWFsb2dUeXBlLFxuICAgIE1lc3NhZ2VEaWFsb2dDb21wb25lbnRcbn0gZnJvbSAnLi9tZXNzYWdlLmRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtEaWFsb2dEYXRhIGFzIFByb2dyZXNzTG9hZGVyQ29uZmlnLCBQcm9ncmVzc0xvYWRlckNvbXBvbmVudH0gZnJvbSAnLi9wcm9ncmVzcy5sb2FkZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dDb25maWc8VD4ge1xuICAgIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuICovXG4gICAgcmVhZG9ubHkgcGFuZWxDbGFzcz86IHN0cmluZztcbiAgICAvKiogV2hldGhlciB0aGUgZGlhbG9nIGhhcyBhIGJhY2tkcm9wLiAqL1xuICAgIHJlYWRvbmx5IGhhc0JhY2tkcm9wPzogYm9vbGVhbjtcbiAgICAvKiogQ3VzdG9tIGNsYXNzIGZvciB0aGUgYmFja2Ryb3AsICovXG4gICAgcmVhZG9ubHkgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcbiAgICAvKiogV2hldGhlciB0aGUgdXNlciBjYW4gdXNlIGVzY2FwZSBvciBjbGlja2luZyBvdXRzaWRlIHRvIGNsb3NlIGEgbW9kYWwuICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZUNsb3NlPzogYm9vbGVhbjtcblxuICAgIHJlYWRvbmx5IGRhdGE/OiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbXBvbmVudDxULCBSID0gdW5rbm93bj4ge1xuICAgIHJlYWRvbmx5IGRpYWxvZ0RhdGE6IFQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd1dhcm5EaWFsb2cobWVzc2FnZTogc3RyaW5nLCBub3RlPzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dNZXNzYWdlRGlhbG9nKHtcbiAgICAgICAgICAgIGRpYWxvZ1R5cGU6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBub3RlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93V2FyblF1ZXN0aW9uRGlhbG9nKGRlc3Ryb3lDYWxsYmFjazogKCkgPT4gdm9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0cnVjdGl2ZUJ1dHRvbkxhYmVsOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd01lc3NhZ2VEaWFsb2coe1xuICAgICAgICAgICAgZGlhbG9nVHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIG5vdGUsXG4gICAgICAgICAgICBidXR0b25zICAgOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbCAgOiBkZXN0cnVjdGl2ZUJ1dHRvbkxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5OiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFuc3dlckNhbGxiYWNrKHJlc3VsdD86IGJvb2xlYW4pIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lDYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dFcnJvckRpYWxvZyhtZXNzYWdlOiBzdHJpbmcsIG5vdGU/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd01lc3NhZ2VEaWFsb2coe1xuICAgICAgICAgICAgZGlhbG9nVHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBub3RlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93SW5mb0RpYWxvZyhtZXNzYWdlOiBzdHJpbmcsIG5vdGU/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd01lc3NhZ2VEaWFsb2coe1xuICAgICAgICAgICAgZGlhbG9nVHlwZTogJ2luZm8nLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIG5vdGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dTdWNjZXNzRGlhbG9nKG1lc3NhZ2U6IHN0cmluZywgbm90ZT86IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93TWVzc2FnZURpYWxvZyh7XG4gICAgICAgICAgICBkaWFsb2dUeXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgbm90ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd1F1ZXN0aW9uRGlhbG9nPFI+KGJ1dHRvbnM6IEFycmF5PERpYWxvZ0J1dHRvbjxSPj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXJDYWxsYmFjazogKHZhbHVlPzogUikgPT4gdm9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd01lc3NhZ2VEaWFsb2coe1xuICAgICAgICAgICAgZGlhbG9nVHlwZTogJ3F1ZXN0aW9uJyxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBub3RlLFxuICAgICAgICAgICAgYnV0dG9ucyxcbiAgICAgICAgICAgIGFuc3dlckNhbGxiYWNrXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93TWVzc2FnZURpYWxvZzxSPihjb25maWc6IHtcbiAgICAgICAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZTtcbiAgICAgICAgYnV0dG9ucz86IEFycmF5PERpYWxvZ0J1dHRvbjxSPj47XG4gICAgICAgIGFuc3dlckNhbGxiYWNrPzogKHZhbHVlPzogUikgPT4gdm9pZDtcbiAgICAgICAgY29uZmlnPzogRGlhbG9nQ29uZmlnPHVuZGVmaW5lZD47XG4gICAgICAgIHRpdGxlPzogc3RyaW5nLFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAgIG5vdGU/OiBzdHJpbmc7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgfSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93RGlhbG9nKE1lc3NhZ2VEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAuLi5jb25maWcuY29uZmlnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nVHlwZTogY29uZmlnLmRpYWxvZ1R5cGUsXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMgICA6IGNvbmZpZy5idXR0b25zLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZSAgICAgOiBjb25maWcudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICA6IGNvbmZpZy5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICBub3RlICAgICAgOiBjb25maWcubm90ZSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbiAgICAgIDogY29uZmlnLmljb25cbiAgICAgICAgICAgICAgICB9IGFzIE1lc3NhZ2VEaWFsb2dDb25maWc8Uj5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25maWcuYW5zd2VyQ2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmlmaWVkLXNpZ25hdHVyZXMgKi9cbiAgICBwdWJsaWMgc2hvd0xvYWRlckRpYWxvZyh0aXRsZTogc3RyaW5nKTogTG9hZGVyQ29tcG9uZW50O1xuICAgIHB1YmxpYyBzaG93TG9hZGVyRGlhbG9nKGRhdGE6IExvYWRlckNvbmZpZyk6IExvYWRlckNvbXBvbmVudDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gICAgcHVibGljIHNob3dMb2FkZXJEaWFsb2coZGF0YTogc3RyaW5nIHwgTG9hZGVyQ29uZmlnKTogTG9hZGVyQ29tcG9uZW50IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RGlhbG9nKExvYWRlckNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3AgOiB0cnVlLFxuICAgICAgICAgICAgZGF0YVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5pZmllZC1zaWduYXR1cmVzICovXG4gICAgcHVibGljIHNob3dQcm9ncmVzc0xvYWRlckRpYWxvZyh0aXRsZTogc3RyaW5nKTogUHJvZ3Jlc3NMb2FkZXJDb21wb25lbnQ7XG4gICAgcHVibGljIHNob3dQcm9ncmVzc0xvYWRlckRpYWxvZyhkYXRhOiBQcm9ncmVzc0xvYWRlckNvbmZpZyk6IFByb2dyZXNzTG9hZGVyQ29tcG9uZW50O1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgICBwdWJsaWMgc2hvd1Byb2dyZXNzTG9hZGVyRGlhbG9nKGRhdGE6IHN0cmluZyB8IFByb2dyZXNzTG9hZGVyQ29uZmlnKTogUHJvZ3Jlc3NMb2FkZXJDb21wb25lbnQge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0RpYWxvZyhQcm9ncmVzc0xvYWRlckNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3AgOiB0cnVlLFxuICAgICAgICAgICAgZGF0YVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5pZmllZC1zaWduYXR1cmVzICovXG4gICAgcHVibGljIHNob3dEaWFsb2c8VCBleHRlbmRzIERpYWxvZ0NvbXBvbmVudDxELCBSPiwgRCwgUj4oZGlhbG9nQ2xhc3M6IFR5cGU8VD4pOiBUO1xuICAgIHB1YmxpYyBzaG93RGlhbG9nPFQgZXh0ZW5kcyBEaWFsb2dDb21wb25lbnQ8RCwgUj4sIEQsIFI+KGRpYWxvZ0NsYXNzOiBUeXBlPFQ+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz86IERpYWxvZ0NvbmZpZzxEPik6IFQ7XG4gICAgcHVibGljIHNob3dEaWFsb2c8VCBleHRlbmRzIERpYWxvZ0NvbXBvbmVudDxELCBSPiwgRCwgUj4oZGlhbG9nQ2xhc3M6IFR5cGU8VD4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s/OiAocmVzdWx0PzogUikgPT4gdm9pZCk6IFQ7XG4gICAgcHVibGljIHNob3dEaWFsb2c8VCBleHRlbmRzIERpYWxvZ0NvbXBvbmVudDxELCBSPiwgRCwgUj4oZGlhbG9nQ2xhc3M6IFR5cGU8VD4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPzogRGlhbG9nQ29uZmlnPEQ+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPzogKHJlc3VsdD86IFIpID0+IHZvaWQpOiBUO1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgICBwdWJsaWMgc2hvd0RpYWxvZzxUIGV4dGVuZHMgRGlhbG9nQ29tcG9uZW50PEQsIFI+LCBELCBSPihkaWFsb2dDbGFzczogVHlwZTxUPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdPckNhbGxiYWNrPzogRGlhbG9nQ29uZmlnPEQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChyZXN1bHQ/OiBSKSA9PiB2b2lkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz86IChyZXN1bHQ/OiBSKSA9PiB2b2lkKTogVCB7XG4gICAgICAgIGxldCBjb25maWc6IERpYWxvZ0NvbmZpZzxEPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWdPckNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IGNvbmZpZ09yQ2FsbGJhY2s7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcgPSBjb25maWdPckNhbGxiYWNrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZGlhbG9nQ2xhc3MsIGNvbmZpZyk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdD86IFIpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfVxufVxuIl19