@alauda-fe/common
Version:
Alauda frontend team common codes.
132 lines • 17.8 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { CodeEditorModule } from '@alauda/code-editor';
import { CARD_MODULE, CHECKBOX_MODULE } from '@alauda/ui';
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BehaviorSubject, combineLatest, Observable, map, distinctUntilChanged, } from 'rxjs';
import { YamlUtilService, ObservableInput, } from '../../core/public-api';
import { TranslateModule } from '../../translate/translate.module';
import { viewActions, yamlReadOptions } from '../code-editor-configs';
import * as i0 from "@angular/core";
import * as i1 from "../../core/public-api";
import * as i2 from "@alauda/ui";
import * as i3 from "@angular/forms";
import * as i4 from "@alauda/code-editor";
import * as i5 from "../../translate/translate.pipe";
function ResourceYamlDisplayComponent_aui_card_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function ResourceYamlDisplayComponent_aui_card_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "aui-card");
i0.ɵɵtemplate(1, ResourceYamlDisplayComponent_aui_card_0_ng_container_1_Template, 1, 0, "ng-container", 2);
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵnextContext();
const content_r1 = i0.ɵɵreference(2);
i0.ɵɵadvance();
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
} }
function ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_3_Template(rf, ctx) { if (rf & 1) {
const _r2 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-checkbox", 7);
i0.ɵɵpipe(1, "async");
i0.ɵɵlistener("ngModelChange", function ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_3_Template_aui_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.conciseChange($event)); });
i0.ɵɵtext(2);
i0.ɵɵpipe(3, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("ngModel", i0.ɵɵpipeBind1(1, 2, ctx_r2.concise$$));
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "preview_concise_yaml"), " ");
} }
function ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_4_Template(rf, ctx) { if (rf & 1) {
const _r4 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-checkbox", 8);
i0.ɵɵpipe(1, "async");
i0.ɵɵpipe(2, "async");
i0.ɵɵlistener("ngModelChange", function ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_4_Template_aui_checkbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.reduce$$.next($event)); });
i0.ɵɵtext(3);
i0.ɵɵpipe(4, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("hidden", i0.ɵɵpipeBind1(1, 3, ctx_r2.concise$$))("ngModel", i0.ɵɵpipeBind1(2, 5, ctx_r2.reduce$$));
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 7, "hide_manage_fields_field"), " ");
} }
function ResourceYamlDisplayComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "aui-code-editor", 3);
i0.ɵɵpipe(1, "async");
i0.ɵɵelementContainerStart(2, 4);
i0.ɵɵtemplate(3, ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_3_Template, 4, 6, "aui-checkbox", 5)(4, ResourceYamlDisplayComponent_ng_template_1_aui_checkbox_4_Template, 5, 9, "aui-checkbox", 6);
i0.ɵɵelementContainerEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵproperty("ngModel", i0.ɵɵpipeBind1(1, 5, ctx_r2.yaml$))("options", ctx_r2.editorOptions)("actionsConfig", ctx_r2.viewActions);
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngIf", ctx_r2.conciseEnable);
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", ctx_r2.manageFieldActionEnable);
} }
export class ResourceYamlDisplayComponent {
constructor(yamlUtil) {
this.yamlUtil = yamlUtil;
this.concise$$ = new BehaviorSubject(false);
this.reduce$$ = new BehaviorSubject(true);
this.hasWrapper = true;
this.conciseEnable = true;
this.manageFieldActionEnable = true;
this.yaml$ = combineLatest([
this.resource$,
this.concise$$,
this.reduce$$.pipe(distinctUntilChanged()),
]).pipe(map(([resource, concise, reduce]) => this.yamlUtil.generateFilteredYamlResource(resource, concise, reduce)));
this.editorOptions = yamlReadOptions;
this.viewActions = viewActions;
}
conciseChange(value) {
this.concise$$.next(value);
if (value) {
this.reduce$$.next(true);
}
}
static { this.ɵfac = function ResourceYamlDisplayComponent_Factory(t) { return new (t || ResourceYamlDisplayComponent)(i0.ɵɵdirectiveInject(i1.YamlUtilService)); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceYamlDisplayComponent, selectors: [["acl-resource-yaml-display"]], inputs: { hasWrapper: "hasWrapper", conciseEnable: "conciseEnable", manageFieldActionEnable: "manageFieldActionEnable", resource: "resource" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 3, vars: 2, consts: [["content", ""], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet"], ["name", "yaml", 3, "ngModel", "options", "actionsConfig"], ["auiCodeEditorToolbarLeft", ""], ["class", "aui-code-editor-toolbar__control-button", 3, "ngModel", "ngModelChange", 4, "ngIf"], ["class", "aui-code-editor-toolbar__control-button", 3, "hidden", "ngModel", "ngModelChange", 4, "ngIf"], [1, "aui-code-editor-toolbar__control-button", 3, "ngModelChange", "ngModel"], [1, "aui-code-editor-toolbar__control-button", 3, "ngModelChange", "hidden", "ngModel"]], template: function ResourceYamlDisplayComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, ResourceYamlDisplayComponent_aui_card_0_Template, 2, 1, "aui-card", 1)(1, ResourceYamlDisplayComponent_ng_template_1_Template, 5, 7, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
const content_r1 = i0.ɵɵreference(2);
i0.ɵɵproperty("ngIf", ctx.hasWrapper)("ngIfElse", content_r1);
} }, dependencies: [i2.CardComponent, NgIf,
FormsModule, i3.NgControlStatus, i3.NgModel, i2.CheckboxComponent, CodeEditorModule, i4.CodeEditorComponent, TranslateModule, i5.TranslatePipe, AsyncPipe,
NgTemplateOutlet], styles: ["[_nghost-%COMP%]:not(.dialog-content){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}[_nghost-%COMP%]:not(.dialog-content) .aui-code-editor{min-height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%]{height:100%}[_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-card__content[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] aui-code-editor[_ngcontent-%COMP%], [_nghost-%COMP%]:not(.dialog-content) > .aui-card[_ngcontent-%COMP%] .aui-code-editor[_ngcontent-%COMP%]{height:100%;min-height:100%}[_nghost-%COMP%]{display:block}[_nghost-%COMP%] aui-card, [_nghost-%COMP%] .aui-card, [_nghost-%COMP%] .aui-card__content{height:100%}[_nghost-%COMP%] .aui-checkbox{margin-right:0}[_nghost-%COMP%] aui-code-editor[_ngcontent-%COMP%]{height:100%}"], changeDetection: 0 }); }
}
__decorate([
ObservableInput(),
__metadata("design:type", Observable)
], ResourceYamlDisplayComponent.prototype, "resource$", void 0);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceYamlDisplayComponent, [{
type: Component,
args: [{ selector: 'acl-resource-yaml-display', preserveWhitespaces: false, standalone: true, imports: [
CARD_MODULE,
NgIf,
FormsModule,
CHECKBOX_MODULE,
CodeEditorModule,
TranslateModule,
AsyncPipe,
NgTemplateOutlet,
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aui-card *ngIf=\"hasWrapper; else content\">\n <ng-container *ngTemplateOutlet=\"content\" />\n</aui-card>\n<ng-template #content>\n <aui-code-editor\n name=\"yaml\"\n [ngModel]=\"yaml$ | async\"\n [options]=\"editorOptions\"\n [actionsConfig]=\"viewActions\"\n >\n <ng-container auiCodeEditorToolbarLeft>\n <aui-checkbox\n *ngIf=\"conciseEnable\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"concise$$ | async\"\n (ngModelChange)=\"conciseChange($event)\"\n >\n {{ 'preview_concise_yaml' | translate }}\n </aui-checkbox>\n <aui-checkbox\n *ngIf=\"manageFieldActionEnable\"\n [hidden]=\"concise$$ | async\"\n class=\"aui-code-editor-toolbar__control-button\"\n [ngModel]=\"reduce$$ | async\"\n (ngModelChange)=\"reduce$$.next($event)\"\n >\n {{ 'hide_manage_fields_field' | translate }}\n </aui-checkbox>\n </ng-container>\n </aui-code-editor>\n</ng-template>\n", styles: [":host(:not(.dialog-content)){display:block;height:calc(100vh - (var(--acl-page-header-height) + 44px) - 147px)}:host(:not(.dialog-content)) ::ng-deep .aui-code-editor{min-height:100%}:host(:not(.dialog-content))>.aui-card{height:100%}:host(:not(.dialog-content))>.aui-card .aui-card__content,:host(:not(.dialog-content))>.aui-card aui-code-editor,:host(:not(.dialog-content))>.aui-card .aui-code-editor{height:100%;min-height:100%}:host{display:block}:host ::ng-deep aui-card,:host ::ng-deep .aui-card,:host ::ng-deep .aui-card__content{height:100%}:host ::ng-deep .aui-checkbox{margin-right:0}:host aui-code-editor{height:100%}\n"] }]
}], () => [{ type: i1.YamlUtilService }], { hasWrapper: [{
type: Input
}], conciseEnable: [{
type: Input
}], manageFieldActionEnable: [{
type: Input
}], resource: [{
type: Input
}], resource$: [] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceYamlDisplayComponent, { className: "ResourceYamlDisplayComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUvcmVzb3VyY2UteWFtbC1kaXNwbGF5L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3Jlc291cmNlLXlhbWwtZGlzcGxheS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsR0FBRyxFQUNILG9CQUFvQixHQUNyQixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFFTCxlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztJQ25CcEUsd0JBQTRDOzs7SUFEOUMsZ0NBQTJDO0lBQ3pDLDBHQUE0QztJQUM5QyxpQkFBVzs7OztJQURNLGNBQXlCO0lBQXpCLDZDQUF5Qjs7OztJQVVwQyx1Q0FLQzs7SUFEQyw0T0FBaUIsNEJBQXFCLEtBQUM7SUFFdkMsWUFDRjs7SUFBQSxpQkFBZTs7O0lBSmIsZ0VBQTZCO0lBRzdCLGVBQ0Y7SUFERSw2RUFDRjs7OztJQUNBLHVDQU1DOzs7SUFEQyw0T0FBaUIsNEJBQXFCLEtBQUM7SUFFdkMsWUFDRjs7SUFBQSxpQkFBZTs7O0lBSmIsQUFGQSwrREFBNEIsa0RBRUE7SUFHNUIsZUFDRjtJQURFLGlGQUNGOzs7SUF2QkosMENBS0M7O0lBQ0MsZ0NBQXVDO0lBU3JDLEFBUkEsNkdBS0MsZ0dBU0E7O0lBSUwsaUJBQWtCOzs7SUFyQmhCLEFBREEsQUFEQSw0REFBeUIsaUNBQ0EscUNBQ0k7SUFJeEIsZUFBbUI7SUFBbkIsMkNBQW1CO0lBUW5CLGNBQTZCO0lBQTdCLHFEQUE2Qjs7QURvQnRDLE1BQU0sT0FBTyw0QkFBNEI7SUFvQnZDLFlBQTZCLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBbkJ0RCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsNEJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBVS9CLFVBQUssR0FBRyxhQUFhLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0MsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ3RFLENBQ0YsQ0FBQztRQUVGLGtCQUFhLEdBQUcsZUFBZSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsV0FBVyxDQUFDO0lBYitCLENBQUM7SUFlMUQsYUFBYSxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDOzZGQXhDVSw0QkFBNEI7b0VBQTVCLDRCQUE0QjtZQ3JDekMsQUFIQSx1RkFBMkMsaUhBR3JCOzs7WUFITyxBQUFsQixxQ0FBa0Isd0JBQVk7OENEOEJyQyxJQUFJO1lBQ0osV0FBVyx3REFFWCxnQkFBZ0IsMEJBQ2hCLGVBQWUsb0JBQ2YsU0FBUztZQUNULGdCQUFnQjs7QUFzQlQ7SUFEUixlQUFlLEVBQUU7OEJBQ0csVUFBVTsrREFBZTtpRkFsQm5DLDRCQUE0QjtjQWxCeEMsU0FBUzsyQkFDRSwyQkFBMkIsdUJBR2hCLEtBQUssY0FDZCxJQUFJLFdBQ1A7b0JBQ1AsV0FBVztvQkFDWCxJQUFJO29CQUNKLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsU0FBUztvQkFDVCxnQkFBZ0I7aUJBQ2pCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO2dEQVEvQyxVQUFVO2tCQURULEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTix1QkFBdUI7a0JBRHRCLEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJRyxTQUFTO2tGQWxCUCw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlRWRpdG9yTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS9jb2RlLWVkaXRvcic7XG5pbXBvcnQgeyBDQVJEX01PRFVMRSwgQ0hFQ0tCT1hfTU9EVUxFIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBtYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBZYW1sVXRpbFNlcnZpY2UsXG4gIEFycmF5YWJsZSxcbiAgT2JzZXJ2YWJsZUlucHV0LFxufSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3RyYW5zbGF0ZS5tb2R1bGUnO1xuaW1wb3J0IHsgdmlld0FjdGlvbnMsIHlhbWxSZWFkT3B0aW9ucyB9IGZyb20gJy4uL2NvZGUtZWRpdG9yLWNvbmZpZ3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVzb3VyY2UteWFtbC1kaXNwbGF5JyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ0FSRF9NT0RVTEUsXG4gICAgTmdJZixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDSEVDS0JPWF9NT0RVTEUsXG4gICAgQ29kZUVkaXRvck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVlhbWxEaXNwbGF5Q29tcG9uZW50PFQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2U+IHtcbiAgY29uY2lzZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVkdWNlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuXG4gIEBJbnB1dCgpXG4gIGhhc1dyYXBwZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmNpc2VFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIG1hbmFnZUZpZWxkQWN0aW9uRW5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZTogQXJyYXlhYmxlPFQ+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICByZWFkb25seSByZXNvdXJjZSQhOiBPYnNlcnZhYmxlPEFycmF5YWJsZTxUPj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB5YW1sVXRpbDogWWFtbFV0aWxTZXJ2aWNlKSB7fVxuXG4gIHlhbWwkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5yZXNvdXJjZSQsXG4gICAgdGhpcy5jb25jaXNlJCQsXG4gICAgdGhpcy5yZWR1Y2UkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3Jlc291cmNlLCBjb25jaXNlLCByZWR1Y2VdKSA9PlxuICAgICAgdGhpcy55YW1sVXRpbC5nZW5lcmF0ZUZpbHRlcmVkWWFtbFJlc291cmNlKHJlc291cmNlLCBjb25jaXNlLCByZWR1Y2UpLFxuICAgICksXG4gICk7XG5cbiAgZWRpdG9yT3B0aW9ucyA9IHlhbWxSZWFkT3B0aW9ucztcbiAgdmlld0FjdGlvbnMgPSB2aWV3QWN0aW9ucztcblxuICBjb25jaXNlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb25jaXNlJCQubmV4dCh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnJlZHVjZSQkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8YXVpLWNhcmQgKm5nSWY9XCJoYXNXcmFwcGVyOyBlbHNlIGNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuPC9hdWktY2FyZD5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGF1aS1jb2RlLWVkaXRvclxuICAgIG5hbWU9XCJ5YW1sXCJcbiAgICBbbmdNb2RlbF09XCJ5YW1sJCB8IGFzeW5jXCJcbiAgICBbb3B0aW9uc109XCJlZGl0b3JPcHRpb25zXCJcbiAgICBbYWN0aW9uc0NvbmZpZ109XCJ2aWV3QWN0aW9uc1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyIGF1aUNvZGVFZGl0b3JUb29sYmFyTGVmdD5cbiAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJjb25jaXNlRW5hYmxlXCJcbiAgICAgICAgY2xhc3M9XCJhdWktY29kZS1lZGl0b3ItdG9vbGJhcl9fY29udHJvbC1idXR0b25cIlxuICAgICAgICBbbmdNb2RlbF09XCJjb25jaXNlJCQgfCBhc3luY1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbmNpc2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcmV2aWV3X2NvbmNpc2VfeWFtbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgICAgPGF1aS1jaGVja2JveFxuICAgICAgICAqbmdJZj1cIm1hbmFnZUZpZWxkQWN0aW9uRW5hYmxlXCJcbiAgICAgICAgW2hpZGRlbl09XCJjb25jaXNlJCQgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiYXVpLWNvZGUtZWRpdG9yLXRvb2xiYXJfX2NvbnRyb2wtYnV0dG9uXCJcbiAgICAgICAgW25nTW9kZWxdPVwicmVkdWNlJCQgfCBhc3luY1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlZHVjZSQkLm5leHQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdoaWRlX21hbmFnZV9maWVsZHNfZmllbGQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2F1aS1jaGVja2JveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9hdWktY29kZS1lZGl0b3I+XG48L25nLXRlbXBsYXRlPlxuIl19