UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

192 lines 39.1 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 { publishRef, ObservableInput } from '../../../core/public-api'; import { COLLAPSE_MENU_KEY, IframeConfigService, } from '../../../iframe-config/public-api'; import { PageComponent } from '../../../page-scaffold/page/page.component'; import { filterEmptyNode } from '../utils'; import * as i0 from "@angular/core"; import * as i1 from "../../../page-scaffold/page/page.component"; import * as i2 from "../../../iframe-config/public-api"; import * as i3 from "@angular/common"; import * as i4 from "@alauda/ui"; import * as i5 from "../../../core/directives/scroll-border-observer.directive"; import * as i6 from "../../../effect-directive/e2e-attribute-binding.directive"; import * as i7 from "../../../skeleton/nav-skeleton/component"; import * as i8 from "./nav-item-ul/nav-item-ul.component"; 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))); } }, dependencies: [i3.NgClass, i3.NgIf, i4.IconComponent, i5.ScrollBorderObserverDirective, i6.E2eAttributeBindingDirective, i7.NavSkeletonComponent, i8.NavItemUlComponent, i3.AsyncPipe], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9uYXYtbWVudS9uYXYtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL25hdi1tZW51L25hdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFJakIsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ3JCekMsbUNBRW9COzs7O0lBY3RCLDhCQU9DOztJQURDLHlLQUFTLHVCQUFnQixLQUFDO0lBRTFCLDhCQUVZO0lBQ2QsaUJBQU07OztJQVJKLDhGQUVFO0lBSUEsZUFBc0U7SUFBdEUsMkZBQXNFOztBREExRSxN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REMsb0pBQWdCLGtCQUFjLEtBQUM7WUFFL0IsMkZBRUM7WUFFRCxpQ0FJQzs7WUFDQyxxQ0FHbUI7O1lBRXZCLEFBREUsaUJBQU0sRUFDRjtZQUVOLGlFQU9DOztZQTVCQyxxRUFFRTtZQUlDLGVBQXlDO1lBQXpDLDZIQUF5QztZQU0xQyxjQUF5RDtZQUF6RCx1RkFBeUQ7WUFHdkQsZUFBa0M7WUFDbEMsQUFEQSxrRUFBa0Msc0JBQ2pCO1lBTXBCLGVBQTRDO1lBQTVDLGdJQUE0Qzs7O0FEMEI3QztJQURDLGVBQWUsRUFBRTs4QkFDRixVQUFVO3VEQUFTO0FBTW5DO0lBREMsZUFBZSxFQUFFOzhCQUNKLFVBQVU7cURBQVU7QUFTbEM7SUFEQyxlQUFlLEVBQUU7OEJBQ1AsVUFBVTtrREFBa0I7QUFNdkM7SUFEQyxlQUFlLEVBQUU7OEJBQ1IsVUFBVTtpREFBbUI7aUZBN0I1QixnQkFBZ0I7Y0FSNUIsU0FBUzsyQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUs7Z0ZBTzFCLFlBQVk7a0JBRFgsS0FBSztZQUlOLGFBQWEsTUFHYixVQUFVO2tCQURULEtBQUs7WUFJTixXQUFXLE1BR1gsV0FBVztrQkFEVixLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sUUFBUSxNQUdSLE1BQU07a0JBREwsS0FBSztZQUlOLE9BQU8sTUFHUCxjQUFjO2tCQURiLEtBQUs7WUFJTixTQUFTO2tCQURSLFNBQVM7bUJBQUMsV0FBVztZQUl0QixPQUFPO2tCQUROLFNBQVM7bUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7a0ZBckMvQixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9uY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHB1Ymxpc2hSZWYsIE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBDT0xMQVBTRV9NRU5VX0tFWSxcbiAgSWZyYW1lQ29uZmlnU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vaWZyYW1lLWNvbmZpZy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wYWdlLXNjYWZmb2xkL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlsdGVyRW1wdHlOb2RlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJy4vbmF2LW1lbnUudHlwZXMnO1xuXG5jb25zdCBTSURFTkFWX0FOSSA9ICdzaWRlbmF2LWFuaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1uYXYtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEtleSQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkUm9vdEtleSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+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==