i-tech-shared-components 1.2.44 → 1.2.45

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.
@@ -171,13 +171,13 @@ export class NewSidebarComponent {
171
171
  });
172
172
  }
173
173
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewSidebarComponent, deps: [{ token: i1.Router }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NewSidebarComponent, isStandalone: true, selector: "i-tech-sidebar", inputs: { platform: "platform", navigationLinks: "navigationLinks", env: "env", userData: "userData" }, outputs: { collapseEvent: "collapseEvent", linkClickEvent: "linkClickEvent", signOutEvent: "signOutEvent", newAuthenticatedResponseEvent: "newAuthenticatedResponseEvent" }, host: { listeners: { "window:beforeunload": "canDeactivate()" } }, ngImport: i0, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CompanyImageComponent, selector: "i-tech-company-image", inputs: ["collapsed", "userData", "currentCompany", "platform"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NewSidebarComponent, isStandalone: true, selector: "i-tech-sidebar", inputs: { platform: "platform", navigationLinks: "navigationLinks", env: "env", userData: "userData" }, outputs: { collapseEvent: "collapseEvent", linkClickEvent: "linkClickEvent", signOutEvent: "signOutEvent", newAuthenticatedResponseEvent: "newAuthenticatedResponseEvent" }, host: { listeners: { "window:beforeunload": "canDeactivate()" } }, ngImport: i0, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.emitClick ? null : link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CompanyImageComponent, selector: "i-tech-company-image", inputs: ["collapsed", "userData", "currentCompany", "platform"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
175
175
  }
176
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewSidebarComponent, decorators: [{
177
177
  type: Component,
178
178
  args: [{ selector: 'i-tech-sidebar', imports: [NgIf, NgFor, TranslateModule, MatMenu, MatMenuModule, CompanyImageComponent, UpperCasePipe, SlicePipe,
179
179
  MatRippleModule, MatTooltipModule, IconButtonComponent, RouterLink
180
- ], standalone: true, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"] }]
180
+ ], standalone: true, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.emitClick ? null : link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"] }]
181
181
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.HttpClient }], propDecorators: { canDeactivate: [{
182
182
  type: HostListener,
183
183
  args: ['window:beforeunload']
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
198
198
  }], userData: [{
199
199
  type: Input
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL25ldy1zaWRlYmFyL25ldy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9uZXctc2lkZWJhci9uZXctc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFFTCxhQUFhLEVBR2QsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7OztBQVczRSxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLGFBQWE7UUFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDakUsQ0FBQztJQXlCRCxZQUNVLE1BQWMsRUFDZCxJQUFnQjtRQURoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBWTtRQTFCaEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDckQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBSzVFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBMkIsRUFBRSxDQUFDO1FBRTlDLHFCQUFnQixHQUFpQyxFQUFFLENBQUM7UUFDcEQsK0JBQTBCLEdBQWdGO1lBQ3hHLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFBO1FBQ0QsYUFBUSxHQUFrQyxFQUFtQyxDQUFDO1FBQzlFLHFCQUFnQixHQUEyQixFQUFFLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBSzdCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQztRQUNoRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQyxJQUFJLEtBQUssWUFBWSxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUM7UUFDN0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxpQkFBaUI7WUFDaEQsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLHVCQUF1QjtZQUNwRCxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsMkJBQTJCO1lBQ3JFLGtCQUFrQixFQUFFLDJCQUEyQjtZQUMvQyxrQkFBa0IsRUFBRSx3QkFBd0I7U0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCwyQkFBMkI7UUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FBQztnQkFDbEIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFO2dCQUNwQixJQUFJLEVBQUUsUUFBUTthQUNmLEVBQUU7Z0JBQ0QsRUFBRSxFQUFFLGFBQWEsQ0FBQyxTQUFTO2dCQUMzQixJQUFJLEVBQUUsY0FBYzthQUNyQjtTQUNBLENBQUM7UUFFRixJQUFJLENBQUMsMEJBQTBCLEdBQUc7WUFDaEMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUE7UUFFRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBNEQsRUFBRSxFQUFFO1lBQ2xGLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1lBQ3ZCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDeEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDMUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM3QyxJQUFJLEVBQUUsVUFBVTtZQUNoQixFQUFFLEVBQUUsYUFBYSxDQUFDLFlBQVk7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLFlBQVk7U0FDdEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQThCO1FBQy9DLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsbUJBQW1CLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQ2hJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBdUIsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUN2RyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQXVDLEVBQUUsRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBOEIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2pILElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHdCQUF3QjtJQUN4QixjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQThCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFFRCwrQkFBK0I7SUFFL0IsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDN0IsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFFdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRixJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNaLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFxQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQU8sR0FBRyxLQUFLO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUM7YUFDeEksU0FBUyxDQUFDLENBQUMsR0FBMEIsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLFdBQVcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RixNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxtQkFBbUIsR0FBRyxDQUFDLFdBQVcsY0FBYyxTQUFTLEVBQUUsQ0FBQztZQUNyRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzsrR0E3TFUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2FDN0JoQyx5ME9BNk1BLHUwTUR2TFksSUFBSSw2RkFBRSxLQUFLLGtIQUFFLGVBQWUsNEZBQUUsT0FBTywwUUFBRSxhQUFhLHllQUFFLHFCQUFxQiw2SEFBRSxhQUFhLDZDQUFFLFNBQVMsNkNBQzdHLGVBQWUsa1NBQUUsZ0JBQWdCLCtCQUFFLG1CQUFtQixpS0FBRSxVQUFVOzs0RkFNekQsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNFLGdCQUFnQixXQUNqQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLFNBQVM7d0JBQzdHLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVO3FCQUNuRSxjQUNXLElBQUk7b0dBTWhCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUI7Z0JBSXpCLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLDZCQUE2QjtzQkFBdEMsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yLCBOZ0lmLCBTbGljZVBpcGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgQXV0aEludGVyZmFjZSxcbiAgQ29tcGFuaWVzRW51bSxcbiAgT3JnYW5pemF0aW9uSW50ZXJmYWNlLFxuICBTeXN0ZW1Sb2xlSW50ZXJmYWNlXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2F1dGguaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7IENvbXBhbnlJbWFnZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBhbnktaW1hZ2UvY29tcGFueS1pbWFnZS5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25MaW5rcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL25hdmlnYXRpb24tbGluay5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcblxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtc2lkZWJhcicsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgVHJhbnNsYXRlTW9kdWxlLCBNYXRNZW51LCBNYXRNZW51TW9kdWxlLCBDb21wYW55SW1hZ2VDb21wb25lbnQsIFVwcGVyQ2FzZVBpcGUsIFNsaWNlUGlwZSxcbiAgICBNYXRSaXBwbGVNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIEljb25CdXR0b25Db21wb25lbnQsIFJvdXRlckxpbmtcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL25ldy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBOZXdTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcpXG4gIGNhbkRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ1NpZGViYXJDb2xsYXBzZWQnLCBgJHt0aGlzLmlzQ29sbGFwc2VkfWApXG4gIH1cbiAgQE91dHB1dCgpIGNvbGxhcHNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBsaW5rQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8TmF2aWdhdGlvbkxpbmtzPigpO1xuICBAT3V0cHV0KCkgc2lnbk91dEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbmV3QXV0aGVudGljYXRlZFJlc3BvbnNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dGhJbnRlcmZhY2U+KCk7XG4gIEBJbnB1dCgpIHBsYXRmb3JtITogQ29tcGFuaWVzRW51bTtcbiAgQElucHV0KCkgbmF2aWdhdGlvbkxpbmtzITogQXJyYXk8TmF2aWdhdGlvbkxpbmtzPjtcbiAgQElucHV0KCkgZW52ITogYW55O1xuICBASW5wdXQoKSB1c2VyRGF0YSE6IEF1dGhJbnRlcmZhY2U7XG4gIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGFjdGl2ZVBhZ2UhOiBzdHJpbmc7XG4gIHNlY29uZExheWVyQWN0aXZlUGFnZSE6IHN0cmluZztcbiAgc2Vjb25kTGF5ZXJPcGVuZWQgPSBmYWxzZTtcbiAgc2Vjb25kTGF5ZXJMaW5rczogQXJyYXk8TmF2aWdhdGlvbkxpbmtzPiA9IFtdO1xuICBjdXJyZW50Q29tcGFueSE6T3JnYW5pemF0aW9uSW50ZXJmYWNlO1xuICBhbGxPcmdhbml6YXRpb25zOiBBcnJheTxPcmdhbml6YXRpb25JbnRlcmZhY2U+ID0gW107XG4gIGFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7aWQ6IENvbXBhbmllc0VudW0sIG5hbWU6IHN0cmluZywgY2hlY2tlZD86IGJvb2xlYW59Pj4gPSB7XG4gICAgYWN0aXZlOiBbXSxcbiAgICBpbmFjdGl2ZTogW11cbiAgfVxuICBBcHBzVXJsczogUmVjb3JkPENvbXBhbmllc0VudW0sIHN0cmluZz4gPSB7fSBhcyBSZWNvcmQ8Q29tcGFuaWVzRW51bSwgc3RyaW5nPjtcbiAgQm90dG9tUG9wdXBMaW5rczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBDb21wYW5pZXNFbnVtID0gQ29tcGFuaWVzRW51bTtcbiAgYWNjZXNzVG9OZXdPcmdhbml6YXRpb24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0QWN0aXZlUGFnZSgpO1xuICAgIHRoaXMuZGV0ZWN0QWN0aXZlQW5kSW5hY3RpdmVBcHBzKCk7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdTaWRlYmFyQ29sbGFwc2VkJykgPT09ICd0cnVlJyB8fCBmYWxzZTtcbiAgICB0aGlzLmNvbGxhcHNlRXZlbnQuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcblxuICAgIHRoaXMuc2V0QXBwc1VybHMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0QWxsQ29tcGFuaWVzKCk7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0QWN0aXZlUGFnZSgpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEFwcHNVcmxzKCk6IHZvaWQge1xuICAgIHRoaXMuQXBwc1VybHMuT1JHQU5JWkFUSU9OID0gdGhpcy5lbnYub3JnYW5pemF0aW9uVXJsICsgJy9hdXRoL29yZ2FuaXphdGlvbic7XG4gICAgdGhpcy5BcHBzVXJscy5CUk9LRVJBR0UgPSB0aGlzLmVudi5icm9rZXJhZ2U7XG4gICAgdGhpcy5BcHBzVXJscy5UMyA9IHRoaXMuZW52LnQzO1xuXG4gICAgdGhpcy5Cb3R0b21Qb3B1cExpbmtzID0ge1xuICAgICAgcHJpdmFjeTogdGhpcy5lbnYubWFpbkRvbWFpbiArICcvcHJpdmFjeS1wb2xpY3knLFxuICAgICAgdGVybXM6IHRoaXMuZW52Lm1haW5Eb21haW4gKyAnL3Rlcm1zLWFuZC1jb25kaXRpb25zJyxcbiAgICAgIG1hbmFnZUFjY291bnQ6IHRoaXMuZW52Lm9yZ2FuaXphdGlvblVybCArICcvYXV0aC9hY2NvdW50LWluZm9ybWF0aW9uJyxcbiAgICAgIGFjY291bnRJbmZvcm1hdGlvbjogJy9hdXRoL2FjY291bnQtaW5mb3JtYXRpb24nLFxuICAgICAgYWRkTmV3T3JnYW5pemF0aW9uOiAnL2F1dGgvb3JnYW5pemF0aW9uL2FkZCdcbiAgICB9XG4gIH1cblxuICBkZXRlY3RBY3RpdmVBbmRJbmFjdGl2ZUFwcHMoKTogdm9pZCB7XG4gICAgY29uc3QgYWxsU3lzdGVtcyA9IFt7XG4gICAgICBpZDogQ29tcGFuaWVzRW51bS5UMyxcbiAgICAgIG5hbWU6ICdUMyBUTVMnXG4gICAgfSwge1xuICAgICAgaWQ6IENvbXBhbmllc0VudW0uQlJPS0VSQUdFLFxuICAgICAgbmFtZTogJ1QzIExvYWRib2FyZCdcbiAgICB9XG4gICAgXTtcblxuICAgIHRoaXMuYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXMgPSB7XG4gICAgICBhY3RpdmU6IFtdLFxuICAgICAgaW5hY3RpdmU6IFtdXG4gICAgfVxuXG4gICAgYWxsU3lzdGVtcy5mb3JFYWNoKChzeXN0ZW06IHtpZDogQ29tcGFuaWVzRW51bSwgbmFtZTogc3RyaW5nLCBjaGVja2VkPzogYm9vbGVhbn0pID0+IHtcbiAgICAgIGlmICh0aGlzLnBsYXRmb3JtID09PSBzeXN0ZW0uaWQpIHtcbiAgICAgICAgc3lzdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9XG4gICAgICBpZiAodGhpcy51c2VyRGF0YS5zeXN0ZW1Sb2xlcz8uZmluZCgocm9sZTogU3lzdGVtUm9sZUludGVyZmFjZSkgPT4gcm9sZS5zeXN0ZW0gPT09IHN5c3RlbS5pZCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVBbmRJbmFjdGl2ZVBsYXRmb3Jtc1snYWN0aXZlJ10ucHVzaChzeXN0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydpbmFjdGl2ZSddLnB1c2goc3lzdGVtKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydhY3RpdmUnXS5wdXNoKHtcbiAgICAgIG5hbWU6ICdUMyBBZG1pbicsXG4gICAgICBpZDogQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04sXG4gICAgICBjaGVja2VkOiB0aGlzLnBsYXRmb3JtID09PSBDb21wYW5pZXNFbnVtLk9SR0FOSVpBVElPTlxuICAgIH0pXG4gIH1cblxuICBzd2l0Y2hPcmdhbml6YXRpb24oY29tcGFueTogT3JnYW5pemF0aW9uSW50ZXJmYWNlKTogdm9pZCB7XG4gICAgaWYgKGNvbXBhbnkuaWQgPT09IHRoaXMuY3VycmVudENvbXBhbnkuaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5odHRwLnBvc3Q8QXV0aEludGVyZmFjZT4oXG4gICAgICB0aGlzLmVudi5kYXRhRW5kcG9pbnQgKyAodGhpcy5wbGF0Zm9ybSAhPT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04gPyAnL2lkJyA6ICcnKSArIGAvYXV0aC9jb21wYW5pZXMvJHtjb21wYW55LmlkfS9sb2dpbmAsIHt9XG4gICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBdXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICB0aGlzLm5ld0F1dGhlbnRpY2F0ZWRSZXNwb25zZUV2ZW50LmVtaXQocmVzcG9uc2UpXG4gICAgfSlcbiAgfVxuXG4gIGdldEFsbENvbXBhbmllcygpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0PEFycmF5PE9yZ2FuaXphdGlvbkludGVyZmFjZT4+KFxuICAgICAgdGhpcy5lbnYuZGF0YUVuZHBvaW50ICsgKHRoaXMucGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9pZCcgOiAnJykgKyAnL2NvbXBhbmllcy9hbGwnXG4gICAgKS5zdWJzY3JpYmUoKGNvbXBhbmllczogQXJyYXk8T3JnYW5pemF0aW9uSW50ZXJmYWNlPikgPT4ge1xuICAgICAgY29uc3QgY3VycmVudENvbXBhbnkgPSBjb21wYW5pZXMuZmluZCgoY29tcGFueTogT3JnYW5pemF0aW9uSW50ZXJmYWNlKSA9PiBjb21wYW55LmlkID09PSB0aGlzLnVzZXJEYXRhLmNvbXBhbnlJZClcbiAgICAgIGlmIChjdXJyZW50Q29tcGFueSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb21wYW55ID0gY3VycmVudENvbXBhbnk7XG4gICAgICB9XG4gICAgICB0aGlzLmFsbE9yZ2FuaXphdGlvbnMgPSBjb21wYW5pZXM7XG4gICAgICBpZiAodGhpcy5wbGF0Zm9ybSA9PT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04pIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb05ld09yZ2FuaXphdGlvbiA9IHRoaXMuYWNjZXNzVG9BZGROZXcoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gT25seSBmb3Igb3JnYW5pemF0aW9uXG4gIGFjY2Vzc1RvQWRkTmV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuYWxsT3JnYW5pemF0aW9ucy5maW5kKChjb21wYW55OiBPcmdhbml6YXRpb25JbnRlcmZhY2UpID0+IGNvbXBhbnkuaXNNeUNvbXBhbnkpKVxuICB9XG5cbiAgLy8gRW5kIE9mIE9ubHkgZm9yIG9yZ2FuaXphdGlvblxuXG4gIG5hdmlnYXRlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gIH1cblxuICBkZXRlY3RBY3RpdmVQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnJvdXRlci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBsZXQgbGluayA9IHRoaXMubmF2aWdhdGlvbkxpbmtzLmZpbmQoKGxpbms6IE5hdmlnYXRpb25MaW5rcykgPT4gcGFnZSA9PT0gbGluay5saW5rVG8pO1xuXG4gICAgaWYgKCFsaW5rKSB7XG4gICAgICBjb25zdCBwYWdlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgbGluayA9IHRoaXMubmF2aWdhdGlvbkxpbmtzLmZpbmQoKGxpbms6IE5hdmlnYXRpb25MaW5rcykgPT4gcGFnZS5pbmNsdWRlcyhsaW5rLmxpbmtUbykpO1xuICAgIH1cblxuICAgIGlmIChsaW5rKSB7XG4gICAgICBpZiAobGluay5zdWJQYWdlcykge1xuICAgICAgICB0aGlzLnNlY29uZExheWVyT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWNvbmRMYXllckxpbmtzID0gbGluay5zdWJQYWdlcztcblxuICAgICAgICBjb25zdCBzdWJMaW5rID0gbGluay5zdWJQYWdlcy5maW5kKChsaW5rOiBOYXZpZ2F0aW9uTGlua3MpID0+IHBhZ2UgPT09IGxpbmsubGlua1RvKTtcbiAgICAgICAgaWYgKHN1YkxpbmspIHtcbiAgICAgICAgICB0aGlzLnNlY29uZExheWVyQWN0aXZlUGFnZSA9IHN1YkxpbmsucGFnZUVudW07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2Vjb25kTGF5ZXJPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWNvbmRMYXllckxpbmtzID0gW107XG4gICAgICAgIHRoaXMuc2Vjb25kTGF5ZXJBY3RpdmVQYWdlID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBsaW5rLnBhZ2VFbnVtO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxpbmtDbGljayhsaW5rOiBOYXZpZ2F0aW9uTGlua3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlID09PSBsaW5rLmxpbmtUbykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsaW5rLmVtaXRDbGljaykge1xuICAgICAgdGhpcy5saW5rQ2xpY2tFdmVudC5lbWl0KGxpbmspXG4gICAgfVxuICB9XG5cbiAgY2hhbmdlQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIHRoaXMuY29sbGFwc2VFdmVudC5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgc2lnbk91dCgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25PdXRFdmVudC5lbWl0KClcbiAgfVxuXG4gIG9wZW5aZW5kZXNrUGFnZShzdXBwb3J0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0PHthY2Nlc3NUb2tlbjogc3RyaW5nfT4odGhpcy5lbnYuZGF0YUVuZHBvaW50ICsgKHRoaXMucGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9pZCcgOiAnJykgKyBgL2F1dGgvemVuZGVza2ApXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IHthY2Nlc3NUb2tlbjogc3RyaW5nfSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXRVcmwgPSBgJHt0aGlzLmVudi56ZW5kZXNrVXJsfS9oYy9lbi11c2AgKyAoc3VwcG9ydCA/ICcvcmVxdWVzdHMvbmV3JyA6ICcnKTtcbiAgICAgICAgY29uc3QgemVuZGVza1VybCA9IGAke3RoaXMuZW52LnplbmRlc2tVcmx9L2FjY2Vzcy9qd3Q/and0PSR7cmVzLmFjY2Vzc1Rva2VufSZyZXR1cm5fdG89JHt0YXJnZXRVcmx9YDtcbiAgICAgICAgd2luZG93Lm9wZW4oemVuZGVza1VybCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyXCJcbiAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uTGlua3MgJiYgdXNlckRhdGFcIlxuICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1haW5fc2lkZWJhci0taGVhZGVyXCI+XG4gICAgPGEgW2hyZWZdPVwicGxhdGZvcm0gPT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9hdXRoL29yZ2FuaXphdGlvbicgOiAnLydcIj5cblxuICAgICAgPGltZyBjbGFzcz1cImxvZ28gcG9pbnRlclwiIGFsdD1cIlwiXG4gICAgICAgICAgICpuZ0lmPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICBbc3JjXT1cIicvYXNzZXRzL2xvZ29zL3NtYWxsLycgKyBwbGF0Zm9ybSArICcuc3ZnJ1wiXG4gICAgICA+XG5cbiAgICAgIDxpbWcgY2xhc3M9XCJsb2dvIHBvaW50ZXJcIiBhbHQ9XCJcIlxuICAgICAgICAgICAqbmdJZj1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICAgICAgIFtzcmNdPVwiJy9hc3NldHMvbG9nb3MvZnVsbC8nICsgcGxhdGZvcm0gKyAnLnN2ZydcIlxuICAgICAgPlxuICAgIDwvYT5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICBbdG9vbHRpcF09XCInU0xQIFRvb2xzJ1wiXG4gICAgICBbaWNvbk5hbWVdPVwiJ2FwcHMnXCJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtYXRNZW51XCJcbiAgICA+PC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8bWF0LW1lbnUgI21hdE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJzaWRlYmFyX3BsYXRmb3Jtc19tZW51XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2FjdGl2ZSddLmxlbmd0aFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudV90aXRsZVwiPlxuICAgICAgICAgIEFjdGl2ZSBBcHBzXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICAqbmdGb3I9XCJsZXQgYXBwIG9mIGFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydhY3RpdmUnXVwiPlxuICAgICAgICAgIDxhIFtocmVmXT1cIkFwcHNVcmxzW2FwcC5pZF1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiPlxuICAgICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGNsYXNzPVwibG9nb1wiIFtzcmNdPVwiJy9hc3NldHMvbG9nb3Mvc21hbGwvJyArIGFwcC5pZCArICcuc3ZnJ1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57e2FwcC5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgY2xhc3M9XCJtbC1hdXRvXCIgc3JjPVwiL2Fzc2V0cy9zZWxlY3RlZF9vcmdhbml6YXRpb24uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcC5jaGVja2VkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiXG4gICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2FjdGl2ZSddLmxlbmd0aCAmJiBhY3RpdmVBbmRJbmFjdGl2ZVBsYXRmb3Jtc1snaW5hY3RpdmUnXS5sZW5ndGhcIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2luYWN0aXZlJ10ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51X3RpdGxlXCI+XG4gICAgICAgICAgSW5hY3RpdmUgQXBwc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiICpuZ0Zvcj1cImxldCBhcHAgb2YgYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2luYWN0aXZlJ11cIj5cbiAgICAgICAgICA8aW1nIGFsdD1cIlwiIGNsYXNzPVwibG9nb1wiIFtzcmNdPVwiJy9hc3NldHMvbG9nb3Mvc21hbGwvJyArIGFwcC5pZCArICcuc3ZnJ1wiPlxuICAgICAgICAgIDxzcGFuPnt7YXBwLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvbWF0LW1lbnU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vjb25kTGF5ZXJMaW5rcy5sZW5ndGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnQtLXRvb2xiYXJcIlxuICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVCYWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aW1nIGFsdD1cIlwiIHNyYz1cIi9hc3NldHMvYmFjay5zdmdcIj5cbiAgICAgICAgPHNwYW4+QmFjazwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5fc2lkZWJhci0tY29udGVudC0tc3ViX3RpdGxlXCI+XG4gICAgICAgIFNldHRpbmdzXG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgKHNlY29uZExheWVyTGlua3MubGVuZ3RoID8gc2Vjb25kTGF5ZXJMaW5rcyA6IG5hdmlnYXRpb25MaW5rcylcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgKm5nSWY9XCJsaW5rLmhhc0RpdmlkZXJcIj48L2Rpdj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImxpbmsubGlua1RvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnQtLWxpbmsgcG9pbnRlclwiXG4gICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJsaW5rLnBhZ2VFbnVtID09PSBhY3RpdmVQYWdlIHx8IGxpbmsucGFnZUVudW0gPT09IHNlY29uZExheWVyQWN0aXZlUGFnZVwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUxpbmtDbGljayhsaW5rKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyZW50X2ljb25cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgW3NyY109XCInL2Fzc2V0cy9saW5rcy8nICsgcGxhdGZvcm0gKyAnLycgKyBsaW5rLmltYWdlICsgJy5zdmcnXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2xpbmsudGl0bGUgfCB0cmFuc2xhdGV9fTwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5ld1wiICpuZ0lmPVwibGluay5pc05ld1wiPk5ldzwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWZvb3RlclwiICpuZ0lmPVwidXNlckRhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyLS1mb290ZXItLXRvZ2dsZVwiXG4gICAgPlxuICAgICAgPGktdGVjaC1pY29uLWJ1dHRvblxuICAgICAgICBbdG9vbHRpcF09XCJpc0NvbGxhcHNlZCA/ICdFeHBhbmQgU2lkZWJhcicgOiAnQ29sbGFwc2UgU2lkZWJhcidcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0JyA6ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfbGVmdCdcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQ29sbGFwc2UoKVwiXG4gICAgICA+PC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyLS1mb290ZXItLXByb2ZpbGVcIj5cbiAgICAgIDxpLXRlY2gtY29tcGFueS1pbWFnZVxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWF0TWVudVwiXG4gICAgICAgIFtjb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICBbdXNlckRhdGFdPVwidXNlckRhdGFcIlxuICAgICAgICBbcGxhdGZvcm1dPVwicGxhdGZvcm1cIlxuICAgICAgICBbY3VycmVudENvbXBhbnldPVwiY3VycmVudENvbXBhbnlcIlxuICAgICAgPjwvaS10ZWNoLWNvbXBhbnktaW1hZ2U+XG4gICAgICA8bWF0LW1lbnUgI21hdE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJzaWRlYmFyX2JvdHRvbV9tZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BfYmFyXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImltYWdlXCIgYWx0PVwiXCIgW3NyY109XCJ1c2VyRGF0YS5pbWFnZVwiXG4gICAgICAgICAgICAgICAqbmdJZj1cInVzZXJEYXRhLmltYWdlOyBlbHNlIE5vSW1hZ2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI05vSW1hZ2U+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Ugbm9faW1hZ2VcIj5cbiAgICAgICAgICAgICAge3t1c2VyRGF0YS5maXJzdE5hbWUgfCBzbGljZTogMCA6IDEgfCB1cHBlcmNhc2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t1c2VyRGF0YS5maXJzdE5hbWV9fSB7e3VzZXJEYXRhLmxhc3ROYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFwiPnt7dXNlckRhdGEuZW1haWx9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGEgW2hyZWZdPVwiQm90dG9tUG9wdXBMaW5rc1snbWFuYWdlQWNjb3VudCddXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtICpuZ0lmPVwicGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OXCIgY2xhc3M9XCJtdC00IHN0YW5kYXJkX21lbnVfaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWNjb3VudCBJbmZvcm1hdGlvblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgW2hyZWZdPVwiQm90dG9tUG9wdXBMaW5rc1snYWNjb3VudEluZm9ybWF0aW9uJ11cIj5cbiAgICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJwbGF0Zm9ybSA9PT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT05cIiBjbGFzcz1cIm10LTQgc3RhbmRhcmRfbWVudV9pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBY2NvdW50IEluZm9ybWF0aW9uXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8YSBbaHJlZl09XCJCb3R0b21Qb3B1cExpbmtzWydhZGROZXdPcmdhbml6YXRpb24nXVwiPlxuICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSAqbmdJZj1cInBsYXRmb3JtID09PSBDb21wYW5pZXNFbnVtLk9SR0FOSVpBVElPTiAmJiBhY2Nlc3NUb05ld09yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWRkIG5ldyBvcmdhbml6YXRpb25cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuXG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbE9yZ2FuaXphdGlvbnMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgPjwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaF90aXRsZVwiPlxuICAgICAgICAgICAgICBTd2l0Y2ggT3JnYW5pemF0aW9uXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm1hdF9tZW51X29yZ2FuaXphdGlvblwiIChjbGljayk9XCJzd2l0Y2hPcmdhbml6YXRpb24ob3JnYW5pemF0aW9uKVwiXG4gICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmdhbml6YXRpb24gb2YgYWxsT3JnYW5pemF0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdhbml6YXRpb25faXRlbV9pbl9tZW51XCI+XG4gICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBjbGFzcz1cImltYWdlXCIgW3NyY109XCJvcmdhbml6YXRpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvcmdhbml6YXRpb24uaW1hZ2U7IGVsc2UgTm9JbWFnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjTm9JbWFnZT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZSBub19pbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e29yZ2FuaXphdGlvbi5uYW1lIHwgc2xpY2U6IDAgOiAxIHwgdXBwZXJjYXNlfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tvcmdhbml6YXRpb24ubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiAqbmdJZj1cIm9yZ2FuaXphdGlvbi5pZCA9PT0gY3VycmVudENvbXBhbnkuaWRcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXNTZWxlY3RlZFwiIHNyYz1cIi9hc3NldHMvc2VsZWN0ZWRfb3JnYW5pemF0aW9uLnN2Z1wiID5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJzdGFuZGFyZF9tZW51X2l0ZW1cIiAoY2xpY2spPVwib3BlblplbmRlc2tQYWdlKClcIj5cbiAgICAgICAgICBIZWxwIENlbnRlclxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YSBbaHJlZl09XCJCb3R0b21Qb3B1cExpbmtzWyd0ZXJtcyddXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic3RhbmRhcmRfbWVudV9pdGVtXCIgPlxuICAgICAgICAgICAgVGVybXMgQW5kIENvbmRpdGlvbnNcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxhIFtocmVmXT1cIkJvdHRvbVBvcHVwTGlua3NbJ3ByaXZhY3knXVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiID5cbiAgICAgICAgICAgIFByaXZhY3kgUG9saWN5XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic3RhbmRhcmRfbWVudV9pdGVtXCIgKGNsaWNrKT1cInNpZ25PdXQoKVwiPlxuICAgICAgICAgIFNpZ24gb3V0XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL25ldy1zaWRlYmFyL25ldy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9uZXctc2lkZWJhci9uZXctc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFFTCxhQUFhLEVBR2QsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7OztBQVczRSxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLGFBQWE7UUFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFr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ZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RixNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxtQkFBbUIsR0FBRyxDQUFDLFdBQVcsY0FBYyxTQUFTLEVBQUUsQ0FBQztZQUNyRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzsrR0E3TFUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2FDN0JoQyxpMk9BNk1BLHUwTUR2TFksSUFBSSw2RkFBRSxLQUFLLGtIQUFFLGVBQWUsNEZBQUUsT0FBTywwUUFBRSxhQUFhLHllQUFFLHFCQUFxQiw2SEFBRSxhQUFhLDZDQUFFLFNBQVMsNkNBQzdHLGVBQWUsa1NBQUUsZ0JBQWdCLCtCQUFFLG1CQUFtQixpS0FBRSxVQUFVOzs0RkFNekQsbUJBQW1CO2tCQVQvQixTQUFTOytCQUNFLGdCQUFnQixXQUNqQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLFNBQVM7d0JBQzdHLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVO3FCQUNuRSxjQUNXLElBQUk7b0dBTWhCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUI7Z0JBSXpCLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLDZCQUE2QjtzQkFBdEMsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9yLCBOZ0lmLCBTbGljZVBpcGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgQXV0aEludGVyZmFjZSxcbiAgQ29tcGFuaWVzRW51bSxcbiAgT3JnYW5pemF0aW9uSW50ZXJmYWNlLFxuICBTeXN0ZW1Sb2xlSW50ZXJmYWNlXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2F1dGguaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7IENvbXBhbnlJbWFnZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBhbnktaW1hZ2UvY29tcGFueS1pbWFnZS5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25MaW5rcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL25hdmlnYXRpb24tbGluay5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcblxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtc2lkZWJhcicsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgVHJhbnNsYXRlTW9kdWxlLCBNYXRNZW51LCBNYXRNZW51TW9kdWxlLCBDb21wYW55SW1hZ2VDb21wb25lbnQsIFVwcGVyQ2FzZVBpcGUsIFNsaWNlUGlwZSxcbiAgICBNYXRSaXBwbGVNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIEljb25CdXR0b25Db21wb25lbnQsIFJvdXRlckxpbmtcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL25ldy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBOZXdTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcpXG4gIGNhbkRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ1NpZGViYXJDb2xsYXBzZWQnLCBgJHt0aGlzLmlzQ29sbGFwc2VkfWApXG4gIH1cbiAgQE91dHB1dCgpIGNvbGxhcHNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBsaW5rQ2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8TmF2aWdhdGlvbkxpbmtzPigpO1xuICBAT3V0cHV0KCkgc2lnbk91dEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbmV3QXV0aGVudGljYXRlZFJlc3BvbnNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEF1dGhJbnRlcmZhY2U+KCk7XG4gIEBJbnB1dCgpIHBsYXRmb3JtITogQ29tcGFuaWVzRW51bTtcbiAgQElucHV0KCkgbmF2aWdhdGlvbkxpbmtzITogQXJyYXk8TmF2aWdhdGlvbkxpbmtzPjtcbiAgQElucHV0KCkgZW52ITogYW55O1xuICBASW5wdXQoKSB1c2VyRGF0YSE6IEF1dGhJbnRlcmZhY2U7XG4gIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGFjdGl2ZVBhZ2UhOiBzdHJpbmc7XG4gIHNlY29uZExheWVyQWN0aXZlUGFnZSE6IHN0cmluZztcbiAgc2Vjb25kTGF5ZXJPcGVuZWQgPSBmYWxzZTtcbiAgc2Vjb25kTGF5ZXJMaW5rczogQXJyYXk8TmF2aWdhdGlvbkxpbmtzPiA9IFtdO1xuICBjdXJyZW50Q29tcGFueSE6T3JnYW5pemF0aW9uSW50ZXJmYWNlO1xuICBhbGxPcmdhbml6YXRpb25zOiBBcnJheTxPcmdhbml6YXRpb25JbnRlcmZhY2U+ID0gW107XG4gIGFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7aWQ6IENvbXBhbmllc0VudW0sIG5hbWU6IHN0cmluZywgY2hlY2tlZD86IGJvb2xlYW59Pj4gPSB7XG4gICAgYWN0aXZlOiBbXSxcbiAgICBpbmFjdGl2ZTogW11cbiAgfVxuICBBcHBzVXJsczogUmVjb3JkPENvbXBhbmllc0VudW0sIHN0cmluZz4gPSB7fSBhcyBSZWNvcmQ8Q29tcGFuaWVzRW51bSwgc3RyaW5nPjtcbiAgQm90dG9tUG9wdXBMaW5rczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBDb21wYW5pZXNFbnVtID0gQ29tcGFuaWVzRW51bTtcbiAgYWNjZXNzVG9OZXdPcmdhbml6YXRpb24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0QWN0aXZlUGFnZSgpO1xuICAgIHRoaXMuZGV0ZWN0QWN0aXZlQW5kSW5hY3RpdmVBcHBzKCk7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdTaWRlYmFyQ29sbGFwc2VkJykgPT09ICd0cnVlJyB8fCBmYWxzZTtcbiAgICB0aGlzLmNvbGxhcHNlRXZlbnQuZW1pdCh0aGlzLmlzQ29sbGFwc2VkKTtcblxuICAgIHRoaXMuc2V0QXBwc1VybHMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0QWxsQ29tcGFuaWVzKCk7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHRoaXMuZGV0ZWN0QWN0aXZlUGFnZSgpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEFwcHNVcmxzKCk6IHZvaWQge1xuICAgIHRoaXMuQXBwc1VybHMuT1JHQU5JWkFUSU9OID0gdGhpcy5lbnYub3JnYW5pemF0aW9uVXJsICsgJy9hdXRoL29yZ2FuaXphdGlvbic7XG4gICAgdGhpcy5BcHBzVXJscy5CUk9LRVJBR0UgPSB0aGlzLmVudi5icm9rZXJhZ2U7XG4gICAgdGhpcy5BcHBzVXJscy5UMyA9IHRoaXMuZW52LnQzO1xuXG4gICAgdGhpcy5Cb3R0b21Qb3B1cExpbmtzID0ge1xuICAgICAgcHJpdmFjeTogdGhpcy5lbnYubWFpbkRvbWFpbiArICcvcHJpdmFjeS1wb2xpY3knLFxuICAgICAgdGVybXM6IHRoaXMuZW52Lm1haW5Eb21haW4gKyAnL3Rlcm1zLWFuZC1jb25kaXRpb25zJyxcbiAgICAgIG1hbmFnZUFjY291bnQ6IHRoaXMuZW52Lm9yZ2FuaXphdGlvblVybCArICcvYXV0aC9hY2NvdW50LWluZm9ybWF0aW9uJyxcbiAgICAgIGFjY291bnRJbmZvcm1hdGlvbjogJy9hdXRoL2FjY291bnQtaW5mb3JtYXRpb24nLFxuICAgICAgYWRkTmV3T3JnYW5pemF0aW9uOiAnL2F1dGgvb3JnYW5pemF0aW9uL2FkZCdcbiAgICB9XG4gIH1cblxuICBkZXRlY3RBY3RpdmVBbmRJbmFjdGl2ZUFwcHMoKTogdm9pZCB7XG4gICAgY29uc3QgYWxsU3lzdGVtcyA9IFt7XG4gICAgICBpZDogQ29tcGFuaWVzRW51bS5UMyxcbiAgICAgIG5hbWU6ICdUMyBUTVMnXG4gICAgfSwge1xuICAgICAgaWQ6IENvbXBhbmllc0VudW0uQlJPS0VSQUdFLFxuICAgICAgbmFtZTogJ1QzIExvYWRib2FyZCdcbiAgICB9XG4gICAgXTtcblxuICAgIHRoaXMuYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXMgPSB7XG4gICAgICBhY3RpdmU6IFtdLFxuICAgICAgaW5hY3RpdmU6IFtdXG4gICAgfVxuXG4gICAgYWxsU3lzdGVtcy5mb3JFYWNoKChzeXN0ZW06IHtpZDogQ29tcGFuaWVzRW51bSwgbmFtZTogc3RyaW5nLCBjaGVja2VkPzogYm9vbGVhbn0pID0+IHtcbiAgICAgIGlmICh0aGlzLnBsYXRmb3JtID09PSBzeXN0ZW0uaWQpIHtcbiAgICAgICAgc3lzdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9XG4gICAgICBpZiAodGhpcy51c2VyRGF0YS5zeXN0ZW1Sb2xlcz8uZmluZCgocm9sZTogU3lzdGVtUm9sZUludGVyZmFjZSkgPT4gcm9sZS5zeXN0ZW0gPT09IHN5c3RlbS5pZCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVBbmRJbmFjdGl2ZVBsYXRmb3Jtc1snYWN0aXZlJ10ucHVzaChzeXN0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydpbmFjdGl2ZSddLnB1c2goc3lzdGVtKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydhY3RpdmUnXS5wdXNoKHtcbiAgICAgIG5hbWU6ICdUMyBBZG1pbicsXG4gICAgICBpZDogQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04sXG4gICAgICBjaGVja2VkOiB0aGlzLnBsYXRmb3JtID09PSBDb21wYW5pZXNFbnVtLk9SR0FOSVpBVElPTlxuICAgIH0pXG4gIH1cblxuICBzd2l0Y2hPcmdhbml6YXRpb24oY29tcGFueTogT3JnYW5pemF0aW9uSW50ZXJmYWNlKTogdm9pZCB7XG4gICAgaWYgKGNvbXBhbnkuaWQgPT09IHRoaXMuY3VycmVudENvbXBhbnkuaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5odHRwLnBvc3Q8QXV0aEludGVyZmFjZT4oXG4gICAgICB0aGlzLmVudi5kYXRhRW5kcG9pbnQgKyAodGhpcy5wbGF0Zm9ybSAhPT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04gPyAnL2lkJyA6ICcnKSArIGAvYXV0aC9jb21wYW5pZXMvJHtjb21wYW55LmlkfS9sb2dpbmAsIHt9XG4gICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBdXRoSW50ZXJmYWNlKSA9PiB7XG4gICAgICB0aGlzLm5ld0F1dGhlbnRpY2F0ZWRSZXNwb25zZUV2ZW50LmVtaXQocmVzcG9uc2UpXG4gICAgfSlcbiAgfVxuXG4gIGdldEFsbENvbXBhbmllcygpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0PEFycmF5PE9yZ2FuaXphdGlvbkludGVyZmFjZT4+KFxuICAgICAgdGhpcy5lbnYuZGF0YUVuZHBvaW50ICsgKHRoaXMucGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9pZCcgOiAnJykgKyAnL2NvbXBhbmllcy9hbGwnXG4gICAgKS5zdWJzY3JpYmUoKGNvbXBhbmllczogQXJyYXk8T3JnYW5pemF0aW9uSW50ZXJmYWNlPikgPT4ge1xuICAgICAgY29uc3QgY3VycmVudENvbXBhbnkgPSBjb21wYW5pZXMuZmluZCgoY29tcGFueTogT3JnYW5pemF0aW9uSW50ZXJmYWNlKSA9PiBjb21wYW55LmlkID09PSB0aGlzLnVzZXJEYXRhLmNvbXBhbnlJZClcbiAgICAgIGlmIChjdXJyZW50Q29tcGFueSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb21wYW55ID0gY3VycmVudENvbXBhbnk7XG4gICAgICB9XG4gICAgICB0aGlzLmFsbE9yZ2FuaXphdGlvbnMgPSBjb21wYW5pZXM7XG4gICAgICBpZiAodGhpcy5wbGF0Zm9ybSA9PT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT04pIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb05ld09yZ2FuaXphdGlvbiA9IHRoaXMuYWNjZXNzVG9BZGROZXcoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gT25seSBmb3Igb3JnYW5pemF0aW9uXG4gIGFjY2Vzc1RvQWRkTmV3KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuYWxsT3JnYW5pemF0aW9ucy5maW5kKChjb21wYW55OiBPcmdhbml6YXRpb25JbnRlcmZhY2UpID0+IGNvbXBhbnkuaXNNeUNvbXBhbnkpKVxuICB9XG5cbiAgLy8gRW5kIE9mIE9ubHkgZm9yIG9yZ2FuaXphdGlvblxuXG4gIG5hdmlnYXRlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gIH1cblxuICBkZXRlY3RBY3RpdmVQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnJvdXRlci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBsZXQgbGluayA9IHRoaXMubmF2aWdhdGlvbkxpbmtzLmZpbmQoKGxpbms6IE5hdmlnYXRpb25MaW5rcykgPT4gcGFnZSA9PT0gbGluay5saW5rVG8pO1xuXG4gICAgaWYgKCFsaW5rKSB7XG4gICAgICBjb25zdCBwYWdlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgbGluayA9IHRoaXMubmF2aWdhdGlvbkxpbmtzLmZpbmQoKGxpbms6IE5hdmlnYXRpb25MaW5rcykgPT4gcGFnZS5pbmNsdWRlcyhsaW5rLmxpbmtUbykpO1xuICAgIH1cblxuICAgIGlmIChsaW5rKSB7XG4gICAgICBpZiAobGluay5zdWJQYWdlcykge1xuICAgICAgICB0aGlzLnNlY29uZExheWVyT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWNvbmRMYXllckxpbmtzID0gbGluay5zdWJQYWdlcztcblxuICAgICAgICBjb25zdCBzdWJMaW5rID0gbGluay5zdWJQYWdlcy5maW5kKChsaW5rOiBOYXZpZ2F0aW9uTGlua3MpID0+IHBhZ2UgPT09IGxpbmsubGlua1RvKTtcbiAgICAgICAgaWYgKHN1YkxpbmspIHtcbiAgICAgICAgICB0aGlzLnNlY29uZExheWVyQWN0aXZlUGFnZSA9IHN1YkxpbmsucGFnZUVudW07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2Vjb25kTGF5ZXJPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWNvbmRMYXllckxpbmtzID0gW107XG4gICAgICAgIHRoaXMuc2Vjb25kTGF5ZXJBY3RpdmVQYWdlID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBsaW5rLnBhZ2VFbnVtO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxpbmtDbGljayhsaW5rOiBOYXZpZ2F0aW9uTGlua3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlID09PSBsaW5rLmxpbmtUbykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsaW5rLmVtaXRDbGljaykge1xuICAgICAgdGhpcy5saW5rQ2xpY2tFdmVudC5lbWl0KGxpbmspXG4gICAgfVxuICB9XG5cbiAgY2hhbmdlQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIHRoaXMuY29sbGFwc2VFdmVudC5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgc2lnbk91dCgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZ25PdXRFdmVudC5lbWl0KClcbiAgfVxuXG4gIG9wZW5aZW5kZXNrUGFnZShzdXBwb3J0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0PHthY2Nlc3NUb2tlbjogc3RyaW5nfT4odGhpcy5lbnYuZGF0YUVuZHBvaW50ICsgKHRoaXMucGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9pZCcgOiAnJykgKyBgL2F1dGgvemVuZGVza2ApXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IHthY2Nlc3NUb2tlbjogc3RyaW5nfSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXRVcmwgPSBgJHt0aGlzLmVudi56ZW5kZXNrVXJsfS9oYy9lbi11c2AgKyAoc3VwcG9ydCA/ICcvcmVxdWVzdHMvbmV3JyA6ICcnKTtcbiAgICAgICAgY29uc3QgemVuZGVza1VybCA9IGAke3RoaXMuZW52LnplbmRlc2tVcmx9L2FjY2Vzcy9qd3Q/and0PSR7cmVzLmFjY2Vzc1Rva2VufSZyZXR1cm5fdG89JHt0YXJnZXRVcmx9YDtcbiAgICAgICAgd2luZG93Lm9wZW4oemVuZGVza1VybCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyXCJcbiAgICAgKm5nSWY9XCJuYXZpZ2F0aW9uTGlua3MgJiYgdXNlckRhdGFcIlxuICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1haW5fc2lkZWJhci0taGVhZGVyXCI+XG4gICAgPGEgW2hyZWZdPVwicGxhdGZvcm0gPT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OID8gJy9hdXRoL29yZ2FuaXphdGlvbicgOiAnLydcIj5cblxuICAgICAgPGltZyBjbGFzcz1cImxvZ28gcG9pbnRlclwiIGFsdD1cIlwiXG4gICAgICAgICAgICpuZ0lmPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICBbc3JjXT1cIicvYXNzZXRzL2xvZ29zL3NtYWxsLycgKyBwbGF0Zm9ybSArICcuc3ZnJ1wiXG4gICAgICA+XG5cbiAgICAgIDxpbWcgY2xhc3M9XCJsb2dvIHBvaW50ZXJcIiBhbHQ9XCJcIlxuICAgICAgICAgICAqbmdJZj1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICAgICAgIFtzcmNdPVwiJy9hc3NldHMvbG9nb3MvZnVsbC8nICsgcGxhdGZvcm0gKyAnLnN2ZydcIlxuICAgICAgPlxuICAgIDwvYT5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICBbdG9vbHRpcF09XCInU0xQIFRvb2xzJ1wiXG4gICAgICBbaWNvbk5hbWVdPVwiJ2FwcHMnXCJcbiAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtYXRNZW51XCJcbiAgICA+PC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8bWF0LW1lbnUgI21hdE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJzaWRlYmFyX3BsYXRmb3Jtc19tZW51XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2FjdGl2ZSddLmxlbmd0aFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVudV90aXRsZVwiPlxuICAgICAgICAgIEFjdGl2ZSBBcHBzXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICAqbmdGb3I9XCJsZXQgYXBwIG9mIGFjdGl2ZUFuZEluYWN0aXZlUGxhdGZvcm1zWydhY3RpdmUnXVwiPlxuICAgICAgICAgIDxhIFtocmVmXT1cIkFwcHNVcmxzW2FwcC5pZF1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiPlxuICAgICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGNsYXNzPVwibG9nb1wiIFtzcmNdPVwiJy9hc3NldHMvbG9nb3Mvc21hbGwvJyArIGFwcC5pZCArICcuc3ZnJ1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57e2FwcC5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgY2xhc3M9XCJtbC1hdXRvXCIgc3JjPVwiL2Fzc2V0cy9zZWxlY3RlZF9vcmdhbml6YXRpb24uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcC5jaGVja2VkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiXG4gICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2FjdGl2ZSddLmxlbmd0aCAmJiBhY3RpdmVBbmRJbmFjdGl2ZVBsYXRmb3Jtc1snaW5hY3RpdmUnXS5sZW5ndGhcIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2luYWN0aXZlJ10ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51X3RpdGxlXCI+XG4gICAgICAgICAgSW5hY3RpdmUgQXBwc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiICpuZ0Zvcj1cImxldCBhcHAgb2YgYWN0aXZlQW5kSW5hY3RpdmVQbGF0Zm9ybXNbJ2luYWN0aXZlJ11cIj5cbiAgICAgICAgICA8aW1nIGFsdD1cIlwiIGNsYXNzPVwibG9nb1wiIFtzcmNdPVwiJy9hc3NldHMvbG9nb3Mvc21hbGwvJyArIGFwcC5pZCArICcuc3ZnJ1wiPlxuICAgICAgICAgIDxzcGFuPnt7YXBwLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvbWF0LW1lbnU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vjb25kTGF5ZXJMaW5rcy5sZW5ndGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnQtLXRvb2xiYXJcIlxuICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVCYWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aW1nIGFsdD1cIlwiIHNyYz1cIi9hc3NldHMvYmFjay5zdmdcIj5cbiAgICAgICAgPHNwYW4+QmFjazwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5fc2lkZWJhci0tY29udGVudC0tc3ViX3RpdGxlXCI+XG4gICAgICAgIFNldHRpbmdzXG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgKHNlY29uZExheWVyTGlua3MubGVuZ3RoID8gc2Vjb25kTGF5ZXJMaW5rcyA6IG5hdmlnYXRpb25MaW5rcylcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgKm5nSWY9XCJsaW5rLmhhc0RpdmlkZXJcIj48L2Rpdj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImxpbmsuZW1pdENsaWNrID8gbnVsbCA6IGxpbmsubGlua1RvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWNvbnRlbnQtLWxpbmsgcG9pbnRlclwiXG4gICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJsaW5rLnBhZ2VFbnVtID09PSBhY3RpdmVQYWdlIHx8IGxpbmsucGFnZUVudW0gPT09IHNlY29uZExheWVyQWN0aXZlUGFnZVwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUxpbmtDbGljayhsaW5rKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyZW50X2ljb25cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgW3NyY109XCInL2Fzc2V0cy9saW5rcy8nICsgcGxhdGZvcm0gKyAnLycgKyBsaW5rLmltYWdlICsgJy5zdmcnXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e2xpbmsudGl0bGUgfCB0cmFuc2xhdGV9fTwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5ld1wiICpuZ0lmPVwibGluay5pc05ld1wiPk5ldzwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtYWluX3NpZGViYXItLWZvb3RlclwiICpuZ0lmPVwidXNlckRhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyLS1mb290ZXItLXRvZ2dsZVwiXG4gICAgPlxuICAgICAgPGktdGVjaC1pY29uLWJ1dHRvblxuICAgICAgICBbdG9vbHRpcF09XCJpc0NvbGxhcHNlZCA/ICdFeHBhbmQgU2lkZWJhcicgOiAnQ29sbGFwc2UgU2lkZWJhcidcIlxuICAgICAgICBbaWNvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0JyA6ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfbGVmdCdcIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQ29sbGFwc2UoKVwiXG4gICAgICA+PC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbl9zaWRlYmFyLS1mb290ZXItLXByb2ZpbGVcIj5cbiAgICAgIDxpLXRlY2gtY29tcGFueS1pbWFnZVxuICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWF0TWVudVwiXG4gICAgICAgIFtjb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICBbdXNlckRhdGFdPVwidXNlckRhdGFcIlxuICAgICAgICBbcGxhdGZvcm1dPVwicGxhdGZvcm1cIlxuICAgICAgICBbY3VycmVudENvbXBhbnldPVwiY3VycmVudENvbXBhbnlcIlxuICAgICAgPjwvaS10ZWNoLWNvbXBhbnktaW1hZ2U+XG4gICAgICA8bWF0LW1lbnUgI21hdE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJzaWRlYmFyX2JvdHRvbV9tZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BfYmFyXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImltYWdlXCIgYWx0PVwiXCIgW3NyY109XCJ1c2VyRGF0YS5pbWFnZVwiXG4gICAgICAgICAgICAgICAqbmdJZj1cInVzZXJEYXRhLmltYWdlOyBlbHNlIE5vSW1hZ2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI05vSW1hZ2U+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Ugbm9faW1hZ2VcIj5cbiAgICAgICAgICAgICAge3t1c2VyRGF0YS5maXJzdE5hbWUgfCBzbGljZTogMCA6IDEgfCB1cHBlcmNhc2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3JtYXRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t1c2VyRGF0YS5maXJzdE5hbWV9fSB7e3VzZXJEYXRhLmxhc3ROYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFwiPnt7dXNlckRhdGEuZW1haWx9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGEgW2hyZWZdPVwiQm90dG9tUG9wdXBMaW5rc1snbWFuYWdlQWNjb3VudCddXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtICpuZ0lmPVwicGxhdGZvcm0gIT09IENvbXBhbmllc0VudW0uT1JHQU5JWkFUSU9OXCIgY2xhc3M9XCJtdC00IHN0YW5kYXJkX21lbnVfaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWNjb3VudCBJbmZvcm1hdGlvblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGEgW2hyZWZdPVwiQm90dG9tUG9wdXBMaW5rc1snYWNjb3VudEluZm9ybWF0aW9uJ11cIj5cbiAgICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJwbGF0Zm9ybSA9PT0gQ29tcGFuaWVzRW51bS5PUkdBTklaQVRJT05cIiBjbGFzcz1cIm10LTQgc3RhbmRhcmRfbWVudV9pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBBY2NvdW50IEluZm9ybWF0aW9uXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8YSBbaHJlZl09XCJCb3R0b21Qb3B1cExpbmtzWydhZGROZXdPcmdhbml6YXRpb24nXVwiPlxuICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSAqbmdJZj1cInBsYXRmb3JtID09PSBDb21wYW5pZXNFbnVtLk9SR0FOSVpBVElPTiAmJiBhY2Nlc3NUb05ld09yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQWRkIG5ldyBvcmdhbml6YXRpb25cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuXG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbE9yZ2FuaXphdGlvbnMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCIgPjwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaF90aXRsZVwiPlxuICAgICAgICAgICAgICBTd2l0Y2ggT3JnYW5pemF0aW9uXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm1hdF9tZW51X29yZ2FuaXphdGlvblwiIChjbGljayk9XCJzd2l0Y2hPcmdhbml6YXRpb24ob3JnYW5pemF0aW9uKVwiXG4gICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmdhbml6YXRpb24gb2YgYWxsT3JnYW5pemF0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdhbml6YXRpb25faXRlbV9pbl9tZW51XCI+XG4gICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBjbGFzcz1cImltYWdlXCIgW3NyY109XCJvcmdhbml6YXRpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvcmdhbml6YXRpb24uaW1hZ2U7IGVsc2UgTm9JbWFnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjTm9JbWFnZT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZSBub19pbWFnZVwiPlxuICAgICAgICAgICAgICAgICAgICB7e29yZ2FuaXphdGlvbi5uYW1lIHwgc2xpY2U6IDAgOiAxIHwgdXBwZXJjYXNlfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tvcmdhbml6YXRpb24ubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiAqbmdJZj1cIm9yZ2FuaXphdGlvbi5pZCA9PT0gY3VycmVudENvbXBhbnkuaWRcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXNTZWxlY3RlZFwiIHNyYz1cIi9hc3NldHMvc2VsZWN0ZWRfb3JnYW5pemF0aW9uLnN2Z1wiID5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJzdGFuZGFyZF9tZW51X2l0ZW1cIiAoY2xpY2spPVwib3BlblplbmRlc2tQYWdlKClcIj5cbiAgICAgICAgICBIZWxwIENlbnRlclxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YSBbaHJlZl09XCJCb3R0b21Qb3B1cExpbmtzWyd0ZXJtcyddXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic3RhbmRhcmRfbWVudV9pdGVtXCIgPlxuICAgICAgICAgICAgVGVybXMgQW5kIENvbmRpdGlvbnNcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxhIFtocmVmXT1cIkJvdHRvbVBvcHVwTGlua3NbJ3ByaXZhY3knXVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cInN0YW5kYXJkX21lbnVfaXRlbVwiID5cbiAgICAgICAgICAgIFByaXZhY3kgUG9saWN5XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtIGNsYXNzPVwic3RhbmRhcmRfbWVudV9pdGVtXCIgKGNsaWNrKT1cInNpZ25PdXQoKVwiPlxuICAgICAgICAgIFNpZ24gb3V0XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
@@ -1815,13 +1815,13 @@ class NewSidebarComponent {
1815
1815
  });
1816
1816
  }
1817
1817
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewSidebarComponent, deps: [{ token: i1$3.Router }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
1818
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NewSidebarComponent, isStandalone: true, selector: "i-tech-sidebar", inputs: { platform: "platform", navigationLinks: "navigationLinks", env: "env", userData: "userData" }, outputs: { collapseEvent: "collapseEvent", linkClickEvent: "linkClickEvent", signOutEvent: "signOutEvent", newAuthenticatedResponseEvent: "newAuthenticatedResponseEvent" }, host: { listeners: { "window:beforeunload": "canDeactivate()" } }, ngImport: i0, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CompanyImageComponent, selector: "i-tech-company-image", inputs: ["collapsed", "userData", "currentCompany", "platform"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1818
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NewSidebarComponent, isStandalone: true, selector: "i-tech-sidebar", inputs: { platform: "platform", navigationLinks: "navigationLinks", env: "env", userData: "userData" }, outputs: { collapseEvent: "collapseEvent", linkClickEvent: "linkClickEvent", signOutEvent: "signOutEvent", newAuthenticatedResponseEvent: "newAuthenticatedResponseEvent" }, host: { listeners: { "window:beforeunload": "canDeactivate()" } }, ngImport: i0, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.emitClick ? null : link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CompanyImageComponent, selector: "i-tech-company-image", inputs: ["collapsed", "userData", "currentCompany", "platform"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
1819
1819
  }
1820
1820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewSidebarComponent, decorators: [{
1821
1821
  type: Component,
1822
1822
  args: [{ selector: 'i-tech-sidebar', imports: [NgIf, NgFor, TranslateModule, MatMenu, MatMenuModule, CompanyImageComponent, UpperCasePipe, SlicePipe,
1823
1823
  MatRippleModule, MatTooltipModule, IconButtonComponent, RouterLink
1824
- ], standalone: true, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"] }]
1824
+ ], standalone: true, template: "<div class=\"main_sidebar\"\n *ngIf=\"navigationLinks && userData\"\n [class.collapsed]=\"isCollapsed\"\n>\n <div class=\"main_sidebar--header\">\n <a [href]=\"platform === CompaniesEnum.ORGANIZATION ? '/auth/organization' : '/'\">\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"isCollapsed\"\n [src]=\"'/assets/logos/small/' + platform + '.svg'\"\n >\n\n <img class=\"logo pointer\" alt=\"\"\n *ngIf=\"!isCollapsed\"\n [src]=\"'/assets/logos/full/' + platform + '.svg'\"\n >\n </a>\n <i-tech-icon-button\n *ngIf=\"!isCollapsed\"\n [tooltip]=\"'SLP Tools'\"\n [iconName]=\"'apps'\"\n [matMenuTriggerFor]=\"matMenu\"\n ></i-tech-icon-button>\n\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_platforms_menu\">\n <ng-container *ngIf=\"activeAndInactivePlatforms['active'].length\">\n <div class=\"menu_title\">\n Active Apps\n </div>\n <ng-container *ngFor=\"let app of activeAndInactivePlatforms['active']\">\n <a [href]=\"AppsUrls[app.id]\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n <img alt=\"\" class=\"ml-auto\" src=\"/assets/selected_organization.svg\"\n *ngIf=\"app.checked\"\n >\n </div>\n </a>\n </ng-container>\n </ng-container>\n\n <div class=\"divider\"\n *ngIf=\"activeAndInactivePlatforms['active'].length && activeAndInactivePlatforms['inactive'].length\"\n ></div>\n\n <ng-container *ngIf=\"activeAndInactivePlatforms['inactive'].length\">\n <div class=\"menu_title\">\n Inactive Apps\n </div>\n <div class=\"standard_menu_item\" *ngFor=\"let app of activeAndInactivePlatforms['inactive']\">\n <img alt=\"\" class=\"logo\" [src]=\"'/assets/logos/small/' + app.id + '.svg'\">\n <span>{{app.name}}</span>\n </div>\n </ng-container>\n\n </mat-menu>\n </div>\n\n <div class=\"main_sidebar--content\">\n <ng-container *ngIf=\"secondLayerLinks.length\">\n <div class=\"main_sidebar--content--toolbar\"\n (click)=\"navigateBack()\"\n >\n <img alt=\"\" src=\"/assets/back.svg\">\n <span>Back</span>\n </div>\n <div class=\"main_sidebar--content--sub_title\">\n Settings\n </div>\n </ng-container>\n\n <ng-container *ngFor=\"let link of (secondLayerLinks.length ? secondLayerLinks : navigationLinks)\">\n <div class=\"divider\" *ngIf=\"link.hasDivider\"></div>\n <a [routerLink]=\"link.emitClick ? null : link.linkTo\">\n <div class=\"main_sidebar--content--link pointer\"\n matRipple\n [class.active]=\"link.pageEnum === activePage || link.pageEnum === secondLayerActivePage\"\n (click)=\"handleLinkClick(link)\"\n >\n <div class=\"parent_icon\">\n <img class=\"icon\" alt=\"\"\n [src]=\"'/assets/links/' + platform + '/' + link.image + '.svg'\">\n </div>\n <div class=\"name\">{{link.title | translate}}</div>\n\n <div class=\"new\" *ngIf=\"link.isNew\">New</div>\n\n </div>\n </a>\n </ng-container>\n\n </div>\n\n <div class=\"main_sidebar--footer\" *ngIf=\"userData\">\n <div class=\"main_sidebar--footer--toggle\"\n >\n <i-tech-icon-button\n [tooltip]=\"isCollapsed ? 'Expand Sidebar' : 'Collapse Sidebar'\"\n [iconName]=\"isCollapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left'\"\n (click)=\"changeCollapse()\"\n ></i-tech-icon-button>\n\n </div>\n <div class=\"main_sidebar--footer--profile\">\n <i-tech-company-image\n [matMenuTriggerFor]=\"matMenu\"\n [collapsed]=\"isCollapsed\"\n [userData]=\"userData\"\n [platform]=\"platform\"\n [currentCompany]=\"currentCompany\"\n ></i-tech-company-image>\n <mat-menu #matMenu=\"matMenu\" class=\"sidebar_bottom_menu\">\n <div class=\"top_bar\">\n <img class=\"image\" alt=\"\" [src]=\"userData.image\"\n *ngIf=\"userData.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <div class=\"information\">\n <div class=\"name\">{{userData.firstName}} {{userData.lastName}}</div>\n <div class=\"email\">{{userData.email}}</div>\n </div>\n </div>\n <a [href]=\"BottomPopupLinks['manageAccount']\" target=\"_blank\">\n <div mat-menu-item *ngIf=\"platform !== CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['accountInformation']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION\" class=\"mt-4 standard_menu_item\"\n >\n Account Information\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['addNewOrganization']\">\n <div mat-menu-item *ngIf=\"platform === CompaniesEnum.ORGANIZATION && accessToNewOrganization\"\n class=\"standard_menu_item\"\n >\n Add new organization\n </div>\n </a>\n\n\n <ng-container *ngIf=\"allOrganizations.length > 1\">\n <div class=\"divider\" ></div>\n\n <div class=\"switch\">\n <div class=\"switch_title\">\n Switch Organization\n </div>\n <div mat-menu-item class=\"mat_menu_organization\" (click)=\"switchOrganization(organization)\"\n *ngFor=\"let organization of allOrganizations\"\n >\n <div class=\"organization_item_in_menu\">\n <img alt=\"\" class=\"image\" [src]=\"organization.image\"\n *ngIf=\"organization.image; else NoImage\"\n >\n <ng-template #NoImage>\n <div class=\"image no_image\">\n {{organization.name | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n <span>{{organization.name}}</span>\n </div>\n <img alt=\"\" *ngIf=\"organization.id === currentCompany.id\"\n class=\"isSelected\" src=\"/assets/selected_organization.svg\" >\n </div>\n </div>\n </ng-container>\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"openZendeskPage()\">\n Help Center\n </div>\n\n <a [href]=\"BottomPopupLinks['terms']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Terms And Conditions\n </div>\n </a>\n\n <a [href]=\"BottomPopupLinks['privacy']\" target=\"_blank\">\n <div mat-menu-item class=\"standard_menu_item\" >\n Privacy Policy\n </div>\n </a>\n\n\n <div class=\"divider\"></div>\n\n <div mat-menu-item class=\"standard_menu_item\" (click)=\"signOut()\">\n Sign out\n </div>\n </mat-menu>\n </div>\n </div>\n\n</div>\n", styles: [".main_sidebar{box-shadow:3px 0 #d7d9de33;border-right:1px solid #D7D9DE;height:100vh;width:190px;position:relative;background-color:#fff;z-index:100}.main_sidebar a{text-decoration:none!important}.main_sidebar.collapsed{width:80px}.main_sidebar.collapsed .main_sidebar--content--sub_title{font-size:13px;line-height:20px;padding:4px 16px 0}.main_sidebar.collapsed .main_sidebar--content--toolbar{padding:unset;justify-content:center;margin-top:16px}.main_sidebar.collapsed .main_sidebar--content--toolbar span{display:none}.main_sidebar.collapsed .main_sidebar--header{padding:6px 21.5px}.main_sidebar.collapsed .main_sidebar--content--link{padding:0 0 4px;flex-direction:column;margin-top:12px}.main_sidebar.collapsed .main_sidebar--content--link .divider{display:none}.main_sidebar.collapsed .main_sidebar--content--link .new{right:0!important;top:14px!important}.main_sidebar.collapsed .main_sidebar--content--link .parent_icon{width:56px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:100px}.main_sidebar.collapsed .main_sidebar--content--link .name{font-size:11px;margin-left:unset;font-weight:500;text-align:center;line-height:16px}.main_sidebar.collapsed .main_sidebar--content--link.active,.main_sidebar.collapsed .main_sidebar--content--link:hover{background-color:unset}.main_sidebar.collapsed .main_sidebar--content--link.active .parent_icon,.main_sidebar.collapsed .main_sidebar--content--link:hover .parent_icon{background-color:#00ac4829}.main_sidebar.collapsed .main_sidebar--content--link.active .name{font-weight:600}.main_sidebar.collapsed::ng-deep .information .names{display:none}.main_sidebar .pointer{cursor:pointer}.main_sidebar--header{display:flex;justify-content:space-between;align-items:center;padding:21px 24px 16px 16px}.main_sidebar--header a{height:40px}.main_sidebar--content{height:calc(100% - 220px);overflow-y:auto;overflow-x:hidden}.main_sidebar--content .divider{border-bottom:1px solid #D7D9DE;margin:8px auto;width:calc(100% - 32px)}.main_sidebar--content--sub_title{margin-top:4px;padding:4px 16px;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px}.main_sidebar--content--toolbar{cursor:pointer;padding-left:16px;display:flex;align-items:center}.main_sidebar--content--toolbar span{font-weight:700;font-size:13px;line-height:20px;letter-spacing:.1px;color:#647081;margin-left:4px}.main_sidebar--content--link{display:flex;align-items:center;padding:16px 10px 16px 16px;position:relative}.main_sidebar--content--link .name{font-weight:500;font-size:13px;line-height:20px;letter-spacing:.1px;margin-left:12px;color:#424954}.main_sidebar--content--link .parent_icon{width:24px;height:24px}.main_sidebar--content--link .new{position:absolute;border-radius:8px;color:#1f4085;padding:4px;font-weight:700;font-size:11px;line-height:12px;background-color:#dde7fc;right:24px;top:18px}.main_sidebar--content--link.active,.main_sidebar--content--link:hover{background-color:#effaf1}.main_sidebar--footer{bottom:0;position:absolute;width:100%}.main_sidebar--footer--toggle{width:100%;position:relative;background-color:#fff;display:flex;justify-content:center}.main_sidebar--footer--profile{width:100%;padding:16px 23px 16px 16px;border-top:1px solid #D7D9DE}.divider{border-bottom:1px solid #CAC4D0;margin:8px 0;width:100%}::ng-deep .sidebar_bottom_menu{width:252px}::ng-deep .sidebar_bottom_menu a{text-decoration:none!important;color:#424954!important}::ng-deep .sidebar_bottom_menu .mt-4{margin-top:4px}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_bottom_menu .switch .switch_title{padding:12px;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;color:#424954}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item.standard_menu_item{padding:10px 12px!important}::ng-deep .sidebar_bottom_menu .mat-mdc-menu-item{color:#424954;font-size:13px;font-weight:500;line-height:20px;letter-spacing:.2px}::ng-deep .sidebar_bottom_menu .top_bar{display:flex;padding:8px 12px 0}::ng-deep .sidebar_bottom_menu .top_bar .information{width:170px}::ng-deep .sidebar_bottom_menu .top_bar .information .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .information .email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_bottom_menu .top_bar .image{min-width:40px;width:40px;height:40px;object-fit:cover;border-radius:50%;margin-right:8px}::ng-deep .sidebar_bottom_menu .top_bar .no_image{background-color:#008b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:24px}::ng-deep .sidebar_bottom_menu .mat_menu_organization{padding:8px 12px!important}::ng-deep .sidebar_bottom_menu .mat_menu_organization .mat-mdc-menu-item-text{display:flex;justify-content:space-between;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu{display:flex;align-items:center}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .image{width:24px;height:24px;border-radius:50%;margin-right:12px}::ng-deep .sidebar_bottom_menu .mat_menu_organization .organization_item_in_menu .no_image{color:#006b1e;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px;background-color:#c0e5c7}::ng-deep .sidebar_platforms_menu{width:280px}::ng-deep .sidebar_platforms_menu a{text-decoration:none!important}::ng-deep .sidebar_platforms_menu .mat-mdc-menu-content{padding:8px 0!important}::ng-deep .sidebar_platforms_menu .menu_title{color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px;padding:12px}::ng-deep .sidebar_platforms_menu .standard_menu_item{padding:8px 12px!important;display:flex;align-items:center}::ng-deep .sidebar_platforms_menu .standard_menu_item .logo{margin-right:14px}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text{display:flex;align-items:center;font-weight:500;font-size:13px;line-height:20px;letter-spacing:.2px;color:#424954}::ng-deep .sidebar_platforms_menu .standard_menu_item .mat-mdc-menu-item-text .logo{margin-right:14px}::ng-deep .main_sidebar .mat-ripple:not(:empty){transform:unset!important}\n"] }]
1825
1825
  }], ctorParameters: () => [{ type: i1$3.Router }, { type: i2.HttpClient }], propDecorators: { canDeactivate: [{
1826
1826
  type: HostListener,
1827
1827
  args: ['window:beforeunload']