@progressio_resources/gravity-design-system 3.7.8 → 3.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,11 +2,13 @@ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "angular-svg-icon";
4
4
  import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/router";
6
- import * as i4 from "../../components/gravity-badge/gravity-badge.component";
7
- import * as i5 from "../../components/gravity-button/gravity-button.component";
8
- import * as i6 from "../../components/gravity-icon/gravity-icon.component";
9
- import * as i7 from "../../components/gravity-card-button/gravity-card-button.component";
5
+ import * as i3 from "../../vendor/gravity-tooltip/gravity-tooltip.directive";
6
+ import * as i4 from "@angular/router";
7
+ import * as i5 from "../../components/gravity-badge/gravity-badge.component";
8
+ import * as i6 from "../../components/gravity-button/gravity-button.component";
9
+ import * as i7 from "../../components/gravity-icon/gravity-icon.component";
10
+ import * as i8 from "../../components/gravity-card-button/gravity-card-button.component";
11
+ import * as i9 from "../../components/gravity-tooltip-container/gravity-tooltip-container.component";
10
12
  export class GravityMenuComponent {
11
13
  constructor(elRef, renderer) {
12
14
  this.elRef = elRef;
@@ -187,11 +189,11 @@ export class GravityMenuComponent {
187
189
  el.scrollTo({ top: 62 * index, behavior: 'auto' });
188
190
  }
189
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityMenuComponent, selector: "gravity-menu", inputs: { items: "items", userInfo: "userInfo", logoUrl: "logoUrl", isOpen: "isOpen", collapsable: "collapsable", showCloseButton: "showCloseButton", cardButtons: "cardButtons", maxCardButtonsPerRow: "maxCardButtonsPerRow", currentLink: "currentLink", secondaryActions: "secondaryActions", size: "size", mainFooterAction: "mainFooterAction" }, outputs: { close: "close", selected: "selected", collapsed: "collapsed" }, viewQueries: [{ propertyName: "menuBody", first: true, predicate: ["menuBody"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"/>\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{z-index:1;min-width:220px;position:absolute;width:max-content;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;z-index:101;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"], dependencies: [{ kind: "component", type: i1.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.GravityBadgeComponent, selector: "gravity-badge", inputs: ["size", "text", "number", "cypressTag", "type"] }, { kind: "component", type: i5.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i6.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i7.GravityCardButtonComponent, selector: "gravity-card-button", inputs: ["cypressTag", "label", "iconName", "fullWidth", "type", "state", "orientation"], outputs: ["clicked"] }] }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityMenuComponent, selector: "gravity-menu", inputs: { items: "items", userInfo: "userInfo", logoUrl: "logoUrl", isOpen: "isOpen", collapsable: "collapsable", showCloseButton: "showCloseButton", cardButtons: "cardButtons", maxCardButtonsPerRow: "maxCardButtonsPerRow", currentLink: "currentLink", secondaryActions: "secondaryActions", size: "size", mainFooterAction: "mainFooterAction" }, outputs: { close: "close", selected: "selected", collapsed: "collapsed" }, viewQueries: [{ propertyName: "menuBody", first: true, predicate: ["menuBody"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" class=\"icon\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"\n [tooltip]=\"collapsedMode ? tooltipUserInfoTemplate : null\" [contentType]=\"'template'\" [placement]=\"'right'\"/>\n\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n\n <ng-template #tooltipUserInfoTemplate>\n <gravity-tooltip-container [tooltipSimple]=\"{text: userInfo.info}\"/>\n </ng-template>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{z-index:1;min-width:220px;position:absolute;width:max-content;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list .user-info .icon{cursor:pointer}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;z-index:101;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"], dependencies: [{ kind: "component", type: i1.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.GravityTooltipDirective, selector: "[tooltip]", inputs: ["options", "tooltip", "placement", "autoPlacement", "content-type", "contentType", "hide-delay-mobile", "hideDelayTouchscreen", "z-index", "zIndex", "animation-duration", "animationDuration", "trigger", "tooltip-class", "tooltipClass", "display", "display-mobile", "displayTouchscreen", "shadow", "theme", "offset", "width", "persistent", "max-width", "maxWidth", "id", "show-delay", "showDelay", "hide-delay", "hideDelay", "hideDelayAfterClick", "pointerEvents", "position"], outputs: ["events"], exportAs: ["tooltip"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.GravityBadgeComponent, selector: "gravity-badge", inputs: ["size", "text", "number", "cypressTag", "type"] }, { kind: "component", type: i6.GravityButtonComponent, selector: "gravity-button", inputs: ["cypressTag", "disabled", "iconName", "isLoading", "showContent", "size", "iconPosition", "customState", "type"] }, { kind: "component", type: i7.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }, { kind: "component", type: i8.GravityCardButtonComponent, selector: "gravity-card-button", inputs: ["cypressTag", "label", "iconName", "fullWidth", "type", "state", "orientation"], outputs: ["clicked"] }, { kind: "component", type: i9.GravityTooltipContainerComponent, selector: "gravity-tooltip-container", inputs: ["cypressTag", "tooltipBanner", "tooltipSimple"], outputs: ["closeBanner", "actionButton"] }] }); }
191
193
  }
192
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityMenuComponent, decorators: [{
193
195
  type: Component,
194
- args: [{ selector: 'gravity-menu', template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"/>\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{z-index:1;min-width:220px;position:absolute;width:max-content;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;z-index:101;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"] }]
196
+ args: [{ selector: 'gravity-menu', template: "<div class=\"gravity-menu {{size}}\" [class.open]=\"isOpen\" [class.closing]=\"closing\"\n [class.collapsed]=\"collapsedMode && (size === 'xl' || size === 'lg')\">\n\n <div class=\"menu-header\">\n <svg-icon *ngIf=\"logoUrl?.main_logo_url\"\n [src]=\"(collapsedMode && logoUrl.collapsed_logo_url) ? logoUrl.collapsed_logo_url : logoUrl.main_logo_url\"/>\n\n <gravity-icon *ngIf=\"(size === 'md' || size === 'sm') && showCloseButton\"\n [iconSize]=\"'lg-24'\" [iconName]=\"'unsuccess'\" (click)=\"closeMenu()\"/>\n\n <div *ngIf=\"collapsable && (size === 'xl' || size === 'lg')\" class=\"collapse-button\" (click)=\"collapseMenu()\">\n <gravity-icon [style.--icon-color]=\"'var(--bg-button-active-primary)'\" [iconSize]=\"'sm-12'\"\n [iconName]=\"collapsedMode ? 'arrow-right' : 'arrow-left'\"/>\n </div>\n </div>\n\n <div class=\"menu-content\">\n <section #menuBody class=\"menu-body\" [class.sub-menu]=\"visibleSubMenu\">\n <div class=\"menu-section\">\n <div class=\"levels\" *ngFor=\"let header of items; let i = index\">\n <section class=\"first-level\" [class.selected]=\"isHeaderSelected(header)\"\n [routerLink]=\"header.link || undefined\" (click)=\"toggleMenuHeader(header, i)\"\n [class.is-open]=\"!header.collapsed\" [class.empty]=\"header.headerOptions?.length < 1\"\n [style.--expanded-margin]=\"header.headerOptions?.length > 0 ? (38 + (34 * header.headerOptions?.length)) + 'px' : '0'\">\n\n <p class=\"hr-label sm-regular\">\n <gravity-icon [style.--icon-color]=\"'var(--option-icon-color)'\" *ngIf=\"header.icon !== ''\" [iconName]=\"header.icon\" [iconSize]=\"'md-16'\"/>\n <gravity-badge class=\"badge\" *ngIf=\"hasOptionBadge(header) && (size === 'xl' || size === 'lg')\"\n [class.collapsed]=\"collapsedMode\" [size]=\"'sm'\" [type]=\"'neutro'\"></gravity-badge>\n {{ header.text }}\n </p>\n\n <div *ngIf=\"!collapsedMode\">\n <gravity-icon *ngIf=\"header.headerOptions?.length > 0\" [iconSize]=\"'sm-12'\" [iconName]=\"header.collapsed ? 'arrow-down' : 'arrow-up'\"/>\n </div>\n </section>\n\n <section *ngIf=\"!header.collapsed && header.headerOptions?.length > 0\" class=\"second-level\"\n [@fadeSlide] [style.--submenu-offset]=\"((156 - scrollPosition) + (78 * i)) + 'px'\"\n [ngClass]=\"collapsedMode ? 'elevation-xs' : ''\">\n\n <div class=\"options-list\" [class.collapsed]=\"collapsedMode\">\n <ng-container *ngFor=\"let option of header.headerOptions\">\n <div class=\"option\" [attr.data-cy]=\"option.cypress_tag\" [class.selected]=\"option === selectedOption\">\n <div class=\"line\"\n [class.selected]=\"(size === 'xl' || size == 'lg') && option === selectedOption\"></div>\n <div class=\"option-text\"\n [ngClass]=\"(size === 'sm' || size === 'md') ? 'hr-label md-regular' : 'hr-label sm-regular'\"\n [class.disabled]=\"option.disabled\" [class.selected]=\"option === selectedOption\"\n [routerLink]=\"option.link || undefined\" (click)=\"selectOption(option, header)\">\n {{ option.text }}\n <gravity-badge *ngIf=\"option.badge_text && (size === 'xl' || size === 'lg')\"\n [text]=\"option.badge_text\" [type]=\"'neutro'\" [size]=\"'sm'\"></gravity-badge>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n </div>\n </div>\n </section>\n\n <section *ngIf=\"(secondaryActions || userInfo) && (size === 'xl' || size === 'lg')\"\n class=\"menu-footer elevation-xs\">\n <section class=\"footer-content\">\n <div *ngIf=\"secondaryActions\" class=\"secondary-actions\">\n <div class=\"action\" *ngFor=\"let action of secondaryActions\"\n (click)=\"action.callback(); clearSelection(action.clear_selection)\">\n\n <gravity-icon *ngIf=\"action.icon !== ''\" [iconName]=\"action.icon\" [iconSize]=\"'md-16'\"/>\n <span class=\"hr-label sm-regular\">{{ action.text }}</span>\n </div>\n </div>\n\n <hr *ngIf=\"secondaryActions && userInfo\" class=\"separator-line\">\n\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon *ngIf=\"userInfo.icon !== ''\" class=\"icon\" [iconName]=\"userInfo.icon\" [iconSize]=\"'sm-12'\"\n [tooltip]=\"collapsedMode ? tooltipUserInfoTemplate : null\" [contentType]=\"'template'\" [placement]=\"'right'\"/>\n\n <span *ngIf=\"!collapsedMode\" class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n\n <ng-template #tooltipUserInfoTemplate>\n <gravity-tooltip-container [tooltipSimple]=\"{text: userInfo.info}\"/>\n </ng-template>\n </div>\n </div>\n </section>\n </section>\n\n <!-- - - - - - - - - - - Mobile Resolutions - - - - - - - - - - -->\n\n <section *ngIf=\"(cardButtons || userInfo) && (size === 'md' || size === 'sm')\" class=\"menu-footer-mobile\">\n <section class=\"footer-content\">\n <div *ngIf=\"cardButtons\" class=\"secondary-actions\">\n <div class=\"card-buttons\">\n <div class=\"card-buttons-row\" *ngFor=\"let row of getCardButtonsRows()\">\n <gravity-card-button *ngFor=\"let button of row\"\n [type]=\"'secondary'\"\n [orientation]=\"'vrt-center'\"\n [iconName]=\"button.icon\" [label]=\"button.text\"\n (clicked)=\"button.callback(); clearSelection(button.clear_selection); selected.emit()\"/>\n </div>\n </div>\n <gravity-button *ngIf=\"mainFooterAction\" [size]=\"'md'\" [type]=\"'tertiary'\" [iconName]=\"mainFooterAction.icon\"\n [iconPosition]=\"'left'\" (click)=\"mainFooterAction.callback()\"> {{ mainFooterAction.text }}\n </gravity-button>\n </div>\n <div *ngIf=\"userInfo\" class=\"user-info-list\">\n <div *ngFor=\"let userInfo of userInfo\" class=\"user-info\">\n <gravity-icon [iconSize]=\"'sm-12'\" [iconName]=\"userInfo.icon\"/>\n <span class=\"hr-label sm-regular\">{{ userInfo.info }}</span>\n </div>\n </div>\n </section>\n </section>\n </div>\n</div>\n\n", styles: [".scrollbar-sm::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb,.gravity-menu .menu-content .menu-body.has-scroll:hover::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover,.gravity-menu .menu-content .menu-body.has-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.gravity-menu{height:100%;width:266px;-webkit-user-select:none;user-select:none;display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-md);transition:width .28s ease,gap .28s ease}.gravity-menu .menu-header{width:100%;display:flex;position:relative;align-items:center;padding:24px 26px 0 24px;justify-content:space-between}.gravity-menu .menu-header gravity-icon{cursor:pointer}.gravity-menu .menu-header svg{width:60px;height:24px;display:flex}.gravity-menu .menu-header .collapse-button{right:26px;display:flex;position:absolute;background:var(--surface-primary);padding:var(--gravity-spacing-xxs);border-radius:6.25rem}.gravity-menu .menu-content{width:100%;height:100%;display:flex;overflow:hidden;flex-direction:column;justify-content:space-between}.gravity-menu .menu-content .menu-body{display:flex;overflow-y:auto;flex-direction:column;align-items:flex-start;padding:0 18px 12px 24px}.gravity-menu .menu-content .menu-body:not(.has-scroll),.gravity-menu .menu-content .menu-body.has-scroll:not(:hover){margin-right:8px;scrollbar-width:none}.gravity-menu .menu-content .menu-body:not(.has-scroll)::-webkit-scrollbar,.gravity-menu .menu-content .menu-body.has-scroll:not(:hover)::-webkit-scrollbar{width:0;height:0}.gravity-menu .menu-content .menu-body.has-scroll:hover{margin-right:0}.gravity-menu .menu-content .menu-body.sub-menu:hover{margin-right:8px!important}.gravity-menu .menu-content .menu-body .menu-section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels{width:100%;color:var(--on-bg-menu-button-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level{width:100%;display:flex;cursor:pointer;position:relative;align-items:center;justify-content:space-between;gap:var(--gravity-spacing-xs);height:var(--gravity-spacing-md);border-left:4px solid transparent;padding:0 var(--gravity-spacing-xxs);--option-icon-color: var(--on-bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.is-open p{text-decoration:underline}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level.selected{border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p{display:flex;align-items:center;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level p .badge{position:absolute;right:20px;top:8px}.gravity-menu .menu-content .menu-body .menu-section .levels .first-level:hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level{display:flex;align-self:stretch;align-items:flex-start;justify-content:center;padding-left:var(--gravity-spacing-xxs);transition:max-height .3s ease-in-out,opacity .3s ease-in-out}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list{flex:1 0 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line{height:100%;margin-left:var(--gravity-spacing-xs);border-left:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .line.selected{margin:0 -1px 0 7px;border-left:3px solid var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option{width:100%;height:34px;display:flex;align-items:center;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text{flex:1 0 0;height:24px;display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:not(.disabled):not(.selected):hover{color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.disabled{cursor:default;pointer-events:none;color:var(--on-bg-menu-button-disabled-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{color:var(--on-bg-menu-button-pressed-primary);background-color:var(--bg-menu-button-pressed-primary)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge{height:14px;display:flex;border-radius:2.5px;align-items:flex-end;gap:var(--gravity-spacing-xs);padding:var(--gravity-spacing-xxs);background:var(--bg-menu-badge-button);color:var(--on-bg-notification-badge-button)}.gravity-menu .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text .badge span{line-height:6px}.gravity-menu .menu-content .menu-footer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:16px 22px 20px 24px;gap:var(--gravity-spacing-md);width:calc(100% - var(--gravity-spacing-xs));box-shadow:-8px 1px 4px 0 rgba(var(--shadow-primary-rgba),var(--shadow-opacity))}.gravity-menu .menu-content .menu-footer .footer-content{width:234px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--gravity-spacing-sm)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action{width:100%;height:24px;display:flex;align-items:center;gap:var(--gravity-spacing-xs);padding:0 var(--gravity-spacing-xxs)}.gravity-menu .menu-content .menu-footer .footer-content .secondary-actions .action:hover{cursor:pointer;color:var(--on-bg-menu-button-hover-primary);background-color:var(--bg-menu-button-hover-primary)}.gravity-menu .menu-content .menu-footer .footer-content hr{margin:0;width:100%;border:1px solid var(--divider-menu-active-primary)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list{display:grid;gap:var(--gravity-spacing-xs)}.gravity-menu .menu-content .menu-footer .footer-content .user-info-list .user-info{display:flex;padding:1px 2px;align-items:center;gap:var(--gravity-spacing-xxs)}.gravity-menu.collapsed{width:100px;position:relative;gap:var(--gravity-spacing-lg)}.gravity-menu.collapsed .menu-header{padding:24px 0 0;justify-content:center}.gravity-menu.collapsed .menu-header .collapse-button{right:-10px}.gravity-menu.collapsed .menu-content .menu-body{padding:0}.gravity-menu.collapsed .menu-content .menu-body.sub-menu{overflow:hidden!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level{height:70px!important;justify-content:center!important}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open{margin-bottom:var(--expanded-margin);background-color:var(--surface-primary);border-left:4px solid var(--on-bg-menu-button-disabled-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level:not(.empty).is-open.selected{background-color:var(--bg-button-active-tertiary);border-left:4px solid var(--bg-menu-button-pressed-primary)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p{width:100%;display:flex;text-align:center;position:relative;align-items:center;flex-direction:column;justify-content:center;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .first-level p .badge.collapsed{top:3px;right:26px}.gravity-menu.collapsed .menu-content .menu-body .menu-section .levels .second-level{z-index:1;min-width:220px;position:absolute;width:max-content;top:var(--submenu-offset, 0px);border-radius:.3125rem;padding:var(--gravity-spacing-xs);background:var(--surface-secondary);border:1px solid var(--surface-primary);background-color:var(--surface-secondary)}.gravity-menu.collapsed .menu-content .menu-footer{width:100%;padding:16px 8px 20px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content{width:84px}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions{gap:var(--gravity-spacing-sm)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .secondary-actions .action{height:auto;flex-direction:column;gap:var(--gravity-spacing-xxs);padding:var(--gravity-spacing-xs) var(--gravity-spacing-xxs)}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list{width:100%;justify-items:center}.gravity-menu.collapsed .menu-content .menu-footer .footer-content .user-info-list .user-info .icon{cursor:pointer}.gravity-menu.md,.gravity-menu.sm{gap:0;width:100%;z-index:101;max-width:100%;position:fixed;min-width:577px;transition:none;transform:translate(101%);background-color:var(--bg-menu-mobile-primary)}.gravity-menu.md.open,.gravity-menu.sm.open{transform:translate(0);transition:transform .165s ease-in-out}.gravity-menu.md:not(.open),.gravity-menu.sm:not(.open){transform:translate(101%)}.gravity-menu.md.closing,.gravity-menu.sm.closing{transition:transform .165s ease-in-out}.gravity-menu.md .menu-logo svg,.gravity-menu.sm .menu-logo svg{width:70px;height:28px}.gravity-menu.md .menu-content,.gravity-menu.sm .menu-content{margin-top:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-body,.gravity-menu.sm .menu-content .menu-body{padding:0 18px 0 24px}.gravity-menu.md .menu-content .menu-body .menu-section .levels,.gravity-menu.sm .menu-content .menu-body .menu-section .levels{display:flex;flex-direction:column;gap:var(--gravity-spacing-sm);border-radius:.3125rem;padding:var(--gravity-spacing-sm);background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level{height:20px;background-color:var(--bg-menu-mobile-card-primary)}.gravity-menu.md .menu-content .menu-body .menu-section .levels .first-level:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .first-level:hover{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option{height:45px}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text:hover,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option .option-text.selected{background:none!important}.gravity-menu.md .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected,.gravity-menu.sm .menu-content .menu-body .menu-section .levels .second-level .options-list .option.selected{background-color:var(--bg-menu-mobile-button-pressed-primary)}.gravity-menu.md .menu-content .menu-footer-mobile,.gravity-menu.sm .menu-content .menu-footer-mobile{display:flex;align-items:center;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:var(--gravity-spacing-sm);padding:var(--gravity-spacing-md)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content{width:100%;display:flex;flex-direction:column;gap:var(--gravity-spacing-sm)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-sm);padding:0 var(--gravity-spacing-lg)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons{display:flex;align-self:stretch;flex-direction:column;align-items:flex-start;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions .card-buttons .card-buttons-row{width:100%;display:flex;flex-direction:row;gap:var(--gravity-spacing-xs)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions gravity-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button{width:100%}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .secondary-actions ::ng-deep gravity-card-button .card-button-container{padding:0;width:100%;min-width:auto}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list{gap:0;display:grid;border-top:1px solid var(--surface-secondary)}.gravity-menu.md .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info,.gravity-menu.sm .menu-content .menu-footer-mobile .footer-content .user-info-list .user-info{display:flex;flex-direction:row;align-items:center;align-self:stretch;justify-content:center;gap:var(--gravity-spacing-xs);padding-top:var(--gravity-spacing-sm)}.gravity-menu.sm{min-width:320px}.gravity-menu.sm .menu-footer-mobile .footer-content .secondary-actions{padding:0!important}\n"] }]
195
197
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { items: [{
196
198
  type: Input
197
199
  }], userInfo: [{
@@ -226,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
226
228
  type: ViewChild,
227
229
  args: ['menuBody', { static: false }]
228
230
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFnRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBTzNKLE1BQU0sT0FBTyxvQkFBb0I7SUE2QmhDLFlBQW9CLEtBQWlCLEVBQVUsUUFBbUI7UUFBOUMsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF6QmxELFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIseUJBQW9CLEdBQVcsQ0FBQyxDQUFDO1FBQ2pDLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUVsQyxTQUFJLEdBQXFDLElBQUksQ0FBQztRQUM5QyxxQkFBZ0IsR0FBK0QsSUFBSSxDQUFDO1FBRW5GLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSWxELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FB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QUFuQyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVXLEtBQUs7c0JBQXJCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxTQUFTO3NCQUF6QixNQUFNO2dCQUVpQyxRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01lbnVIZWFkZXIsIE1lbnVMb2dvVXJscywgTWVudU9wdGlvbiwgU2Vjb25kYXJ5QWN0aW9ucywgVXNlckluZm99IGZyb20gXCIuLi8uLi9tb2RlbC9ncmF2aXR5LW1lbnUtaXRlbXMubW9kZWxcIjtcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2dyYXZpdHktbWVudScsXG5cdHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9ncmF2aXR5LW1lbnUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyAsT25EZXN0cm95IHtcblx0QElucHV0KCkgcHVibGljIGl0ZW1zOiBNZW51SGVhZGVyW107XG5cdEBJbnB1dCgpIHB1YmxpYyB1c2VySW5mbzogVXNlckluZm9bXTtcblx0QElucHV0KCkgcHVibGljIGxvZ29Vcmw6IE1lbnVMb2dvVXJscztcblx0QElucHV0KCkgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXHRASW5wdXQoKSBwdWJsaWMgY29sbGFwc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblx0QElucHV0KCkgcHVibGljIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG5cdEBJbnB1dCgpIHB1YmxpYyBjYXJkQnV0dG9uczogU2Vjb25kYXJ5QWN0aW9uc1tdO1xuXHRASW5wdXQoKSBwdWJsaWMgbWF4Q2FyZEJ1dHRvbnNQZXJSb3c6IG51bWJlciA9IDM7XG5cdEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGluazogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdEBJbnB1dCgpIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zOiBTZWNvbmRhcnlBY3Rpb25zW107XG5cdEBJbnB1dCgpIHB1YmxpYyBzaXplOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICd4bCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBtYWluRm9vdGVyQWN0aW9uOiB7aWNvbjogc3RyaW5nOyB0ZXh0OiBzdHJpbmc7IGNhbGxiYWNrPzogKCkgPT4gdm9pZH0gfCBudWxsID0gbnVsbDtcblxuXHRAT3V0cHV0KCkgcHVibGljIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cdEBPdXRwdXQoKSBwdWJsaWMgY29sbGFwc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBWaWV3Q2hpbGQoJ21lbnVCb2R5Jywge3N0YXRpYzogZmFsc2V9KSBtZW51Qm9keSE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cdHB1YmxpYyBjbG9zaW5nID0gZmFsc2U7XG5cdHB1YmxpYyBzY3JvbGxQb3NpdGlvbjogbnVtYmVyID0gMDtcblx0cHVibGljIGNvbGxhcHNlZE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHZpc2libGVTdWJNZW51OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBzZWxlY3RlZE9wdGlvbjogTWVudU9wdGlvbiB8IG51bGwgPSBudWxsO1xuXG5cdHByaXZhdGUgcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblx0cHJpdmF0ZSBjbGlja091dHNpZGVMaXN0ZW5lciE6ICgpID0+IHZvaWQ7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRpZiAoY2hhbmdlc1snY3VycmVudExpbmsnXSAmJiB0aGlzLmN1cnJlbnRMaW5rICE9IG51bGwgJiYgdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLnByZXNlbGVjdE9wdGlvbkJ5TGluayh0aGlzLmN1cnJlbnRMaW5rKTtcblx0XHR9XG5cblx0XHRpZiAoY2hhbmdlc1snc2l6ZSddKSB7XG5cdFx0XHR0aGlzLmhhbmRsZVNpemVDaGFuZ2UoY2hhbmdlc1snc2l6ZSddLmN1cnJlbnRWYWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdGNvbnN0IGVsID0gdGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50O1xuXG5cdFx0dGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZU92ZXJmbG93KCk7XG5cdFx0fSk7XG5cblx0XHRpZiAodGhpcy5tZW51Qm9keSkge1xuXHRcdFx0dGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcblx0XHRcdFx0dGhpcy5zY3JvbGxQb3NpdGlvbiA9IHRoaXMubWVudUJvZHkubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0aGlzLmNsaWNrT3V0c2lkZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG5cdFx0XHRjb25zdCBtZW51RWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblx0XHRcdGlmICghbWVudUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmIHRoaXMuY29sbGFwc2VkTW9kZSkge1xuXHRcdFx0XHR0aGlzLnZpc2libGVTdWJNZW51ID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbCk7XG5cdFx0dGhpcy51cGRhdGVPdmVyZmxvdygpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHsgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7IH1cblx0XHRpZiAodGhpcy5jbGlja091dHNpZGVMaXN0ZW5lcikgeyB0aGlzLmNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7IH1cblx0fVxuXG5cdHByaXZhdGUgcHJlc2VsZWN0T3B0aW9uQnlMaW5rKGxpbms6IHN0cmluZykge1xuXHRcdGZvciAoY29uc3QgaGVhZGVyIG9mIHRoaXMuaXRlbXMgPz8gW10pIHtcblx0XHRcdGlmIChoZWFkZXIubGluayA9PT0gbGluaykgeyB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDsgaGVhZGVyLmNvbGxhcHNlZCA9IGZhbHNlOyByZXR1cm47IH1cblxuXHRcdFx0Y29uc3Qgb3B0aW9uID0gaGVhZGVyLmhlYWRlck9wdGlvbnM/LmZpbmQobyA9PiBvLmxpbmsgPT09IGxpbmspO1xuXHRcdFx0aWYgKG9wdGlvbikgeyB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uOyBoZWFkZXIuY29sbGFwc2VkID0gZmFsc2U7IHJldHVybjsgfVxuXHRcdH1cblxuXHRcdGlmKHRoaXMuY29sbGFwc2VkTW9kZSkgeyB0aGlzLnRvZ2dsZUFsbEhlYWRlcnModHJ1ZSk7IH1cblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU2l6ZUNoYW5nZShzaXplOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyk6IHZvaWQge1xuXHRcdGlmIChzaXplID09PSAnc20nIHx8IHNpemUgPT09ICdtZCcpIHtcblx0XHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdFx0dGhpcy5jb2xsYXBzZWRNb2RlID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZighdGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyhmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHNlbGVjdE9wdGlvbihvcHRpb246IE1lbnVPcHRpb24sIGhlYWRlcjogTWVudUhlYWRlcikge1xuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG5cdFx0dGhpcy5zZWxlY3RlZC5lbWl0KG9wdGlvbi5saW5rKTtcblxuXHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUgJiYgaGVhZGVyKSB7XG5cdFx0XHR0aGlzLnZpc2libGVTdWJNZW51ID0gZmFsc2U7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtoZWFkZXIuY29sbGFwc2VkID0gdHJ1ZTt9LCAwKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VNZW51KCkge1xuXHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xuXHRcdHRoaXMuY2xvc2luZyA9IHRydWU7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7IHRoaXMuY2xvc2luZyA9IGZhbHNlOyB9LCAxMDApO1xuXHR9XG5cblx0cHVibGljIHRvZ2dsZU1lbnVIZWFkZXIoaGVhZGVyOiBNZW51SGVhZGVyLCBpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCFoZWFkZXIuaGVhZGVyT3B0aW9ucyB8fCBoZWFkZXIuaGVhZGVyT3B0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuXHRcdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIWhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpIHJldHVybjtcblxuXHRcdGlmICh0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdGlmICghaGVhZGVyLmNvbGxhcHNlZCkge1xuXHRcdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy52aXNpYmxlU3ViTWVudSA9IGZhbHNlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5hZGp1c3RTY3JvbGxPbkdyb3coaW5kZXgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gIWhlYWRlci5jb2xsYXBzZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGlzSGVhZGVyU2VsZWN0ZWQoaGVhZGVyOiBNZW51SGVhZGVyKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cdFx0cmV0dXJuIGhlYWRlci5oZWFkZXJPcHRpb25zLnNvbWUob3B0aW9uID0+IG9wdGlvbiA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbik7XG5cdH1cblxuXHRwdWJsaWMgZ2V0Q2FyZEJ1dHRvbnNSb3dzKCk6IGFueVtdW10ge1xuXHRcdGlmICghdGhpcy5jYXJkQnV0dG9ucyB8fCAhdGhpcy5tYXhDYXJkQnV0dG9uc1BlclJvdykgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IHJvd3MgPSBbXTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FyZEJ1dHRvbnMubGVuZ3RoOyBpICs9IHRoaXMubWF4Q2FyZEJ1dHRvbnNQZXJSb3cpIHtcblx0XHRcdHJvd3MucHVzaCh0aGlzLmNhcmRCdXR0b25zLnNsaWNlKGksIGkgKyB0aGlzLm1heENhcmRCdXR0b25zUGVyUm93KSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJvd3M7XG5cdH1cblxuXHRwdWJsaWMgY29sbGFwc2VNZW51KCkge1xuXHRcdHRoaXMuY29sbGFwc2VkTW9kZSA9ICF0aGlzLmNvbGxhcHNlZE1vZGU7XG5cdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRoaXMuY29sbGFwc2VkTW9kZSk7XG5cdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7IHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTsgfVxuXG5cdFx0dGhpcy5jb2xsYXBzZWQuZW1pdCh0aGlzLmNvbGxhcHNlZE1vZGUpO1xuXHR9XG5cblx0cHVibGljIGhhc09wdGlvbkJhZGdlKGhlYWRlcjogTWVudUhlYWRlcik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhIWhlYWRlci5oZWFkZXJPcHRpb25zPy5zb21lKFxuXHRcdFx0b3B0aW9uID0+IHR5cGVvZiBvcHRpb24uYmFkZ2VfdGV4dCA9PT0gJ3N0cmluZycgJiYgb3B0aW9uLmJhZGdlX3RleHQudHJpbSgpLmxlbmd0aCA+IDBcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGNsZWFyU2VsZWN0aW9uKGNsZWFyU2VsZWN0aW9uOiBib29sZWFuKSB7XG5cdFx0aWYoY2xlYXJTZWxlY3Rpb24pIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuXHRcdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZU92ZXJmbG93KCk6IHZvaWQge1xuXHRcdGNvbnN0IGVsID0gdGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50O1xuXHRcdGNvbnN0IGhhc1Njcm9sbCA9IGVsLnNjcm9sbEhlaWdodCA+IGVsLmNsaWVudEhlaWdodDtcblx0XHRlbC5jbGFzc0xpc3QudG9nZ2xlKCdoYXMtc2Nyb2xsJywgaGFzU2Nyb2xsKTtcblx0fVxuXG5cdHByaXZhdGUgdG9nZ2xlQWxsSGVhZGVycyhjb2xsYXBzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXRlbXM/Lmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0Zm9yIChjb25zdCBoZWFkZXIgb2YgdGhpcy5pdGVtcykge1xuXHRcdFx0aWYgKGhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpIHtcblx0XHRcdFx0aGVhZGVyLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGFkanVzdFNjcm9sbE9uR3JvdyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgZWwgPSB0aGlzLm1lbnVCb2R5Py5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghZWwpIHJldHVybjtcblxuXHRcdGVsLnNjcm9sbFRvKHt0b3A6IDYyICogaW5kZXgsIGJlaGF2aW9yOiAnYXV0byd9KTtcblx0fVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3Jhdml0eS1tZW51IHt7c2l6ZX19XCIgW2NsYXNzLm9wZW5dPVwiaXNPcGVuXCIgW2NsYXNzLmNsb3NpbmddPVwiY2xvc2luZ1wiXG4gICAgIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkTW9kZSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJtZW51LWhlYWRlclwiPlxuICAgIDxzdmctaWNvbiAqbmdJZj1cImxvZ29Vcmw/Lm1haW5fbG9nb191cmxcIlxuICAgICAgICAgICAgICBbc3JjXT1cIihjb2xsYXBzZWRNb2RlICYmIGxvZ29VcmwuY29sbGFwc2VkX2xvZ29fdXJsKSA/IGxvZ29VcmwuY29sbGFwc2VkX2xvZ29fdXJsIDogbG9nb1VybC5tYWluX2xvZ29fdXJsXCIvPlxuXG4gICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cIihzaXplID09PSAnbWQnIHx8IHNpemUgPT09ICdzbScpICYmIHNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiJ2xnLTI0J1wiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIChjbGljayk9XCJjbG9zZU1lbnUoKVwiLz5cblxuICAgIDxkaXYgKm5nSWY9XCJjb2xsYXBzYWJsZSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiIGNsYXNzPVwiY29sbGFwc2UtYnV0dG9uXCIgKGNsaWNrKT1cImNvbGxhcHNlTWVudSgpXCI+XG4gICAgICA8Z3Jhdml0eS1pY29uIFtzdHlsZS4tLWljb24tY29sb3JdPVwiJ3ZhcigtLWJnLWJ1dHRvbi1hY3RpdmUtcHJpbWFyeSknXCIgW2ljb25TaXplXT1cIidzbS0xMidcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiY29sbGFwc2VkTW9kZSA/ICdhcnJvdy1yaWdodCcgOiAnYXJyb3ctbGVmdCdcIi8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtZW51LWNvbnRlbnRcIj5cbiAgICA8c2VjdGlvbiAjbWVudUJvZHkgY2xhc3M9XCJtZW51LWJvZHlcIiBbY2xhc3Muc3ViLW1lbnVdPVwidmlzaWJsZVN1Yk1lbnVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsc1wiICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImZpcnN0LWxldmVsXCIgW2NsYXNzLnNlbGVjdGVkXT1cImlzSGVhZGVyU2VsZWN0ZWQoaGVhZGVyKVwiXG4gICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaGVhZGVyLmxpbmsgfHwgdW5kZWZpbmVkXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnVIZWFkZXIoaGVhZGVyLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLW9wZW5dPVwiIWhlYWRlci5jb2xsYXBzZWRcIiBbY2xhc3MuZW1wdHldPVwiaGVhZGVyLmhlYWRlck9wdGlvbnM/Lmxlbmd0aCA8IDFcIlxuICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLWV4cGFuZGVkLW1hcmdpbl09XCJoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMCA/ICgzOCArICgzNCAqIGhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpKSArICdweCcgOiAnMCdcIj5cblxuICAgICAgICAgICAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyXCI+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWljb24gW3N0eWxlLi0taWNvbi1jb2xvcl09XCIndmFyKC0tb3B0aW9uLWljb24tY29sb3IpJ1wiICpuZ0lmPVwiaGVhZGVyLmljb24gIT09ICcnXCIgW2ljb25OYW1lXT1cImhlYWRlci5pY29uXCIgW2ljb25TaXplXT1cIidtZC0xNidcIi8+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWJhZGdlIGNsYXNzPVwiYmFkZ2VcIiAqbmdJZj1cImhhc09wdGlvbkJhZGdlKGhlYWRlcikgJiYgKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PT0gJ2xnJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImNvbGxhcHNlZE1vZGVcIiBbc2l6ZV09XCInc20nXCIgW3R5cGVdPVwiJ25ldXRybydcIj48L2dyYXZpdHktYmFkZ2U+XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyLnRleHQgfX1cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb2xsYXBzZWRNb2RlXCI+XG4gICAgICAgICAgICAgIDxncmF2aXR5LWljb24gKm5nSWY9XCJoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMFwiIFtpY29uU2l6ZV09XCInc20tMTInXCIgW2ljb25OYW1lXT1cImhlYWRlci5jb2xsYXBzZWQgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctdXAnXCIvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCIhaGVhZGVyLmNvbGxhcHNlZCAmJiBoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwic2Vjb25kLWxldmVsXCJcbiAgICAgICAgICAgICAgICAgICBbQGZhZGVTbGlkZV0gW3N0eWxlLi0tc3VibWVudS1vZmZzZXRdPVwiKCgxNTYgLSBzY3JvbGxQb3NpdGlvbikgKyAoNzggKiBpKSkgKyAncHgnXCJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb2xsYXBzZWRNb2RlID8gJ2VsZXZhdGlvbi14cycgIDogJydcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnMtbGlzdFwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkTW9kZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaGVhZGVyLmhlYWRlck9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgW2F0dHIuZGF0YS1jeV09XCJvcHRpb24uY3lwcmVzc190YWdcIiBbY2xhc3Muc2VsZWN0ZWRdPVwib3B0aW9uID09PSBzZWxlY3RlZE9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PSAnbGcnKSAmJiAgb3B0aW9uID09PSBzZWxlY3RlZE9wdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHNpemUgPT09ICdzbScgfHwgc2l6ZSA9PT0gJ21kJykgPyAnaHItbGFiZWwgbWQtcmVndWxhcicgOiAnaHItbGFiZWwgc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCIgW2NsYXNzLnNlbGVjdGVkXT1cIm9wdGlvbiA9PT0gc2VsZWN0ZWRPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJvcHRpb24ubGluayB8fCB1bmRlZmluZWRcIiAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbiwgaGVhZGVyKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICA8Z3Jhdml0eS1iYWRnZSAqbmdJZj1cIm9wdGlvbi5iYWRnZV90ZXh0ICYmIChzaXplID09PSAneGwnIHx8IHNpemUgPT09ICdsZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwib3B0aW9uLmJhZGdlX3RleHRcIiBbdHlwZV09XCInbmV1dHJvJ1wiIFtzaXplXT1cIidzbSdcIj48L2dyYXZpdHktYmFkZ2U+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCIoc2Vjb25kYXJ5QWN0aW9ucyB8fCB1c2VySW5mbykgJiYgKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PT0gJ2xnJylcIlxuICAgICAgICAgICAgIGNsYXNzPVwibWVudS1mb290ZXIgZWxldmF0aW9uLXhzXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImZvb3Rlci1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWNvbmRhcnlBY3Rpb25zXCIgY2xhc3M9XCJzZWNvbmRhcnktYWN0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHNlY29uZGFyeUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5jYWxsYmFjaygpOyBjbGVhclNlbGVjdGlvbihhY3Rpb24uY2xlYXJfc2VsZWN0aW9uKVwiPlxuXG4gICAgICAgICAgICA8Z3Jhdml0eS1pY29uICpuZ0lmPVwiYWN0aW9uLmljb24gIT09ICcnXCIgW2ljb25OYW1lXT1cImFjdGlvbi5pY29uXCIgW2ljb25TaXplXT1cIidtZC0xNidcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj57eyBhY3Rpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGhyICpuZ0lmPVwic2Vjb25kYXJ5QWN0aW9ucyAmJiB1c2VySW5mb1wiIGNsYXNzPVwic2VwYXJhdG9yLWxpbmVcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mby1saXN0XCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlckluZm8gb2YgdXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mb1wiPlxuICAgICAgICAgICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cInVzZXJJbmZvLmljb24gIT09ICcnXCIgW2ljb25OYW1lXT1cInVzZXJJbmZvLmljb25cIiBbaWNvblNpemVdPVwiJ3NtLTEyJ1wiLz5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbGxhcHNlZE1vZGVcIiBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj57eyB1c2VySW5mby5pbmZvIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8IS0tIC0gLSAtIC0gLSAtIC0gLSAtIC0gIE1vYmlsZSBSZXNvbHV0aW9ucyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0tPlxuXG4gICAgPHNlY3Rpb24gKm5nSWY9XCIoY2FyZEJ1dHRvbnMgfHwgdXNlckluZm8pICYmIChzaXplID09PSAnbWQnIHx8IHNpemUgPT09ICdzbScpXCIgY2xhc3M9XCJtZW51LWZvb3Rlci1tb2JpbGVcIj5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZm9vdGVyLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhcmRCdXR0b25zXCIgY2xhc3M9XCJzZWNvbmRhcnktYWN0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJ1dHRvbnMtcm93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBnZXRDYXJkQnV0dG9uc1Jvd3MoKVwiPlxuICAgICAgICAgICAgICA8Z3Jhdml0eS1jYXJkLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIHJvd1wiXG4gICAgICAgICAgICAgICBbdHlwZV09XCInc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwiJ3ZydC1jZW50ZXInXCJcbiAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJidXR0b24uaWNvblwiIFtsYWJlbF09XCJidXR0b24udGV4dFwiXG4gICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJidXR0b24uY2FsbGJhY2soKTsgY2xlYXJTZWxlY3Rpb24oYnV0dG9uLmNsZWFyX3NlbGVjdGlvbik7IHNlbGVjdGVkLmVtaXQoKVwiLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxncmF2aXR5LWJ1dHRvbiAqbmdJZj1cIm1haW5Gb290ZXJBY3Rpb25cIiBbc2l6ZV09XCInbWQnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtpY29uTmFtZV09XCJtYWluRm9vdGVyQWN0aW9uLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT1cIidsZWZ0J1wiIChjbGljayk9XCJtYWluRm9vdGVyQWN0aW9uLmNhbGxiYWNrKClcIj4ge3sgbWFpbkZvb3RlckFjdGlvbi50ZXh0IH19XG4gICAgICAgICAgPC9ncmF2aXR5LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VySW5mb1wiIGNsYXNzPVwidXNlci1pbmZvLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VySW5mbyBvZiB1c2VySW5mb1wiIGNsYXNzPVwidXNlci1pbmZvXCI+XG4gICAgICAgICAgICA8Z3Jhdml0eS1pY29uIFtpY29uU2l6ZV09XCInc20tMTInXCIgW2ljb25OYW1lXT1cInVzZXJJbmZvLmljb25cIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj57eyB1c2VySW5mby5pbmZvIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2xheW91dC9ncmF2aXR5LW1lbnUvZ3Jhdml0eS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFnRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0osTUFBTSxPQUFPLG9CQUFvQjtJQTZCaEMsWUFBb0IsS0FBaUIsRUFBVSxRQUFtQjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXpCbEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2Qix5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLFNBQUksR0FBcUMsSUFBSSxDQUFDO1FBQzlDLHFCQUFnQixHQUErRCxJQUFJLENBQUM7UUFFbkYsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFJbEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxH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c0JBQW5DLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBRVcsS0FBSztzQkFBckIsTUFBTTtnQkFDVSxRQUFRO3NCQUF4QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBRWlDLFFBQVE7c0JBQS9DLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUhlYWRlciwgTWVudUxvZ29VcmxzLCBNZW51T3B0aW9uLCBTZWNvbmRhcnlBY3Rpb25zLCBVc2VySW5mb30gZnJvbSBcIi4uLy4uL21vZGVsL2dyYXZpdHktbWVudS1pdGVtcy5tb2RlbFwiO1xuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZ3Jhdml0eS1tZW51Jyxcblx0dGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktbWVudS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2dyYXZpdHktbWVudS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdyYXZpdHlNZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzICxPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBwdWJsaWMgaXRlbXM6IE1lbnVIZWFkZXJbXTtcblx0QElucHV0KCkgcHVibGljIHVzZXJJbmZvOiBVc2VySW5mb1tdO1xuXHRASW5wdXQoKSBwdWJsaWMgbG9nb1VybDogTWVudUxvZ29VcmxzO1xuXHRASW5wdXQoKSBwdWJsaWMgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cdEBJbnB1dCgpIHB1YmxpYyBjb2xsYXBzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXHRASW5wdXQoKSBwdWJsaWMgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcblx0QElucHV0KCkgcHVibGljIGNhcmRCdXR0b25zOiBTZWNvbmRhcnlBY3Rpb25zW107XG5cdEBJbnB1dCgpIHB1YmxpYyBtYXhDYXJkQnV0dG9uc1BlclJvdzogbnVtYmVyID0gMztcblx0QElucHV0KCkgcHVibGljIGN1cnJlbnRMaW5rOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0QElucHV0KCkgcHVibGljIHNlY29uZGFyeUFjdGlvbnM6IFNlY29uZGFyeUFjdGlvbnNbXTtcblx0QElucHV0KCkgcHVibGljIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ3hsJztcblx0QElucHV0KCkgcHVibGljIG1haW5Gb290ZXJBY3Rpb246IHtpY29uOiBzdHJpbmc7IHRleHQ6IHN0cmluZzsgY2FsbGJhY2s/OiAoKSA9PiB2b2lkfSB8IG51bGwgPSBudWxsO1xuXG5cdEBPdXRwdXQoKSBwdWJsaWMgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblx0QE91dHB1dCgpIHB1YmxpYyBjb2xsYXBzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0QFZpZXdDaGlsZCgnbWVudUJvZHknLCB7c3RhdGljOiBmYWxzZX0pIG1lbnVCb2R5ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cblx0cHVibGljIGNsb3NpbmcgPSBmYWxzZTtcblx0cHVibGljIHNjcm9sbFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXHRwdWJsaWMgY29sbGFwc2VkTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgdmlzaWJsZVN1Yk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHNlbGVjdGVkT3B0aW9uOiBNZW51T3B0aW9uIHwgbnVsbCA9IG51bGw7XG5cblx0cHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXHRwcml2YXRlIGNsaWNrT3V0c2lkZUxpc3RlbmVyITogKCkgPT4gdm9pZDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChjaGFuZ2VzWydjdXJyZW50TGluayddICYmIHRoaXMuY3VycmVudExpbmsgIT0gbnVsbCAmJiB0aGlzLml0ZW1zPy5sZW5ndGgpIHtcblx0XHRcdHRoaXMucHJlc2VsZWN0T3B0aW9uQnlMaW5rKHRoaXMuY3VycmVudExpbmspO1xuXHRcdH1cblxuXHRcdGlmIChjaGFuZ2VzWydzaXplJ10pIHtcblx0XHRcdHRoaXMuaGFuZGxlU2l6ZUNoYW5nZShjaGFuZ2VzWydzaXplJ10uY3VycmVudFZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0Y29uc3QgZWwgPSB0aGlzLm1lbnVCb2R5Lm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHR0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlT3ZlcmZsb3coKTtcblx0XHR9KTtcblxuXHRcdGlmICh0aGlzLm1lbnVCb2R5KSB7XG5cdFx0XHR0aGlzLm1lbnVCb2R5Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnNjcm9sbFBvc2l0aW9uID0gdGhpcy5tZW51Qm9keS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuY2xpY2tPdXRzaWRlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcblx0XHRcdGNvbnN0IG1lbnVFbGVtZW50ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0aWYgKCFtZW51RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiYgdGhpcy5jb2xsYXBzZWRNb2RlKSB7XG5cdFx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsKTtcblx0XHR0aGlzLnVwZGF0ZU92ZXJmbG93KCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5yZXNpemVPYnNlcnZlcikgeyB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTsgfVxuXHRcdGlmICh0aGlzLmNsaWNrT3V0c2lkZUxpc3RlbmVyKSB7IHRoaXMuY2xpY2tPdXRzaWRlTGlzdGVuZXIoKTsgfVxuXHR9XG5cblx0cHJpdmF0ZSBwcmVzZWxlY3RPcHRpb25CeUxpbmsobGluazogc3RyaW5nKSB7XG5cdFx0Zm9yIChjb25zdCBoZWFkZXIgb2YgdGhpcy5pdGVtcyA/PyBbXSkge1xuXHRcdFx0aWYgKGhlYWRlci5saW5rID09PSBsaW5rKSB7IHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBudWxsOyBoZWFkZXIuY29sbGFwc2VkID0gZmFsc2U7IHJldHVybjsgfVxuXG5cdFx0XHRjb25zdCBvcHRpb24gPSBoZWFkZXIuaGVhZGVyT3B0aW9ucz8uZmluZChvID0+IG8ubGluayA9PT0gbGluayk7XG5cdFx0XHRpZiAob3B0aW9uKSB7IHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247IGhlYWRlci5jb2xsYXBzZWQgPSBmYWxzZTsgcmV0dXJuOyB9XG5cdFx0fVxuXG5cdFx0aWYodGhpcy5jb2xsYXBzZWRNb2RlKSB7IHRoaXMudG9nZ2xlQWxsSGVhZGVycyh0cnVlKTsgfVxuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVTaXplQ2hhbmdlKHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnKTogdm9pZCB7XG5cdFx0aWYgKHNpemUgPT09ICdzbScgfHwgc2l6ZSA9PT0gJ21kJykge1xuXHRcdFx0aWYgKHRoaXMuY29sbGFwc2VkTW9kZSkge1xuXHRcdFx0XHR0aGlzLmNvbGxhcHNlZE1vZGUgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy52aXNpYmxlU3ViTWVudSA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLnRvZ2dsZUFsbEhlYWRlcnModHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmKCF0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKGZhbHNlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc2VsZWN0T3B0aW9uKG9wdGlvbjogTWVudU9wdGlvbiwgaGVhZGVyOiBNZW51SGVhZGVyKSB7XG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcblx0XHR0aGlzLnNlbGVjdGVkLmVtaXQob3B0aW9uLmxpbmspO1xuXG5cdFx0aWYgKHRoaXMuY29sbGFwc2VkTW9kZSAmJiBoZWFkZXIpIHtcblx0XHRcdHRoaXMudmlzaWJsZVN1Yk1lbnUgPSBmYWxzZTtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge2hlYWRlci5jb2xsYXBzZWQgPSB0cnVlO30sIDApO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBjbG9zZU1lbnUoKSB7XG5cdFx0dGhpcy5jbG9zZS5lbWl0KCk7XG5cdFx0dGhpcy5jbG9zaW5nID0gdHJ1ZTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5jbG9zaW5nID0gZmFsc2U7IH0sIDEwMCk7XG5cdH1cblxuXHRwdWJsaWMgdG9nZ2xlTWVudUhlYWRlcihoZWFkZXI6IE1lbnVIZWFkZXIsIGluZGV4OiBudW1iZXIpIHtcblx0XHRpZiAoIWhlYWRlci5oZWFkZXJPcHRpb25zIHx8IGhlYWRlci5oZWFkZXJPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG5cdFx0XHRpZih0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICghaGVhZGVyLmhlYWRlck9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0aWYgKHRoaXMuY29sbGFwc2VkTW9kZSkge1xuXHRcdFx0aWYgKCFoZWFkZXIuY29sbGFwc2VkKSB7XG5cdFx0XHRcdGhlYWRlci5jb2xsYXBzZWQgPSB0cnVlO1xuXHRcdFx0XHR0aGlzLnZpc2libGVTdWJNZW51ID0gZmFsc2U7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnRvZ2dsZUFsbEhlYWRlcnModHJ1ZSk7XG5cdFx0XHRcdGhlYWRlci5jb2xsYXBzZWQgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy52aXNpYmxlU3ViTWVudSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmFkanVzdFNjcm9sbE9uR3JvdyhpbmRleCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGhlYWRlci5jb2xsYXBzZWQgPSAhaGVhZGVyLmNvbGxhcHNlZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgaXNIZWFkZXJTZWxlY3RlZChoZWFkZXI6IE1lbnVIZWFkZXIpOiBib29sZWFuIHtcblx0XHRpZiAoIWhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGgpIHJldHVybiBmYWxzZTtcblx0XHRyZXR1cm4gaGVhZGVyLmhlYWRlck9wdGlvbnMuc29tZShvcHRpb24gPT4gb3B0aW9uID09PSB0aGlzLnNlbGVjdGVkT3B0aW9uKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRDYXJkQnV0dG9uc1Jvd3MoKTogYW55W11bXSB7XG5cdFx0aWYgKCF0aGlzLmNhcmRCdXR0b25zIHx8ICF0aGlzLm1heENhcmRCdXR0b25zUGVyUm93KSByZXR1cm4gW107XG5cdFx0Y29uc3Qgcm93cyA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYXJkQnV0dG9ucy5sZW5ndGg7IGkgKz0gdGhpcy5tYXhDYXJkQnV0dG9uc1BlclJvdykge1xuXHRcdFx0cm93cy5wdXNoKHRoaXMuY2FyZEJ1dHRvbnMuc2xpY2UoaSwgaSArIHRoaXMubWF4Q2FyZEJ1dHRvbnNQZXJSb3cpKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcm93cztcblx0fVxuXG5cdHB1YmxpYyBjb2xsYXBzZU1lbnUoKSB7XG5cdFx0dGhpcy5jb2xsYXBzZWRNb2RlID0gIXRoaXMuY29sbGFwc2VkTW9kZTtcblx0XHR0aGlzLnRvZ2dsZUFsbEhlYWRlcnModGhpcy5jb2xsYXBzZWRNb2RlKTtcblx0XHRpZih0aGlzLmNvbGxhcHNlZE1vZGUpIHsgdGhpcy52aXNpYmxlU3ViTWVudSA9IGZhbHNlOyB9XG5cblx0XHR0aGlzLmNvbGxhcHNlZC5lbWl0KHRoaXMuY29sbGFwc2VkTW9kZSk7XG5cdH1cblxuXHRwdWJsaWMgaGFzT3B0aW9uQmFkZ2UoaGVhZGVyOiBNZW51SGVhZGVyKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhaGVhZGVyLmhlYWRlck9wdGlvbnM/LnNvbWUoXG5cdFx0XHRvcHRpb24gPT4gdHlwZW9mIG9wdGlvbi5iYWRnZV90ZXh0ID09PSAnc3RyaW5nJyAmJiBvcHRpb24uYmFkZ2VfdGV4dC50cmltKCkubGVuZ3RoID4gMFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgY2xlYXJTZWxlY3Rpb24oY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4pIHtcblx0XHRpZihjbGVhclNlbGVjdGlvbikge1xuXHRcdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG5cdFx0XHRpZih0aGlzLmNvbGxhcHNlZE1vZGUpIHtcblx0XHRcdFx0dGhpcy50b2dnbGVBbGxIZWFkZXJzKHRydWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlT3ZlcmZsb3coKTogdm9pZCB7XG5cdFx0Y29uc3QgZWwgPSB0aGlzLm1lbnVCb2R5Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0Y29uc3QgaGFzU2Nyb2xsID0gZWwuc2Nyb2xsSGVpZ2h0ID4gZWwuY2xpZW50SGVpZ2h0O1xuXHRcdGVsLmNsYXNzTGlzdC50b2dnbGUoJ2hhcy1zY3JvbGwnLCBoYXNTY3JvbGwpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b2dnbGVBbGxIZWFkZXJzKGNvbGxhcHNlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdGlmICghdGhpcy5pdGVtcz8ubGVuZ3RoKSByZXR1cm47XG5cblx0XHRmb3IgKGNvbnN0IGhlYWRlciBvZiB0aGlzLml0ZW1zKSB7XG5cdFx0XHRpZiAoaGVhZGVyLmhlYWRlck9wdGlvbnM/Lmxlbmd0aCkge1xuXHRcdFx0XHRoZWFkZXIuY29sbGFwc2VkID0gY29sbGFwc2VkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYWRqdXN0U2Nyb2xsT25Hcm93KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCBlbCA9IHRoaXMubWVudUJvZHk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFlbCkgcmV0dXJuO1xuXG5cdFx0ZWwuc2Nyb2xsVG8oe3RvcDogNjIgKiBpbmRleCwgYmVoYXZpb3I6ICdhdXRvJ30pO1xuXHR9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmF2aXR5LW1lbnUge3tzaXplfX1cIiBbY2xhc3Mub3Blbl09XCJpc09wZW5cIiBbY2xhc3MuY2xvc2luZ109XCJjbG9zaW5nXCJcbiAgICAgW2NsYXNzLmNvbGxhcHNlZF09XCJjb2xsYXBzZWRNb2RlICYmIChzaXplID09PSAneGwnIHx8IHNpemUgPT09ICdsZycpXCI+XG5cbiAgPGRpdiBjbGFzcz1cIm1lbnUtaGVhZGVyXCI+XG4gICAgPHN2Zy1pY29uICpuZ0lmPVwibG9nb1VybD8ubWFpbl9sb2dvX3VybFwiXG4gICAgICAgICAgICAgIFtzcmNdPVwiKGNvbGxhcHNlZE1vZGUgJiYgbG9nb1VybC5jb2xsYXBzZWRfbG9nb191cmwpID8gbG9nb1VybC5jb2xsYXBzZWRfbG9nb191cmwgOiBsb2dvVXJsLm1haW5fbG9nb191cmxcIi8+XG5cbiAgICA8Z3Jhdml0eS1pY29uICpuZ0lmPVwiKHNpemUgPT09ICdtZCcgfHwgc2l6ZSA9PT0gJ3NtJykgJiYgc2hvd0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInbGctMjQnXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgKGNsaWNrKT1cImNsb3NlTWVudSgpXCIvPlxuXG4gICAgPGRpdiAqbmdJZj1cImNvbGxhcHNhYmxlICYmIChzaXplID09PSAneGwnIHx8IHNpemUgPT09ICdsZycpXCIgY2xhc3M9XCJjb2xsYXBzZS1idXR0b25cIiAoY2xpY2spPVwiY29sbGFwc2VNZW51KClcIj5cbiAgICAgIDxncmF2aXR5LWljb24gW3N0eWxlLi0taWNvbi1jb2xvcl09XCIndmFyKC0tYmctYnV0dG9uLWFjdGl2ZS1wcmltYXJ5KSdcIiBbaWNvblNpemVdPVwiJ3NtLTEyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJjb2xsYXBzZWRNb2RlID8gJ2Fycm93LXJpZ2h0JyA6ICdhcnJvdy1sZWZ0J1wiLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGVudFwiPlxuICAgIDxzZWN0aW9uICNtZW51Qm9keSBjbGFzcz1cIm1lbnUtYm9keVwiIFtjbGFzcy5zdWItbWVudV09XCJ2aXNpYmxlU3ViTWVudVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGV2ZWxzXCIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZmlyc3QtbGV2ZWxcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNIZWFkZXJTZWxlY3RlZChoZWFkZXIpXCJcbiAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJoZWFkZXIubGluayB8fCB1bmRlZmluZWRcIiAoY2xpY2spPVwidG9nZ2xlTWVudUhlYWRlcihoZWFkZXIsIGkpXCJcbiAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCIhaGVhZGVyLmNvbGxhcHNlZFwiIFtjbGFzcy5lbXB0eV09XCJoZWFkZXIuaGVhZGVyT3B0aW9ucz8ubGVuZ3RoIDwgMVwiXG4gICAgICAgICAgICAgICAgICAgW3N0eWxlLi0tZXhwYW5kZWQtbWFyZ2luXT1cImhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGggPiAwID8gKDM4ICsgKDM0ICogaGVhZGVyLmhlYWRlck9wdGlvbnM/Lmxlbmd0aCkpICsgJ3B4JyA6ICcwJ1wiPlxuXG4gICAgICAgICAgICA8cCBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXJcIj5cbiAgICAgICAgICAgICAgPGdyYXZpdHktaWNvbiBbc3R5bGUuLS1pY29uLWNvbG9yXT1cIid2YXIoLS1vcHRpb24taWNvbi1jb2xvciknXCIgKm5nSWY9XCJoZWFkZXIuaWNvbiAhPT0gJydcIiBbaWNvbk5hbWVdPVwiaGVhZGVyLmljb25cIiBbaWNvblNpemVdPVwiJ21kLTE2J1wiLz5cbiAgICAgICAgICAgICAgPGdyYXZpdHktYmFkZ2UgY2xhc3M9XCJiYWRnZVwiICpuZ0lmPVwiaGFzT3B0aW9uQmFkZ2UoaGVhZGVyKSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkTW9kZVwiIFtzaXplXT1cIidzbSdcIiBbdHlwZV09XCInbmV1dHJvJ1wiPjwvZ3Jhdml0eS1iYWRnZT5cbiAgICAgICAgICAgICAgICB7eyBoZWFkZXIudGV4dCB9fVxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWNvbGxhcHNlZE1vZGVcIj5cbiAgICAgICAgICAgICAgPGdyYXZpdHktaWNvbiAqbmdJZj1cImhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGggPiAwXCIgW2ljb25TaXplXT1cIidzbS0xMidcIiBbaWNvbk5hbWVdPVwiaGVhZGVyLmNvbGxhcHNlZCA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy11cCdcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFoZWFkZXIuY29sbGFwc2VkICYmIGhlYWRlci5oZWFkZXJPcHRpb25zPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzZWNvbmQtbGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgIFtAZmFkZVNsaWRlXSBbc3R5bGUuLS1zdWJtZW51LW9mZnNldF09XCIoKDE1NiAtIHNjcm9sbFBvc2l0aW9uKSArICg3OCAqIGkpKSArICdweCdcIlxuICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbGxhcHNlZE1vZGUgPyAnZWxldmF0aW9uLXhzJyAgOiAnJ1wiPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9ucy1saXN0XCIgW2NsYXNzLmNvbGxhcHNlZF09XCJjb2xsYXBzZWRNb2RlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBoZWFkZXIuaGVhZGVyT3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIiBbYXR0ci5kYXRhLWN5XT1cIm9wdGlvbi5jeXByZXNzX3RhZ1wiIFtjbGFzcy5zZWxlY3RlZF09XCJvcHRpb24gPT09IHNlbGVjdGVkT3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCIoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09ICdsZycpICYmICBvcHRpb24gPT09IHNlbGVjdGVkT3B0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoc2l6ZSA9PT0gJ3NtJyB8fCBzaXplID09PSAnbWQnKSA/ICdoci1sYWJlbCBtZC1yZWd1bGFyJyA6ICdoci1sYWJlbCBzbS1yZWd1bGFyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIiBbY2xhc3Muc2VsZWN0ZWRdPVwib3B0aW9uID09PSBzZWxlY3RlZE9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm9wdGlvbi5saW5rIHx8IHVuZGVmaW5lZFwiIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uLCBoZWFkZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgIDxncmF2aXR5LWJhZGdlICpuZ0lmPVwib3B0aW9uLmJhZGdlX3RleHQgJiYgKHNpemUgPT09ICd4bCcgfHwgc2l6ZSA9PT0gJ2xnJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJvcHRpb24uYmFkZ2VfdGV4dFwiIFt0eXBlXT1cIiduZXV0cm8nXCIgW3NpemVdPVwiJ3NtJ1wiPjwvZ3Jhdml0eS1iYWRnZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cIihzZWNvbmRhcnlBY3Rpb25zIHx8IHVzZXJJbmZvKSAmJiAoc2l6ZSA9PT0gJ3hsJyB8fCBzaXplID09PSAnbGcnKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJtZW51LWZvb3RlciBlbGV2YXRpb24teHNcIj5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiZm9vdGVyLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNlY29uZGFyeUFjdGlvbnNcIiBjbGFzcz1cInNlY29uZGFyeS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2Ygc2Vjb25kYXJ5QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmNhbGxiYWNrKCk7IGNsZWFyU2VsZWN0aW9uKGFjdGlvbi5jbGVhcl9zZWxlY3Rpb24pXCI+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWljb24gKm5nSWY9XCJhY3Rpb24uaWNvbiAhPT0gJydcIiBbaWNvbk5hbWVdPVwiYWN0aW9uLmljb25cIiBbaWNvblNpemVdPVwiJ21kLTE2J1wiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhclwiPnt7IGFjdGlvbi50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aHIgKm5nSWY9XCJzZWNvbmRhcnlBY3Rpb25zICYmIHVzZXJJbmZvXCIgY2xhc3M9XCJzZXBhcmF0b3ItbGluZVwiPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VySW5mb1wiIGNsYXNzPVwidXNlci1pbmZvLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VySW5mbyBvZiB1c2VySW5mb1wiIGNsYXNzPVwidXNlci1pbmZvXCI+XG4gICAgICAgICAgICA8Z3Jhdml0eS1pY29uICpuZ0lmPVwidXNlckluZm8uaWNvbiAhPT0gJydcIiBjbGFzcz1cImljb25cIiBbaWNvbk5hbWVdPVwidXNlckluZm8uaWNvblwiIFtpY29uU2l6ZV09XCInc20tMTInXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiY29sbGFwc2VkTW9kZSA/IHRvb2x0aXBVc2VySW5mb1RlbXBsYXRlIDogbnVsbFwiIFtjb250ZW50VHlwZV09XCIndGVtcGxhdGUnXCIgW3BsYWNlbWVudF09XCIncmlnaHQnXCIvPlxuXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjb2xsYXBzZWRNb2RlXCIgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyXCI+e3sgdXNlckluZm8uaW5mbyB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVXNlckluZm9UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGdyYXZpdHktdG9vbHRpcC1jb250YWluZXIgW3Rvb2x0aXBTaW1wbGVdPVwie3RleHQ6IHVzZXJJbmZvLmluZm99XCIvPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPCEtLSAtIC0gLSAtIC0gLSAtIC0gLSAtICBNb2JpbGUgUmVzb2x1dGlvbnMgLSAtIC0gLSAtIC0gLSAtIC0gLSAtLT5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwiKGNhcmRCdXR0b25zIHx8IHVzZXJJbmZvKSAmJiAoc2l6ZSA9PT0gJ21kJyB8fCBzaXplID09PSAnc20nKVwiIGNsYXNzPVwibWVudS1mb290ZXItbW9iaWxlXCI+XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImZvb3Rlci1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYXJkQnV0dG9uc1wiIGNsYXNzPVwic2Vjb25kYXJ5LWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1idXR0b25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1idXR0b25zLXJvd1wiICpuZ0Zvcj1cImxldCByb3cgb2YgZ2V0Q2FyZEJ1dHRvbnNSb3dzKClcIj5cbiAgICAgICAgICAgICAgPGdyYXZpdHktY2FyZC1idXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiByb3dcIlxuICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgW29yaWVudGF0aW9uXT1cIid2cnQtY2VudGVyJ1wiXG4gICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiYnV0dG9uLmljb25cIiBbbGFiZWxdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiYnV0dG9uLmNhbGxiYWNrKCk7IGNsZWFyU2VsZWN0aW9uKGJ1dHRvbi5jbGVhcl9zZWxlY3Rpb24pOyBzZWxlY3RlZC5lbWl0KClcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Z3Jhdml0eS1idXR0b24gKm5nSWY9XCJtYWluRm9vdGVyQWN0aW9uXCIgW3NpemVdPVwiJ21kJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbaWNvbk5hbWVdPVwibWFpbkZvb3RlckFjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25Qb3NpdGlvbl09XCInbGVmdCdcIiAoY2xpY2spPVwibWFpbkZvb3RlckFjdGlvbi5jYWxsYmFjaygpXCI+IHt7IG1haW5Gb290ZXJBY3Rpb24udGV4dCB9fVxuICAgICAgICAgIDwvZ3Jhdml0eS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mby1saXN0XCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlckluZm8gb2YgdXNlckluZm9cIiBjbGFzcz1cInVzZXItaW5mb1wiPlxuICAgICAgICAgICAgPGdyYXZpdHktaWNvbiBbaWNvblNpemVdPVwiJ3NtLTEyJ1wiIFtpY29uTmFtZV09XCJ1c2VySW5mby5pY29uXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyXCI+e3sgdXNlckluZm8uaW5mbyB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=