UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

187 lines 38.6 kB
import { __decorate, __metadata } from "tslib"; import { TooltipTrigger } from '@alauda/ui'; import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, ViewChild, ElementRef, } from '@angular/core'; import { once } from 'lodash-es'; import { BehaviorSubject, combineLatest, merge, Observable, ReplaySubject, distinctUntilChanged, map, } from 'rxjs'; import { IframeConfigService } from '../../..//iframe-config/config.service'; import { ObservableInput, publishRef } from '../../../core/public-api'; import { COLLAPSE_MENU_KEY } from '../../../iframe-config/constants'; import { PageComponent } from '../../public-api'; import { filterEmptyNode } from '../utils'; import * as i0 from "@angular/core"; import * as i1 from "../../public-api"; import * as i2 from "../../..//iframe-config/config.service"; const _c0 = ["container"]; const _c1 = ["content"]; const _c2 = () => ({ bottomDistance: 20 }); const _c3 = a0 => ({ "acl-nav-menu__collapse-button-shadow": a0 }); function NavMenuComponent_acl_nav_skeleton_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "acl-nav-skeleton"); } } function NavMenuComponent_div_8_Template(rf, ctx) { if (rf & 1) { const _r2 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 7); i0.ɵɵpipe(1, "async"); i0.ɵɵlistener("click", function NavMenuComponent_div_8_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCollapse()); }); i0.ɵɵelement(2, "aui-icon", 8); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c3, i0.ɵɵpipeBind1(1, 2, ctx_r2.showShadow$))); i0.ɵɵadvance(2); i0.ɵɵproperty("icon", ctx_r2.isCollapse ? "prod:list_expand_right" : "prod:list_fold_left"); } } const SIDENAV_ANI = 'sidenav-ani'; export class NavMenuComponent { constructor(pageCpt, iframeConfigService) { this.pageCpt = pageCpt; this.iframeConfigService = iframeConfigService; this.expandedKey$$ = new ReplaySubject(1); this.focusedRootKey$$ = new BehaviorSubject(null); this.isCollapse = this.iframeConfigService.isCollapseMenu; this.triggerType = TooltipTrigger.Hover; this.disableAniIcon = false; this.filteredConfigs$ = this.configs$.pipe(map(filterEmptyNode), publishRef()); this.showShadow$ = new BehaviorSubject(false); this.items$ = combineLatest([this.filteredConfigs$, this.groups$]).pipe( // 处理成NavItemConfig数组 map(([items, groups]) => items || (groups ? groups.reduce((prev, cur) => [...prev, ...cur.items], []) : [])), publishRef()); this.paths$ = this.items$.pipe(map(items => this.getPaths(items)), publishRef()); this.activeKeys$ = combineLatest([this.paths$, this.activatedKey$]).pipe(map(([paths, key]) => this.findPathByLastKey(paths, key)), publishRef()); this.expandedKeys$ = combineLatest([ this.paths$, merge(this.activatedKey$, this.expandedKey$$), ]).pipe(map(([paths, key]) => this.findPathByLastKey(paths, key)), publishRef()); this.focusedRootKey$ = this.focusedRootKey$$.pipe(distinctUntilChanged(), publishRef()); this.addSidenavAni = once(() => { this.pageCpt.addClass(SIDENAV_ANI); }); } ngOnInit() { this.updateCollapseClass(); } ngOnDestroy() { this.pageCpt.removeClass(SIDENAV_ANI); } ngAfterViewInit() { const ob = new IntersectionObserver(entries => { const { isIntersecting } = entries[0]; this.isIntersecting = isIntersecting; this.showShadow$.next(!isIntersecting); }, { root: this.container.nativeElement, threshold: 1, // 因为 .acl-nav-menu 底部有额外的 20px 间距 rootMargin: '0px 0px 20px 0px', }); ob.observe(this.content.nativeElement); } scroll(type) { if (!this.isIntersecting) { this.showShadow$.next(type !== 'bottom'); } } // 通过key找到他及其父的path路径 findPathByLastKey(paths, key) { return paths.find(path => [...path].pop() === key); } // 以NavItemConfig的key组成自上而下的path路径,类似['a', 'a/b'] getPaths(items, parent) { if (!items?.length) { return []; } const pre = parent ? [...parent] : []; return items.reduce((prev, cur) => [ ...prev, ...this.getPaths(cur.children, [...pre, cur.key]), ], items.map(item => [...pre, item.key])); } expandedKeyChanged(key) { this.expandedKey$$.next(key); } focusedRootKeyChange(key) { this.focusedRootKey$$.next(key); } toggleCollapse() { this.isCollapse = !this.isCollapse; localStorage.setItem(COLLAPSE_MENU_KEY, String(this.isCollapse)); this.addSidenavAni(); // 当用户第一次主动切换状态时添加动效类,而不是一开始就有,避免初始化时其他样式切换带来的过度动效 this.updateCollapseClass(); } updateCollapseClass() { this.pageCpt[this.isCollapse ? 'addClass' : 'removeClass']('sidenav-collapse'); } static { this.ɵfac = function NavMenuComponent_Factory(t) { return new (t || NavMenuComponent)(i0.ɵɵdirectiveInject(i1.PageComponent), i0.ɵɵdirectiveInject(i2.IframeConfigService)); }; } static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavMenuComponent, selectors: [["acl-nav-menu"]], viewQuery: function NavMenuComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 5); i0.ɵɵviewQuery(_c1, 5, ElementRef); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first); } }, inputs: { activatedKey: "activatedKey", isCollapse: "isCollapse", triggerType: "triggerType", configs: "configs", groups: "groups", disableAniIcon: "disableAniIcon" }, decls: 9, vars: 11, consts: [["container", ""], ["content", ""], [1, "acl-nav-menu__container", "tw-h-full", 3, "scrollBorder", "aclScrollBorderObserver"], [4, "ngIf"], [1, "acl-nav-menu", "tw-flex", "tw-flex-col", "tw-select-none", "tw-relative", 3, "ngClass"], [3, "items", "groups"], ["class", "acl-nav-menu__collapse-button tw-flex tw-justify-end", 3, "ngClass", "click", 4, "ngIf"], [1, "acl-nav-menu__collapse-button", "tw-flex", "tw-justify-end", 3, "click", "ngClass"], [3, "icon"]], template: function NavMenuComponent_Template(rf, ctx) { if (rf & 1) { const _r1 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 2, 0); i0.ɵɵlistener("scrollBorder", function NavMenuComponent_Template_div_scrollBorder_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.scroll($event)); }); i0.ɵɵtemplate(2, NavMenuComponent_acl_nav_skeleton_2_Template, 1, 0, "acl-nav-skeleton", 3); i0.ɵɵelementStart(3, "div", 4, 1); i0.ɵɵpipe(5, "async"); i0.ɵɵelement(6, "acl-nav-item-ul", 5); i0.ɵɵpipe(7, "async"); i0.ɵɵelementEnd()(); i0.ɵɵtemplate(8, NavMenuComponent_div_8_Template, 3, 6, "div", 6); } if (rf & 2) { i0.ɵɵproperty("aclScrollBorderObserver", i0.ɵɵpureFunction0(10, _c2)); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !(ctx.configs == null ? null : ctx.configs.length) && !(ctx.groups == null ? null : ctx.groups.length)); i0.ɵɵadvance(); i0.ɵɵproperty("ngClass", i0.ɵɵpipeBind1(5, 6, ctx.isCollapse$) ? "collapse" : "expand"); i0.ɵɵadvance(3); i0.ɵɵproperty("items", i0.ɵɵpipeBind1(7, 8, ctx.filteredConfigs$))("groups", ctx.groups); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !(!(ctx.configs == null ? null : ctx.configs.length) && !(ctx.groups == null ? null : ctx.groups.length))); } }, styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}acl-nav-item-ul:not([hidden]){display:block}acl-nav-item-li{position:relative}.acl-nav-menu{width:220px;padding-bottom:72px}.acl-nav-menu-content>acl-nav-item-ul>.acl-nav-item-ul>acl-nav-item-li+acl-nav-item-li{margin-top:4px}.acl-nav-menu .acl-nav-item{word-break:keep-all}.acl-nav-menu.collapse{width:40px;overflow:hidden}.acl-nav-menu.collapse .acl-nav-item__icon{transform:translate(-8px)}.acl-nav-menu.collapse .acl-nav-item-group__title,.acl-nav-menu.collapse .acl-nav-item-li__sub-items{display:none}.acl-nav-menu.collapse .acl-nav-item-li__content{max-height:40px}.acl-nav-menu.collapse .acl-nav-item-li__content .acl-nav-item__content,.acl-nav-menu.collapse .acl-nav-item-li__content .acl-nav-item-li__expansion-indicator{opacity:0}.acl-nav-menu.collapse .acl-nav-item-li__content.isActive{background-color:var(--acl-nav-active-background-color)}.sidenav-ani .acl-nav-menu,.sidenav-ani .acl-nav-menu .acl-nav-item,.sidenav-ani .acl-nav-menu__icon,.sidenav-ani .acl-nav-menu-li__sub-items,.sidenav-ani .acl-nav-menu .acl-nav-item__icon,.sidenav-ani .acl-nav-menu .acl-nav-item-li__sub-items{transition:width,opacity,transform;transition-duration:.3s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.sidenav-ani .acl-nav-menu-li__content .acl-nav-item__content,.sidenav-ani .acl-nav-menu-li__content .acl-nav-item-li__expansion-indicator,.sidenav-ani .acl-nav-menu .acl-nav-item-li__content .acl-nav-item__content,.sidenav-ani .acl-nav-menu .acl-nav-item-li__content .acl-nav-item-li__expansion-indicator{transition:opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.acl-nav-menu__collapse-button{position:fixed;bottom:0;left:20px;line-height:52px;background-color:var(--acl-nav-background-color);cursor:pointer;color:rgb(var(--aui-color-n-3));width:220px;padding:0 20px}.sidenav-collapse .acl-nav-menu__collapse-button{width:40px;padding:0 12px}.sidenav-ani .acl-nav-menu__collapse-button{transition:width padding;transition-duration:.3s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.acl-nav-menu__collapse-button .aui-icon{font-size:var(--aui-icon-size-m)}.acl-nav-menu__collapse-button:hover{color:var(--acl-nav-active-text-color)}.acl-nav-menu__collapse-button-shadow{clip-path:inset(-15px 0 0 0)}:root .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-origin-shadow),.15)}html[aui-theme-mode=light] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-origin-shadow),.15)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-n-8),.75)}}html[aui-theme-mode=dark] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-n-8),.75)}.nav-menu-overlay-pane{color:rgb(var(--aui-color-main-text));background-color:var(--acl-nav-popper-background-color);padding:0 0 6px;overflow-y:auto;border-radius:4px}:root .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.nav-menu-overlay-pane::-webkit-scrollbar{width:8px;height:4px}.nav-menu-overlay-pane::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.nav-menu-overlay-pane::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.nav-menu-overlay-pane::-webkit-scrollbar-corner{background-color:transparent}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0.hasSubItem{width:220px;height:100%}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0.hasSubItem .acl-nav-item-li__content[data-set-depth=\"0\"]{background-color:var(--acl-nav-popper-background-color)}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0:not(.hasSubItem) .acl-nav-item-li__content[data-set-depth=\"0\"]{padding:10px;margin:6px 6px 0}.nav-menu-overlay-pane .acl-nav-item__content{max-width:120px;width:initial}.nav-menu-overlay-pane .acl-nav-item-li__content{padding-left:var(--aui-spacing-l);padding-right:var(--aui-spacing-l)}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"0\"]{padding:16px 0 10px;margin-left:var(--aui-spacing-xl);position:sticky;top:0;z-index:9}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"0\"].no-link{pointer-events:none;user-select:none}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"1\"]{padding-left:28px;margin:0 var(--aui-spacing-xl)}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"2\"]{padding-left:44px;margin:0 var(--aui-spacing-xl)}\n"], encapsulation: 2, changeDetection: 0 }); } } __decorate([ ObservableInput(), __metadata("design:type", Observable) ], NavMenuComponent.prototype, "activatedKey$", void 0); __decorate([ ObservableInput(), __metadata("design:type", Observable) ], NavMenuComponent.prototype, "isCollapse$", void 0); __decorate([ ObservableInput(), __metadata("design:type", Observable) ], NavMenuComponent.prototype, "configs$", void 0); __decorate([ ObservableInput(), __metadata("design:type", Observable) ], NavMenuComponent.prototype, "groups$", void 0); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NavMenuComponent, [{ type: Component, args: [{ selector: 'acl-nav-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\n class=\"acl-nav-menu__container tw-h-full\"\n #container\n [aclScrollBorderObserver]=\"{\n bottomDistance: 20,\n }\"\n (scrollBorder)=\"scroll($event)\"\n>\n <acl-nav-skeleton\n *ngIf=\"!configs?.length && !groups?.length\"\n ></acl-nav-skeleton>\n\n <div\n #content\n class=\"acl-nav-menu tw-flex tw-flex-col tw-select-none tw-relative\"\n [ngClass]=\"(isCollapse$ | async) ? 'collapse' : 'expand'\"\n >\n <acl-nav-item-ul\n [items]=\"filteredConfigs$ | async\"\n [groups]=\"groups\"\n ></acl-nav-item-ul>\n </div>\n</div>\n\n<div\n *ngIf=\"!(!configs?.length && !groups?.length)\"\n class=\"acl-nav-menu__collapse-button tw-flex tw-justify-end\"\n [ngClass]=\"{\n 'acl-nav-menu__collapse-button-shadow': showShadow$ | async,\n }\"\n (click)=\"toggleCollapse()\"\n>\n <aui-icon\n [icon]=\"isCollapse ? 'prod:list_expand_right' : 'prod:list_fold_left'\"\n ></aui-icon>\n</div>\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}acl-nav-item-ul:not([hidden]){display:block}acl-nav-item-li{position:relative}.acl-nav-menu{width:220px;padding-bottom:72px}.acl-nav-menu-content>acl-nav-item-ul>.acl-nav-item-ul>acl-nav-item-li+acl-nav-item-li{margin-top:4px}.acl-nav-menu .acl-nav-item{word-break:keep-all}.acl-nav-menu.collapse{width:40px;overflow:hidden}.acl-nav-menu.collapse .acl-nav-item__icon{transform:translate(-8px)}.acl-nav-menu.collapse .acl-nav-item-group__title,.acl-nav-menu.collapse .acl-nav-item-li__sub-items{display:none}.acl-nav-menu.collapse .acl-nav-item-li__content{max-height:40px}.acl-nav-menu.collapse .acl-nav-item-li__content .acl-nav-item__content,.acl-nav-menu.collapse .acl-nav-item-li__content .acl-nav-item-li__expansion-indicator{opacity:0}.acl-nav-menu.collapse .acl-nav-item-li__content.isActive{background-color:var(--acl-nav-active-background-color)}.sidenav-ani .acl-nav-menu,.sidenav-ani .acl-nav-menu .acl-nav-item,.sidenav-ani .acl-nav-menu__icon,.sidenav-ani .acl-nav-menu-li__sub-items,.sidenav-ani .acl-nav-menu .acl-nav-item__icon,.sidenav-ani .acl-nav-menu .acl-nav-item-li__sub-items{transition:width,opacity,transform;transition-duration:.3s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.sidenav-ani .acl-nav-menu-li__content .acl-nav-item__content,.sidenav-ani .acl-nav-menu-li__content .acl-nav-item-li__expansion-indicator,.sidenav-ani .acl-nav-menu .acl-nav-item-li__content .acl-nav-item__content,.sidenav-ani .acl-nav-menu .acl-nav-item-li__content .acl-nav-item-li__expansion-indicator{transition:opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.acl-nav-menu__collapse-button{position:fixed;bottom:0;left:20px;line-height:52px;background-color:var(--acl-nav-background-color);cursor:pointer;color:rgb(var(--aui-color-n-3));width:220px;padding:0 20px}.sidenav-collapse .acl-nav-menu__collapse-button{width:40px;padding:0 12px}.sidenav-ani .acl-nav-menu__collapse-button{transition:width padding;transition-duration:.3s;transition-timing-function:cubic-bezier(.38,0,.24,1)}.acl-nav-menu__collapse-button .aui-icon{font-size:var(--aui-icon-size-m)}.acl-nav-menu__collapse-button:hover{color:var(--acl-nav-active-text-color)}.acl-nav-menu__collapse-button-shadow{clip-path:inset(-15px 0 0 0)}:root .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-origin-shadow),.15)}html[aui-theme-mode=light] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-origin-shadow),.15)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-n-8),.75)}}html[aui-theme-mode=dark] .acl-nav-menu__collapse-button-shadow{box-shadow:0 -9px 8px -8px rgba(var(--aui-color-n-8),.75)}.nav-menu-overlay-pane{color:rgb(var(--aui-color-main-text));background-color:var(--acl-nav-popper-background-color);padding:0 0 6px;overflow-y:auto;border-radius:4px}:root .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .nav-menu-overlay-pane{box-shadow:0 2px 8px rgba(var(--aui-color-origin-shadow),.75)}.nav-menu-overlay-pane::-webkit-scrollbar{width:8px;height:4px}.nav-menu-overlay-pane::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.nav-menu-overlay-pane::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.nav-menu-overlay-pane::-webkit-scrollbar-corner{background-color:transparent}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0.hasSubItem{width:220px;height:100%}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0.hasSubItem .acl-nav-item-li__content[data-set-depth=\"0\"]{background-color:var(--acl-nav-popper-background-color)}.nav-menu-overlay-pane>.acl-nav-item-li.depth-0:not(.hasSubItem) .acl-nav-item-li__content[data-set-depth=\"0\"]{padding:10px;margin:6px 6px 0}.nav-menu-overlay-pane .acl-nav-item__content{max-width:120px;width:initial}.nav-menu-overlay-pane .acl-nav-item-li__content{padding-left:var(--aui-spacing-l);padding-right:var(--aui-spacing-l)}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"0\"]{padding:16px 0 10px;margin-left:var(--aui-spacing-xl);position:sticky;top:0;z-index:9}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"0\"].no-link{pointer-events:none;user-select:none}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"1\"]{padding-left:28px;margin:0 var(--aui-spacing-xl)}.nav-menu-overlay-pane .acl-nav-item-li__content[data-set-depth=\"2\"]{padding-left:44px;margin:0 var(--aui-spacing-xl)}\n"] }] }], () => [{ type: i1.PageComponent }, { type: i2.IframeConfigService }], { activatedKey: [{ type: Input }], activatedKey$: [], isCollapse: [{ type: Input }], isCollapse$: [], triggerType: [{ type: Input }], configs: [{ type: Input }], configs$: [], groups: [{ type: Input }], groups$: [], disableAniIcon: [{ type: Input }], container: [{ type: ViewChild, args: ['container'] }], content: [{ type: ViewChild, args: ['content', { read: ElementRef }] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NavMenuComponent, { className: "NavMenuComponent" }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9uYXYtbWVudS9uYXYtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL25hdi1tZW51L25hdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFJakIsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7Ozs7SUNuQnpDLG1DQUVvQjs7OztJQWN0Qiw4QkFPQzs7SUFEQyx5S0FBUyx1QkFBZ0IsS0FBQztJQUUxQiw4QkFFWTtJQUNkLGlCQUFNOzs7SUFSSiw4RkFFRTtJQUlBLGVB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QUFVOzs7Ozs7O1lDOUUxQyxpQ0FPQztZQURDLG9KQUFnQixrQkFBYyxLQUFDO1lBRS9CLDJGQUVDO1lBRUQsaUNBSUM7O1lBQ0MscUNBR21COztZQUV2QixBQURFLGlCQUFNLEVBQ0Y7WUFFTixpRUFPQzs7WUE1QkMscUVBRUU7WUFJQyxlQUF5QztZQUF6Qyw2SEFBeUM7WUFNMUMsY0FBeUQ7WUFBekQsdUZBQXlEO1lBR3ZELGVBQWtDO1lBQ2xDLEFBREEsa0VBQWtDLHNCQUNqQjtZQU1wQixlQUE0QztZQUE1QyxnSUFBNEM7OztBRHdCN0M7SUFEQyxlQUFlLEVBQUU7OEJBQ0YsVUFBVTt1REFBUztBQU1uQztJQURDLGVBQWUsRUFBRTs4QkFDSixVQUFVO3FEQUFVO0FBU2xDO0lBREMsZUFBZSxFQUFFOzhCQUNQLFVBQVU7a0RBQWtCO0FBTXZDO0lBREMsZUFBZSxFQUFFOzhCQUNSLFVBQVU7aURBQW1CO2lGQTdCNUIsZ0JBQWdCO2NBUjVCLFNBQVM7MkJBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLO2dGQU8xQixZQUFZO2tCQURYLEtBQUs7WUFJTixhQUFhLE1BR2IsVUFBVTtrQkFEVCxLQUFLO1lBSU4sV0FBVyxNQUdYLFdBQVc7a0JBRFYsS0FBSztZQUlOLE9BQU87a0JBRE4sS0FBSztZQUlOLFFBQVEsTUFHUixNQUFNO2tCQURMLEtBQUs7WUFJTixPQUFPLE1BR1AsY0FBYztrQkFEYixLQUFLO1lBSU4sU0FBUztrQkFEUixTQUFTO21CQUFDLFdBQVc7WUFJdEIsT0FBTztrQkFETixTQUFTO21CQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O2tGQXJDL0IsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcFRyaWdnZXIgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJZnJhbWVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vL2lmcmFtZS1jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUlucHV0LCBwdWJsaXNoUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENPTExBUFNFX01FTlVfS0VZIH0gZnJvbSAnLi4vLi4vLi4vaWZyYW1lLWNvbmZpZy9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgZmlsdGVyRW1wdHlOb2RlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4vbmF2LW1lbnUudHlwZXMnO1xuXG5jb25zdCBTSURFTkFWX0FOSSA9ICdzaWRlbmF2LWFuaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYXYtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEtleSQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkUm9vdEtleSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2YXRlZEtleTogc3RyaW5nO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBhY3RpdmF0ZWRLZXkkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCgpXG4gIGlzQ29sbGFwc2UgPSB0aGlzLmlmcmFtZUNvbmZpZ1NlcnZpY2UuaXNDb2xsYXBzZU1lbnU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGlzQ29sbGFwc2UkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKVxuICB0cmlnZ2VyVHlwZTogVG9vbHRpcFRyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjtcblxuICBASW5wdXQoKVxuICBjb25maWdzOiBOYXZJdGVtQ29uZmlnW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbmZpZ3MkITogT2JzZXJ2YWJsZTxOYXZJdGVtQ29uZmlnW10+O1xuXG4gIEBJbnB1dCgpXG4gIGdyb3VwczogTmF2R3JvdXBDb25maWdbXTtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgZ3JvdXBzJCE6IE9ic2VydmFibGU8TmF2R3JvdXBDb25maWdbXT47XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZUFuaUljb24gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBjb250ZW50OiBFbGVtZW50UmVmO1xuXG4gIGZpbHRlcmVkQ29uZmlncyQgPSB0aGlzLmNvbmZpZ3MkLnBpcGUobWFwKGZpbHRlckVtcHR5Tm9kZSksIHB1Ymxpc2hSZWYoKSk7XG4gIHNob3dTaGFkb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGlzSW50ZXJzZWN0aW5nOiBib29sZWFuO1xuICBpdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkQ29uZmlncyQsIHRoaXMuZ3JvdXBzJF0pLnBpcGUoXG4gICAgLy8g5aSE55CG5oiQTmF2SXRlbUNvbmZpZ+aVsOe7hFxuICAgIG1hcChcbiAgICAgIChbaXRlbXMsIGdyb3Vwc10pID0+XG4gICAgICAgIGl0ZW1zIHx8XG4gICAgICAgIChncm91cHNcbiAgICAgICAgICA/IGdyb3Vwcy5yZWR1Y2U8TmF2SXRlbUNvbmZpZ1tdPihcbiAgICAgICAgICAgICAgKHByZXYsIGN1cikgPT4gWy4uLnByZXYsIC4uLmN1ci5pdGVtc10sXG4gICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogW10pLFxuICAgICksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIHBhdGhzJCA9IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgbWFwKGl0ZW1zID0+IHRoaXMuZ2V0UGF0aHMoaXRlbXMpKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWN0aXZlS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnBhdGhzJCwgdGhpcy5hY3RpdmF0ZWRLZXkkXSkucGlwZShcbiAgICBtYXAoKFtwYXRocywga2V5XSkgPT4gdGhpcy5maW5kUGF0aEJ5TGFzdEtleShwYXRocywga2V5KSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIGV4cGFuZGVkS2V5cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnBhdGhzJCxcbiAgICBtZXJnZSh0aGlzLmFjdGl2YXRlZEtleSQsIHRoaXMuZXhwYW5kZWRLZXkkJCksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcGF0aHMsIGtleV0pID0+IHRoaXMuZmluZFBhdGhCeUxhc3RLZXkocGF0aHMsIGtleSkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBmb2N1c2VkUm9vdEtleSQgPSB0aGlzLmZvY3VzZWRSb290S2V5JCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VDcHQ6IFBhZ2VDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZnJhbWVDb25maWdTZXJ2aWNlOiBJZnJhbWVDb25maWdTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBhZ2VDcHQucmVtb3ZlQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IG9iID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNJbnRlcnNlY3RpbmcgfSA9IGVudHJpZXNbMF07XG4gICAgICAgIHRoaXMuaXNJbnRlcnNlY3RpbmcgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgdGhpcy5zaG93U2hhZG93JC5uZXh0KCFpc0ludGVyc2VjdGluZyk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgIC8vIOWboOS4uiAuYWNsLW5hdi1tZW51IOW6lemDqOaciemineWklueahCAyMHB4IOmXtOi3nVxuICAgICAgICByb290TWFyZ2luOiAnMHB4IDBweCAyMHB4IDBweCcsXG4gICAgICB9LFxuICAgICk7XG4gICAgb2Iub2JzZXJ2ZSh0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBzY3JvbGwodHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICB0aGlzLnNob3dTaGFkb3ckLm5leHQodHlwZSAhPT0gJ2JvdHRvbScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIOmAmui/h2tleeaJvuWIsOS7luWPiuWFtueItueahHBhdGjot6/lvoRcbiAgcHJpdmF0ZSBmaW5kUGF0aEJ5TGFzdEtleShwYXRoczogc3RyaW5nW11bXSwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aHMuZmluZChwYXRoID0+IFsuLi5wYXRoXS5wb3AoKSA9PT0ga2V5KTtcbiAgfVxuXG4gIC8vIOS7pU5hdkl0ZW1Db25maWfnmoRrZXnnu4TmiJDoh6rkuIrogIzkuIvnmoRwYXRo6Lev5b6E77yM57G75Ly8WydhJywgJ2EvYiddXG4gIHByaXZhdGUgZ2V0UGF0aHMoaXRlbXM6IE5hdkl0ZW1Db25maWdbXSwgcGFyZW50Pzogc3RyaW5nW10pOiBzdHJpbmdbXVtdIHtcbiAgICBpZiAoIWl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcHJlID0gcGFyZW50ID8gWy4uLnBhcmVudF0gOiBbXTtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cikgPT4gW1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICAuLi50aGlzLmdldFBhdGhzKGN1ci5jaGlsZHJlbiwgWy4uLnByZSwgY3VyLmtleV0pLFxuICAgICAgXSxcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+IFsuLi5wcmUsIGl0ZW0ua2V5XSksXG4gICAgKTtcbiAgfVxuXG4gIGV4cGFuZGVkS2V5Q2hhbmdlZChrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZXhwYW5kZWRLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBmb2N1c2VkUm9vdEtleUNoYW5nZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZm9jdXNlZFJvb3RLZXkkJC5uZXh0KGtleSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGFkZFNpZGVuYXZBbmkgPSBvbmNlKCgpID0+IHtcbiAgICB0aGlzLnBhZ2VDcHQuYWRkQ2xhc3MoU0lERU5BVl9BTkkpO1xuICB9KTtcblxuICB0b2dnbGVDb2xsYXBzZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2UgPSAhdGhpcy5pc0NvbGxhcHNlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENPTExBUFNFX01FTlVfS0VZLCBTdHJpbmcodGhpcy5pc0NvbGxhcHNlKSk7XG4gICAgdGhpcy5hZGRTaWRlbmF2QW5pKCk7IC8vIOW9k+eUqOaIt+esrOS4gOasoeS4u+WKqOWIh+aNoueKtuaAgeaXtua3u+WKoOWKqOaViOexu++8jOiAjOS4jeaYr+S4gOW8gOWni+Wwseacie+8jOmBv+WFjeWIneWni+WMluaXtuWFtuS7luagt+W8j+WIh+aNouW4puadpeeahOi/h+W6puWKqOaViFxuICAgIHRoaXMudXBkYXRlQ29sbGFwc2VDbGFzcygpO1xuICB9XG5cbiAgdXBkYXRlQ29sbGFwc2VDbGFzcygpIHtcbiAgICB0aGlzLnBhZ2VDcHRbdGhpcy5pc0NvbGxhcHNlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKFxuICAgICAgJ3NpZGVuYXYtY29sbGFwc2UnLFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbnRhaW5lciB0dy1oLWZ1bGxcIlxuICAjY29udGFpbmVyXG4gIFthY2xTY3JvbGxCb3JkZXJPYnNlcnZlcl09XCJ7XG4gICAgYm90dG9tRGlzdGFuY2U6IDIwLFxuICB9XCJcbiAgKHNjcm9sbEJvcmRlcik9XCJzY3JvbGwoJGV2ZW50KVwiXG4+XG4gIDxhY2wtbmF2LXNrZWxldG9uXG4gICAgKm5nSWY9XCIhY29uZmlncz8ubGVuZ3RoICYmICFncm91cHM/Lmxlbmd0aFwiXG4gID48L2FjbC1uYXYtc2tlbGV0b24+XG5cbiAgPGRpdlxuICAgICNjb250ZW50XG4gICAgY2xhc3M9XCJhY2wtbmF2LW1lbnUgdHctZmxleCB0dy1mbGV4LWNvbCB0dy1zZWxlY3Qtbm9uZSB0dy1yZWxhdGl2ZVwiXG4gICAgW25nQ2xhc3NdPVwiKGlzQ29sbGFwc2UkIHwgYXN5bmMpID8gJ2NvbGxhcHNlJyA6ICdleHBhbmQnXCJcbiAgPlxuICAgIDxhY2wtbmF2LWl0ZW0tdWxcbiAgICAgIFtpdGVtc109XCJmaWx0ZXJlZENvbmZpZ3MkIHwgYXN5bmNcIlxuICAgICAgW2dyb3Vwc109XCJncm91cHNcIlxuICAgID48L2FjbC1uYXYtaXRlbS11bD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqbmdJZj1cIiEoIWNvbmZpZ3M/Lmxlbmd0aCAmJiAhZ3JvdXBzPy5sZW5ndGgpXCJcbiAgY2xhc3M9XCJhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbiB0dy1mbGV4IHR3LWp1c3RpZnktZW5kXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY2wtbmF2LW1lbnVfX2NvbGxhcHNlLWJ1dHRvbi1zaGFkb3cnOiBzaG93U2hhZG93JCB8IGFzeW5jLFxuICB9XCJcbiAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuPlxuICA8YXVpLWljb25cbiAgICBbaWNvbl09XCJpc0NvbGxhcHNlID8gJ3Byb2Q6bGlzdF9leHBhbmRfcmlnaHQnIDogJ3Byb2Q6bGlzdF9mb2xkX2xlZnQnXCJcbiAgPjwvYXVpLWljb24+XG48L2Rpdj5cbiJdfQ==