@propmix/profet-common-header 3.0.6 → 3.1.0
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.
- package/esm2020/lib/common-header.interface.mjs +1 -1
- package/esm2020/lib/common-header.module.mjs +4 -3
- package/esm2020/lib/common-header.service.mjs +7 -1
- package/esm2020/lib/header/header.component.mjs +73 -11
- package/esm2020/lib/session-expiry-info/session-expiry-info.component.mjs +29 -0
- package/fesm2015/propmix-profet-common-header.mjs +105 -13
- package/fesm2015/propmix-profet-common-header.mjs.map +1 -1
- package/fesm2020/propmix-profet-common-header.mjs +103 -13
- package/fesm2020/propmix-profet-common-header.mjs.map +1 -1
- package/lib/common-header.interface.d.ts +1 -0
- package/lib/common-header.module.d.ts +17 -16
- package/lib/common-header.service.d.ts +3 -0
- package/lib/header/header.component.d.ts +7 -3
- package/lib/session-expiry-info/session-expiry-info.component.d.ts +13 -0
- package/package.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Component, inject, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, HostListener, inject, ViewChild } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
4
3
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
5
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
5
|
import { Router } from '@angular/router';
|
|
@@ -35,7 +34,8 @@ export class HeaderComponent {
|
|
|
35
34
|
this._snackbar = inject(MatSnackBar);
|
|
36
35
|
this._headerSer = inject(CommonHeaderService);
|
|
37
36
|
this._domSanitizer = inject(DomSanitizer);
|
|
38
|
-
this.
|
|
37
|
+
this.INACTIVITY_LIMIT = 30 * 60 * 1000; // 30 minutes
|
|
38
|
+
this.isDialogOpen = false;
|
|
39
39
|
this.companyControl = new FormControl();
|
|
40
40
|
this.appConfig = AppConfig.appConfig;
|
|
41
41
|
this.companyList = [];
|
|
@@ -44,7 +44,6 @@ export class HeaderComponent {
|
|
|
44
44
|
async ngOnInit() {
|
|
45
45
|
this.updateLastAccessedAppInfo();
|
|
46
46
|
this.getCompanyList();
|
|
47
|
-
this.getMenuList();
|
|
48
47
|
let userInfo = await getCurrentUser();
|
|
49
48
|
if (userInfo?.username) {
|
|
50
49
|
let userDetails = this._headerSer.getUserDetailsByEmail({
|
|
@@ -55,6 +54,7 @@ export class HeaderComponent {
|
|
|
55
54
|
if (res && res[0]) {
|
|
56
55
|
this.userAuthData = res[0];
|
|
57
56
|
this.username = this.userAuthData.firstName;
|
|
57
|
+
this.getMenuList();
|
|
58
58
|
if (this.userAuthData?._links?.profileImage?.href) {
|
|
59
59
|
this.getUserProfile();
|
|
60
60
|
}
|
|
@@ -62,6 +62,18 @@ export class HeaderComponent {
|
|
|
62
62
|
},
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
+
this.resetTimer();
|
|
66
|
+
}
|
|
67
|
+
resetTimer() {
|
|
68
|
+
clearTimeout(this.inactivityTimeout);
|
|
69
|
+
if (!this.isDialogOpen) {
|
|
70
|
+
this.inactivityTimeout = setTimeout(() => {
|
|
71
|
+
signOut({ global: true, oauth: { redirectUrl: this._headerSer.headerConfig.signOutUrl } });
|
|
72
|
+
this._headerSer.openSessionExpireInfo();
|
|
73
|
+
this.isDialogOpen = true;
|
|
74
|
+
clearTimeout(this.inactivityTimeout);
|
|
75
|
+
}, this.INACTIVITY_LIMIT);
|
|
76
|
+
}
|
|
65
77
|
}
|
|
66
78
|
selectCurrentCompany() {
|
|
67
79
|
let com = this.companyList.find(x => x.isActive);
|
|
@@ -77,6 +89,15 @@ export class HeaderComponent {
|
|
|
77
89
|
groupByAppType(menuList) {
|
|
78
90
|
let grouped = menuList.reduce((r, a) => {
|
|
79
91
|
r[a.appType] = r[a.appType] || [];
|
|
92
|
+
// TODO: Path references are to be replaced with values from backend API response. Remove this block when backend is ready
|
|
93
|
+
if (a.appType == PROFET_APPS.profet_portal) {
|
|
94
|
+
let isCompanyMenu = a.path === 'app/companies';
|
|
95
|
+
let isCompanyAdmin = this.userAuthData?.rolesForCurrentCompany.includes("COMPANY_ADMIN");
|
|
96
|
+
if (isCompanyMenu && isCompanyAdmin) {
|
|
97
|
+
a = { ...a, path: 'app/addCompany/companyDetails' };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// END of TODO block
|
|
80
101
|
r[a.appType].push(a);
|
|
81
102
|
return r;
|
|
82
103
|
}, Object.create(null));
|
|
@@ -84,15 +105,30 @@ export class HeaderComponent {
|
|
|
84
105
|
}
|
|
85
106
|
menuSelection(menu) {
|
|
86
107
|
this.sideMenuToggle();
|
|
108
|
+
let activeCom = this.companyList.find(x => x.isActive);
|
|
109
|
+
let isCompanyMenu = menu.path === 'app/addCompany/companyDetails';
|
|
110
|
+
let isCompanyAdmin = this.userAuthData?.rolesForCurrentCompany.includes("COMPANY_ADMIN");
|
|
87
111
|
if (menu.appType == this._headerSer.headerConfig.appType) {
|
|
88
|
-
|
|
112
|
+
// TODO: Path references are to be replaced with values from backend API response
|
|
113
|
+
if (isCompanyMenu && isCompanyAdmin) {
|
|
114
|
+
this._router.navigate([menu.path, activeCom?.id]);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this._router.navigate([menu.path]);
|
|
118
|
+
}
|
|
89
119
|
}
|
|
90
120
|
else {
|
|
91
|
-
let activeCom = this.companyList.find(x => x.isActive);
|
|
92
121
|
if (activeCom) {
|
|
93
122
|
if (activeCom.baseUrls[menu.appType]) {
|
|
94
|
-
|
|
95
|
-
|
|
123
|
+
// TODO: Path references are to be replaced with values from backend API response
|
|
124
|
+
if (isCompanyMenu && isCompanyAdmin) {
|
|
125
|
+
let url = `${activeCom.baseUrls[menu.appType]}/${menu.path}/${activeCom.id}`;
|
|
126
|
+
window.location.replace(url);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
let url = `${activeCom.baseUrls[menu.appType]}/${menu.path}`;
|
|
130
|
+
window.location.replace(url);
|
|
131
|
+
}
|
|
96
132
|
}
|
|
97
133
|
}
|
|
98
134
|
}
|
|
@@ -164,7 +200,7 @@ export class HeaderComponent {
|
|
|
164
200
|
activeCompany: this.activeCompany?.name,
|
|
165
201
|
switchingCompany: company.name
|
|
166
202
|
};
|
|
167
|
-
this._dialog.open(CompanySwitchWarningComponent, { data: comInfo }).afterClosed().subscribe(res => {
|
|
203
|
+
this._headerSer._dialog.open(CompanySwitchWarningComponent, { data: comInfo }).afterClosed().subscribe(res => {
|
|
168
204
|
if (res) {
|
|
169
205
|
// Find the domain information
|
|
170
206
|
if (!company.isActive) {
|
|
@@ -211,14 +247,40 @@ export class HeaderComponent {
|
|
|
211
247
|
}
|
|
212
248
|
});
|
|
213
249
|
}
|
|
250
|
+
ngOnDestroy() {
|
|
251
|
+
if (this.inactivityTimeout) {
|
|
252
|
+
clearTimeout(this.inactivityTimeout);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
214
255
|
}
|
|
215
256
|
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
216
|
-
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "lib-header", viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }], ngImport: i0, template: "<mat-sidenav-container class=\"app-menu-sidenav-container\">\n <mat-sidenav cdkMenuBar #sidenav mode=\"over\" class=\"sidenavDrawer\">\n <div class=\"drawerHeadLogo\"><img [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.profetLogo)\"></div>\n <div class=\"app-menu-content-section\">\n <ng-container *ngFor=\"let appType of menuList\">\n <div class=\"appList\">\n <img *ngIf=\"appConfig[appType.key]?.appLogoUri\"\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[appType.key]?.appLogoUri)\">\n </div>\n <div class=\"subHeadListItems\">\n <div *ngFor=\"let item of appType.value\" class=\"menu-item\" (click)=\"menuSelection(item)\"\n [ngClass]=\"{'active-menu': item | activeRoute : _router.url:_headerSer.headerConfig.appType}\">\n <mat-icon class=\"menuIconList\" *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <span>{{ item.menuName }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n<mat-toolbar cdkMenuBar color=\"primary\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"sidenav.toggle()\"\n class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\" aria-label=\"main menu\" tabindex=\"0\"\n matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[_headerSer.headerConfig.appType]?.appLogoUri)\"\n alt=\"App Logo\" class=\"app-logo\">\n </a>\n\n <ng-content></ng-content>\n\n <mat-form-field appearance=\"outline\" class=\"switchCompanyField\">\n <mat-label>Company</mat-label>\n <mat-select [formControl]=\"companyControl\" (selectionChange)=\"switchCompany($event)\">\n <mat-option *ngFor=\"let opt of companyList\" [value]=\"opt\">\n {{opt.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n\n <!-- Profile button and profile dropdown links -->\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button [matMenuTriggerFor]=\"menu\" color=\"primary\"\n matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <!-- <div class=\"brand-logo align-self-center\" *ngIf=\"activeCompany?.logo\"\n [ngClass]=\"activeCompany?.logo ? 'branded-logo-true' : 'branded-logo-false'\"\n [ngStyle]=\"{'background-image': 'url(' + activeCompany?.logo + ')'}\"></div> -->\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"userImageLink\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.defaultUserImage)\"\n class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <img *ngIf=\"userImageLink;else defaultLargeAvatar\" [src]=\"userImageLink\" class=\"avatar-icon\"\n alt=\"Avatar\">\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\"\n class=\"avatar-icon default-avatar\" alt=\"Avatar icon\"> </div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{\n userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\"\n (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <!-- <div class=\"popover-content-title\">\n <p>Overview</p>\n </div> -->\n\n <div *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text list-text-email mt-3 mb-3\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"pmx-lower-case pmx-text-wrap me-auto\">{{\n userAuthData?.email }}</span>\n </p>\n </div>\n <ng-container *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text mb-3\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{\n userAuthData?.contactPhone }}</span>\n </p>\n </ng-container>\n\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--contentfont: 13.12px !important;--labelfont: .75rem !important}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmx-text-wrap{overflow-wrap:break-word;word-break:break-word}.pmx-lower-case{text-transform:lowercase}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:fixed;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:20px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:24px!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:#254d93}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{background-color:#e5f3fb}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:#bfdff7!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:#bfdff7!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:#9cd7a8}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px!important}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid #bfdff7}.btn-group-clicked.branded-group-true{background-color:#99ccf2}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}::ng-deep .header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:408px!important;width:408px!important;overflow:visible;margin-top:1rem}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:#254d93}.btn.view-profile{background:#fafafa}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 1rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:#212121;padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}::ng-deep .popover-content ul.list-group li.list-item button.list-button .list-text{font-size:15px}.popover-content .popover-body p.list-text{padding:.5rem 1rem;margin:0;min-height:auto;cursor:default}::ng-deep .popover-content .popover-body p.list-text .mat-mdc-menu-item-text{font-size:15px;font-weight:500}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon,.popover-content .popover-body p.list-text .list-icon{color:#2db051;font-variation-settings:\"FILL\" 0,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:#2db051;font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case,.popover-content ul.list-group li.list-item span.lower-case,.popover-content ul.list-group li.list-item span.pmx-lower-case{font-size:.8rem;color:#212121;font-weight:500;display:block;line-height:normal}small{color:#9e9e9e}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item .list-text span.mat-mdc-menu-item-text{font-size:.875rem;color:#0a152f;font-weight:500;line-height:normal}.popover-content ul.list-group li.list-item .list-text.list-text-email span.mat-mdc-menu-item-text{width:calc(100% - 40px);display:inline-flex}.popover-content ul.list-group li.list-item .list-text.list-text-email span.pmx-text-wrap{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;width:100%}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active .list-text,.popover-content ul.list-group li.list-item.company-active .list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:#408dd7;color:#f5f5f5}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:#616161}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active .list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:#616161}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:#254d93}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:#254d93}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid #fafafa!important}:host(.mat-accent){--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}:host ::ng-deep .app-menu-sidenav-container{z-index:999}:host ::ng-deep .mat-drawer-backdrop.mat-drawer-shown{position:fixed;background:rgba(63,81,181,.25)}.mat-drawer-backdrop{position:fixed!important}.sidenavDrawer{position:fixed!important;left:0;width:250px;padding:0}.mdc-list-group__subheader{background-color:#eef4ff;padding:5px 20px;margin-bottom:5px!important;font-size:14px!important;font-weight:500!important}.menusubItems{padding-left:2rem!important}.switchCompanyField{min-width:175px!important;margin-left:13px}.profile-button{margin-left:10px}.brand-logo{width:100px;height:38px;background-repeat:no-repeat;background-size:contain;background-origin:content-box;padding:7px}.menuIconList{font-size:20px!important;height:20px;width:20px;margin-right:.5rem;position:relative;color:#747474;font-weight:300}.subHeadListItems{padding:0 15px}.subHeadListItems .menu-item{display:flex;flex-direction:row;align-items:center;color:#000;padding:.7rem .5rem;border-radius:3px;transition:all .3s;font-size:var(--contentfont)}.subHeadListItems .menu-item:hover:not(.no-select){cursor:pointer;background-color:#f5f5f5}.subHeadInnerItem{margin-bottom:0!important}.drawerHeadLogo{width:100%;padding:10px 20px;margin-bottom:20px;margin-top:15px}.drawerHeadLogo img{width:130px}.app-menu-content-section{overflow-y:auto;height:calc(100vh - 80px);padding-bottom:25px}.active-menu{background-color:var(--themelightblue)!important;color:#fff!important;font-weight:500}.active-menu .menuIconList{color:#fff}.appList{padding:11px 15px;background-color:#eef4ff;margin:20px 0 10px;height:35px;display:flex}.appList img{object-fit:contain}::ng-deep .header-dropdown-profile .mat-mdc-menu-content{margin:0;padding:0;list-style-type:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { 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.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i12.ActiveRoutePipe, name: "activeRoute" }] });
|
|
257
|
+
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "lib-header", host: { listeners: { "document:mousemove": "resetTimer()", "document:keydown": "resetTimer()", "document:click": "resetTimer()", "document:touchstart": "resetTimer()", "document:touchmove": "resetTimer()", "document:scroll": "resetTimer()", "window:focus": "resetTimer()" } }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }], ngImport: i0, template: "<mat-sidenav-container class=\"app-menu-sidenav-container\">\n <mat-sidenav cdkMenuBar #sidenav mode=\"over\" class=\"sidenavDrawer\">\n <div class=\"drawerHeadLogo\"><img [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.profetLogo)\"></div>\n <div class=\"app-menu-content-section\">\n <ng-container *ngFor=\"let appType of menuList\">\n <div class=\"appList\">\n <img *ngIf=\"appConfig[appType.key]?.appLogoUri\"\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[appType.key]?.appLogoUri)\">\n </div>\n <div class=\"subHeadListItems\">\n <div *ngFor=\"let item of appType.value\" class=\"menu-item\" (click)=\"menuSelection(item)\"\n [ngClass]=\"{'active-menu': item | activeRoute : _router.url:_headerSer.headerConfig.appType}\">\n <mat-icon class=\"menuIconList\" *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <span>{{ item.menuName }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n<mat-toolbar cdkMenuBar color=\"primary\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"sidenav.toggle()\"\n class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\" aria-label=\"main menu\" tabindex=\"0\"\n matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[_headerSer.headerConfig.appType]?.appLogoUri)\"\n alt=\"App Logo\" class=\"app-logo\">\n </a>\n\n <ng-content></ng-content>\n\n <mat-form-field appearance=\"outline\" class=\"switchCompanyField\">\n <mat-label>Company</mat-label>\n <mat-select [formControl]=\"companyControl\" (selectionChange)=\"switchCompany($event)\">\n <mat-option *ngFor=\"let opt of companyList\" [value]=\"opt\">\n {{opt.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n\n <!-- Profile button and profile dropdown links -->\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button [matMenuTriggerFor]=\"menu\" color=\"primary\"\n matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <!-- <div class=\"brand-logo align-self-center\" *ngIf=\"activeCompany?.logo\"\n [ngClass]=\"activeCompany?.logo ? 'branded-logo-true' : 'branded-logo-false'\"\n [ngStyle]=\"{'background-image': 'url(' + activeCompany?.logo + ')'}\"></div> -->\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"userImageLink\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.defaultUserImage)\"\n class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <img *ngIf=\"userImageLink;else defaultLargeAvatar\" [src]=\"userImageLink\" class=\"avatar-icon\"\n alt=\"Avatar\">\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\"\n class=\"avatar-icon default-avatar\" alt=\"Avatar icon\"> </div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{\n userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\"\n (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <!-- <div class=\"popover-content-title\">\n <p>Overview</p>\n </div> -->\n\n <div *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text list-text-email mt-3 mb-3\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"pmx-lower-case pmx-text-wrap me-auto\">{{\n userAuthData?.email }}</span>\n </p>\n </div>\n <ng-container *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text mb-3\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{\n userAuthData?.contactPhone }}</span>\n </p>\n </ng-container>\n\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--contentfont: 13.12px !important;--labelfont: .75rem !important}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmx-text-wrap{overflow-wrap:break-word;word-break:break-word}.pmx-lower-case{text-transform:lowercase}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:fixed;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:20px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:24px!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:#254d93}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{background-color:#e5f3fb}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:#bfdff7!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:#bfdff7!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:#9cd7a8}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px!important}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid #bfdff7}.btn-group-clicked.branded-group-true{background-color:#99ccf2}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}::ng-deep .header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:408px!important;width:408px!important;overflow:visible;margin-top:1rem}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:#254d93}.btn.view-profile{background:#fafafa}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 1rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:#212121;padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}::ng-deep .popover-content ul.list-group li.list-item button.list-button .list-text{font-size:15px}.popover-content .popover-body p.list-text{padding:.5rem 1rem;margin:0;min-height:auto;cursor:default}::ng-deep .popover-content .popover-body p.list-text .mat-mdc-menu-item-text{font-size:15px;font-weight:500}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon,.popover-content .popover-body p.list-text .list-icon{color:#2db051;font-variation-settings:\"FILL\" 0,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:#2db051;font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case,.popover-content ul.list-group li.list-item span.lower-case,.popover-content ul.list-group li.list-item span.pmx-lower-case{font-size:.8rem;color:#212121;font-weight:500;display:block;line-height:normal}small{color:#9e9e9e}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item .list-text span.mat-mdc-menu-item-text{font-size:.875rem;color:#0a152f;font-weight:500;line-height:normal}.popover-content ul.list-group li.list-item .list-text.list-text-email span.mat-mdc-menu-item-text{width:calc(100% - 40px);display:inline-flex}.popover-content ul.list-group li.list-item .list-text.list-text-email span.pmx-text-wrap{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;width:100%}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active .list-text,.popover-content ul.list-group li.list-item.company-active .list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:#408dd7;color:#f5f5f5}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:#616161}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active .list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:#616161}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:#254d93}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:#254d93}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid #fafafa!important}:host(.mat-accent){--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}:host ::ng-deep .app-menu-sidenav-container{z-index:999}:host ::ng-deep .mat-drawer-backdrop.mat-drawer-shown{position:fixed;background:rgba(63,81,181,.25)}.mat-drawer-backdrop{position:fixed!important}.sidenavDrawer{position:fixed!important;left:0;width:250px;padding:0}.mdc-list-group__subheader{background-color:#eef4ff;padding:5px 20px;margin-bottom:5px!important;font-size:14px!important;font-weight:500!important}.menusubItems{padding-left:2rem!important}.switchCompanyField{min-width:175px!important;margin-left:13px}.profile-button{margin-left:10px}.brand-logo{width:100px;height:38px;background-repeat:no-repeat;background-size:contain;background-origin:content-box;padding:7px}.menuIconList{font-size:20px!important;height:20px;width:20px;margin-right:.5rem;position:relative;color:#747474;font-weight:300}.subHeadListItems{padding:0 15px}.subHeadListItems .menu-item{display:flex;flex-direction:row;align-items:center;color:#000;padding:.7rem .5rem;border-radius:3px;transition:all .3s;font-size:var(--contentfont)}.subHeadListItems .menu-item:hover:not(.no-select){cursor:pointer;background-color:#f5f5f5}.subHeadInnerItem{margin-bottom:0!important}.drawerHeadLogo{width:100%;padding:10px 20px;margin-bottom:20px;margin-top:15px}.drawerHeadLogo img{width:130px}.app-menu-content-section{overflow-y:auto;height:calc(100vh - 80px);padding-bottom:25px}.active-menu{background-color:var(--themelightblue)!important;color:#fff!important;font-weight:500}.active-menu .menuIconList{color:#fff}.appList{padding:11px 15px;background-color:#eef4ff;margin:20px 0 10px;height:35px;display:flex}.appList img{object-fit:contain}::ng-deep .header-dropdown-profile .mat-mdc-menu-content{margin:0;padding:0;list-style-type:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { 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.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i12.ActiveRoutePipe, name: "activeRoute" }] });
|
|
217
258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
218
259
|
type: Component,
|
|
219
260
|
args: [{ selector: 'lib-header', template: "<mat-sidenav-container class=\"app-menu-sidenav-container\">\n <mat-sidenav cdkMenuBar #sidenav mode=\"over\" class=\"sidenavDrawer\">\n <div class=\"drawerHeadLogo\"><img [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.profetLogo)\"></div>\n <div class=\"app-menu-content-section\">\n <ng-container *ngFor=\"let appType of menuList\">\n <div class=\"appList\">\n <img *ngIf=\"appConfig[appType.key]?.appLogoUri\"\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[appType.key]?.appLogoUri)\">\n </div>\n <div class=\"subHeadListItems\">\n <div *ngFor=\"let item of appType.value\" class=\"menu-item\" (click)=\"menuSelection(item)\"\n [ngClass]=\"{'active-menu': item | activeRoute : _router.url:_headerSer.headerConfig.appType}\">\n <mat-icon class=\"menuIconList\" *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <span>{{ item.menuName }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n<mat-toolbar cdkMenuBar color=\"primary\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"sidenav.toggle()\"\n class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\" aria-label=\"main menu\" tabindex=\"0\"\n matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img [src]=\"_domSanitizer.bypassSecurityTrustUrl(appConfig[_headerSer.headerConfig.appType]?.appLogoUri)\"\n alt=\"App Logo\" class=\"app-logo\">\n </a>\n\n <ng-content></ng-content>\n\n <mat-form-field appearance=\"outline\" class=\"switchCompanyField\">\n <mat-label>Company</mat-label>\n <mat-select [formControl]=\"companyControl\" (selectionChange)=\"switchCompany($event)\">\n <mat-option *ngFor=\"let opt of companyList\" [value]=\"opt\">\n {{opt.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n\n <!-- Profile button and profile dropdown links -->\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button [matMenuTriggerFor]=\"menu\" color=\"primary\"\n matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <!-- <div class=\"brand-logo align-self-center\" *ngIf=\"activeCompany?.logo\"\n [ngClass]=\"activeCompany?.logo ? 'branded-logo-true' : 'branded-logo-false'\"\n [ngStyle]=\"{'background-image': 'url(' + activeCompany?.logo + ')'}\"></div> -->\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"userImageLink\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img\n [src]=\"_domSanitizer.bypassSecurityTrustUrl(imageDataUrls.defaultUserImage)\"\n class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <img *ngIf=\"userImageLink;else defaultLargeAvatar\" [src]=\"userImageLink\" class=\"avatar-icon\"\n alt=\"Avatar\">\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\"\n class=\"avatar-icon default-avatar\" alt=\"Avatar icon\"> </div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{\n userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\"\n (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <!-- <div class=\"popover-content-title\">\n <p>Overview</p>\n </div> -->\n\n <div *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text list-text-email mt-3 mb-3\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"pmx-lower-case pmx-text-wrap me-auto\">{{\n userAuthData?.email }}</span>\n </p>\n </div>\n <ng-container *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text mb-3\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{\n userAuthData?.contactPhone }}</span>\n </p>\n </ng-container>\n\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--contentfont: 13.12px !important;--labelfont: .75rem !important}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmx-text-wrap{overflow-wrap:break-word;word-break:break-word}.pmx-lower-case{text-transform:lowercase}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:fixed;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:20px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:24px!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:#254d93}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{background-color:#e5f3fb}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:#bfdff7!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:#bfdff7!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:#9cd7a8}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px!important}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid #bfdff7}.btn-group-clicked.branded-group-true{background-color:#99ccf2}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}::ng-deep .header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:408px!important;width:408px!important;overflow:visible;margin-top:1rem}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:#254d93}.btn.view-profile{background:#fafafa}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 1rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:#212121;padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}::ng-deep .popover-content ul.list-group li.list-item button.list-button .list-text{font-size:15px}.popover-content .popover-body p.list-text{padding:.5rem 1rem;margin:0;min-height:auto;cursor:default}::ng-deep .popover-content .popover-body p.list-text .mat-mdc-menu-item-text{font-size:15px;font-weight:500}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon,.popover-content .popover-body p.list-text .list-icon{color:#2db051;font-variation-settings:\"FILL\" 0,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:#2db051;font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case,.popover-content ul.list-group li.list-item span.lower-case,.popover-content ul.list-group li.list-item span.pmx-lower-case{font-size:.8rem;color:#212121;font-weight:500;display:block;line-height:normal}small{color:#9e9e9e}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item .list-text span.mat-mdc-menu-item-text{font-size:.875rem;color:#0a152f;font-weight:500;line-height:normal}.popover-content ul.list-group li.list-item .list-text.list-text-email span.mat-mdc-menu-item-text{width:calc(100% - 40px);display:inline-flex}.popover-content ul.list-group li.list-item .list-text.list-text-email span.pmx-text-wrap{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;width:100%}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active .list-text,.popover-content ul.list-group li.list-item.company-active .list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:#408dd7;color:#f5f5f5}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:#616161}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active .list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:#616161}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:#254d93}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:#254d93}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid #fafafa!important}:host(.mat-accent){--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}:host ::ng-deep .app-menu-sidenav-container{z-index:999}:host ::ng-deep .mat-drawer-backdrop.mat-drawer-shown{position:fixed;background:rgba(63,81,181,.25)}.mat-drawer-backdrop{position:fixed!important}.sidenavDrawer{position:fixed!important;left:0;width:250px;padding:0}.mdc-list-group__subheader{background-color:#eef4ff;padding:5px 20px;margin-bottom:5px!important;font-size:14px!important;font-weight:500!important}.menusubItems{padding-left:2rem!important}.switchCompanyField{min-width:175px!important;margin-left:13px}.profile-button{margin-left:10px}.brand-logo{width:100px;height:38px;background-repeat:no-repeat;background-size:contain;background-origin:content-box;padding:7px}.menuIconList{font-size:20px!important;height:20px;width:20px;margin-right:.5rem;position:relative;color:#747474;font-weight:300}.subHeadListItems{padding:0 15px}.subHeadListItems .menu-item{display:flex;flex-direction:row;align-items:center;color:#000;padding:.7rem .5rem;border-radius:3px;transition:all .3s;font-size:var(--contentfont)}.subHeadListItems .menu-item:hover:not(.no-select){cursor:pointer;background-color:#f5f5f5}.subHeadInnerItem{margin-bottom:0!important}.drawerHeadLogo{width:100%;padding:10px 20px;margin-bottom:20px;margin-top:15px}.drawerHeadLogo img{width:130px}.app-menu-content-section{overflow-y:auto;height:calc(100vh - 80px);padding-bottom:25px}.active-menu{background-color:var(--themelightblue)!important;color:#fff!important;font-weight:500}.active-menu .menuIconList{color:#fff}.appList{padding:11px 15px;background-color:#eef4ff;margin:20px 0 10px;height:35px;display:flex}.appList img{object-fit:contain}::ng-deep .header-dropdown-profile .mat-mdc-menu-content{margin:0;padding:0;list-style-type:none}\n"] }]
|
|
220
261
|
}], ctorParameters: function () { return []; }, propDecorators: { sidenav: [{
|
|
221
262
|
type: ViewChild,
|
|
222
263
|
args: ['sidenav']
|
|
264
|
+
}], resetTimer: [{
|
|
265
|
+
type: HostListener,
|
|
266
|
+
args: ['document:mousemove']
|
|
267
|
+
}, {
|
|
268
|
+
type: HostListener,
|
|
269
|
+
args: ['document:keydown']
|
|
270
|
+
}, {
|
|
271
|
+
type: HostListener,
|
|
272
|
+
args: ['document:click']
|
|
273
|
+
}, {
|
|
274
|
+
type: HostListener,
|
|
275
|
+
args: ['document:touchstart']
|
|
276
|
+
}, {
|
|
277
|
+
type: HostListener,
|
|
278
|
+
args: ['document:touchmove']
|
|
279
|
+
}, {
|
|
280
|
+
type: HostListener,
|
|
281
|
+
args: ['document:scroll']
|
|
282
|
+
}, {
|
|
283
|
+
type: HostListener,
|
|
284
|
+
args: ['window:focus']
|
|
223
285
|
}] } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGVBQWU7SUFzQjFCO1FBckJBLGFBQVEsR0FBVyxFQUFFLENBQUM7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QUFPLENBQUMsR0FBRyxDQUFDLENBQUM7aUNBQzlCO2dDQUNELCtFQUErRTtnQ0FDL0UsNEJBQTRCOzZCQUM3QjtpQ0FBTTtnQ0FDTCx3RUFBd0U7Z0NBQ3hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixxRUFBcUUsRUFDckUsSUFBSSxFQUNKLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNuQixDQUFDOzZCQUNIO3dCQUNILENBQUM7d0JBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQ1gsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7NEJBQy9CLHdFQUF3RTs0QkFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLHFFQUFxRSxFQUNyRSxJQUFJLEVBQ0osRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQ25CLENBQUM7d0JBQ0osQ0FBQztxQkFDRixDQUFDLENBQUM7b0JBQ0gsS0FBSztvQkFDTCxTQUFTO29CQUNULG9DQUFvQztvQkFDcEMseUJBQXlCO29CQUN6Qiw2RUFBNkU7b0JBQzdFLFlBQVk7b0JBQ1oseUJBQXlCO29CQUN6QixPQUFPO29CQUNQLElBQUk7aUJBQ0w7YUFDRjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7NkdBdk5VLGVBQWU7aUdBQWYsZUFBZSxzSkMxQjVCLGdoTUE2R2M7NEZEbkZELGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswRUFzQkEsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXIsIHNpZ25PdXQgfSBmcm9tICdhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBNZW51LCBDb21wYW55IH0gZnJvbSAnLi4vY29tbW9uLWhlYWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYW55U3dpdGNoV2FybmluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcvY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUFJPRkVUX0FQUFMgfSBmcm9tICcuLi91dGlscy9hcHBzLmVudW0nO1xuaW1wb3J0IHsgaW1hZ2VEYXRhVXJsIH0gZnJvbSAnLi4vdXRpbHMvaW1hZ2UuZGF0YXVybCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHVzZXJuYW1lOiBzdHJpbmcgPSAnJztcbiAgY29tcGFueVByb2ZpbGU6IGFueTtcbiAgcG9ydGFsVXJsOiBzdHJpbmcgPSAnJztcbiAgdXNlckF1dGhEYXRhOiBhbnk7XG4gIHVzZXJJbWFnZUxpbms6IGFueSA9IG51bGw7XG4gIHVzZXJDb21wYW55TG9nbzogYW55ID0gJyc7XG4gIGltYWdlRGF0YVVybHMgPSBpbWFnZURhdGFVcmw7XG4gIHB1YmxpYyBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgX3NuYWNrYmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcHVibGljIF9oZWFkZXJTZXIgPSBpbmplY3QoQ29tbW9uSGVhZGVyU2VydmljZSk7XG4gIHB1YmxpYyBfZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuXG5cbiAgY29tcGFueUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgYXBwQ29uZmlnOiBhbnkgPSBBcHBDb25maWcuYXBwQ29uZmlnO1xuICBjb21wYW55TGlzdDogQ29tcGFueVtdID0gW107XG4gIEBWaWV3Q2hpbGQoJ3NpZGVuYXYnKSBzaWRlbmF2ITogTWF0U2lkZW5hdjtcbiAgbWVudUxpc3Q6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBBcHBNZW51W10gfVtdID0gW107XG4gIGFjdGl2ZUNvbXBhbnk6IENvbXBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUxhc3RBY2Nlc3NlZEFwcEluZm8oKTtcbiAgICB0aGlzLmdldENvbXBhbnlMaXN0KCk7XG4gICAgdGhpcy5nZXRNZW51TGlzdCgpO1xuXG4gICAgbGV0IHVzZXJJbmZvID0gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcbiAgICBpZiAodXNlckluZm8/LnVzZXJuYW1lKSB7XG4gICAgICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLl9oZWFkZXJTZXIuZ2V0VXNlckRldGFpbHNCeUVtYWlsKHtcbiAgICAgICAgZW1haWw6IHVzZXJJbmZvLnVzZXJuYW1lLFxuICAgICAgfSk7XG4gICAgICBmb3JrSm9pbihbdXNlckRldGFpbHNdKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXNbMF0pIHtcbiAgICAgICAgICAgIHRoaXMudXNlckF1dGhEYXRhID0gcmVzWzBdO1xuICAgICAgICAgICAgdGhpcy51c2VybmFtZSA9IHRoaXMudXNlckF1dGhEYXRhLmZpcnN0TmFtZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJBdXRoRGF0YT8uX2xpbmtzPy5wcm9maWxlSW1hZ2U/LmhyZWYpIHtcbiAgICAgICAgICAgICAgdGhpcy5nZXRVc2VyUHJvZmlsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbGVjdEN1cnJlbnRDb21wYW55KCkge1xuICAgIGxldCBjb20gPSB0aGlzLmNvbXBhbnlMaXN0LmZpbmQoeCA9PiB4LmlzQWN0aXZlKTtcbiAgICB0aGlzLmFjdGl2ZUNvbXBhbnkgPSBjb207XG4gIH1cblxuICBwYXRjaEN1cnJlbnRDb21wYW55SW5mbygpIHtcbiAgICBsZXQgY29tID0gdGhpcy5jb21wYW55TGlzdC5maW5kKHggPT4geC5pc0FjdGl2ZSk7XG4gICAgdGhpcy5jb21wYW55Q29udHJvbC5wYXRjaFZhbHVlKGNvbSk7XG4gIH1cblxuICBzaWRlTWVudVRvZ2dsZSgpIHtcbiAgICB0aGlzLnNpZGVuYXYudG9nZ2xlKCk7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwQnlBcHBUeXBlKG1lbnVMaXN0OiBBcHBNZW51W10pOiB7IGtleTogc3RyaW5nLCB2YWx1ZTogQXBwTWVudVtdIH1bXSB7XG4gICAgbGV0IGdyb3VwZWQgPSBtZW51TGlzdC5yZWR1Y2UoKHIsIGEpID0+IHtcbiAgICAgIHJbYS5hcHBUeXBlXSA9IHJbYS5hcHBUeXBlXSB8fCBbXTtcbiAgICAgIHJbYS5hcHBUeXBlXS5wdXNoKGEpO1xuICAgICAgcmV0dXJuIHI7XG4gICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGdyb3VwZWQpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlOiB2YWx1ZSBhcyBBcHBNZW51W10gfSkpO1xuICB9XG5cbiAgbWVudVNlbGVjdGlvbihtZW51OiBBcHBNZW51KSB7XG4gICAgdGhpcy5zaWRlTWVudVRvZ2dsZSgpO1xuICAgIGlmIChtZW51LmFwcFR5cGUgPT0gdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW21lbnUucGF0aF0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGxldCBhY3RpdmVDb20gPSB0aGlzLmNvbXBhbnlMaXN0LmZpbmQoeCA9PiB4LmlzQWN0aXZlKTtcbiAgICAgIGlmIChhY3RpdmVDb20pIHtcbiAgICAgICAgaWYgKGFjdGl2ZUNvbS5iYXNlVXJsc1ttZW51LmFwcFR5cGVdKSB7XG4gICAgICAgICAgbGV0IHVybCA9IGAke2FjdGl2ZUNvbS5iYXNlVXJsc1ttZW51LmFwcFR5cGVdfS8ke21lbnUucGF0aH1gXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodXJsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBhbnlMaXN0KCkge1xuICAgIHRoaXMuX2hlYWRlclNlci5nZXRDb21wYW55TGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAodjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuX2hlYWRlclNlci5zZXRDb21wYW55TGlzdCh2KTtcbiAgICAgICAgdGhpcy5jb21wYW55TGlzdCA9IHY7XG4gICAgICAgIHRoaXMuc2VsZWN0Q3VycmVudENvbXBhbnkoKTtcbiAgICAgICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZ2V0TWVudUxpc3QoKSB7XG4gICAgdGhpcy5faGVhZGVyU2VyLmdldE1lbnVMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5faGVhZGVyU2VyLnNldE1lbnVTdGF0ZSh2KTtcbiAgICAgICAgdGhpcy5tZW51TGlzdCA9IHRoaXMuZ3JvdXBCeUFwcFR5cGUodik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFVzZXJQcm9maWxlKCkge1xuICAgIHRoaXMuX2hlYWRlclNlclxuICAgICAgLm9idGFpbkRhdGFCeVVybCh0aGlzLnVzZXJBdXRoRGF0YS5fbGlua3MucHJvZmlsZUltYWdlLmhyZWYpXG4gICAgICAuc3Vic2NyaWJlKChpbWcpID0+IHtcbiAgICAgICAgaWYgKGltZz8ubG9jYXRpb25VcmwpIHtcbiAgICAgICAgICB0aGlzLnVzZXJJbWFnZUxpbmsgPSBpbWcubG9jYXRpb25VcmxcbiAgICAgICAgICAgID8gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1nLmxvY2F0aW9uVXJsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb2ZpbGUoKSB7XG4gICAgaWYgKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZSA9PSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2FwcC9wcm9maWxlJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgbGV0IHVybCA9IHRoaXMuYWN0aXZlQ29tcGFueT8uYmFzZVVybHMucHJvZmV0X3BvcnRhbCArICcvYXBwL3Byb2ZpbGUnO1xuICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsIH0gfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCwgJ19zZWxmJyk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgc2lnbk91dCh7IGdsb2JhbDogdHJ1ZSwgb2F1dGg6IHsgcmVkaXJlY3RVcmw6IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCB9IH0pXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsLCAnX3NlbGYnKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUxhc3RBY2Nlc3NlZEFwcEluZm8oKSB7XG4gICAgbGV0IHJlcSA9IHtcbiAgICAgIGxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLmFwcFR5cGVcbiAgICB9O1xuXG4gICAgdGhpcy5faGVhZGVyU2VyLnVwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uKHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc3dpdGNoQ29tcGFueShpbmZvOiBhbnkpIHtcbiAgICBsZXQgY29tcGFueSA9IGluZm8udmFsdWU7XG4gICAgbGV0IGNvbUluZm8gPSB7XG4gICAgICBhY3RpdmVDb21wYW55OiB0aGlzLmFjdGl2ZUNvbXBhbnk/Lm5hbWUsXG4gICAgICBzd2l0Y2hpbmdDb21wYW55OiBjb21wYW55Lm5hbWVcbiAgICB9O1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKENvbXBhbnlTd2l0Y2hXYXJuaW5nQ29tcG9uZW50LCB7IGRhdGE6IGNvbUluZm8gfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgLy8gRmluZCB0aGUgZG9tYWluIGluZm9ybWF0aW9uXG4gICAgICAgIGlmICghY29tcGFueS5pc0FjdGl2ZSkge1xuICAgICAgICAgIC8vIGxldCBkb21haW5JbmZvID0gdGhpcy5faGVhZGVyU2VyLmdldERvbWFpbkluZm8oKTtcbiAgICAgICAgICAvLyBpZiAoZG9tYWluSW5mbykge1xuICAgICAgICAgIGxldCByZXE6IGFueSA9IHtcbiAgICAgICAgICAgIGNvbXBhbnlLZXk6IGNvbXBhbnkuY29tcGFueUtleSxcbiAgICAgICAgICAgIGFwcE5hbWU6IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuX2hlYWRlclNlci51cGRhdGVVc2VyQ29tcGFueShyZXEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudHlwZSAmJiByZXNwb25zZS50eXBlID09ICdPSycpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5hcHBsaWNhdGlvblVSTCkge1xuICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IHJlc3BvbnNlLmRhdGEuYXBwbGljYXRpb25VUkw7XG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyByZWZyZXNoIHRoZSBjdXJyZW50IHBhZ2UgdG8gcmVsb2FkIHRoZSBjb250ZW50cyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb21wYW55XG4gICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIHRoYXQgdGhlIGNvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLlxuICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oXG4gICAgICAgICAgICAgICAgICAnQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsXG4gICAgICAgICAgICAgICAgICAnT0snLFxuICAgICAgICAgICAgICAgICAgeyBkdXJhdGlvbjogNTAwMCB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICAgICAgICAgIC8vIGRpc3BsYXkgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIHRoYXQgdGhlIGNvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLlxuICAgICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKFxuICAgICAgICAgICAgICAgICdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJyxcbiAgICAgICAgICAgICAgICAnT0snLFxuICAgICAgICAgICAgICAgIHsgZHVyYXRpb246IDUwMDAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyB9IFxuICAgICAgICAgIC8vIGVsc2Uge1xuICAgICAgICAgIC8vICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgICAgIC8vICAgdGhpcy5fc25hY2tiYXIub3BlbihcbiAgICAgICAgICAvLyAgICAgJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLFxuICAgICAgICAgIC8vICAgICAnT0snLFxuICAgICAgICAgIC8vICAgICB7IGR1cmF0aW9uOiA1MDAwIH1cbiAgICAgICAgICAvLyAgICk7XG4gICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiIsIjxtYXQtc2lkZW5hdi1jb250YWluZXIgY2xhc3M9XCJhcHAtbWVudS1zaWRlbmF2LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtc2lkZW5hdiBjZGtNZW51QmFyICNzaWRlbmF2IG1vZGU9XCJvdmVyXCIgY2xhc3M9XCJzaWRlbmF2RHJhd2VyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXJIZWFkTG9nb1wiPjxpbWcgW3NyY109XCJfZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1hZ2VEYXRhVXJscy5wcm9mZXRMb2dvKVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1lbnUtY29udGVudC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhcHBUeXBlIG9mIG1lbnVMaXN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcExpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZ1thcHBUeXBlLmtleV0/LmFwcExvZ29VcmlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJfZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoYXBwQ29uZmlnW2FwcFR5cGUua2V5XT8uYXBwTG9nb1VyaSlcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViSGVhZExpc3RJdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFwcFR5cGUudmFsdWVcIiBjbGFzcz1cIm1lbnUtaXRlbVwiIChjbGljayk9XCJtZW51U2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlLW1lbnUnOiBpdGVtIHwgYWN0aXZlUm91dGUgOiBfcm91dGVyLnVybDpfaGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWVudUljb25MaXN0XCIgKm5nSWY9XCJpdGVtLmljb25cIj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5tZW51TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtc2lkZW5hdj5cblxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG48bWF0LXRvb2xiYXIgY2RrTWVudUJhciBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImhlYWRlci13cmFwcGVyIGNvbW1vbl9oZWFkZXIgc2hhZG93LXNtXCI+XG4gICAgPCEtLSBNYWluIG5hdiBidXR0b24gYW5kIG5hdmlnYXRpb24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ0aGVtZS13aGl0ZVwiIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCJcbiAgICAgICAgY2xhc3M9XCJwbXgtYnV0dG9uIHBteC1tZW51LWJ1dHRvbiBvcmRlcnMtbWVudSBpY29uLWJ0biBtcy0wIG1lLTNcIiBhcmlhLWxhYmVsPVwibWFpbiBtZW51XCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIk1haW4gbWVudVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwicG9jLWhlYWRlci10b29sdGlwXCI+PG1hdC1pY29uPm1lbnU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxhIGNsYXNzPVwibmF2YmFyLWJyYW5kIG1lLWF1dG9cIiBocmVmPVwiI1wiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGFwcENvbmZpZ1tfaGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlXT8uYXBwTG9nb1VyaSlcIlxuICAgICAgICAgICAgYWx0PVwiQXBwIExvZ29cIiBjbGFzcz1cImFwcC1sb2dvXCI+XG4gICAgPC9hPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJzd2l0Y2hDb21wYW55RmllbGRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5Db21wYW55PC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJjb21wYW55Q29udHJvbFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic3dpdGNoQ29tcGFueSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIGNvbXBhbnlMaXN0XCIgW3ZhbHVlXT1cIm9wdFwiPlxuICAgICAgICAgICAgICAgIHt7b3B0Lm5hbWV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG4gICAgPCEtLSBQcm9maWxlIGJ1dHRvbiBhbmQgcHJvZmlsZSBkcm9wZG93biBsaW5rcyAtLT5cbiAgICA8YnV0dG9uIGNsYXNzPVwicG14LWJ1dHRvbiBwbXgtbWVudS1idXR0b24gcHJvZmlsZS1idXR0b25cIiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtaW5uZXJcIj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImJyYW5kLWxvZ28gYWxpZ24tc2VsZi1jZW50ZXJcIiAqbmdJZj1cImFjdGl2ZUNvbXBhbnk/LmxvZ29cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFjdGl2ZUNvbXBhbnk/LmxvZ28gPyAnYnJhbmRlZC1sb2dvLXRydWUnIDogJ2JyYW5kZWQtbG9nby1mYWxzZSdcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGFjdGl2ZUNvbXBhbnk/LmxvZ28gKyAnKSd9XCI+PC9kaXY+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdEF2YXRhclwiIFtzcmNdPVwidXNlckltYWdlTGlua1wiIGNsYXNzPVwiYXZhdGFyLWltYWdlXCIgYWx0PVwiQXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QXZhdGFyPjxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItZGVmYXVsdFwiIGFsdD1cInByb2ZpbGUgcGljXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhY2NvdW50c19kcnBtZW51IHBteC1tZW51LWdyb3VwIGhlYWRlci1kcm9wZG93bi1wcm9maWxlXCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQgc2hvdy1tZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci11c2VyLXRvcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdExhcmdlQXZhdGFyXCIgW3NyY109XCJ1c2VySW1hZ2VMaW5rXCIgY2xhc3M9XCJhdmF0YXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiQXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYXJnZUF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSArICcpJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1pY29uIGRlZmF1bHQtYXZhdGFyXCIgYWx0PVwiQXZhdGFyIGljb25cIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwcm9maWxlLW5hbWVcIj48c3BhbiAqbmdJZj1cInVzZXJBdXRoRGF0YVwiPnt7IHVzZXJBdXRoRGF0YT8uZmlyc3ROYW1lIH19IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8ubGFzdE5hbWUgfX08L3NwYW4+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwicG14LWJ1dHRvbiBidG4gYnRuLXNtYWxsIHZpZXctcHJvZmlsZSBtcy0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJvZmlsZSgpXCI+VmlldyBQcm9maWxlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPk92ZXJ2aWV3PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyQXV0aERhdGE/LmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJsaXN0LXRleHQgbGlzdC10ZXh0LWVtYWlsIG10LTMgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+bWFpbDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJwbXgtbG93ZXItY2FzZSBwbXgtdGV4dC13cmFwIG1lLWF1dG9cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImxpc3QtdGV4dCBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJsaXN0LWljb25cIj5jYWxsPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cInRpdGxlLWNhc2UgbWUtYXV0b1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgIDx1bCBjZGtNZW51IGNsYXNzPVwibGlzdC1ncm91cCBsYXN0LWdyb3VwIG15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIHB5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b24gYnRuLWxvZ291dFwiIChjbGljayk9XCJvbkxvZ291dENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cG93ZXJfc2V0dGluZ3NfbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtdGV4dFwiPkxvZ291dDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LXRvb2xiYXI+Il19
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGVBQWU7SUFzQjFCO1FBckJBLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2Qixr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RSxZQUFZO29CQUNaLHlCQUF5QjtvQkFDekIsT0FBTztvQkFDUCxJQUFJO2lCQUNMO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7NkdBeFFVLGVBQWU7aUdBQWYsZUFBZSwyYUMzQjVCLGdoTUE2R2M7NEZEbEZELGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswRUFzQkEsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQXNDcEIsVUFBVTtzQkFQVCxZQUFZO3VCQUFDLG9CQUFvQjs7c0JBQ2pDLFlBQVk7dUJBQUMsa0JBQWtCOztzQkFDL0IsWUFBWTt1QkFBQyxnQkFBZ0I7O3NCQUM3QixZQUFZO3VCQUFDLHFCQUFxQjs7c0JBQ2xDLFlBQVk7dUJBQUMsb0JBQW9COztzQkFDakMsWUFBWTt1QkFBQyxpQkFBaUI7O3NCQUM5QixZQUFZO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXNlciwgc2lnbk91dCB9IGZyb20gJ2F3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcE1lbnUsIENvbXBhbnkgfSBmcm9tICcuLi9jb21tb24taGVhZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tb25IZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBhbnlTd2l0Y2hXYXJuaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcGFueS1zd2l0Y2gtd2FybmluZy9jb21wYW55LXN3aXRjaC13YXJuaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tICcuLi9jb25maWcvYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBQUk9GRVRfQVBQUyB9IGZyb20gJy4uL3V0aWxzL2FwcHMuZW51bSc7XG5pbXBvcnQgeyBpbWFnZURhdGFVcmwgfSBmcm9tICcuLi91dGlscy9pbWFnZS5kYXRhdXJsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICB1c2VybmFtZTogc3RyaW5nID0gJyc7XG4gIGNvbXBhbnlQcm9maWxlOiBhbnk7XG4gIHBvcnRhbFVybDogc3RyaW5nID0gJyc7XG4gIHVzZXJBdXRoRGF0YTogYW55O1xuICB1c2VySW1hZ2VMaW5rOiBhbnkgPSBudWxsO1xuICB1c2VyQ29tcGFueUxvZ286IGFueSA9ICcnO1xuICBpbWFnZURhdGFVcmxzID0gaW1hZ2VEYXRhVXJsO1xuICBwdWJsaWMgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIF9zbmFja2JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIHB1YmxpYyBfaGVhZGVyU2VyID0gaW5qZWN0KENvbW1vbkhlYWRlclNlcnZpY2UpO1xuICBwdWJsaWMgX2RvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIGluYWN0aXZpdHlUaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgSU5BQ1RJVklUWV9MSU1JVCA9IDMwICogNjAgKiAxMDAwOyAvLyAzMCBtaW51dGVzXG4gIHByaXZhdGUgaXNEaWFsb2dPcGVuID0gZmFsc2U7XG4gIGNvbXBhbnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGFwcENvbmZpZzogYW55ID0gQXBwQ29uZmlnLmFwcENvbmZpZztcbiAgY29tcGFueUxpc3Q6IENvbXBhbnlbXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlbmF2Jykgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG4gIG1lbnVMaXN0OiB7IGtleTogc3RyaW5nLCB2YWx1ZTogQXBwTWVudVtdIH1bXSA9IFtdO1xuICBhY3RpdmVDb21wYW55OiBDb21wYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVMYXN0QWNjZXNzZWRBcHBJbmZvKCk7XG4gICAgdGhpcy5nZXRDb21wYW55TGlzdCgpO1xuXG4gICAgbGV0IHVzZXJJbmZvID0gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcbiAgICBpZiAodXNlckluZm8/LnVzZXJuYW1lKSB7XG4gICAgICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLl9oZWFkZXJTZXIuZ2V0VXNlckRldGFpbHNCeUVtYWlsKHtcbiAgICAgICAgZW1haWw6IHVzZXJJbmZvLnVzZXJuYW1lLFxuICAgICAgfSk7XG4gICAgICBmb3JrSm9pbihbdXNlckRldGFpbHNdKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXNbMF0pIHtcbiAgICAgICAgICAgIHRoaXMudXNlckF1dGhEYXRhID0gcmVzWzBdO1xuICAgICAgICAgICAgdGhpcy51c2VybmFtZSA9IHRoaXMudXNlckF1dGhEYXRhLmZpcnN0TmFtZTtcbiAgICAgICAgICAgIHRoaXMuZ2V0TWVudUxpc3QoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXJBdXRoRGF0YT8uX2xpbmtzPy5wcm9maWxlSW1hZ2U/LmhyZWYpIHtcbiAgICAgICAgICAgICAgdGhpcy5nZXRVc2VyUHJvZmlsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0VGltZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScpXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoc3RhcnQnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaG1vdmUnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpzY3JvbGwnKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6Zm9jdXMnKVxuICByZXNldFRpbWVyKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KTtcbiAgICBpZiAoIXRoaXMuaXNEaWFsb2dPcGVuKSB7XG4gICAgICB0aGlzLmluYWN0aXZpdHlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNpZ25PdXQoeyBnbG9iYWw6IHRydWUsIG9hdXRoOiB7IHJlZGlyZWN0VXJsOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLnNpZ25PdXRVcmwgfSB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyU2VyLm9wZW5TZXNzaW9uRXhwaXJlSW5mbygpO1xuICAgICAgICB0aGlzLmlzRGlhbG9nT3BlbiA9IHRydWU7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KTtcbiAgICAgIH0sIHRoaXMuSU5BQ1RJVklUWV9MSU1JVCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q3VycmVudENvbXBhbnkoKSB7XG4gICAgbGV0IGNvbSA9IHRoaXMuY29tcGFueUxpc3QuZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIHRoaXMuYWN0aXZlQ29tcGFueSA9IGNvbTtcbiAgfVxuXG4gIHBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCkge1xuICAgIGxldCBjb20gPSB0aGlzLmNvbXBhbnlMaXN0LmZpbmQoeCA9PiB4LmlzQWN0aXZlKTtcbiAgICB0aGlzLmNvbXBhbnlDb250cm9sLnBhdGNoVmFsdWUoY29tKTtcbiAgfVxuXG4gIHNpZGVNZW51VG9nZ2xlKCkge1xuICAgIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBCeUFwcFR5cGUobWVudUxpc3Q6IEFwcE1lbnVbXSk6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBBcHBNZW51W10gfVtdIHtcbiAgICBsZXQgZ3JvdXBlZCA9IG1lbnVMaXN0LnJlZHVjZSgociwgYSkgPT4ge1xuICAgICAgclthLmFwcFR5cGVdID0gclthLmFwcFR5cGVdIHx8IFtdO1xuXG4gICAgICAvLyBUT0RPOiBQYXRoIHJlZmVyZW5jZXMgYXJlIHRvIGJlIHJlcGxhY2VkIHdpdGggdmFsdWVzIGZyb20gYmFja2VuZCBBUEkgcmVzcG9uc2UuIFJlbW92ZSB0aGlzIGJsb2NrIHdoZW4gYmFja2VuZCBpcyByZWFkeVxuICAgICAgaWYgKGEuYXBwVHlwZSA9PSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsKSB7XG4gICAgICAgIGxldCBpc0NvbXBhbnlNZW51ID0gYS5wYXRoID09PSAnYXBwL2NvbXBhbmllcyc7XG4gICAgICAgIGxldCBpc0NvbXBhbnlBZG1pbiA9IHRoaXMudXNlckF1dGhEYXRhPy5yb2xlc0ZvckN1cnJlbnRDb21wYW55LmluY2x1ZGVzKFwiQ09NUEFOWV9BRE1JTlwiKTtcblxuICAgICAgICBpZiAoaXNDb21wYW55TWVudSAmJiBpc0NvbXBhbnlBZG1pbikge1xuICAgICAgICAgIGEgPSB7IC4uLmEsIHBhdGg6ICdhcHAvYWRkQ29tcGFueS9jb21wYW55RGV0YWlscycgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRU5EIG9mIFRPRE8gYmxvY2tcblxuICAgICAgclthLmFwcFR5cGVdLnB1c2goYSk7XG4gICAgICByZXR1cm4gcjtcbiAgICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZ3JvdXBlZCkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWU6IHZhbHVlIGFzIEFwcE1lbnVbXSB9KSk7XG4gIH1cblxuICBtZW51U2VsZWN0aW9uKG1lbnU6IEFwcE1lbnUpIHtcbiAgICB0aGlzLnNpZGVNZW51VG9nZ2xlKCk7XG4gICAgbGV0IGFjdGl2ZUNvbSA9IHRoaXMuY29tcGFueUxpc3QuZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIGxldCBpc0NvbXBhbnlNZW51ID0gbWVudS5wYXRoID09PSAnYXBwL2FkZENvbXBhbnkvY29tcGFueURldGFpbHMnO1xuICAgIGxldCBpc0NvbXBhbnlBZG1pbiA9IHRoaXMudXNlckF1dGhEYXRhPy5yb2xlc0ZvckN1cnJlbnRDb21wYW55LmluY2x1ZGVzKFwiQ09NUEFOWV9BRE1JTlwiKTtcblxuICAgIGlmIChtZW51LmFwcFR5cGUgPT0gdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlKSB7XG4gICAgICAvLyBUT0RPOiBQYXRoIHJlZmVyZW5jZXMgYXJlIHRvIGJlIHJlcGxhY2VkIHdpdGggdmFsdWVzIGZyb20gYmFja2VuZCBBUEkgcmVzcG9uc2VcbiAgICAgIGlmIChpc0NvbXBhbnlNZW51ICYmIGlzQ29tcGFueUFkbWluKSB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbbWVudS5wYXRoLCBhY3RpdmVDb20/LmlkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW21lbnUucGF0aF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChhY3RpdmVDb20pIHtcbiAgICAgICAgaWYgKGFjdGl2ZUNvbS5iYXNlVXJsc1ttZW51LmFwcFR5cGVdKSB7XG4gICAgICAgICAgLy8gVE9ETzogUGF0aCByZWZlcmVuY2VzIGFyZSB0byBiZSByZXBsYWNlZCB3aXRoIHZhbHVlcyBmcm9tIGJhY2tlbmQgQVBJIHJlc3BvbnNlXG4gICAgICAgICAgaWYgKGlzQ29tcGFueU1lbnUgJiYgaXNDb21wYW55QWRtaW4pIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSBgJHthY3RpdmVDb20uYmFzZVVybHNbbWVudS5hcHBUeXBlXX0vJHttZW51LnBhdGh9LyR7YWN0aXZlQ29tLmlkfWA7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gYCR7YWN0aXZlQ29tLmJhc2VVcmxzW21lbnUuYXBwVHlwZV19LyR7bWVudS5wYXRofWA7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBhbnlMaXN0KCkge1xuICAgIHRoaXMuX2hlYWRlclNlci5nZXRDb21wYW55TGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAodjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuX2hlYWRlclNlci5zZXRDb21wYW55TGlzdCh2KTtcbiAgICAgICAgdGhpcy5jb21wYW55TGlzdCA9IHY7XG4gICAgICAgIHRoaXMuc2VsZWN0Q3VycmVudENvbXBhbnkoKTtcbiAgICAgICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZ2V0TWVudUxpc3QoKSB7XG4gICAgdGhpcy5faGVhZGVyU2VyLmdldE1lbnVMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5faGVhZGVyU2VyLnNldE1lbnVTdGF0ZSh2KTtcbiAgICAgICAgdGhpcy5tZW51TGlzdCA9IHRoaXMuZ3JvdXBCeUFwcFR5cGUodik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFVzZXJQcm9maWxlKCkge1xuICAgIHRoaXMuX2hlYWRlclNlclxuICAgICAgLm9idGFpbkRhdGFCeVVybCh0aGlzLnVzZXJBdXRoRGF0YS5fbGlua3MucHJvZmlsZUltYWdlLmhyZWYpXG4gICAgICAuc3Vic2NyaWJlKChpbWcpID0+IHtcbiAgICAgICAgaWYgKGltZz8ubG9jYXRpb25VcmwpIHtcbiAgICAgICAgICB0aGlzLnVzZXJJbWFnZUxpbmsgPSBpbWcubG9jYXRpb25VcmxcbiAgICAgICAgICAgID8gdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1nLmxvY2F0aW9uVXJsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb2ZpbGUoKSB7XG4gICAgaWYgKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZSA9PSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2FwcC9wcm9maWxlJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgbGV0IHVybCA9IHRoaXMuYWN0aXZlQ29tcGFueT8uYmFzZVVybHMucHJvZmV0X3BvcnRhbCArICcvYXBwL3Byb2ZpbGUnO1xuICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsIH0gfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCwgJ19zZWxmJyk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgc2lnbk91dCh7IGdsb2JhbDogdHJ1ZSwgb2F1dGg6IHsgcmVkaXJlY3RVcmw6IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCB9IH0pXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsLCAnX3NlbGYnKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUxhc3RBY2Nlc3NlZEFwcEluZm8oKSB7XG4gICAgbGV0IHJlcSA9IHtcbiAgICAgIGxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLmFwcFR5cGVcbiAgICB9O1xuXG4gICAgdGhpcy5faGVhZGVyU2VyLnVwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uKHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc3dpdGNoQ29tcGFueShpbmZvOiBhbnkpIHtcbiAgICBsZXQgY29tcGFueSA9IGluZm8udmFsdWU7XG4gICAgbGV0IGNvbUluZm8gPSB7XG4gICAgICBhY3RpdmVDb21wYW55OiB0aGlzLmFjdGl2ZUNvbXBhbnk/Lm5hbWUsXG4gICAgICBzd2l0Y2hpbmdDb21wYW55OiBjb21wYW55Lm5hbWVcbiAgICB9O1xuICAgIHRoaXMuX2hlYWRlclNlci5fZGlhbG9nLm9wZW4oQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQsIHsgZGF0YTogY29tSW5mbyB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICAvLyBGaW5kIHRoZSBkb21haW4gaW5mb3JtYXRpb25cbiAgICAgICAgaWYgKCFjb21wYW55LmlzQWN0aXZlKSB7XG4gICAgICAgICAgLy8gbGV0IGRvbWFpbkluZm8gPSB0aGlzLl9oZWFkZXJTZXIuZ2V0RG9tYWluSW5mbygpO1xuICAgICAgICAgIC8vIGlmIChkb21haW5JbmZvKSB7XG4gICAgICAgICAgbGV0IHJlcTogYW55ID0ge1xuICAgICAgICAgICAgY29tcGFueUtleTogY29tcGFueS5jb21wYW55S2V5LFxuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5faGVhZGVyU2VyLnVwZGF0ZVVzZXJDb21wYW55KHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS50eXBlICYmIHJlc3BvbnNlLnR5cGUgPT0gJ09LJykge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgdXJsID0gcmVzcG9uc2UuZGF0YS5hcHBsaWNhdGlvblVSTDtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIGN1cnJlbnQgcGFnZSB0byByZWxvYWQgdGhlIGNvbnRlbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbXBhbnlcbiAgICAgICAgICAgICAgICAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbihcbiAgICAgICAgICAgICAgICAgICdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJyxcbiAgICAgICAgICAgICAgICAgICdPSycsXG4gICAgICAgICAgICAgICAgICB7IGR1cmF0aW9uOiA1MDAwIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucGF0Y2hDdXJyZW50Q29tcGFueUluZm8oKTtcbiAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oXG4gICAgICAgICAgICAgICAgJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLFxuICAgICAgICAgICAgICAgICdPSycsXG4gICAgICAgICAgICAgICAgeyBkdXJhdGlvbjogNTAwMCB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIH0gXG4gICAgICAgICAgLy8gZWxzZSB7XG4gICAgICAgICAgLy8gICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICAgICAgLy8gICB0aGlzLl9zbmFja2Jhci5vcGVuKFxuICAgICAgICAgIC8vICAgICAnQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsXG4gICAgICAgICAgLy8gICAgICdPSycsXG4gICAgICAgICAgLy8gICAgIHsgZHVyYXRpb246IDUwMDAgfVxuICAgICAgICAgIC8vICAgKTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyIGNsYXNzPVwiYXBwLW1lbnUtc2lkZW5hdi1jb250YWluZXJcIj5cbiAgICA8bWF0LXNpZGVuYXYgY2RrTWVudUJhciAjc2lkZW5hdiBtb2RlPVwib3ZlclwiIGNsYXNzPVwic2lkZW5hdkRyYXdlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VySGVhZExvZ29cIj48aW1nIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlRGF0YVVybHMucHJvZmV0TG9nbylcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1tZW51LWNvbnRlbnQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXBwVHlwZSBvZiBtZW51TGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJhcHBDb25maWdbYXBwVHlwZS5rZXldPy5hcHBMb2dvVXJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGFwcENvbmZpZ1thcHBUeXBlLmtleV0/LmFwcExvZ29VcmkpXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YkhlYWRMaXN0SXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhcHBUeXBlLnZhbHVlXCIgY2xhc3M9XCJtZW51LWl0ZW1cIiAoY2xpY2spPVwibWVudVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZS1tZW51JzogaXRlbSB8IGFjdGl2ZVJvdXRlIDogX3JvdXRlci51cmw6X2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnVJY29uTGlzdFwiICpuZ0lmPVwiaXRlbS5pY29uXCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubWVudU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuPG1hdC10b29sYmFyIGNka01lbnVCYXIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJoZWFkZXItd3JhcHBlciBjb21tb25faGVhZGVyIHNoYWRvdy1zbVwiPlxuICAgIDwhLS0gTWFpbiBuYXYgYnV0dG9uIGFuZCBuYXZpZ2F0aW9uIGxpbmtzIC0tPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwidGhlbWUtd2hpdGVcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiXG4gICAgICAgIGNsYXNzPVwicG14LWJ1dHRvbiBwbXgtbWVudS1idXR0b24gb3JkZXJzLW1lbnUgaWNvbi1idG4gbXMtMCBtZS0zXCIgYXJpYS1sYWJlbD1cIm1haW4gbWVudVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIG1hdFRvb2x0aXA9XCJNYWluIG1lbnVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInBvYy1oZWFkZXItdG9vbHRpcFwiPjxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZCBtZS1hdXRvXCIgaHJlZj1cIiNcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cIl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChhcHBDb25maWdbX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZV0/LmFwcExvZ29VcmkpXCJcbiAgICAgICAgICAgIGFsdD1cIkFwcCBMb2dvXCIgY2xhc3M9XCJhcHAtbG9nb1wiPlxuICAgIDwvYT5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwic3dpdGNoQ29tcGFueUZpZWxkXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+Q29tcGFueTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiY29tcGFueUNvbnRyb2xcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInN3aXRjaENvbXBhbnkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiBjb21wYW55TGlzdFwiIFt2YWx1ZV09XCJvcHRcIj5cbiAgICAgICAgICAgICAgICB7e29wdC5uYW1lfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cblxuICAgIDwhLS0gUHJvZmlsZSBidXR0b24gYW5kIHByb2ZpbGUgZHJvcGRvd24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIHByb2ZpbGUtYnV0dG9uXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWlubmVyXCI+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJicmFuZC1sb2dvIGFsaWduLXNlbGYtY2VudGVyXCIgKm5nSWY9XCJhY3RpdmVDb21wYW55Py5sb2dvXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhY3RpdmVDb21wYW55Py5sb2dvID8gJ2JyYW5kZWQtbG9nby10cnVlJyA6ICdicmFuZGVkLWxvZ28tZmFsc2UnXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBhY3RpdmVDb21wYW55Py5sb2dvICsgJyknfVwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIj5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwidXNlckltYWdlTGluaztlbHNlIGRlZmF1bHRBdmF0YXJcIiBbc3JjXT1cInVzZXJJbWFnZUxpbmtcIiBjbGFzcz1cImF2YXRhci1pbWFnZVwiIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEF2YXRhcj48aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChpbWFnZURhdGFVcmxzLmRlZmF1bHRVc2VySW1hZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBhbHQ9XCJwcm9maWxlIHBpY1wiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiYWNjb3VudHNfZHJwbWVudSBwbXgtbWVudS1ncm91cCBoZWFkZXItZHJvcGRvd24tcHJvZmlsZVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50IHNob3ctbWVudVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItdXNlci10b3BcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwidXNlckltYWdlTGluaztlbHNlIGRlZmF1bHRMYXJnZUF2YXRhclwiIFtzcmNdPVwidXNlckltYWdlTGlua1wiIGNsYXNzPVwiYXZhdGFyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFyZ2VBdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpbWFnZURhdGFVcmxzLmRlZmF1bHRVc2VySW1hZ2UgKyAnKSd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItaWNvbiBkZWZhdWx0LWF2YXRhclwiIGFsdD1cIkF2YXRhciBpY29uXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+PHNwYW4gKm5nSWY9XCJ1c2VyQXV0aERhdGFcIj57eyB1c2VyQXV0aERhdGE/LmZpcnN0TmFtZSB9fSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQXV0aERhdGE/Lmxhc3ROYW1lIH19PC9zcGFuPjwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cInBteC1idXR0b24gYnRuIGJ0bi1zbWFsbCB2aWV3LXByb2ZpbGUgbXMtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByb2ZpbGUoKVwiPlZpZXcgUHJvZmlsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cD5PdmVydmlldzwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckF1dGhEYXRhPy5lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGNsYXNzPVwibGlzdC10ZXh0IGxpc3QtdGV4dC1lbWFpbCBtdC0zIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxpc3QtaWNvblwiPm1haWw8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwicG14LWxvd2VyLWNhc2UgcG14LXRleHQtd3JhcCBtZS1hdXRvXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQXV0aERhdGE/LmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJBdXRoRGF0YT8uY29udGFjdFBob25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJsaXN0LXRleHQgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+Y2FsbDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJ0aXRsZS1jYXNlIG1lLWF1dG9cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8uY29udGFjdFBob25lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGFzdC1ncm91cCBteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbSBweS0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJwbXgtYnV0dG9uIGxpc3QtYnV0dG9uIGJ0bi1sb2dvdXRcIiAoY2xpY2spPVwib25Mb2dvdXRDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBvd2VyX3NldHRpbmdzX25ldzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LXRleHRcIj5Mb2dvdXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG48L21hdC10b29sYmFyPiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { CommonHeaderService } from '../common-header.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
export class SessionExpiryInfoComponent {
|
|
8
|
+
constructor(dialogRef) {
|
|
9
|
+
this.dialogRef = dialogRef;
|
|
10
|
+
this._headerSer = inject(CommonHeaderService);
|
|
11
|
+
dialogRef.disableClose = true;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
const overlay = document.querySelector('.cdk-overlay-backdrop');
|
|
15
|
+
if (overlay) {
|
|
16
|
+
overlay.style.backgroundColor = '#ffffff';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
redirectLogin() {
|
|
20
|
+
window.location.href = this._headerSer.headerConfig.signOutUrl;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
SessionExpiryInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SessionExpiryInfoComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
SessionExpiryInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SessionExpiryInfoComponent, selector: "lib-session-expiry-info", ngImport: i0, template: "<mat-dialog-content style=\"padding: 15px;\">\n <div style=\"display: inline-block;\">\n <mat-icon class=\"session-icon\">search_activity</mat-icon>\n </div>\n <div style=\"display: inline-block;margin-left: 20px;\">\n <h2 style=\"margin-bottom: 0px;\">Session Expired</h2>\n <p>You will be redirected to the Login page.</p>\n\n </div>\n <div>\n <button class=\"btn-ok\" mat-flat-button color=\"primary\" cdkFocusInitial (click)=\"redirectLogin()\">OK</button>\n </div>\n</mat-dialog-content>", styles: [".session-icon{font-size:50px!important;width:auto;height:auto;top:7px;position:relative;color:#ec5d57}.btn-ok{margin-top:20px;float:right}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SessionExpiryInfoComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'lib-session-expiry-info', template: "<mat-dialog-content style=\"padding: 15px;\">\n <div style=\"display: inline-block;\">\n <mat-icon class=\"session-icon\">search_activity</mat-icon>\n </div>\n <div style=\"display: inline-block;margin-left: 20px;\">\n <h2 style=\"margin-bottom: 0px;\">Session Expired</h2>\n <p>You will be redirected to the Login page.</p>\n\n </div>\n <div>\n <button class=\"btn-ok\" mat-flat-button color=\"primary\" cdkFocusInitial (click)=\"redirectLogin()\">OK</button>\n </div>\n</mat-dialog-content>", styles: [".session-icon{font-size:50px!important;width:auto;height:auto;top:7px;position:relative;color:#ec5d57}.btn-ok{margin-top:20px;float:right}\n"] }]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1leHBpcnktaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvc2Vzc2lvbi1leHBpcnktaW5mby9zZXNzaW9uLWV4cGlyeS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9zZXNzaW9uLWV4cGlyeS1pbmZvL3Nlc3Npb24tZXhwaXJ5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBTy9ELE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFBb0IsU0FBbUQ7UUFBbkQsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFGaEUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRzlDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2hFLElBQUksT0FBTyxFQUFFO1lBQ1YsT0FBdUIsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFDRCxhQUFhO1FBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO0lBQ2pFLENBQUM7O3dIQWRVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLCtEQ1R2Qyw0aEJBWXFCOzRGREhSLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi1oZWFkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZXNzaW9uLWV4cGlyeS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nlc3Npb24tZXhwaXJ5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXNzaW9uLWV4cGlyeS1pbmZvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkV4cGlyeUluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgX2hlYWRlclNlciA9IGluamVjdChDb21tb25IZWFkZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNlc3Npb25FeHBpcnlJbmZvQ29tcG9uZW50Pikge1xuICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG92ZXJsYXkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY2RrLW92ZXJsYXktYmFja2Ryb3AnKTtcbiAgICBpZiAob3ZlcmxheSkge1xuICAgICAgKG92ZXJsYXkgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjZmZmZmZmJztcbiAgICB9XG4gIH1cbiAgcmVkaXJlY3RMb2dpbigpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybDtcbiAgfVxufVxuIiwiPG1hdC1kaWFsb2ctY29udGVudCBzdHlsZT1cInBhZGRpbmc6IDE1cHg7XCI+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9jaztcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2Vzc2lvbi1pY29uXCI+c2VhcmNoX2FjdGl2aXR5PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OiAyMHB4O1wiPlxuICAgICAgICA8aDIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7XCI+U2Vzc2lvbiBFeHBpcmVkPC9oMj5cbiAgICAgICAgPHA+WW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgTG9naW4gcGFnZS48L3A+XG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLW9rXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNka0ZvY3VzSW5pdGlhbCAoY2xpY2spPVwicmVkaXJlY3RMb2dpbigpXCI+T0s8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PiJdfQ==
|