@alauda-fe/common
Version:
Alauda frontend team common codes.
274 lines • 40.8 kB
JavaScript
/**
* @packageDocumentation
* @module common-layout
*/
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
import { head, isEqual } from 'lodash-es';
import { BehaviorSubject, combineLatest, map, startWith, switchMap, take, tap, } from 'rxjs';
import { K8sUtilService, publishRef, } from '../../../../core/public-api';
import { BaseSelection } from '../project-select/base-selection';
import { CommonLayoutStoreService } from '../store.service';
import * as i0 from "@angular/core";
import * as i1 from "../store.service";
import * as i2 from "../../../../core/public-api";
import * as i3 from "@angular/common";
import * as i4 from "@alauda/ui";
import * as i5 from "../../../../translate/translate.pipe";
import * as i6 from "../../../../core/pipes/pure.pipe";
import * as i7 from "../../../../core/pipes/k8s-util.pipe";
const _c0 = (a0, a1, a2, a3, a4) => ({ group: a0, groups: a1, i: a2, j: a3, focusedMenuItemIndex: a4 });
function NamespaceSelectComponent_a_2_Template(rf, ctx) { if (rf & 1) {
const _r1 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "a", 5);
i0.ɵɵpipe(1, "translate");
i0.ɵɵlistener("auiDropdownVisibleChange", function NamespaceSelectComponent_a_2_Template_a_auiDropdownVisibleChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleMenuVisible($event)); });
i0.ɵɵelement(2, "aui-icon", 6);
i0.ɵɵelementContainerStart(3);
i0.ɵɵelementStart(4, "span");
i0.ɵɵtext(5);
i0.ɵɵelementEnd();
i0.ɵɵelement(6, "aui-icon", 7);
i0.ɵɵelementContainerEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
const menu_r3 = i0.ɵɵreference(5);
i0.ɵɵpropertyInterpolate2("title", "", i0.ɵɵpipeBind1(1, 7, "namespace"), ": ", ctx_r1.selected == null ? null : ctx_r1.selected.name, "");
i0.ɵɵproperty("auiDropdown", menu_r3)("auiDropdownPosition", "bottom start")("auiDropdownClass", "acl-namespace-select__menu");
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate(ctx_r1.selected ? ctx_r1.selected.name : "-");
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_aui_menu_item_4_span_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "span", 18);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "aclDisplayName");
i0.ɵɵelementEnd();
} if (rf & 2) {
const item_r6 = i0.ɵɵnextContext().$implicit;
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" (", i0.ɵɵpipeBind1(2, 1, item_r6), ") ");
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_aui_menu_item_4_Template(rf, ctx) { if (rf & 1) {
const _r5 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-menu-item", 16);
i0.ɵɵpipe(1, "aclName");
i0.ɵɵpipe(2, "pure");
i0.ɵɵlistener("click", function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_aui_menu_item_4_Template_aui_menu_item_click_0_listener() { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const group_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onSelect(group_r7, item_r6)); });
i0.ɵɵelementStart(3, "span");
i0.ɵɵtext(4);
i0.ɵɵpipe(5, "aclName");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(6, NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_aui_menu_item_4_span_6_Template, 3, 3, "span", 17);
i0.ɵɵpipe(7, "aclDisplayName");
i0.ɵɵelementEnd();
} if (rf & 2) {
const item_r6 = ctx.$implicit;
const j_r8 = ctx.index;
const ctx_r8 = i0.ɵɵnextContext(2);
const group_r7 = ctx_r8.$implicit;
const i_r10 = ctx_r8.index;
const groups_r11 = i0.ɵɵnextContext(2).ngIf;
const ctx_r1 = i0.ɵɵnextContext(2);
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(1, 4, item_r6));
i0.ɵɵproperty("actived", i0.ɵɵpipeBind4(2, 6, item_r6, ctx_r1.isActive, ctx_r1.selected, i0.ɵɵpureFunction5(15, _c0, group_r7, groups_r11, i_r10, j_r8, ctx_r1.focusedMenuItemIndex)));
i0.ɵɵadvance(4);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 11, item_r6));
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(7, 13, item_r6));
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "aui-menu-group")(1, "span", 14);
i0.ɵɵtext(2);
i0.ɵɵpipe(3, "aclDisplayName");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(4, NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_aui_menu_item_4_Template, 8, 21, "aui-menu-item", 15);
i0.ɵɵelementEnd();
} if (rf & 2) {
const group_r7 = i0.ɵɵnextContext().$implicit;
const ctx_r1 = i0.ɵɵnextContext(4);
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, group_r7.cluster));
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngForOf", group_r7.namespaces)("ngForTrackBy", ctx_r1.trackFn);
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_aui_menu_group_1_Template, 5, 5, "aui-menu-group", 10);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const group_r7 = ctx.$implicit;
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", group_r7.namespaces == null ? null : group_r7.namespaces.length);
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 12);
i0.ɵɵtemplate(1, NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_ng_container_1_Template, 2, 1, "ng-container", 13);
i0.ɵɵelementEnd();
} if (rf & 2) {
const groups_r11 = i0.ɵɵnextContext().ngIf;
const ctx_r1 = i0.ɵɵnextContext(2);
i0.ɵɵadvance();
i0.ɵɵproperty("ngForOf", groups_r11)("ngForTrackBy", ctx_r1.groupTrackFn);
} }
function NamespaceSelectComponent_ng_template_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, NamespaceSelectComponent_ng_template_4_ng_container_5_div_1_Template, 2, 2, "div", 11);
i0.ɵɵpipe(2, "pure");
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const groups_r11 = ctx.ngIf;
const ctx_r1 = i0.ɵɵnextContext(2);
const noResult_r12 = i0.ɵɵreference(9);
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(2, 2, groups_r11, ctx_r1.hasResult))("ngIfElse", noResult_r12);
} }
function NamespaceSelectComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
const _r4 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-menu")(1, "div", 8)(2, "aui-search", 9);
i0.ɵɵpipe(3, "translate");
i0.ɵɵpipe(4, "async");
i0.ɵɵlistener("keywordChange", function NamespaceSelectComponent_ng_template_4_Template_aui_search_keywordChange_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.keyword$$.next($event)); });
i0.ɵɵelementEnd()();
i0.ɵɵtemplate(5, NamespaceSelectComponent_ng_template_4_ng_container_5_Template, 3, 5, "ng-container", 10);
i0.ɵɵpipe(6, "async");
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance(2);
i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 4, "filter_by_name"))("searchButton", false)("keyword", i0.ɵɵpipeBind1(4, 6, ctx_r1.keyword$$));
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 8, ctx_r1.groups$));
} }
function NamespaceSelectComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "a", 19);
i0.ɵɵelement(1, "aui-icon", 6);
i0.ɵɵelementStart(2, "span");
i0.ɵɵtext(3);
i0.ɵɵpipe(4, "translate");
i0.ɵɵelementEnd();
i0.ɵɵelement(5, "aui-icon", 20);
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "no_namespace"));
} }
function NamespaceSelectComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 21);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "no_namespace"), " ");
} }
export class NamespaceSelectComponent extends BaseSelection {
set projectName(projectName) {
this.projectName$$.next(projectName);
}
constructor(store, k8sUtil, cdr) {
super(cdr);
this.store = store;
this.k8sUtil = k8sUtil;
this.projectName$$ = new BehaviorSubject('');
this.selectedChange = new EventEmitter();
this.availableGroups$ = this.projectName$$.pipe(switchMap(projectName => this.store.selectNamespacesByProjectName(projectName)), publishRef());
this.hasNamespace$ = this.availableGroups$.pipe(map(groups => head(groups
.map(([cluster, namespaces]) => {
const namespace = head(namespaces);
if (!namespace) {
return null;
}
return {
cluster: this.name(cluster),
name: this.name(namespace),
};
})
.filter(item => !!item))), tap(first => {
// TODO: temp fix for asm
if (!this.selected && !first) {
this.selectedChange.emit(null);
}
if (!this.selected && first) {
this.selectedChange.emit(first);
}
}), map(first => !!first), publishRef());
this.groups$ = combineLatest([
this.keyword$$.pipe(startWith(''), tap(() => {
this.focusedMenuItemIndex = -1;
})),
this.availableGroups$,
]).pipe(map(([keywords, groups]) => groups.map(([cluster, namespaces]) => ({
cluster,
namespaces: (namespaces || []).filter(namespace => this.name(namespace).includes(keywords)),
}))), publishRef());
this.name = (item) => this.k8sUtil.getName(item);
this.isActive = (item, selected, { group: { cluster }, groups, i, j, focusedMenuItemIndex, }) => {
if (!selected) {
return false;
}
const isSelected = this.name(cluster) === selected.cluster &&
this.name(item) === selected.name;
if (isSelected) {
return isSelected;
}
return (focusedMenuItemIndex -
groups.reduce((acc, curr, index) => index >= i ? acc : curr.namespaces.length + acc, 0) ===
j);
};
this.trackFn = (_, item) => this.name(item);
this.groupTrackFn = (_, { cluster, }) => this.name(cluster);
}
hasResult(groups) {
return groups.some(group => !!group.namespaces.length);
}
onSelect({ cluster }, namespace) {
if (isEqual(this.selected, {
cluster: this.name(cluster),
namespace: this.name(namespace),
})) {
return;
}
this.selectedChange.emit({
cluster: this.name(cluster),
name: this.name(namespace),
});
}
selectByIndex(index) {
this.groups$.pipe(take(1)).subscribe(groups => {
for (const [i, group] of groups.entries()) {
const namespaces = group.namespaces;
index = index - i;
if (index < namespaces.length) {
this.onSelect(group, namespaces[index]);
break;
}
}
});
}
static { this.ɵfac = function NamespaceSelectComponent_Factory(t) { return new (t || NamespaceSelectComponent)(i0.ɵɵdirectiveInject(i1.CommonLayoutStoreService), i0.ɵɵdirectiveInject(i2.K8sUtilService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NamespaceSelectComponent, selectors: [["acl-namespace-select"]], inputs: { projectName: "projectName", selected: "selected" }, outputs: { selectedChange: "selectedChange" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 8, consts: [["menu", ""], ["empty", ""], ["noResult", ""], [1, "acl-namespace-select"], ["href", "javascript:;", "auiDropdownActive", "acl-namespace-select--active", 3, "auiDropdown", "auiDropdownPosition", "auiDropdownClass", "title", "auiDropdownVisibleChange", 4, "ngIf", "ngIfElse"], ["href", "javascript:;", "auiDropdownActive", "acl-namespace-select--active", 3, "auiDropdownVisibleChange", "auiDropdown", "auiDropdownPosition", "auiDropdownClass", "title"], ["icon", "prod:namespace", "size", "16px", "color", "#fff"], ["icon", "caret_down_s", "size", "16px"], [1, "acl-namespace-select__input"], [3, "keywordChange", "placeholder", "searchButton", "keyword"], [4, "ngIf"], ["class", "acl-namespace-select__options", 4, "ngIf", "ngIfElse"], [1, "acl-namespace-select__options"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["auiMenuGroupTitle", ""], [3, "actived", "title", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "click", "actived", "title"], ["class", "acl-namespace-select__display-name", 4, "ngIf"], [1, "acl-namespace-select__display-name"], ["href", "javascript:;"], ["icon", "caret_down_s", "size", "16px", "color", "#999"], [1, "acl-namespace-select__no-result"]], template: function NamespaceSelectComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 3);
i0.ɵɵpipe(1, "async");
i0.ɵɵtemplate(2, NamespaceSelectComponent_a_2_Template, 7, 9, "a", 4);
i0.ɵɵpipe(3, "async");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(4, NamespaceSelectComponent_ng_template_4_Template, 7, 10, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(6, NamespaceSelectComponent_ng_template_6_Template, 6, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(8, NamespaceSelectComponent_ng_template_8_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
const empty_r13 = i0.ɵɵreference(7);
i0.ɵɵclassProp("disabled", !i0.ɵɵpipeBind1(1, 4, ctx.hasNamespace$));
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 6, ctx.hasNamespace$))("ngIfElse", empty_r13);
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.DropdownDirective, i4.DropdownActiveDirective, i4.MenuComponent, i4.MenuGroupComponent, i4.MenuGroupTitleDirective, i4.MenuItemComponent, i4.SearchComponent, i4.IconComponent, i3.AsyncPipe, i5.TranslatePipe, i6.PurePipe, i7.K8sDisplayNamePipe, i7.K8sNamePipe], styles: [":host{display:block}.acl-namespace-select{padding:4px 8px;display:flex}.acl-namespace-select.disabled{position:relative}.acl-namespace-select.disabled:before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}.acl-namespace-select>a{flex:1;display:flex;border-radius:2px;flex-direction:row;align-items:center;justify-content:flex-start;height:36px;padding:0 8px;width:100%;color:rgb(var(--aui-color-n-10));text-decoration:none}.acl-namespace-select>a:hover{background-color:#fff3}.acl-namespace-select>a>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 8px}.acl-namespace-select>a aui-icon{height:16px}.acl-namespace-select--active{background-color:#fff3}.acl-namespace-select__menu .aui-menu{max-width:320px;max-height:400px;display:flex;flex-direction:column}.acl-namespace-select__input{flex-shrink:0;padding-bottom:8px}.acl-namespace-select__options{flex:1;overflow:auto}.acl-namespace-select__options::-webkit-scrollbar{width:8px;height:4px}.acl-namespace-select__options::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.acl-namespace-select__options::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.acl-namespace-select__options::-webkit-scrollbar-corner{background-color:transparent}.acl-namespace-select__display-name{color:rgb(var(--aui-color-n-4));margin-left:4px}.acl-namespace-select__no-result{border-top:solid 1px rgb(var(--aui-color-n-8));line-height:28px;padding:8px 0 0;margin:0 -8px;display:flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-6))}\n"], encapsulation: 2, changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NamespaceSelectComponent, [{
type: Component,
args: [{ selector: 'acl-namespace-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"acl-namespace-select\"\n [class.disabled]=\"!(hasNamespace$ | async)\"\n>\n <a\n *ngIf=\"hasNamespace$ | async; else empty\"\n href=\"javascript:;\"\n [auiDropdown]=\"menu\"\n [auiDropdownPosition]=\"'bottom start'\"\n [auiDropdownClass]=\"'acl-namespace-select__menu'\"\n auiDropdownActive=\"acl-namespace-select--active\"\n (auiDropdownVisibleChange)=\"handleMenuVisible($event)\"\n title=\"{{ 'namespace' | translate }}: {{ selected?.name }}\"\n >\n <aui-icon\n icon=\"prod:namespace\"\n size=\"16px\"\n color=\"#fff\"\n ></aui-icon>\n <ng-container>\n <span>{{ selected ? selected.name : '-' }}</span>\n <aui-icon\n icon=\"caret_down_s\"\n size=\"16px\"\n ></aui-icon>\n </ng-container>\n </a>\n</div>\n\n<ng-template #menu\n ><aui-menu\n ><div class=\"acl-namespace-select__input\">\n <aui-search\n [placeholder]=\"'filter_by_name' | translate\"\n [searchButton]=\"false\"\n [keyword]=\"keyword$$ | async\"\n (keywordChange)=\"keyword$$.next($event)\"\n ></aui-search>\n </div>\n <ng-container *ngIf=\"groups$ | async as groups\">\n <div\n class=\"acl-namespace-select__options\"\n *ngIf=\"groups | pure: hasResult; else noResult\"\n >\n <ng-container\n *ngFor=\"let group of groups; index as i; trackBy: groupTrackFn\"\n >\n <aui-menu-group *ngIf=\"group.namespaces?.length\">\n <span auiMenuGroupTitle>{{ group.cluster | aclDisplayName }}</span>\n <aui-menu-item\n *ngFor=\"\n let item of group.namespaces;\n index as j;\n trackBy: trackFn\n \"\n [actived]=\"\n item\n | pure\n : isActive\n : selected\n : {\n group: group,\n groups: groups,\n i: i,\n j: j,\n focusedMenuItemIndex: focusedMenuItemIndex\n }\n \"\n (click)=\"onSelect(group, item)\"\n title=\"{{ item | aclName }}\"\n >\n <span>{{ item | aclName }}</span>\n <span\n *ngIf=\"item | aclDisplayName\"\n class=\"acl-namespace-select__display-name\"\n >\n ({{ item | aclDisplayName }})\n </span>\n </aui-menu-item>\n </aui-menu-group>\n </ng-container>\n </div>\n </ng-container>\n </aui-menu></ng-template\n>\n\n<ng-template #empty>\n <a href=\"javascript:;\">\n <aui-icon\n icon=\"prod:namespace\"\n size=\"16px\"\n color=\"#fff\"\n ></aui-icon>\n <span>{{ 'no_namespace' | translate }}</span>\n <aui-icon\n icon=\"caret_down_s\"\n size=\"16px\"\n color=\"#999\"\n ></aui-icon>\n </a>\n</ng-template>\n\n<ng-template #noResult>\n <div class=\"acl-namespace-select__no-result\">\n {{ 'no_namespace' | translate }}\n </div>\n</ng-template>\n", styles: [":host{display:block}.acl-namespace-select{padding:4px 8px;display:flex}.acl-namespace-select.disabled{position:relative}.acl-namespace-select.disabled:before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0}.acl-namespace-select>a{flex:1;display:flex;border-radius:2px;flex-direction:row;align-items:center;justify-content:flex-start;height:36px;padding:0 8px;width:100%;color:rgb(var(--aui-color-n-10));text-decoration:none}.acl-namespace-select>a:hover{background-color:#fff3}.acl-namespace-select>a>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 8px}.acl-namespace-select>a aui-icon{height:16px}.acl-namespace-select--active{background-color:#fff3}.acl-namespace-select__menu .aui-menu{max-width:320px;max-height:400px;display:flex;flex-direction:column}.acl-namespace-select__input{flex-shrink:0;padding-bottom:8px}.acl-namespace-select__options{flex:1;overflow:auto}.acl-namespace-select__options::-webkit-scrollbar{width:8px;height:4px}.acl-namespace-select__options::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.acl-namespace-select__options::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.acl-namespace-select__options::-webkit-scrollbar-corner{background-color:transparent}.acl-namespace-select__display-name{color:rgb(var(--aui-color-n-4));margin-left:4px}.acl-namespace-select__no-result{border-top:solid 1px rgb(var(--aui-color-n-8));line-height:28px;padding:8px 0 0;margin:0 -8px;display:flex;align-items:center;justify-content:center;color:rgb(var(--aui-color-n-6))}\n"] }]
}], () => [{ type: i1.CommonLayoutStoreService }, { type: i2.K8sUtilService }, { type: i0.ChangeDetectorRef }], { projectName: [{
type: Input
}], selected: [{
type: Input
}], selectedChange: [{
type: Output
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NamespaceSelectComponent, { className: "NamespaceSelectComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvY29tbW9uLWxheW91dC9uYW1lc3BhY2Utc2VsZWN0L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9wYWdlLXNjYWZmb2xkL3BhZ2UtaGVhZGVyL2NvbW1vbi1sYXlvdXQvbmFtZXNwYWNlLXNlbGVjdC9jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBRUwsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQVMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lDM0JqRSw0QkFTQzs7SUFGQyx5TkFBNEIsZ0NBQXlCLEtBQUM7SUFHdEQsOEJBSVk7SUFDWiw2QkFBYztJQUNaLDRCQUFNO0lBQUEsWUFBb0M7SUFBQSxpQkFBTztJQUNqRCw4QkFHWTs7SUFFaEIsaUJBQUk7Ozs7SUFkRiwwSUFBMkQ7SUFIM0QsQUFEQSxBQURBLHFDQUFvQix1Q0FDa0Is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VUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDeEMsTUFBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt5RkFuS1Usd0JBQXdCO29FQUF4Qix3QkFBd0I7WUN4Q3JDLDhCQUdDOztZQUNDLHFFQVNDOztZQWNILGlCQUFNO1lBMkVOLEFBaEJBLEFBekRBLDJIQUNHLDZHQXdEaUIsNkdBZ0JHOzs7WUFwR3JCLG9FQUEyQztZQUd4QyxlQUE2QjtZQUFBLEFBQTdCLDhEQUE2Qix1QkFBVTs7O2lGRG1DL0Isd0JBQXdCO2NBUHBDLFNBQVM7MkJBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7c0hBTWpDLFdBQVc7a0JBRGQsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFFSSxjQUFjO2tCQUF2QixNQUFNOztrRkFWSSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBjb21tb24tbGF5b3V0XG4gKi9cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGhlYWQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEs4c1V0aWxTZXJ2aWNlLFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgTmFtZXNwYWNlSWRlbnRpdHkgfSBmcm9tICcuLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlbGVjdGlvbiB9IGZyb20gJy4uL3Byb2plY3Qtc2VsZWN0L2Jhc2Utc2VsZWN0aW9uJztcbmltcG9ydCB7IENvbW1vbkxheW91dFN0b3JlU2VydmljZSwgR3JvdXAgfSBmcm9tICcuLi9zdG9yZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW5hbWVzcGFjZS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTmFtZXNwYWNlU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlbGVjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdE5hbWUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBwcm9qZWN0TmFtZShwcm9qZWN0TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9qZWN0TmFtZSQkLm5leHQocHJvamVjdE5hbWUpO1xuICB9XG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ/OiBOYW1lc3BhY2VJZGVudGl0eTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE5hbWVzcGFjZUlkZW50aXR5IHwgbnVsbD4oKTtcblxuICBhdmFpbGFibGVHcm91cHMkID0gdGhpcy5wcm9qZWN0TmFtZSQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKHByb2plY3ROYW1lID0+XG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdE5hbWVzcGFjZXNCeVByb2plY3ROYW1lKHByb2plY3ROYW1lKSxcbiAgICApLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBoYXNOYW1lc3BhY2UkID0gdGhpcy5hdmFpbGFibGVHcm91cHMkLnBpcGUoXG4gICAgbWFwKGdyb3VwcyA9PlxuICAgICAgaGVhZChcbiAgICAgICAgZ3JvdXBzXG4gICAgICAgICAgLm1hcCgoW2NsdXN0ZXIsIG5hbWVzcGFjZXNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lc3BhY2UgPSBoZWFkKG5hbWVzcGFjZXMpO1xuXG4gICAgICAgICAgICBpZiAoIW5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY2x1c3RlcjogdGhpcy5uYW1lKGNsdXN0ZXIpLFxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUobmFtZXNwYWNlKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKSxcbiAgICAgICksXG4gICAgKSxcbiAgICB0YXAoZmlyc3QgPT4ge1xuICAgICAgLy8gVE9ETzogdGVtcCBmaXggZm9yIGFzbVxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkICYmICFmaXJzdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZCAmJiBmaXJzdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZmlyc3QpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIG1hcChmaXJzdCA9PiAhIWZpcnN0KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ3JvdXBzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMua2V5d29yZCQkLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c2VkTWVudUl0ZW1JbmRleCA9IC0xO1xuICAgICAgfSksXG4gICAgKSxcbiAgICB0aGlzLmF2YWlsYWJsZUdyb3VwcyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChba2V5d29yZHMsIGdyb3Vwc10pID0+XG4gICAgICBncm91cHMubWFwKChbY2x1c3RlciwgbmFtZXNwYWNlc10pID0+ICh7XG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIG5hbWVzcGFjZXM6IChuYW1lc3BhY2VzIHx8IFtdKS5maWx0ZXIobmFtZXNwYWNlID0+XG4gICAgICAgICAgdGhpcy5uYW1lKG5hbWVzcGFjZSkuaW5jbHVkZXMoa2V5d29yZHMpLFxuICAgICAgICApLFxuICAgICAgfSkpLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IENvbW1vbkxheW91dFN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c1V0aWw6IEs4c1V0aWxTZXJ2aWNlLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKGNkcik7XG4gIH1cblxuICBuYW1lID0gKGl0ZW06IEt1YmVybmV0ZXNSZXNvdXJjZSkgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSk7XG5cbiAgaXNBY3RpdmUgPSAoXG4gICAgaXRlbTogS3ViZXJuZXRlc1Jlc291cmNlLFxuICAgIHNlbGVjdGVkOiBOYW1lc3BhY2VJZGVudGl0eSxcbiAgICB7XG4gICAgICBncm91cDogeyBjbHVzdGVyIH0sXG4gICAgICBncm91cHMsXG4gICAgICBpLFxuICAgICAgaixcbiAgICAgIGZvY3VzZWRNZW51SXRlbUluZGV4LFxuICAgIH06IHtcbiAgICAgIGdyb3VwOiB7IGNsdXN0ZXI6IEt1YmVybmV0ZXNSZXNvdXJjZSB9O1xuICAgICAgZ3JvdXBzOiBBcnJheTx7IG5hbWVzcGFjZXM6IHVua25vd25bXSB9PjtcbiAgICAgIGk6IG51bWJlcjtcbiAgICAgIGo6IG51bWJlcjtcbiAgICAgIGZvY3VzZWRNZW51SXRlbUluZGV4OiBudW1iZXI7XG4gICAgfSxcbiAgKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpc1NlbGVjdGVkID1cbiAgICAgIHRoaXMubmFtZShjbHVzdGVyKSA9PT0gc2VsZWN0ZWQuY2x1c3RlciAmJlxuICAgICAgdGhpcy5uYW1lKGl0ZW0pID09PSBzZWxlY3RlZC5uYW1lO1xuICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICByZXR1cm4gaXNTZWxlY3RlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgZm9jdXNlZE1lbnVJdGVtSW5kZXggLVxuICAgICAgICBncm91cHMucmVkdWNlKFxuICAgICAgICAgIChhY2MsIGN1cnIsIGluZGV4KSA9PlxuICAgICAgICAgICAgaW5kZXggPj0gaSA/IGFjYyA6IGN1cnIubmFtZXNwYWNlcy5sZW5ndGggKyBhY2MsXG4gICAgICAgICAgMCxcbiAgICAgICAgKSA9PT1cbiAgICAgIGpcbiAgICApO1xuICB9O1xuXG4gIHRyYWNrRm4gPSAoXzogbnVtYmVyLCBpdGVtOiBLdWJlcm5ldGVzUmVzb3VyY2UpID0+IHRoaXMubmFtZShpdGVtKTtcblxuICBncm91cFRyYWNrRm4gPSAoXG4gICAgXzogbnVtYmVyLFxuICAgIHtcbiAgICAgIGNsdXN0ZXIsXG4gICAgfTogeyBjbHVzdGVyOiBLdWJlcm5ldGVzUmVzb3VyY2U7IG5hbWVzcGFjZXM6IEt1YmVybmV0ZXNSZXNvdXJjZVtdIH0sXG4gICkgPT4gdGhpcy5uYW1lKGNsdXN0ZXIpO1xuXG4gIGhhc1Jlc3VsdChncm91cHM6IEdyb3VwW10pIHtcbiAgICByZXR1cm4gZ3JvdXBzLnNvbWUoZ3JvdXAgPT4gISFncm91cC5uYW1lc3BhY2VzLmxlbmd0aCk7XG4gIH1cblxuICBvblNlbGVjdChcbiAgICB7IGNsdXN0ZXIgfTogeyBjbHVzdGVyOiBLdWJlcm5ldGVzUmVzb3VyY2UgfSxcbiAgICBuYW1lc3BhY2U6IEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgaXNFcXVhbCh0aGlzLnNlbGVjdGVkLCB7XG4gICAgICAgIGNsdXN0ZXI6IHRoaXMubmFtZShjbHVzdGVyKSxcbiAgICAgICAgbmFtZXNwYWNlOiB0aGlzLm5hbWUobmFtZXNwYWNlKSxcbiAgICAgIH0pXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHtcbiAgICAgIGNsdXN0ZXI6IHRoaXMubmFtZShjbHVzdGVyKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZShuYW1lc3BhY2UpLFxuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0QnlJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncm91cHMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGdyb3VwcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IFtpLCBncm91cF0gb2YgZ3JvdXBzLmVudHJpZXMoKSkge1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VzID0gZ3JvdXAubmFtZXNwYWNlcztcbiAgICAgICAgaW5kZXggPSBpbmRleCAtIGk7XG4gICAgICAgIGlmIChpbmRleCA8IG5hbWVzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5vblNlbGVjdChncm91cCwgbmFtZXNwYWNlc1tpbmRleF0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhY2wtbmFtZXNwYWNlLXNlbGVjdFwiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCIhKGhhc05hbWVzcGFjZSQgfCBhc3luYylcIlxuPlxuICA8YVxuICAgICpuZ0lmPVwiaGFzTmFtZXNwYWNlJCB8IGFzeW5jOyBlbHNlIGVtcHR5XCJcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICBbYXVpRHJvcGRvd25dPVwibWVudVwiXG4gICAgW2F1aURyb3Bkb3duUG9zaXRpb25dPVwiJ2JvdHRvbSBzdGFydCdcIlxuICAgIFthdWlEcm9wZG93bkNsYXNzXT1cIidhY2wtbmFtZXNwYWNlLXNlbGVjdF9fbWVudSdcIlxuICAgIGF1aURyb3Bkb3duQWN0aXZlPVwiYWNsLW5hbWVzcGFjZS1zZWxlY3QtLWFjdGl2ZVwiXG4gICAgKGF1aURyb3Bkb3duVmlzaWJsZUNoYW5nZSk9XCJoYW5kbGVNZW51VmlzaWJsZSgkZXZlbnQpXCJcbiAgICB0aXRsZT1cInt7ICduYW1lc3BhY2UnIHwgdHJhbnNsYXRlIH19OiB7eyBzZWxlY3RlZD8ubmFtZSB9fVwiXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgIGljb249XCJwcm9kOm5hbWVzcGFjZVwiXG4gICAgICBzaXplPVwiMTZweFwiXG4gICAgICBjb2xvcj1cIiNmZmZcIlxuICAgID48L2F1aS1pY29uPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8c3Bhbj57eyBzZWxlY3RlZCA/IHNlbGVjdGVkLm5hbWUgOiAnLScgfX08L3NwYW4+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgaWNvbj1cImNhcmV0X2Rvd25fc1wiXG4gICAgICAgIHNpemU9XCIxNnB4XCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2E+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNtZW51XG4gID48YXVpLW1lbnVcbiAgICA+PGRpdiBjbGFzcz1cImFjbC1uYW1lc3BhY2Utc2VsZWN0X19pbnB1dFwiPlxuICAgICAgPGF1aS1zZWFyY2hcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidmaWx0ZXJfYnlfbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbc2VhcmNoQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgW2tleXdvcmRdPVwia2V5d29yZCQkIHwgYXN5bmNcIlxuICAgICAgICAoa2V5d29yZENoYW5nZSk9XCJrZXl3b3JkJCQubmV4dCgkZXZlbnQpXCJcbiAgICAgID48L2F1aS1zZWFyY2g+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwcyQgfCBhc3luYyBhcyBncm91cHNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhY2wtbmFtZXNwYWNlLXNlbGVjdF9fb3B0aW9uc1wiXG4gICAgICAgICpuZ0lmPVwiZ3JvdXBzIHwgcHVyZTogaGFzUmVzdWx0OyBlbHNlIG5vUmVzdWx0XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cHM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IGdyb3VwVHJhY2tGblwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXVpLW1lbnUtZ3JvdXAgKm5nSWY9XCJncm91cC5uYW1lc3BhY2VzPy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxzcGFuIGF1aU1lbnVHcm91cFRpdGxlPnt7IGdyb3VwLmNsdXN0ZXIgfCBhY2xEaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxhdWktbWVudS1pdGVtXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGdyb3VwLm5hbWVzcGFjZXM7XG4gICAgICAgICAgICAgICAgaW5kZXggYXMgajtcbiAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0ZuXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthY3RpdmVkXT1cIlxuICAgICAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICAgICAgICAgIHwgcHVyZVxuICAgICAgICAgICAgICAgICAgICA6IGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgIDogc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cDogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cHM6IGdyb3VwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGk6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICBqOiBqLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNlZE1lbnVJdGVtSW5kZXg6IGZvY3VzZWRNZW51SXRlbUluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoZ3JvdXAsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBpdGVtIHwgYWNsTmFtZSB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0gfCBhY2xOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbSB8IGFjbERpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFjbC1uYW1lc3BhY2Utc2VsZWN0X19kaXNwbGF5LW5hbWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgKHt7IGl0ZW0gfCBhY2xEaXNwbGF5TmFtZSB9fSlcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hdWktbWVudS1pdGVtPlxuICAgICAgICAgIDwvYXVpLW1lbnUtZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXVpLW1lbnU+PC9uZy10ZW1wbGF0ZVxuPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5PlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgPGF1aS1pY29uXG4gICAgICBpY29uPVwicHJvZDpuYW1lc3BhY2VcIlxuICAgICAgc2l6ZT1cIjE2cHhcIlxuICAgICAgY29sb3I9XCIjZmZmXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgICA8c3Bhbj57eyAnbm9fbmFtZXNwYWNlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8YXVpLWljb25cbiAgICAgIGljb249XCJjYXJldF9kb3duX3NcIlxuICAgICAgc2l6ZT1cIjE2cHhcIlxuICAgICAgY29sb3I9XCIjOTk5XCJcbiAgICA+PC9hdWktaWNvbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNub1Jlc3VsdD5cbiAgPGRpdiBjbGFzcz1cImFjbC1uYW1lc3BhY2Utc2VsZWN0X19uby1yZXN1bHRcIj5cbiAgICB7eyAnbm9fbmFtZXNwYWNlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=