@alauda-fe/common
Version:
Alauda frontend team common codes.
280 lines • 41.3 kB
JavaScript
/**
* @packageDocumentation
* @module help-menu
*/
import { DialogService, DialogSize } from '@alauda/ui';
import { ChangeDetectionStrategy, Component, Inject, Input, } from '@angular/core';
import { forkJoin, finalize } from 'rxjs';
import { K8sApiService } from '../../../../api/public-api';
import { K8sUtilService, TOKEN_BASE_HREF, } from '../../../../core/public-api';
import { PUBLIC_NAMESPACE, parseVersion, PACKAGE_RUNTIME_VALUE, } from '../../../../public-api';
import * as i0 from "@angular/core";
import * as i1 from "@alauda/ui";
import * as i2 from "../../../../api/public-api";
import * as i3 from "../../../../core/public-api";
const _c0 = ["*"];
const _c1 = a0 => ({ version: a0 });
function HelpMenuComponent_ng_template_2_aui_menu_item_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "aui-menu-item", 10);
i0.ɵɵelement(1, "aui-icon", 11);
i0.ɵɵelementStart(2, "span", 12);
i0.ɵɵtext(3);
i0.ɵɵpipe(4, "translate");
i0.ɵɵelementEnd()();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("aclHelpDoc", ctx_r1.helpDocPath);
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, "help_doc"));
} }
function HelpMenuComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
const _r1 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-menu");
i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_2_aui_menu_item_1_Template, 5, 4, "aui-menu-item", 7);
i0.ɵɵelementStart(2, "aui-menu-item", 8);
i0.ɵɵlistener("click", function HelpMenuComponent_ng_template_2_Template_aui_menu_item_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const platformInfo_r3 = i0.ɵɵreference(5); return i0.ɵɵresetView(ctx_r1.viewPlatformInfo(platformInfo_r3)); });
i0.ɵɵelement(3, "aui-icon", 9);
i0.ɵɵelementStart(4, "span");
i0.ɵɵtext(5);
i0.ɵɵpipe(6, "translate");
i0.ɵɵelementEnd()();
i0.ɵɵprojection(7);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", ctx_r1.helpDocPath);
i0.ɵɵadvance();
i0.ɵɵproperty("divide", true);
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 3, "about_platform"));
} }
function HelpMenuComponent_ng_template_4_span_9_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "span", 28);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "runtime_edition"), " ");
} }
function HelpMenuComponent_ng_template_4_ng_container_19_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 32);
i0.ɵɵelement(1, "img", 33);
i0.ɵɵelementStart(2, "div", 34)(3, "div", 35);
i0.ɵɵtext(4);
i0.ɵɵelementEnd();
i0.ɵɵelementStart(5, "div", 36);
i0.ɵɵtext(6);
i0.ɵɵelementEnd()()();
} if (rf & 2) {
const componentVersion_r5 = ctx.$implicit;
i0.ɵɵadvance();
i0.ɵɵproperty("src", "icons/" + componentVersion_r5.name + ".svg", i0.ɵɵsanitizeUrl);
i0.ɵɵadvance(2);
i0.ɵɵproperty("title", componentVersion_r5.name);
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", componentVersion_r5.name, " ");
i0.ɵɵadvance();
i0.ɵɵproperty("title", componentVersion_r5.version);
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", componentVersion_r5.version, " ");
} }
function HelpMenuComponent_ng_template_4_ng_container_19_div_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 30);
i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_4_ng_container_19_div_1_div_1_Template, 7, 5, "div", 31);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext(3);
i0.ɵɵadvance();
i0.ɵɵproperty("ngForOf", ctx_r1.componentVersionList);
} }
function HelpMenuComponent_ng_template_4_ng_container_19_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, HelpMenuComponent_ng_template_4_ng_container_19_div_1_Template, 2, 1, "div", 29);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext(2);
const noComponent_r6 = i0.ɵɵreference(7);
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", ctx_r1.componentVersionList == null ? null : ctx_r1.componentVersionList.length)("ngIfElse", noComponent_r6);
} }
function HelpMenuComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
const _r4 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-dialog-content", 13)(1, "div", 14)(2, "div", 15);
i0.ɵɵelement(3, "img", 16)(4, "span", 17);
i0.ɵɵelementStart(5, "div", 18)(6, "span", 19);
i0.ɵɵtext(7);
i0.ɵɵpipe(8, "translate");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(9, HelpMenuComponent_ng_template_4_span_9_Template, 3, 3, "span", 20);
i0.ɵɵelementStart(10, "span", 21);
i0.ɵɵtext(11);
i0.ɵɵelementEnd()()();
i0.ɵɵelementStart(12, "div", 22);
i0.ɵɵtext(13);
i0.ɵɵpipe(14, "translate");
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(15, "div", 23)(16, "div", 24);
i0.ɵɵtext(17);
i0.ɵɵpipe(18, "translate");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(19, HelpMenuComponent_ng_template_4_ng_container_19_Template, 2, 2, "ng-container", 25);
i0.ɵɵelementEnd();
i0.ɵɵelementStart(20, "div", 26)(21, "button", 27);
i0.ɵɵlistener("click", function HelpMenuComponent_ng_template_4_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); });
i0.ɵɵtext(22);
i0.ɵɵpipe(23, "translate");
i0.ɵɵelementEnd()()();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
const loadingTmp_r7 = i0.ɵɵreference(9);
const platformStageVersion_r8 = i0.ɵɵreference(11);
i0.ɵɵadvance(7);
i0.ɵɵtextInterpolate(ctx_r1.platformName ? i0.ɵɵpipeBind1(8, 10, ctx_r1.platformName) : "ACP");
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", ctx_r1.isRuntime);
i0.ɵɵadvance();
i0.ɵɵproperty("auiTooltip", platformStageVersion_r8)("auiTooltipContext", i0.ɵɵpureFunction1(18, _c1, ctx_r1.platformVersion == null ? null : ctx_r1.platformVersion.all));
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", ctx_r1.platformVersion == null ? null : ctx_r1.platformVersion.main, "");
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 12, ctx_r1.platformTip));
i0.ɵɵadvance(4);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 14, "platform_related_open_source_component_info"), " ");
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", !ctx_r1.loading)("ngIfElse", loadingTmp_r7);
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 16, "close"), " ");
} }
function HelpMenuComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 37);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance();
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "no_open_source_components"));
} }
function HelpMenuComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 38);
i0.ɵɵelement(1, "acl-loading-mask", 39);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance();
i0.ɵɵproperty("loading", ctx_r1.loading);
} }
function HelpMenuComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 40);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const version_r9 = ctx.version;
i0.ɵɵadvance();
i0.ɵɵtextInterpolate(version_r9);
} }
const CONFIG = {
type: 'configmaps',
apiVersion: 'v1',
};
export class HelpMenuComponent {
constructor(baseHref, dialogService, k8sApi, k8sUtil) {
this.baseHref = baseHref;
this.dialogService = dialogService;
this.k8sApi = k8sApi;
this.k8sUtil = k8sUtil;
this.loading = false;
this.isRuntime = false;
}
openHealthCheckLink() {
window.open('/console-platform/health-check', '_blank', 'noopener=yes,noreferrer=yes');
}
viewPlatformInfo(templateRef) {
this.componentVersionList = [];
this.loading = true;
forkJoin([
this.k8sApi.getGlobalResourceList({
definition: CONFIG,
namespace: PUBLIC_NAMESPACE,
queryParams: {
labelSelector: this.k8sUtil.normalizeType('component-version'),
},
}),
this.k8sApi.getGlobalResource({
definition: CONFIG,
name: 'platform',
namespace: PUBLIC_NAMESPACE,
}),
this.k8sApi.getGlobalResource({
definition: CONFIG,
name: 'platform-info',
namespaced: true,
}),
])
.pipe(finalize(() => (this.loading = false)))
.subscribe(([cms, config, platformInfo]) => {
for (const cm of cms.items) {
try {
const components = JSON.parse(cm.data.component);
this.componentVersionList = [
...this.componentVersionList,
...components,
];
}
catch { }
}
this.componentVersionList.sort((a, b) => a.index - b.index);
this.platformVersion = this.formatPlatformVersion(config.data.version);
this.platformName = {
en: platformInfo.data.platformNameEN,
zh: platformInfo.data.platformNameZH,
};
this.isRuntime = config.data.packageEdition === PACKAGE_RUNTIME_VALUE;
this.platformTip = {
zh: platformInfo.data.portalSubTitleZH,
en: platformInfo.data.portalSubTitleEN,
};
});
this.dialogRef = this.dialogService.open(templateRef, {
size: DialogSize.Big,
fitViewport: true,
});
}
close() {
this.dialogRef?.close();
}
formatPlatformVersion(version) {
if (!version) {
return {
main: '',
all: '',
};
}
const { major, minor } = parseVersion(version);
const main = `v${major}.${minor}`;
return { main, all: version };
}
static { this.ɵfac = function HelpMenuComponent_Factory(t) { return new (t || HelpMenuComponent)(i0.ɵɵdirectiveInject(TOKEN_BASE_HREF), i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.K8sApiService), i0.ɵɵdirectiveInject(i3.K8sUtilService)); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HelpMenuComponent, selectors: [["acl-help-menu"]], inputs: { helpDocPath: "helpDocPath" }, ngContentSelectors: _c0, decls: 12, vars: 1, consts: [["menu", ""], ["platformInfo", ""], ["noComponent", ""], ["loadingTmp", ""], ["platformStageVersion", ""], ["auiDropdownClass", "acl-page-header__tooltip--small", 1, "menu", 3, "auiDropdown"], ["icon", "question_circle", 1, "menu__icon"], ["class", "acl-help-menu-item", "aclHelpDocTarget", "blank", 3, "aclHelpDoc", 4, "ngIf"], [1, "acl-help-menu-item", 3, "click", "divide"], ["icon", "info_circle"], ["aclHelpDocTarget", "blank", 1, "acl-help-menu-item", 3, "aclHelpDoc"], ["icon", "help_doc"], [1, "tw-ml-[4px]"], [1, "platform-about-dialog"], [1, "platform__version"], [1, "platform__version-title"], ["src", "/console/api/v1/cm/ui-logos/logo"], [1, "line"], [1, "platform__version-title__name-version"], [1, "platform__version-title__name"], ["style", "margin-right: 8px", 4, "ngIf"], ["auiTooltipPosition", "end", "auiTooltipType", "empty", 3, "auiTooltip", "auiTooltipContext"], [1, "platform__version-desc"], [1, "platform__component-info"], [1, "label"], [4, "ngIf", "ngIfElse"], [1, "platform__action"], ["aui-button", "", 3, "click"], [2, "margin-right", "8px"], ["class", "component-container", 4, "ngIf", "ngIfElse"], [1, "component-container"], ["class", "component-item", 4, "ngFor", "ngForOf"], [1, "component-item"], [3, "src"], [1, "component-item-info"], [1, "component-item-info__name", 3, "title"], [1, "component-item-info__version", 3, "title"], [1, "no-component"], [1, "loading"], [3, "loading"], [1, "platform__version-title__toolTip"]], template: function HelpMenuComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵprojectionDef();
i0.ɵɵelementStart(0, "div", 5);
i0.ɵɵelement(1, "aui-icon", 6);
i0.ɵɵelementEnd();
i0.ɵɵtemplate(2, HelpMenuComponent_ng_template_2_Template, 8, 5, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, HelpMenuComponent_ng_template_4_Template, 24, 20, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, HelpMenuComponent_ng_template_6_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(8, HelpMenuComponent_ng_template_8_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(10, HelpMenuComponent_ng_template_10_Template, 2, 1, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
const menu_r10 = i0.ɵɵreference(3);
i0.ɵɵproperty("auiDropdown", menu_r10);
} }, styles: [".menu[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:2px;color:var(--acl-page-header-text-color);cursor:pointer}.menu[_ngcontent-%COMP%]:hover, .menu.isActive[_ngcontent-%COMP%]{color:#fff;background-color:rgb(var(--aui-color-primary))}.menu__icon[_ngcontent-%COMP%]{font-size:16px}.menu__pointer[_ngcontent-%COMP%]{font-size:12px;margin-left:-2px}.platform__version[_ngcontent-%COMP%]{color:#fff;font-size:18px;padding:32px 24px;background-image:url(^images/platform_version_bg.svg)}.platform__version-title[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:14px}.platform__version-title__name[_ngcontent-%COMP%]{margin-right:8px;line-height:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.platform__version-title__name-version[_ngcontent-%COMP%]{font-size:24px;display:flex;flex-wrap:wrap;flex:1;overflow:hidden;align-items:baseline;line-height:1}.platform__version-title__toolTip[_ngcontent-%COMP%]{height:16px;color:rgb(var(--aui-color-primary));margin-bottom:10px;font-size:12px;line-height:14px;padding:1px 8px;background-color:#ffffffd9;border-radius:99px 95px 95px 99px}.platform__version-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:240px;width:42px;height:42px}.platform__version-title[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:32px;width:1px;opacity:.66;background-color:rgb(var(--aui-color-n-10));margin:0 12px}.platform__component-info[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4));padding:20px 20px 0}.platform__component-info[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:14px;margin-bottom:12px}.platform__component-info[_ngcontent-%COMP%] .component-container[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,calc((100% - 34px) / 3));grid-gap:16px;max-height:312px;overflow-y:auto}.platform__component-info[_ngcontent-%COMP%] .component-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:16px;border-radius:2px;background-color:rgb(var(--aui-color-n-9))}.platform__component-info[_ngcontent-%COMP%] .component-item[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:36px;height:36px}.platform__component-info[_ngcontent-%COMP%] .component-item-info[_ngcontent-%COMP%]{margin-left:12px;color:rgb(var(--aui-color-n-1));overflow:hidden}.platform__component-info[_ngcontent-%COMP%] .component-item-info__name[_ngcontent-%COMP%], .platform__component-info[_ngcontent-%COMP%] .component-item-info__version[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform__component-info[_ngcontent-%COMP%] .component-item-info__name[_ngcontent-%COMP%]{font-size:var(--aui-font-size-xl);font-weight:var(--aui-font-weight-bolder);line-height:var(--aui-line-height-xl);margin-bottom:2px}.platform__component-info[_ngcontent-%COMP%] .component-item-info__version[_ngcontent-%COMP%]{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.platform__action[_ngcontent-%COMP%]{padding:20px;display:flex;justify-content:flex-end}.no-component[_ngcontent-%COMP%]{height:60px;border:dashed 1px rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));display:flex;align-items:center;justify-content:center}.loading[_ngcontent-%COMP%]{height:312px;display:flex;justify-content:center;align-items:center} .acl-page-header__tooltip--small .aui-menu-item:hover{color:rgb(var(--aui-color-primary))} .acl-help-menu-item:not(:hover) .aui-icon{color:rgb(var(--aui-color-n-2))}"], changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HelpMenuComponent, [{
type: Component,
args: [{ selector: 'acl-help-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"menu\"\n [auiDropdown]=\"menu\"\n auiDropdownClass=\"acl-page-header__tooltip--small\"\n>\n <aui-icon\n icon=\"question_circle\"\n class=\"menu__icon\"\n ></aui-icon>\n</div>\n\n<ng-template #menu>\n <aui-menu>\n <aui-menu-item\n *ngIf=\"helpDocPath\"\n class=\"acl-help-menu-item\"\n [aclHelpDoc]=\"helpDocPath\"\n aclHelpDocTarget=\"blank\"\n >\n <aui-icon icon=\"help_doc\"></aui-icon>\n <span class=\"tw-ml-[4px]\">{{ 'help_doc' | translate }}</span>\n </aui-menu-item>\n\n <aui-menu-item\n class=\"acl-help-menu-item\"\n [divide]=\"true\"\n (click)=\"viewPlatformInfo(platformInfo)\"\n >\n <aui-icon icon=\"info_circle\"></aui-icon>\n <span>{{ 'about_platform' | translate }}</span>\n </aui-menu-item>\n\n <ng-content></ng-content>\n </aui-menu>\n</ng-template>\n\n<ng-template #platformInfo>\n <aui-dialog-content class=\"platform-about-dialog\">\n <div class=\"platform__version\">\n <div class=\"platform__version-title\">\n <img src=\"/console/api/v1/cm/ui-logos/logo\" />\n <span class=\"line\"></span>\n <div class=\"platform__version-title__name-version\">\n <span class=\"platform__version-title__name\">{{\n platformName ? (platformName | translate) : 'ACP'\n }}</span>\n <span\n style=\"margin-right: 8px\"\n *ngIf=\"isRuntime\"\n >\n {{ 'runtime_edition' | translate }}\n </span>\n <span\n [auiTooltip]=\"platformStageVersion\"\n [auiTooltipContext]=\"{ version: platformVersion?.all }\"\n auiTooltipPosition=\"end\"\n auiTooltipType=\"empty\"\n >\n {{ platformVersion?.main }}</span\n >\n </div>\n </div>\n <div class=\"platform__version-desc\">{{ platformTip | translate }}</div>\n </div>\n <div class=\"platform__component-info\">\n <div class=\"label\">\n {{ 'platform_related_open_source_component_info' | translate }}\n </div>\n <ng-container *ngIf=\"!loading; else loadingTmp\">\n <div\n class=\"component-container\"\n *ngIf=\"componentVersionList?.length; else noComponent\"\n >\n <div\n class=\"component-item\"\n *ngFor=\"let componentVersion of componentVersionList\"\n >\n <img [src]=\"'icons/' + componentVersion.name + '.svg'\" />\n <div class=\"component-item-info\">\n <div\n class=\"component-item-info__name\"\n [title]=\"componentVersion.name\"\n >\n {{ componentVersion.name }}\n </div>\n <div\n class=\"component-item-info__version\"\n [title]=\"componentVersion.version\"\n >\n {{ componentVersion.version }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"platform__action\">\n <button\n aui-button\n (click)=\"close()\"\n >\n {{ 'close' | translate }}\n </button>\n </div>\n </aui-dialog-content>\n</ng-template>\n\n<ng-template #noComponent>\n <div class=\"no-component\">{{ 'no_open_source_components' | translate }}</div>\n</ng-template>\n\n<ng-template #loadingTmp>\n <div class=\"loading\">\n <acl-loading-mask [loading]=\"loading\"></acl-loading-mask>\n </div>\n</ng-template>\n\n<ng-template\n #platformStageVersion\n let-version=\"version\"\n>\n <div class=\"platform__version-title__toolTip\">{{ version }}</div>\n</ng-template>\n", styles: [".menu{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:2px;color:var(--acl-page-header-text-color);cursor:pointer}.menu:hover,.menu.isActive{color:#fff;background-color:rgb(var(--aui-color-primary))}.menu__icon{font-size:16px}.menu__pointer{font-size:12px;margin-left:-2px}.platform__version{color:#fff;font-size:18px;padding:32px 24px;background-image:url(^images/platform_version_bg.svg)}.platform__version-title{display:flex;align-items:center;margin-bottom:14px}.platform__version-title__name{margin-right:8px;line-height:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.platform__version-title__name-version{font-size:24px;display:flex;flex-wrap:wrap;flex:1;overflow:hidden;align-items:baseline;line-height:1}.platform__version-title__toolTip{height:16px;color:rgb(var(--aui-color-primary));margin-bottom:10px;font-size:12px;line-height:14px;padding:1px 8px;background-color:#ffffffd9;border-radius:99px 95px 95px 99px}.platform__version-title img{max-width:240px;width:42px;height:42px}.platform__version-title .line{height:32px;width:1px;opacity:.66;background-color:rgb(var(--aui-color-n-10));margin:0 12px}.platform__component-info{color:rgb(var(--aui-color-n-4));padding:20px 20px 0}.platform__component-info .label{font-size:14px;margin-bottom:12px}.platform__component-info .component-container{display:grid;grid-template-columns:repeat(3,calc((100% - 34px) / 3));grid-gap:16px;max-height:312px;overflow-y:auto}.platform__component-info .component-item{display:flex;align-items:center;padding:16px;border-radius:2px;background-color:rgb(var(--aui-color-n-9))}.platform__component-info .component-item img{width:36px;height:36px}.platform__component-info .component-item-info{margin-left:12px;color:rgb(var(--aui-color-n-1));overflow:hidden}.platform__component-info .component-item-info__name,.platform__component-info .component-item-info__version{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform__component-info .component-item-info__name{font-size:var(--aui-font-size-xl);font-weight:var(--aui-font-weight-bolder);line-height:var(--aui-line-height-xl);margin-bottom:2px}.platform__component-info .component-item-info__version{font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m)}.platform__action{padding:20px;display:flex;justify-content:flex-end}.no-component{height:60px;border:dashed 1px rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));display:flex;align-items:center;justify-content:center}.loading{height:312px;display:flex;justify-content:center;align-items:center}::ng-deep .acl-page-header__tooltip--small .aui-menu-item:hover{color:rgb(var(--aui-color-primary))}::ng-deep .acl-help-menu-item:not(:hover) .aui-icon{color:rgb(var(--aui-color-n-2))}\n"] }]
}], () => [{ type: undefined, decorators: [{
type: Inject,
args: [TOKEN_BASE_HREF]
}] }, { type: i1.DialogService }, { type: i2.K8sApiService }, { type: i3.K8sUtilService }], { helpDocPath: [{
type: Input
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HelpMenuComponent, { className: "HelpMenuComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvaGVscC1tZW51L2NvbXBvbmVudC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9wYWdlLWhlYWRlci9oZWxwLW1lbnUvY29tcG9uZW50L3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFhLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGNBQWMsRUFFZCxlQUFlLEdBQ2hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixZQUFZLEVBQ1oscUJBQXFCLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0lDYjVCLHlDQUtDO0lBQ0MsK0JBQXFDO0lBQ3JDLGdDQUEwQjtJQUFBLFlBQTRCOztJQUN4RCxBQUR3RCxpQkFBTyxFQUMvQzs7O0lBTGQsK0NBQTBCO0lBSUEsZUFBNEI7SUFBNUIsc0RBQTRCOzs7O0lBUjFELGdDQUFVO0lBQ1Isb0dBS0M7SUFLRCx3Q0FJQztJQURDLHVPQUFTLHdDQUE4QixLQUFDO0lBRXhDLDhCQUF3QztJQUN4Qyw0QkFBTTtJQUFBLFlBQWtDOztJQUMxQyxBQUQwQyxpQkFBTyxFQUNqQztJQUVoQixrQkFBeUI7SUFDM0Is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QU0sSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7a0ZBL0ZVLGlCQUFpQix1QkFhbEIsZUFBZTtvRUFiZCxpQkFBaUI7O1lDdEU5Qiw4QkFJQztZQUNDLDhCQUdZO1lBQ2QsaUJBQU07WUE0R04sQUFOQSxBQUpBLEFBdkVBLEFBekJBLG1IQUFtQix3R0F5QlEsc0dBdUVELHNHQUlELHdHQVN4Qjs7O1lBdEhDLHNDQUFvQjs7O2lGRG9FVCxpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07O3NCQWU1QyxNQUFNO3VCQUFDLGVBQWU7MEdBWHpCLFdBQVc7a0JBRFYsS0FBSzs7a0ZBREssaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgaGVscC1tZW51XG4gKi9cblxuaW1wb3J0IHsgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlLCBEaWFsb2dTaXplIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIFRPS0VOX0JBU0VfSFJFRixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZUtleSxcbiAgUFVCTElDX05BTUVTUEFDRSxcbiAgcGFyc2VWZXJzaW9uLFxuICBQQUNLQUdFX1JVTlRJTUVfVkFMVUUsXG59IGZyb20gJy4uLy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuXG5pbnRlcmZhY2UgQ29tcG9uZW50VmVyc2lvbiB7XG4gIGluZGV4OiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnTWFwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgZGF0YT86IHtcbiAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtQ29uZmlnTWFwIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgZGF0YT86IHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcGFja2FnZUVkaXRpb246IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtSW5mbyBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGRhdGE/OiB7XG4gICAgcGxhdGZvcm1OYW1lOiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUGxhdGZvcm1WZXJzaW9uIHtcbiAgbWFpbjogc3RyaW5nO1xuICBhbGw6IHN0cmluZztcbn1cblxuY29uc3QgQ09ORklHID0ge1xuICB0eXBlOiAnY29uZmlnbWFwcycsXG4gIGFwaVZlcnNpb246ICd2MScsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtaGVscC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlbHBNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgaGVscERvY1BhdGg6IHN0cmluZztcblxuICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcbiAgY29tcG9uZW50VmVyc2lvbkxpc3Q6IENvbXBvbmVudFZlcnNpb25bXTtcbiAgcGxhdGZvcm1WZXJzaW9uOiBQbGF0Zm9ybVZlcnNpb247XG4gIHBsYXRmb3JtVGlwOiBUcmFuc2xhdGVLZXk7XG4gIHBsYXRmb3JtTmFtZTogVHJhbnNsYXRlS2V5O1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGlzUnVudGltZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVE9LRU5fQkFTRV9IUkVGKVxuICAgIHJlYWRvbmx5IGJhc2VIcmVmOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge31cblxuICBvcGVuSGVhbHRoQ2hlY2tMaW5rKCkge1xuICAgIHdpbmRvdy5vcGVuKFxuICAgICAgJy9jb25zb2xlLXBsYXRmb3JtL2hlYWx0aC1jaGVjaycsXG4gICAgICAnX2JsYW5rJyxcbiAgICAgICdub29wZW5lcj15ZXMsbm9yZWZlcnJlcj15ZXMnLFxuICAgICk7XG4gIH1cblxuICB2aWV3UGxhdGZvcm1JbmZvKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jb21wb25lbnRWZXJzaW9uTGlzdCA9IFtdO1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy5rOHNBcGkuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PENvbXBvbmVudENvbmZpZ01hcD4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT05GSUcsXG4gICAgICAgIG5hbWVzcGFjZTogUFVCTElDX05BTUVTUEFDRSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICBsYWJlbFNlbGVjdG9yOiB0aGlzLms4c1V0aWwubm9ybWFsaXplVHlwZSgnY29tcG9uZW50LXZlcnNpb24nKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgdGhpcy5rOHNBcGkuZ2V0R2xvYmFsUmVzb3VyY2U8UGxhdGZvcm1Db25maWdNYXA+KHtcbiAgICAgICAgZGVmaW5pdGlvbjogQ09ORklHLFxuICAgICAgICBuYW1lOiAncGxhdGZvcm0nLFxuICAgICAgICBuYW1lc3BhY2U6IFBVQkxJQ19OQU1FU1BBQ0UsXG4gICAgICB9KSxcbiAgICAgIHRoaXMuazhzQXBpLmdldEdsb2JhbFJlc291cmNlPFBsYXRmb3JtSW5mbz4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT05GSUcsXG4gICAgICAgIG5hbWU6ICdwbGF0Zm9ybS1pbmZvJyxcbiAgICAgICAgbmFtZXNwYWNlZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIF0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtjbXMsIGNvbmZpZywgcGxhdGZvcm1JbmZvXSkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGNtIG9mIGNtcy5pdGVtcykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRzOiBDb21wb25lbnRWZXJzaW9uW10gPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICBjbS5kYXRhLmNvbXBvbmVudCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFZlcnNpb25MaXN0ID0gW1xuICAgICAgICAgICAgICAuLi50aGlzLmNvbXBvbmVudFZlcnNpb25MaXN0LFxuICAgICAgICAgICAgICAuLi5jb21wb25lbnRzLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRWZXJzaW9uTGlzdC5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XG4gICAgICAgIHRoaXMucGxhdGZvcm1WZXJzaW9uID0gdGhpcy5mb3JtYXRQbGF0Zm9ybVZlcnNpb24oY29uZmlnLmRhdGEudmVyc2lvbik7XG4gICAgICAgIHRoaXMucGxhdGZvcm1OYW1lID0ge1xuICAgICAgICAgIGVuOiBwbGF0Zm9ybUluZm8uZGF0YS5wbGF0Zm9ybU5hbWVFTixcbiAgICAgICAgICB6aDogcGxhdGZvcm1JbmZvLmRhdGEucGxhdGZvcm1OYW1lWkgsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaXNSdW50aW1lID0gY29uZmlnLmRhdGEucGFja2FnZUVkaXRpb24gPT09IFBBQ0tBR0VfUlVOVElNRV9WQUxVRTtcbiAgICAgICAgdGhpcy5wbGF0Zm9ybVRpcCA9IHtcbiAgICAgICAgICB6aDogcGxhdGZvcm1JbmZvLmRhdGEucG9ydGFsU3ViVGl0bGVaSCxcbiAgICAgICAgICBlbjogcGxhdGZvcm1JbmZvLmRhdGEucG9ydGFsU3ViVGl0bGVFTixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4odGVtcGxhdGVSZWYsIHtcbiAgICAgIHNpemU6IERpYWxvZ1NpemUuQmlnLFxuICAgICAgZml0Vmlld3BvcnQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIGZvcm1hdFBsYXRmb3JtVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1haW46ICcnLFxuICAgICAgICBhbGw6ICcnLFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyBtYWpvciwgbWlub3IgfSA9IHBhcnNlVmVyc2lvbih2ZXJzaW9uKTtcbiAgICBjb25zdCBtYWluID0gYHYke21ham9yfS4ke21pbm9yfWA7XG4gICAgcmV0dXJuIHsgbWFpbiwgYWxsOiB2ZXJzaW9uIH07XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJtZW51XCJcbiAgW2F1aURyb3Bkb3duXT1cIm1lbnVcIlxuICBhdWlEcm9wZG93bkNsYXNzPVwiYWNsLXBhZ2UtaGVhZGVyX190b29sdGlwLS1zbWFsbFwiXG4+XG4gIDxhdWktaWNvblxuICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgIGNsYXNzPVwibWVudV9faWNvblwiXG4gID48L2F1aS1pY29uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbWVudT5cbiAgPGF1aS1tZW51PlxuICAgIDxhdWktbWVudS1pdGVtXG4gICAgICAqbmdJZj1cImhlbHBEb2NQYXRoXCJcbiAgICAgIGNsYXNzPVwiYWNsLWhlbHAtbWVudS1pdGVtXCJcbiAgICAgIFthY2xIZWxwRG9jXT1cImhlbHBEb2NQYXRoXCJcbiAgICAgIGFjbEhlbHBEb2NUYXJnZXQ9XCJibGFua1wiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIGljb249XCJoZWxwX2RvY1wiPjwvYXVpLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInR3LW1sLVs0cHhdXCI+e3sgJ2hlbHBfZG9jJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2F1aS1tZW51LWl0ZW0+XG5cbiAgICA8YXVpLW1lbnUtaXRlbVxuICAgICAgY2xhc3M9XCJhY2wtaGVscC1tZW51LWl0ZW1cIlxuICAgICAgW2RpdmlkZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJ2aWV3UGxhdGZvcm1JbmZvKHBsYXRmb3JtSW5mbylcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwiaW5mb19jaXJjbGVcIj48L2F1aS1pY29uPlxuICAgICAgPHNwYW4+e3sgJ2Fib3V0X3BsYXRmb3JtJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2F1aS1tZW51LWl0ZW0+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvYXVpLW1lbnU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BsYXRmb3JtSW5mbz5cbiAgPGF1aS1kaWFsb2ctY29udGVudCBjbGFzcz1cInBsYXRmb3JtLWFib3V0LWRpYWxvZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBsYXRmb3JtX192ZXJzaW9uLXRpdGxlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiL2NvbnNvbGUvYXBpL3YxL2NtL3VpLWxvZ29zL2xvZ29cIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmVcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fbmFtZS12ZXJzaW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fbmFtZVwiPnt7XG4gICAgICAgICAgICBwbGF0Zm9ybU5hbWUgPyAocGxhdGZvcm1OYW1lIHwgdHJhbnNsYXRlKSA6ICdBQ1AnXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA4cHhcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc1J1bnRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdydW50aW1lX2VkaXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbYXVpVG9vbHRpcF09XCJwbGF0Zm9ybVN0YWdlVmVyc2lvblwiXG4gICAgICAgICAgICBbYXVpVG9vbHRpcENvbnRleHRdPVwieyB2ZXJzaW9uOiBwbGF0Zm9ybVZlcnNpb24/LmFsbCB9XCJcbiAgICAgICAgICAgIGF1aVRvb2x0aXBQb3NpdGlvbj1cImVuZFwiXG4gICAgICAgICAgICBhdWlUb29sdGlwVHlwZT1cImVtcHR5XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBwbGF0Zm9ybVZlcnNpb24/Lm1haW4gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicGxhdGZvcm1fX3ZlcnNpb24tZGVzY1wiPnt7IHBsYXRmb3JtVGlwIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBsYXRmb3JtX19jb21wb25lbnQtaW5mb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgIHt7ICdwbGF0Zm9ybV9yZWxhdGVkX29wZW5fc291cmNlX2NvbXBvbmVudF9pbmZvJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ1RtcFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtY29udGFpbmVyXCJcbiAgICAgICAgICAqbmdJZj1cImNvbXBvbmVudFZlcnNpb25MaXN0Py5sZW5ndGg7IGVsc2Ugbm9Db21wb25lbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtaXRlbVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcG9uZW50VmVyc2lvbiBvZiBjb21wb25lbnRWZXJzaW9uTGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIidpY29ucy8nICsgY29tcG9uZW50VmVyc2lvbi5uYW1lICsgJy5zdmcnXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb25lbnQtaXRlbS1pbmZvXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBvbmVudC1pdGVtLWluZm9fX25hbWVcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb21wb25lbnRWZXJzaW9uLm5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY29tcG9uZW50VmVyc2lvbi5uYW1lIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtaXRlbS1pbmZvX192ZXJzaW9uXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29tcG9uZW50VmVyc2lvbi52ZXJzaW9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNvbXBvbmVudFZlcnNpb24udmVyc2lvbiB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fYWN0aW9uXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9hdWktZGlhbG9nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29tcG9uZW50PlxuICA8ZGl2IGNsYXNzPVwibm8tY29tcG9uZW50XCI+e3sgJ25vX29wZW5fc291cmNlX2NvbXBvbmVudHMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdUbXA+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XG4gICAgPGFjbC1sb2FkaW5nLW1hc2sgW2xvYWRpbmddPVwibG9hZGluZ1wiPjwvYWNsLWxvYWRpbmctbWFzaz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3BsYXRmb3JtU3RhZ2VWZXJzaW9uXG4gIGxldC12ZXJzaW9uPVwidmVyc2lvblwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwbGF0Zm9ybV9fdmVyc2lvbi10aXRsZV9fdG9vbFRpcFwiPnt7IHZlcnNpb24gfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=