UNPKG

ontimize-web-ngx

Version:
143 lines 23.5 kB
import { Component, ViewEncapsulation, forwardRef } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; import { ODialogBase } from './o-dialog-base.class'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; import * as i2 from "@angular/common"; import * as i3 from "@angular/flex-layout/flex"; import * as i4 from "@angular/material/button"; import * as i5 from "@angular/material/icon"; import * as i6 from "../../../pipes/o-translate.pipe"; export class ODialogComponent { constructor(dialogRef) { this.dialogRef = dialogRef; } onOkClick() { if (this.dialogRef) { this.dialogRef.close(true); } } alert(title, message, config) { config = this.ensureConfig(config); this.configureDefaultAlert(title, message, config); } info(title, message, config) { config = this.ensureConfig(config); config.alertType = 'info'; if (typeof (config.icon) === 'undefined') { config.icon = 'info'; } this.configureDefaultAlert(title, message, config); } warn(title, message, config) { config = this.ensureConfig(config); config.alertType = 'warn'; if (typeof (config.icon) === 'undefined') { config.icon = 'warning'; } this.configureDefaultAlert(title, message, config); } error(title, message, config) { config = this.ensureConfig(config); config.alertType = 'error'; if (typeof (config.icon) === 'undefined') { config.icon = 'error'; } this.configureDefaultAlert(title, message, config); } confirm(title, message, config) { config = this.ensureConfig(config); this.configureDefaultAlert(title, message, config); this.twoOptions = true; } ensureConfig(config) { if (!config) { config = {}; } return config; } configureDefaultAlert(title, message, config) { this.twoOptions = false; this.title = title; this.message = message; this.icon = (typeof (config.icon) !== 'undefined') ? config.icon : undefined; if (this.icon !== undefined) { this.useIcon = true; } this.alertType = config.alertType; this.okButtonText = (typeof (config.okButtonText) !== 'undefined') ? config.okButtonText : ODialogComponent.DEFAULT_OK_BUTTON_TEXT; this.cancelButtonText = (typeof (config.cancelButtonText) !== 'undefined') ? config.cancelButtonText : ODialogComponent.DEFAULT_CANCEL_BUTTON_TEXT; } get isInfo() { return this.alertType === 'info'; } get isWarn() { return this.alertType === 'warn'; } get isError() { return this.alertType === 'error'; } get title() { return this._title; } set title(val) { this._title = val; } get message() { return this._message; } set message(val) { this._message = val; } get okButtonText() { return this._okButtonText; } set okButtonText(val) { this._okButtonText = val; } get cancelButtonText() { return this._cancelButtonText; } set cancelButtonText(val) { this._cancelButtonText = val; } get icon() { return this._icon; } set icon(val) { this._icon = val; } get alertType() { return this._alertType; } set alertType(val) { this._alertType = val; } get twoOptions() { return this._twoOptions; } set twoOptions(val) { this._twoOptions = val; } get useIcon() { return this._useIcon; } set useIcon(val) { this._useIcon = val; } } ODialogComponent.DEFAULT_OK_BUTTON_TEXT = 'OK'; ODialogComponent.DEFAULT_CANCEL_BUTTON_TEXT = 'CANCEL'; ODialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); ODialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ODialogComponent, selector: "o-dialog", host: { properties: { "class.o-dialog": "true" } }, providers: [ { provide: ODialogBase, useExisting: forwardRef(() => ODialogComponent) } ], ngImport: i0, template: "<div *ngIf=\"title && title.length > 0\" mat-dialog-title>{{ title | oTranslate }}</div>\n<div mat-dialog-content>\n <div fxLayout=\"row\" class=\"alert-content\" [class.alert-content-icon]=\"useIcon\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"useIcon\" class=\"alert-icon\" [class.info]=\"isInfo\" [class.warn]=\"isWarn\" [class.error]=\"isError\">\n {{ icon }}\n </mat-icon>\n <span [innerHTML]=\"message | oTranslate\"></span>\n </div>\n</div>\n<mat-dialog-actions align=\"end\">\n <span fxFlex></span>\n <button type=\"button\" *ngIf=\"twoOptions\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">\n {{ cancelButtonText | oTranslate }}\n </button>\n <button type=\"button\" mat-stroked-button class=\"o-button-primary\" (click)=\"onOkClick()\">{{ okButtonText | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-dialog{cursor:default}.o-dialog .alert-content{box-sizing:border-box;flex:1 1 100%;display:flex;flex-direction:row;place-content:center space-between;align-items:center}.o-dialog .alert-content-icon{min-height:70px}.o-dialog .alert-icon{font-size:50px;margin-right:16px;min-height:50px;min-width:50px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODialogComponent, decorators: [{ type: Component, args: [{ selector: 'o-dialog', encapsulation: ViewEncapsulation.None, host: { '[class.o-dialog]': 'true' }, providers: [ { provide: ODialogBase, useExisting: forwardRef(() => ODialogComponent) } ], template: "<div *ngIf=\"title && title.length > 0\" mat-dialog-title>{{ title | oTranslate }}</div>\n<div mat-dialog-content>\n <div fxLayout=\"row\" class=\"alert-content\" [class.alert-content-icon]=\"useIcon\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"useIcon\" class=\"alert-icon\" [class.info]=\"isInfo\" [class.warn]=\"isWarn\" [class.error]=\"isError\">\n {{ icon }}\n </mat-icon>\n <span [innerHTML]=\"message | oTranslate\"></span>\n </div>\n</div>\n<mat-dialog-actions align=\"end\">\n <span fxFlex></span>\n <button type=\"button\" *ngIf=\"twoOptions\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">\n {{ cancelButtonText | oTranslate }}\n </button>\n <button type=\"button\" mat-stroked-button class=\"o-button-primary\" (click)=\"onOkClick()\">{{ okButtonText | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-dialog{cursor:default}.o-dialog .alert-content{box-sizing:border-box;flex:1 1 100%;display:flex;flex-direction:row;place-content:center space-between;align-items:center}.o-dialog .alert-content-icon{min-height:70px}.o-dialog .alert-icon{font-size:50px;margin-right:16px;min-height:50px;min-width:50px}\n"] }] }], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2RpYWxvZy9vLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9nL28tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBZXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFDUyxTQUF5QztRQUF6QyxjQUFTLEdBQVQsU0FBUyxDQUFnQztJQUNsRCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxNQUFzQjtRQUNqRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sSUFBSSxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsTUFBc0I7UUFDaEUsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFD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LElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQVc7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsR0FBWTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFZO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7O0FBOUpnQix1Q0FBc0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsMkNBQTBCLEdBQUcsUUFBUSxDQUFDOzhHQUg1QyxnQkFBZ0I7a0dBQWhCLGdCQUFnQix1RkFMaEI7UUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO0tBRTFFLDBCQ2pCSCw4MkJBZ0JBOzRGREdhLGdCQUFnQjtrQkFiNUIsU0FBUzsrQkFDRSxVQUFVLGlCQUdMLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osa0JBQWtCLEVBQUUsTUFBTTtxQkFDM0IsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtxQkFFMUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgdHlwZSB7IE9EaWFsb2dDb25maWcgfSBmcm9tICcuL28tZGlhbG9nLmNvbmZpZyc7XG5pbXBvcnQgeyBPRGlhbG9nQmFzZSB9IGZyb20gJy4vby1kaWFsb2ctYmFzZS5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1kaWFsb2ddJzogJ3RydWUnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogT0RpYWxvZ0Jhc2UsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9EaWFsb2dDb21wb25lbnQpIH1cblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9EaWFsb2dDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgREVGQVVMVF9PS19CVVRUT05fVEVYVCA9ICdPSyc7XG4gIHByb3RlY3RlZCBzdGF0aWMgREVGQVVMVF9DQU5DRUxfQlVUVE9OX1RFWFQgPSAnQ0FOQ0VMJztcblxuICBwcm90ZWN0ZWQgX3RpdGxlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbWVzc2FnZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29rQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90d29PcHRpb25zOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3VzZUljb246IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfaWNvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2FsZXJ0VHlwZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxPRGlhbG9nQ29tcG9uZW50Pikge1xuICB9XG5cbiAgb25Pa0NsaWNrKCkge1xuICAgIGlmICh0aGlzLmRpYWxvZ1JlZikge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFsZXJ0KHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgY29uZmlnPzogT0RpYWxvZ0NvbmZpZykge1xuICAgIGNvbmZpZyA9IHRoaXMuZW5zdXJlQ29uZmlnKGNvbmZpZyk7XG4gICAgdGhpcy5jb25maWd1cmVEZWZhdWx0QWxlcnQodGl0bGUsIG1lc3NhZ2UsIGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgaW5mbyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IE9EaWFsb2dDb25maWcpIHtcbiAgICBjb25maWcgPSB0aGlzLmVuc3VyZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbmZpZy5hbGVydFR5cGUgPSAnaW5mbyc7XG4gICAgaWYgKHR5cGVvZiAoY29uZmlnLmljb24pID09PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uZmlnLmljb24gPSAnaW5mbyc7XG4gICAgfVxuICAgIHRoaXMuY29uZmlndXJlRGVmYXVsdEFsZXJ0KHRpdGxlLCBtZXNzYWdlLCBjb25maWcpO1xuICB9XG5cbiAgcHVibGljIHdhcm4odGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjb25maWc/OiBPRGlhbG9nQ29uZmlnKSB7XG4gICAgY29uZmlnID0gdGhpcy5lbnN1cmVDb25maWcoY29uZmlnKTtcbiAgICBjb25maWcuYWxlcnRUeXBlID0gJ3dhcm4nO1xuICAgIGlmICh0eXBlb2YgKGNvbmZpZy5pY29uKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbmZpZy5pY29uID0gJ3dhcm5pbmcnO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZ3VyZURlZmF1bHRBbGVydCh0aXRsZSwgbWVzc2FnZSwgY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBlcnJvcih0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IE9EaWFsb2dDb25maWcpIHtcbiAgICBjb25maWcgPSB0aGlzLmVuc3VyZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbmZpZy5hbGVydFR5cGUgPSAnZXJyb3InO1xuICAgIGlmICh0eXBlb2YgKGNvbmZpZy5pY29uKSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbmZpZy5pY29uID0gJ2Vycm9yJztcbiAgICB9XG4gICAgdGhpcy5jb25maWd1cmVEZWZhdWx0QWxlcnQodGl0bGUsIG1lc3NhZ2UsIGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlybSh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IE9EaWFsb2dDb25maWcpIHtcbiAgICBjb25maWcgPSB0aGlzLmVuc3VyZUNvbmZpZyhjb25maWcpO1xuICAgIHRoaXMuY29uZmlndXJlRGVmYXVsdEFsZXJ0KHRpdGxlLCBtZXNzYWdlLCBjb25maWcpO1xuICAgIHRoaXMudHdvT3B0aW9ucyA9IHRydWU7XG4gIH1cblxuICAvKiBVdGlsaXR5IG1ldGhvZHMgKi9cbiAgcHJvdGVjdGVkIGVuc3VyZUNvbmZpZyhjb25maWc6IE9EaWFsb2dDb25maWcpOiBPRGlhbG9nQ29uZmlnIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0ge307XG4gICAgfVxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlRGVmYXVsdEFsZXJ0KHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgY29uZmlnPzogT0RpYWxvZ0NvbmZpZykge1xuICAgIHRoaXMudHdvT3B0aW9ucyA9IGZhbHNlO1xuICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuXG4gICAgdGhpcy5pY29uID0gKHR5cGVvZiAoY29uZmlnLmljb24pICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcuaWNvbiA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5pY29uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXNlSWNvbiA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuYWxlcnRUeXBlID0gY29uZmlnLmFsZXJ0VHlwZTtcblxuICAgIHRoaXMub2tCdXR0b25UZXh0ID0gKHR5cGVvZiAoY29uZmlnLm9rQnV0dG9uVGV4dCkgIT09ICd1bmRlZmluZWQnKSA/IGNvbmZpZy5va0J1dHRvblRleHQgOiBPRGlhbG9nQ29tcG9uZW50LkRFRkFVTFRfT0tfQlVUVE9OX1RFWFQ7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gKHR5cGVvZiAoY29uZmlnLmNhbmNlbEJ1dHRvblRleHQpICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcuY2FuY2VsQnV0dG9uVGV4dCA6IE9EaWFsb2dDb21wb25lbnQuREVGQVVMVF9DQU5DRUxfQlVUVE9OX1RFWFQ7XG4gIH1cblxuICBnZXQgaXNJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsZXJ0VHlwZSA9PT0gJ2luZm8nO1xuICB9XG5cbiAgZ2V0IGlzV2FybigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGVydFR5cGUgPT09ICd3YXJuJztcbiAgfVxuXG4gIGdldCBpc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsZXJ0VHlwZSA9PT0gJ2Vycm9yJztcbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuXG4gIHNldCB0aXRsZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX3RpdGxlID0gdmFsO1xuICB9XG5cbiAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZTtcbiAgfVxuXG4gIHNldCBtZXNzYWdlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbWVzc2FnZSA9IHZhbDtcbiAgfVxuXG4gIGdldCBva0J1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fb2tCdXR0b25UZXh0O1xuICB9XG5cbiAgc2V0IG9rQnV0dG9uVGV4dCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX29rQnV0dG9uVGV4dCA9IHZhbDtcbiAgfVxuXG4gIGdldCBjYW5jZWxCdXR0b25UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbmNlbEJ1dHRvblRleHQ7XG4gIH1cblxuICBzZXQgY2FuY2VsQnV0dG9uVGV4dCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX2NhbmNlbEJ1dHRvblRleHQgPSB2YWw7XG4gIH1cblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG5cbiAgc2V0IGljb24odmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pY29uID0gdmFsO1xuICB9XG5cbiAgZ2V0IGFsZXJ0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hbGVydFR5cGU7XG4gIH1cblxuICBzZXQgYWxlcnRUeXBlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWxlcnRUeXBlID0gdmFsO1xuICB9XG5cblxuICBnZXQgdHdvT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdHdvT3B0aW9ucztcbiAgfVxuXG4gIHNldCB0d29PcHRpb25zKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX3R3b09wdGlvbnMgPSB2YWw7XG4gIH1cblxuICBnZXQgdXNlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdXNlSWNvbjtcbiAgfVxuXG4gIHNldCB1c2VJY29uKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX3VzZUljb24gPSB2YWw7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ0aXRsZSAmJiB0aXRsZS5sZW5ndGggPiAwXCIgbWF0LWRpYWxvZy10aXRsZT57eyB0aXRsZSB8IG9UcmFuc2xhdGUgfX08L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJhbGVydC1jb250ZW50XCIgW2NsYXNzLmFsZXJ0LWNvbnRlbnQtaWNvbl09XCJ1c2VJY29uXCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwidXNlSWNvblwiIGNsYXNzPVwiYWxlcnQtaWNvblwiIFtjbGFzcy5pbmZvXT1cImlzSW5mb1wiIFtjbGFzcy53YXJuXT1cImlzV2FyblwiIFtjbGFzcy5lcnJvcl09XCJpc0Vycm9yXCI+XG4gICAgICB7eyBpY29uIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIm1lc3NhZ2UgfCBvVHJhbnNsYXRlXCI+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxuICA8c3BhbiBmeEZsZXg+PC9zcGFuPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInR3b09wdGlvbnNcIiBtYXQtc3Ryb2tlZC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBjbGFzcz1cIm8tYnV0dG9uLWRlZmF1bHQgY2FuY2VsXCI+XG4gICAge3sgY2FuY2VsQnV0dG9uVGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cIm8tYnV0dG9uLXByaW1hcnlcIiAoY2xpY2spPVwib25Pa0NsaWNrKClcIj57eyBva0J1dHRvblRleHQgfCBvVHJhbnNsYXRlIH19PC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==