UNPKG

ontimize-web-ngx

Version:
117 lines 19.5 kB
import { Component, Injector } from "@angular/core"; import { MatDialogRef } from "@angular/material/dialog"; import { OTranslateService } from "../../../services/translate/o-translate.service"; 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"; export class ODialogInternalComponent { constructor(dialogRef, injector) { this.dialogRef = dialogRef; this.injector = injector; this.translateService = injector.get(OTranslateService); } onOkClick() { if (this.dialogRef) { this.dialogRef.close(true); } } alert(title, message, config) { config = this.ensureConfig(config); 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; } getTranslation(value) { return this.translateService.get(value); } 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 : ODialogInternalComponent.DEFAULT_OK_BUTTON_TEXT; this.cancelButtonText = (typeof (config.cancelButtonText) !== 'undefined') ? config.cancelButtonText : ODialogInternalComponent.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; } } ODialogInternalComponent.DEFAULT_OK_BUTTON_TEXT = 'OK'; ODialogInternalComponent.DEFAULT_CANCEL_BUTTON_TEXT = 'CANCEL'; ODialogInternalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODialogInternalComponent, deps: [{ token: i1.MatDialogRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); ODialogInternalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ODialogInternalComponent, selector: "app-local-dialog", ngImport: i0, template: "<div *ngIf=\"title && title.length > 0\" mat-dialog-title>{{ getTranslation(title) }}</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]=\"getTranslation(message) \"></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 {{getTranslation( cancelButtonText) }}\n </button>\n <button type=\"button\" mat-stroked-button class=\"o-button-primary\" (click)=\"onOkClick()\">{{ getTranslation(okButtonText) }}</button>\n</mat-dialog-actions>\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"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODialogInternalComponent, decorators: [{ type: Component, args: [{ selector: 'app-local-dialog', template: "<div *ngIf=\"title && title.length > 0\" mat-dialog-title>{{ getTranslation(title) }}</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]=\"getTranslation(message) \"></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 {{getTranslation( cancelButtonText) }}\n </button>\n <button type=\"button\" mat-stroked-button class=\"o-button-primary\" (click)=\"onOkClick()\">{{ getTranslation(okButtonText) }}</button>\n</mat-dialog-actions>\n" }] }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i0.Injector }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1kaWFsb2ctaW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2RpYWxvZy9vLWRpYWxvZy1pbnRlcm5hbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9nL28tZGlhbG9nLWludGVybmFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7OztBQU9wRixNQUFNLE9BQU8sd0JBQXdCO0lBY25DLFlBQ1MsU0FBaUQsRUFBWSxRQUFrQjtRQUEvRSxjQUFTLEdBQVQsU0FBUyxDQUF3QztRQUFZLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDdEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxNQUFzQjtRQUNqRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFN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QUMsR0FBVztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsR0FBVztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBR0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFZO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQzs7QUF0SWdCLCtDQUFzQixHQUFHLElBQUksQ0FBQztBQUM5QixtREFBMEIsR0FBRyxRQUFRLENBQUM7c0hBSDVDLHdCQUF3QjswR0FBeEIsd0JBQXdCLHdEQ1RyQywyM0JBZ0JBOzRGRFBhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQgdHlwZSB7IE9EaWFsb2dDb25maWcgfSBmcm9tIFwiLi9vLWRpYWxvZy5jb25maWdcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxvY2FsLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWRpYWxvZy1pbnRlcm5hbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE9EaWFsb2dJbnRlcm5hbENvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBERUZBVUxUX09LX0JVVFRPTl9URVhUID0gJ09LJztcbiAgcHJvdGVjdGVkIHN0YXRpYyBERUZBVUxUX0NBTkNFTF9CVVRUT05fVEVYVCA9ICdDQU5DRUwnO1xuXG4gIHByb3RlY3RlZCBfdGl0bGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9tZXNzYWdlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfb2tCdXR0b25UZXh0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3R3b09wdGlvbnM6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfdXNlSWNvbjogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIF9pY29uOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfYWxlcnRUeXBlOiBzdHJpbmc7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogT1RyYW5zbGF0ZVNlcnZpY2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxPRGlhbG9nSW50ZXJuYWxDb21wb25lbnQ+LCBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIG9uT2tDbGljaygpIHtcbiAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhbGVydCh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IE9EaWFsb2dDb25maWcpIHtcbiAgICBjb25maWcgPSB0aGlzLmVuc3VyZUNvbmZpZyhjb25maWcpO1xuICAgIHRoaXMuY29uZmlndXJlRGVmYXVsdEFsZXJ0KHRpdGxlLCBtZXNzYWdlLCBjb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0odGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBjb25maWc/OiBPRGlhbG9nQ29uZmlnKSB7XG4gICAgY29uZmlnID0gdGhpcy5lbnN1cmVDb25maWcoY29uZmlnKTtcbiAgICB0aGlzLmNvbmZpZ3VyZURlZmF1bHRBbGVydCh0aXRsZSwgbWVzc2FnZSwgY29uZmlnKTtcbiAgICB0aGlzLnR3b09wdGlvbnMgPSB0cnVlO1xuICB9XG5cbiAgLyogVXRpbGl0eSBtZXRob2RzICovXG4gIHByb3RlY3RlZCBlbnN1cmVDb25maWcoY29uZmlnOiBPRGlhbG9nQ29uZmlnKTogT0RpYWxvZ0NvbmZpZyB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG4gIHB1YmxpYyBnZXRUcmFuc2xhdGlvbih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZURlZmF1bHRBbGVydCh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZz86IE9EaWFsb2dDb25maWcpIHtcbiAgICB0aGlzLnR3b09wdGlvbnMgPSBmYWxzZTtcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcblxuICAgIHRoaXMuaWNvbiA9ICh0eXBlb2YgKGNvbmZpZy5pY29uKSAhPT0gJ3VuZGVmaW5lZCcpID8gY29uZmlnLmljb24gOiB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuaWNvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVzZUljb24gPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmFsZXJ0VHlwZSA9IGNvbmZpZy5hbGVydFR5cGU7XG5cbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9ICh0eXBlb2YgKGNvbmZpZy5va0J1dHRvblRleHQpICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcub2tCdXR0b25UZXh0IDogT0RpYWxvZ0ludGVybmFsQ29tcG9uZW50LkRFRkFVTFRfT0tfQlVUVE9OX1RFWFQ7XG4gICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gKHR5cGVvZiAoY29uZmlnLmNhbmNlbEJ1dHRvblRleHQpICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcuY2FuY2VsQnV0dG9uVGV4dCA6IE9EaWFsb2dJbnRlcm5hbENvbXBvbmVudC5ERUZBVUxUX0NBTkNFTF9CVVRUT05fVEVYVDtcbiAgfVxuXG4gIGdldCBpc0luZm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxlcnRUeXBlID09PSAnaW5mbyc7XG4gIH1cblxuICBnZXQgaXNXYXJuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsZXJ0VHlwZSA9PT0gJ3dhcm4nO1xuICB9XG5cbiAgZ2V0IGlzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWxlcnRUeXBlID09PSAnZXJyb3InO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICB9XG5cbiAgc2V0IHRpdGxlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGl0bGUgPSB2YWw7XG4gIH1cblxuICBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xuICB9XG5cbiAgc2V0IG1lc3NhZ2UodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdmFsO1xuICB9XG5cbiAgZ2V0IG9rQnV0dG9uVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9va0J1dHRvblRleHQ7XG4gIH1cblxuICBzZXQgb2tCdXR0b25UZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fb2tCdXR0b25UZXh0ID0gdmFsO1xuICB9XG5cbiAgZ2V0IGNhbmNlbEJ1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuY2VsQnV0dG9uVGV4dDtcbiAgfVxuXG4gIHNldCBjYW5jZWxCdXR0b25UZXh0KHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2FuY2VsQnV0dG9uVGV4dCA9IHZhbDtcbiAgfVxuXG4gIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cblxuICBzZXQgaWNvbih2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSB2YWw7XG4gIH1cblxuICBnZXQgYWxlcnRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FsZXJ0VHlwZTtcbiAgfVxuXG4gIHNldCBhbGVydFR5cGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hbGVydFR5cGUgPSB2YWw7XG4gIH1cblxuXG4gIGdldCB0d29PcHRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl90d29PcHRpb25zO1xuICB9XG5cbiAgc2V0IHR3b09wdGlvbnModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdHdvT3B0aW9ucyA9IHZhbDtcbiAgfVxuXG4gIGdldCB1c2VJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl91c2VJY29uO1xuICB9XG5cbiAgc2V0IHVzZUljb24odmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdXNlSWNvbiA9IHZhbDtcbiAgfVxuXG5cbn0iLCI8ZGl2ICpuZ0lmPVwidGl0bGUgJiYgdGl0bGUubGVuZ3RoID4gMFwiIG1hdC1kaWFsb2ctdGl0bGU+e3sgZ2V0VHJhbnNsYXRpb24odGl0bGUpIH19PC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwiYWxlcnQtY29udGVudFwiIFtjbGFzcy5hbGVydC1jb250ZW50LWljb25dPVwidXNlSWNvblwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cInVzZUljb25cIiBjbGFzcz1cImFsZXJ0LWljb25cIiBbY2xhc3MuaW5mb109XCJpc0luZm9cIiBbY2xhc3Mud2Fybl09XCJpc1dhcm5cIiBbY2xhc3MuZXJyb3JdPVwiaXNFcnJvclwiPlxuICAgICAge3sgaWNvbiB9fVxuICAgIDwvbWF0LWljb24+XG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJnZXRUcmFuc2xhdGlvbihtZXNzYWdlKSBcIj48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XG4gIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwidHdvT3B0aW9uc1wiIG1hdC1zdHJva2VkLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNsYXNzPVwiby1idXR0b24tZGVmYXVsdCBjYW5jZWxcIj5cbiAgICB7e2dldFRyYW5zbGF0aW9uKCBjYW5jZWxCdXR0b25UZXh0KSB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiby1idXR0b24tcHJpbWFyeVwiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPnt7IGdldFRyYW5zbGF0aW9uKG9rQnV0dG9uVGV4dCkgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19