mmhglobal-dynamicform 2.31.0 → 2.32.2
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/README.md +14 -0
- package/esm2020/lib/services/main.service.mjs +12 -7
- package/esm2020/lib/uiheader/uiheader.component.mjs +27 -48
- package/esm2020/lib/uiheader/uiheader.service.mjs +27 -0
- package/esm2020/lib/zgrid/zgrid.component.mjs +28 -3
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +2 -2
- package/fesm2015/mmhglobal-dynamicform.mjs +79 -48
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +79 -48
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/uiheader/uiheader.component.d.ts +4 -7
- package/lib/uiheader/uiheader.service.d.ts +11 -0
- package/lib/zgrid/zgrid.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -3,24 +3,24 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/router";
|
|
4
4
|
import * as i2 from "mmhglobal-zcore";
|
|
5
5
|
import * as i3 from "../services/zcomponent.service";
|
|
6
|
-
import * as i4 from "
|
|
7
|
-
import * as i5 from "
|
|
8
|
-
import * as i6 from "../
|
|
9
|
-
import * as i7 from "
|
|
10
|
-
import * as i8 from "@progress/kendo-angular-
|
|
11
|
-
import * as i9 from "@
|
|
12
|
-
import * as i10 from "
|
|
13
|
-
import * as i11 from "
|
|
6
|
+
import * as i4 from "./uiheader.service";
|
|
7
|
+
import * as i5 from "@ionic/angular";
|
|
8
|
+
import * as i6 from "../uimenubutton/uimenubutton.component";
|
|
9
|
+
import * as i7 from "../uibulletin/uibulletin.component";
|
|
10
|
+
import * as i8 from "@progress/kendo-angular-buttons";
|
|
11
|
+
import * as i9 from "@progress/kendo-angular-layout";
|
|
12
|
+
import * as i10 from "@fortawesome/angular-fontawesome";
|
|
13
|
+
import * as i11 from "../uiactionbutton/uiactionbutton.component";
|
|
14
|
+
import * as i12 from "@angular/common";
|
|
14
15
|
export class UiheaderComponent {
|
|
15
16
|
// backNavigate = null;
|
|
16
|
-
constructor(router,
|
|
17
|
+
constructor(router, zcoreService, authService, fontAweSomeService, componentService, uiHeaderService) {
|
|
17
18
|
this.router = router;
|
|
18
|
-
this.translationService = translationService;
|
|
19
19
|
this.zcoreService = zcoreService;
|
|
20
20
|
this.authService = authService;
|
|
21
21
|
this.fontAweSomeService = fontAweSomeService;
|
|
22
22
|
this.componentService = componentService;
|
|
23
|
-
this.
|
|
23
|
+
this.uiHeaderService = uiHeaderService;
|
|
24
24
|
this.isloading = true;
|
|
25
25
|
this.showBulletinIcon = false;
|
|
26
26
|
this.userPanelItems = [
|
|
@@ -55,10 +55,16 @@ export class UiheaderComponent {
|
|
|
55
55
|
});
|
|
56
56
|
this.loadedEnvironmentProfileMenu = true;
|
|
57
57
|
}
|
|
58
|
-
this.authService.userIsAuthenticated.subscribe(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
this.authService.userIsAuthenticated.subscribe(isAuth => {
|
|
59
|
+
if (isAuth) {
|
|
60
|
+
this.setUserProfile();
|
|
61
|
+
this.uiHeaderService.getTranslatedUserMenu(this.group, this.userPanelItems).subscribe(resp => {
|
|
62
|
+
if (resp && resp.length > 0) {
|
|
63
|
+
this.userPanelItems = resp;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
this.showBulletinIcon = this.zcoreService.getEnvironment().bulletinUrl ? true : false;
|
|
67
|
+
}
|
|
62
68
|
this.isloading = false;
|
|
63
69
|
});
|
|
64
70
|
}
|
|
@@ -68,38 +74,11 @@ export class UiheaderComponent {
|
|
|
68
74
|
if (_myProfile) {
|
|
69
75
|
this.username = _myProfile.UserName;
|
|
70
76
|
this.userDisplayName = _myProfile.LastName;
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
setUsernameInitial() {
|
|
77
|
-
const userNameToProcess = this.userDisplayName.replaceAll(/[^a-zA-Z ]/gi, '').trim();
|
|
78
|
-
if (userNameToProcess.length > 0) {
|
|
79
|
-
const nameElements = userNameToProcess.split(' ').filter(n => !!n);
|
|
80
|
-
if (nameElements.length < 2) {
|
|
81
|
-
this.usernameInitial = userNameToProcess.substring(0, Math.min(userNameToProcess.length, 2));
|
|
77
|
+
this.usernameInitial = this.authService.getUsernameInitial();
|
|
78
|
+
this.authService.getUserProfileImage().subscribe(img => { this.profileImgUrl = img; });
|
|
82
79
|
}
|
|
83
|
-
else {
|
|
84
|
-
this.usernameInitial = `${nameElements[0][0]}${nameElements[1][0]}`;
|
|
85
|
-
}
|
|
86
|
-
this.usernameInitial = this.usernameInitial.toUpperCase();
|
|
87
80
|
}
|
|
88
81
|
}
|
|
89
|
-
trySetUserProfileImage() {
|
|
90
|
-
// To ensure the profile picture is valid before binding in HTML
|
|
91
|
-
const url = this.environment.e1OauthUrl + '/api/ProfileImage?id=' + this.authService.e1Token.myProfile.UserName + '&size=80x80';
|
|
92
|
-
this.webApiService.httpGet$(url, null, { responseType: 'arrayBuffer', isHidePopUpErrorMessage: true }).subscribe({
|
|
93
|
-
next: (res) => {
|
|
94
|
-
if (res instanceof ArrayBuffer) {
|
|
95
|
-
this.profileImgUrl = url;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
translateUserMenu() {
|
|
101
|
-
this.translationService.$translateItemList(this.userPanelItems, "text", { elementName: 'menu', group: this.group }).subscribe();
|
|
102
|
-
}
|
|
103
82
|
onDialItemClick(event) {
|
|
104
83
|
if (event.item.onClick) {
|
|
105
84
|
event.item.onClick();
|
|
@@ -124,14 +103,14 @@ export class UiheaderComponent {
|
|
|
124
103
|
}
|
|
125
104
|
}
|
|
126
105
|
}
|
|
127
|
-
UiheaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderComponent, deps: [{ token: i1.Router }, { token: i2.
|
|
128
|
-
UiheaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiheaderComponent, selector: "app-uiheader", inputs: { group: "group", topFormHeader: "topFormHeader" }, ngImport: i0, template: "<ion-header>\r\n <ion-toolbar>\r\n <div class=\"toolbar-container\" *ngIf=\"!isloading\">\r\n <div class=\"toolbar-first-row\">\r\n <app-uimenubutton slot=\"start\" [group]=\"group\"></app-uimenubutton>\r\n\r\n <ion-title class=\"toolbar-title\">\r\n <div *ngIf=\"topFormHeader || (group && !group.isLoading && group.formHeader)\">\r\n <ion-label class=\"toolbar-title-label\">{{ topFormHeader ? topFormHeader : group.formHeader }}</ion-label>\r\n </div>\r\n </ion-title>\r\n\r\n <div slot=\"end\" *ngIf=\"!isMobileScreen()\" class=\"end-panel hoverable\">\r\n <app-uibulletin *ngIf=\"showBulletinIcon\" [group]=\"group\"></app-uibulletin>\r\n <div class=\"profile-vl\" *ngIf=\"showBulletinIcon\"></div>\r\n\r\n <kendo-floatingactionbutton [dialItems]=\"userPanelItems\" [offset]=\"{x:'-5px', y:'-5px'}\"\r\n [align]=\"{ vertical: 'top', horizontal: 'end' }\" [dialItemAnimation]=true buttonClass=\"user-panel-button\"\r\n dialClass=\"user-panel-dial\" (dialItemClick)=\"onDialItemClick($event)\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <kendo-avatar *ngIf=\"!!profileImgUrl\" shape=\"circle\" [imageSrc]=\"profileImgUrl\"></kendo-avatar>\r\n <ng-container *ngIf=\"!profileImgUrl\">\r\n <kendo-avatar *ngIf=\"!!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" [initials]=\"usernameInitial\"></kendo-avatar>\r\n <kendo-avatar *ngIf=\"!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" icon=\"user\"></kendo-avatar>\r\n </ng-container>\r\n <ion-label class=\"profile-username\">{{ userDisplayName }}</ion-label>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate let-item let-isFocused=\"isFocused\">\r\n <span [class.custom-focused-class]=\"isFocused\" class=\"user-panel-item\">\r\n <fa-icon [icon]=\"item.icon\" class=\"user-panel-item-icon\"></fa-icon>\r\n <span class=\"user-panel-option-text\">{{ item.text }}</span>\r\n </span>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n </div>\r\n <div *ngIf=\"group && isMobileScreen()\">\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </div>\r\n </div>\r\n\r\n <!-- Design 1 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <div class=\"nav-bar-container\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon [icon]=\"item.icon\" class=\"zcard-header-icon\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div>\r\n </div> -->\r\n <!-- Design 2 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\" class=\"zcard-header-icon\" [ngClass]=\"{'icon-with-text': item.text}\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div> -->\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n", styles: ["ion-toolbar{--background: var(--ion-color-primary-shade);--color: var(--ion-color-primary-contrast);--min-height: var(--ion-header-height);box-shadow:0 2px 9px #ababab}app-uimenubutton{margin:auto}.toolbar-first-row{display:flex}.toolbar-second-row{margin-left:50px}.end-panel{display:flex;align-items:stretch;cursor:pointer}.username-initial-avatar{background:var(--ion-color-primary-contrast);color:var(--ion-color-primary)}.profile-username{padding-right:10px;margin:auto auto auto 15px;font-size:var(--page-user-profile-font-size)}.toolbar-title-label{text-shadow:.5px .5px rgba(255,255,255,.48);font-size:var(--page-title-font-size)}.toolbar-title{margin-bottom:2px}.hoverable:hover{background:#ffffff24}:host ::ng-deep kendo-floatingactionbutton{max-height:60px;border-radius:10px}:host ::ng-deep kendo-floatingactionbutton .user-panel-button{background:transparent!important;border:none!important;outline:none}:host ::ng-deep kendo-floatingactionbutton:hover{background:rgba(0,0,0,.3)}:host ::ng-deep kendo-floatingactionbutton .k-fab{box-shadow:none;padding:12px}:host ::ng-deep kendo-floatingactionbutton .k-avatar-md{width:var(--ion-header-avatar-size);height:var(--ion-header-avatar-size);flex-basis:var(--ion-header-avatar-size)}\n"], components: [{ type:
|
|
106
|
+
UiheaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderComponent, deps: [{ token: i1.Router }, { token: i2.ZCoreService }, { token: i2.AuthService }, { token: i2.FontAweSomeService }, { token: i3.ZComponentService }, { token: i4.UiheaderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
UiheaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiheaderComponent, selector: "app-uiheader", inputs: { group: "group", topFormHeader: "topFormHeader" }, ngImport: i0, template: "<ion-header>\r\n <ion-toolbar>\r\n <div class=\"toolbar-container\" *ngIf=\"!isloading\">\r\n <div class=\"toolbar-first-row\">\r\n <app-uimenubutton slot=\"start\" [group]=\"group\"></app-uimenubutton>\r\n\r\n <ion-title class=\"toolbar-title\">\r\n <div *ngIf=\"topFormHeader || (group && !group.isLoading && group.formHeader)\">\r\n <ion-label class=\"toolbar-title-label\">{{ topFormHeader ? topFormHeader : group.formHeader }}</ion-label>\r\n </div>\r\n </ion-title>\r\n\r\n <div slot=\"end\" *ngIf=\"!isMobileScreen()\" class=\"end-panel hoverable\">\r\n <app-uibulletin *ngIf=\"showBulletinIcon\" [group]=\"group\"></app-uibulletin>\r\n <div class=\"profile-vl\" *ngIf=\"showBulletinIcon\"></div>\r\n\r\n <kendo-floatingactionbutton [dialItems]=\"userPanelItems\" [offset]=\"{x:'-5px', y:'-5px'}\"\r\n [align]=\"{ vertical: 'top', horizontal: 'end' }\" [dialItemAnimation]=true buttonClass=\"user-panel-button\"\r\n dialClass=\"user-panel-dial\" (dialItemClick)=\"onDialItemClick($event)\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <kendo-avatar *ngIf=\"!!profileImgUrl\" shape=\"circle\" [imageSrc]=\"profileImgUrl\"></kendo-avatar>\r\n <ng-container *ngIf=\"!profileImgUrl\">\r\n <kendo-avatar *ngIf=\"!!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" [initials]=\"usernameInitial\"></kendo-avatar>\r\n <kendo-avatar *ngIf=\"!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" icon=\"user\"></kendo-avatar>\r\n </ng-container>\r\n <ion-label class=\"profile-username\">{{ userDisplayName }}</ion-label>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate let-item let-isFocused=\"isFocused\">\r\n <span [class.custom-focused-class]=\"isFocused\" class=\"user-panel-item\">\r\n <fa-icon [icon]=\"item.icon\" class=\"user-panel-item-icon\"></fa-icon>\r\n <span class=\"user-panel-option-text\">{{ item.text }}</span>\r\n </span>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n </div>\r\n <div *ngIf=\"group && isMobileScreen()\">\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </div>\r\n </div>\r\n\r\n <!-- Design 1 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <div class=\"nav-bar-container\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon [icon]=\"item.icon\" class=\"zcard-header-icon\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div>\r\n </div> -->\r\n <!-- Design 2 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\" class=\"zcard-header-icon\" [ngClass]=\"{'icon-with-text': item.text}\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div> -->\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n", styles: ["ion-toolbar{--background: var(--ion-color-primary-shade);--color: var(--ion-color-primary-contrast);--min-height: var(--ion-header-height);box-shadow:0 2px 9px #ababab}app-uimenubutton{margin:auto}.toolbar-first-row{display:flex}.toolbar-second-row{margin-left:50px}.end-panel{display:flex;align-items:stretch;cursor:pointer}.username-initial-avatar{background:var(--ion-color-primary-contrast);color:var(--ion-color-primary)}.profile-username{padding-right:10px;margin:auto auto auto 15px;font-size:var(--page-user-profile-font-size)}.toolbar-title-label{text-shadow:.5px .5px rgba(255,255,255,.48);font-size:var(--page-title-font-size)}.toolbar-title{margin-bottom:2px}.hoverable:hover{background:#ffffff24}:host ::ng-deep kendo-floatingactionbutton{max-height:60px;border-radius:10px}:host ::ng-deep kendo-floatingactionbutton .user-panel-button{background:transparent!important;border:none!important;outline:none}:host ::ng-deep kendo-floatingactionbutton:hover{background:rgba(0,0,0,.3)}:host ::ng-deep kendo-floatingactionbutton .k-fab{box-shadow:none;padding:12px}:host ::ng-deep kendo-floatingactionbutton .k-avatar-md{width:var(--ion-header-avatar-size);height:var(--ion-header-avatar-size);flex-basis:var(--ion-header-avatar-size)}\n"], components: [{ type: i5.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { type: i5.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { type: i6.UimenubuttonComponent, selector: "app-uimenubutton", inputs: ["group"] }, { type: i5.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { type: i5.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i7.UibulletinComponent, selector: "app-uibulletin", inputs: ["group"] }, { type: i8.FloatingActionButtonComponent, selector: "kendo-floatingactionbutton", inputs: ["themeColor", "size", "rounded", "disabled", "align", "offset", "positionMode", "icon", "iconClass", "buttonClass", "dialClass", "text", "dialItemAnimation", "tabIndex", "dialItems"], outputs: ["blur", "focus", "dialItemClick", "open", "close"] }, { type: i9.AvatarComponent, selector: "kendo-avatar", inputs: ["shape", "size", "rounded", "themeColor", "fillMode", "fill", "border", "iconClass", "width", "height", "cssStyle", "initials", "icon", "imageSrc"] }, { type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i5.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { type: i11.UiactionbuttonComponent, selector: "app-uiactionbutton" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.FloatingActionButtonTemplateDirective, selector: "[kendoFloatingActionButtonTemplate]" }, { type: i8.DialItemTemplateDirective, selector: "[kendoDialItemTemplate]" }] });
|
|
129
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderComponent, decorators: [{
|
|
130
109
|
type: Component,
|
|
131
110
|
args: [{ selector: "app-uiheader", template: "<ion-header>\r\n <ion-toolbar>\r\n <div class=\"toolbar-container\" *ngIf=\"!isloading\">\r\n <div class=\"toolbar-first-row\">\r\n <app-uimenubutton slot=\"start\" [group]=\"group\"></app-uimenubutton>\r\n\r\n <ion-title class=\"toolbar-title\">\r\n <div *ngIf=\"topFormHeader || (group && !group.isLoading && group.formHeader)\">\r\n <ion-label class=\"toolbar-title-label\">{{ topFormHeader ? topFormHeader : group.formHeader }}</ion-label>\r\n </div>\r\n </ion-title>\r\n\r\n <div slot=\"end\" *ngIf=\"!isMobileScreen()\" class=\"end-panel hoverable\">\r\n <app-uibulletin *ngIf=\"showBulletinIcon\" [group]=\"group\"></app-uibulletin>\r\n <div class=\"profile-vl\" *ngIf=\"showBulletinIcon\"></div>\r\n\r\n <kendo-floatingactionbutton [dialItems]=\"userPanelItems\" [offset]=\"{x:'-5px', y:'-5px'}\"\r\n [align]=\"{ vertical: 'top', horizontal: 'end' }\" [dialItemAnimation]=true buttonClass=\"user-panel-button\"\r\n dialClass=\"user-panel-dial\" (dialItemClick)=\"onDialItemClick($event)\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <kendo-avatar *ngIf=\"!!profileImgUrl\" shape=\"circle\" [imageSrc]=\"profileImgUrl\"></kendo-avatar>\r\n <ng-container *ngIf=\"!profileImgUrl\">\r\n <kendo-avatar *ngIf=\"!!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" [initials]=\"usernameInitial\"></kendo-avatar>\r\n <kendo-avatar *ngIf=\"!usernameInitial\" class=\"username-initial-avatar\" shape=\"circle\" icon=\"user\"></kendo-avatar>\r\n </ng-container>\r\n <ion-label class=\"profile-username\">{{ userDisplayName }}</ion-label>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate let-item let-isFocused=\"isFocused\">\r\n <span [class.custom-focused-class]=\"isFocused\" class=\"user-panel-item\">\r\n <fa-icon [icon]=\"item.icon\" class=\"user-panel-item-icon\"></fa-icon>\r\n <span class=\"user-panel-option-text\">{{ item.text }}</span>\r\n </span>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n </div>\r\n <div *ngIf=\"group && isMobileScreen()\">\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </div>\r\n </div>\r\n\r\n <!-- Design 1 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <div class=\"nav-bar-container\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon [icon]=\"item.icon\" class=\"zcard-header-icon\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div>\r\n </div> -->\r\n <!-- Design 2 -->\r\n <!-- <div class=\"toolbar-second-row\" *ngIf=\"!isMobileScreen() && group && group.navItems\">\r\n <kendo-breadcrumb [items]=\"group.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\" class=\"zcard-header-icon\" [ngClass]=\"{'icon-with-text': item.text}\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </div> -->\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n", styles: ["ion-toolbar{--background: var(--ion-color-primary-shade);--color: var(--ion-color-primary-contrast);--min-height: var(--ion-header-height);box-shadow:0 2px 9px #ababab}app-uimenubutton{margin:auto}.toolbar-first-row{display:flex}.toolbar-second-row{margin-left:50px}.end-panel{display:flex;align-items:stretch;cursor:pointer}.username-initial-avatar{background:var(--ion-color-primary-contrast);color:var(--ion-color-primary)}.profile-username{padding-right:10px;margin:auto auto auto 15px;font-size:var(--page-user-profile-font-size)}.toolbar-title-label{text-shadow:.5px .5px rgba(255,255,255,.48);font-size:var(--page-title-font-size)}.toolbar-title{margin-bottom:2px}.hoverable:hover{background:#ffffff24}:host ::ng-deep kendo-floatingactionbutton{max-height:60px;border-radius:10px}:host ::ng-deep kendo-floatingactionbutton .user-panel-button{background:transparent!important;border:none!important;outline:none}:host ::ng-deep kendo-floatingactionbutton:hover{background:rgba(0,0,0,.3)}:host ::ng-deep kendo-floatingactionbutton .k-fab{box-shadow:none;padding:12px}:host ::ng-deep kendo-floatingactionbutton .k-avatar-md{width:var(--ion-header-avatar-size);height:var(--ion-header-avatar-size);flex-basis:var(--ion-header-avatar-size)}\n"] }]
|
|
132
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ZCoreService }, { type: i2.AuthService }, { type: i2.FontAweSomeService }, { type: i3.ZComponentService }, { type: i4.UiheaderService }]; }, propDecorators: { group: [{
|
|
133
112
|
type: Input
|
|
134
113
|
}], topFormHeader: [{
|
|
135
114
|
type: Input
|
|
136
115
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWloZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCLENBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFxQnhGLE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCLHVCQUF1QjtJQUV2QixZQUNVLE1BQWMsRUFDZCxrQkFBc0MsRUFDdEMsWUFBMEIsRUFDMUIsV0FBd0IsRUFDekIsa0JBQXNDLEVBQ3JDLGdCQUFtQyxFQUNuQyxhQUE0QjtRQU41QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUE1Qi9CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFLakIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLG1CQUFjLEdBQVE7WUFDM0I7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFB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QUN0QjtJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFTSxjQUFjLENBQUMsT0FBWTtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQzs7OEdBdElVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGdIQ3JCOUIsaStIQXFFQTsyRkRoRGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGNBQWM7Z1JBTWYsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBaQ29yZVNlcnZpY2UsIEF1dGhTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSxcclxuICBaR3JvdXAsIFdlYkFwaVNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtdWloZWFkZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3VpaGVhZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3VpaGVhZGVyLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVWloZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgdG9wRm9ybUhlYWRlcjogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIGVudmlyb25tZW50O1xyXG4gIHB1YmxpYyBpc2xvYWRpbmcgPSB0cnVlOztcclxuICBwdWJsaWMgcHJvZmlsZUltZ1VybDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VybmFtZUluaXRpYWw6IHN0cmluZztcclxuICBwdWJsaWMgdXNlcm5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlckRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dCdWxsZXRpbkljb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdXNlclBhbmVsSXRlbXM6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgaWNvbjogJ3VzZXInLFxyXG4gICAgICB0ZXh0OiBcIlByb2ZpbGVcIixcclxuICAgICAgb25DbGljazogdGhpcy5uYXZUb1VzZXJQcm9maWxlLmJpbmQodGhpcyksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiAnc2lnbi1vdXQtYWx0JyxcclxuICAgICAgdGV4dDogXCJMb2cgT3V0XCIsXHJcbiAgICAgIG9uQ2xpY2s6IHRoaXMubmF2TG9nb3V0LmJpbmQodGhpcyksXHJcbiAgICB9XHJcbiAgXTtcclxuICBwcml2YXRlIGxvYWRlZEVudmlyb25tZW50UHJvZmlsZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBiYWNrTmF2aWdhdGUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6Y29yZVNlcnZpY2U6IFpDb3JlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQucHJvZmlsZU1lbnUgJiYgdGhpcy5lbnZpcm9ubWVudC5wcm9maWxlTWVudS5sZW5ndGggPiAwICYmICF0aGlzLmxvYWRlZEVudmlyb25tZW50UHJvZmlsZU1lbnUpIHtcclxuICAgICAgLy8gQmFzZWQgb24gdGhlIHRleHQgY2hhcmFjdGVycywgbWlnaHQgcmVxdWlyZWQgd2lkdGggYWRqdXN0bWVudCBmb3IgdXNlci1wYW5lbC1kaWFsLmstZmFiLWl0ZW1zIGluIGdsb2JhbC5zY3NzLlxyXG4gICAgICB0aGlzLmVudmlyb25tZW50LnByb2ZpbGVNZW51LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcclxuICAgICAgICAgIGljb246IGl0ZW0uaWNvbixcclxuICAgICAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChpdGVtLnVybCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyUGFuZWxJdGVtcy5zcGxpY2UoMCwgMCwgbmV3SXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmxvYWRlZEVudmlyb25tZW50UHJvZmlsZU1lbnUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UudXNlcklzQXV0aGVudGljYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldFVzZXJQcm9maWxlKCk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlVXNlck1lbnUoKTtcclxuICAgICAgdGhpcy5zaG93QnVsbGV0aW5JY29uID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKS5idWxsZXRpblVybCA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VyUHJvZmlsZSgpIHtcclxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmUxVG9rZW4pIHtcclxuICAgICAgY29uc3QgX215UHJvZmlsZSA9IHRoaXMuYXV0aFNlcnZpY2UuZTFUb2tlbi5teVByb2ZpbGU7XHJcbiAgICAgIGlmIChfbXlQcm9maWxlKSB7XHJcbiAgICAgICAgdGhpcy51c2VybmFtZSA9IF9teVByb2ZpbGUuVXNlck5hbWU7XHJcbiAgICAgICAgdGhpcy51c2VyRGlzcGxheU5hbWUgPSBfbXlQcm9maWxlLkxhc3ROYW1lO1xyXG4gICAgICAgIHRoaXMuc2V0VXNlcm5hbWVJbml0aWFsKCk7XHJcbiAgICAgICAgdGhpcy50cnlTZXRVc2VyUHJvZmlsZUltYWdlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXNlcm5hbWVJbml0aWFsKCkge1xyXG4gICAgY29uc3QgdXNlck5hbWVUb1Byb2Nlc3MgPSB0aGlzLnVzZXJEaXNwbGF5TmFtZS5yZXBsYWNlQWxsKC9bXmEtekEtWiBdL2dpLCAnJykudHJpbSgpO1xyXG4gICAgaWYgKHVzZXJOYW1lVG9Qcm9jZXNzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgbmFtZUVsZW1lbnRzID0gdXNlck5hbWVUb1Byb2Nlc3Muc3BsaXQoJyAnKS5maWx0ZXIobiA9PiAhIW4pO1xyXG4gICAgICBpZiAobmFtZUVsZW1lbnRzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lSW5pdGlhbCA9IHVzZXJOYW1lVG9Qcm9jZXNzLnN1YnN0cmluZygwLCBNYXRoLm1pbih1c2VyTmFtZVRvUHJvY2Vzcy5sZW5ndGgsIDIpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lSW5pdGlhbCA9IGAke25hbWVFbGVtZW50c1swXVswXX0ke25hbWVFbGVtZW50c1sxXVswXX1gXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXNlcm5hbWVJbml0aWFsID0gdGhpcy51c2VybmFtZUluaXRpYWwudG9VcHBlckNhc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJ5U2V0VXNlclByb2ZpbGVJbWFnZSgpIHtcclxuICAgIC8vIFRvIGVuc3VyZSB0aGUgcHJvZmlsZSBwaWN0dXJlIGlzIHZhbGlkIGJlZm9yZSBiaW5kaW5nIGluIEhUTUxcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuZW52aXJvbm1lbnQuZTFPYXV0aFVybCArICcvYXBpL1Byb2ZpbGVJbWFnZT9pZD0nICsgdGhpcy5hdXRoU2VydmljZS5lMVRva2VuLm15UHJvZmlsZS5Vc2VyTmFtZSArICcmc2l6ZT04MHg4MCc7XHJcbiAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cEdldCQodXJsLCBudWxsLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5QnVmZmVyJywgaXNIaWRlUG9wVXBFcnJvck1lc3NhZ2U6IHRydWUgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xyXG4gICAgICAgICAgdGhpcy5wcm9maWxlSW1nVXJsID0gdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYW5zbGF0ZVVzZXJNZW51KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KHRoaXMudXNlclBhbmVsSXRlbXMsIFwidGV4dFwiLCB7IGVsZW1lbnROYW1lOiAnbWVudScsIGdyb3VwOiB0aGlzLmdyb3VwIH0pLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGlhbEl0ZW1DbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQuaXRlbS5vbkNsaWNrKSB7XHJcbiAgICAgIGV2ZW50Lml0ZW0ub25DbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZUb1VzZXJQcm9maWxlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3VzZXJQcm9maWxlJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdkxvZ291dCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXV0aCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5hdkhvbWUoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuZW52aXJvbm1lbnQuc3RhcnRVcFBhZ2UucmVwbGFjZShcIl9cIiwgXCJcIikpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzTW9iaWxlU2NyZWVuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5pc01vYmlsZVNjcmVlbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTmF2SXRlbUNsaWNrKG5hdkl0ZW06IGFueSkge1xyXG4gICAgaWYgKG5hdkl0ZW0ucm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChuYXZJdGVtLnJvdXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRvIHN0aW11bGF0ZSBuZXZlciBjbG9zZVxyXG4gIC8vIHB1YmxpYyBvbkNsb3NlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAvLyAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgLy8gfVxyXG59XHJcbiIsIjxpb24taGVhZGVyPlxyXG4gIDxpb24tdG9vbGJhcj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWNvbnRhaW5lclwiICpuZ0lmPVwiIWlzbG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1maXJzdC1yb3dcIj5cclxuICAgICAgICA8YXBwLXVpbWVudWJ1dHRvbiBzbG90PVwic3RhcnRcIiBbZ3JvdXBdPVwiZ3JvdXBcIj48L2FwcC11aW1lbnVidXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tdGl0bGUgY2xhc3M9XCJ0b29sYmFyLXRpdGxlXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9wRm9ybUhlYWRlciB8fCAoZ3JvdXAgJiYgIWdyb3VwLmlzTG9hZGluZyAmJiBncm91cC5mb3JtSGVhZGVyKVwiPlxyXG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwidG9vbGJhci10aXRsZS1sYWJlbFwiPnt7IHRvcEZvcm1IZWFkZXIgPyB0b3BGb3JtSGVhZGVyIDogZ3JvdXAuZm9ybUhlYWRlciB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tdGl0bGU+XHJcblxyXG4gICAgICAgIDxkaXYgc2xvdD1cImVuZFwiICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKClcIiBjbGFzcz1cImVuZC1wYW5lbCBob3ZlcmFibGVcIj5cclxuICAgICAgICAgIDxhcHAtdWlidWxsZXRpbiAqbmdJZj1cInNob3dCdWxsZXRpbkljb25cIiBbZ3JvdXBdPVwiZ3JvdXBcIj48L2FwcC11aWJ1bGxldGluPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtdmxcIiAqbmdJZj1cInNob3dCdWxsZXRpbkljb25cIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICA8a2VuZG8tZmxvYXRpbmdhY3Rpb25idXR0b24gW2RpYWxJdGVtc109XCJ1c2VyUGFuZWxJdGVtc1wiIFtvZmZzZXRdPVwie3g6Jy01cHgnLCB5OictNXB4J31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbGlnbl09XCJ7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2VuZCcgfVwiIFtkaWFsSXRlbUFuaW1hdGlvbl09dHJ1ZSBidXR0b25DbGFzcz1cInVzZXItcGFuZWwtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsQ2xhc3M9XCJ1c2VyLXBhbmVsLWRpYWxcIiAoZGlhbEl0ZW1DbGljayk9XCJvbkRpYWxJdGVtQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9GbG9hdGluZ0FjdGlvbkJ1dHRvblRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxrZW5kby1hdmF0YXIgKm5nSWY9XCIhIXByb2ZpbGVJbWdVcmxcIiBzaGFwZT1cImNpcmNsZVwiIFtpbWFnZVNyY109XCJwcm9maWxlSW1nVXJsXCI+PC9rZW5kby1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9maWxlSW1nVXJsXCI+XHJcbiAgICAgICAgICAgICAgICA8a2VuZG8tYXZhdGFyICpuZ0lmPVwiISF1c2VybmFtZUluaXRpYWxcIiBjbGFzcz1cInVzZXJuYW1lLWluaXRpYWwtYXZhdGFyXCIgc2hhcGU9XCJjaXJjbGVcIiBbaW5pdGlhbHNdPVwidXNlcm5hbWVJbml0aWFsXCI+PC9rZW5kby1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICA8a2VuZG8tYXZhdGFyICpuZ0lmPVwiIXVzZXJuYW1lSW5pdGlhbFwiIGNsYXNzPVwidXNlcm5hbWUtaW5pdGlhbC1hdmF0YXJcIiBzaGFwZT1cImNpcmNsZVwiIGljb249XCJ1c2VyXCI+PC9rZW5kby1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cInByb2ZpbGUtdXNlcm5hbWVcIj57eyB1c2VyRGlzcGxheU5hbWUgfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRGlhbEl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaXNGb2N1c2VkPVwiaXNGb2N1c2VkXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmN1c3RvbS1mb2N1c2VkLWNsYXNzXT1cImlzRm9jdXNlZFwiIGNsYXNzPVwidXNlci1wYW5lbC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIiBjbGFzcz1cInVzZXItcGFuZWwtaXRlbS1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXBhbmVsLW9wdGlvbi10ZXh0XCI+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwva2VuZG8tZmxvYXRpbmdhY3Rpb25idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImdyb3VwICYmIGlzTW9iaWxlU2NyZWVuKClcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwicHJpbWFyeVwiICpuZ0lmPVwiIWdyb3VwLmlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8YXBwLXVpYWN0aW9uYnV0dG9uIFtncm91cF09XCJncm91cFwiPjwvYXBwLXVpYWN0aW9uYnV0dG9uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIERlc2lnbiAxIC0tPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXNlY29uZC1yb3dcIiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpICYmIGdyb3VwICYmIGdyb3VwLm5hdkl0ZW1zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8a2VuZG8tYnJlYWRjcnVtYiBbaXRlbXNdPVwiZ3JvdXAubmF2SXRlbXNcIiBjbGFzcz1cIm5hdi1iYXJcIiAoaXRlbUNsaWNrKT1cIm9uTmF2SXRlbUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQnJlYWRDcnVtYkl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtYmFyLWl0ZW1cIiBbY2xhc3MuY3VycmVudF09XCIhaXRlbS5yb3V0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ6Y2FyZC1oZWFkZXItaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwva2VuZG8tYnJlYWRjcnVtYj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICA8IS0tIERlc2lnbiAyIC0tPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXNlY29uZC1yb3dcIiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpICYmIGdyb3VwICYmIGdyb3VwLm5hdkl0ZW1zXCI+XHJcbiAgICAgICAgPGtlbmRvLWJyZWFkY3J1bWIgW2l0ZW1zXT1cImdyb3VwLm5hdkl0ZW1zXCIgY2xhc3M9XCJuYXYtYmFyXCIgKGl0ZW1DbGljayk9XCJvbk5hdkl0ZW1DbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9CcmVhZENydW1iSXRlbVRlbXBsYXRlIGxldC1pdGVtIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtYmFyLWl0ZW1cIiBbY2xhc3MuY3VycmVudF09XCIhaXRlbS5yb3V0ZVwiPlxyXG4gICAgICAgICAgICAgIDxmYS1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCIgW2ljb25dPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ6Y2FyZC1oZWFkZXItaWNvblwiIFtuZ0NsYXNzXT1cInsnaWNvbi13aXRoLXRleHQnOiBpdGVtLnRleHR9XCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwva2VuZG8tYnJlYWRjcnVtYj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9pb24tdG9vbGJhcj5cclxuPC9pb24taGVhZGVyPlxyXG4iXX0=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWloZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCLENBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBc0J4RixNQUFNLE9BQU8saUJBQWlCO0lBd0I1Qix1QkFBdUI7SUFFdkIsWUFDVSxNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsV0FBd0IsRUFDekIsa0JBQXNDLEVBQ3JDLGdCQUFtQyxFQUNuQyxlQUFnQztRQUxoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQTNCbkMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUtqQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBUTtZQUMzQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDMUM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMs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QUFnQjtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxPQUFZO1FBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzs4R0E1R1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0hDdEI5QixpK0hBcUVBOzJGRC9DYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYztpUEFNZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIFpDb3JlU2VydmljZSwgQXV0aFNlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSxcclxuICBaR3JvdXBcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVWloZWFkZXJTZXJ2aWNlIH0gZnJvbSBcIi4vdWloZWFkZXIuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC11aWhlYWRlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdWloZWFkZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdWloZWFkZXIuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBVaWhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSB0b3BGb3JtSGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgZW52aXJvbm1lbnQ7XHJcbiAgcHVibGljIGlzbG9hZGluZyA9IHRydWU7O1xyXG4gIHB1YmxpYyBwcm9maWxlSW1nVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJuYW1lSW5pdGlhbDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VybmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyRGlzcGxheU5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0J1bGxldGluSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB1c2VyUGFuZWxJdGVtczogYW55ID0gW1xyXG4gICAge1xyXG4gICAgICBpY29uOiAndXNlcicsXHJcbiAgICAgIHRleHQ6IFwiUHJvZmlsZVwiLFxyXG4gICAgICBvbkNsaWNrOiB0aGlzLm5hdlRvVXNlclByb2ZpbGUuYmluZCh0aGlzKSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246ICdzaWduLW91dC1hbHQnLFxyXG4gICAgICB0ZXh0OiBcIkxvZyBPdXRcIixcclxuICAgICAgb25DbGljazogdGhpcy5uYXZMb2dvdXQuYmluZCh0aGlzKSxcclxuICAgIH1cclxuICBdO1xyXG4gIHByaXZhdGUgbG9hZGVkRW52aXJvbm1lbnRQcm9maWxlTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIGJhY2tOYXZpZ2F0ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgemNvcmVTZXJ2aWNlOiBaQ29yZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVpSGVhZGVyU2VydmljZTogVWloZWFkZXJTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc2xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQucHJvZmlsZU1lbnUgJiYgdGhpcy5lbnZpcm9ubWVudC5wcm9maWxlTWVudS5sZW5ndGggPiAwICYmICF0aGlzLmxvYWRlZEVudmlyb25tZW50UHJvZmlsZU1lbnUpIHtcclxuICAgICAgLy8gQmFzZWQgb24gdGhlIHRleHQgY2hhcmFjdGVycywgbWlnaHQgcmVxdWlyZWQgd2lkdGggYWRqdXN0bWVudCBmb3IgdXNlci1wYW5lbC1kaWFsLmstZmFiLWl0ZW1zIGluIGdsb2JhbC5zY3NzLlxyXG4gICAgICB0aGlzLmVudmlyb25tZW50LnByb2ZpbGVNZW51LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcclxuICAgICAgICAgIGljb246IGl0ZW0uaWNvbixcclxuICAgICAgICAgIHRleHQ6IGl0ZW0udGV4dCxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChpdGVtLnVybCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyUGFuZWxJdGVtcy5zcGxpY2UoMCwgMCwgbmV3SXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmxvYWRlZEVudmlyb25tZW50UHJvZmlsZU1lbnUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UudXNlcklzQXV0aGVudGljYXRlZC5zdWJzY3JpYmUoaXNBdXRoID0+IHtcclxuICAgICAgaWYgKGlzQXV0aCkge1xyXG4gICAgICAgIHRoaXMuc2V0VXNlclByb2ZpbGUoKTtcclxuICAgICAgICB0aGlzLnVpSGVhZGVyU2VydmljZS5nZXRUcmFuc2xhdGVkVXNlck1lbnUodGhpcy5ncm91cCwgdGhpcy51c2VyUGFuZWxJdGVtcykuc3Vic2NyaWJlKHJlc3AgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3AgJiYgcmVzcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlclBhbmVsSXRlbXMgPSByZXNwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2hvd0J1bGxldGluSWNvbiA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCkuYnVsbGV0aW5VcmwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc2xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VyUHJvZmlsZSgpIHtcclxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmUxVG9rZW4pIHtcclxuICAgICAgY29uc3QgX215UHJvZmlsZSA9IHRoaXMuYXV0aFNlcnZpY2UuZTFUb2tlbi5teVByb2ZpbGU7XHJcbiAgICAgIGlmIChfbXlQcm9maWxlKSB7XHJcbiAgICAgICAgdGhpcy51c2VybmFtZSA9IF9teVByb2ZpbGUuVXNlck5hbWU7XHJcbiAgICAgICAgdGhpcy51c2VyRGlzcGxheU5hbWUgPSBfbXlQcm9maWxlLkxhc3ROYW1lO1xyXG4gICAgICAgIHRoaXMudXNlcm5hbWVJbml0aWFsID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VybmFtZUluaXRpYWwoKTtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJQcm9maWxlSW1hZ2UoKS5zdWJzY3JpYmUoaW1nID0+IHsgdGhpcy5wcm9maWxlSW1nVXJsID0gaW1nIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EaWFsSXRlbUNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5pdGVtLm9uQ2xpY2spIHtcclxuICAgICAgZXZlbnQuaXRlbS5vbkNsaWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdlRvVXNlclByb2ZpbGUoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvdXNlclByb2ZpbGUnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2TG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9hdXRoJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmF2SG9tZSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5lbnZpcm9ubWVudC5zdGFydFVwUGFnZS5yZXBsYWNlKFwiX1wiLCBcIlwiKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OYXZJdGVtQ2xpY2sobmF2SXRlbTogYW55KSB7XHJcbiAgICBpZiAobmF2SXRlbS5yb3V0ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5hdkl0ZW0ucm91dGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVG8gc3RpbXVsYXRlIG5ldmVyIGNsb3NlXHJcbiAgLy8gcHVibGljIG9uQ2xvc2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gIC8vICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAvLyB9XHJcbn1cclxuIiwiPGlvbi1oZWFkZXI+XHJcbiAgPGlvbi10b29sYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGFpbmVyXCIgKm5nSWY9XCIhaXNsb2FkaW5nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWZpcnN0LXJvd1wiPlxyXG4gICAgICAgIDxhcHAtdWltZW51YnV0dG9uIHNsb3Q9XCJzdGFydFwiIFtncm91cF09XCJncm91cFwiPjwvYXBwLXVpbWVudWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi10aXRsZSBjbGFzcz1cInRvb2xiYXItdGl0bGVcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b3BGb3JtSGVhZGVyIHx8IChncm91cCAmJiAhZ3JvdXAuaXNMb2FkaW5nICYmIGdyb3VwLmZvcm1IZWFkZXIpXCI+XHJcbiAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJ0b29sYmFyLXRpdGxlLWxhYmVsXCI+e3sgdG9wRm9ybUhlYWRlciA/IHRvcEZvcm1IZWFkZXIgOiBncm91cC5mb3JtSGVhZGVyIH19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi10aXRsZT5cclxuXHJcbiAgICAgICAgPGRpdiBzbG90PVwiZW5kXCIgKm5nSWY9XCIhaXNNb2JpbGVTY3JlZW4oKVwiIGNsYXNzPVwiZW5kLXBhbmVsIGhvdmVyYWJsZVwiPlxyXG4gICAgICAgICAgPGFwcC11aWJ1bGxldGluICpuZ0lmPVwic2hvd0J1bGxldGluSWNvblwiIFtncm91cF09XCJncm91cFwiPjwvYXBwLXVpYnVsbGV0aW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS12bFwiICpuZ0lmPVwic2hvd0J1bGxldGluSWNvblwiPjwvZGl2PlxyXG5cclxuICAgICAgICAgIDxrZW5kby1mbG9hdGluZ2FjdGlvbmJ1dHRvbiBbZGlhbEl0ZW1zXT1cInVzZXJQYW5lbEl0ZW1zXCIgW29mZnNldF09XCJ7eDonLTVweCcsIHk6Jy01cHgnfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsaWduXT1cInsgdmVydGljYWw6ICd0b3AnLCBob3Jpem9udGFsOiAnZW5kJyB9XCIgW2RpYWxJdGVtQW5pbWF0aW9uXT10cnVlIGJ1dHRvbkNsYXNzPVwidXNlci1wYW5lbC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxDbGFzcz1cInVzZXItcGFuZWwtZGlhbFwiIChkaWFsSXRlbUNsaWNrKT1cIm9uRGlhbEl0ZW1DbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0Zsb2F0aW5nQWN0aW9uQnV0dG9uVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPGtlbmRvLWF2YXRhciAqbmdJZj1cIiEhcHJvZmlsZUltZ1VybFwiIHNoYXBlPVwiY2lyY2xlXCIgW2ltYWdlU3JjXT1cInByb2ZpbGVJbWdVcmxcIj48L2tlbmRvLWF2YXRhcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByb2ZpbGVJbWdVcmxcIj5cclxuICAgICAgICAgICAgICAgIDxrZW5kby1hdmF0YXIgKm5nSWY9XCIhIXVzZXJuYW1lSW5pdGlhbFwiIGNsYXNzPVwidXNlcm5hbWUtaW5pdGlhbC1hdmF0YXJcIiBzaGFwZT1cImNpcmNsZVwiIFtpbml0aWFsc109XCJ1c2VybmFtZUluaXRpYWxcIj48L2tlbmRvLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIDxrZW5kby1hdmF0YXIgKm5nSWY9XCIhdXNlcm5hbWVJbml0aWFsXCIgY2xhc3M9XCJ1c2VybmFtZS1pbml0aWFsLWF2YXRhclwiIHNoYXBlPVwiY2lyY2xlXCIgaWNvbj1cInVzZXJcIj48L2tlbmRvLWF2YXRhcj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwicHJvZmlsZS11c2VybmFtZVwiPnt7IHVzZXJEaXNwbGF5TmFtZSB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9EaWFsSXRlbVRlbXBsYXRlIGxldC1pdGVtIGxldC1pc0ZvY3VzZWQ9XCJpc0ZvY3VzZWRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbY2xhc3MuY3VzdG9tLWZvY3VzZWQtY2xhc3NdPVwiaXNGb2N1c2VkXCIgY2xhc3M9XCJ1c2VyLXBhbmVsLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwidXNlci1wYW5lbC1pdGVtLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItcGFuZWwtb3B0aW9uLXRleHRcIj57eyBpdGVtLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9rZW5kby1mbG9hdGluZ2FjdGlvbmJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXAgJiYgaXNNb2JpbGVTY3JlZW4oKVwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJwcmltYXJ5XCIgKm5nSWY9XCIhZ3JvdXAuaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdWlhY3Rpb25idXR0b24gW2dyb3VwXT1cImdyb3VwXCI+PC9hcHAtdWlhY3Rpb25idXR0b24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gRGVzaWduIDEgLS0+XHJcbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRvb2xiYXItc2Vjb25kLXJvd1wiICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgJiYgZ3JvdXAgJiYgZ3JvdXAubmF2SXRlbXNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWJhci1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxrZW5kby1icmVhZGNydW1iIFtpdGVtc109XCJncm91cC5uYXZJdGVtc1wiIGNsYXNzPVwibmF2LWJhclwiIChpdGVtQ2xpY2spPVwib25OYXZJdGVtQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9CcmVhZENydW1iSXRlbVRlbXBsYXRlIGxldC1pdGVtIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1iYXItaXRlbVwiIFtjbGFzcy5jdXJyZW50XT1cIiFpdGVtLnJvdXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIiBjbGFzcz1cInpjYXJkLWhlYWRlci1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9rZW5kby1icmVhZGNydW1iPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgIDwhLS0gRGVzaWduIDIgLS0+XHJcbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRvb2xiYXItc2Vjb25kLXJvd1wiICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgJiYgZ3JvdXAgJiYgZ3JvdXAubmF2SXRlbXNcIj5cclxuICAgICAgICA8a2VuZG8tYnJlYWRjcnVtYiBbaXRlbXNdPVwiZ3JvdXAubmF2SXRlbXNcIiBjbGFzcz1cIm5hdi1iYXJcIiAoaXRlbUNsaWNrKT1cIm9uTmF2SXRlbUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0JyZWFkQ3J1bWJJdGVtVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1iYXItaXRlbVwiIFtjbGFzcy5jdXJyZW50XT1cIiFpdGVtLnJvdXRlXCI+XHJcbiAgICAgICAgICAgICAgPGZhLWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJpdGVtLmljb25cIiBjbGFzcz1cInpjYXJkLWhlYWRlci1pY29uXCIgW25nQ2xhc3NdPVwieydpY29uLXdpdGgtdGV4dCc6IGl0ZW0udGV4dH1cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9rZW5kby1icmVhZGNydW1iPlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2lvbi10b29sYmFyPlxyXG48L2lvbi1oZWFkZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { map, of } from "rxjs";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "mmhglobal-zcore";
|
|
5
|
+
export class UiheaderService {
|
|
6
|
+
constructor(translationService) {
|
|
7
|
+
this.translationService = translationService;
|
|
8
|
+
}
|
|
9
|
+
getTranslatedUserMenu(group, userPanelItems) {
|
|
10
|
+
if (this.translatedMenuItems && this.translatedMenuItems.length > 0) {
|
|
11
|
+
return of(this.translatedMenuItems);
|
|
12
|
+
}
|
|
13
|
+
return this.translationService.$translateItemList(userPanelItems, "text", { elementName: 'menu', group: group }).pipe(map(() => {
|
|
14
|
+
this.translatedMenuItems = userPanelItems;
|
|
15
|
+
return this.translatedMenuItems;
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
UiheaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderService, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
UiheaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderService, providedIn: 'root' });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiheaderService, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{
|
|
24
|
+
providedIn: 'root'
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.TranslationService }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWloZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3VpaGVhZGVyL3VpaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzFELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFhLEVBQUUsY0FBMEI7UUFDcEUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ25ILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs0R0FqQlUsZUFBZTtnSEFBZixlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UsIFpHcm91cCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaWhlYWRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlZE1lbnVJdGVtcztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zbGF0ZWRVc2VyTWVudShncm91cDogWkdyb3VwLCB1c2VyUGFuZWxJdGVtczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlZE1lbnVJdGVtcyAmJiB0aGlzLnRyYW5zbGF0ZWRNZW51SXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy50cmFuc2xhdGVkTWVudUl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KHVzZXJQYW5lbEl0ZW1zLCBcInRleHRcIiwgeyBlbGVtZW50TmFtZTogJ21lbnUnLCBncm91cDogZ3JvdXAgfSkucGlwZShcclxuICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZWRNZW51SXRlbXMgPSB1c2VyUGFuZWxJdGVtcztcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVkTWVudUl0ZW1zO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|