@testgorilla/tgo-ui 2.23.55 → 2.24.1

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 (83) hide show
  1. package/components/alert-banner/alert-banner.component.d.ts +3 -13
  2. package/components/autocomplete/autocomplete.component.d.ts +3 -12
  3. package/components/button/button.component.d.ts +3 -12
  4. package/components/checkbox/checkbox.component.d.ts +3 -12
  5. package/components/checklist/checklist.component.d.ts +60 -0
  6. package/components/checklist/checklist.model.d.ts +7 -0
  7. package/components/datepicker/datepicker.component.d.ts +3 -12
  8. package/components/dialog/dialog.component.d.ts +3 -12
  9. package/components/dropdown/dropdown.component.d.ts +3 -12
  10. package/components/empty-state/empty-state.component.d.ts +3 -11
  11. package/components/field/field.component.d.ts +3 -12
  12. package/components/file-upload/file-upload.component.d.ts +3 -12
  13. package/components/icon/icon.config.d.ts +1 -1
  14. package/components/multi-input/multi-input.component.d.ts +3 -12
  15. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +1 -2
  16. package/components/navbar/navbar.component.d.ts +3 -12
  17. package/components/overflow-menu/overflow-menu.component.d.ts +3 -12
  18. package/components/page-header/page-header.component.d.ts +3 -12
  19. package/components/password-criteria/password.component.d.ts +3 -12
  20. package/components/password-strength/password-strength.component.d.ts +3 -12
  21. package/components/phone-input/phone-input.component.d.ts +3 -12
  22. package/components/progress-bar/progress-bar.component.d.ts +7 -9
  23. package/components/side-panel/side-panel.component.d.ts +3 -5
  24. package/components/side-sheet/side-sheet.component.d.ts +3 -12
  25. package/components/slider/slider.component.d.ts +3 -12
  26. package/components/snackbar/snackbar.component.d.ts +3 -12
  27. package/components/spinner/spinner.component.d.ts +3 -12
  28. package/components/spinner/spinner.module.d.ts +1 -1
  29. package/components/stepper/stepper.component.d.ts +3 -12
  30. package/components/tag/tag.component.d.ts +3 -12
  31. package/components/toggle/toggle.component.d.ts +3 -12
  32. package/components/validation-error/validation-error.component.d.ts +2 -12
  33. package/esm2022/assets/i18n/en.json +2 -1
  34. package/esm2022/components/alert-banner/alert-banner.component.mjs +6 -28
  35. package/esm2022/components/autocomplete/autocomplete.component.mjs +6 -27
  36. package/esm2022/components/autocomplete/transform-Item.pipe.mjs +14 -12
  37. package/esm2022/components/avatar/avatar.component.mjs +1 -1
  38. package/esm2022/components/button/button.component.mjs +5 -26
  39. package/esm2022/components/checkbox/checkbox.component.mjs +6 -27
  40. package/esm2022/components/checklist/checklist.component.mjs +133 -0
  41. package/esm2022/components/checklist/checklist.model.mjs +2 -0
  42. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +5 -4
  43. package/esm2022/components/datepicker/datepicker.component.mjs +6 -27
  44. package/esm2022/components/dialog/dialog.component.mjs +5 -26
  45. package/esm2022/components/dropdown/dropdown.component.mjs +6 -27
  46. package/esm2022/components/empty-state/empty-state.component.mjs +5 -25
  47. package/esm2022/components/field/field.component.mjs +6 -27
  48. package/esm2022/components/file-upload/file-upload.component.mjs +6 -27
  49. package/esm2022/components/icon/icon.config.mjs +5 -1
  50. package/esm2022/components/multi-input/multi-input.component.mjs +6 -27
  51. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +5 -8
  52. package/esm2022/components/navbar/navbar.component.mjs +6 -28
  53. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +6 -27
  54. package/esm2022/components/page-header/page-header.component.mjs +5 -26
  55. package/esm2022/components/password-criteria/password.component.mjs +8 -29
  56. package/esm2022/components/password-strength/password-strength.component.mjs +5 -26
  57. package/esm2022/components/phone-input/phone-input.component.mjs +6 -27
  58. package/esm2022/components/progress-bar/progress-bar.component.mjs +10 -22
  59. package/esm2022/components/radial-progress/radial-progress.component.mjs +1 -1
  60. package/esm2022/components/side-panel/side-panel.component.mjs +8 -18
  61. package/esm2022/components/side-sheet/side-sheet.component.mjs +6 -27
  62. package/esm2022/components/slider/slider.component.mjs +6 -27
  63. package/esm2022/components/snackbar/snackbar.component.mjs +6 -27
  64. package/esm2022/components/spinner/spinner.component.mjs +5 -26
  65. package/esm2022/components/spinner/spinner.module.mjs +4 -4
  66. package/esm2022/components/stepper/stepper.component.mjs +5 -26
  67. package/esm2022/components/tag/tag.component.mjs +5 -26
  68. package/esm2022/components/toggle/toggle.component.mjs +5 -26
  69. package/esm2022/components/validation-error/validation-error.component.mjs +7 -28
  70. package/esm2022/pipes/ui-translate.pipe.mjs +19 -14
  71. package/esm2022/public-api.mjs +5 -3
  72. package/esm2022/utils/localization/language.service.mjs +12 -1
  73. package/fesm2022/testgorilla-tgo-ui.mjs +350 -685
  74. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  75. package/package.json +1 -1
  76. package/pipes/ui-translate.pipe.d.ts +5 -1
  77. package/projects/tgo-canopy-ui/assets/i18n/en.json +2 -1
  78. package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-filled.svg +3 -0
  79. package/projects/tgo-canopy-ui/assets/icons/rebrand/Circle-in-line.svg +3 -0
  80. package/public-api.d.ts +3 -1
  81. package/utils/localization/language.service.d.ts +4 -0
  82. package/esm2022/tokens/app-lang.token.mjs +0 -3
  83. package/tokens/app-lang.token.d.ts +0 -2
@@ -1,12 +1,10 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output, } from '@angular/core';
2
- import { LanguageService } from '../../utils/localization/language.service';
3
2
  import { map, ReplaySubject, startWith, Subject, switchMap, tap } from 'rxjs';
4
3
  import { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';
5
4
  import { ScreenBreakpoints } from '../../models/screen-breakpoints.model';
6
5
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
6
  import { LogoTypeEnum } from '../logo/logo.model';
8
7
  import { AvatarSize } from '../avatar/avatar.model';
9
- import { CANOPY_UI_LANG } from '../../tokens/app-lang.token';
10
8
  import * as i0 from "@angular/core";
11
9
  import * as i1 from "@angular/cdk/layout";
12
10
  import * as i2 from "../side-sheet/side-sheet.service";
@@ -23,7 +21,6 @@ import * as i12 from "../button/button.component";
23
21
  import * as i13 from "./mobile-navbar-side-sheet/mobile-navbar-side-sheet.component";
24
22
  import * as i14 from "../badge/badge.component";
25
23
  import * as i15 from "../../pipes/ui-translate.pipe";
26
- import * as i16 from "../../utils/localization/language.model";
27
24
  export class NavbarComponent {
28
25
  /**
29
26
  * Mobile breakpoint
@@ -35,12 +32,11 @@ export class NavbarComponent {
35
32
  this._mobileBreakpoint$.next(value);
36
33
  }
37
34
  }
38
- constructor(breakpointObserver, defaultAppTheme, sideSheetService, destroyRef, appLang) {
35
+ constructor(breakpointObserver, defaultAppTheme, sideSheetService, destroyRef) {
39
36
  this.breakpointObserver = breakpointObserver;
40
37
  this.defaultAppTheme = defaultAppTheme;
41
38
  this.sideSheetService = sideSheetService;
42
39
  this.destroyRef = destroyRef;
43
- this.appLang = appLang;
44
40
  /**
45
41
  * Routes object
46
42
  *
@@ -77,13 +73,6 @@ export class NavbarComponent {
77
73
  * @memberof NavbarComponent
78
74
  */
79
75
  this.menuItems = [];
80
- /**
81
- * The language to be used
82
- * @property language
83
- * @type {Language}
84
- * @memberof NavbarComponent
85
- */
86
- this.language = LanguageService.defaultLanguage;
87
76
  /**
88
77
  *
89
78
  * Defines the application theme
@@ -136,9 +125,6 @@ export class NavbarComponent {
136
125
  if (defaultAppTheme) {
137
126
  this.applicationTheme = defaultAppTheme;
138
127
  }
139
- if (appLang) {
140
- this.language = appLang;
141
- }
142
128
  }
143
129
  openMobileMenu() {
144
130
  const isSideSheetClosed$ = new Subject();
@@ -152,7 +138,6 @@ export class NavbarComponent {
152
138
  navbarSideSheetComponent.activedRoute = this.activedRoute;
153
139
  navbarSideSheetComponent.routes = this.routes;
154
140
  navbarSideSheetComponent.email = this.email;
155
- navbarSideSheetComponent.language = this.language;
156
141
  navbarSideSheetComponent.contentTemplateRef = this.contentTemplateRef;
157
142
  navbarSideSheetComponent.applicationTheme = this.applicationTheme;
158
143
  navbarSideSheetComponent.logoutEvent.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
@@ -181,23 +166,18 @@ export class NavbarComponent {
181
166
  this.isOpened = isOpened;
182
167
  this.menuState.emit({ isOpened, screenSize });
183
168
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.BreakpointObserver }, { token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i2.SideSheetService }, { token: i0.DestroyRef }, { token: CANOPY_UI_LANG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NavbarComponent, selector: "ui-navbar", inputs: { routes: "routes", activedRoute: "activedRoute", userName: "userName", email: "email", menuItems: "menuItems", language: "language", applicationTheme: "applicationTheme", contentTemplateRef: "contentTemplateRef", mobileBreakpoint: "mobileBreakpoint", isAvatar: "isAvatar", menuClass: "menuClass" }, outputs: { navigateEvent: "navigateEvent", menuItemClicked: "menuItemClicked", logoutEvent: "logoutEvent", menuState: "menuState" }, ngImport: i0, template: "<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n <div class=\"custom-toolbar row\">\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"\n (isMobile$ | async)\n ? logoType.DEFAULT\n : (isTablet$ | async)\n ? logoType.PRIMARY_BRANDMARK_PINK\n : logoType.DEFAULT\n \"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a\n *ngFor=\"let route of routes\"\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <ui-badge\n *ngIf=\"route?.badgeOptions\"\n [label]=\"route.badgeOptions!.text\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n ></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"userName\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon\n [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n <button\n *ngFor=\"let e of menuItems\"\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate: language }}\n </button>\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [language]=\"language\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep .side-sheet-container{display:block;height:100%;position:unset!important}:host ::ng-deep .mat-drawer-container{height:100%}:host ::ng-deep .mat-drawer{padding:0!important;background:#fff!important}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header{padding:16px 16px 16px 24px!important;border-bottom:1px solid #D3D3D3;height:64px}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo{width:100%;margin:0!important;display:flex;justify-content:flex-start}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo img{width:fit-content;height:32px}@media (max-width: 1024px) and (min-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px);max-width:375px}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}@media (max-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px)}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{width:100%;height:100%;background-color:#fff;max-width:1440px;padding:0}@media (max-width: 600px){.mat-toolbar .custom-toolbar{padding:0 16px}}@media (min-width: 1024px) and (max-width: 1280px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (min-width: 960px) and (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (max-width: 960px){.mat-toolbar .custom-toolbar{padding:0 20px!important}}@media (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 64px}}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;height:43px;align-self:center;display:flex;margin-left:0!important}@media (max-width: 1024px){.mat-toolbar .custom-toolbar ui-logo.logo{min-width:22px}}.mat-toolbar .custom-toolbar .navigation{height:100%;margin-left:40px}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .actions{width:100%;display:flex;align-items:center;justify-content:flex-end;margin-right:7px}@media (max-width: 600px){.mat-toolbar .custom-toolbar .actions{margin-right:0}}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%;margin-right:-20px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #D3D3D3}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{justify-content:space-between}@media (min-width: 1280px){.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{padding:0 64px!important}}.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{justify-content:flex-start;margin-left:40px}@media (min-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{min-width:160px}}@media (max-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{margin-left:20px!important}}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] .actions .profile-menu,.mat-toolbar[theme=light] .actions .profile-menu{margin-right:0}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:1px solid transparent;position:relative}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:4px;z-index:1}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #D410AA}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media (max-width: 600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}.mat-toolbar[theme=dark] ui-logo,.mat-toolbar[theme=light] ui-logo{width:100%;display:flex;justify-content:center;align-items:center;margin:0!important}.mat-toolbar[theme=dark] ui-logo ::ng-deep img,.mat-toolbar[theme=light] ui-logo ::ng-deep img{height:32px}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{align-items:center}.mat-toolbar[theme=dark] .custom-toolbar .navigation,.mat-toolbar[theme=dark] .custom-toolbar .actions,.mat-toolbar[theme=light] .custom-toolbar .navigation,.mat-toolbar[theme=light] .custom-toolbar .actions{display:none}}.custom-actions{display:flex;align-items:center;height:64px}@media (max-width: 1024px){.custom-actions{display:none}}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.LogoComponent, selector: "ui-logo", inputs: ["type", "applicationTheme", "label", "width", "allowResizing"] }, { kind: "component", type: i9.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i10.AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "component", type: i11.SideSheetComponent, selector: "ui-side-sheet", inputs: ["position", "language", "applicationTheme"], outputs: ["openChange"] }, { kind: "component", type: i12.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "language", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i13.MobileNavbarSideSheetComponent, selector: "ui-mobile-navbar-side-sheet", inputs: ["routes", "activedRoute", "email", "userName", "menuItems", "language", "contentTemplateRef", "isDesktop", "applicationTheme"], outputs: ["navigateEvent", "menuItemClicked", "logoutEvent"] }, { kind: "component", type: i14.BadgeComponent, selector: "ui-badge", inputs: ["label", "icon", "color", "variant", "notificationsAmount", "applicationTheme", "rebrandColor", "truncateLabel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.BreakpointObserver }, { token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i2.SideSheetService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NavbarComponent, selector: "ui-navbar", inputs: { routes: "routes", activedRoute: "activedRoute", userName: "userName", email: "email", menuItems: "menuItems", applicationTheme: "applicationTheme", contentTemplateRef: "contentTemplateRef", mobileBreakpoint: "mobileBreakpoint", isAvatar: "isAvatar", menuClass: "menuClass" }, outputs: { navigateEvent: "navigateEvent", menuItemClicked: "menuItemClicked", logoutEvent: "logoutEvent", menuState: "menuState" }, ngImport: i0, template: "<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n <div class=\"custom-toolbar row\">\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"\n (isMobile$ | async)\n ? logoType.DEFAULT\n : (isTablet$ | async)\n ? logoType.PRIMARY_BRANDMARK_PINK\n : logoType.DEFAULT\n \"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a\n *ngFor=\"let route of routes\"\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <ui-badge\n *ngIf=\"route?.badgeOptions\"\n [label]=\"route.badgeOptions!.text\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n ></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"userName\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon\n [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n <button\n *ngFor=\"let e of menuItems\"\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep .side-sheet-container{display:block;height:100%;position:unset!important}:host ::ng-deep .mat-drawer-container{height:100%}:host ::ng-deep .mat-drawer{padding:0!important;background:#fff!important}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header{padding:16px 16px 16px 24px!important;border-bottom:1px solid #D3D3D3;height:64px}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo{width:100%;margin:0!important;display:flex;justify-content:flex-start}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo img{width:fit-content;height:32px}@media (max-width: 1024px) and (min-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px);max-width:375px}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}@media (max-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px)}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{width:100%;height:100%;background-color:#fff;max-width:1440px;padding:0}@media (max-width: 600px){.mat-toolbar .custom-toolbar{padding:0 16px}}@media (min-width: 1024px) and (max-width: 1280px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (min-width: 960px) and (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (max-width: 960px){.mat-toolbar .custom-toolbar{padding:0 20px!important}}@media (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 64px}}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;height:43px;align-self:center;display:flex;margin-left:0!important}@media (max-width: 1024px){.mat-toolbar .custom-toolbar ui-logo.logo{min-width:22px}}.mat-toolbar .custom-toolbar .navigation{height:100%;margin-left:40px}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .actions{width:100%;display:flex;align-items:center;justify-content:flex-end;margin-right:7px}@media (max-width: 600px){.mat-toolbar .custom-toolbar .actions{margin-right:0}}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%;margin-right:-20px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #D3D3D3}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{justify-content:space-between}@media (min-width: 1280px){.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{padding:0 64px!important}}.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{justify-content:flex-start;margin-left:40px}@media (min-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{min-width:160px}}@media (max-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{margin-left:20px!important}}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] .actions .profile-menu,.mat-toolbar[theme=light] .actions .profile-menu{margin-right:0}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:1px solid transparent;position:relative}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:4px;z-index:1}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #D410AA}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media (max-width: 600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}.mat-toolbar[theme=dark] ui-logo,.mat-toolbar[theme=light] ui-logo{width:100%;display:flex;justify-content:center;align-items:center;margin:0!important}.mat-toolbar[theme=dark] ui-logo ::ng-deep img,.mat-toolbar[theme=light] ui-logo ::ng-deep img{height:32px}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{align-items:center}.mat-toolbar[theme=dark] .custom-toolbar .navigation,.mat-toolbar[theme=dark] .custom-toolbar .actions,.mat-toolbar[theme=light] .custom-toolbar .navigation,.mat-toolbar[theme=light] .custom-toolbar .actions{display:none}}.custom-actions{display:flex;align-items:center;height:64px}@media (max-width: 1024px){.custom-actions{display:none}}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.LogoComponent, selector: "ui-logo", inputs: ["type", "applicationTheme", "label", "width", "allowResizing"] }, { kind: "component", type: i9.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i10.AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "component", type: i11.SideSheetComponent, selector: "ui-side-sheet", inputs: ["position", "applicationTheme"], outputs: ["openChange"] }, { kind: "component", type: i12.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "tooltipPosition"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i13.MobileNavbarSideSheetComponent, selector: "ui-mobile-navbar-side-sheet", inputs: ["routes", "activedRoute", "email", "userName", "menuItems", "contentTemplateRef", "isDesktop", "applicationTheme"], outputs: ["navigateEvent", "menuItemClicked", "logoutEvent"] }, { kind: "component", type: i14.BadgeComponent, selector: "ui-badge", inputs: ["label", "icon", "color", "variant", "notificationsAmount", "applicationTheme", "rebrandColor", "truncateLabel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
186
171
  }
187
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavbarComponent, decorators: [{
188
173
  type: Component,
189
- args: [{ selector: 'ui-navbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n <div class=\"custom-toolbar row\">\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"\n (isMobile$ | async)\n ? logoType.DEFAULT\n : (isTablet$ | async)\n ? logoType.PRIMARY_BRANDMARK_PINK\n : logoType.DEFAULT\n \"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a\n *ngFor=\"let route of routes\"\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <ui-badge\n *ngIf=\"route?.badgeOptions\"\n [label]=\"route.badgeOptions!.text\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n ></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"userName\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon\n [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n <button\n *ngFor=\"let e of menuItems\"\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate: language }}\n </button>\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [language]=\"language\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep .side-sheet-container{display:block;height:100%;position:unset!important}:host ::ng-deep .mat-drawer-container{height:100%}:host ::ng-deep .mat-drawer{padding:0!important;background:#fff!important}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header{padding:16px 16px 16px 24px!important;border-bottom:1px solid #D3D3D3;height:64px}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo{width:100%;margin:0!important;display:flex;justify-content:flex-start}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo img{width:fit-content;height:32px}@media (max-width: 1024px) and (min-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px);max-width:375px}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}@media (max-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px)}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{width:100%;height:100%;background-color:#fff;max-width:1440px;padding:0}@media (max-width: 600px){.mat-toolbar .custom-toolbar{padding:0 16px}}@media (min-width: 1024px) and (max-width: 1280px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (min-width: 960px) and (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (max-width: 960px){.mat-toolbar .custom-toolbar{padding:0 20px!important}}@media (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 64px}}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;height:43px;align-self:center;display:flex;margin-left:0!important}@media (max-width: 1024px){.mat-toolbar .custom-toolbar ui-logo.logo{min-width:22px}}.mat-toolbar .custom-toolbar .navigation{height:100%;margin-left:40px}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .actions{width:100%;display:flex;align-items:center;justify-content:flex-end;margin-right:7px}@media (max-width: 600px){.mat-toolbar .custom-toolbar .actions{margin-right:0}}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%;margin-right:-20px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #D3D3D3}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{justify-content:space-between}@media (min-width: 1280px){.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{padding:0 64px!important}}.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{justify-content:flex-start;margin-left:40px}@media (min-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{min-width:160px}}@media (max-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{margin-left:20px!important}}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] .actions .profile-menu,.mat-toolbar[theme=light] .actions .profile-menu{margin-right:0}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:1px solid transparent;position:relative}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:4px;z-index:1}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #D410AA}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media (max-width: 600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}.mat-toolbar[theme=dark] ui-logo,.mat-toolbar[theme=light] ui-logo{width:100%;display:flex;justify-content:center;align-items:center;margin:0!important}.mat-toolbar[theme=dark] ui-logo ::ng-deep img,.mat-toolbar[theme=light] ui-logo ::ng-deep img{height:32px}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{align-items:center}.mat-toolbar[theme=dark] .custom-toolbar .navigation,.mat-toolbar[theme=dark] .custom-toolbar .actions,.mat-toolbar[theme=light] .custom-toolbar .navigation,.mat-toolbar[theme=light] .custom-toolbar .actions{display:none}}.custom-actions{display:flex;align-items:center;height:64px}@media (max-width: 1024px){.custom-actions{display:none}}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"] }]
174
+ args: [{ selector: 'ui-navbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ui-side-sheet\n [applicationTheme]=\"applicationTheme\"\n (openChange)=\"onChangeMenuState($event, screenSize)\"\n [position]=\"(isMobile$ | async) ? 'start' : 'end'\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme\">\n <div class=\"custom-toolbar row\">\n <ui-logo\n [applicationTheme]=\"applicationTheme\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"(isMobile$ | async) ? 160 : (isTablet$ | async) ? 30 : 160\"\n [type]=\"\n (isMobile$ | async)\n ? logoType.DEFAULT\n : (isTablet$ | async)\n ? logoType.PRIMARY_BRANDMARK_PINK\n : logoType.DEFAULT\n \"\n ></ui-logo>\n\n <ui-button\n (click)=\"openMobileMenu()\"\n *ngIf=\"isMobile$ | async\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"isOpened ? 'Close-in-line' : 'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n\n <div class=\"navigation row\">\n <a\n *ngFor=\"let route of routes\"\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activedRoute === route.id }\"\n >\n <ui-badge\n *ngIf=\"route?.badgeOptions\"\n [label]=\"route.badgeOptions!.text\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n ></ui-badge>\n <span>{{ route.title }}</span>\n </a>\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n <button mat-button class=\"profile-menu\" *ngIf=\"isTablet$ | async; else pc\" (click)=\"openMobileMenu()\">\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n\n <ng-template #pc>\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <ng-container [ngTemplateOutlet]=\"buttonContent\"></ng-container>\n </button>\n </ng-template>\n\n <ng-template #buttonContent>\n <div class=\"profile-button-content\">\n <ng-container *ngIf=\"isAvatar; else onlyName\">\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme\"\n [name]=\"userName\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n </ng-container>\n\n <ng-template #onlyName>\n {{ userName }}\n </ng-template>\n\n <mat-icon *ngIf=\"applicationTheme === 'classic'; else newThemeIcon\" iconPositionEnd>expand_more</mat-icon>\n <ng-template #newThemeIcon>\n <ui-icon\n [size]=\"'24'\"\n *ngIf=\"!isAvatar\"\n [name]=\"menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\"\n [applicationTheme]=\"applicationTheme\"\n ></ui-icon>\n </ng-template>\n </div>\n </ng-template>\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass\" #menu=\"matMenu\">\n <ng-container *ngIf=\"applicationTheme === 'classic'; else newTheme\">\n <button\n *ngFor=\"let e of menuItems\"\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n <ui-icon *ngIf=\"e?.icon\" [name]=\"e.icon\" size=\"24\"></ui-icon>\n {{ e.text }}\n </div>\n </button>\n\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n </ng-container>\n\n <ng-template #newTheme>\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems\"\n [userName]=\"userName\"\n [routes]=\"routes\"\n [activedRoute]=\"activedRoute\"\n [email]=\"email\"\n [applicationTheme]=\"applicationTheme\"\n [contentTemplateRef]=\"contentTemplateRef\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n ></ui-mobile-navbar-side-sheet>\n </ng-template>\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep .side-sheet-container{display:block;height:100%;position:unset!important}:host ::ng-deep .mat-drawer-container{height:100%}:host ::ng-deep .mat-drawer{padding:0!important;background:#fff!important}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header{padding:16px 16px 16px 24px!important;border-bottom:1px solid #D3D3D3;height:64px}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo{width:100%;margin:0!important;display:flex;justify-content:flex-start}:host ::ng-deep .mat-drawer .mat-drawer-inner-container .header ui-logo img{width:fit-content;height:32px}@media (max-width: 1024px) and (min-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px);max-width:375px}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}@media (max-width: 600px){:host ::ng-deep .mat-drawer{margin-top:64px;height:calc(100% - 64px)}:host ::ng-deep .mat-drawer .header{display:none!important}:host ::ng-deep .mat-drawer-backdrop{background:transparent!important;opacity:0!important}}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{width:100%;height:100%;background-color:#fff;max-width:1440px;padding:0}@media (max-width: 600px){.mat-toolbar .custom-toolbar{padding:0 16px}}@media (min-width: 1024px) and (max-width: 1280px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (min-width: 960px) and (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 40px!important}}@media (max-width: 960px){.mat-toolbar .custom-toolbar{padding:0 20px!important}}@media (max-width: 1024px){.mat-toolbar .custom-toolbar{padding:0 64px}}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;height:43px;align-self:center;display:flex;margin-left:0!important}@media (max-width: 1024px){.mat-toolbar .custom-toolbar ui-logo.logo{min-width:22px}}.mat-toolbar .custom-toolbar .navigation{height:100%;margin-left:40px}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .actions{width:100%;display:flex;align-items:center;justify-content:flex-end;margin-right:7px}@media (max-width: 600px){.mat-toolbar .custom-toolbar .actions{margin-right:0}}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%;margin-right:-20px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #D3D3D3}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{justify-content:space-between}@media (min-width: 1280px){.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{padding:0 64px!important}}.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{justify-content:flex-start;margin-left:40px}@media (min-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{min-width:160px}}@media (max-width: 1024px){.mat-toolbar[theme=dark] ui-logo.logo,.mat-toolbar[theme=light] ui-logo.logo{margin-left:20px!important}}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] .actions .profile-menu,.mat-toolbar[theme=light] .actions .profile-menu{margin-right:0}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:1px solid transparent;position:relative}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:4px;z-index:1}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #D410AA}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media (max-width: 600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}.mat-toolbar[theme=dark] ui-logo,.mat-toolbar[theme=light] ui-logo{width:100%;display:flex;justify-content:center;align-items:center;margin:0!important}.mat-toolbar[theme=dark] ui-logo ::ng-deep img,.mat-toolbar[theme=light] ui-logo ::ng-deep img{height:32px}.mat-toolbar[theme=dark] .custom-toolbar,.mat-toolbar[theme=light] .custom-toolbar{align-items:center}.mat-toolbar[theme=dark] .custom-toolbar .navigation,.mat-toolbar[theme=dark] .custom-toolbar .actions,.mat-toolbar[theme=light] .custom-toolbar .navigation,.mat-toolbar[theme=light] .custom-toolbar .actions{display:none}}.custom-actions{display:flex;align-items:center;height:64px}@media (max-width: 1024px){.custom-actions{display:none}}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"] }]
190
175
  }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: undefined, decorators: [{
191
176
  type: Optional
192
177
  }, {
193
178
  type: Inject,
194
179
  args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
195
- }] }, { type: i2.SideSheetService }, { type: i0.DestroyRef }, { type: i16.Language, decorators: [{
196
- type: Optional
197
- }, {
198
- type: Inject,
199
- args: [CANOPY_UI_LANG]
200
- }] }], propDecorators: { routes: [{
180
+ }] }, { type: i2.SideSheetService }, { type: i0.DestroyRef }], propDecorators: { routes: [{
201
181
  type: Input
202
182
  }], activedRoute: [{
203
183
  type: Input
@@ -207,8 +187,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
207
187
  type: Input
208
188
  }], menuItems: [{
209
189
  type: Input
210
- }], language: [{
211
- type: Input
212
190
  }], applicationTheme: [{
213
191
  type: Input
214
192
  }], contentTemplateRef: [{
@@ -228,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
228
206
  }], menuState: [{
229
207
  type: Output
230
208
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUUvRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzdELE1BQU0sT0FBTyxlQUFlO0lBb0UxQjs7OztPQUlHO0lBQ0gsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUss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QztJQUNoRCxDQUFDOytHQXhNVSxlQUFlLG9EQTBJSixvQ0FBb0MsdUZBR3BDLGNBQWM7bUdBN0l6QixlQUFlLDBlQy9CNUIsZzlKQStJQTs7NEZEaEhhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzswQkE0STVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0NBQW9DOzswQkFHdkQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjO3lDQXJJM0IsTUFBTTtzQkFBZCxLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBT08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQWFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUm91dGUsIE1lbnVJdGVtLCBNZW51U3RhdGUsIFNjcmVlblNpemUgfSBmcm9tICcuL25hdmJhci5tb2RlbCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9sb2NhbGl6YXRpb24vbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IG1hcCwgUmVwbGF5U3ViamVjdCwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2lkZVNoZWV0U2VydmljZSB9IGZyb20gJy4uL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vYmlsZU5hdmJhclNpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vbW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0L21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTY3JlZW5CcmVha3BvaW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9zY3JlZW4tYnJlYWtwb2ludHMubW9kZWwnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTG9nb1R5cGVFbnVtIH0gZnJvbSAnLi4vbG9nby9sb2dvLm1vZGVsJztcbmltcG9ydCB7IEF2YXRhclNpemUgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLm1vZGVsJztcbmltcG9ydCB7IENBTk9QWV9VSV9MQU5HIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2FwcC1sYW5nLnRva2VuJztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYWxpemF0aW9uL2xhbmd1YWdlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktbmF2YmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJvdXRlcyBvYmplY3RcbiAgICpcbiAgICogQHR5cGUge0lSb3V0ZX1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASW5wdXQoKSByb3V0ZXM6IElSb3V0ZVtdID0gW107XG5cbiAgLyoqXG4gICAqIEFjdGl2ZWQgcm91dGUgaWRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlZFJvdXRlID0gJyc7XG5cbiAgLyoqXG4gICAqIFVzZXIgZmlyc3QgbmFtZSBhbmQgbGFzdCBuYW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHVzZXJOYW1lID0gJyc7XG5cbiAgLyoqXG4gICAqIFVzZXIgZW1haWxcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZW1haWwgPSAnJztcblxuICAvKipcbiAgICogTWVudSBpdGVtcyB0byBzaG93IGluIG1lbnUgYWJvdmUgdGhlIExvZyBvdXQgYnV0dG9uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2UgdG8gYmUgdXNlZFxuICAgKiBAcHJvcGVydHkgbGFuZ3VhZ2VcbiAgICogQHR5cGUge0xhbmd1YWdlfVxuICAgKiBAbWVtYmVyb2YgTmF2YmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYW5ndWFnZSA9IExhbmd1YWdlU2VydmljZS5kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgTmF2YmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICpcbiAgICogSXQncyBuZy1jb250ZW50IGZvciBtb2JpbGUgdmVyc2lvblxuICAgKlxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgY29udGVudFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBNb2JpbGUgYnJlYWtwb2ludFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgTmF2YmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgbW9iaWxlQnJlYWtwb2ludCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9tb2JpbGVCcmVha3BvaW50JC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogU2hvdyBhdmF0YXIgd2l0aCB1c2VyIGluaXRpYWxzXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTmF2YmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBpc0F2YXRhciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldHMgY2xhc3MgZm9yIHRoZSBtZW51XG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIG1lbnVDbGFzcyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAT3V0cHV0KCkgbmF2aWdhdGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIG1lbnVJdGVtQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIGxvZ291dEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBtZW51U3RhdGU6IEV2ZW50RW1pdHRlcjxNZW51U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxNZW51U3RhdGU+KCk7XG5cbiAgcHJvdGVjdGVkIHNjcmVlblNpemU6IFNjcmVlblNpemUgPSAnZGVza3RvcCc7XG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGlvbkNvbnRleHQgPSAnTkFWQkFSLic7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21vYmlsZUJyZWFrcG9pbnQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGFibGV0QnJlYWtwb2ludCQgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUJyZWFrcG9pbnRPYnMkID0gdGhpcy5fbW9iaWxlQnJlYWtwb2ludCQucGlwZShzdGFydFdpdGgoU2NyZWVuQnJlYWtwb2ludHMuTU9CSUxFKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFibGV0QnJlYWtwb2ludE9icyQgPSB0aGlzLl90YWJsZXRCcmVha3BvaW50JC5waXBlKHN0YXJ0V2l0aChTY3JlZW5CcmVha3BvaW50cy5UQUJMRVQpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlJCA9IHRoaXMubW9iaWxlQnJlYWtwb2ludE9icyQucGlwZShcbiAgICBzd2l0Y2hNYXAoYnJlYWtwb2ludCA9PiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKGAobWF4LXdpZHRoOiAke2JyZWFrcG9pbnR9cHgpYClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodiA9PiB2Lm1hdGNoZXMpLFxuICAgICAgICB0YXAoaXNNb2JpbGUgPT4gaXNNb2JpbGUgPyB0aGlzLnNjcmVlblNpemUgPSAnbW9iaWxlJyA6ICdkZXNrdG9wJylcbiAgICAgICkpXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc1RhYmxldCQgPSB0aGlzLnRhYmxldEJyZWFrcG9pbnRPYnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGJyZWFrcG9pbnQgPT4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShgKG1heC13aWR0aDogJHticmVha3BvaW50fXB4KWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4gdi5tYXRjaGVzKSxcbiAgICAgICAgdGFwKGlzVGFibGV0ID0+IGlzVGFibGV0ID8gdGhpcy5zY3JlZW5TaXplID0gJ3RhYmxldCcgOiAnZGVza3RvcCcpXG4gICAgICApXG4gICAgKVxuICApO1xuICBwcm90ZWN0ZWQgaXNPcGVuZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxvZ29UeXBlID0gTG9nb1R5cGVFbnVtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnQ0FOT1BZVUlfREVGQVVMVF9BUFBMSUNBVElPTl9USEVNRScpIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFwcFRoZW1lOiBBcHBsaWNhdGlvblRoZW1lLFxuICAgIHByaXZhdGUgc2lkZVNoZWV0U2VydmljZTogU2lkZVNoZWV0U2VydmljZSxcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDQU5PUFlfVUlfTEFORykgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcExhbmc6IExhbmd1YWdlLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuXG4gICAgaWYgKGFwcExhbmcpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2UgPSBhcHBMYW5nO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Nb2JpbGVNZW51KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU2lkZVNoZWV0Q2xvc2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY29uc3QgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50ID0gdGhpcy5zaWRlU2hlZXRTZXJ2aWNlLm9wZW48TW9iaWxlTmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50Pih7XG4gICAgICBjb21wb25lbnRSZWY6IE1vYmlsZU5hdmJhclNpZGVTaGVldENvbXBvbmVudCxcbiAgICAgIHNob3dMb2dvOiB0cnVlLFxuICAgICAgY2xvc2VkOiBpc1NpZGVTaGVldENsb3NlZCQsXG4gICAgfSk7XG5cbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQudXNlck5hbWUgPSB0aGlzLnVzZXJOYW1lO1xuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5tZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcztcbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQuYWN0aXZlZFJvdXRlID0gdGhpcy5hY3RpdmVkUm91dGU7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50LnJvdXRlcyA9IHRoaXMucm91dGVzO1xuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5lbWFpbCA9IHRoaXMuZW1haWw7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50Lmxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZTtcbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5jb250ZW50VGVtcGxhdGVSZWY7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50LmFwcGxpY2F0aW9uVGhlbWUgPSB0aGlzLmFwcGxpY2F0aW9uVGhlbWU7XG5cbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQubG9nb3V0RXZlbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9nb3V0RXZlbnQuZW1pdCgpO1xuICAgICAgaXNTaWRlU2hlZXRDbG9zZWQkLm5leHQoKTtcbiAgICB9KTtcblxuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5tZW51SXRlbUNsaWNrZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMubWVudUl0ZW1DbGlja2VkLmVtaXQodmFsdWUpO1xuICAgICAgaXNTaWRlU2hlZXRDbG9zZWQkLm5leHQoKTtcbiAgICB9KTtcblxuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5uYXZpZ2F0ZUV2ZW50LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLm5hdmlnYXRlRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgICBpc1NpZGVTaGVldENsb3NlZCQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmF2aWdhdGUocm91dGVJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZUV2ZW50LmVtaXQoYC8ke3JvdXRlSWR9YCk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dvdXRFdmVudC5lbWl0KCk7XG4gIH1cblxuICBjbGlja01lbnVJdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lbnVJdGVtQ2xpY2tlZC5lbWl0KGlkKTtcbiAgfVxuXG4gIG9uQ2hhbmdlTWVudVN0YXRlKGlzT3BlbmVkOiBib29sZWFuLCBzY3JlZW5TaXplOiBTY3JlZW5TaXplKSB7XG4gICAgdGhpcy5pc09wZW5lZCA9IGlzT3BlbmVkO1xuICAgIHRoaXMubWVudVN0YXRlLmVtaXQoeyBpc09wZW5lZCwgc2NyZWVuU2l6ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBBdmF0YXJTaXplID0gQXZhdGFyU2l6ZTtcbn1cbiIsIjx1aS1zaWRlLXNoZWV0XG4gIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAob3BlbkNoYW5nZSk9XCJvbkNoYW5nZU1lbnVTdGF0ZSgkZXZlbnQsIHNjcmVlblNpemUpXCJcbiAgW3Bvc2l0aW9uXT1cIihpc01vYmlsZSQgfCBhc3luYykgPyAnc3RhcnQnIDogJ2VuZCdcIlxuPlxuICA8bWF0LXRvb2xiYXIgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdG9vbGJhciByb3dcIj5cbiAgICAgIDx1aS1sb2dvXG4gICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICBjbGFzcz1cImxvZ29cIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGUoJycpXCJcbiAgICAgICAgW2FsbG93UmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgIFt3aWR0aF09XCIoaXNNb2JpbGUkIHwgYXN5bmMpID8gMTYwIDogKGlzVGFibGV0JCB8IGFzeW5jKSA/IDMwIDogMTYwXCJcbiAgICAgICAgW3R5cGVdPVwiXG4gICAgICAgICAgKGlzTW9iaWxlJCB8IGFzeW5jKVxuICAgICAgICAgICAgPyBsb2dvVHlwZS5ERUZBVUxUXG4gICAgICAgICAgICA6IChpc1RhYmxldCQgfCBhc3luYylcbiAgICAgICAgICAgID8gbG9nb1R5cGUuUFJJTUFSWV9CUkFORE1BUktfUElOS1xuICAgICAgICAgICAgOiBsb2dvVHlwZS5ERUZBVUxUXG4gICAgICAgIFwiXG4gICAgICA+PC91aS1sb2dvPlxuXG4gICAgICA8dWktYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJvcGVuTW9iaWxlTWVudSgpXCJcbiAgICAgICAgKm5nSWY9XCJpc01vYmlsZSQgfCBhc3luY1wiXG4gICAgICAgIFt2YXJpYW50XT1cIid0ZXh0J1wiXG4gICAgICAgIFtjb21wYW55Q29sb3JdPVwiJyMyNDI0MjQnXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgICAgIFtpY29uTmFtZV09XCJpc09wZW5lZCA/ICdDbG9zZS1pbi1saW5lJyA6ICdNZW51LWJ1cmdlci1pbi1saW5lJ1wiXG4gICAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgID48L3VpLWJ1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24gcm93XCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlKHJvdXRlLmlkKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgIFtocmVmXT1cInJvdXRlLmlkXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJyb3V0ZS5pZFwiXG4gICAgICAgICAgZGF0YS10ZXN0LXJvbGU9XCJuYXYtcm91dGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVkUm91dGUgPT09IHJvdXRlLmlkIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHVpLWJhZGdlXG4gICAgICAgICAgICAqbmdJZj1cInJvdXRlPy5iYWRnZU9wdGlvbnNcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInJvdXRlLmJhZGdlT3B0aW9ucyEudGV4dFwiXG4gICAgICAgICAgICBbcmVicmFuZENvbG9yXT1cInJvdXRlLmJhZGdlT3B0aW9ucyEuY29sb3JcIlxuICAgICAgICAgID48L3VpLWJhZGdlPlxuICAgICAgICAgIDxzcGFuPnt7IHJvdXRlLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY3Rpb25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJwcm9maWxlLW1lbnVcIiAqbmdJZj1cImlzVGFibGV0JCB8IGFzeW5jOyBlbHNlIHBjXCIgKGNsaWNrKT1cIm9wZW5Nb2JpbGVNZW51KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwYz5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtbWVudVwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJhcHBsaWNhdGlvblRoZW1lICE9PSAnY2xhc3NpYydcIlxuICAgICAgICAgICAgKG1lbnVPcGVuZWQpPVwib25DaGFuZ2VNZW51U3RhdGUodHJ1ZSwgJ2Rlc2t0b3AnKVwiXG4gICAgICAgICAgICAobWVudUNsb3NlZCk9XCJvbkNoYW5nZU1lbnVTdGF0ZShmYWxzZSwgJ2Rlc2t0b3AnKVwiXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWJ1dHRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBdmF0YXI7IGVsc2Ugb25seU5hbWVcIj5cbiAgICAgICAgICAgICAgPHVpLWF2YXRhclxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicHJvZmlsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgb3BlbmVkOiBtZW51Ll9wYW5lbEFuaW1hdGlvblN0YXRlICE9PSAndm9pZCcgfVwiXG4gICAgICAgICAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwidXNlck5hbWVcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIkF2YXRhclNpemUuU01BTExfTUVESVVNXCJcbiAgICAgICAgICAgICAgPjwvdWktYXZhdGFyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjb25seU5hbWU+XG4gICAgICAgICAgICAgIHt7IHVzZXJOYW1lIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhcHBsaWNhdGlvblRoZW1lID09PSAnY2xhc3NpYyc7IGVsc2UgbmV3VGhlbWVJY29uXCIgaWNvblBvc2l0aW9uRW5kPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbmV3VGhlbWVJY29uPlxuICAgICAgICAgICAgICA8dWktaWNvblxuICAgICAgICAgICAgICAgIFtzaXplXT1cIicyNCdcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzQXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtZW51Ll9wYW5lbEFuaW1hdGlvblN0YXRlID09PSAndm9pZCcgPyAnQXJyb3ctY2hldnJvbi1kb3duLWZpbGxlZCcgOiAnQXJyb3ctY2hldnJvbi11cC1maWxsZWQnXCJcbiAgICAgICAgICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgICAgICAgPjwvdWktaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtdG9vbGJhcj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgPG1hdC1tZW51IFtjbGFzc109XCJtZW51Q2xhc3NcIiAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnOyBlbHNlIG5ld1RoZW1lXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlIG9mIG1lbnVJdGVtc1wiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImNsaWNrTWVudUl0ZW0oZS5pZClcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJlLmlkXCJcbiAgICAgICAgZGF0YS10ZXN0LXJvbGU9XCJwcm9maWxlLW1lbnUtaXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cImU/Lmljb25cIiBbbmFtZV09XCJlLmljb25cIiBzaXplPVwiMjRcIj48L3VpLWljb24+XG4gICAgICAgICAge3sgZS50ZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJsb2dvdXQtYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgICAgICAgPG1hdC1pY29uPnBvd2VyX3NldHRpbmdzX25ldzwvbWF0LWljb24+XG4gICAgICAgIHt7IHRyYW5zbGF0aW9uQ29udGV4dCArICdMT0dfT1VUJyB8IHVpVHJhbnNsYXRlOiBsYW5ndWFnZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI25ld1RoZW1lPlxuICAgICAgPHVpLW1vYmlsZS1uYXZiYXItc2lkZS1zaGVldFxuICAgICAgICBbaXNEZXNrdG9wXT1cInRydWVcIlxuICAgICAgICBbbWVudUl0ZW1zXT1cIm1lbnVJdGVtc1wiXG4gICAgICAgIFt1c2VyTmFtZV09XCJ1c2VyTmFtZVwiXG4gICAgICAgIFtyb3V0ZXNdPVwicm91dGVzXCJcbiAgICAgICAgW2FjdGl2ZWRSb3V0ZV09XCJhY3RpdmVkUm91dGVcIlxuICAgICAgICBbZW1haWxdPVwiZW1haWxcIlxuICAgICAgICBbbGFuZ3VhZ2VdPVwibGFuZ3VhZ2VcIlxuICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgW2NvbnRlbnRUZW1wbGF0ZVJlZl09XCJjb250ZW50VGVtcGxhdGVSZWZcIlxuICAgICAgICAobWVudUl0ZW1DbGlja2VkKT1cImNsaWNrTWVudUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIChsb2dvdXRFdmVudCk9XCJsb2dvdXQoKVwiXG4gICAgICA+PC91aS1tb2JpbGUtbmF2YmFyLXNpZGUtc2hlZXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtbWVudT5cbjwvdWktc2lkZS1zaGVldD5cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRS9HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXBELE1BQU0sT0FBTyxlQUFlO0lBNEQxQjs7OztPQUlHO0lBQ0gsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBMkRELFlBQ21CLGtCQUFzQyxFQUNvQixlQUFpQyxFQUNwRyxnQkFBa0MsRUFDbEMsVUFBc0I7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QkFBeEIsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBT08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQWFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNO2dCQUtHLGVBQWU7c0JBQXhCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUm91dGUsIE1lbnVJdGVtLCBNZW51U3RhdGUsIFNjcmVlblNpemUgfSBmcm9tICcuL25hdmJhci5tb2RlbCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IG1hcCwgUmVwbGF5U3ViamVjdCwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2lkZVNoZWV0U2VydmljZSB9IGZyb20gJy4uL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vYmlsZU5hdmJhclNpZGVTaGVldENvbXBvbmVudCB9IGZyb20gJy4vbW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0L21vYmlsZS1uYXZiYXItc2lkZS1zaGVldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTY3JlZW5CcmVha3BvaW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9zY3JlZW4tYnJlYWtwb2ludHMubW9kZWwnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTG9nb1R5cGVFbnVtIH0gZnJvbSAnLi4vbG9nby9sb2dvLm1vZGVsJztcbmltcG9ydCB7IEF2YXRhclNpemUgfSBmcm9tICcuLi9hdmF0YXIvYXZhdGFyLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktbmF2YmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdmJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmF2YmFyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJvdXRlcyBvYmplY3RcbiAgICpcbiAgICogQHR5cGUge0lSb3V0ZX1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASW5wdXQoKSByb3V0ZXM6IElSb3V0ZVtdID0gW107XG5cbiAgLyoqXG4gICAqIEFjdGl2ZWQgcm91dGUgaWRcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlZFJvdXRlID0gJyc7XG5cbiAgLyoqXG4gICAqIFVzZXIgZmlyc3QgbmFtZSBhbmQgbGFzdCBuYW1lXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHVzZXJOYW1lID0gJyc7XG5cbiAgLyoqXG4gICAqIFVzZXIgZW1haWxcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZW1haWwgPSAnJztcblxuICAvKipcbiAgICogTWVudSBpdGVtcyB0byBzaG93IGluIG1lbnUgYWJvdmUgdGhlIExvZyBvdXQgYnV0dG9uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSBhcHBsaWNhdGlvbiB0aGVtZVxuICAgKlxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdsaWdodCc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEl0J3MgbmctY29udGVudCBmb3IgbW9iaWxlIHZlcnNpb25cbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBOYXZiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogTW9iaWxlIGJyZWFrcG9pbnRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1vYmlsZUJyZWFrcG9pbnQodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fbW9iaWxlQnJlYWtwb2ludCQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFNob3cgYXZhdGFyIHdpdGggdXNlciBpbml0aWFsc1xuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE5hdmJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaXNBdmF0YXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXRzIGNsYXNzIGZvciB0aGUgbWVudVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTmF2YmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBtZW51Q2xhc3MgPSAnJztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQE91dHB1dCgpIG5hdmlnYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBPdXRwdXQoKSBsb2dvdXRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbWVudVN0YXRlOiBFdmVudEVtaXR0ZXI8TWVudVN0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudVN0YXRlPigpO1xuXG4gIHByb3RlY3RlZCBzY3JlZW5TaXplOiBTY3JlZW5TaXplID0gJ2Rlc2t0b3AnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRpb25Db250ZXh0ID0gJ05BVkJBUi4nO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tb2JpbGVCcmVha3BvaW50JCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxldEJyZWFrcG9pbnQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVCcmVha3BvaW50T2JzJCA9IHRoaXMuX21vYmlsZUJyZWFrcG9pbnQkLnBpcGUoc3RhcnRXaXRoKFNjcmVlbkJyZWFrcG9pbnRzLk1PQklMRSkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxldEJyZWFrcG9pbnRPYnMkID0gdGhpcy5fdGFibGV0QnJlYWtwb2ludCQucGlwZShzdGFydFdpdGgoU2NyZWVuQnJlYWtwb2ludHMuVEFCTEVUKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSQgPSB0aGlzLm1vYmlsZUJyZWFrcG9pbnRPYnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGJyZWFrcG9pbnQgPT4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShgKG1heC13aWR0aDogJHticmVha3BvaW50fXB4KWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4gdi5tYXRjaGVzKSxcbiAgICAgICAgdGFwKGlzTW9iaWxlID0+IGlzTW9iaWxlID8gdGhpcy5zY3JlZW5TaXplID0gJ21vYmlsZScgOiAnZGVza3RvcCcpXG4gICAgICApKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNUYWJsZXQkID0gdGhpcy50YWJsZXRCcmVha3BvaW50T2JzJC5waXBlKFxuICAgIHN3aXRjaE1hcChicmVha3BvaW50ID0+IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludH1weClgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHYubWF0Y2hlcyksXG4gICAgICAgIHRhcChpc1RhYmxldCA9PiBpc1RhYmxldCA/IHRoaXMuc2NyZWVuU2l6ZSA9ICd0YWJsZXQnIDogJ2Rlc2t0b3AnKVxuICAgICAgKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIGlzT3BlbmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBsb2dvVHlwZSA9IExvZ29UeXBlRW51bTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ0NBTk9QWVVJX0RFRkFVTFRfQVBQTElDQVRJT05fVEhFTUUnKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBcHBUaGVtZTogQXBwbGljYXRpb25UaGVtZSxcbiAgICBwcml2YXRlIHNpZGVTaGVldFNlcnZpY2U6IFNpZGVTaGVldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgb3Blbk1vYmlsZU1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgaXNTaWRlU2hlZXRDbG9zZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdCBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQgPSB0aGlzLnNpZGVTaGVldFNlcnZpY2Uub3BlbjxNb2JpbGVOYXZiYXJTaWRlU2hlZXRDb21wb25lbnQ+KHtcbiAgICAgIGNvbXBvbmVudFJlZjogTW9iaWxlTmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50LFxuICAgICAgc2hvd0xvZ286IHRydWUsXG4gICAgICBjbG9zZWQ6IGlzU2lkZVNoZWV0Q2xvc2VkJCxcbiAgICB9KTtcblxuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC51c2VyTmFtZSA9IHRoaXMudXNlck5hbWU7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50Lm1lbnVJdGVtcyA9IHRoaXMubWVudUl0ZW1zO1xuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5hY3RpdmVkUm91dGUgPSB0aGlzLmFjdGl2ZWRSb3V0ZTtcbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQucm91dGVzID0gdGhpcy5yb3V0ZXM7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50LmVtYWlsID0gdGhpcy5lbWFpbDtcbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQuY29udGVudFRlbXBsYXRlUmVmID0gdGhpcy5jb250ZW50VGVtcGxhdGVSZWY7XG4gICAgbmF2YmFyU2lkZVNoZWV0Q29tcG9uZW50LmFwcGxpY2F0aW9uVGhlbWUgPSB0aGlzLmFwcGxpY2F0aW9uVGhlbWU7XG5cbiAgICBuYXZiYXJTaWRlU2hlZXRDb21wb25lbnQubG9nb3V0RXZlbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9nb3V0RXZlbnQuZW1pdCgpO1xuICAgICAgaXNTaWRlU2hlZXRDbG9zZWQkLm5leHQoKTtcbiAgICB9KTtcblxuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5tZW51SXRlbUNsaWNrZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMubWVudUl0ZW1DbGlja2VkLmVtaXQodmFsdWUpO1xuICAgICAgaXNTaWRlU2hlZXRDbG9zZWQkLm5leHQoKTtcbiAgICB9KTtcblxuICAgIG5hdmJhclNpZGVTaGVldENvbXBvbmVudC5uYXZpZ2F0ZUV2ZW50LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLm5hdmlnYXRlRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgICBpc1NpZGVTaGVldENsb3NlZCQubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmF2aWdhdGUocm91dGVJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZUV2ZW50LmVtaXQoYC8ke3JvdXRlSWR9YCk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dvdXRFdmVudC5lbWl0KCk7XG4gIH1cblxuICBjbGlja01lbnVJdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lbnVJdGVtQ2xpY2tlZC5lbWl0KGlkKTtcbiAgfVxuXG4gIG9uQ2hhbmdlTWVudVN0YXRlKGlzT3BlbmVkOiBib29sZWFuLCBzY3JlZW5TaXplOiBTY3JlZW5TaXplKSB7XG4gICAgdGhpcy5pc09wZW5lZCA9IGlzT3BlbmVkO1xuICAgIHRoaXMubWVudVN0YXRlLmVtaXQoeyBpc09wZW5lZCwgc2NyZWVuU2l6ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBBdmF0YXJTaXplID0gQXZhdGFyU2l6ZTtcbn1cbiIsIjx1aS1zaWRlLXNoZWV0XG4gIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAob3BlbkNoYW5nZSk9XCJvbkNoYW5nZU1lbnVTdGF0ZSgkZXZlbnQsIHNjcmVlblNpemUpXCJcbiAgW3Bvc2l0aW9uXT1cIihpc01vYmlsZSQgfCBhc3luYykgPyAnc3RhcnQnIDogJ2VuZCdcIlxuPlxuICA8bWF0LXRvb2xiYXIgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdG9vbGJhciByb3dcIj5cbiAgICAgIDx1aS1sb2dvXG4gICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICBjbGFzcz1cImxvZ29cIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGUoJycpXCJcbiAgICAgICAgW2FsbG93UmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgIFt3aWR0aF09XCIoaXNNb2JpbGUkIHwgYXN5bmMpID8gMTYwIDogKGlzVGFibGV0JCB8IGFzeW5jKSA/IDMwIDogMTYwXCJcbiAgICAgICAgW3R5cGVdPVwiXG4gICAgICAgICAgKGlzTW9iaWxlJCB8IGFzeW5jKVxuICAgICAgICAgICAgPyBsb2dvVHlwZS5ERUZBVUxUXG4gICAgICAgICAgICA6IChpc1RhYmxldCQgfCBhc3luYylcbiAgICAgICAgICAgID8gbG9nb1R5cGUuUFJJTUFSWV9CUkFORE1BUktfUElOS1xuICAgICAgICAgICAgOiBsb2dvVHlwZS5ERUZBVUxUXG4gICAgICAgIFwiXG4gICAgICA+PC91aS1sb2dvPlxuXG4gICAgICA8dWktYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJvcGVuTW9iaWxlTWVudSgpXCJcbiAgICAgICAgKm5nSWY9XCJpc01vYmlsZSQgfCBhc3luY1wiXG4gICAgICAgIFt2YXJpYW50XT1cIid0ZXh0J1wiXG4gICAgICAgIFtjb21wYW55Q29sb3JdPVwiJyMyNDI0MjQnXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgICAgIFtpY29uTmFtZV09XCJpc09wZW5lZCA/ICdDbG9zZS1pbi1saW5lJyA6ICdNZW51LWJ1cmdlci1pbi1saW5lJ1wiXG4gICAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgID48L3VpLWJ1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24gcm93XCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHJvdXRlIG9mIHJvdXRlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlKHJvdXRlLmlkKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgIFtocmVmXT1cInJvdXRlLmlkXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJyb3V0ZS5pZFwiXG4gICAgICAgICAgZGF0YS10ZXN0LXJvbGU9XCJuYXYtcm91dGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVkUm91dGUgPT09IHJvdXRlLmlkIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHVpLWJhZGdlXG4gICAgICAgICAgICAqbmdJZj1cInJvdXRlPy5iYWRnZU9wdGlvbnNcIlxuICAgICAgICAgICAgW2xhYmVsXT1cInJvdXRlLmJhZGdlT3B0aW9ucyEudGV4dFwiXG4gICAgICAgICAgICBbcmVicmFuZENvbG9yXT1cInJvdXRlLmJhZGdlT3B0aW9ucyEuY29sb3JcIlxuICAgICAgICAgID48L3VpLWJhZGdlPlxuICAgICAgICAgIDxzcGFuPnt7IHJvdXRlLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY3Rpb25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJwcm9maWxlLW1lbnVcIiAqbmdJZj1cImlzVGFibGV0JCB8IGFzeW5jOyBlbHNlIHBjXCIgKGNsaWNrKT1cIm9wZW5Nb2JpbGVNZW51KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwYz5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtbWVudVwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJhcHBsaWNhdGlvblRoZW1lICE9PSAnY2xhc3NpYydcIlxuICAgICAgICAgICAgKG1lbnVPcGVuZWQpPVwib25DaGFuZ2VNZW51U3RhdGUodHJ1ZSwgJ2Rlc2t0b3AnKVwiXG4gICAgICAgICAgICAobWVudUNsb3NlZCk9XCJvbkNoYW5nZU1lbnVTdGF0ZShmYWxzZSwgJ2Rlc2t0b3AnKVwiXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWJ1dHRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBdmF0YXI7IGVsc2Ugb25seU5hbWVcIj5cbiAgICAgICAgICAgICAgPHVpLWF2YXRhclxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicHJvZmlsZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgb3BlbmVkOiBtZW51Ll9wYW5lbEFuaW1hdGlvblN0YXRlICE9PSAndm9pZCcgfVwiXG4gICAgICAgICAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwidXNlck5hbWVcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIkF2YXRhclNpemUuU01BTExfTUVESVVNXCJcbiAgICAgICAgICAgICAgPjwvdWktYXZhdGFyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjb25seU5hbWU+XG4gICAgICAgICAgICAgIHt7IHVzZXJOYW1lIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhcHBsaWNhdGlvblRoZW1lID09PSAnY2xhc3NpYyc7IGVsc2UgbmV3VGhlbWVJY29uXCIgaWNvblBvc2l0aW9uRW5kPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbmV3VGhlbWVJY29uPlxuICAgICAgICAgICAgICA8dWktaWNvblxuICAgICAgICAgICAgICAgIFtzaXplXT1cIicyNCdcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzQXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtZW51Ll9wYW5lbEFuaW1hdGlvblN0YXRlID09PSAndm9pZCcgPyAnQXJyb3ctY2hldnJvbi1kb3duLWZpbGxlZCcgOiAnQXJyb3ctY2hldnJvbi11cC1maWxsZWQnXCJcbiAgICAgICAgICAgICAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgICAgICAgPjwvdWktaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtdG9vbGJhcj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgPG1hdC1tZW51IFtjbGFzc109XCJtZW51Q2xhc3NcIiAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnOyBlbHNlIG5ld1RoZW1lXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlIG9mIG1lbnVJdGVtc1wiXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cImNsaWNrTWVudUl0ZW0oZS5pZClcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJlLmlkXCJcbiAgICAgICAgZGF0YS10ZXN0LXJvbGU9XCJwcm9maWxlLW1lbnUtaXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWl0ZW1cIj5cbiAgICAgICAgICA8dWktaWNvbiAqbmdJZj1cImU/Lmljb25cIiBbbmFtZV09XCJlLmljb25cIiBzaXplPVwiMjRcIj48L3VpLWljb24+XG4gICAgICAgICAge3sgZS50ZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJsb2dvdXQtYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwibG9nb3V0KClcIj5cbiAgICAgICAgPG1hdC1pY29uPnBvd2VyX3NldHRpbmdzX25ldzwvbWF0LWljb24+XG4gICAgICAgIHt7IHRyYW5zbGF0aW9uQ29udGV4dCArICdMT0dfT1VUJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNuZXdUaGVtZT5cbiAgICAgIDx1aS1tb2JpbGUtbmF2YmFyLXNpZGUtc2hlZXRcbiAgICAgICAgW2lzRGVza3RvcF09XCJ0cnVlXCJcbiAgICAgICAgW21lbnVJdGVtc109XCJtZW51SXRlbXNcIlxuICAgICAgICBbdXNlck5hbWVdPVwidXNlck5hbWVcIlxuICAgICAgICBbcm91dGVzXT1cInJvdXRlc1wiXG4gICAgICAgIFthY3RpdmVkUm91dGVdPVwiYWN0aXZlZFJvdXRlXCJcbiAgICAgICAgW2VtYWlsXT1cImVtYWlsXCJcbiAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgIFtjb250ZW50VGVtcGxhdGVSZWZdPVwiY29udGVudFRlbXBsYXRlUmVmXCJcbiAgICAgICAgKG1lbnVJdGVtQ2xpY2tlZCk9XCJjbGlja01lbnVJdGVtKCRldmVudClcIlxuICAgICAgICAobG9nb3V0RXZlbnQpPVwibG9nb3V0KClcIlxuICAgICAgPjwvdWktbW9iaWxlLW5hdmJhci1zaWRlLXNoZWV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LW1lbnU+XG48L3VpLXNpZGUtc2hlZXQ+XG4iXX0=