application-sidebar 1.0.12 → 1.0.13

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.
@@ -36,6 +36,7 @@ export class NavMenusComponent {
36
36
  contextMenu;
37
37
  contextMenuPosition = { x: '0px', y: '0px' };
38
38
  translation;
39
+ recCount;
39
40
  constructor(navigation, router, activatedRoute, urlContextService, cookie, translate) {
40
41
  this.navigation = navigation;
41
42
  this.router = router;
@@ -53,6 +54,20 @@ export class NavMenusComponent {
53
54
  hasIcon(item) {
54
55
  return (item.icon != undefined && item.icon != '');
55
56
  }
57
+ hasWalmartRecommendation(item) {
58
+ if (item.id == "walmart_recommendations") {
59
+ this.recCount = this.navigation.appDetails.recCount;
60
+ if (this.recCount && this.recCount > 0) {
61
+ return true;
62
+ }
63
+ else {
64
+ return false;
65
+ }
66
+ }
67
+ else {
68
+ return false;
69
+ }
70
+ }
56
71
  selectedApplication(name) {
57
72
  return this.translate.selectedApplication(this.navigation.appDetails, name);
58
73
  }
@@ -253,11 +268,11 @@ export class NavMenusComponent {
253
268
  }, 5000);
254
269
  }
255
270
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavMenusComponent, deps: [{ token: i1.ApplicationSidebarService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UrlContextService }, { token: i4.CookieService }, { token: i5.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
256
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavMenusComponent, selector: "lnc-nav-menus", inputs: { item: "item", applicationId: "applicationId", parentMenuId: "parentMenuId", parentPanelId: "parentPanelId", isActiveItem: "isActiveItem" }, outputs: { menuClicked: "menuClicked" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i12.OffsetTopDirective, selector: "[appOffsetTop]", inputs: ["isActiveItem"] }] });
271
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavMenusComponent, selector: "lnc-nav-menus", inputs: { item: "item", applicationId: "applicationId", parentMenuId: "parentMenuId", parentPanelId: "parentPanelId", isActiveItem: "isActiveItem" }, outputs: { menuClicked: "menuClicked" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <!-- <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> -->\n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" class=\"activeRecCount\" *ngIf=\"hasWalmartRecommendation(item)\">{{recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i12.OffsetTopDirective, selector: "[appOffsetTop]", inputs: ["isActiveItem"] }] });
257
272
  }
258
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavMenusComponent, decorators: [{
259
274
  type: Component,
260
- args: [{ selector: 'lnc-nav-menus', template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"] }]
275
+ args: [{ selector: 'lnc-nav-menus', template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <!-- <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> -->\n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" class=\"activeRecCount\" *ngIf=\"hasWalmartRecommendation(item)\">{{recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"] }]
261
276
  }], ctorParameters: function () { return [{ type: i1.ApplicationSidebarService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UrlContextService }, { type: i4.CookieService }, { type: i5.TranslationService }]; }, propDecorators: { menuClicked: [{
262
277
  type: Output
263
278
  }], item: [{
@@ -274,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
274
289
  type: ViewChild,
275
290
  args: [MatMenuTrigger]
276
291
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJCLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8saUJBQWlCO0lBa0JuQjtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF0QkEsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUMsSUFBSSxDQUFjO0lBQ2xCLGFBQWEsQ0FBUTtJQUNyQixZQUFZLENBQVE7SUFDcEIsYUFBYSxDQUFRO0lBQ3JCLFlBQVksQ0FBUTtJQUM3QixRQUFRLENBQVU7SUFFbEIsV0FBVyxDQUFNO0lBRWpCLFdBQVcsQ0FBaUI7SUFFNUIsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxF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SCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksVUFBVSxHQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBRyxVQUFVLEVBQUM7WUFDWixVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDcEM7UUFFRixVQUFVLENBQUM7WUFDVixJQUFHLFVBQVUsRUFBQztnQkFDWCxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7YUFDcEM7UUFDRixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWixDQUFDOzJIQTNPVSxpQkFBaUI7K0dBQWpCLGlCQUFpQixpU0FVakIsY0FBYyxnREN2QjNCLDAxREF5QitFOzs0RkRabEUsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7K1BBS2YsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFLTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi9uYXYtbWVudS1pdGVtJztcbmltcG9ydCB7Um91dGVyLEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2lkZWJhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1zaWRlYmFyLnNlcnZpY2UnXG5pbXBvcnQgeyBVcmxDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VybC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsbmMtbmF2LW1lbnVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1tZW51cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5hdk1lbnVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG1lbnVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBJbnB1dCgpIGl0ZW06IE5hdk1lbnVJdGVtO1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbklkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50TWVudUlkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50UGFuZWxJZDpzdHJpbmc7XG4gIEBJbnB1dCgpIGlzQWN0aXZlSXRlbTpib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuO1xuXG4gIHF1ZXJ5UGFyYW1zOiBhbnk7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpXG4gIGNvbnRleHRNZW51OiBNYXRNZW51VHJpZ2dlcjtcblxuICBjb250ZXh0TWVudVBvc2l0aW9uID0geyB4OiAnMHB4JywgeTogJzBweCcgfTtcblxuICB0cmFuc2xhdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYXZpZ2F0aW9uOiBBcHBsaWNhdGlvblNpZGViYXJTZXJ2aWNlLCBcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6QWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB1cmxDb250ZXh0U2VydmljZTogVXJsQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb29raWU6IENvb2tpZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6VHJhbnNsYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpIGFyaWFFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgaGFzSWNvbihpdGVtOk5hdk1lbnVJdGVtKXtcbiAgICByZXR1cm4gKGl0ZW0uaWNvbiAhPSB1bmRlZmluZWQgJiYgaXRlbS5pY29uICE9ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEFwcGxpY2F0aW9uKG5hbWUpe1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5zZWxlY3RlZEFwcGxpY2F0aW9uKHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLCBuYW1lKTtcbiAgfVxuICBcbiAgcHVibGljIGdldFNwZWNpZmllZFZhbHVlKGtleTpzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb24uZmV0Y2hLZXlWYWx1ZShrZXkpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0TWVudShldmVudDphbnksbGlzdE1lbnU6TmF2TWVudUl0ZW0sIGFwcElkPzphbnkpIHtcbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcHBJZCcgLCB0aGlzLnBhcmVudFBhbmVsSWQgLCB0aGlzLmFwcGxpY2F0aW9uSWQpO1xuICAgICAgLy8gb24gc2hpZnQrY2xpY2sgb3BlbiB1cmwgaW4gbmV3IHRhYiBhbG9uZyB3aXRoIGNvbnRleHQgcGFyYW1zXG4gICAgICBpZigodGhpcy5wYXJlbnRQYW5lbElkID09PSAnaWFjX2luc2lnaHRzJyAmJiB0aGlzLmFwcGxpY2F0aW9uSWQgPT09ICdhZHNfZGF0YV9wbGF0Zm9ybScpIHx8IHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycgfHwgYXBwSWQgPT09ICdhcHBfZ2xvYmFsX3NldHRpbmdzJyl7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09PSAnZ2xvYmFsX2FjY291bnRfbWdtdCcgfHwgbGlzdE1lbnUuaWQgPT09ICdpYWNfaW5zaWdodHNfdXNlcl9tZ210Jyl7XG4gICAgICAgICAgY29uc3QgdXJsID0gbGlzdE1lbnUucm91dGU7XG4gICAgICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25JZCA9PSBcImFkc19hbWF6b25fY29udGVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSWQgPSB0aGlzLm5hdmlnYXRpb24uZ2V0QXBwbGljYXRpb25JRCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCAsIHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUXVlcnkgUGFyYW1zID0gXCIgLHRoaXMucXVlcnlQYXJhbXMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGFsZXJ0KCdubyByb3V0ZSB0byBuYXZpZ2F0ZScpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfWVsc2UgaWYobGlzdE1lbnUuZGVmYXVsdHVybCl7XG4gICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51LmRlZmF1bHR1cmw7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09IFwiYWRzX3ZlbmRvcl9zYWxlc1wiIHx8IGxpc3RNZW51LmlkID09ICdhZHNfc2VsbGVyX3NhbGVzJyl7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwsIHsgYXBwSWQgOiBsaXN0TWVudS5pZH0pO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgICAgaWYobGlzdE1lbnUuZXh0ZXJuYWxfbGluayAmJiBsaXN0TWVudS5leHRlcm5hbF9saW5rICE9ICcnKXtcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtsaXN0TWVudS5leHRlcm5hbF9saW5rfWAsICdfYmxhbmsnKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoKHRoaXMucGFyZW50TWVudUlkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwICYmICFhcHBJZCkgfHwgKGFwcElkICYmIGFwcElkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwKSApe1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxlbmd0aCA9IFwiICx0aGlzLnF1ZXJ5UGFyYW1zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVJdGVtID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5UGFyYW1zKS5sZW5ndGggIT0gMCl7XG4gIFxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlzdE1lbnUucm91dGVdLCB7IHF1ZXJ5UGFyYW1zIDogdGhpcy5xdWVyeVBhcmFtcyB9KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVudUNsaWNrZWQuZW1pdCh7YWN0aXZlUGFuZWwgOiB0aGlzLnBhcmVudFBhbmVsSWR9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IFxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBhbGVydCgnbm8gcm91dGUgdG8gbmF2aWdhdGUnKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51Lmxpbms7XG4gICAgICAgICAgaWYodGhpcy51cmxDb250ZXh0U2VydmljZS52YWxpZGF0ZUtleVN0cm9rZShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSlcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55ID0gZXZlbnQuY2xpZW50WSArICdweCc7XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51RGF0YSA9IHsgJ2l0ZW0nOiBpdGVtIH07XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xuICAgIHRoaXMuY29udGV4dE1lbnUub3Blbk1lbnUoKTtcbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVBY3Rpb24oaXRlbTogTmF2TWVudUl0ZW0pIHtcblxuICAgIGlmKHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycpe1xuICAgICAgaWYoaXRlbS5pZCA9PT0gJ2dsb2JhbF9hY2NvdW50X21nbXQnKXtcbiAgICAgICAgY29uc3QgdXJsID0gaXRlbS5yb3V0ZTtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgfVxuICAgICAgZWxzZSBpZihpdGVtLnJvdXRlICE9ICcnKSB7XG4gICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGl0ZW0ucm91dGUsdHJ1ZSlcbiAgICAgIH1cbiAgICB9ZWxzZXtcbiAgICAgIGlmKGl0ZW0uZXh0ZXJuYWxfbGluayAmJiBpdGVtLmV4dGVybmFsX2xpbmsgIT0gJycpe1xuICAgICAgICB3aW5kb3cub3BlbihgJHtpdGVtLmV4dGVybmFsX2xpbmt9YCwgJ19ibGFuaycpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBlbHNlIGlmKGl0ZW0uaWQgPT09ICdpYWNfaW5zaWdodHNfdXNlcl9tZ210Jyl7XG4gICAgICAgIGNvbnN0IHVybCA9IGl0ZW0ucm91dGUuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWQgLCB1c2VybWdtdCA6IHRydWV9KVxuICAgICAgfVxuICAgICAgZWxzZSBpZih0aGlzLnBhcmVudE1lbnVJZC5pbmRleE9mKHRoaXMuYXBwbGljYXRpb25JZCkgPj0gMCAgKXtcbiAgICAgICAgaWYgKGl0ZW0ucm91dGUgIT0gJycpIHtcbiAgICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYihpdGVtLnJvdXRlLHRydWUpXG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgICBlbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGl0ZW0ubGluaztcbiAgICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYih1cmwsZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5Jbk5ld1RhYihsaW5rLGlzUm91dGVyTGluayxhcHBsaWNhdGlvbklkID0gdW5kZWZpbmVkKXtcbiAgICBsZXQgZGF0ZVRpdGxlID0gdGhpcy5mZXRjaERhdGVSYW5nZSgpO1xuICAgIGxldCBkYXRlUmFuZ2VWYWwgPSB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldERhdGVSYW5nZVVybFZhbChkYXRlVGl0bGUpO1xuICAgIFxuICAgIGlmICh0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudCA9PSB1bmRlZmluZWQpe1xuICAgICAgbGV0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICBvaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50T3JnYW5pemF0aW9uLm9yZ2FuaXphdGlvbklkLFxuICAgICAgICBkciA6IGRhdGVSYW5nZVZhbCxcbiAgICAgIH1cbiAgICAgIGlmKGFwcGxpY2F0aW9uSWQpe1xuICAgICAgICBxdWVyeVBhcmFtcyA9IHsuLi5xdWVyeVBhcmFtcywgLi4uYXBwbGljYXRpb25JZH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXJsQ29udGV4dFNlcnZpY2Uuc2V0VXJsQW5kT3BlblRhYihsaW5rLHF1ZXJ5UGFyYW1zLGlzUm91dGVyTGluayk7XG4gICAgcmV0dXJuXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgYWlkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQuYW1zQWNjb3VudElkLFxuICAgICAgICBiaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudC5idXNpbmVzc0dyb3VwSWQsXG4gICAgICAgIG9pZCA6IHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLmN1cnJlbnRBY2NvdW50Lm9yZ2FuaXphdGlvbklkLFxuICAgICAgICBkciA6IGRhdGVSYW5nZVZhbCxcbiAgICAgIH1cbiAgICAgIGlmKGFwcGxpY2F0aW9uSWQpe1xuICAgICAgICBxdWVyeVBhcmFtcyA9IHsuLi5xdWVyeVBhcmFtcywgLi4uYXBwbGljYXRpb25JZH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXJsQ29udGV4dFNlcnZpY2Uuc2V0VXJsQW5kT3BlblRhYihsaW5rLHF1ZXJ5UGFyYW1zLGlzUm91dGVyTGluayk7XG4gICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmZXRjaERhdGVSYW5nZSgpe1xuICAgIGlmKHRoaXMucXVlcnlQYXJhbXMuaGFzT3duUHJvcGVydHkoJ3RpZCcpICYmIHRoaXMucXVlcnlQYXJhbXMuaGFzT3duUHJvcGVydHkoJ2RyJykpe1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlQYXJhbXNbJ2RyJ107XG4gICAgfWVsc2V7XG4gICAgICBjb25zdCBsb2dnZWRJblVzZXIgPSBKU09OLnBhcnNlKHRoaXMuY29va2llLmdldCgnbG9nZ2VkSW5Vc2VyJykpO1xuICAgICAgY29uc29sZS5sb2coJ0xvZ2dlZCA9ICcsbG9nZ2VkSW5Vc2VyKTtcbiAgICAgIHJldHVybiBsb2dnZWRJblVzZXIuZGF0ZVJhbmdlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93TG9hZGVyKCl7XG4gICAgbGV0IGxvYWRlcl9kaXY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvYWRlcl9zb3YnKTtcbiAgICAgIGlmKGxvYWRlcl9kaXYpe1xuICAgICAgICBsb2FkZXJfZGl2LnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgICB9XG4gICBcbiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgIGlmKGxvYWRlcl9kaXYpe1xuICAgICAgICAgbG9hZGVyX2Rpdi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICB9XG4gICAgIH0sIDUwMDApO1xuICB9XG5cbn1cbiIsIjxhIGFwcE9mZnNldFRvcCBjbGFzcz1cInNpZGVtZW51LW9wdGlvbiB7e2l0ZW0uc3R5bGVfY2xhc3Nlc319XCIgbWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib25TZWxlY3RNZW51KCRldmVudCxpdGVtKVwiXG4gICpuZ0lmPVwiaXRlbS50eXBlID09PSAnbGVhZidcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzQWN0aXZlSXRlbX1cIiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCI+XG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJ7e2l0ZW0uaWR9fV9pY29uXCIgKm5nSWY9XCJpdGVtLmlkID09ICdnbG9iYWxfYWNjb3VudF9tZ210J1wiPjwvc3Bhbj4gLS0+XG4gIDxoMyBtYXRMaW5lIGNsYXNzPVwic2lkZW1lbnUtdGV4dCBmb250LWNvbG9yLWJsYWNrIG5hdk1lbnVzIGFwcGxpY2F0aW9uTWVudVwiIFtuZ0NsYXNzXT1cInsnbWFyZ2luLWxlZnQtMTAnOiBpdGVtLmxldmVsID09ICd0d28nLCBcbiAgICAnbWFyZ2luLWxlZnQtMzYnOiBpdGVtLmxldmVsICE9ICd0d28nfVwiPlxuICAgIHt7c2VsZWN0ZWRBcHBsaWNhdGlvbihpdGVtKX19XG4gICAgPHNwYW4gaWQ9XCJhY3RpdmVDb3VudFwiICpuZ0lmPVwiaXRlbS5jb3VudEtleSAmJiBnZXRTcGVjaWZpZWRWYWx1ZShpdGVtLmNvdW50S2V5KVwiIGNsYXNzPVwibmctYmluZGluZyBuZy1zY29wZVwiPlxuICAgICAge3sgZ2V0U3BlY2lmaWVkVmFsdWUoaXRlbS5jb3VudEtleSkgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gaWQ9XCJhY3RpdmVSZWNDb3VudFwiICpuZ0lmPVwiaXRlbS5uYW1lID09ICdSZWNvbW1lbmRhdGlvbnMnICYmIGl0ZW0ucmVjQ291bnQgIT0gJycgJiYgaXRlbS5yZWNDb3VudCAhPSAnMCcgJiYgaXRlbS5yZWNDb3VudCAhPSBudWxsXCIgY2xhc3M9XCJhY3RpdmVSZWNDb3VudFwiPnt7aXRlbS5yZWNDb3VudH19PC9zcGFuPiBcbiAgICA8c3BhbiAqbmdJZj1cIml0ZW0uYmFkZ2VcIiBjbGFzcz1cImJhZGdlLXRleHQgc292LWJldGEtcG9zaXRpb25cIiBbaW5uZXJIVE1MXT1cIml0ZW0uYmFkZ2VcIj48L3NwYW4+XG4gICAgPHNwYW4gaWQ9XCJhY3RpdmVSZWNDb3VudFwiICpuZ0lmPVwiaXRlbS5uYW1lID09ICdSZWNvbW1lbmRhdGlvbnMnICYmIGl0ZW0ucmVjQ291bnQgIT0gJycgJiYgaXRlbS5yZWNDb3VudCAhPSAnMCcgJiYgaXRlbS5yZWNDb3VudCAhPSBudWxsXCIgY2xhc3M9XCJhY3RpdmVSZWNDb3VudFwiPnt7aXRlbS5yZWNDb3VudH19PC9zcGFuPiBcbiAgPC9oMz5cbjwvYT5cbjxkaXYgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47IHBvc2l0aW9uOiBmaXhlZFwiIFtzdHlsZS5sZWZ0XT1cImNvbnRleHRNZW51UG9zaXRpb24ueFwiXG4gIFtzdHlsZS50b3BdPVwiY29udGV4dE1lbnVQb3NpdGlvbi55XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImNvbnRleHRNZW51XCI+XG48L2Rpdj5cbjxtYXQtbWVudSAjY29udGV4dE1lbnU9XCJtYXRNZW51XCI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJuZXdUYWJNZW51XCI+PC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkNvbnRleHRNZW51QWN0aW9uKGl0ZW0pXCIgY2xhc3M9XCJuZXdUYWJNZW51XCIgaWQ9XCJuZXdUYWJBY3Rpb25CdG5cIj5PcGVuIGluIG5ld1xuICAgICAgdGFiPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwibmV3VGFiTWVudVwiPjwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT5cbjxtYXQtZGl2aWRlciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3NlcGFyYXRvcidcIiBjbGFzcz1cInNlcGFyYXRvclwiPjwvbWF0LWRpdmlkZXI+Il19
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uLXNpZGViYXIvc3JjL2xpYi9uYXYtbWVudXMvbmF2LW1lbnVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJCLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8saUJBQWlCO0lBbUJuQjtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF2QkEsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUMsSUFBSSxDQUFjO0lBQ2xCLGFBQWEsQ0FBUTtJQUNyQixZQUFZLENBQVE7SUFDcEIsYUFBYSxDQUFRO0lBQ3JCLFlBQVksQ0FBUTtJQUM3QixRQUFRLENBQVU7SUFFbEIsV0FBVyxDQUFNO0lBRWpCLFdBQVcsQ0FBaUI7SUFFNUIsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxF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SG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi9uYXYtbWVudS1pdGVtJztcbmltcG9ydCB7Um91dGVyLEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2lkZWJhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbi1zaWRlYmFyLnNlcnZpY2UnXG5pbXBvcnQgeyBVcmxDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VybC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsbmMtbmF2LW1lbnVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1tZW51cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25hdi1tZW51cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5hdk1lbnVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG1lbnVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XG4gIEBJbnB1dCgpIGl0ZW06IE5hdk1lbnVJdGVtO1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbklkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50TWVudUlkOnN0cmluZztcbiAgQElucHV0KCkgcGFyZW50UGFuZWxJZDpzdHJpbmc7XG4gIEBJbnB1dCgpIGlzQWN0aXZlSXRlbTpib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuO1xuXG4gIHF1ZXJ5UGFyYW1zOiBhbnk7XG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpXG4gIGNvbnRleHRNZW51OiBNYXRNZW51VHJpZ2dlcjtcblxuICBjb250ZXh0TWVudVBvc2l0aW9uID0geyB4OiAnMHB4JywgeTogJzBweCcgfTtcblxuICB0cmFuc2xhdGlvbjogYW55O1xuICByZWNDb3VudDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBuYXZpZ2F0aW9uOiBBcHBsaWNhdGlvblNpZGViYXJTZXJ2aWNlLCBcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6QWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB1cmxDb250ZXh0U2VydmljZTogVXJsQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb29raWU6IENvb2tpZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6VHJhbnNsYXRpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBwYXJhbXMpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpIGFyaWFFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgaGFzSWNvbihpdGVtOk5hdk1lbnVJdGVtKXtcbiAgICByZXR1cm4gKGl0ZW0uaWNvbiAhPSB1bmRlZmluZWQgJiYgaXRlbS5pY29uICE9ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNXYWxtYXJ0UmVjb21tZW5kYXRpb24oaXRlbTpOYXZNZW51SXRlbSl7XG4gICAgaWYoaXRlbS5pZCA9PSBcIndhbG1hcnRfcmVjb21tZW5kYXRpb25zXCIpe1xuICAgICAgdGhpcy5yZWNDb3VudCA9IHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLnJlY0NvdW50O1xuICAgICAgaWYodGhpcy5yZWNDb3VudCAmJiB0aGlzLnJlY0NvdW50PjApe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gICAgXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgXG4gIHB1YmxpYyBzZWxlY3RlZEFwcGxpY2F0aW9uKG5hbWUpe1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5zZWxlY3RlZEFwcGxpY2F0aW9uKHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLCBuYW1lKTtcbiAgfVxuICBcbiAgcHVibGljIGdldFNwZWNpZmllZFZhbHVlKGtleTpzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRpb24uZmV0Y2hLZXlWYWx1ZShrZXkpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0TWVudShldmVudDphbnksbGlzdE1lbnU6TmF2TWVudUl0ZW0sIGFwcElkPzphbnkpIHtcbiAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcHBJZCcgLCB0aGlzLnBhcmVudFBhbmVsSWQgLCB0aGlzLmFwcGxpY2F0aW9uSWQpO1xuICAgICAgLy8gb24gc2hpZnQrY2xpY2sgb3BlbiB1cmwgaW4gbmV3IHRhYiBhbG9uZyB3aXRoIGNvbnRleHQgcGFyYW1zXG4gICAgICBpZigodGhpcy5wYXJlbnRQYW5lbElkID09PSAnaWFjX2luc2lnaHRzJyAmJiB0aGlzLmFwcGxpY2F0aW9uSWQgPT09ICdhZHNfZGF0YV9wbGF0Zm9ybScpIHx8IHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycgfHwgYXBwSWQgPT09ICdhcHBfZ2xvYmFsX3NldHRpbmdzJyl7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09PSAnZ2xvYmFsX2FjY291bnRfbWdtdCcgfHwgbGlzdE1lbnUuaWQgPT09ICdpYWNfaW5zaWdodHNfdXNlcl9tZ210Jyl7XG4gICAgICAgICAgY29uc3QgdXJsID0gbGlzdE1lbnUucm91dGU7XG4gICAgICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25JZCA9PSBcImFkc19hbWF6b25fY29udGVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSWQgPSB0aGlzLm5hdmlnYXRpb24uZ2V0QXBwbGljYXRpb25JRCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCAsIHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUXVlcnkgUGFyYW1zID0gXCIgLHRoaXMucXVlcnlQYXJhbXMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGFsZXJ0KCdubyByb3V0ZSB0byBuYXZpZ2F0ZScpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfWVsc2UgaWYobGlzdE1lbnUuZGVmYXVsdHVybCl7XG4gICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51LmRlZmF1bHR1cmw7XG4gICAgICAgIGlmKGxpc3RNZW51LmlkID09IFwiYWRzX3ZlbmRvcl9zYWxlc1wiIHx8IGxpc3RNZW51LmlkID09ICdhZHNfc2VsbGVyX3NhbGVzJyl7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwsIHsgYXBwSWQgOiBsaXN0TWVudS5pZH0pO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRpb24uZ2V0SG9zdE9yaWdpbkFuZE5hdmlnYXRlKHVybCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgICAgaWYobGlzdE1lbnUuZXh0ZXJuYWxfbGluayAmJiBsaXN0TWVudS5leHRlcm5hbF9saW5rICE9ICcnKXtcbiAgICAgICAgICB3aW5kb3cub3BlbihgJHtsaXN0TWVudS5leHRlcm5hbF9saW5rfWAsICdfYmxhbmsnKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoKHRoaXMucGFyZW50TWVudUlkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwICYmICFhcHBJZCkgfHwgKGFwcElkICYmIGFwcElkLmluZGV4T2YodGhpcy5hcHBsaWNhdGlvbklkKSA+PSAwKSApe1xuICAgICAgICAgIGlmIChsaXN0TWVudS5yb3V0ZSAhPSAnJykge1xuICAgICAgICAgICAgICBpZih0aGlzLnVybENvbnRleHRTZXJ2aWNlLnZhbGlkYXRlS2V5U3Ryb2tlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGxpc3RNZW51LnJvdXRlLHRydWUpXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxlbmd0aCA9IFwiICx0aGlzLnF1ZXJ5UGFyYW1zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVJdGVtID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5UGFyYW1zKS5sZW5ndGggIT0gMCl7XG4gIFxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlzdE1lbnUucm91dGVdLCB7IHF1ZXJ5UGFyYW1zIDogdGhpcy5xdWVyeVBhcmFtcyB9KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVDbGlja2VkLmVtaXQoe2FjdGl2ZVBhbmVsIDogdGhpcy5wYXJlbnRQYW5lbElkfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaXN0TWVudS5yb3V0ZV0pXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVudUNsaWNrZWQuZW1pdCh7YWN0aXZlUGFuZWwgOiB0aGlzLnBhcmVudFBhbmVsSWR9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IFxuICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICBhbGVydCgnbm8gcm91dGUgdG8gbmF2aWdhdGUnKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGxpc3RNZW51Lmxpbms7XG4gICAgICAgICAgaWYodGhpcy51cmxDb250ZXh0U2VydmljZS52YWxpZGF0ZUtleVN0cm9rZShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkluTmV3VGFiKHVybCxmYWxzZSlcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmdldEhvc3RPcmlnaW5BbmROYXZpZ2F0ZSh1cmwpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IE5hdk1lbnVJdGVtKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi55ID0gZXZlbnQuY2xpZW50WSArICdweCc7XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51RGF0YSA9IHsgJ2l0ZW0nOiBpdGVtIH07XG4gICAgdGhpcy5jb250ZXh0TWVudS5tZW51LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xuICAgIHRoaXMuY29udGV4dE1lbnUub3Blbk1lbnUoKTtcbiAgfVxuXG4gIG9uQ29udGV4dE1lbnVBY3Rpb24oaXRlbTogTmF2TWVudUl0ZW0pIHtcblxuICAgIGlmKHRoaXMucGFyZW50TWVudUlkID09PSAnYXBwX2dsb2JhbF9zZXR0aW5ncycpe1xuICAgICAgaWYoaXRlbS5pZCA9PT0gJ2dsb2JhbF9hY2NvdW50X21nbXQnKXtcbiAgICAgICAgY29uc3QgdXJsID0gaXRlbS5yb3V0ZTtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWR9KVxuICAgICAgfVxuICAgICAgZWxzZSBpZihpdGVtLnJvdXRlICE9ICcnKSB7XG4gICAgICAgIHRoaXMub3BlbkluTmV3VGFiKGl0ZW0ucm91dGUsdHJ1ZSlcbiAgICAgIH1cbiAgICB9ZWxzZXtcbiAgICAgIGlmKGl0ZW0uZXh0ZXJuYWxfbGluayAmJiBpdGVtLmV4dGVybmFsX2xpbmsgIT0gJycpe1xuICAgICAgICB3aW5kb3cub3BlbihgJHtpdGVtLmV4dGVybmFsX2xpbmt9YCwgJ19ibGFuaycpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBlbHNlIGlmKGl0ZW0uaWQgPT09ICdpYWNfaW5zaWdodHNfdXNlcl9tZ210Jyl7XG4gICAgICAgIGNvbnN0IHVybCA9IGl0ZW0ucm91dGUuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgdGhpcy5vcGVuSW5OZXdUYWIodXJsLGZhbHNlLHsgYXBwSWQgOiB0aGlzLmFwcGxpY2F0aW9uSWQgLCB1c2VybWdtdCA6IHRydWV9KVxuICAgICAgfVxuICAgICAgZWxzZSBpZih0aGlzLnBhcmVudE1lbnVJZC5pbmRleE9mKHRoaXMuYXBwbGljYXRpb25JZCkgPj0gMCAgKXtcbiAgICAgICAgaWYgKGl0ZW0ucm91dGUgIT0gJycpIHtcbiAgICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYihpdGVtLnJvdXRlLHRydWUpXG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgICBlbHNle1xuICAgICAgICAgIGNvbnN0IHVybCA9IGl0ZW0ubGluaztcbiAgICAgICAgICB0aGlzLm9wZW5Jbk5ld1RhYih1cmwsZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5Jbk5ld1RhYihsaW5rLGlzUm91dGVyTGluayxhcHBsaWNhdGlvbklkID0gdW5kZWZpbmVkKXtcbiAgICBsZXQgZGF0ZVRpdGxlID0gdGhpcy5mZXRjaERhdGVSYW5nZSgpO1xuICAgIGxldCBkYXRlUmFuZ2VWYWwgPSB0aGlzLnVybENvbnRleHRTZXJ2aWNlLnNldERhdGVSYW5nZVVybFZhbChkYXRlVGl0bGUpO1xuICAgIFxuICAgIGlmICh0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudCA9PSB1bmRlZmluZWQpe1xuICAgICAgbGV0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICBvaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50T3JnYW5pemF0aW9uLm9yZ2FuaXphdGlvbklkLFxuICAgICAgICBkciA6IGRhdGVSYW5nZVZhbCxcbiAgICAgIH1cbiAgICAgIGlmKGFwcGxpY2F0aW9uSWQpe1xuICAgICAgICBxdWVyeVBhcmFtcyA9IHsuLi5xdWVyeVBhcmFtcywgLi4uYXBwbGljYXRpb25JZH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXJsQ29udGV4dFNlcnZpY2Uuc2V0VXJsQW5kT3BlblRhYihsaW5rLHF1ZXJ5UGFyYW1zLGlzUm91dGVyTGluayk7XG4gICAgcmV0dXJuXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICAgYWlkIDogdGhpcy5uYXZpZ2F0aW9uLmFwcERldGFpbHMuY3VycmVudEFjY291bnQuYW1zQWNjb3VudElkLFxuICAgICAgICBiaWQgOiB0aGlzLm5hdmlnYXRpb24uYXBwRGV0YWlscy5jdXJyZW50QWNjb3VudC5idXNpbmVzc0dyb3VwSWQsXG4gICAgICAgIG9pZCA6IHRoaXMubmF2aWdhdGlvbi5hcHBEZXRhaWxzLmN1cnJlbnRBY2NvdW50Lm9yZ2FuaXphdGlvbklkLFxuICAgICAgICBkciA6IGRhdGVSYW5nZVZhbCxcbiAgICAgIH1cbiAgICAgIGlmKGFwcGxpY2F0aW9uSWQpe1xuICAgICAgICBxdWVyeVBhcmFtcyA9IHsuLi5xdWVyeVBhcmFtcywgLi4uYXBwbGljYXRpb25JZH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXJsQ29udGV4dFNlcnZpY2Uuc2V0VXJsQW5kT3BlblRhYihsaW5rLHF1ZXJ5UGFyYW1zLGlzUm91dGVyTGluayk7XG4gICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmZXRjaERhdGVSYW5nZSgpe1xuICAgIGlmKHRoaXMucXVlcnlQYXJhbXMuaGFzT3duUHJvcGVydHkoJ3RpZCcpICYmIHRoaXMucXVlcnlQYXJhbXMuaGFzT3duUHJvcGVydHkoJ2RyJykpe1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlQYXJhbXNbJ2RyJ107XG4gICAgfWVsc2V7XG4gICAgICBjb25zdCBsb2dnZWRJblVzZXIgPSBKU09OLnBhcnNlKHRoaXMuY29va2llLmdldCgnbG9nZ2VkSW5Vc2VyJykpO1xuICAgICAgY29uc29sZS5sb2coJ0xvZ2dlZCA9ICcsbG9nZ2VkSW5Vc2VyKTtcbiAgICAgIHJldHVybiBsb2dnZWRJblVzZXIuZGF0ZVJhbmdlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93TG9hZGVyKCl7XG4gICAgbGV0IGxvYWRlcl9kaXY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvYWRlcl9zb3YnKTtcbiAgICAgIGlmKGxvYWRlcl9kaXYpe1xuICAgICAgICBsb2FkZXJfZGl2LnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgICB9XG4gICBcbiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgIGlmKGxvYWRlcl9kaXYpe1xuICAgICAgICAgbG9hZGVyX2Rpdi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICB9XG4gICAgIH0sIDUwMDApO1xuICB9XG5cbn1cbiIsIjxhIGFwcE9mZnNldFRvcCBjbGFzcz1cInNpZGVtZW51LW9wdGlvbiB7e2l0ZW0uc3R5bGVfY2xhc3Nlc319XCIgbWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib25TZWxlY3RNZW51KCRldmVudCxpdGVtKVwiXG4gICpuZ0lmPVwiaXRlbS50eXBlID09PSAnbGVhZidcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzQWN0aXZlSXRlbX1cIiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCI+XG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJ7e2l0ZW0uaWR9fV9pY29uXCIgKm5nSWY9XCJpdGVtLmlkID09ICdnbG9iYWxfYWNjb3VudF9tZ210J1wiPjwvc3Bhbj4gLS0+XG4gIDxoMyBtYXRMaW5lIGNsYXNzPVwic2lkZW1lbnUtdGV4dCBmb250LWNvbG9yLWJsYWNrIG5hdk1lbnVzIGFwcGxpY2F0aW9uTWVudVwiIFtuZ0NsYXNzXT1cInsnbWFyZ2luLWxlZnQtMTAnOiBpdGVtLmxldmVsID09ICd0d28nLCBcbiAgICAnbWFyZ2luLWxlZnQtMzYnOiBpdGVtLmxldmVsICE9ICd0d28nfVwiPlxuICAgIHt7c2VsZWN0ZWRBcHBsaWNhdGlvbihpdGVtKX19XG4gICAgPHNwYW4gaWQ9XCJhY3RpdmVDb3VudFwiICpuZ0lmPVwiaXRlbS5jb3VudEtleSAmJiBnZXRTcGVjaWZpZWRWYWx1ZShpdGVtLmNvdW50S2V5KVwiIGNsYXNzPVwibmctYmluZGluZyBuZy1zY29wZVwiPlxuICAgICAge3sgZ2V0U3BlY2lmaWVkVmFsdWUoaXRlbS5jb3VudEtleSkgfX1cbiAgICA8L3NwYW4+XG4gICAgPCEtLSA8c3BhbiBpZD1cImFjdGl2ZVJlY0NvdW50XCIgKm5nSWY9XCJpdGVtLm5hbWUgPT0gJ1JlY29tbWVuZGF0aW9ucycgJiYgaXRlbS5yZWNDb3VudCAhPSAnJyAmJiBpdGVtLnJlY0NvdW50ICE9ICcwJyAmJiBpdGVtLnJlY0NvdW50ICE9IG51bGxcIiBjbGFzcz1cImFjdGl2ZVJlY0NvdW50XCI+e3tpdGVtLnJlY0NvdW50fX08L3NwYW4+ICAtLT5cbiAgICA8c3BhbiAqbmdJZj1cIml0ZW0uYmFkZ2VcIiBjbGFzcz1cImJhZGdlLXRleHQgc292LWJldGEtcG9zaXRpb25cIiBbaW5uZXJIVE1MXT1cIml0ZW0uYmFkZ2VcIj48L3NwYW4+XG4gICAgPHNwYW4gaWQ9XCJhY3RpdmVSZWNDb3VudFwiIGNsYXNzPVwiYWN0aXZlUmVjQ291bnRcIiAqbmdJZj1cImhhc1dhbG1hcnRSZWNvbW1lbmRhdGlvbihpdGVtKVwiPnt7cmVjQ291bnR9fTwvc3Bhbj4gXG4gIDwvaDM+XG48L2E+XG48ZGl2IHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlvbjogZml4ZWRcIiBbc3R5bGUubGVmdF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnhcIlxuICBbc3R5bGUudG9wXT1cImNvbnRleHRNZW51UG9zaXRpb24ueVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb250ZXh0TWVudVwiPlxuPC9kaXY+XG48bWF0LW1lbnUgI2NvbnRleHRNZW51PVwibWF0TWVudVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwibmV3VGFiTWVudVwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25Db250ZXh0TWVudUFjdGlvbihpdGVtKVwiIGNsYXNzPVwibmV3VGFiTWVudVwiIGlkPVwibmV3VGFiQWN0aW9uQnRuXCI+T3BlbiBpbiBuZXdcbiAgICAgIHRhYjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm5ld1RhYk1lbnVcIj48L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG48bWF0LWRpdmlkZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzZXBhcmF0b3InXCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L21hdC1kaXZpZGVyPiJdfQ==
@@ -1290,6 +1290,7 @@ class NavMenusComponent {
1290
1290
  contextMenu;
1291
1291
  contextMenuPosition = { x: '0px', y: '0px' };
1292
1292
  translation;
1293
+ recCount;
1293
1294
  constructor(navigation, router, activatedRoute, urlContextService, cookie, translate) {
1294
1295
  this.navigation = navigation;
1295
1296
  this.router = router;
@@ -1307,6 +1308,20 @@ class NavMenusComponent {
1307
1308
  hasIcon(item) {
1308
1309
  return (item.icon != undefined && item.icon != '');
1309
1310
  }
1311
+ hasWalmartRecommendation(item) {
1312
+ if (item.id == "walmart_recommendations") {
1313
+ this.recCount = this.navigation.appDetails.recCount;
1314
+ if (this.recCount && this.recCount > 0) {
1315
+ return true;
1316
+ }
1317
+ else {
1318
+ return false;
1319
+ }
1320
+ }
1321
+ else {
1322
+ return false;
1323
+ }
1324
+ }
1310
1325
  selectedApplication(name) {
1311
1326
  return this.translate.selectedApplication(this.navigation.appDetails, name);
1312
1327
  }
@@ -1507,11 +1522,11 @@ class NavMenusComponent {
1507
1522
  }, 5000);
1508
1523
  }
1509
1524
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavMenusComponent, deps: [{ token: ApplicationSidebarService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: UrlContextService }, { token: i4.CookieService }, { token: TranslationService }], target: i0.ɵɵFactoryTarget.Component });
1510
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavMenusComponent, selector: "lnc-nav-menus", inputs: { item: "item", applicationId: "applicationId", parentMenuId: "parentMenuId", parentPanelId: "parentPanelId", isActiveItem: "isActiveItem" }, outputs: { menuClicked: "menuClicked" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: OffsetTopDirective, selector: "[appOffsetTop]", inputs: ["isActiveItem"] }] });
1525
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavMenusComponent, selector: "lnc-nav-menus", inputs: { item: "item", applicationId: "applicationId", parentMenuId: "parentMenuId", parentPanelId: "parentPanelId", isActiveItem: "isActiveItem" }, outputs: { menuClicked: "menuClicked" }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <!-- <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> -->\n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" class=\"activeRecCount\" *ngIf=\"hasWalmartRecommendation(item)\">{{recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"], dependencies: [{ kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i9.MatLine, selector: "[mat-line], [matLine]" }, { kind: "directive", type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: OffsetTopDirective, selector: "[appOffsetTop]", inputs: ["isActiveItem"] }] });
1511
1526
  }
1512
1527
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavMenusComponent, decorators: [{
1513
1528
  type: Component,
1514
- args: [{ selector: 'lnc-nav-menus', template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"] }]
1529
+ args: [{ selector: 'lnc-nav-menus', template: "<a appOffsetTop class=\"sidemenu-option {{item.style_classes}}\" mat-list-item (click)=\"onSelectMenu($event,item)\"\n *ngIf=\"item.type === 'leaf'\" [ngClass]=\"{'active': isActiveItem}\" (contextmenu)=\"onContextMenu($event, item)\">\n <!-- <span class=\"{{item.id}}_icon\" *ngIf=\"item.id == 'global_account_mgmt'\"></span> -->\n <h3 matLine class=\"sidemenu-text font-color-black navMenus applicationMenu\" [ngClass]=\"{'margin-left-10': item.level == 'two', \n 'margin-left-36': item.level != 'two'}\">\n {{selectedApplication(item)}}\n <span id=\"activeCount\" *ngIf=\"item.countKey && getSpecifiedValue(item.countKey)\" class=\"ng-binding ng-scope\">\n {{ getSpecifiedValue(item.countKey) }}\n </span>\n <!-- <span id=\"activeRecCount\" *ngIf=\"item.name == 'Recommendations' && item.recCount != '' && item.recCount != '0' && item.recCount != null\" class=\"activeRecCount\">{{item.recCount}}</span> -->\n <span *ngIf=\"item.badge\" class=\"badge-text sov-beta-position\" [innerHTML]=\"item.badge\"></span>\n <span id=\"activeRecCount\" class=\"activeRecCount\" *ngIf=\"hasWalmartRecommendation(item)\">{{recCount}}</span> \n </h3>\n</a>\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n<mat-menu #contextMenu=\"matMenu\">\n <ng-template matMenuContent let-item=\"item\">\n <button mat-menu-item class=\"newTabMenu\"></button>\n <button mat-menu-item (click)=\"onContextMenuAction(item)\" class=\"newTabMenu\" id=\"newTabActionBtn\">Open in new\n tab</button>\n <button mat-menu-item class=\"newTabMenu\"></button>\n </ng-template>\n</mat-menu>\n<mat-divider *ngIf=\"item.type === 'separator'\" class=\"separator\"></mat-divider>", styles: [".separator{z-index:1;position:relative;width:170px;border-top:1px solid #dce0e7;margin-left:40px;display:block}.sidemenu-option{display:flex;align-items:center;box-sizing:border-box;position:relative;height:40px}.badge-text{position:relative;font-size:10px;color:#ff273e;font-family:Lato!important;top:-5px;right:0;letter-spacing:.5px;padding-left:2px}.activeRecCount{color:#fff;font-size:14px!important;font-weight:700!important;padding:5px;display:inline-block;border-radius:22px;line-height:17px;height:25px;min-width:41px;text-align:center;vertical-align:super;background-color:#ff273e;position:absolute!important;right:8px;top:8px}.sidemenu-text{font-size:13px!important;line-height:36px;color:#202b37}.font-color-red{color:#ff3e3e}.font-color-black{color:#000!important}.margin-left-10{margin-left:10px!important}.margin-left-36{margin-left:36px!important}:host ::ng-deep .mat-mdc-list-base .mat-mdc-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:40px}:host ::ng-deep .mat-list-item-content{flex-direction:row-reverse!important;display:flex!important;padding:0 10px 0 14px!important;width:100%}:host ::ng-deep a:not([class^=active]) mat-list-item-content:hover{border-right:3px solid #ff273e!important}a:hover{text-decoration:none}a:hover h3{color:#ff273e!important}.active{text-decoration:none;background-color:#fdeeec;border-right:3px solid #ff273e!important}.active h3{color:#ff273e!important}#activeCount{background-color:#ff273e;color:#fff;font-size:11px!important;font-weight:600!important;padding:5px;display:inline-block;border-radius:22px;line-height:11px;margin:auto 5px;height:10px;min-width:20px;top:0;text-align:center;vertical-align:text-bottom}button.newTabMenu{display:block;padding:0 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap;min-height:15px;height:20px;font-size:14px;background-color:#efefef;cursor:default}button#newTabActionBtn:hover{background-color:#efefef}button#newTabActionBtn{cursor:pointer}button#newTabActionBtn:hover{background-color:#2995e8;color:#fff!important}\n"] }]
1515
1530
  }], ctorParameters: function () { return [{ type: ApplicationSidebarService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: UrlContextService }, { type: i4.CookieService }, { type: TranslationService }]; }, propDecorators: { menuClicked: [{
1516
1531
  type: Output
1517
1532
  }], item: [{