@sarasanalytics-com/design-system 0.0.147 → 0.0.149

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.
Files changed (96) hide show
  1. package/README.md +24 -24
  2. package/esm2022/interfaces/avatar-interface.mjs +1 -1
  3. package/esm2022/interfaces/button-interface.mjs +1 -1
  4. package/esm2022/interfaces/card-carousel-interface.mjs +1 -1
  5. package/esm2022/interfaces/chip-interface.mjs +1 -1
  6. package/esm2022/interfaces/form-layout.interface.mjs +1 -1
  7. package/esm2022/interfaces/grid-interface.mjs +1 -1
  8. package/esm2022/interfaces/guide-card-interface.mjs +1 -1
  9. package/esm2022/interfaces/header-interface.mjs +1 -1
  10. package/esm2022/interfaces/icon-interface.mjs +1 -1
  11. package/esm2022/interfaces/layout-section-interface.mjs +1 -1
  12. package/esm2022/interfaces/left-nav-interface.mjs +1 -1
  13. package/esm2022/interfaces/menu.interface.mjs +1 -1
  14. package/esm2022/interfaces/message-banner.mjs +1 -1
  15. package/esm2022/interfaces/option-interface.mjs +1 -1
  16. package/esm2022/interfaces/scrolling-card-interface.mjs +1 -1
  17. package/esm2022/interfaces/select-interface.mjs +1 -1
  18. package/esm2022/interfaces/status-dot.interface.mjs +1 -1
  19. package/esm2022/interfaces/tab-interface.mjs +1 -1
  20. package/esm2022/interfaces/toast-interface.mjs +1 -1
  21. package/esm2022/interfaces/typography-animation-interface.mjs +1 -1
  22. package/esm2022/lib/accordion/accordion.component.mjs +3 -3
  23. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  24. package/esm2022/lib/button/button.component.mjs +3 -3
  25. package/esm2022/lib/calendar-header/calendar-header.component.mjs +3 -3
  26. package/esm2022/lib/card/card-body/card-body.component.mjs +1 -1
  27. package/esm2022/lib/card/card-custom-header/card-custom-header.component.mjs +1 -1
  28. package/esm2022/lib/card/card-footer-actions/card-footer-actions.component.mjs +3 -3
  29. package/esm2022/lib/card/card-icon/card-icon.component.mjs +1 -1
  30. package/esm2022/lib/card/card-title-actions/card-title-actions.component.mjs +1 -1
  31. package/esm2022/lib/card/card.component.mjs +3 -3
  32. package/esm2022/lib/card/checkbox-card/checkbox-card.component.mjs +3 -3
  33. package/esm2022/lib/card/guide-card/guide-card.component.mjs +3 -3
  34. package/esm2022/lib/card/menu-card/menu-card.component.mjs +3 -3
  35. package/esm2022/lib/card/thumbnail-card/thumbnail-card.component.mjs +3 -3
  36. package/esm2022/lib/card-carousel/card-carousel.component.mjs +3 -3
  37. package/esm2022/lib/categories-nav/categories-nav.component.mjs +3 -3
  38. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  39. package/esm2022/lib/chips/chips.component.mjs +3 -3
  40. package/esm2022/lib/component-library.component.mjs +9 -9
  41. package/esm2022/lib/component-library.service.mjs +1 -1
  42. package/esm2022/lib/dashboard-loader/dashboard-loader.component.mjs +1 -1
  43. package/esm2022/lib/data-grid/data-grid.component.mjs +3 -3
  44. package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
  45. package/esm2022/lib/dialog/dialog.component.mjs +3 -3
  46. package/esm2022/lib/dropdown/category-dropdown/category-dropdown.component.mjs +239 -0
  47. package/esm2022/lib/dropdown/ng-select/ng-select.component.mjs +111 -0
  48. package/esm2022/lib/filter/filter.component.mjs +3 -3
  49. package/esm2022/lib/form-input/form-input.component.mjs +4 -5
  50. package/esm2022/lib/form-select/form-select.component.mjs +3 -3
  51. package/esm2022/lib/grid-cell/grid-cell.component.mjs +10 -10
  52. package/esm2022/lib/header/header.component.mjs +3 -3
  53. package/esm2022/lib/icon/icon.component.mjs +3 -3
  54. package/esm2022/lib/icon/icon.service.mjs +1 -1
  55. package/esm2022/lib/layout-section/layout-section.component.mjs +3 -3
  56. package/esm2022/lib/left-nav/left-nav.component.mjs +3 -3
  57. package/esm2022/lib/list/list.component.mjs +3 -3
  58. package/esm2022/lib/menu/menu-list/menu-item.component.mjs +3 -3
  59. package/esm2022/lib/menu/menu.component.mjs +3 -3
  60. package/esm2022/lib/menu/menu.directive.mjs +1 -1
  61. package/esm2022/lib/message-banner/message-banner.component.mjs +3 -3
  62. package/esm2022/lib/message-banner-v2/message-banner-v2.component.mjs +3 -3
  63. package/esm2022/lib/mini-card/mini-card.component.mjs +3 -3
  64. package/esm2022/lib/page-layout/page-layout.component.mjs +3 -3
  65. package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
  66. package/esm2022/lib/query-builder/query-builder-demo.component.mjs +45 -45
  67. package/esm2022/lib/query-builder/query-builder.component.mjs +3 -3
  68. package/esm2022/lib/query-builder/query-builder.service.mjs +1 -1
  69. package/esm2022/lib/query-builder-formly/query-builder-formly.component.mjs +191 -0
  70. package/esm2022/lib/query-builder-textarea/query-builder-textarea-demo.component.mjs +39 -39
  71. package/esm2022/lib/query-builder-textarea/query-builder-textarea.component.mjs +3 -3
  72. package/esm2022/lib/radio-button/radio-button.component.mjs +3 -3
  73. package/esm2022/lib/scrolling-cards/scrolling-cards.component.mjs +3 -3
  74. package/esm2022/lib/skeleton/skeleton-base.component.mjs +1 -1
  75. package/esm2022/lib/skeleton/skeleton-container.component.mjs +9 -9
  76. package/esm2022/lib/skeleton/skeleton-loader.component.mjs +193 -193
  77. package/esm2022/lib/skeleton/skeleton-presets.mjs +1 -1
  78. package/esm2022/lib/skeleton/skeleton-shapes.component.mjs +1 -1
  79. package/esm2022/lib/spinner/spinner.component.mjs +1 -1
  80. package/esm2022/lib/status-dot/status-dot.component.mjs +17 -17
  81. package/esm2022/lib/stepper/stepper.component.mjs +3 -3
  82. package/esm2022/lib/tabs/tabs.component.mjs +3 -3
  83. package/esm2022/lib/toast/toast.component.mjs +3 -3
  84. package/esm2022/lib/tool-tip/tool-tip.component.mjs +3 -3
  85. package/esm2022/lib/typography-animation/typography-animation.component.mjs +3 -3
  86. package/esm2022/public-api.mjs +4 -1
  87. package/esm2022/utils/validators.mjs +1 -1
  88. package/fesm2022/sarasanalytics-com-design-system.mjs +890 -411
  89. package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
  90. package/lib/data-grid/data-grid.component.d.ts +1 -1
  91. package/lib/dropdown/category-dropdown/category-dropdown.component.d.ts +40 -0
  92. package/lib/dropdown/ng-select/ng-select.component.d.ts +20 -0
  93. package/lib/query-builder-formly/query-builder-formly.component.d.ts +81 -0
  94. package/package.json +1 -1
  95. package/public-api.d.ts +3 -0
  96. package/styles/styles.css +432 -460
@@ -179,7 +179,7 @@ export class LeftNavComponent {
179
179
  });
180
180
  }
181
181
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LeftNavComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: LeftNavComponent, isStandalone: true, selector: "sa-left-nav", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent", hoverEvent: "hoverEvent", onEvent: "onEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-left-nav\" >\r\n\r\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\r\n <div class=\"sa-left-nav-logo\">\r\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\r\n </div>\r\n <div class=\"sa-left-nav-items-container\">\r\n @if(config && config?.items && !!config?.items?.length){\r\n <div class=\"sa-left-nav-items-group\">\r\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\r\n <div class=\"sa-left-nav-items\">\r\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\r\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\r\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\r\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\r\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\r\n\r\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\r\n <!-- <span>{{item.tooltip}}</span> -->\r\n <!-- <span class=\"sa-left-nav-item-icon\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\r\n </div>\r\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"sa-template-item-container\">\r\n @if(config && config.templateItems && !!config.templateItems.length){\r\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\r\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"sa-left-nav-footer\">\r\n @if(config && config.footerItems && !!config.footerItems.length){\r\n <div class=\"sa-left-nav-footer-container\">\r\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\r\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\r\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\r\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\r\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\r\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\r\n @if(item.type === 'AVATAR'){\r\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\r\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\r\n }@else{\r\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\r\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\r\n }\r\n </div>\r\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"sa-left-nav-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s ease}.sa-icon-label{color:var(--grey-200, #D0D5DD);font-size:var(--small-10px, 10px);text-align:center;margin:0;width:62px;line-height:12px;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:block;max-height:24px}.sa-icon-label.active{color:var(--structural-white, #FFF);font-weight:500}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{gap:0;display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}::ng-deep .sa-left-nav-item.active .sa-left-nav-item-icon .sa-icon{color:var(--structural-white, #FFF)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 74px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip{margin-left:8px!important}::ng-deep .sa-left-nav-template-tooltip.mat-mdc-tooltip{margin-left:16px!important}::ng-deep .sa-left-nav-tooltip.mat-mdc-tooltip{position:relative}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip.mat-mdc-tooltip:before{content:\"\";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid var(--mdc-plain-tooltip-container-color, rgba(97, 97, 97, .9))}::ng-deep .sa-left-nav-footer-item .avatar .avatar-img{border:2px solid var(--primary-500);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MenuDirective, selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: LeftNavComponent, isStandalone: true, selector: "sa-left-nav", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent", hoverEvent: "hoverEvent", onEvent: "onEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s ease}.sa-icon-label{color:var(--grey-200, #D0D5DD);font-size:var(--small-10px, 10px);text-align:center;margin:0;width:62px;line-height:12px;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:block;max-height:24px}.sa-icon-label.active{color:var(--structural-white, #FFF);font-weight:500}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{gap:0;display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}::ng-deep .sa-left-nav-item.active .sa-left-nav-item-icon .sa-icon{color:var(--structural-white, #FFF)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 74px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip{margin-left:8px!important}::ng-deep .sa-left-nav-template-tooltip.mat-mdc-tooltip{margin-left:16px!important}::ng-deep .sa-left-nav-tooltip.mat-mdc-tooltip{position:relative}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip.mat-mdc-tooltip:before{content:\"\";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid var(--mdc-plain-tooltip-container-color, rgba(97, 97, 97, .9))}::ng-deep .sa-left-nav-footer-item .avatar .avatar-img{border:2px solid var(--primary-500);display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MenuDirective, selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
183
183
  }
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LeftNavComponent, decorators: [{
185
185
  type: Component,
@@ -191,7 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
191
191
  MenuDirective,
192
192
  SAMenuComponent,
193
193
  IconComponent
194
- ], providers: [IconService], template: "<div class=\"sa-left-nav\" >\r\n\r\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\r\n <div class=\"sa-left-nav-logo\">\r\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\r\n </div>\r\n <div class=\"sa-left-nav-items-container\">\r\n @if(config && config?.items && !!config?.items?.length){\r\n <div class=\"sa-left-nav-items-group\">\r\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\r\n <div class=\"sa-left-nav-items\">\r\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\r\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\r\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\r\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\r\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\r\n\r\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\r\n <!-- <span>{{item.tooltip}}</span> -->\r\n <!-- <span class=\"sa-left-nav-item-icon\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\r\n </div>\r\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"sa-template-item-container\">\r\n @if(config && config.templateItems && !!config.templateItems.length){\r\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\r\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"sa-left-nav-footer\">\r\n @if(config && config.footerItems && !!config.footerItems.length){\r\n <div class=\"sa-left-nav-footer-container\">\r\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\r\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\r\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\r\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\r\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\r\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\r\n @if(item.type === 'AVATAR'){\r\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\r\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\r\n }@else{\r\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\r\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\r\n }\r\n </div>\r\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"sa-left-nav-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s ease}.sa-icon-label{color:var(--grey-200, #D0D5DD);font-size:var(--small-10px, 10px);text-align:center;margin:0;width:62px;line-height:12px;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:block;max-height:24px}.sa-icon-label.active{color:var(--structural-white, #FFF);font-weight:500}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{gap:0;display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}::ng-deep .sa-left-nav-item.active .sa-left-nav-item-icon .sa-icon{color:var(--structural-white, #FFF)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 74px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip{margin-left:8px!important}::ng-deep .sa-left-nav-template-tooltip.mat-mdc-tooltip{margin-left:16px!important}::ng-deep .sa-left-nav-tooltip.mat-mdc-tooltip{position:relative}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip.mat-mdc-tooltip:before{content:\"\";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid var(--mdc-plain-tooltip-container-color, rgba(97, 97, 97, .9))}::ng-deep .sa-left-nav-footer-item .avatar .avatar-img{border:2px solid var(--primary-500);display:flex;align-items:center;justify-content:center}\n"] }]
194
+ ], providers: [IconService], template: "<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>", styles: [".sa-left-nav{height:calc(100vh - 16px);padding:8px;display:flex}.sa-left-nav-logo{display:flex;align-items:center;justify-content:center;width:40px;margin:auto;padding:5px 0;border-bottom:1px #fff solid;min-height:48px}.sa-logo{height:40px;width:20px;display:block;margin:auto;background-position:center;background:url('data:image/svg+xml,<svg width=\"20\" height=\"38\" viewBox=\"0 0 20 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.554 13.549c-.05 0-.101 0-.152-.003v.003s-.541-.013-2.395-.024c-3.047-.026-4.175 1.237-4.532 1.816H8.47c-.26.49-.332 1.061-.202 1.603l-.004.01c.02.13.303 1.624 2.762 1.573 1.971-.042 3.15-.165 3.626-.225a3.881 3.881 0 0 1 1.815.004c.596.145 1.152.43 1.623.831.472.402.846.91 1.093 1.484a4.156 4.156 0 0 1-.158 3.617 4.037 4.037 0 0 1-1.22 1.377 3.883 3.883 0 0 1-3.498.516c-.29-.068-.68-.169-1.207-.315-3.167-.789-4.906 4.081-4.906 4.081l-.006.005a4.069 4.069 0 0 1-1.244 1.785 3.926 3.926 0 0 1-1.968.866 3.888 3.888 0 0 1-2.12-.307c-.667-.3-1.24-.78-1.658-1.39a4.153 4.153 0 0 1-.273-4.216 4.033 4.033 0 0 1 1.463-1.6 3.904 3.904 0 0 1 2.408-.576c.44-.004 1.353 0 3.19.032 3.136.057 3.556-1.442 3.596-2.056 0-.058-.003-.116-.003-.173v-.083a2.288 2.288 0 0 0-.448-1.238 2.204 2.204 0 0 0-1.048-.768c-1.543-.684-5.413-.377-5.413-.377v-.005a3.893 3.893 0 0 1-1.805-.345 3.978 3.978 0 0 1-1.33-.985 4.093 4.093 0 0 1-.829-1.453 4.162 4.162 0 0 1 .308-3.277 4.04 4.04 0 0 1 1.084-1.264c.443-.34.95-.58 1.49-.707a3.882 3.882 0 0 1 1.643-.03c1.257.082 2.52.034 3.768-.144 2.02-.254 2.48-1.434 2.58-2.079V9.48c0-.805.233-1.592.67-2.261a3.996 3.996 0 0 1 1.782-1.5 3.886 3.886 0 0 1 2.296-.23c.77.156 1.478.544 2.034 1.113.556.57.934 1.294 1.087 2.084.154.789.075 1.607-.226 2.35a4.05 4.05 0 0 1-1.463 1.827 3.906 3.906 0 0 1-2.207.686h.003ZM4.476 9.043a3.906 3.906 0 0 1-2.207-.686A4.05 4.05 0 0 1 .806 6.531 4.161 4.161 0 0 1 .58 4.18a4.1 4.1 0 0 1 1.087-2.084A3.945 3.945 0 0 1 3.7.982a3.885 3.885 0 0 1 2.295.232c.726.308 1.347.83 1.783 1.499.437.67.67 1.456.67 2.26a4.12 4.12 0 0 1-1.164 2.878 3.926 3.926 0 0 1-2.809 1.192Z\" fill=\"%23fff\"/><path d=\"M15.531 37.095c2.194 0 3.973-1.822 3.973-4.07 0-2.246-1.779-4.068-3.973-4.068s-3.972 1.822-3.972 4.069 1.779 4.069 3.972 4.069Z\" fill=\"%23fff\"/></svg>') no-repeat}.sa-left-nav-container{height:inherit;width:64px;background-color:var(--primary-800, #42307D);border-radius:var(--small-8px, 8px) var(--small-8px, 8px);padding:16px 6px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-evenly}.sa-left-nav-container.menu-attached{border-radius:var(--small-8px, 8px) 0 0 var(--small-8px, 8px)}.sa-left-nav-items{flex:1;overflow-y:auto}.sa-left-nav-items-container{padding:var(--medium-28px) 0;height:100%;overflow:auto;box-sizing:border-box}.sa-left-nav-items-group{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.sa-left-nav-items{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;align-self:stretch}.sa-left-nav-item,.sa-left-nav-footer-item .footer-item-icon{height:40px;width:40px;margin:0 auto;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s ease}.sa-icon-label{color:var(--grey-200, #D0D5DD);font-size:var(--small-10px, 10px);text-align:center;margin:0;width:62px;line-height:12px;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;display:block;max-height:24px}.sa-icon-label.active{color:var(--structural-white, #FFF);font-weight:500}::-webkit-scrollbar{display:none}.sa-left-nav-footer-item{gap:0;display:flex;flex-direction:column;align-items:center}.sa-left-nav-item:hover,.sa-left-nav-item.active,.sa-left-nav-footer-item .footer-item-icon.active,.sa-left-nav-footer-item .footer-item-icon:hover{background-color:var(--primary-500)}::ng-deep .sa-left-nav-item.active .sa-left-nav-item-icon .sa-icon{color:var(--structural-white, #FFF)}.sa-left-nav-item-name,.sa-left-nav-item-icon,.sa-left-nav-footer-icon,.sa-left-nav-footer-name{height:24px;width:24px;display:block}.sa-left-nav-item-name,mn.sa-left-nav-footer-name{display:flex;justify-content:center;align-items:center}.sa-left-nav-footer{min-height:fit-content;border-top:1px solid #fff}.sa-left-nav-content{width:calc(100% - 74px)}.sa-template-item-container{margin-bottom:.8rem;display:flex;justify-content:center}.sa-left-nav-footer-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-16px, 16px);align-self:stretch;margin-top:var(--small-16px, 16px)}.sa-template-item-container{display:flex;flex-direction:column;align-items:center;gap:var(--small-8px, 8px)}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip{margin-left:8px!important}::ng-deep .sa-left-nav-template-tooltip.mat-mdc-tooltip{margin-left:16px!important}::ng-deep .sa-left-nav-tooltip.mat-mdc-tooltip{position:relative}::ng-deep .mat-mdc-tooltip-panel-right .sa-left-nav-tooltip.mat-mdc-tooltip:before{content:\"\";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid var(--mdc-plain-tooltip-container-color, rgba(97, 97, 97, .9))}::ng-deep .sa-left-nav-footer-item .avatar .avatar-img{border:2px solid var(--primary-500);display:flex;align-items:center;justify-content:center}\n"] }]
195
195
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], propDecorators: { config: [{
196
196
  type: Input,
197
197
  args: ['config']
@@ -245,4 +245,4 @@ const data = {
245
245
  tooltip: ''
246
246
  }]
247
247
  };
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9sZWZ0LW5hdi9sZWZ0LW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xlZnQtbmF2L2xlZnQtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBa0IsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRTNKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFpQm5ELE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCLFlBQW9CLEtBQXFCLEVBQVUsTUFBYztRQUE3QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFmakUsdURBQXVEO1FBQ3ZELG1CQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLHFDQUFxQztRQUM3QixzQkFBaUIsR0FBeUQsSUFBSSxDQUFDO1FBSXBFLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVFqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsQ0FBQztRQUVELDRGQUE0RjtRQUM1RixvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELElBQUk7SUFDTixDQUFDO0lBRUQsZUFBZTtJQUVmLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEQsd0JBQXdCO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRS9ELGlEQUFpRDtZQUNqRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLHFEQUFxRDtnQkFDckQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLGVBQWUsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztnQkFFRCwwRkFBMEY7Z0JBQzFGLGlHQUFpRztnQkFDakcsdUZBQXVGO2dCQUV2RixpRUFBaUU7Z0JBQ2pFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3hFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7b0JBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7d0JBQ3pDLHVFQUF1RTt3QkFDdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDOUUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBa0IsRUFBRSxLQUFhLEVBQUUsUUFBYSxJQUFJO1FBRWpFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLEtBQUs7WUFDTCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLElBQUk7U0FDTCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUV2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBa0IsRUFBRSxLQUFhLEVBQUUsUUFBYSxJQUFJO1FBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLEtBQUs7WUFDTCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsSUFBa0IsRUFBRSxLQUFhLEVBQUUsUUFBYSxJQUFJLEVBQUUsT0FBbUI7UUFDeEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsS0FBSztZQUNMLElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSTtTQUNMLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsSUFBa0IsRUFBRSxLQUFhLEVBQUUsUUFBYSxJQUFJLEVBQUUsT0FBbUI7UUFDckYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsS0FBSztZQUNMLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsSUFBSTtTQUNMLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLElBQVM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsS0FBSztZQUNMLElBQUk7WUFDSixJQUFJLEVBQUUscUJBQXFCO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVUsRUFBRSxJQUFrQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixLQUFLO1lBQ0wsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSTtnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDcEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxLQUEyQyxFQUFFLFFBQTBCLEVBQUUsSUFBa0IsRUFBRSxLQUFhO1FBQ3ZILDREQUE0RDtRQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVE7WUFDUixJQUFJO1lBQ0osS0FBSztZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsS0FBMkMsRUFBRSxRQUEwQixFQUFFLElBQWtCLEVBQUUsS0FBYTtRQUN2SCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixJQUFJLEVBQUUsZUFBZTtZQUNyQixRQUFRO1lBQ1IsSUFBSTtZQUNKLEtBQUs7WUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcE1VLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDZLQUpoQixDQUFDLFdBQVcsQ0FBQywrQ0M1QjFCLHdpSkFnRU0sczRLRDVDRixZQUFZLDBQQUNaLGVBQWUsc0tBQ2YsYUFBYSxvTUFDYixnQkFBZ0IsNlRBQ2hCLGFBQWE7OzJGQVFKLGdCQUFnQjtrQkFoQjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixhQUFhO3FCQUNkLGFBQ1UsQ0FBQyxXQUFXLENBQUM7d0dBV1AsTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNPLFVBQVU7c0JBQS9CLE1BQU07dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUEvQixNQUFNO3VCQUFDLFlBQVk7Z0JBQ0QsT0FBTztzQkFBekIsTUFBTTt1QkFBQyxTQUFTOztBQWdNbkIsTUFBTSxJQUFJLEdBQWE7SUFDckIsS0FBSyxFQUFFLENBQUM7WUFDTixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxNQUFNO1NBQ2IsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxFQUFFO1NBQ1QsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7SUFDRixXQUFXLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxhQUFhO1NBQ3ZCLEVBQUU7WUFDRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmLEVBQUU7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBzaWduYWwsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBNYXRUb29sdGlwLFxyXG4gIE1hdFRvb2x0aXBNb2R1bGVcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL21lbnUvbWVudS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTQU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSUxlZnROYXYsIElMZWZ0TmF2Qmx1ckV2ZW50LCBJTGVmdE5hdkNsaWNrRXZlbnQsIElMZWZ0TmF2SXRlbSwgSUxlZnROYXZMb2dvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9sZWZ0LW5hdi1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJTWVudSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWVudS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uL2ljb24vaWNvbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYS1sZWZ0LW5hdicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBBdmF0YXJDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50LFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1lbnVEaXJlY3RpdmUsXHJcbiAgICBTQU1lbnVDb21wb25lbnQsXHJcbiAgICBJY29uQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtJY29uU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xlZnQtbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGVmdC1uYXYuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIExlZnROYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvLyBTaWduYWwgdG8gdHJhY2sgaWYgYSBtZW51IGlzIGN1cnJlbnRseSBhdHRhY2hlZC9vcGVuXHJcbiAgaXNNZW51QXR0YWNoZWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gIFxyXG4gIC8vIFRyYWNrIHdoaWNoIG1lbnUgaXMgY3VycmVudGx5IG9wZW5cclxuICBwcml2YXRlIGFjdGl2ZU1lbnVJdGVtUmVmOiB7IGl0ZW1UeXBlOiAnbmF2JyB8ICdmb290ZXInLCBpbmRleDogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoJ2NvbmZpZycpIGNvbmZpZzogSUxlZnROYXY7XHJcbiAgQE91dHB1dCgnY2xpY2tFdmVudCcpIGNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxJTGVmdE5hdkNsaWNrRXZlbnQ+O1xyXG4gIEBPdXRwdXQoJ2hvdmVyRXZlbnQnKSBob3ZlckV2ZW50OiBFdmVudEVtaXR0ZXI8SUxlZnROYXZCbHVyRXZlbnQ+O1xyXG4gIEBPdXRwdXQoJ29uRXZlbnQnKSBvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgYWN0aXZlUm91dGVTZXJ2aWNlOiBBY3RpdmF0ZWRSb3V0ZTtcclxuICAvLyBASW5qZWN0KFJvdXRlcikgcm91dGVyU2VydmljZTogUm91dGVyO1xyXG5cclxuICBwcml2YXRlIGFjdGl2ZUl0ZW06IElMZWZ0TmF2SXRlbSB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aGlzLmhvdmVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY29uZmlnLml0ZW1zKTtcclxuICAgIGlmICghdGhpcy5jb25maWcuZm9vdGVySXRlbXMpIHtcclxuICAgICAgdGhpcy5jb25maWcuZm9vdGVySXRlbXMgPSBkYXRhLmZvb3Rlckl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoaXMgbG9naWMgc2hvdWxkIG5vdCBiZSBhcyBwYXJ0IG9mIHRoZSBsaWJyYXJ5LiBJdCBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24uXHJcbiAgICAvLyBpZiAodGhpcy5jb25maWc/Lml0ZW1zPy5sZW5ndGgpIHtcclxuICAgIC8vICAgdGhpcy5vbk5hdkl0ZW1DbGljayh0aGlzLmNvbmZpZy5pdGVtc1swXSwgMCk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjb25maWcnXSAmJiAhY2hhbmdlc1snY29uZmlnJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgLy8gSGFuZGxlIGNvbmZpZyBjaGFuZ2VzXHJcbiAgICAgIGNvbnNvbGUubG9nKCdDb25maWcgY2hhbmdlZDonLCBjaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBcclxuICAgICAgLy8gVXBkYXRlIGFueSBkZXJpdmVkIHN0YXRlIG9yIHRyaWdnZXIgVUkgdXBkYXRlc1xyXG4gICAgICBpZiAodGhpcy5jb25maWc/Lml0ZW1zKSB7XHJcbiAgICAgICAgLy8gRmluZCBhbmQgbWFpbnRhaW4gYWN0aXZlIHN0YXRlIHdoZW4gY29uZmlnIGNoYW5nZXNcclxuICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLmNvbmZpZy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XHJcbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW1JbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0gPSB0aGlzLmNvbmZpZy5pdGVtc1thY3RpdmVJdGVtSW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvLyBUbyBlbnN1cmUgQW5ndWxhcidzIGNoYW5nZSBkZXRlY3Rpb24gcHJvcGVybHkgcHJvcGFnYXRlcyBjaGFuZ2VzIHRvIHRoZSBtZW51IGRpcmVjdGl2ZSxcclxuICAgICAgICAvLyB3ZSBjYW4gdXNlIHRoZSBPYmplY3QuYXNzaWduIGFwcHJvYWNoIHdoaWNoIHByZXNlcnZlcyBvYmplY3QgcmVmZXJlbmNlcyBidXQgdXBkYXRlcyBwcm9wZXJ0aWVzXHJcbiAgICAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIEFuZ3VsYXIncyBPblB1c2ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBpbiBjaGlsZCBjb21wb25lbnRzXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gVXBkYXRlIG1lbnUgb2JqZWN0cyBpbiBpdGVtcyB3aXRob3V0IGNoYW5naW5nIHRoZWlyIHJlZmVyZW5jZXNcclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVNZW51SXRlbVJlZiAmJiB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmLml0ZW1UeXBlID09PSAnbmF2Jykge1xyXG4gICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmLmluZGV4O1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLml0ZW1zW2FjdGl2ZUluZGV4XT8ubWVudSkge1xyXG4gICAgICAgICAgICAvLyBVc2luZyBhIGNvbnNvbGUubG9nIHRvIHZpc3VhbGx5IHZlcmlmeSB0aGUgYXBwcm9hY2ggaXMgYmVpbmcgYXBwbGllZFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnTWFpbnRhaW5pbmcgbWVudSByZWZlcmVuY2UgZm9yIGFjdGl2ZSBuYXYgaXRlbTonLCBhY3RpdmVJbmRleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJdGVtQWN0aXZlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZUl0ZW0pIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5pdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtID0gdGhpcy5jb25maWcuaXRlbXNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25OYXZJdGVtQ2xpY2soaXRlbTogSUxlZnROYXZJdGVtLCBpbmRleDogbnVtYmVyLCBldmVudDogYW55ID0gbnVsbCkge1xyXG5cclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcclxuICAgICAgZXZlbnQsXHJcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9DTElDSycsXHJcbiAgICAgIGl0ZW1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jb25maWcuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUgPSBmYWxzZSk7XHJcbiAgICB0aGlzLmNvbmZpZy5pdGVtc1tpbmRleF0uYWN0aXZlID0gdHJ1ZTtcclxuICAgIFxyXG4gICAgaWYgKCFpdGVtLmRpc2FibGUgJiYgaXRlbS5wYXRoKSB7XHJcbiAgICAgIHRoaXMuc2V0SXRlbUFjdGl2ZShpbmRleCk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnBhdGhdKVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkV2ZW50LmVtaXQoeyBpdGVtLCBpbmRleCwgZXZlbnQgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZvb3Rlckl0ZW1DbGljayhpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkgPSBudWxsKSB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICB0eXBlOiAnRk9PVEVSX0lURU1fQ0xJQ0snLFxyXG4gICAgICBpdGVtXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25Gb290ZXJJdGVtQmx1cihpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkgPSBudWxsLCB0b29sdGlwOiBNYXRUb29sdGlwKSB7XHJcbiAgICB0aGlzLmhvdmVyRXZlbnQuZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICB0eXBlOiAnRk9PVEVSX0lURU1fSE9WRVInLFxyXG4gICAgICBpdGVtXHJcbiAgICB9KTtcclxuICAgIGlmICh0b29sdGlwKSB7XHJcbiAgICAgIHRvb2x0aXAuc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbk5hdkl0ZW1CbHVyKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwsIHRvb2x0aXA6IE1hdFRvb2x0aXApIHtcclxuICAgIHRoaXMuaG92ZXJFdmVudC5lbWl0KHtcclxuICAgICAgZXZlbnQsXHJcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9IT1ZFUicsXHJcbiAgICAgIGl0ZW1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRvb2x0aXApIHtcclxuICAgICAgdG9vbHRpcC5zaG93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRlbXBsYXRlSXRlbUNsaWNrKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xyXG4gICAgICBldmVudCxcclxuICAgICAgaXRlbSxcclxuICAgICAgdHlwZTogJ1RFTVBMQVRFX0lURU1fQ0xJQ0snXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTWVudUV2ZW50KGV2ZW50OiBhbnkpe1xyXG4gICAgY29uc29sZS5sb2coJ29uTWVudUV2ZW50JywgZXZlbnQpXHJcbiAgfVxyXG5cclxuICBvbkxvZ29DbGljayhldmVudDogYW55LCBsb2dvOiBJTGVmdE5hdkxvZ28pIHtcclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcclxuICAgICAgZXZlbnQsXHJcbiAgICAgIHR5cGU6ICdMT0dPX0NMSUNLJyxcclxuICAgICAgaXRlbToge1xyXG4gICAgICAgIC4uLmxvZ28sXHJcbiAgICAgICAgdGl0bGU6IGxvZ28uYWx0VGV4dFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXIgZm9yIHRoZSBvbkF0dGFjaGVkIGV2ZW50IGZyb20gdGhlIE1lbnVEaXJlY3RpdmVcclxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzYU1lbnUgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGFuIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IGRhdGEgY29udGFpbmluZyB0aGUgZWxlbWVudCBhbmQgbWVudSBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIGl0ZW1UeXBlIFRoZSB0eXBlIG9mIGl0ZW0gKCduYXYnIG9yICdmb290ZXInKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuYXYvZm9vdGVyIGl0ZW0gdGhhdCB0aGUgbWVudSBpcyBhdHRhY2hlZCB0b1xyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gaW4gdGhlIGl0ZW1zIGFycmF5XHJcbiAgICovXHJcbiAgb25NZW51QXR0YWNoZWQoZXZlbnQ6IHsgZWxlbWVudDogRWxlbWVudFJlZiwgbWVudTogSU1lbnUgfSwgaXRlbVR5cGU6ICduYXYnIHwgJ2Zvb3RlcicsIGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy8gRW1pdCBhbiBldmVudCB0aGF0IGNhbiBiZSBjYXB0dXJlZCBieSBwYXJlbnQgYXBwbGljYXRpb25zXHJcbiAgICB0aGlzLmlzTWVudUF0dGFjaGVkLnNldCh0cnVlKTtcclxuICAgIFxyXG4gICAgLy8gVHJhY2sgd2hpY2ggbWVudSBpcyBvcGVuXHJcbiAgICB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmID0geyBpdGVtVHlwZSwgaW5kZXggfTtcclxuICAgIFxyXG4gICAgdGhpcy5vbkV2ZW50LmVtaXQoe1xyXG4gICAgICB0eXBlOiAnTUVOVV9BVFRBQ0hFRCcsXHJcbiAgICAgIGl0ZW1UeXBlLFxyXG4gICAgICBpdGVtLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgZWxlbWVudDogZXZlbnQuZWxlbWVudCxcclxuICAgICAgbWVudTogZXZlbnQubWVudVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVyIGZvciB0aGUgb25EZXRhY2hlZCBldmVudCBmcm9tIHRoZSBNZW51RGlyZWN0aXZlXHJcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgbWVudSBpcyBjbG9zZWQvZGV0YWNoZWRcclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IGRhdGEgY29udGFpbmluZyB0aGUgZWxlbWVudCBhbmQgbWVudSBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIGl0ZW1UeXBlIFRoZSB0eXBlIG9mIGl0ZW0gKCduYXYnIG9yICdmb290ZXInKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuYXYvZm9vdGVyIGl0ZW0gdGhhdCB0aGUgbWVudSB3YXMgYXR0YWNoZWQgdG9cclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIGluIHRoZSBpdGVtcyBhcnJheVxyXG4gICAqL1xyXG4gIG9uTWVudURldGFjaGVkKGV2ZW50OiB7IGVsZW1lbnQ6IEVsZW1lbnRSZWYsIG1lbnU6IElNZW51IH0sIGl0ZW1UeXBlOiAnbmF2JyB8ICdmb290ZXInLCBpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNNZW51QXR0YWNoZWQuc2V0KGZhbHNlKTtcclxuICAgIFxyXG4gICAgLy8gQ2xlYXIgdGhlIGFjdGl2ZSBtZW51IHJlZmVyZW5jZVxyXG4gICAgdGhpcy5hY3RpdmVNZW51SXRlbVJlZiA9IG51bGw7XHJcbiAgICBcclxuICAgIHRoaXMub25FdmVudC5lbWl0KHtcclxuICAgICAgdHlwZTogJ01FTlVfREVUQUNIRUQnLFxyXG4gICAgICBpdGVtVHlwZSxcclxuICAgICAgaXRlbSxcclxuICAgICAgaW5kZXgsXHJcbiAgICAgIGVsZW1lbnQ6IGV2ZW50LmVsZW1lbnQsXHJcbiAgICAgIG1lbnU6IGV2ZW50Lm1lbnVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuY29uc3QgZGF0YTogSUxlZnROYXYgPSB7XHJcbiAgaXRlbXM6IFt7XHJcbiAgICB0aXRsZTogJ0hvbWUnLFxyXG4gICAgaWNvbjogJycsXHJcbiAgICBkaXNhYmxlOiBmYWxzZSxcclxuICAgIHRvb2x0aXA6ICcnLFxyXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxyXG4gICAgcGF0aDogJ2hvbWUnXHJcbiAgfSwge1xyXG4gICAgdGl0bGU6ICdQcmljaW5nJyxcclxuICAgIGljb246ICcnLFxyXG4gICAgZGlzYWJsZTogdHJ1ZSxcclxuICAgIHRvb2x0aXA6ICcnLFxyXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxyXG4gICAgcGF0aDogJydcclxuICB9LCB7XHJcbiAgICB0aXRsZTogJ1NldHRpbmcnLFxyXG4gICAgaWNvbjogJ3NldHRpbmdzT3V0bGluZWQnLFxyXG4gICAgZGlzYWJsZTogdHJ1ZSxcclxuICAgIHRvb2x0aXA6ICdjb21pbmcgc29vbicsXHJcbiAgICByZWxhdGl2ZVBhdGg6IHRydWUsXHJcbiAgICBwYXRoOiAnJ1xyXG4gIH1dLFxyXG4gIGZvb3Rlckl0ZW1zOiBbe1xyXG4gICAgdGl0bGU6ICdIZWxwJyxcclxuICAgIGljb246ICdjaGF0SGVscE91dGxpbmVkJyxcclxuICAgIGRpc2FibGU6IHRydWUsXHJcbiAgICB0b29sdGlwOiAnY29taW5nIHNvb24nXHJcbiAgfSwge1xyXG4gICAgdGl0bGU6ICdOYW1lJyxcclxuICAgIGRpc2FibGU6IGZhbHNlLFxyXG4gICAgdG9vbHRpcDogJycsXHJcbiAgICB0eXBlOiAnQVZBVEFSJ1xyXG4gIH0sIHtcclxuICAgIHRpdGxlOiAnQ2hldnJvbicsXHJcbiAgICBpY29uOiAnZG91YmxlRG93bk91dGxpbmVkJyxcclxuICAgIGRpc2FibGU6IHRydWUsXHJcbiAgICB0b29sdGlwOiAnJ1xyXG4gIH1dXHJcbn0iLCI8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXZcIiA+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWNvbnRhaW5lciB7e2lzTWVudUF0dGFjaGVkKCkgPyAnbWVudS1hdHRhY2hlZCcgOiAnJ319XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWxvZ29cIj5cclxuICAgICAgICAgICAgPHNhLWljb24gKGNsaWNrKT1cIm9uTG9nb0NsaWNrKCRldmVudCwgY29uZmlnPy5sb2dvKVwiIFttYXRUb29sdGlwXT1cImNvbmZpZz8ubG9nbz8udG9vbHRpcFwiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiIG1hdFRvb2x0aXBDbGFzcz1cInNhLWxlZnQtbmF2LXRvb2x0aXBcIiBbaWNvbl09XCJjb25maWc/LmxvZ28/Lmljb25cIiBbc2l6ZV09XCJjb25maWc/LmxvZ28/Lmljb25TaXplXCI+PC9zYS1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgQGlmKGNvbmZpZyAmJiBjb25maWc/Lml0ZW1zICYmICEhY29uZmlnPy5pdGVtcz8ubGVuZ3RoKXtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1zLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZz8uaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1cIiBbbmdDbGFzc109XCJpdGVtLmFjdGl2ZSA/ICdhY3RpdmUnIDogJycgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NhTWVudV09XCJpdGVtLm1lbnVcIiAob25FdmVudCk9XCJvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkF0dGFjaGVkKT1cIm9uTWVudUF0dGFjaGVkKCRldmVudCwgJ25hdicsIGl0ZW0sIGkpXCIgKG9uRGV0YWNoZWQpPVwib25NZW51RGV0YWNoZWQoJGV2ZW50LCAnbmF2JywgaXRlbSwgaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZJdGVtQ2xpY2soaXRlbSwgaSwgJGV2ZW50KVwiIChtb3VzZWVudGVyKT1cIm9uTmF2SXRlbUJsdXIoaXRlbSxpLCRldmVudCx0b29sdGlwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0b29sdGlwPVwibWF0VG9vbHRpcFwiIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCIgbWF0VG9vbHRpcENsYXNzPVwic2EtbGVmdC1uYXYtdG9vbHRpcFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtLWljb25cIiBbaWNvbl09XCJpdGVtLmljb25cIiBbc2l6ZV09XCJpdGVtLmljb25TaXplIHx8ICcyNCdcIiBbY29sb3JdPVwiaXRlbS5hY3RpdmUgPyBpdGVtLmNvbG9yIDogJ3ZhcigtLWdyZXktMjAwKSdcIj48L3NhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+e3tpdGVtLnRvb2x0aXB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtLWljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgaXRlbS5pY29uX3VybCArICcpJyB9XCI+PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic2EtaWNvbi1sYWJlbFwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIj57e2l0ZW0uaWNvbkxhYmVsfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtdGVtcGxhdGUtaXRlbS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgQGlmKGNvbmZpZyAmJiBjb25maWcudGVtcGxhdGVJdGVtcyAmJiAhIWNvbmZpZy50ZW1wbGF0ZUl0ZW1zLmxlbmd0aCl7XHJcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9uVGVtcGxhdGVJdGVtQ2xpY2soJGV2ZW50LCBpLCBpdGVtKVwiIGNsYXNzPVwic2EtdGVtcGxhdGUtaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NOYW1lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLnRlbXBsYXRlSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxzYS1pY29uIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCIgbWF0VG9vbHRpcENsYXNzPVwic2EtbGVmdC1uYXYtdG9vbHRpcCBzYS1sZWZ0LW5hdi10ZW1wbGF0ZS10b29sdGlwXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgW3NpemVdPVwiaXRlbS5pY29uU2l6ZSB8fCAnMjQnXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj48L3NhLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3RlclwiPlxyXG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZy5mb290ZXJJdGVtcyAmJiAhIWNvbmZpZy5mb290ZXJJdGVtcy5sZW5ndGgpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pdGVtXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc05hbWVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWcuZm9vdGVySXRlbXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Gb290ZXJJdGVtQ2xpY2soaXRlbSwgaSwgJGV2ZW50KVwiIChvbkV2ZW50KT1cIm9uRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NhTWVudV09XCJpdGVtLm1lbnVcIiAob25BdHRhY2hlZCk9XCJvbk1lbnVBdHRhY2hlZCgkZXZlbnQsICdmb290ZXInLCBpdGVtLCBpKVwiIChvbkRldGFjaGVkKT1cIm9uTWVudURldGFjaGVkKCRldmVudCwgJ2Zvb3RlcicsIGl0ZW0sIGkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Gb290ZXJJdGVtQmx1cihpdGVtLGksJGV2ZW50LHRvb2x0aXApXCIgI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaXRlbS50b29sdGlwXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIiBtYXRUb29sdGlwQ2xhc3M9XCJzYS1sZWZ0LW5hdi10b29sdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihpdGVtLnR5cGUgPT09ICdBVkFUQVInKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1uYW1lXCI+RVQ8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtYXZhdGFyIFthbHRUZXh0XT1cIml0ZW0uYWx0VGV4dFwiIFtpbWFnZVBhdGhdPVwiJydcIiBzaXplPVwiZXh0cmEtc21hbGxcIj48L3NhLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfUBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pY29uXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgc2l6ZT1cIjI0XCIgY29sb3I9XCJ3aGl0ZVwiPjwvc2EtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzaSBzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpdGVtLmljb25fdXJsIHx8ICcnICsgJyknIH1cIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzYS1pY29uLWxhYmVsXCIgW25nQ2xhc3NdPVwiaXRlbS5hY3RpdmUgPyAnYWN0aXZlJyA6ICcnIFwiPnt7aXRlbS5pY29uTGFiZWx9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWNvbnRlbnRcIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9sZWZ0LW5hdi9sZWZ0LW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xlZnQtbmF2L2xlZnQtbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBa0IsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRTNKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsZ0VBQWdFO0FBRWhFLE9BQU8sRUFFTCxnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFpQm5ELE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCLFlBQW9CLEtBQXFCLEVBQVUsTUFBYztRQUE3QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFmakUsdURBQXVEO1FBQ3ZELG1CQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLHFDQUFxQztRQUM3QixzQkFBaUIsR0FBeUQsSUFBSSxDQUFDO1FBSXBFLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUs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LElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxNQUFNO1NBQ2IsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxFQUFFO1NBQ1QsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsYUFBYTtZQUN0QixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7SUFDRixXQUFXLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxhQUFhO1NBQ3ZCLEVBQUU7WUFDRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmLEVBQUU7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0NBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG4vLyBpbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIE1hdFRvb2x0aXAsXG4gIE1hdFRvb2x0aXBNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi4vbWVudS9tZW51LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTQU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IElMZWZ0TmF2LCBJTGVmdE5hdkJsdXJFdmVudCwgSUxlZnROYXZDbGlja0V2ZW50LCBJTGVmdE5hdkl0ZW0sIElMZWZ0TmF2TG9nbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbGVmdC1uYXYtaW50ZXJmYWNlJztcbmltcG9ydCB7IElNZW51IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9tZW51LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uL2ljb24vaWNvbi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhLWxlZnQtbmF2JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1lbnVEaXJlY3RpdmUsXG4gICAgU0FNZW51Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbSWNvblNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVmdC1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGVmdC1uYXYuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTGVmdE5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgLy8gU2lnbmFsIHRvIHRyYWNrIGlmIGEgbWVudSBpcyBjdXJyZW50bHkgYXR0YWNoZWQvb3BlblxuICBpc01lbnVBdHRhY2hlZCA9IHNpZ25hbChmYWxzZSk7XG4gIFxuICAvLyBUcmFjayB3aGljaCBtZW51IGlzIGN1cnJlbnRseSBvcGVuXG4gIHByaXZhdGUgYWN0aXZlTWVudUl0ZW1SZWY6IHsgaXRlbVR5cGU6ICduYXYnIHwgJ2Zvb3RlcicsIGluZGV4OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ2NvbmZpZycpIGNvbmZpZzogSUxlZnROYXY7XG4gIEBPdXRwdXQoJ2NsaWNrRXZlbnQnKSBjbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8SUxlZnROYXZDbGlja0V2ZW50PjtcbiAgQE91dHB1dCgnaG92ZXJFdmVudCcpIGhvdmVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxJTGVmdE5hdkJsdXJFdmVudD47XG4gIEBPdXRwdXQoJ29uRXZlbnQnKSBvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBhY3RpdmVSb3V0ZVNlcnZpY2U6IEFjdGl2YXRlZFJvdXRlO1xuICAvLyBASW5qZWN0KFJvdXRlcikgcm91dGVyU2VydmljZTogUm91dGVyO1xuXG4gIHByaXZhdGUgYWN0aXZlSXRlbTogSUxlZnROYXZJdGVtIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmhvdmVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNvbmZpZy5pdGVtcyk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5mb290ZXJJdGVtcykge1xuICAgICAgdGhpcy5jb25maWcuZm9vdGVySXRlbXMgPSBkYXRhLmZvb3Rlckl0ZW1zO1xuICAgIH1cblxuICAgIC8vIFRoaXMgbG9naWMgc2hvdWxkIG5vdCBiZSBhcyBwYXJ0IG9mIHRoZSBsaWJyYXJ5LiBJdCBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnPy5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgLy8gICB0aGlzLm9uTmF2SXRlbUNsaWNrKHRoaXMuY29uZmlnLml0ZW1zWzBdLCAwKTtcbiAgICAvLyB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddICYmICFjaGFuZ2VzWydjb25maWcnXS5maXJzdENoYW5nZSkge1xuICAgICAgLy8gSGFuZGxlIGNvbmZpZyBjaGFuZ2VzXG4gICAgICBjb25zb2xlLmxvZygnQ29uZmlnIGNoYW5nZWQ6JywgY2hhbmdlc1snY29uZmlnJ10uY3VycmVudFZhbHVlKTtcbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIGFueSBkZXJpdmVkIHN0YXRlIG9yIHRyaWdnZXIgVUkgdXBkYXRlc1xuICAgICAgaWYgKHRoaXMuY29uZmlnPy5pdGVtcykge1xuICAgICAgICAvLyBGaW5kIGFuZCBtYWludGFpbiBhY3RpdmUgc3RhdGUgd2hlbiBjb25maWcgY2hhbmdlc1xuICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLmNvbmZpZy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XG4gICAgICAgIGlmIChhY3RpdmVJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbSA9IHRoaXMuY29uZmlnLml0ZW1zW2FjdGl2ZUl0ZW1JbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIFRvIGVuc3VyZSBBbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiBwcm9wZXJseSBwcm9wYWdhdGVzIGNoYW5nZXMgdG8gdGhlIG1lbnUgZGlyZWN0aXZlLFxuICAgICAgICAvLyB3ZSBjYW4gdXNlIHRoZSBPYmplY3QuYXNzaWduIGFwcHJvYWNoIHdoaWNoIHByZXNlcnZlcyBvYmplY3QgcmVmZXJlbmNlcyBidXQgdXBkYXRlcyBwcm9wZXJ0aWVzXG4gICAgICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IGZvciBBbmd1bGFyJ3MgT25QdXNoIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kgaW4gY2hpbGQgY29tcG9uZW50c1xuICAgICAgICBcbiAgICAgICAgLy8gVXBkYXRlIG1lbnUgb2JqZWN0cyBpbiBpdGVtcyB3aXRob3V0IGNoYW5naW5nIHRoZWlyIHJlZmVyZW5jZXNcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTWVudUl0ZW1SZWYgJiYgdGhpcy5hY3RpdmVNZW51SXRlbVJlZi5pdGVtVHlwZSA9PT0gJ25hdicpIHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuYWN0aXZlTWVudUl0ZW1SZWYuaW5kZXg7XG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLml0ZW1zW2FjdGl2ZUluZGV4XT8ubWVudSkge1xuICAgICAgICAgICAgLy8gVXNpbmcgYSBjb25zb2xlLmxvZyB0byB2aXN1YWxseSB2ZXJpZnkgdGhlIGFwcHJvYWNoIGlzIGJlaW5nIGFwcGxpZWRcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNYWludGFpbmluZyBtZW51IHJlZmVyZW5jZSBmb3IgYWN0aXZlIG5hdiBpdGVtOicsIGFjdGl2ZUluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRJdGVtQWN0aXZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb25maWc/Lml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtID0gdGhpcy5jb25maWcuaXRlbXNbaW5kZXhdO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9XG4gIH1cblxuICBvbk5hdkl0ZW1DbGljayhpdGVtOiBJTGVmdE5hdkl0ZW0sIGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkgPSBudWxsKSB7XG5cbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9DTElDSycsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgdGhpcy5jb25maWcuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUgPSBmYWxzZSk7XG4gICAgdGhpcy5jb25maWcuaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgXG4gICAgaWYgKCFpdGVtLmRpc2FibGUgJiYgaXRlbS5wYXRoKSB7XG4gICAgICB0aGlzLnNldEl0ZW1BY3RpdmUoaW5kZXgpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0ucGF0aF0pXG4gICAgfVxuICAgIHRoaXMub25FdmVudC5lbWl0KHsgaXRlbSwgaW5kZXgsIGV2ZW50IH0pO1xuICB9XG5cbiAgb25Gb290ZXJJdGVtQ2xpY2soaXRlbTogSUxlZnROYXZJdGVtLCBpbmRleDogbnVtYmVyLCBldmVudDogYW55ID0gbnVsbCkge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgdHlwZTogJ0ZPT1RFUl9JVEVNX0NMSUNLJyxcbiAgICAgIGl0ZW1cbiAgICB9KTtcbiAgfVxuICBvbkZvb3Rlckl0ZW1CbHVyKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwsIHRvb2x0aXA6IE1hdFRvb2x0aXApIHtcbiAgICB0aGlzLmhvdmVyRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdGT09URVJfSVRFTV9IT1ZFUicsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgaWYgKHRvb2x0aXApIHtcbiAgICAgIHRvb2x0aXAuc2hvdygpO1xuICAgIH1cbiAgfVxuICBvbk5hdkl0ZW1CbHVyKGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSA9IG51bGwsIHRvb2x0aXA6IE1hdFRvb2x0aXApIHtcbiAgICB0aGlzLmhvdmVyRXZlbnQuZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIHR5cGU6ICdOQVZfSVRFTV9IT1ZFUicsXG4gICAgICBpdGVtXG4gICAgfSk7XG4gICAgaWYgKHRvb2x0aXApIHtcbiAgICAgIHRvb2x0aXAuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIG9uVGVtcGxhdGVJdGVtQ2xpY2soZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICBpdGVtLFxuICAgICAgdHlwZTogJ1RFTVBMQVRFX0lURU1fQ0xJQ0snXG4gICAgfSk7XG4gIH1cblxuICBvbk1lbnVFdmVudChldmVudDogYW55KXtcbiAgICBjb25zb2xlLmxvZygnb25NZW51RXZlbnQnLCBldmVudClcbiAgfVxuXG4gIG9uTG9nb0NsaWNrKGV2ZW50OiBhbnksIGxvZ286IElMZWZ0TmF2TG9nbykge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIGV2ZW50LFxuICAgICAgdHlwZTogJ0xPR09fQ0xJQ0snLFxuICAgICAgaXRlbToge1xuICAgICAgICAuLi5sb2dvLFxuICAgICAgICB0aXRsZTogbG9nby5hbHRUZXh0XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlciBmb3IgdGhlIG9uQXR0YWNoZWQgZXZlbnQgZnJvbSB0aGUgTWVudURpcmVjdGl2ZVxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBzYU1lbnUgZGlyZWN0aXZlIGlzIGF0dGFjaGVkIHRvIGFuIGVsZW1lbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBkYXRhIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgYW5kIG1lbnUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gaXRlbVR5cGUgVGhlIHR5cGUgb2YgaXRlbSAoJ25hdicgb3IgJ2Zvb3RlcicpXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBuYXYvZm9vdGVyIGl0ZW0gdGhhdCB0aGUgbWVudSBpcyBhdHRhY2hlZCB0b1xuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIGluIHRoZSBpdGVtcyBhcnJheVxuICAgKi9cbiAgb25NZW51QXR0YWNoZWQoZXZlbnQ6IHsgZWxlbWVudDogRWxlbWVudFJlZiwgbWVudTogSU1lbnUgfSwgaXRlbVR5cGU6ICduYXYnIHwgJ2Zvb3RlcicsIGl0ZW06IElMZWZ0TmF2SXRlbSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vIEVtaXQgYW4gZXZlbnQgdGhhdCBjYW4gYmUgY2FwdHVyZWQgYnkgcGFyZW50IGFwcGxpY2F0aW9uc1xuICAgIHRoaXMuaXNNZW51QXR0YWNoZWQuc2V0KHRydWUpO1xuICAgIFxuICAgIC8vIFRyYWNrIHdoaWNoIG1lbnUgaXMgb3BlblxuICAgIHRoaXMuYWN0aXZlTWVudUl0ZW1SZWYgPSB7IGl0ZW1UeXBlLCBpbmRleCB9O1xuICAgIFxuICAgIHRoaXMub25FdmVudC5lbWl0KHtcbiAgICAgIHR5cGU6ICdNRU5VX0FUVEFDSEVEJyxcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgaXRlbSxcbiAgICAgIGluZGV4LFxuICAgICAgZWxlbWVudDogZXZlbnQuZWxlbWVudCxcbiAgICAgIG1lbnU6IGV2ZW50Lm1lbnVcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVyIGZvciB0aGUgb25EZXRhY2hlZCBldmVudCBmcm9tIHRoZSBNZW51RGlyZWN0aXZlXG4gICAqIFRoaXMgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG1lbnUgaXMgY2xvc2VkL2RldGFjaGVkXG4gICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgZGF0YSBjb250YWluaW5nIHRoZSBlbGVtZW50IGFuZCBtZW51IGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIGl0ZW1UeXBlIFRoZSB0eXBlIG9mIGl0ZW0gKCduYXYnIG9yICdmb290ZXInKVxuICAgKiBAcGFyYW0gaXRlbSBUaGUgbmF2L2Zvb3RlciBpdGVtIHRoYXQgdGhlIG1lbnUgd2FzIGF0dGFjaGVkIHRvXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gaW4gdGhlIGl0ZW1zIGFycmF5XG4gICAqL1xuICBvbk1lbnVEZXRhY2hlZChldmVudDogeyBlbGVtZW50OiBFbGVtZW50UmVmLCBtZW51OiBJTWVudSB9LCBpdGVtVHlwZTogJ25hdicgfCAnZm9vdGVyJywgaXRlbTogSUxlZnROYXZJdGVtLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pc01lbnVBdHRhY2hlZC5zZXQoZmFsc2UpO1xuICAgIFxuICAgIC8vIENsZWFyIHRoZSBhY3RpdmUgbWVudSByZWZlcmVuY2VcbiAgICB0aGlzLmFjdGl2ZU1lbnVJdGVtUmVmID0gbnVsbDtcbiAgICBcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7XG4gICAgICB0eXBlOiAnTUVOVV9ERVRBQ0hFRCcsXG4gICAgICBpdGVtVHlwZSxcbiAgICAgIGl0ZW0sXG4gICAgICBpbmRleCxcbiAgICAgIGVsZW1lbnQ6IGV2ZW50LmVsZW1lbnQsXG4gICAgICBtZW51OiBldmVudC5tZW51XG4gICAgfSk7XG4gIH1cblxuXG59XG5cblxuY29uc3QgZGF0YTogSUxlZnROYXYgPSB7XG4gIGl0ZW1zOiBbe1xuICAgIHRpdGxlOiAnSG9tZScsXG4gICAgaWNvbjogJycsXG4gICAgZGlzYWJsZTogZmFsc2UsXG4gICAgdG9vbHRpcDogJycsXG4gICAgcmVsYXRpdmVQYXRoOiB0cnVlLFxuICAgIHBhdGg6ICdob21lJ1xuICB9LCB7XG4gICAgdGl0bGU6ICdQcmljaW5nJyxcbiAgICBpY29uOiAnJyxcbiAgICBkaXNhYmxlOiB0cnVlLFxuICAgIHRvb2x0aXA6ICcnLFxuICAgIHJlbGF0aXZlUGF0aDogdHJ1ZSxcbiAgICBwYXRoOiAnJ1xuICB9LCB7XG4gICAgdGl0bGU6ICdTZXR0aW5nJyxcbiAgICBpY29uOiAnc2V0dGluZ3NPdXRsaW5lZCcsXG4gICAgZGlzYWJsZTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnY29taW5nIHNvb24nLFxuICAgIHJlbGF0aXZlUGF0aDogdHJ1ZSxcbiAgICBwYXRoOiAnJ1xuICB9XSxcbiAgZm9vdGVySXRlbXM6IFt7XG4gICAgdGl0bGU6ICdIZWxwJyxcbiAgICBpY29uOiAnY2hhdEhlbHBPdXRsaW5lZCcsXG4gICAgZGlzYWJsZTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnY29taW5nIHNvb24nXG4gIH0sIHtcbiAgICB0aXRsZTogJ05hbWUnLFxuICAgIGRpc2FibGU6IGZhbHNlLFxuICAgIHRvb2x0aXA6ICcnLFxuICAgIHR5cGU6ICdBVkFUQVInXG4gIH0sIHtcbiAgICB0aXRsZTogJ0NoZXZyb24nLFxuICAgIGljb246ICdkb3VibGVEb3duT3V0bGluZWQnLFxuICAgIGRpc2FibGU6IHRydWUsXG4gICAgdG9vbHRpcDogJydcbiAgfV1cbn0iLCI8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXZcIiA+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtY29udGFpbmVyIHt7aXNNZW51QXR0YWNoZWQoKSA/ICdtZW51LWF0dGFjaGVkJyA6ICcnfX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWxvZ29cIj5cbiAgICAgICAgICAgIDxzYS1pY29uIChjbGljayk9XCJvbkxvZ29DbGljaygkZXZlbnQsIGNvbmZpZz8ubG9nbylcIiBbbWF0VG9vbHRpcF09XCJjb25maWc/LmxvZ28/LnRvb2x0aXBcIiBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIiBtYXRUb29sdGlwQ2xhc3M9XCJzYS1sZWZ0LW5hdi10b29sdGlwXCIgW2ljb25dPVwiY29uZmlnPy5sb2dvPy5pY29uXCIgW3NpemVdPVwiY29uZmlnPy5sb2dvPy5pY29uU2l6ZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1sZWZ0LW5hdi1pdGVtcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIEBpZihjb25maWcgJiYgY29uZmlnPy5pdGVtcyAmJiAhIWNvbmZpZz8uaXRlbXM/Lmxlbmd0aCl7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbXMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZz8uaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NhTWVudV09XCJpdGVtLm1lbnVcIiAob25FdmVudCk9XCJvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25BdHRhY2hlZCk9XCJvbk1lbnVBdHRhY2hlZCgkZXZlbnQsICduYXYnLCBpdGVtLCBpKVwiIChvbkRldGFjaGVkKT1cIm9uTWVudURldGFjaGVkKCRldmVudCwgJ25hdicsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkl0ZW1DbGljayhpdGVtLCBpLCAkZXZlbnQpXCIgKG1vdXNlZW50ZXIpPVwib25OYXZJdGVtQmx1cihpdGVtLGksJGV2ZW50LHRvb2x0aXApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICN0b29sdGlwPVwibWF0VG9vbHRpcFwiIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCIgbWF0VG9vbHRpcENsYXNzPVwic2EtbGVmdC1uYXYtdG9vbHRpcFwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cInNhLWxlZnQtbmF2LWl0ZW0taWNvblwiIFtpY29uXT1cIml0ZW0uaWNvblwiIFtzaXplXT1cIml0ZW0uaWNvblNpemUgfHwgJzI0J1wiIFtjb2xvcl09XCJpdGVtLmFjdGl2ZSA/IGl0ZW0uY29sb3IgOiAndmFyKC0tZ3JleS0yMDApJ1wiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+e3tpdGVtLnRvb2x0aXB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwic2EtbGVmdC1uYXYtaXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpdGVtLmljb25fdXJsICsgJyknIH1cIj48L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNhLWljb24tbGFiZWxcIiBbbmdDbGFzc109XCJpdGVtLmFjdGl2ZSA/ICdhY3RpdmUnIDogJycgXCI+e3tpdGVtLmljb25MYWJlbH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLXRlbXBsYXRlLWl0ZW0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZy50ZW1wbGF0ZUl0ZW1zICYmICEhY29uZmlnLnRlbXBsYXRlSXRlbXMubGVuZ3RoKXtcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9uVGVtcGxhdGVJdGVtQ2xpY2soJGV2ZW50LCBpLCBpdGVtKVwiIGNsYXNzPVwic2EtdGVtcGxhdGUtaXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NOYW1lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnLnRlbXBsYXRlSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8c2EtaWNvbiBbbWF0VG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIiBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiIG1hdFRvb2x0aXBDbGFzcz1cInNhLWxlZnQtbmF2LXRvb2x0aXAgc2EtbGVmdC1uYXYtdGVtcGxhdGUtdG9vbHRpcFwiIFtpY29uXT1cIml0ZW0uaWNvblwiIFtzaXplXT1cIml0ZW0uaWNvblNpemUgfHwgJzI0J1wiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCI+PC9zYS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyXCI+XG4gICAgICAgICAgICBAaWYoY29uZmlnICYmIGNvbmZpZy5mb290ZXJJdGVtcyAmJiAhIWNvbmZpZy5mb290ZXJJdGVtcy5sZW5ndGgpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbGVmdC1uYXYtZm9vdGVyLWl0ZW1cIiBbbmdDbGFzc109XCJpdGVtLmNsYXNzTmFtZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZy5mb290ZXJJdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRm9vdGVySXRlbUNsaWNrKGl0ZW0sIGksICRldmVudClcIiAob25FdmVudCk9XCJvbkV2ZW50LmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2FNZW51XT1cIml0ZW0ubWVudVwiIChvbkF0dGFjaGVkKT1cIm9uTWVudUF0dGFjaGVkKCRldmVudCwgJ2Zvb3RlcicsIGl0ZW0sIGkpXCIgKG9uRGV0YWNoZWQpPVwib25NZW51RGV0YWNoZWQoJGV2ZW50LCAnZm9vdGVyJywgaXRlbSwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Gb290ZXJJdGVtQmx1cihpdGVtLGksJGV2ZW50LHRvb2x0aXApXCIgI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCIgbWF0VG9vbHRpcENsYXNzPVwic2EtbGVmdC1uYXYtdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PT0gJ0FWQVRBUicpe1xuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1uYW1lXCI+RVQ8L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWF2YXRhciBbYWx0VGV4dF09XCJpdGVtLmFsdFRleHRcIiBbaW1hZ2VQYXRoXT1cIicnXCIgc2l6ZT1cImV4dHJhLXNtYWxsXCI+PC9zYS1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cInNhLWxlZnQtbmF2LWZvb3Rlci1pY29uXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgc2l6ZT1cIjI0XCIgY29sb3I9XCJ3aGl0ZVwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc2kgc3M9XCJzYS1sZWZ0LW5hdi1mb290ZXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGl0ZW0uaWNvbl91cmwgfHwgJycgKyAnKScgfVwiPjwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNhLWljb24tbGFiZWxcIiBbbmdDbGFzc109XCJpdGVtLmFjdGl2ZSA/ICdhY3RpdmUnIDogJycgXCI+e3tpdGVtLmljb25MYWJlbH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInNhLWxlZnQtbmF2LWNvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG48L2Rpdj4iXX0=
@@ -9,15 +9,15 @@ export class ListComponent {
9
9
  this.featuresIcon = '';
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ListComponent, isStandalone: true, selector: "lib-list", inputs: { listData: "listData", featuresIcon: "featuresIcon" }, ngImport: i0, template: "<div class=\"feature-list-container\">\r\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\r\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\r\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\r\n </div>\r\n <div>\r\n <span class=\"feature-text\">{{ item?.text }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [".feature-list-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--small-12px, 12px);align-self:stretch}.feature-item{display:flex;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.feature-list-container .feature-text{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}.feature-icon sa-icon{display:flex}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ListComponent, isStandalone: true, selector: "lib-list", inputs: { listData: "listData", featuresIcon: "featuresIcon" }, ngImport: i0, template: "<div class=\"feature-list-container\">\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\n </div>\n <div>\n <span class=\"feature-text\">{{ item?.text }}</span>\n </div>\n </div>\n</div>", styles: [".feature-list-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--small-12px, 12px);align-self:stretch}.feature-item{display:flex;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.feature-list-container .feature-text{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}.feature-icon sa-icon{display:flex}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ListComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'lib-list', standalone: true, imports: [IconComponent, CommonModule], template: "<div class=\"feature-list-container\">\r\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\r\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\r\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\r\n </div>\r\n <div>\r\n <span class=\"feature-text\">{{ item?.text }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [".feature-list-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--small-12px, 12px);align-self:stretch}.feature-item{display:flex;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.feature-list-container .feature-text{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}.feature-icon sa-icon{display:flex}\n"] }]
16
+ args: [{ selector: 'lib-list', standalone: true, imports: [IconComponent, CommonModule], template: "<div class=\"feature-list-container\">\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\n </div>\n <div>\n <span class=\"feature-text\">{{ item?.text }}</span>\n </div>\n </div>\n</div>", styles: [".feature-list-container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--small-12px, 12px);align-self:stretch}.feature-item{display:flex;align-items:center;gap:var(--small-8px, 8px);align-self:stretch}.feature-list-container .feature-text{color:var(--text-mediumemphasis, #6D6979);font-family:var(--font);font-size:var(--small-14px);font-style:normal;font-weight:400;line-height:var(--medium-20px);letter-spacing:.25px}.feature-icon sa-icon{display:flex}\n"] }]
17
17
  }], propDecorators: { listData: [{
18
18
  type: Input
19
19
  }], featuresIcon: [{
20
20
  type: Input,
21
21
  args: ['featuresIcon']
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLGFBQWE7SUFQMUI7UUFRVyxhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUNuQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztLQUNsRDs4R0FIWSxhQUFhO2tHQUFiLGFBQWEsb0lDWDFCLG9aQVNNLHFoQkRGTSxhQUFhLG9NQUFFLFlBQVk7OzJGQUkxQixhQUFhO2tCQVB6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDOzhCQUs3QixRQUFRO3NCQUFoQixLQUFLO2dCQUNpQixZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ljb25Db21wb25lbnQsIENvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBsaXN0RGF0YTogeyBpY29uPzogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdID0gW107XHJcbiAgQElucHV0KCdmZWF0dXJlc0ljb24nKSBmZWF0dXJlc0ljb246IHN0cmluZyA9ICcnO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmZWF0dXJlLWxpc3QtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdERhdGFcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmVhdHVyZXNJY29uXCIgY2xhc3M9XCJmZWF0dXJlLWljb25cIj5cclxuICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwiZmVhdHVyZXNJY29uXCIgY3VzdG9tQ2xhc3M9XCJjb2xvcmVkLWljb25cIj48L3NhLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZWF0dXJlLXRleHRcIj57eyBpdGVtPy50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLGFBQWE7SUFQMUI7UUFRVyxhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUNuQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztLQUNsRDs4R0FIWSxhQUFhO2tHQUFiLGFBQWEsb0lDWDFCLGtZQVNNLHFoQkRGTSxhQUFhLG9NQUFFLFlBQVk7OzJGQUkxQixhQUFhO2tCQVB6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDOzhCQUs3QixRQUFRO3NCQUFoQixLQUFLO2dCQUNpQixZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQge1xuICBASW5wdXQoKSBsaXN0RGF0YTogeyBpY29uPzogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfVtdID0gW107XG4gIEBJbnB1dCgnZmVhdHVyZXNJY29uJykgZmVhdHVyZXNJY29uOiBzdHJpbmcgPSAnJztcbn1cbiIsIjxkaXYgY2xhc3M9XCJmZWF0dXJlLWxpc3QtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZlYXR1cmUtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlc0ljb25cIiBjbGFzcz1cImZlYXR1cmUtaWNvblwiPlxuICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwiZmVhdHVyZXNJY29uXCIgY3VzdG9tQ2xhc3M9XCJjb2xvcmVkLWljb25cIj48L3NhLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZWF0dXJlLXRleHRcIj57eyBpdGVtPy50ZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -24,13 +24,13 @@ export class SAMenuItemComponent {
24
24
  this.onEvent.emit({ type: 'click', item });
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuItemComponent, isStandalone: true, selector: "sa-menu-item", inputs: { item: "item", showRound: "showRound" }, outputs: { onEvent: "onEvent" }, providers: [IconService], viewQueries: [{ propertyName: "menuDirective", first: true, predicate: i0.forwardRef(() => MenuDirective), descendants: true }], ngImport: i0, template: "<!-- <div mat-menu-item class=\"sa-menu-item\">\r\n <span>{{item.label}}</span>\r\n</div> -->\r\n\r\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\r\n <div class=\"status {{item['className']}}\" [saMenu]=\"item?.subMenu\">\r\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\r\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\r\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\r\n <div *ngIf=\"item?.subMenu\" class=\"flex ml-auto\">\r\n <sa-icon [icon]=\"'rightChevronOutlined'\" class=\"flex\" [size]=\"'20'\"></sa-icon>\r\n </div>\r\n </div>\r\n <!-- Section for showing chips if chips are available in object -->\r\n <div *ngIf=\"item.chips\" class=\"tags\">\r\n @for (itm of item.chips; track $index) {\r\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\r\n [text]=\"itm.text\"></sa-chip>\r\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\r\n }\r\n </div>\r\n</div>\r\n", styles: [".sa-menu-item{padding:12px}.sa-menu-item:hover{background-color:var(--primary-500)}.sa-menu-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.sa-menu-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.section-item{display:flex;justify-content:space-between;align-items:center}.section-item .status{padding:.75rem}.section-item:hover{background-color:var(--primary-500)}.section-item:hover span{font-weight:500}.selected{background-color:var(--primary-500)}.section-item .tags{display:flex;gap:.25rem}.tag{background-color:#6b46c1;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-active{background-color:#6b46c1!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-inactive{background-color:#d27f2b!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.status{display:flex;align-items:center;gap:.6rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%}.status-active{background-color:#48bb78}.status-inactive{background-color:#f19e4f}hr{border:0;border-top:1px solid #718096;margin-bottom:1rem}.sa-groupItem-lable{cursor:pointer;font-size:14px;font-weight:400}.flex{display:flex}.top{border-top:1px solid #475467}.bottom{border-bottom:1px solid #475467}.ml-auto{margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => ChipsComponent), selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: i0.forwardRef(() => HttpClientModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "component", type: i0.forwardRef(() => StatusDotComponent), selector: "sa-status-dot", inputs: ["config"] }, { kind: "directive", type: i0.forwardRef(() => MenuDirective), selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuItemComponent, isStandalone: true, selector: "sa-menu-item", inputs: { item: "item", showRound: "showRound" }, outputs: { onEvent: "onEvent" }, providers: [IconService], viewQueries: [{ propertyName: "menuDirective", first: true, predicate: i0.forwardRef(() => MenuDirective), descendants: true }], ngImport: i0, template: "<!-- <div mat-menu-item class=\"sa-menu-item\">\n <span>{{item.label}}</span>\n</div> -->\n\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\n <div class=\"status {{item['className']}}\" [saMenu]=\"item?.subMenu\">\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\n <div *ngIf=\"item?.subMenu\" class=\"flex ml-auto\">\n <sa-icon [icon]=\"'rightChevronOutlined'\" class=\"flex\" [size]=\"'20'\"></sa-icon>\n </div>\n </div>\n <!-- Section for showing chips if chips are available in object -->\n <div *ngIf=\"item.chips\" class=\"tags\">\n @for (itm of item.chips; track $index) {\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\n [text]=\"itm.text\"></sa-chip>\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\n }\n </div>\n</div>\n", styles: [".sa-menu-item{padding:12px}.sa-menu-item:hover{background-color:var(--primary-500)}.sa-menu-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.sa-menu-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.section-item{display:flex;justify-content:space-between;align-items:center}.section-item .status{padding:.75rem}.section-item:hover{background-color:var(--primary-500)}.section-item:hover span{font-weight:500}.selected{background-color:var(--primary-500)}.section-item .tags{display:flex;gap:.25rem}.tag{background-color:#6b46c1;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-active{background-color:#6b46c1!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-inactive{background-color:#d27f2b!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.status{display:flex;align-items:center;gap:.6rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%}.status-active{background-color:#48bb78}.status-inactive{background-color:#f19e4f}hr{border:0;border-top:1px solid #718096;margin-bottom:1rem}.sa-groupItem-lable{cursor:pointer;font-size:14px;font-weight:400}.flex{display:flex}.top{border-top:1px solid #475467}.bottom{border-bottom:1px solid #475467}.ml-auto{margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => ChipsComponent), selector: "sa-chip", inputs: ["id", "iconPath", "text", "type", "state", "filling", "iconPosition", "largeStateIcon", "largeStateText", "tooltip", "className"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: i0.forwardRef(() => HttpClientModule) }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "component", type: i0.forwardRef(() => StatusDotComponent), selector: "sa-status-dot", inputs: ["config"] }, { kind: "directive", type: i0.forwardRef(() => MenuDirective), selector: "[saMenu]", inputs: ["saMenuRef", "saMenu", "saManuPosition"], outputs: ["onMenuEvent", "onEvent", "onAttached", "onDetached"] }] }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuItemComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'sa-menu-item', standalone: true, imports: [CommonModule, ChipsComponent, HttpClientModule, IconComponent, StatusDotComponent,
32
32
  forwardRef(() => MenuDirective)
33
- ], providers: [IconService], template: "<!-- <div mat-menu-item class=\"sa-menu-item\">\r\n <span>{{item.label}}</span>\r\n</div> -->\r\n\r\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\r\n <div class=\"status {{item['className']}}\" [saMenu]=\"item?.subMenu\">\r\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\r\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\r\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\r\n <div *ngIf=\"item?.subMenu\" class=\"flex ml-auto\">\r\n <sa-icon [icon]=\"'rightChevronOutlined'\" class=\"flex\" [size]=\"'20'\"></sa-icon>\r\n </div>\r\n </div>\r\n <!-- Section for showing chips if chips are available in object -->\r\n <div *ngIf=\"item.chips\" class=\"tags\">\r\n @for (itm of item.chips; track $index) {\r\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\r\n [text]=\"itm.text\"></sa-chip>\r\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\r\n }\r\n </div>\r\n</div>\r\n", styles: [".sa-menu-item{padding:12px}.sa-menu-item:hover{background-color:var(--primary-500)}.sa-menu-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.sa-menu-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.section-item{display:flex;justify-content:space-between;align-items:center}.section-item .status{padding:.75rem}.section-item:hover{background-color:var(--primary-500)}.section-item:hover span{font-weight:500}.selected{background-color:var(--primary-500)}.section-item .tags{display:flex;gap:.25rem}.tag{background-color:#6b46c1;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-active{background-color:#6b46c1!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-inactive{background-color:#d27f2b!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.status{display:flex;align-items:center;gap:.6rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%}.status-active{background-color:#48bb78}.status-inactive{background-color:#f19e4f}hr{border:0;border-top:1px solid #718096;margin-bottom:1rem}.sa-groupItem-lable{cursor:pointer;font-size:14px;font-weight:400}.flex{display:flex}.top{border-top:1px solid #475467}.bottom{border-bottom:1px solid #475467}.ml-auto{margin-left:auto}\n"] }]
33
+ ], providers: [IconService], template: "<!-- <div mat-menu-item class=\"sa-menu-item\">\n <span>{{item.label}}</span>\n</div> -->\n\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\n <div class=\"status {{item['className']}}\" [saMenu]=\"item?.subMenu\">\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\n <div *ngIf=\"item?.subMenu\" class=\"flex ml-auto\">\n <sa-icon [icon]=\"'rightChevronOutlined'\" class=\"flex\" [size]=\"'20'\"></sa-icon>\n </div>\n </div>\n <!-- Section for showing chips if chips are available in object -->\n <div *ngIf=\"item.chips\" class=\"tags\">\n @for (itm of item.chips; track $index) {\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\n [text]=\"itm.text\"></sa-chip>\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\n }\n </div>\n</div>\n", styles: [".sa-menu-item{padding:12px}.sa-menu-item:hover{background-color:var(--primary-500)}.sa-menu-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.sa-menu-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.section-item{display:flex;justify-content:space-between;align-items:center}.section-item .status{padding:.75rem}.section-item:hover{background-color:var(--primary-500)}.section-item:hover span{font-weight:500}.selected{background-color:var(--primary-500)}.section-item .tags{display:flex;gap:.25rem}.tag{background-color:#6b46c1;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-active{background-color:#6b46c1!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.tag-inactive{background-color:#d27f2b!important;font-size:.2rem;padding:.25rem .5rem;border-radius:.25rem}.status{display:flex;align-items:center;gap:.6rem}.status-dot{width:.5rem;height:.5rem;border-radius:50%}.status-active{background-color:#48bb78}.status-inactive{background-color:#f19e4f}hr{border:0;border-top:1px solid #718096;margin-bottom:1rem}.sa-groupItem-lable{cursor:pointer;font-size:14px;font-weight:400}.flex{display:flex}.top{border-top:1px solid #475467}.bottom{border-bottom:1px solid #475467}.ml-auto{margin-left:auto}\n"] }]
34
34
  }], propDecorators: { item: [{
35
35
  type: Input,
36
36
  args: ['item']
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
43
43
  type: ViewChild,
44
44
  args: [forwardRef(() => MenuDirective)]
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVl0RCxNQUFNLE9BQU8sbUJBQW1CO0lBVmhDO1FBYVksWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBZTNEO0lBYkMsMkRBQTJEO0lBRTNELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7WUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFlO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBakJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhJQUpuQixDQUFDLFdBQVcsQ0FBQyw2RkFRSSxhQUFhLGlEQ3hCM0MsMDhDQXNCQSxpMUNEVFksWUFBWSwwWUFBRSxjQUFjLCtPQUFDLGdCQUFnQixvREFBRSxhQUFhLDBOQUFFLGtCQUFrQixtR0FDdkUsYUFBYTs7MkZBTXJCLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCO3dCQUN4RixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO3FCQUNoQyxhQUNVLENBQUMsV0FBVyxDQUFDOzhCQUtULElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDTyxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ1IsT0FBTztzQkFBaEIsTUFBTTtnQkFDcUMsYUFBYTtzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvbWVudS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTdGF0dXNEb3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zdGF0dXMtZG90L3N0YXR1cy1kb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL21lbnUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLW1lbnUtaXRlbScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGlwc0NvbXBvbmVudCxIdHRwQ2xpZW50TW9kdWxlLCBJY29uQ29tcG9uZW50LCBTdGF0dXNEb3RDb21wb25lbnQsXHJcbiAgICBmb3J3YXJkUmVmKCgpID0+IE1lbnVEaXJlY3RpdmUpIFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbSWNvblNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNBTWVudUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoJ2l0ZW0nKSBpdGVtOiBJTWVudUl0ZW07XHJcbiAgQElucHV0KCdzaG93Um91bmQnKSBzaG93Um91bmQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIG9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBNZW51RGlyZWN0aXZlKSkgbWVudURpcmVjdGl2ZTogTWVudURpcmVjdGl2ZTtcclxuICAvLyBAVmlld0NoaWxkKE1lbnVEaXJlY3RpdmUpIG1lbnVEaXJlY3RpdmU/OiBNZW51RGlyZWN0aXZlO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tZW51RGlyZWN0aXZlKSB7XHJcbiAgICAgIHRoaXMubWVudURpcmVjdGl2ZS5vbkV2ZW50LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLm9uRXZlbnQuZW1pdChldmVudCk7IC8vIOKchSByZS1lbWl0IHRvIFNBTWVudUNvbXBvbmVudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wdGlvbkNsaWNrZWQoaXRlbTogSU1lbnVJdGVtKSB7XHJcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7IHR5cGU6ICdjbGljaycsIGl0ZW0gfSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic2EtbWVudS1pdGVtXCI+XHJcbiAgICA8c3Bhbj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuPC9kaXY+IC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cInNlY3Rpb24taXRlbSB7e2l0ZW0/LnNlcHJhdG9yUG9zaXRpb259fVwiIFtuZ1N0eWxlXT1cInsgJ2JvcmRlci1yYWRpdXMnOiBzaG93Um91bmQgPyAnNXB4JyA6ICcwJyB9XCIgW25nQ2xhc3NdPVwiaXRlbS5pc1NlbGVjdGVkID8gJ3NlbGVjdGVkJyA6ICcnXCIgKGNsaWNrKT1cIm9wdGlvbkNsaWNrZWQoaXRlbSlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMge3tpdGVtWydjbGFzc05hbWUnXX19XCIgW3NhTWVudV09XCJpdGVtPy5zdWJNZW51XCI+XHJcbiAgICAgICAgPHNhLXN0YXR1cy1kb3QgKm5nSWY9XCJpdGVtLnN0YXR1c0RvdFwiIFtjb25maWddPVwiaXRlbT8uc3RhdHVzRG90XCI+PC9zYS1zdGF0dXMtZG90PlxyXG4gICAgICAgIDxzYS1pY29uIGNsYXNzPVwiZmxleFwiICpuZ0lmPVwiaXRlbS5pY29uXCIgW2ljb25dPVwiaXRlbT8uaWNvbj8uaWNvblwiICBbaWNvblBhdGhdPVwiaXRlbVsnaWNvbiddPy5pY29uUGF0aFwiIFtpY29uVXJsXT1cIml0ZW1bJ2ljb24nXT8uaWNvblVybFwiIFtzaXplXT1cIml0ZW1bJ2ljb24nXT8uc2l6ZVwiIFtjdXN0b21DbGFzc109XCJpdGVtWydpY29uJ10/LmN1c3RvbUNsYXNzXCI+PC9zYS1pY29uPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2EtZ3JvdXBJdGVtLWxhYmxlXCIgPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy5zdWJNZW51XCIgY2xhc3M9XCJmbGV4IG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPHNhLWljb24gW2ljb25dPVwiJ3JpZ2h0Q2hldnJvbk91dGxpbmVkJ1wiIGNsYXNzPVwiZmxleFwiIFtzaXplXT1cIicyMCdcIj48L3NhLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gU2VjdGlvbiBmb3Igc2hvd2luZyBjaGlwcyBpZiBjaGlwcyBhcmUgYXZhaWxhYmxlIGluIG9iamVjdCAgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5jaGlwc1wiIGNsYXNzPVwidGFnc1wiPlxyXG4gICAgICAgIEBmb3IgKGl0bSBvZiBpdGVtLmNoaXBzOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8c2EtY2hpcCAqbmdJZj1cIml0bS50ZXh0XCIgW3R5cGVdPVwiaXRtLnR5cGVcIiBbc3RhdGVdPVwiaXRtLnN0YXRlXCIgW2ZpbGxpbmddPVwiaXRtLmZpbGxpbmdcIlxyXG4gICAgICAgICAgICBbdGV4dF09XCJpdG0udGV4dFwiPjwvc2EtY2hpcD5cclxuICAgICAgICA8IS0tIDxzcGFuIFtuZ0NsYXNzXT1cIml0bS5zdGF0dXMgPT0gJ2FjdGl2ZScgPyAndGFnLWFjdGl2ZScgOiAndGFnLWluYWN0aXZlJ1wiIGNsYXNzPVwiXCI+e3tpdG0ubGFiZWx9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvbWVudS9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVl0RCxNQUFNLE9BQU8sbUJBQW1CO0lBVmhDO1FBYVksWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBZTNEO0lBYkMsMkRBQTJEO0lBRTNELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7WUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFlO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBakJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhJQUpuQixDQUFDLFdBQVcsQ0FBQyw2RkFRSSxhQUFhLGlEQ3hCM0MsODVDQXNCQSxpMUNEVFksWUFBWSwwWUFBRSxjQUFjLCtPQUFDLGdCQUFnQixvREFBRSxhQUFhLDBOQUFFLGtCQUFrQixtR0FDdkUsYUFBYTs7MkZBTXJCLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCO3dCQUN4RixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO3FCQUNoQyxhQUNVLENBQUMsV0FBVyxDQUFDOzhCQUtULElBQUk7c0JBQWxCLEtBQUs7dUJBQUMsTUFBTTtnQkFDTyxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ1IsT0FBTztzQkFBaEIsTUFBTTtnQkFDcUMsYUFBYTtzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL21lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1c0RvdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3N0YXR1cy1kb3Qvc3RhdHVzLWRvdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL21lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtbWVudS1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hpcHNDb21wb25lbnQsSHR0cENsaWVudE1vZHVsZSwgSWNvbkNvbXBvbmVudCwgU3RhdHVzRG90Q29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gTWVudURpcmVjdGl2ZSkgXG4gIF0sXG4gIHByb3ZpZGVyczogW0ljb25TZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgU0FNZW51SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ2l0ZW0nKSBpdGVtOiBJTWVudUl0ZW07XG4gIEBJbnB1dCgnc2hvd1JvdW5kJykgc2hvd1JvdW5kOiBib29sZWFuO1xuICBAT3V0cHV0KCkgb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBNZW51RGlyZWN0aXZlKSkgbWVudURpcmVjdGl2ZTogTWVudURpcmVjdGl2ZTtcbiAgLy8gQFZpZXdDaGlsZChNZW51RGlyZWN0aXZlKSBtZW51RGlyZWN0aXZlPzogTWVudURpcmVjdGl2ZTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMubWVudURpcmVjdGl2ZSkge1xuICAgICAgdGhpcy5tZW51RGlyZWN0aXZlLm9uRXZlbnQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9uRXZlbnQuZW1pdChldmVudCk7IC8vIOKchSByZS1lbWl0IHRvIFNBTWVudUNvbXBvbmVudFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3B0aW9uQ2xpY2tlZChpdGVtOiBJTWVudUl0ZW0pIHtcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7IHR5cGU6ICdjbGljaycsIGl0ZW0gfSk7XG4gIH1cbn1cbiIsIjwhLS0gPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic2EtbWVudS1pdGVtXCI+XG4gICAgPHNwYW4+e3tpdGVtLmxhYmVsfX08L3NwYW4+XG48L2Rpdj4gLS0+XG5cbjxkaXYgY2xhc3M9XCJzZWN0aW9uLWl0ZW0ge3tpdGVtPy5zZXByYXRvclBvc2l0aW9ufX1cIiBbbmdTdHlsZV09XCJ7ICdib3JkZXItcmFkaXVzJzogc2hvd1JvdW5kID8gJzVweCcgOiAnMCcgfVwiIFtuZ0NsYXNzXT1cIml0ZW0uaXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ1wiIChjbGljayk9XCJvcHRpb25DbGlja2VkKGl0ZW0pXCI+XG4gICAgPGRpdiBjbGFzcz1cInN0YXR1cyB7e2l0ZW1bJ2NsYXNzTmFtZSddfX1cIiBbc2FNZW51XT1cIml0ZW0/LnN1Yk1lbnVcIj5cbiAgICAgICAgPHNhLXN0YXR1cy1kb3QgKm5nSWY9XCJpdGVtLnN0YXR1c0RvdFwiIFtjb25maWddPVwiaXRlbT8uc3RhdHVzRG90XCI+PC9zYS1zdGF0dXMtZG90PlxuICAgICAgICA8c2EtaWNvbiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtpY29uXT1cIml0ZW0/Lmljb24/Lmljb25cIiAgW2ljb25QYXRoXT1cIml0ZW1bJ2ljb24nXT8uaWNvblBhdGhcIiBbaWNvblVybF09XCJpdGVtWydpY29uJ10/Lmljb25VcmxcIiBbc2l6ZV09XCJpdGVtWydpY29uJ10/LnNpemVcIiBbY3VzdG9tQ2xhc3NdPVwiaXRlbVsnaWNvbiddPy5jdXN0b21DbGFzc1wiPjwvc2EtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYS1ncm91cEl0ZW0tbGFibGVcIiA+e3tpdGVtLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtPy5zdWJNZW51XCIgY2xhc3M9XCJmbGV4IG1sLWF1dG9cIj5cbiAgICAgICAgICAgIDxzYS1pY29uIFtpY29uXT1cIidyaWdodENoZXZyb25PdXRsaW5lZCdcIiBjbGFzcz1cImZsZXhcIiBbc2l6ZV09XCInMjAnXCI+PC9zYS1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNlY3Rpb24gZm9yIHNob3dpbmcgY2hpcHMgaWYgY2hpcHMgYXJlIGF2YWlsYWJsZSBpbiBvYmplY3QgIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJpdGVtLmNoaXBzXCIgY2xhc3M9XCJ0YWdzXCI+XG4gICAgICAgIEBmb3IgKGl0bSBvZiBpdGVtLmNoaXBzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHNhLWNoaXAgKm5nSWY9XCJpdG0udGV4dFwiIFt0eXBlXT1cIml0bS50eXBlXCIgW3N0YXRlXT1cIml0bS5zdGF0ZVwiIFtmaWxsaW5nXT1cIml0bS5maWxsaW5nXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIml0bS50ZXh0XCI+PC9zYS1jaGlwPlxuICAgICAgICA8IS0tIDxzcGFuIFtuZ0NsYXNzXT1cIml0bS5zdGF0dXMgPT0gJ2FjdGl2ZScgPyAndGFnLWFjdGl2ZScgOiAndGFnLWluYWN0aXZlJ1wiIGNsYXNzPVwiXCI+e3tpdG0ubGFiZWx9fTwvc3Bhbj4gLS0+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -72,7 +72,7 @@ export class SAMenuComponent {
72
72
  this.onEvent.emit({ type: 'TAB_CLICK', activeTab: tabname, menu: this.menu });
73
73
  }
74
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuComponent, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuComponent, isStandalone: true, selector: "sa-menu", inputs: { position: "position", menu: "menu", hostEl: "hostEl" }, outputs: { onEvent: "onEvent", onKeyUpEvent: "onKeyUpEvent", closeEvent: "closeEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\r\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\r\n @if(menu?.title){\r\n <div class=\"sa-menu-title\">\r\n <h1>{{menu?.title}}</h1>\r\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" color=\"var(--grey-200, #D0D5DD)\" class=\"sa-menu-close-icon\"\r\n (click)=\"closeEvent.emit($event)\"></sa-icon>\r\n </div>\r\n }\r\n\r\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\r\n @for (groupItem of menu.itemGroups; track groupItem) {\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n \r\n @for (item of groupItem.items; track $index) {\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n }\r\n </div>\r\n }\r\n } @else if(menu?.items && menu.items.length){\r\n <div class=\"sa-menu-items\">\r\n @for (item of menu.items; track item) {\r\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n }\r\n </div>\r\n } -->\r\n\r\n\r\n <!-- Tab Content or Item Groups -->\r\n <div class=\"sa-menu-content\">\r\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\r\n @if(menu?.showSearch){\r\n <div class=\"search-container\">\r\n <sa-icon icon=\"search\"></sa-icon>\r\n <input name=\"menu-search-bar\" class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \r\n />\r\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\r\n </div>\r\n }\r\n \r\n <!-- Tabs -->\r\n @if(menu?.tabs){\r\n <div class=\"sa-menu-tabs\">\r\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\r\n (click)=\"setActiveTab(i,tab.label)\">\r\n {{ tab.label }}\r\n <!-- ({{ tab.itemGroups.length }}) -->\r\n </button>\r\n </div>\r\n }\r\n <!-- Tabs End -->\r\n\r\n @if(menu?.tabs?.length){\r\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\r\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n <ng-container *ngFor=\"let item of groupItem.items\">\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\r\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n }\r\n } @else if(menu?.itemGroups?.length){\r\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n <ng-container *ngFor=\"let item of groupItem.items\">\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\r\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if(menu?.items && menu?.items?.length){\r\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\r\n <div class=\"avatar\">\r\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\r\n </div>\r\n <div class=\"profile-info\">\r\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\r\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\r\n </div>\r\n </div>\r\n <div class=\"sa-menu-items\">\r\n @for (item of menu.items; track item) {\r\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\r\n }\r\n </div>\r\n }\r\n\r\n</div>", styles: [".sa-menu{background-color:var(--primary-800);box-shadow:3px 4px 16px 4px #00000014;width:max-content;border-radius:5px;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.sa-menu-tray::-webkit-scrollbar{width:6px}.sa-menu-tray::-webkit-scrollbar-track{background:transparent}.sa-menu-tray::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}sa-menu-item{cursor:pointer;display:block;color:var(--grey-100, #EAECF0)}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939);z-index:1}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem;margin-top:4.75rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;border-radius:4px;color:var(--grey-200, #D0D5DD);border:1px solid var(--grey-900, #0C111D);background:var(--grey-900, #0C111D);box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--grey-400, #475467)}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:0rem 0}.sa-menu-content-inner{padding-top:0}.sa-menu-content .sa-menu-content-with-search,.sa-menu-content-with-search.sa-menu-content-inner{padding:0}.features-tray-menu .sa-menu-content-inner{padding-top:5rem}.features-tray-menu .sa-menu-content-with-search.sa-menu-content-inner{padding-top:0}.sa-menu-group h2{margin-top:1rem}.sa-menu-group:first-child h2{margin-top:0}.sa-menu-group{margin-bottom:1rem}.profile-badge{display:flex;align-items:center;gap:8px;padding:12px;width:100%;border-bottom:1px solid var(--grey-400)}.avatar{display:flex;justify-content:center;align-items:center}.profile-info{display:flex;flex-direction:column;justify-content:center;font-weight:300}.profile-name{color:var(--structural-white);font-weight:500;font-size:12px;line-height:1.2;margin:0}.profile-email{color:var(--grey-200);font-size:11px;line-height:1.2;font-weight:400;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SAMenuItemComponent, selector: "sa-menu-item", inputs: ["item", "showRound"], outputs: ["onEvent"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }] }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: SAMenuComponent, isStandalone: true, selector: "sa-menu", inputs: { position: "position", menu: "menu", hostEl: "hostEl" }, outputs: { onEvent: "onEvent", onKeyUpEvent: "onKeyUpEvent", closeEvent: "closeEvent" }, providers: [IconService], usesOnChanges: true, ngImport: i0, template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" color=\"var(--grey-200, #D0D5DD)\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\">\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input name=\"menu-search-bar\" class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \n />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n \n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n </div>\n\n @if(menu?.items && menu?.items?.length){\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\n <div class=\"avatar\">\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\n </div>\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\n </div>\n </div>\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\n }\n </div>\n }\n\n</div>", styles: [".sa-menu{background-color:var(--primary-800);box-shadow:3px 4px 16px 4px #00000014;width:max-content;border-radius:5px;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.sa-menu-tray::-webkit-scrollbar{width:6px}.sa-menu-tray::-webkit-scrollbar-track{background:transparent}.sa-menu-tray::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}sa-menu-item{cursor:pointer;display:block;color:var(--grey-100, #EAECF0)}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939);z-index:1}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem;margin-top:4.75rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;border-radius:4px;color:var(--grey-200, #D0D5DD);border:1px solid var(--grey-900, #0C111D);background:var(--grey-900, #0C111D);box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--grey-400, #475467)}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:0rem 0}.sa-menu-content-inner{padding-top:0}.sa-menu-content .sa-menu-content-with-search,.sa-menu-content-with-search.sa-menu-content-inner{padding:0}.features-tray-menu .sa-menu-content-inner{padding-top:5rem}.features-tray-menu .sa-menu-content-with-search.sa-menu-content-inner{padding-top:0}.sa-menu-group h2{margin-top:1rem}.sa-menu-group:first-child h2{margin-top:0}.sa-menu-group{margin-bottom:1rem}.profile-badge{display:flex;align-items:center;gap:8px;padding:12px;width:100%;border-bottom:1px solid var(--grey-400)}.avatar{display:flex;justify-content:center;align-items:center}.profile-info{display:flex;flex-direction:column;justify-content:center;font-weight:300}.profile-name{color:var(--structural-white);font-weight:500;font-size:12px;line-height:1.2;margin:0}.profile-email{color:var(--grey-200);font-size:11px;line-height:1.2;font-weight:400;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SAMenuItemComponent, selector: "sa-menu-item", inputs: ["item", "showRound"], outputs: ["onEvent"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "component", type: AvatarComponent, selector: "sa-avatar", inputs: ["id", "imagePath", "altText", "size"], outputs: ["onClickEvent", "onMouseInEvent", "onMouseOutEvent"] }] }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SAMenuComponent, decorators: [{
78
78
  type: Component,
@@ -85,7 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
85
85
  HttpClientModule,
86
86
  IconComponent,
87
87
  AvatarComponent,
88
- ], providers: [IconService], template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\r\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\r\n @if(menu?.title){\r\n <div class=\"sa-menu-title\">\r\n <h1>{{menu?.title}}</h1>\r\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" color=\"var(--grey-200, #D0D5DD)\" class=\"sa-menu-close-icon\"\r\n (click)=\"closeEvent.emit($event)\"></sa-icon>\r\n </div>\r\n }\r\n\r\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\r\n @for (groupItem of menu.itemGroups; track groupItem) {\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n \r\n @for (item of groupItem.items; track $index) {\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n }\r\n </div>\r\n }\r\n } @else if(menu?.items && menu.items.length){\r\n <div class=\"sa-menu-items\">\r\n @for (item of menu.items; track item) {\r\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n }\r\n </div>\r\n } -->\r\n\r\n\r\n <!-- Tab Content or Item Groups -->\r\n <div class=\"sa-menu-content\">\r\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\r\n @if(menu?.showSearch){\r\n <div class=\"search-container\">\r\n <sa-icon icon=\"search\"></sa-icon>\r\n <input name=\"menu-search-bar\" class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \r\n />\r\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\r\n </div>\r\n }\r\n \r\n <!-- Tabs -->\r\n @if(menu?.tabs){\r\n <div class=\"sa-menu-tabs\">\r\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\r\n (click)=\"setActiveTab(i,tab.label)\">\r\n {{ tab.label }}\r\n <!-- ({{ tab.itemGroups.length }}) -->\r\n </button>\r\n </div>\r\n }\r\n <!-- Tabs End -->\r\n\r\n @if(menu?.tabs?.length){\r\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\r\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n <ng-container *ngFor=\"let item of groupItem.items\">\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\r\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n }\r\n } @else if(menu?.itemGroups?.length){\r\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\r\n <div class=\"sa-menu-group\">\r\n <h2>{{groupItem.groupTitle}}</h2>\r\n <ng-container *ngFor=\"let item of groupItem.items\">\r\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\r\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if(menu?.items && menu?.items?.length){\r\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\r\n <div class=\"avatar\">\r\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\r\n </div>\r\n <div class=\"profile-info\">\r\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\r\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\r\n </div>\r\n </div>\r\n <div class=\"sa-menu-items\">\r\n @for (item of menu.items; track item) {\r\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\r\n }\r\n </div>\r\n }\r\n\r\n</div>", styles: [".sa-menu{background-color:var(--primary-800);box-shadow:3px 4px 16px 4px #00000014;width:max-content;border-radius:5px;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.sa-menu-tray::-webkit-scrollbar{width:6px}.sa-menu-tray::-webkit-scrollbar-track{background:transparent}.sa-menu-tray::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}sa-menu-item{cursor:pointer;display:block;color:var(--grey-100, #EAECF0)}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939);z-index:1}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem;margin-top:4.75rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;border-radius:4px;color:var(--grey-200, #D0D5DD);border:1px solid var(--grey-900, #0C111D);background:var(--grey-900, #0C111D);box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--grey-400, #475467)}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:0rem 0}.sa-menu-content-inner{padding-top:0}.sa-menu-content .sa-menu-content-with-search,.sa-menu-content-with-search.sa-menu-content-inner{padding:0}.features-tray-menu .sa-menu-content-inner{padding-top:5rem}.features-tray-menu .sa-menu-content-with-search.sa-menu-content-inner{padding-top:0}.sa-menu-group h2{margin-top:1rem}.sa-menu-group:first-child h2{margin-top:0}.sa-menu-group{margin-bottom:1rem}.profile-badge{display:flex;align-items:center;gap:8px;padding:12px;width:100%;border-bottom:1px solid var(--grey-400)}.avatar{display:flex;justify-content:center;align-items:center}.profile-info{display:flex;flex-direction:column;justify-content:center;font-weight:300}.profile-name{color:var(--structural-white);font-weight:500;font-size:12px;line-height:1.2;margin:0}.profile-email{color:var(--grey-200);font-size:11px;line-height:1.2;font-weight:400;margin:0}\n"] }]
88
+ ], providers: [IconService], template: "<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" color=\"var(--grey-200, #D0D5DD)\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\">\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input name=\"menu-search-bar\" class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \n />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n \n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n </div>\n\n @if(menu?.items && menu?.items?.length){\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\n <div class=\"avatar\">\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\n </div>\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\n </div>\n </div>\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\n }\n </div>\n }\n\n</div>", styles: [".sa-menu{background-color:var(--primary-800);box-shadow:3px 4px 16px 4px #00000014;width:max-content;border-radius:5px;overflow-y:auto;max-height:100%}.sa-round-border{border-radius:8px}.sa-menu-tray{height:calc(100vh - 16px);margin-top:8px;border-top-left-radius:0;border-bottom-left-radius:0;background:var(--grey-700, #1D2939);padding:0 1rem 1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.sa-menu-tray::-webkit-scrollbar{width:6px}.sa-menu-tray::-webkit-scrollbar-track{background:transparent}.sa-menu-tray::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}sa-menu-item{cursor:pointer;display:block;color:var(--grey-100, #EAECF0)}.sa-menu-title{display:flex;justify-content:space-between;align-items:center;position:fixed;padding:1rem 0 .5rem;height:64px;width:calc(100% - 2rem);border-bottom:1px solid var(--primary-50, #F4EBFF);background:var(--grey-700, #1D2939);z-index:1}.sa-menu-title h1{color:var(--grey-100, #EAECF0);font-family:var(--font-family, Roboto);font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px;margin-bottom:0;margin-top:0}.sa-menu-close-icon{cursor:pointer;margin-left:auto;height:20px}.search-container{position:relative;display:flex;align-items:center;margin-bottom:1rem;margin-top:4.75rem}.search-container input{flex:1;padding:.5rem .5rem .5rem 2rem;background-color:#4a5568;border-radius:.25rem;font-size:.875rem;border:none;outline:none;border-radius:4px;color:var(--grey-200, #D0D5DD);border:1px solid var(--grey-900, #0C111D);background:var(--grey-900, #0C111D);box-sizing:border-box}.search-container .search-icon{position:absolute;left:.5rem;font-size:1rem;color:#888;pointer-events:none}.search-container button{margin-left:.5rem;background-color:#6b46c1;padding:.5rem;border-radius:.25rem;border:none;cursor:pointer}.sa-menu-group{margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--grey-400, #475467)}.sa-menu-group:last-child{border-bottom:none}.sa-menu-group h2{color:var(--grey-300, #D0D5DD);font-family:var(--font-family, Roboto);font-size:11px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:.5rem}.MenuBar{width:max-content;margin-top:8px;background-color:var(--grey-400);border-top-left-radius:0;border-bottom-left-radius:0;background-color:#2d3748;padding:0}.sa-menu-tabs{display:flex;border-bottom:1px solid #ccc;margin-bottom:1rem}.sa-menu-tabs button{flex:1;padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#888;border-bottom:2px solid transparent;transition:all .5s ease}.sa-menu-tabs button.active{color:#f7f3f3;border-bottom:2px solid #f7f7f7;font-size:12px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:.5px}.sa-menu-content{padding:0rem 0}.sa-menu-content-inner{padding-top:0}.sa-menu-content .sa-menu-content-with-search,.sa-menu-content-with-search.sa-menu-content-inner{padding:0}.features-tray-menu .sa-menu-content-inner{padding-top:5rem}.features-tray-menu .sa-menu-content-with-search.sa-menu-content-inner{padding-top:0}.sa-menu-group h2{margin-top:1rem}.sa-menu-group:first-child h2{margin-top:0}.sa-menu-group{margin-bottom:1rem}.profile-badge{display:flex;align-items:center;gap:8px;padding:12px;width:100%;border-bottom:1px solid var(--grey-400)}.avatar{display:flex;justify-content:center;align-items:center}.profile-info{display:flex;flex-direction:column;justify-content:center;font-weight:300}.profile-name{color:var(--structural-white);font-weight:500;font-size:12px;line-height:1.2;margin:0}.profile-email{color:var(--grey-200);font-size:11px;line-height:1.2;font-weight:400;margin:0}\n"] }]
89
89
  }], ctorParameters: () => [{ type: i1.Overlay }], propDecorators: { position: [{
90
90
  type: Input
91
91
  }], menu: [{
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
99
99
  }], closeEvent: [{
100
100
  type: Output
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBR04sWUFBWSxHQUtiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsV0FBVyxHQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFTaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQStCbkQsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFDVSxPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBVGpCLGFBQVEsR0FBd0MsUUFBUSxDQUFDLENBQUMsbUJBQW1CO1FBRzVFLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3RCwyQ0FBMkM7UUFDM0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQStENUIsbUJBQWMsR0FBVyxDQUFDLENBQUMsQ0FBQyw2QkFBNkI7SUEzRHpELENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlFLDhDQUE4QztZQUM5QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1RSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBRUQsc0VBQXNFO1lBQ3RFLDJEQUEyRDtZQUMzRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLDhFQUE4RTtnQkFDOUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1lBQy9ELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsNERBQTREO1FBQzVELG9GQUFvRjtRQUNwRixpRkFBaUY7UUFDakYsd0ZBQXdGO1FBQ3hGLDBGQUEwRjtRQUMxRixLQUFLO1FBRUwsNENBQTRDO1FBQzVDLGdFQUFnRTtRQUNoRSx3REFBd0Q7UUFDeEQsK0NBQStDO1FBQy9DLG9HQUFvRztRQUNwRyxtREFBbUQ7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVSxFQUFFLElBQWU7UUFDekMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBRTFELHVFQUF1RTtRQUN2RSxJQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBSUQsWUFBWSxDQUFDLEtBQWEsRUFBQyxPQUFPO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsOEJBQThCO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzhHQTVFVSxlQUFlO2tHQUFmLGVBQWUsaU5BakJqQixDQUFDLFdBQVcsQ0FBQywrQ0NsRHhCLDYySUFnR00sd3RIRHZERixZQUFZLG1iQUNaLG1CQUFtQiw2R0FJbkIsZ0JBQWdCLCtCQUNoQixhQUFhLHFNQUNiLGVBQWU7OzJGQW1CTixlQUFlO2tCQTlCM0IsU0FBUzsrQkFDRSxTQUFTLGNBQ1AsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLFdBQVcsQ0FBQzs0RUFrQmIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgUXVlcnlMaXN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdE1lbnUsXHJcbiAgTWF0TWVudURlZmF1bHRPcHRpb25zLFxyXG4gIE1hdE1lbnVJdGVtLFxyXG4gIE1hdE1lbnVUcmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQge1xyXG4gIE92ZXJsYXksXHJcbiAgUG9zaXRpb25TdHJhdGVneSxcclxuICBDb25uZWN0ZWRQb3NpdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBTQU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWxpc3QvbWVudS1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuLi9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElNZW51LCBJTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21lbnUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgU0FNZW51SXRlbUNvbXBvbmVudCxcclxuICAgIE1hdE1lbnUsXHJcbiAgICBNYXRNZW51SXRlbSxcclxuICAgIENoaXBzQ29tcG9uZW50LFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEljb25Db21wb25lbnQsXHJcbiAgICBBdmF0YXJDb21wb25lbnQsXHJcbl0sXHJcbnByb3ZpZGVyczogW0ljb25TZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL21lbnUuY29tcG9uZW50LmNzcycsXHJcbiAgLy8gYW5pbWF0aW9uczogW1xyXG4gIC8vICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcclxuICAvLyAgICAgc3RhdGUoJ2luJywgc3R5bGUoe1xyXG4gIC8vICAgICAgIHdpZHRoOiAnJywgLy8gV2hlbiBleHBhbmRlZCAoZnVsbHkgc2hvd24pXHJcbiAgLy8gICAgIH0pKSxcclxuICAvLyAgICAgc3RhdGUoJ291dCcsIHN0eWxlKHtcclxuICAvLyAgICAgICB3aWR0aDogJzAnLCAvLyBXaGVuIGNvbGxhcHNlZCAoaGlkZGVuKVxyXG4gIC8vICAgICB9KSksXHJcbiAgLy8gICAgIHRyYW5zaXRpb24oJ2luIDw9PiBvdXQnLCBbXHJcbiAgLy8gICAgICAgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpLCAvLyBBbmltYXRpb24gc3BlZWQgYW5kIGVhc2luZ1xyXG4gIC8vICAgICBdKVxyXG4gIC8vICAgXSlcclxuICAvLyBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTQU1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdib3R0b20nOyAvLyBEZWZhdWx0IHBvc2l0aW9uXHJcbiAgQElucHV0KCkgbWVudTogSU1lbnU7XHJcbiAgQElucHV0KCkgaG9zdEVsOiBhbnk7XHJcbiAgQE91dHB1dCgpIG9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbktleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvLyBAVmlld0NoaWxkKCdtZW51Jywge3N0YXRpYzogdHJ1ZX0pIG1lbnU7XHJcbiAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ21lbnUnXSAmJiBjaGFuZ2VzWydtZW51J10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdNZW51IGNvbXBvbmVudCBkZXRlY3RlZCBjaGFuZ2VzOicsIGNoYW5nZXNbJ21lbnUnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBcclxuICAgICAgLy8gUmVzZXQgYWN0aXZlIHRhYiBpbmRleCBpZiB0YWJzIGhhdmUgY2hhbmdlZFxyXG4gICAgICBpZiAodGhpcy5tZW51Py50YWJzPy5sZW5ndGggJiYgdGhpcy5hY3RpdmVUYWJJbmRleCA+PSB0aGlzLm1lbnUudGFicy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLy8gUHJldmVudCB0aGUgbWVudSBmcm9tIGNsb3NpbmcgYnkgc3RvcHBpbmcgcHJvcGFnYXRpb24gb2YgYW55IGV2ZW50c1xyXG4gICAgICAvLyB0aGF0IG1pZ2h0IHRyaWdnZXIgbWVudSBjbG9zaW5nIGR1cmluZyB0aGlzIHVwZGF0ZSBjeWNsZVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIG1lbnUgc3RheXMgb3BlbiBhZnRlciB0aGUgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSBjb21wbGV0ZXNcclxuICAgICAgICBjb25zb2xlLmxvZygnTWVudSB1cGRhdGUgY29tcGxldGUsIG1lbnUgc2hvdWxkIHJlbWFpbiBvcGVuJyk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcclxuICB9IFxyXG5cclxuICBzZXRQb3NpdGlvbigpIHtcclxuICAgIC8vIGNvbnN0IHBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0ZWRQb3NpdGlvbiB9ID0ge1xyXG4gICAgLy8gICBsZWZ0OiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnIH0sXHJcbiAgICAvLyAgIHJpZ2h0OiB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgIC8vICAgdG9wOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgIC8vICAgYm90dG9tOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScgfVxyXG4gICAgLy8gfTtcclxuXHJcbiAgICAvLyBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSgpO1xyXG4gICAgLy8gY29uc3QgdXNlclByb2ZpbGVQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKENhcmRDb21wb25lbnQpO1xyXG4gICAgLy8gY29uc3QgY29tcFJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKHVzZXJQcm9maWxlUG9ydGFsKTtcclxuICAgIC8vIGNvbXBSZWYuaW5zdGFuY2UudGl0bGUgPSAnbmVlZCBuZHVrIHJhIGJoYWknXHJcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLmJvZHkgPSAnc29tZXRpbWUgbGl0dGxlIGJpdCB0aGlzIHNvbWV0aW1lcyBsaXR0bGUgYml0IHRoYXQuIENvbW1pbmcgbm90IGNvbW1pbmcnXHJcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLmF2YXRhciA9ICcuLi9hc3NldHMvYXZhdGFyLnN2ZydcclxuICB9XHJcblxyXG4gIGl0ZW1DbGlja2VkKGV2ZW50KXtcclxuICAgIHRoaXMub25NZW51SXRlbUNsaWNrKG51bGwsZXZlbnQuaXRlbSlcclxuICB9IFxyXG5cclxuICBvbk1lbnVJdGVtQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogSU1lbnVJdGVtKXtcclxuICAgIC8vIGl0ZW0uaXNTZWxlY3RlZCA9ICFpdGVtLmlzU2VsZWN0ZWQ7XHJcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7dHlwZTogJ0NMSUNLJywgaXRlbSwgbWVudTogdGhpcy5tZW51fSk7XHJcbiAgICBcclxuICAgIC8vIENsb3NlIHRoZSBtZW51IGFmdGVyIHRoZSBpdGVtIGlzIGNsaWNrZWQsIGp1c3QgbGlrZSB0aGUgY2xvc2UgYnV0dG9uXHJcbiAgICBpZihpdGVtLnN1Yk1lbnUgPT09IG51bGwgfHwgaXRlbS5zdWJNZW51ID09PSB1bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaChldmVudDogYW55KXtcclxuICAgIHRoaXMub25FdmVudC5lbWl0KHt0eXBlOiAnU0VBUkNIJywgdmFsdWU6ZXZlbnQudGFyZ2V0LnZhbHVlfSlcclxuICB9XHJcblxyXG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXIgPSAwOyAvLyBUcmFjayB0aGUgYWN0aXZlIHRhYiBpbmRleFxyXG5cclxuICBzZXRBY3RpdmVUYWIoaW5kZXg6IG51bWJlcix0YWJuYW1lKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7IC8vIFVwZGF0ZSB0aGUgYWN0aXZlIHRhYiBpbmRleFxyXG4gICAgdGhpcy5vbkV2ZW50LmVtaXQoe3R5cGU6ICdUQUJfQ0xJQ0snLCBhY3RpdmVUYWI6dGFibmFtZSwgbWVudTogdGhpcy5tZW51fSlcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2EtbWVudVwiIFtuZ0NsYXNzXT1cIm1lbnUuc2hvd1RyYXkgPyAnc2EtbWVudS10cmF5IHNhLXJvdW5kLWJvcmRlcicgOiAnJ1wiXHJcbiAgICBbbmdTdHlsZV09XCJ7d2lkdGg6IG1lbnUud2lkdGggfHwgJ21heC1jb250ZW50J31cIj5cclxuICAgIEBpZihtZW51Py50aXRsZSl7XHJcbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS10aXRsZVwiPlxyXG4gICAgICAgIDxoMT57e21lbnU/LnRpdGxlfX08L2gxPlxyXG4gICAgICAgIDxzYS1pY29uIFtpY29uXT1cIidjbG9zZU91dGxpbmVkJ1wiIFtzaXplXT1cIicyMCdcIiBjb2xvcj1cInZhcigtLWdyZXktMjAwLCAjRDBENUREKVwiIGNsYXNzPVwic2EtbWVudS1jbG9zZS1pY29uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRXZlbnQuZW1pdCgkZXZlbnQpXCI+PC9zYS1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPCEtLSBAaWYobWVudT8uaXRlbUdyb3VwcyAmJiBtZW51Lml0ZW1Hcm91cHMubGVuZ3RoKXtcclxuICAgICAgICBAZm9yIChncm91cEl0ZW0gb2YgbWVudS5pdGVtR3JvdXBzOyB0cmFjayBncm91cEl0ZW0pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cEl0ZW0uaXRlbXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW3Nob3dSb3VuZF09XCJtZW51LnNob3dUcmF5XCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYobWVudT8uaXRlbXMgJiYgbWVudS5pdGVtcy5sZW5ndGgpe1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWl0ZW1zXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudS5pdGVtczsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH0gLS0+XHJcblxyXG5cclxuICAgIDwhLS0gVGFiIENvbnRlbnQgb3IgSXRlbSBHcm91cHMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtY29udGVudC1pbm5lciB7e21lbnU/LnNob3dTZWFyY2ggPyAnc2EtbWVudS1jb250ZW50LXdpdGgtc2VhcmNoJyA6ICcnfX1cIj5cclxuICAgICAgICAgICAgQGlmKG1lbnU/LnNob3dTZWFyY2gpe1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBpY29uPVwic2VhcmNoXCI+PC9zYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwibWVudS1zZWFyY2gtYmFyXCIgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiAoa2V5dXApPVwib25TZWFyY2goJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cIm1lbnUuc2VhcmNoUGxhY2Vob2xkZXJcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwibWVudT8uc2hvd0FkZEljb25cIj48aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS0gVGFicyAtLT5cclxuICAgICAgICAgICAgQGlmKG1lbnU/LnRhYnMpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS10YWJzXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCB0YWIgb2YgbWVudS50YWJzOyBsZXQgaSA9IGluZGV4XCIgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBhY3RpdmVUYWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVRhYihpLHRhYi5sYWJlbClcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyB0YWIubGFiZWwgfX1cclxuICAgICAgICAgICAgICAgICAgICA8IS0tICh7eyB0YWIuaXRlbUdyb3Vwcy5sZW5ndGggfX0pIC0tPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwhLS0gVGFicyBFbmQgLS0+XHJcblxyXG4gICAgICAgICAgICBAaWYobWVudT8udGFicz8ubGVuZ3RoKXtcclxuICAgICAgICAgICAgQGlmKG1lbnUudGFic1thY3RpdmVUYWJJbmRleF0/Lml0ZW1Hcm91cHM/Lmxlbmd0aCl7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwSXRlbSBvZiBtZW51LnRhYnNbYWN0aXZlVGFiSW5kZXhdLml0ZW1Hcm91cHNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyPnt7Z3JvdXBJdGVtLmdyb3VwVGl0bGV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cEl0ZW0uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW3Nob3dSb3VuZF09XCJtZW51LnNob3dUcmF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiPjwvc2EtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYobWVudT8uaXRlbUdyb3Vwcz8ubGVuZ3RoKXtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXBJdGVtIG9mIG1lbnUuaXRlbUdyb3Vwc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDI+e3tncm91cEl0ZW0uZ3JvdXBUaXRsZX19PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwSXRlbS5pdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbc2hvd1JvdW5kXT1cIm1lbnUuc2hvd1RyYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCI+PC9zYS1tZW51LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZihtZW51Py5pdGVtcyAmJiBtZW51Py5pdGVtcz8ubGVuZ3RoKXtcclxuICAgIDxkaXYgKm5nSWY9XCJtZW51Py51c2VyXCIgY2xhc3M9XCJwcm9maWxlLWJhZGdlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiPlxyXG4gICAgICAgICAgICA8c2EtYXZhdGFyIFthbHRUZXh0XT1cIm1lbnU/LnVzZXI/LmFsdFRleHRcIiBbaW1hZ2VQYXRoXT1cIicnXCIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvc2EtYXZhdGFyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWluZm9cIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJwcm9maWxlLW5hbWVcIj57e21lbnU/LnVzZXI/Lm5hbWV9fTwvcD5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJwcm9maWxlLWVtYWlsXCI+e3ttZW51Py51c2VyPy5lbWFpbH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1pdGVtc1wiPlxyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudS5pdGVtczsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiAob25FdmVudCk9XCJpdGVtQ2xpY2tlZCgkZXZlbnQpXCI+IDwvc2EtbWVudS1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuPC9kaXY+Il19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBR04sWUFBWSxHQUtiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsV0FBVyxHQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFTaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQStCbkQsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFDVSxPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBVGpCLGFBQVEsR0FBd0MsUUFBUSxDQUFDLENBQUMsbUJBQW1CO1FBRzVFLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3RCwyQ0FB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QVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLFdBQVcsQ0FBQzs0RUFrQmIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNYXRNZW51LFxuICBNYXRNZW51RGVmYXVsdE9wdGlvbnMsXG4gIE1hdE1lbnVJdGVtLFxuICBNYXRNZW51VHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge1xuICBPdmVybGF5LFxuICBQb3NpdGlvblN0cmF0ZWd5LFxuICBDb25uZWN0ZWRQb3NpdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlJztcbmltcG9ydCB7IFNBTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtbGlzdC9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElNZW51LCBJTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL21lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudH0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2EtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU0FNZW51SXRlbUNvbXBvbmVudCxcbiAgICBNYXRNZW51LFxuICAgIE1hdE1lbnVJdGVtLFxuICAgIENoaXBzQ29tcG9uZW50LFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG5dLFxucHJvdmlkZXJzOiBbSWNvblNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5jc3MnLFxuICAvLyBhbmltYXRpb25zOiBbXG4gIC8vICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcbiAgLy8gICAgIHN0YXRlKCdpbicsIHN0eWxlKHtcbiAgLy8gICAgICAgd2lkdGg6ICcnLCAvLyBXaGVuIGV4cGFuZGVkIChmdWxseSBzaG93bilcbiAgLy8gICAgIH0pKSxcbiAgLy8gICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XG4gIC8vICAgICAgIHdpZHRoOiAnMCcsIC8vIFdoZW4gY29sbGFwc2VkIChoaWRkZW4pXG4gIC8vICAgICB9KSksXG4gIC8vICAgICB0cmFuc2l0aW9uKCdpbiA8PT4gb3V0JywgW1xuICAvLyAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JyksIC8vIEFuaW1hdGlvbiBzcGVlZCBhbmQgZWFzaW5nXG4gIC8vICAgICBdKVxuICAvLyAgIF0pXG4gIC8vIF1cbn0pXG5leHBvcnQgY2xhc3MgU0FNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7IC8vIERlZmF1bHQgcG9zaXRpb25cbiAgQElucHV0KCkgbWVudTogSU1lbnU7XG4gIEBJbnB1dCgpIGhvc3RFbDogYW55O1xuICBAT3V0cHV0KCkgb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbktleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIEBWaWV3Q2hpbGQoJ21lbnUnLCB7c3RhdGljOiB0cnVlfSkgbWVudTtcbiAgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICkge1xuICB9XG5cbiAgXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbWVudSddICYmIGNoYW5nZXNbJ21lbnUnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdNZW51IGNvbXBvbmVudCBkZXRlY3RlZCBjaGFuZ2VzOicsIGNoYW5nZXNbJ21lbnUnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgXG4gICAgICAvLyBSZXNldCBhY3RpdmUgdGFiIGluZGV4IGlmIHRhYnMgaGF2ZSBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5tZW51Py50YWJzPy5sZW5ndGggJiYgdGhpcy5hY3RpdmVUYWJJbmRleCA+PSB0aGlzLm1lbnUudGFicy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFByZXZlbnQgdGhlIG1lbnUgZnJvbSBjbG9zaW5nIGJ5IHN0b3BwaW5nIHByb3BhZ2F0aW9uIG9mIGFueSBldmVudHNcbiAgICAgIC8vIHRoYXQgbWlnaHQgdHJpZ2dlciBtZW51IGNsb3NpbmcgZHVyaW5nIHRoaXMgdXBkYXRlIGN5Y2xlXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBtZW51IHN0YXlzIG9wZW4gYWZ0ZXIgdGhlIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgY29tcGxldGVzXG4gICAgICAgIGNvbnNvbGUubG9nKCdNZW51IHVwZGF0ZSBjb21wbGV0ZSwgbWVudSBzaG91bGQgcmVtYWluIG9wZW4nKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xuICB9IFxuXG4gIHNldFBvc2l0aW9uKCkge1xuICAgIC8vIGNvbnN0IHBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0ZWRQb3NpdGlvbiB9ID0ge1xuICAgIC8vICAgbGVmdDogeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIC8vICAgcmlnaHQ6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgIC8vICAgdG9wOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAvLyAgIGJvdHRvbTogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH1cbiAgICAvLyB9O1xuXG4gICAgLy8gY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoKTtcbiAgICAvLyBjb25zdCB1c2VyUHJvZmlsZVBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoQ2FyZENvbXBvbmVudCk7XG4gICAgLy8gY29uc3QgY29tcFJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKHVzZXJQcm9maWxlUG9ydGFsKTtcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLnRpdGxlID0gJ25lZWQgbmR1ayByYSBiaGFpJ1xuICAgIC8vIGNvbXBSZWYuaW5zdGFuY2UuYm9keSA9ICdzb21ldGltZSBsaXR0bGUgYml0IHRoaXMgc29tZXRpbWVzIGxpdHRsZSBiaXQgdGhhdC4gQ29tbWluZyBub3QgY29tbWluZydcbiAgICAvLyBjb21wUmVmLmluc3RhbmNlLmF2YXRhciA9ICcuLi9hc3NldHMvYXZhdGFyLnN2ZydcbiAgfVxuXG4gIGl0ZW1DbGlja2VkKGV2ZW50KXtcbiAgICB0aGlzLm9uTWVudUl0ZW1DbGljayhudWxsLGV2ZW50Lml0ZW0pXG4gIH0gXG5cbiAgb25NZW51SXRlbUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IElNZW51SXRlbSl7XG4gICAgLy8gaXRlbS5pc1NlbGVjdGVkID0gIWl0ZW0uaXNTZWxlY3RlZDtcbiAgICB0aGlzLm9uRXZlbnQuZW1pdCh7dHlwZTogJ0NMSUNLJywgaXRlbSwgbWVudTogdGhpcy5tZW51fSk7XG4gICAgXG4gICAgLy8gQ2xvc2UgdGhlIG1lbnUgYWZ0ZXIgdGhlIGl0ZW0gaXMgY2xpY2tlZCwganVzdCBsaWtlIHRoZSBjbG9zZSBidXR0b25cbiAgICBpZihpdGVtLnN1Yk1lbnUgPT09IG51bGwgfHwgaXRlbS5zdWJNZW51ID09PSB1bmRlZmluZWQpe1xuICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50OiBhbnkpe1xuICAgIHRoaXMub25FdmVudC5lbWl0KHt0eXBlOiAnU0VBUkNIJywgdmFsdWU6ZXZlbnQudGFyZ2V0LnZhbHVlfSlcbiAgfVxuXG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXIgPSAwOyAvLyBUcmFjayB0aGUgYWN0aXZlIHRhYiBpbmRleFxuXG4gIHNldEFjdGl2ZVRhYihpbmRleDogbnVtYmVyLHRhYm5hbWUpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7IC8vIFVwZGF0ZSB0aGUgYWN0aXZlIHRhYiBpbmRleFxuICAgIHRoaXMub25FdmVudC5lbWl0KHt0eXBlOiAnVEFCX0NMSUNLJywgYWN0aXZlVGFiOnRhYm5hbWUsIG1lbnU6IHRoaXMubWVudX0pXG4gIH1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic2EtbWVudVwiIFtuZ0NsYXNzXT1cIm1lbnUuc2hvd1RyYXkgPyAnc2EtbWVudS10cmF5IHNhLXJvdW5kLWJvcmRlcicgOiAnJ1wiXG4gICAgW25nU3R5bGVdPVwie3dpZHRoOiBtZW51LndpZHRoIHx8ICdtYXgtY29udGVudCd9XCI+XG4gICAgQGlmKG1lbnU/LnRpdGxlKXtcbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS10aXRsZVwiPlxuICAgICAgICA8aDE+e3ttZW51Py50aXRsZX19PC9oMT5cbiAgICAgICAgPHNhLWljb24gW2ljb25dPVwiJ2Nsb3NlT3V0bGluZWQnXCIgW3NpemVdPVwiJzIwJ1wiIGNvbG9yPVwidmFyKC0tZ3JleS0yMDAsICNEMEQ1REQpXCIgY2xhc3M9XCJzYS1tZW51LWNsb3NlLWljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRXZlbnQuZW1pdCgkZXZlbnQpXCI+PC9zYS1pY29uPlxuICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gQGlmKG1lbnU/Lml0ZW1Hcm91cHMgJiYgbWVudS5pdGVtR3JvdXBzLmxlbmd0aCl7XG4gICAgICAgIEBmb3IgKGdyb3VwSXRlbSBvZiBtZW51Lml0ZW1Hcm91cHM7IHRyYWNrIGdyb3VwSXRlbSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8aDI+e3tncm91cEl0ZW0uZ3JvdXBUaXRsZX19PC9oMj5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cEl0ZW0uaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxzYS1tZW51LWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtzaG93Um91bmRdPVwibWVudS5zaG93VHJheVwiIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiPjwvc2EtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZihtZW51Py5pdGVtcyAmJiBtZW51Lml0ZW1zLmxlbmd0aCl7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWl0ZW1zXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIG1lbnUuaXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIj48L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfSAtLT5cblxuXG4gICAgPCEtLSBUYWIgQ29udGVudCBvciBJdGVtIEdyb3VwcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwic2EtbWVudS1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWNvbnRlbnQtaW5uZXIge3ttZW51Py5zaG93U2VhcmNoID8gJ3NhLW1lbnUtY29udGVudC13aXRoLXNlYXJjaCcgOiAnJ319XCI+XG4gICAgICAgICAgICBAaWYobWVudT8uc2hvd1NlYXJjaCl7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gaWNvbj1cInNlYXJjaFwiPjwvc2EtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJtZW51LXNlYXJjaC1iYXJcIiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIChrZXl1cCk9XCJvblNlYXJjaCgkZXZlbnQpXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwibWVudS5zZWFyY2hQbGFjZWhvbGRlclwiICBcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIm1lbnU/LnNob3dBZGRJY29uXCI+PGkgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBUYWJzIC0tPlxuICAgICAgICAgICAgQGlmKG1lbnU/LnRhYnMpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtdGFic1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IHRhYiBvZiBtZW51LnRhYnM7IGxldCBpID0gaW5kZXhcIiBbY2xhc3MuYWN0aXZlXT1cImkgPT09IGFjdGl2ZVRhYkluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZVRhYihpLHRhYi5sYWJlbClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gKHt7IHRhYi5pdGVtR3JvdXBzLmxlbmd0aCB9fSkgLS0+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gVGFicyBFbmQgLS0+XG5cbiAgICAgICAgICAgIEBpZihtZW51Py50YWJzPy5sZW5ndGgpe1xuICAgICAgICAgICAgQGlmKG1lbnUudGFic1thY3RpdmVUYWJJbmRleF0/Lml0ZW1Hcm91cHM/Lmxlbmd0aCl7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cEl0ZW0gb2YgbWVudS50YWJzW2FjdGl2ZVRhYkluZGV4XS5pdGVtR3JvdXBzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhLW1lbnUtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyPnt7Z3JvdXBJdGVtLmdyb3VwVGl0bGV9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXBJdGVtLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2EtbWVudS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbc2hvd1JvdW5kXT1cIm1lbnUuc2hvd1RyYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiPjwvc2EtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSBpZihtZW51Py5pdGVtR3JvdXBzPy5sZW5ndGgpe1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXBJdGVtIG9mIG1lbnUuaXRlbUdyb3Vwc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMj57e2dyb3VwSXRlbS5ncm91cFRpdGxlfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwSXRlbS5pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW3Nob3dSb3VuZF09XCJtZW51LnNob3dUcmF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIj48L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYobWVudT8uaXRlbXMgJiYgbWVudT8uaXRlbXM/Lmxlbmd0aCl7XG4gICAgPGRpdiAqbmdJZj1cIm1lbnU/LnVzZXJcIiBjbGFzcz1cInByb2ZpbGUtYmFkZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiPlxuICAgICAgICAgICAgPHNhLWF2YXRhciBbYWx0VGV4dF09XCJtZW51Py51c2VyPy5hbHRUZXh0XCIgW2ltYWdlUGF0aF09XCInJ1wiIFtzaXplXT1cIidsYXJnZSdcIj48L3NhLWF2YXRhcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWluZm9cIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+e3ttZW51Py51c2VyPy5uYW1lfX08L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInByb2ZpbGUtZW1haWxcIj57e21lbnU/LnVzZXI/LmVtYWlsfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYS1tZW51LWl0ZW1zXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudS5pdGVtczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgPHNhLW1lbnUtaXRlbSBbaXRlbV09XCJpdGVtXCIgKG9uRXZlbnQpPVwiaXRlbUNsaWNrZWQoJGV2ZW50KVwiPiA8L3NhLW1lbnUtaXRlbT5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIH1cblxuPC9kaXY+Il19