@cleavelandprice/ngx-lib 3.11.4 → 3.13.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/README.md +5 -5
- package/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +20 -2
- package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +5 -4
- package/authentication/token/gui/components/login/login.component.d.ts +3 -3
- package/authentication/token/gui/components/login-form/login-form.component.d.ts +1 -2
- package/authentication/token/gui/services/authentication.service.d.ts +2 -4
- package/authentication/token/services/authentication.service.d.ts +3 -4
- package/dialog/components/base/base.component.d.ts +6 -5
- package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +60 -68
- package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +22 -27
- package/esm2022/active-directory/gui/gui.module.mjs +1 -1
- package/esm2022/authentication/token/gui/components/login/login.component.mjs +10 -11
- package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +11 -12
- package/esm2022/authentication/token/gui/services/authentication.service.mjs +5 -7
- package/esm2022/authentication/token/services/authentication.service.mjs +9 -8
- package/esm2022/dialog/components/base/base.component.mjs +26 -26
- package/esm2022/dialog/components/choice/choice.component.mjs +3 -3
- package/esm2022/dialog/components/confirmation/confirmation.component.mjs +3 -3
- package/esm2022/dialog/components/input/input.component.mjs +3 -3
- package/esm2022/dialog/components/message/message.component.mjs +3 -3
- package/esm2022/dialog/dialog.module.mjs +1 -1
- package/esm2022/lib/services/app-path-config.service.mjs +13 -10
- package/esm2022/msgraph/msgraph.module.mjs +1 -1
- package/esm2022/quill/components/editor/editor.component.mjs +41 -48
- package/esm2022/quill/components/raw/raw.component.mjs +3 -3
- package/esm2022/quill/mention/components/editor/editor.component.mjs +30 -40
- package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +36 -0
- package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +38 -0
- package/esm2022/sharepoint/public_api.mjs +3 -3
- package/esm2022/sharepoint/sharepoint.module.mjs +11 -11
- package/esm2022/table/components/table/table.component.mjs +97 -5
- package/esm2022/table/model/table-column.mjs +2 -0
- package/esm2022/table/public_api.mjs +3 -1
- package/esm2022/table/table.module.mjs +67 -0
- package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +3 -3
- package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +1 -1
- package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +1 -1
- package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +1 -1
- package/esm2022/url-utilities/url-utilities.module.mjs +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs +79 -91
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs +24 -28
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +8 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +33 -33
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +30 -40
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +44 -50
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +34 -35
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs +157 -4
- package/fesm2022/cleavelandprice-ngx-lib-table.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +2 -2
- package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib.mjs +12 -9
- package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/lib/services/app-path-config.service.d.ts +1 -2
- package/package.json +12 -12
- package/quill/components/editor/editor.component.d.ts +2 -7
- package/quill/mention/components/editor/editor.component.d.ts +13 -10
- package/sharepoint/components/user-photo/user-photo.component.d.ts +15 -0
- package/sharepoint/pipes/{employee-photo-url.pipe.d.ts → user-photo-url.pipe.d.ts} +3 -3
- package/sharepoint/public_api.d.ts +2 -2
- package/sharepoint/sharepoint.module.d.ts +3 -3
- package/table/components/table/table.component.d.ts +32 -1
- package/table/model/table-column.d.ts +36 -0
- package/table/public_api.d.ts +2 -0
- package/table/table.module.d.ts +18 -0
- package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +0 -37
- package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +0 -38
- package/sharepoint/components/employee-photo/employee-photo.component.d.ts +0 -15
package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, inject,
|
|
1
|
+
import { Component, EventEmitter, inject, input, Output } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
3
|
import { forkJoin, of } from 'rxjs';
|
|
4
4
|
import { ActiveDirectoryService } from '@cleavelandprice/ngx-lib/active-directory';
|
|
@@ -22,8 +22,9 @@ export class UserFormFieldComponent {
|
|
|
22
22
|
//#endregion
|
|
23
23
|
this.usersSelected = new EventEmitter(); // string for Single mode, string[] for multi
|
|
24
24
|
this.userUnSelected = new EventEmitter();
|
|
25
|
-
this.placeholder = 'Select User(s)';
|
|
26
|
-
this.clickable = true;
|
|
25
|
+
this.placeholder = input('Select User(s)');
|
|
26
|
+
this.clickable = input(true);
|
|
27
|
+
this.userChooserData = input.required();
|
|
27
28
|
this.accountNames = [];
|
|
28
29
|
}
|
|
29
30
|
//#endregion
|
|
@@ -34,22 +35,22 @@ export class UserFormFieldComponent {
|
|
|
34
35
|
//#endregion
|
|
35
36
|
//#region Lifecycle
|
|
36
37
|
ngOnInit() {
|
|
37
|
-
this.
|
|
38
|
+
this._userChooserData = {
|
|
38
39
|
...new UserChooserData(),
|
|
39
|
-
...this.userChooserData
|
|
40
|
+
...this.userChooserData()
|
|
40
41
|
};
|
|
41
42
|
// If users have been pre-selected in the config, store those in accountNames, which drives the UI of this component
|
|
42
|
-
this.accountNames = this.
|
|
43
|
+
this.accountNames = this._userChooserData.preSelections.accountNames;
|
|
43
44
|
this.getData();
|
|
44
45
|
}
|
|
45
46
|
//#endregion
|
|
46
47
|
//#region Events
|
|
47
48
|
selectUser() {
|
|
48
|
-
if (!this.clickable) {
|
|
49
|
+
if (!this.clickable()) {
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
51
52
|
const data = {
|
|
52
|
-
...this.
|
|
53
|
+
...this._userChooserData,
|
|
53
54
|
users: this.users,
|
|
54
55
|
photos: this.photos,
|
|
55
56
|
};
|
|
@@ -65,33 +66,33 @@ export class UserFormFieldComponent {
|
|
|
65
66
|
selected :
|
|
66
67
|
[selected];
|
|
67
68
|
// Overwrite what may have been passed in, for subsequent launches of UserChooserComponent - otherwise it just keeps getting fed stale data
|
|
68
|
-
this.
|
|
69
|
+
this._userChooserData.preSelections.accountNames = this.accountNames;
|
|
69
70
|
this.usersSelected.emit(selected);
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
unSelectUser(accountName) {
|
|
73
74
|
const index = this.accountNames.findIndex(a => a === accountName);
|
|
74
75
|
this.accountNames.splice(index, 1);
|
|
75
|
-
this.
|
|
76
|
+
this._userChooserData.preSelections.accountNames = this.accountNames;
|
|
76
77
|
this.userUnSelected.emit(accountName);
|
|
77
78
|
}
|
|
78
79
|
//#endregion
|
|
79
80
|
//#region Utilities
|
|
80
81
|
getData() {
|
|
81
82
|
forkJoin([
|
|
82
|
-
this.
|
|
83
|
+
this._userChooserData.users ?
|
|
83
84
|
// Users were passed in
|
|
84
|
-
of(this.
|
|
85
|
+
of(this._userChooserData.users) :
|
|
85
86
|
// Users need to be retrieved
|
|
86
|
-
this.activeDirectoryService.getUsers(false, this.
|
|
87
|
-
this.
|
|
87
|
+
this.activeDirectoryService.getUsers(false, this._userChooserData.includeDisabledUsers, this._userChooserData.parentOu),
|
|
88
|
+
this._userChooserData.groups ?
|
|
88
89
|
// Groups were passed in
|
|
89
|
-
of(this.
|
|
90
|
+
of(this._userChooserData.groups) :
|
|
90
91
|
// Groups need to be retrieved
|
|
91
|
-
this.activeDirectoryService.getGroups(this.
|
|
92
|
-
this.
|
|
92
|
+
this.activeDirectoryService.getGroups(this._userChooserData.parentOu),
|
|
93
|
+
this._userChooserData.photos ?
|
|
93
94
|
// Photos were passed in
|
|
94
|
-
of(this.
|
|
95
|
+
of(this._userChooserData.photos) :
|
|
95
96
|
// Photos need to be retrieved
|
|
96
97
|
this.sharePointService.getPhotos()
|
|
97
98
|
])
|
|
@@ -118,20 +119,14 @@ export class UserFormFieldComponent {
|
|
|
118
119
|
p.title?.toLowerCase() === user.displayName.toLowerCase())?.encodedAbsUrl;
|
|
119
120
|
}
|
|
120
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserFormFieldComponent, selector: "cp-user-field", inputs: { placeholder: "placeholder", clickable: "clickable", userChooserData: "userChooserData" }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\nIt's definitely a better experience if the field IS disabled.\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n<!-- Update 8/24/2023:\nThe above problem also exists in Chrome now.\nSo instead of dynamically setting [disabled] based on browser type,\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\n-->\n\n@if (users && photos) {\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n @if (accountNames
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: UserFormFieldComponent, selector: "cp-user-field", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, userChooserData: { classPropertyName: "userChooserData", publicName: "userChooserData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { usersSelected: "usersSelected", userUnSelected: "userUnSelected" }, ngImport: i0, template: "\r\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\r\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\r\nIt's definitely a better experience if the field IS disabled.\r\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\r\n-->\r\n<!-- Update 8/24/2023:\r\nThe above problem also exists in Chrome now.\r\nSo instead of dynamically setting [disabled] based on browser type,\r\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\r\n-->\r\n\r\n@if (users && photos) {\r\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable()\">\r\n @if (accountNames.length) {\r\n <div\r\n [class.grid]=\"accountNames.length > 1\"\r\n [class.three]=\"accountNames.length > 2\"\r\n [class.four]=\"accountNames.length > 3\"\r\n [class.five]=\"accountNames.length > 4\">\r\n @for (accountName of accountNames; track accountName; let i = $index) {\r\n <div class=\"user\">\r\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\r\n @if (getPhoto(accountName)) {\r\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\r\n }\r\n @if (getGroup(accountName)) {\r\n <mat-icon>group</mat-icon>\r\n }\r\n <mat-form-field>\r\n <!-- [disabled]=\"!isEdge\" -->\r\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder() : ''\"\r\n [value]=\"getUser(accountName) ? getUser(accountName)?.displayName : getGroup(accountName) ? getGroup(accountName)?.displayName : accountName\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\r\n <mat-icon fontIcon=\"close\"/>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <mat-form-field>\r\n <input matInput disabled [placeholder]=\"placeholder()\"> <!-- [disabled]=\"!isEdge\" -->\r\n </mat-form-field>\r\n }\r\n </div>\r\n} @else {\r\n <mat-progress-bar mode=\"indeterminate\"/>\r\n}", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}input[disabled]{pointer-events:none}\n"], dependencies: [{ kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] }); }
|
|
122
123
|
}
|
|
123
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserFormFieldComponent, decorators: [{
|
|
124
125
|
type: Component,
|
|
125
|
-
args: [{ selector: 'cp-user-field', template: "\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\nIt's definitely a better experience if the field IS disabled.\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\n-->\n<!-- Update 8/24/2023:\nThe above problem also exists in Chrome now.\nSo instead of dynamically setting [disabled] based on browser type,\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\n-->\n\n@if (users && photos) {\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable\">\n @if (accountNames
|
|
126
|
+
args: [{ selector: 'cp-user-field', template: "\r\n<!-- In Microsoft Edge, selectUser() never gets called if the input fields are disabled\r\nSo... I'm dynamically setting the disabled property based on whether or not the browser is Edge.\r\nIt's definitely a better experience if the field IS disabled.\r\nOtherwise, it's confusing - especially because Edge is SO SLOW to display the resulting dialog window.\r\n-->\r\n<!-- Update 8/24/2023:\r\nThe above problem also exists in Chrome now.\r\nSo instead of dynamically setting [disabled] based on browser type,\r\nI'm applying CSS to suppress mouse events on the input - thus making it bubble up to the parent control, which responds the way we want/\r\n-->\r\n\r\n@if (users && photos) {\r\n <div (click)=\"selectUser()\" [class.clickable]=\"clickable()\">\r\n @if (accountNames.length) {\r\n <div\r\n [class.grid]=\"accountNames.length > 1\"\r\n [class.three]=\"accountNames.length > 2\"\r\n [class.four]=\"accountNames.length > 3\"\r\n [class.five]=\"accountNames.length > 4\">\r\n @for (accountName of accountNames; track accountName; let i = $index) {\r\n <div class=\"user\">\r\n <!--<img *ngIf=\"accountName && empUtils.getEmployee(accountName)\" alt=\"\" [src]=\"empUtils.getEmployee(accountName) | employeePhotoUrl:cacheService.photos\">-->\r\n @if (getPhoto(accountName)) {\r\n <img matListItemAvatar alt=\"\" [src]=\"getPhoto(accountName)\">\r\n }\r\n @if (getGroup(accountName)) {\r\n <mat-icon>group</mat-icon>\r\n }\r\n <mat-form-field>\r\n <!-- [disabled]=\"!isEdge\" -->\r\n <input matInput disabled [placeholder]=\"i === 0 ? placeholder() : ''\"\r\n [value]=\"getUser(accountName) ? getUser(accountName)?.displayName : getGroup(accountName) ? getGroup(accountName)?.displayName : accountName\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"$event.stopPropagation(); unSelectUser(accountName)\">\r\n <mat-icon fontIcon=\"close\"/>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <mat-form-field>\r\n <input matInput disabled [placeholder]=\"placeholder()\"> <!-- [disabled]=\"!isEdge\" -->\r\n </mat-form-field>\r\n }\r\n </div>\r\n} @else {\r\n <mat-progress-bar mode=\"indeterminate\"/>\r\n}", styles: [".user{display:grid;grid-template-columns:auto 1fr;grid-gap:.5em;align-items:center}.clickable,.clickable input{cursor:pointer!important}img{width:2em;height:2em;border-radius:100%}@media (min-width:801px){.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1em}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}::ng-deep .grid mat-form-field{width:15vw}}input[disabled]{pointer-events:none}\n"] }]
|
|
126
127
|
}], propDecorators: { usersSelected: [{
|
|
127
128
|
type: Output
|
|
128
129
|
}], userUnSelected: [{
|
|
129
130
|
type: Output
|
|
130
|
-
}], placeholder: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], clickable: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], userChooserData: [{
|
|
135
|
-
type: Input
|
|
136
131
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLDJDQUEyQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFPOUUsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1FLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hELHNCQUFpQixHQUFH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T0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFDLE9BQU8sU0FBUyxDQUFDO1FBQUMsQ0FBQztRQUVoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNCLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDekUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRTtZQUNsRSxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQy9ELENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FDMUQsRUFBRSxhQUFhLENBQUM7SUFDbkIsQ0FBQzs4R0E5SFUsc0JBQXNCO2tHQUF0QixzQkFBc0Isd09DaEJuQyxvekVBZ0RDOzsyRkRoQ1ksc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGVBQWU7OEJBV2YsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIsIFVzZXJPckdyb3VwIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuaW1wb3J0IHsgUGhvdG9JdGVtLCBTaGFyZVBvaW50U2VydmljZSB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zaGFyZXBvaW50JztcblxuaW1wb3J0IHsgVXNlckNob29zZXJEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvdXNlci1jaG9vc2VyLWRhdGEnO1xuXG5pbXBvcnQgeyBVc2VyQ2hvb3NlckNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItY2hvb3Nlci91c2VyLWNob29zZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3AtdXNlci1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyNyZWdpb24gRmllbGRzXG4gIC8vI3JlZ2lvbiBTZXJ2aWNlc1xuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2UgPSBpbmplY3QoQWN0aXZlRGlyZWN0b3J5U2VydmljZSk7XG4gIHByaXZhdGUgc2hhcmVQb2ludFNlcnZpY2UgPSBpbmplY3QoU2hhcmVQb2ludFNlcnZpY2UpO1xuICAvLyNlbmRyZWdpb25cbiAgQE91dHB1dCgpIHVzZXJzU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdPigpOyAvLyBzdHJpbmcgZm9yIFNpbmdsZSBtb2RlLCBzdHJpbmdbXSBmb3IgbXVsdGlcbiAgQE91dHB1dCgpIHVzZXJVblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBVc2VyKHMpJztcbiAgQElucHV0KCkgY2xpY2thYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKSB1c2VyQ2hvb3NlckRhdGEhOiBVc2VyQ2hvb3NlckRhdGE7XG5cbiAgYWNjb3VudE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHVzZXJzPzogVXNlcltdO1xuICBncm91cHM/OiBVc2VyT3JHcm91cFtdO1xuICBwaG90b3M/OiBQaG90b0l0ZW1bXTtcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcbiAgLypnZXQgaXNFZGdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgPiAtMTtcbiAgfSovXG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgLy8jcmVnaW9uIExpZmVjeWNsZVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSA9IHtcbiAgICAgIC4uLm5ldyBVc2VyQ2hvb3NlckRhdGEoKSxcbiAgICAgIC4uLnRoaXMudXNlckNob29zZXJEYXRhXG4gICAgfVxuXG4gICAgLy8gSWYgdXNlcnMgaGF2ZSBiZWVuIHByZS1zZWxlY3RlZCBpbiB0aGUgY29uZmlnLCBzdG9yZSB0aG9zZSBpbiBhY2NvdW50TmFtZXMsIHdoaWNoIGRyaXZlcyB0aGUgVUkgb2YgdGhpcyBjb21wb25lbnRcbiAgICB0aGlzLmFjY291bnROYW1lcyA9IHRoaXMudXNlckNob29zZXJEYXRhLnByZVNlbGVjdGlvbnMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy5nZXREYXRhKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIEV2ZW50c1xuICBzZWxlY3RVc2VyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jbGlja2FibGUpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCBkYXRhOiBVc2VyQ2hvb3NlckRhdGEgPSB7XG4gICAgICAuLi50aGlzLnVzZXJDaG9vc2VyRGF0YSxcblxuICAgICAgdXNlcnM6IHRoaXMudXNlcnMsXG4gICAgICBwaG90b3M6IHRoaXMucGhvdG9zLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVzZXJDaG9vc2VyQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBkYXRhXG4gICAgfSlcbiAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgIC5zdWJzY3JpYmUoKHNlbGVjdGVkOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKCFzZWxlY3RlZCkgeyByZXR1cm47IH1cbiAgICAgIFxuICAgICAgdGhpcy5hY2NvdW50TmFtZXMgPSBBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/XG4gICAgICAgIHNlbGVjdGVkIDpcbiAgICAgICAgWyBzZWxlY3RlZCBdO1xuXG4gICAgICAvLyBPdmVyd3JpdGUgd2hhdCBtYXkgaGF2ZSBiZWVuIHBhc3NlZCBpbiwgZm9yIHN1YnNlcXVlbnQgbGF1bmNoZXMgb2YgVXNlckNob29zZXJDb21wb25lbnQgLSBvdGhlcndpc2UgaXQganVzdCBrZWVwcyBnZXR0aW5nIGZlZCBzdGFsZSBkYXRhXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgICB0aGlzLnVzZXJzU2VsZWN0ZWQuZW1pdChzZWxlY3RlZCk7XG4gICAgfSk7XG4gIH1cblxuICB1blNlbGVjdFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hY2NvdW50TmFtZXMuZmluZEluZGV4KGEgPT4gYSA9PT0gYWNjb3VudE5hbWUpO1xuICAgIHRoaXMuYWNjb3VudE5hbWVzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YS5wcmVTZWxlY3Rpb25zLmFjY291bnROYW1lcyA9IHRoaXMuYWNjb3VudE5hbWVzO1xuXG4gICAgdGhpcy51c2VyVW5TZWxlY3RlZC5lbWl0KGFjY291bnROYW1lKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gVXRpbGl0aWVzXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiB2b2lkIHtcbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMgP1xuICAgICAgICAvLyBVc2VycyB3ZXJlIHBhc3NlZCBpblxuICAgICAgICBvZih0aGlzLnVzZXJDaG9vc2VyRGF0YSEudXNlcnMpIDpcbiAgICAgICAgLy8gVXNlcnMgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKGZhbHNlLCB0aGlzLnVzZXJDaG9vc2VyRGF0YSEuaW5jbHVkZURpc2FibGVkVXNlcnMsIHRoaXMudXNlckNob29zZXJEYXRhIS5wYXJlbnRPdSksXG5cbiAgICAgIHRoaXMudXNlckNob29zZXJEYXRhIS5ncm91cHMgP1xuICAgICAgICAvLyBHcm91cHMgd2VyZSBwYXNzZWQgaW5cbiAgICAgICAgb2YodGhpcy51c2VyQ2hvb3NlckRhdGEhLmdyb3VwcykgOlxuICAgICAgICAvLyBHcm91cHMgbmVlZCB0byBiZSByZXRyaWV2ZWRcbiAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldEdyb3Vwcyh0aGlzLnVzZXJDaG9vc2VyRGF0YSEucGFyZW50T3UpLFxuXG4gICAgICB0aGlzLnVzZXJDaG9vc2VyRGF0YSEucGhvdG9zID9cbiAgICAgICAgLy8gUGhvdG9zIHdlcmUgcGFzc2VkIGluXG4gICAgICAgIG9mKHRoaXMudXNlckNob29zZXJEYXRhIS5waG90b3MpIDpcbiAgICAgICAgLy8gUGhvdG9zIG5lZWQgdG8gYmUgcmV0cmlldmVkXG4gICAgICAgIHRoaXMuc2hhcmVQb2ludFNlcnZpY2UuZ2V0UGhvdG9zKClcbiAgICBdKVxuICAgICAgLnN1YnNjcmliZSgoW3VzZXJzLCBncm91cHMsIHBob3Rvc10pID0+IHtcbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzO1xuICAgICAgICB0aGlzLmdyb3VwcyA9IGdyb3VwcztcbiAgICAgICAgdGhpcy5waG90b3MgPSBwaG90b3M7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IFVzZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnVzZXJzPy5maW5kKHUgPT4gdS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpID09PSBhY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIGdldEdyb3VwKGFjY291bnROYW1lOiBzdHJpbmcpOiBVc2VyT3JHcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzPy5maW5kKGcgPT4gZy5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpID09PSBhY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIGdldFBob3RvKGFjY291bnROYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIoYWNjb3VudE5hbWUpO1xuICAgIGlmICghdXNlcikgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgICByZXR1cm4gdGhpcy5waG90b3M/LmZpbmQocCA9PlxuICAgICAgKHAuZW1wbG95ZWVOdW1iZXIgJiYgcC5lbXBsb3llZU51bWJlci50b1N0cmluZygpID09PSB1c2VyLmVtcGxveWVlTnVtYmVyKSB8fFxuICAgICAgcC5hY2NvdW50TmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICBwLmRpc3BsYXlOYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHAudGl0bGU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKVxuICAgICk/LmVuY29kZWRBYnNVcmw7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59IiwiXG48IS0tIEluIE1pY3Jvc29mdCBFZGdlLCBzZWxlY3RVc2VyKCkgbmV2ZXIgZ2V0cyBjYWxsZWQgaWYgdGhlIGlucHV0IGZpZWxkcyBhcmUgZGlzYWJsZWRcblNvLi4uIEknbSBkeW5hbWljYWxseSBzZXR0aW5nIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eSBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUgYnJvd3NlciBpcyBFZGdlLlxuSXQncyBkZWZpbml0ZWx5IGEgYmV0dGVyIGV4cGVyaWVuY2UgaWYgdGhlIGZpZWxkIElTIGRpc2FibGVkLlxuT3RoZXJ3aXNlLCBpdCdzIGNvbmZ1c2luZyAtIGVzcGVjaWFsbHkgYmVjYXVzZSBFZGdlIGlzIFNPIFNMT1cgdG8gZGlzcGxheSB0aGUgcmVzdWx0aW5nIGRpYWxvZyB3aW5kb3cuXG4tLT5cbjwhLS0gVXBkYXRlIDgvMjQvMjAyMzpcblRoZSBhYm92ZSBwcm9ibGVtIGFsc28gZXhpc3RzIGluIENocm9tZSBub3cuXG5TbyBpbnN0ZWFkIG9mIGR5bmFtaWNhbGx5IHNldHRpbmcgW2Rpc2FibGVkXSBiYXNlZCBvbiBicm93c2VyIHR5cGUsXG5JJ20gYXBwbHlpbmcgQ1NTIHRvIHN1cHByZXNzIG1vdXNlIGV2ZW50cyBvbiB0aGUgaW5wdXQgLSB0aHVzIG1ha2luZyBpdCBidWJibGUgdXAgdG8gdGhlIHBhcmVudCBjb250cm9sLCB3aGljaCByZXNwb25kcyB0aGUgd2F5IHdlIHdhbnQvXG4tLT5cblxuQGlmICh1c2VycyAmJiBwaG90b3MpIHtcbiAgPGRpdiAoY2xpY2spPVwic2VsZWN0VXNlcigpXCIgW2NsYXNzLmNsaWNrYWJsZV09XCJjbGlja2FibGVcIj5cbiAgICBAaWYgKGFjY291bnROYW1lcz8ubGVuZ3RoKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIFtjbGFzcy5ncmlkXT1cImFjY291bnROYW1lcy5sZW5ndGggPiAxXCJcbiAgICAgICAgW2NsYXNzLnRocmVlXT1cImFjY291bnROYW1lcy5sZW5ndGggPiAyXCJcbiAgICAgICAgW2NsYXNzLmZvdXJdPVwiYWNjb3VudE5hbWVzLmxlbmd0aCA+IDNcIlxuICAgICAgICBbY2xhc3MuZml2ZV09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gNFwiPlxuICAgICAgICBAZm9yIChhY2NvdW50TmFtZSBvZiBhY2NvdW50TmFtZXM7IHRyYWNrIGFjY291bnROYW1lOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyXCI+XG4gICAgICAgICAgICA8IS0tPGltZyAqbmdJZj1cImFjY291bnROYW1lICYmIGVtcFV0aWxzLmdldEVtcGxveWVlKGFjY291bnROYW1lKVwiIGFsdD1cIlwiIFtzcmNdPVwiZW1wVXRpbHMuZ2V0RW1wbG95ZWUoYWNjb3VudE5hbWUpIHwgZW1wbG95ZWVQaG90b1VybDpjYWNoZVNlcnZpY2UucGhvdG9zXCI+LS0+XG4gICAgICAgICAgICBAaWYgKGdldFBob3RvKGFjY291bnROYW1lKSkge1xuICAgICAgICAgICAgICA8aW1nIG1hdExpc3RJdGVtQXZhdGFyIGFsdD1cIlwiIFtzcmNdPVwiZ2V0UGhvdG8oYWNjb3VudE5hbWUpXCI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGdldEdyb3VwKGFjY291bnROYW1lKSkge1xuICAgICAgICAgICAgICA8bWF0LWljb24+Z3JvdXA8L21hdC1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8IS0tIFtkaXNhYmxlZF09XCIhaXNFZGdlXCIgLS0+XG4gICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBkaXNhYmxlZCBbcGxhY2Vob2xkZXJdPVwiaSA9PT0gMCA/IHBsYWNlaG9sZGVyIDogJydcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXRVc2VyKGFjY291bnROYW1lKSA/IGdldFVzZXIoYWNjb3VudE5hbWUpPy5kaXNwbGF5TmFtZSA6IGdldEdyb3VwKGFjY291bnROYW1lKSA/IGdldEdyb3VwKGFjY291bnROYW1lKT8uZGlzcGxheU5hbWUgOiBhY2NvdW50TmFtZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdW5TZWxlY3RVc2VyKGFjY291bnROYW1lKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImNsb3NlXCIvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZGlzYWJsZWQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+IDwhLS0gW2Rpc2FibGVkXT1cIiFpc0VkZ2VcIiAtLT5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgfVxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiLz5cbn0iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9jb21wb25lbnRzL3VzZXItZm9ybS1maWVsZC91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeS9ndWkvc3JjL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLDJDQUEyQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFPOUUsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQU1FLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hELHNCQUFpQixHQUFH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QUFFLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFtQjtRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFDLE9BQU8sU0FBUyxDQUFDO1FBQUMsQ0FBQztRQUVoQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNCLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDekUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRTtZQUNsRSxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQy9ELENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FDMUQsRUFBRSxhQUFhLENBQUM7SUFDbkIsQ0FBQzs4R0E5SFUsc0JBQXNCO2tHQUF0QixzQkFBc0IsbWpCQ2hCbkMseTVFQWdEQzs7MkZEaENZLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxlQUFlOzhCQVdmLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIsIFVzZXJPckdyb3VwIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xyXG5pbXBvcnQgeyBQaG90b0l0ZW0sIFNoYXJlUG9pbnRTZXJ2aWNlIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NoYXJlcG9pbnQnO1xyXG5cclxuaW1wb3J0IHsgVXNlckNob29zZXJEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvdXNlci1jaG9vc2VyLWRhdGEnO1xyXG5cclxuaW1wb3J0IHsgVXNlckNob29zZXJDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLWNob29zZXIvdXNlci1jaG9vc2VyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLXVzZXItZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vI3JlZ2lvbiBGaWVsZHNcclxuICAvLyNyZWdpb24gU2VydmljZXNcclxuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG4gIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZSA9IGluamVjdChBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlKTtcclxuICBwcml2YXRlIHNoYXJlUG9pbnRTZXJ2aWNlID0gaW5qZWN0KFNoYXJlUG9pbnRTZXJ2aWNlKTtcclxuICAvLyNlbmRyZWdpb25cclxuICBAT3V0cHV0KCkgdXNlcnNTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgc3RyaW5nW10+KCk7IC8vIHN0cmluZyBmb3IgU2luZ2xlIG1vZGUsIHN0cmluZ1tdIGZvciBtdWx0aVxyXG4gIEBPdXRwdXQoKSB1c2VyVW5TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHBsYWNlaG9sZGVyID0gaW5wdXQoJ1NlbGVjdCBVc2VyKHMpJyk7XHJcbiAgY2xpY2thYmxlID0gaW5wdXQodHJ1ZSk7XHJcbiAgdXNlckNob29zZXJEYXRhID0gaW5wdXQucmVxdWlyZWQ8VXNlckNob29zZXJEYXRhPigpO1xyXG4gIF91c2VyQ2hvb3NlckRhdGEhOiBVc2VyQ2hvb3NlckRhdGE7XHJcblxyXG4gIGFjY291bnROYW1lczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgdXNlcnM/OiBVc2VyW107XHJcbiAgZ3JvdXBzPzogVXNlck9yR3JvdXBbXTtcclxuICBwaG90b3M/OiBQaG90b0l0ZW1bXTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFByb3BlcnRpZXNcclxuICAvKmdldCBpc0VkZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID4gLTE7XHJcbiAgfSovXHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgXHJcbiAgLy8jcmVnaW9uIExpZmVjeWNsZVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXNlckNob29zZXJEYXRhID0ge1xyXG4gICAgICAuLi5uZXcgVXNlckNob29zZXJEYXRhKCksXHJcbiAgICAgIC4uLnRoaXMudXNlckNob29zZXJEYXRhKClcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB1c2VycyBoYXZlIGJlZW4gcHJlLXNlbGVjdGVkIGluIHRoZSBjb25maWcsIHN0b3JlIHRob3NlIGluIGFjY291bnROYW1lcywgd2hpY2ggZHJpdmVzIHRoZSBVSSBvZiB0aGlzIGNvbXBvbmVudFxyXG4gICAgdGhpcy5hY2NvdW50TmFtZXMgPSB0aGlzLl91c2VyQ2hvb3NlckRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXM7XHJcblxyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gRXZlbnRzXHJcbiAgc2VsZWN0VXNlcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jbGlja2FibGUoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICBjb25zdCBkYXRhOiBVc2VyQ2hvb3NlckRhdGEgPSB7XHJcbiAgICAgIC4uLnRoaXMuX3VzZXJDaG9vc2VyRGF0YSxcclxuXHJcbiAgICAgIHVzZXJzOiB0aGlzLnVzZXJzLFxyXG4gICAgICBwaG90b3M6IHRoaXMucGhvdG9zLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVzZXJDaG9vc2VyQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRhdGFcclxuICAgIH0pXHJcbiAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQ6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XHJcbiAgICAgIGlmICghc2VsZWN0ZWQpIHsgcmV0dXJuOyB9XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmFjY291bnROYW1lcyA9IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWQpID9cclxuICAgICAgICBzZWxlY3RlZCA6XHJcbiAgICAgICAgWyBzZWxlY3RlZCBdO1xyXG5cclxuICAgICAgLy8gT3ZlcndyaXRlIHdoYXQgbWF5IGhhdmUgYmVlbiBwYXNzZWQgaW4sIGZvciBzdWJzZXF1ZW50IGxhdW5jaGVzIG9mIFVzZXJDaG9vc2VyQ29tcG9uZW50IC0gb3RoZXJ3aXNlIGl0IGp1c3Qga2VlcHMgZ2V0dGluZyBmZWQgc3RhbGUgZGF0YVxyXG4gICAgICB0aGlzLl91c2VyQ2hvb3NlckRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXMgPSB0aGlzLmFjY291bnROYW1lcztcclxuXHJcbiAgICAgIHRoaXMudXNlcnNTZWxlY3RlZC5lbWl0KHNlbGVjdGVkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5TZWxlY3RVc2VyKGFjY291bnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hY2NvdW50TmFtZXMuZmluZEluZGV4KGEgPT4gYSA9PT0gYWNjb3VudE5hbWUpO1xyXG4gICAgdGhpcy5hY2NvdW50TmFtZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcbiAgICB0aGlzLl91c2VyQ2hvb3NlckRhdGEucHJlU2VsZWN0aW9ucy5hY2NvdW50TmFtZXMgPSB0aGlzLmFjY291bnROYW1lcztcclxuXHJcbiAgICB0aGlzLnVzZXJVblNlbGVjdGVkLmVtaXQoYWNjb3VudE5hbWUpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIHByaXZhdGUgZ2V0RGF0YSgpOiB2b2lkIHtcclxuICAgIGZvcmtKb2luKFtcclxuICAgICAgdGhpcy5fdXNlckNob29zZXJEYXRhIS51c2VycyA/XHJcbiAgICAgICAgLy8gVXNlcnMgd2VyZSBwYXNzZWQgaW5cclxuICAgICAgICBvZih0aGlzLl91c2VyQ2hvb3NlckRhdGEhLnVzZXJzKSA6XHJcbiAgICAgICAgLy8gVXNlcnMgbmVlZCB0byBiZSByZXRyaWV2ZWRcclxuICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoZmFsc2UsIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEuaW5jbHVkZURpc2FibGVkVXNlcnMsIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEucGFyZW50T3UpLFxyXG5cclxuICAgICAgdGhpcy5fdXNlckNob29zZXJEYXRhIS5ncm91cHMgP1xyXG4gICAgICAgIC8vIEdyb3VwcyB3ZXJlIHBhc3NlZCBpblxyXG4gICAgICAgIG9mKHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEuZ3JvdXBzKSA6XHJcbiAgICAgICAgLy8gR3JvdXBzIG5lZWQgdG8gYmUgcmV0cmlldmVkXHJcbiAgICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldEdyb3Vwcyh0aGlzLl91c2VyQ2hvb3NlckRhdGEhLnBhcmVudE91KSxcclxuXHJcbiAgICAgIHRoaXMuX3VzZXJDaG9vc2VyRGF0YSEucGhvdG9zID9cclxuICAgICAgICAvLyBQaG90b3Mgd2VyZSBwYXNzZWQgaW5cclxuICAgICAgICBvZih0aGlzLl91c2VyQ2hvb3NlckRhdGEhLnBob3RvcykgOlxyXG4gICAgICAgIC8vIFBob3RvcyBuZWVkIHRvIGJlIHJldHJpZXZlZFxyXG4gICAgICAgIHRoaXMuc2hhcmVQb2ludFNlcnZpY2UuZ2V0UGhvdG9zKClcclxuICAgIF0pXHJcbiAgICAgIC5zdWJzY3JpYmUoKFt1c2VycywgZ3JvdXBzLCBwaG90b3NdKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBzID0gZ3JvdXBzO1xyXG4gICAgICAgIHRoaXMucGhvdG9zID0gcGhvdG9zO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXIoYWNjb3VudE5hbWU6IHN0cmluZyk6IFVzZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlcnM/LmZpbmQodSA9PiB1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JvdXAoYWNjb3VudE5hbWU6IHN0cmluZyk6IFVzZXJPckdyb3VwIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmdyb3Vwcz8uZmluZChnID0+IGcuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQaG90byhhY2NvdW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIoYWNjb3VudE5hbWUpO1xyXG4gICAgaWYgKCF1c2VyKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5waG90b3M/LmZpbmQocCA9PlxyXG4gICAgICAocC5lbXBsb3llZU51bWJlciAmJiBwLmVtcGxveWVlTnVtYmVyLnRvU3RyaW5nKCkgPT09IHVzZXIuZW1wbG95ZWVOdW1iZXIpIHx8XHJcbiAgICAgIHAuYWNjb3VudE5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXIuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKSB8fFxyXG4gICAgICBwLmRpc3BsYXlOYW1lPy50b0xvd2VyQ2FzZSgpID09PSB1c2VyLmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkgfHxcclxuICAgICAgcC50aXRsZT8udG9Mb3dlckNhc2UoKSA9PT0gdXNlci5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpXHJcbiAgICApPy5lbmNvZGVkQWJzVXJsO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufSIsIlxyXG48IS0tIEluIE1pY3Jvc29mdCBFZGdlLCBzZWxlY3RVc2VyKCkgbmV2ZXIgZ2V0cyBjYWxsZWQgaWYgdGhlIGlucHV0IGZpZWxkcyBhcmUgZGlzYWJsZWRcclxuU28uLi4gSSdtIGR5bmFtaWNhbGx5IHNldHRpbmcgdGhlIGRpc2FibGVkIHByb3BlcnR5IGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBicm93c2VyIGlzIEVkZ2UuXHJcbkl0J3MgZGVmaW5pdGVseSBhIGJldHRlciBleHBlcmllbmNlIGlmIHRoZSBmaWVsZCBJUyBkaXNhYmxlZC5cclxuT3RoZXJ3aXNlLCBpdCdzIGNvbmZ1c2luZyAtIGVzcGVjaWFsbHkgYmVjYXVzZSBFZGdlIGlzIFNPIFNMT1cgdG8gZGlzcGxheSB0aGUgcmVzdWx0aW5nIGRpYWxvZyB3aW5kb3cuXHJcbi0tPlxyXG48IS0tIFVwZGF0ZSA4LzI0LzIwMjM6XHJcblRoZSBhYm92ZSBwcm9ibGVtIGFsc28gZXhpc3RzIGluIENocm9tZSBub3cuXHJcblNvIGluc3RlYWQgb2YgZHluYW1pY2FsbHkgc2V0dGluZyBbZGlzYWJsZWRdIGJhc2VkIG9uIGJyb3dzZXIgdHlwZSxcclxuSSdtIGFwcGx5aW5nIENTUyB0byBzdXBwcmVzcyBtb3VzZSBldmVudHMgb24gdGhlIGlucHV0IC0gdGh1cyBtYWtpbmcgaXQgYnViYmxlIHVwIHRvIHRoZSBwYXJlbnQgY29udHJvbCwgd2hpY2ggcmVzcG9uZHMgdGhlIHdheSB3ZSB3YW50L1xyXG4tLT5cclxuXHJcbkBpZiAodXNlcnMgJiYgcGhvdG9zKSB7XHJcbiAgPGRpdiAoY2xpY2spPVwic2VsZWN0VXNlcigpXCIgW2NsYXNzLmNsaWNrYWJsZV09XCJjbGlja2FibGUoKVwiPlxyXG4gICAgQGlmIChhY2NvdW50TmFtZXMubGVuZ3RoKSB7XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBbY2xhc3MuZ3JpZF09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgW2NsYXNzLnRocmVlXT1cImFjY291bnROYW1lcy5sZW5ndGggPiAyXCJcclxuICAgICAgICBbY2xhc3MuZm91cl09XCJhY2NvdW50TmFtZXMubGVuZ3RoID4gM1wiXHJcbiAgICAgICAgW2NsYXNzLmZpdmVdPVwiYWNjb3VudE5hbWVzLmxlbmd0aCA+IDRcIj5cclxuICAgICAgICBAZm9yIChhY2NvdW50TmFtZSBvZiBhY2NvdW50TmFtZXM7IHRyYWNrIGFjY291bnROYW1lOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJcIj5cclxuICAgICAgICAgICAgPCEtLTxpbWcgKm5nSWY9XCJhY2NvdW50TmFtZSAmJiBlbXBVdGlscy5nZXRFbXBsb3llZShhY2NvdW50TmFtZSlcIiBhbHQ9XCJcIiBbc3JjXT1cImVtcFV0aWxzLmdldEVtcGxveWVlKGFjY291bnROYW1lKSB8IGVtcGxveWVlUGhvdG9Vcmw6Y2FjaGVTZXJ2aWNlLnBob3Rvc1wiPi0tPlxyXG4gICAgICAgICAgICBAaWYgKGdldFBob3RvKGFjY291bnROYW1lKSkge1xyXG4gICAgICAgICAgICAgIDxpbWcgbWF0TGlzdEl0ZW1BdmF0YXIgYWx0PVwiXCIgW3NyY109XCJnZXRQaG90byhhY2NvdW50TmFtZSlcIj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGdldEdyb3VwKGFjY291bnROYW1lKSkge1xyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5ncm91cDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIDwhLS0gW2Rpc2FibGVkXT1cIiFpc0VkZ2VcIiAtLT5cclxuICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZGlzYWJsZWQgW3BsYWNlaG9sZGVyXT1cImkgPT09IDAgPyBwbGFjZWhvbGRlcigpIDogJydcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFVzZXIoYWNjb3VudE5hbWUpID8gZ2V0VXNlcihhY2NvdW50TmFtZSk/LmRpc3BsYXlOYW1lIDogZ2V0R3JvdXAoYWNjb3VudE5hbWUpID8gZ2V0R3JvdXAoYWNjb3VudE5hbWUpPy5kaXNwbGF5TmFtZSA6IGFjY291bnROYW1lXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHVuU2VsZWN0VXNlcihhY2NvdW50TmFtZSlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImNsb3NlXCIvPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IGRpc2FibGVkIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCI+IDwhLS0gW2Rpc2FibGVkXT1cIiFpc0VkZ2VcIiAtLT5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufSBAZWxzZSB7XHJcbiAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIi8+XHJcbn0iXX0=
|
|
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
93
93
|
}, {
|
|
94
94
|
type: SkipSelf
|
|
95
95
|
}] }] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnkvZ3VpL3NyYy9ndWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUE0QmhHLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxTQUFTO1lBQ25CLFNBQVMsRUFBRTtnQkFDVCxzQkFBc0I7Z0JBQ3RCLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQzdDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFvQyxZQUF1QjtRQUN6RCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkVBQTZFLENBQUMsQ0FBQztRQUNuRixDQUFDO0lBQ0gsQ0FBQzs4R0FoQlUsU0FBUzsrR0FBVCxTQUFTLGlCQXhCbEIsb0JBQW9CO1lBQ3BCLHNCQUFzQixhQUd0QixZQUFZO1lBQ1osbUJBQW1CO1lBRW5CLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxnQkFBZ0IsYUFHaEIsb0JBQW9CO1lBQ3BCLHNCQUFzQjsrR0FHYixTQUFTLFlBcEJsQixZQUFZO1lBQ1osbUJBQW1CO1lBRW5CLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxnQkFBZ0I7OzJGQU9QLFNBQVM7a0JBMUJyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUVuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtpQkFDRjs7MEJBWWMsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IFNlcnZpY2VDb25maWcsIEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XHJcblxyXG5pbXBvcnQgeyBVc2VyQ2hvb3NlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWNob29zZXIvdXNlci1jaG9vc2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1mb3JtLWZpZWxkL3VzZXItZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFVzZXJDaG9vc2VyQ29tcG9uZW50LFxyXG4gICAgVXNlckZvcm1GaWVsZENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVXNlckNob29zZXJDb21wb25lbnQsXHJcbiAgICBVc2VyRm9ybUZpZWxkQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3VpTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFNlcnZpY2VDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEd1aU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEd1aU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgICAgICB7IHByb3ZpZGU6IFNlcnZpY2VDb25maWcsIHVzZVZhbHVlOiBjb25maWcgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBHdWlNb2R1bGUpIHtcclxuICAgIGlmIChwYXJlbnRNb2R1bGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdBY3RpdmVEaXJlY3RvcnlHdWlNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, inject,
|
|
1
|
+
import { Component, inject, input } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
3
|
import { ConfirmationComponent } from '@cleavelandprice/ngx-lib/dialog';
|
|
4
4
|
import { AuthenticationService } from '../../services/authentication.service';
|
|
@@ -10,12 +10,15 @@ export class LoginComponent {
|
|
|
10
10
|
//#region Services
|
|
11
11
|
this.dialog = inject(MatDialog);
|
|
12
12
|
this.authenticationService = inject(AuthenticationService);
|
|
13
|
+
//#endregion
|
|
14
|
+
this.adminGroup = input();
|
|
15
|
+
this.additionalInfo = input.required();
|
|
13
16
|
}
|
|
14
17
|
login() {
|
|
15
18
|
this.dialog.open(LoginFormComponent, {
|
|
16
19
|
data: {
|
|
17
|
-
adminGroup: this.adminGroup,
|
|
18
|
-
additionalInfo: this.additionalInfo
|
|
20
|
+
adminGroup: this.adminGroup(),
|
|
21
|
+
additionalInfo: this.additionalInfo()
|
|
19
22
|
}
|
|
20
23
|
});
|
|
21
24
|
}
|
|
@@ -31,14 +34,10 @@ export class LoginComponent {
|
|
|
31
34
|
});
|
|
32
35
|
}
|
|
33
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LoginComponent, selector: "cp-login", inputs: { adminGroup: "adminGroup", additionalInfo: "additionalInfo" }, ngImport: i0, template: "<div id=\"user-id\">\n <!-- Logged out -->\n <!-- Logged in -->\n @if (authenticationService.authenticated) {\n <!-- With photo -->\n @if (authenticationService.authenticatedUser?.photoUrl) {\n <img\n id=\"authenticated-user-image\"\n [src]=\"authenticationService.authenticatedUser?.photoUrl\"\n matTooltip=\"Logout\"\n (click)=\"confirmLogout()\" />\n } @else {\n <!-- Without photo -->\n <mat-icon\n fontIcon=\"account_circle\"\n matTooltip=\"Logout\"\n (click)=\"confirmLogout()\">\n </mat-icon>\n }\n <!-- Name -->\n <div id=\"user-name\">\n {{ authenticationService.authenticatedUser?.displayName }}\n </div>\n } @else {\n <mat-icon\n fontIcon=\"account_circle\"\n matTooltip=\"Login\"\n (click)=\"login()\">\n </mat-icon>\n }\n</div>", styles: ["#user-id{display:flex;height:2em;padding:.3em;font-family:Verdana,Geneva,Tahoma,sans-serif}mat-icon{font-size:2em!important;height:2em!important;width:2em!important}img{border-radius:100%;width:2em;height:2em}#user-id>div{display:flex;align-items:center;height:100%;margin-left:.75em;font-size:1.15em}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LoginComponent, selector: "cp-login", inputs: { adminGroup: { classPropertyName: "adminGroup", publicName: "adminGroup", isSignal: true, isRequired: false, transformFunction: null }, additionalInfo: { classPropertyName: "additionalInfo", publicName: "additionalInfo", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div id=\"user-id\">\r\n <!-- Logged out -->\r\n <!-- Logged in -->\r\n @if (authenticationService.authenticated) {\r\n <!-- With photo -->\r\n @if (authenticationService.authenticatedUser?.photoUrl) {\r\n <img\r\n id=\"authenticated-user-image\"\r\n [src]=\"authenticationService.authenticatedUser?.photoUrl\"\r\n matTooltip=\"Logout\"\r\n (click)=\"confirmLogout()\" />\r\n } @else {\r\n <!-- Without photo -->\r\n <mat-icon\r\n fontIcon=\"account_circle\"\r\n matTooltip=\"Logout\"\r\n (click)=\"confirmLogout()\">\r\n </mat-icon>\r\n }\r\n <!-- Name -->\r\n <div id=\"user-name\">\r\n {{ authenticationService.authenticatedUser?.displayName }}\r\n </div>\r\n } @else {\r\n <mat-icon\r\n fontIcon=\"account_circle\"\r\n matTooltip=\"Login\"\r\n (click)=\"login()\">\r\n </mat-icon>\r\n }\r\n</div>", styles: ["#user-id{display:flex;height:2em;padding:.3em;font-family:Verdana,Geneva,Tahoma,sans-serif}mat-icon{font-size:2em!important;height:2em!important;width:2em!important}img{border-radius:100%;width:2em;height:2em}#user-id>div{display:flex;align-items:center;height:100%;margin-left:.75em;font-size:1.15em}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
35
38
|
}
|
|
36
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoginComponent, decorators: [{
|
|
37
40
|
type: Component,
|
|
38
|
-
args: [{ selector: 'cp-login', template: "<div id=\"user-id\">\n <!-- Logged out -->\n <!-- Logged in -->\n @if (authenticationService.authenticated) {\n <!-- With photo -->\n @if (authenticationService.authenticatedUser?.photoUrl) {\n <img\n id=\"authenticated-user-image\"\n [src]=\"authenticationService.authenticatedUser?.photoUrl\"\n matTooltip=\"Logout\"\n (click)=\"confirmLogout()\" />\n } @else {\n <!-- Without photo -->\n <mat-icon\n fontIcon=\"account_circle\"\n matTooltip=\"Logout\"\n (click)=\"confirmLogout()\">\n </mat-icon>\n }\n <!-- Name -->\n <div id=\"user-name\">\n {{ authenticationService.authenticatedUser?.displayName }}\n </div>\n } @else {\n <mat-icon\n fontIcon=\"account_circle\"\n matTooltip=\"Login\"\n (click)=\"login()\">\n </mat-icon>\n }\n</div>", styles: ["#user-id{display:flex;height:2em;padding:.3em;font-family:Verdana,Geneva,Tahoma,sans-serif}mat-icon{font-size:2em!important;height:2em!important;width:2em!important}img{border-radius:100%;width:2em;height:2em}#user-id>div{display:flex;align-items:center;height:100%;margin-left:.75em;font-size:1.15em}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
|
|
39
|
-
}]
|
|
40
|
-
|
|
41
|
-
}], additionalInfo: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24vdG9rZW4vZ3VpL3NyYy9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuL2d1aS9zcmMvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFVeEUsTUFBTSxPQUFPLGNBQWM7SUFSM0I7UUFTRSxrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVCLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBMEI5RDtJQXBCQyxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDbkMsSUFBSSxFQUFFO2dCQUNKLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN0QyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUU7U0FDdEQsQ0FBQzthQUNELFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVCVSxjQUFjO2tHQUFkLGNBQWMsd0hDZjNCLCsxQkE4Qk07OzJGRGZPLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsVUFBVTs4QkFhWCxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgJy4vbG9naW4uY29tcG9uZW50LmNzcycsXHJcbiAgICAnLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzL21hdC1pY29uLmNzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCB7XHJcbiAgLy8jcmVnaW9uIFNlcnZpY2VzXHJcbiAgcHJpdmF0ZSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuICBwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlID0gaW5qZWN0KEF1dGhlbnRpY2F0aW9uU2VydmljZSk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIEBJbnB1dCgpIGFkbWluR3JvdXAhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWRkaXRpb25hbEluZm8hOiBzdHJpbmc7XHJcblxyXG4gIGxvZ2luKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihMb2dpbkZvcm1Db21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGFkbWluR3JvdXA6IHRoaXMuYWRtaW5Hcm91cCxcclxuICAgICAgICBhZGRpdGlvbmFsSW5mbzogdGhpcy5hZGRpdGlvbmFsSW5mb1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1Mb2dvdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbG9nb3V0P2AgfVxyXG4gICAgfSlcclxuICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ1c2VyLWlkXCI+XG4gIDwhLS0gTG9nZ2VkIG91dCAtLT5cbiAgPCEtLSBMb2dnZWQgaW4gLS0+XG4gIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICA8IS0tIFdpdGggcGhvdG8gLS0+XG4gICAgQGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuYXV0aGVudGljYXRlZFVzZXI/LnBob3RvVXJsKSB7XG4gICAgICA8aW1nXG4gICAgICAgIGlkPVwiYXV0aGVudGljYXRlZC11c2VyLWltYWdlXCJcbiAgICAgICAgW3NyY109XCJhdXRoZW50aWNhdGlvblNlcnZpY2UuYXV0aGVudGljYXRlZFVzZXI/LnBob3RvVXJsXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIkxvZ291dFwiXG4gICAgICAgIChjbGljayk9XCJjb25maXJtTG9nb3V0KClcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPCEtLSBXaXRob3V0IHBob3RvIC0tPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGZvbnRJY29uPVwiYWNjb3VudF9jaXJjbGVcIlxuICAgICAgICBtYXRUb29sdGlwPVwiTG9nb3V0XCJcbiAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1Mb2dvdXQoKVwiPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICB9XG4gICAgPCEtLSBOYW1lIC0tPlxuICAgIDxkaXYgaWQ9XCJ1c2VyLW5hbWVcIj5cbiAgICAgIHt7IGF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGVkVXNlcj8uZGlzcGxheU5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPG1hdC1pY29uXG4gICAgICBmb250SWNvbj1cImFjY291bnRfY2lyY2xlXCJcbiAgICAgIG1hdFRvb2x0aXA9XCJMb2dpblwiXG4gICAgICAoY2xpY2spPVwibG9naW4oKVwiPlxuICAgIDwvbWF0LWljb24+XG4gIH1cbjwvZGl2PiJdfQ==
|
|
41
|
+
args: [{ selector: 'cp-login', template: "<div id=\"user-id\">\r\n <!-- Logged out -->\r\n <!-- Logged in -->\r\n @if (authenticationService.authenticated) {\r\n <!-- With photo -->\r\n @if (authenticationService.authenticatedUser?.photoUrl) {\r\n <img\r\n id=\"authenticated-user-image\"\r\n [src]=\"authenticationService.authenticatedUser?.photoUrl\"\r\n matTooltip=\"Logout\"\r\n (click)=\"confirmLogout()\" />\r\n } @else {\r\n <!-- Without photo -->\r\n <mat-icon\r\n fontIcon=\"account_circle\"\r\n matTooltip=\"Logout\"\r\n (click)=\"confirmLogout()\">\r\n </mat-icon>\r\n }\r\n <!-- Name -->\r\n <div id=\"user-name\">\r\n {{ authenticationService.authenticatedUser?.displayName }}\r\n </div>\r\n } @else {\r\n <mat-icon\r\n fontIcon=\"account_circle\"\r\n matTooltip=\"Login\"\r\n (click)=\"login()\">\r\n </mat-icon>\r\n }\r\n</div>", styles: ["#user-id{display:flex;height:2em;padding:.3em;font-family:Verdana,Geneva,Tahoma,sans-serif}mat-icon{font-size:2em!important;height:2em!important;width:2em!important}img{border-radius:100%;width:2em;height:2em}#user-id>div{display:flex;align-items:center;height:100%;margin-left:.75em;font-size:1.15em}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvYXV0aGVudGljYXRpb24vdG9rZW4vZ3VpL3NyYy9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuL2d1aS9zcmMvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFVeEUsTUFBTSxPQUFPLGNBQWM7SUFSM0I7UUFTRSxrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVCLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdELFlBQVk7UUFFWixlQUFVLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDN0IsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7S0FzQjNDO0lBcEJDLEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNuQyxJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN0QyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUU7U0FDdEQsQ0FBQzthQUNELFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVCVSxjQUFjO2tHQUFkLGNBQWMscVZDZjNCLDI1QkE4Qk07OzJGRGZPLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3AtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9sb2dpbi5jb21wb25lbnQuY3NzJyxcclxuICAgICcuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXMvbWF0LWljb24uY3NzJ1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IHtcclxuICAvLyNyZWdpb24gU2VydmljZXNcclxuICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xyXG4gIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgYWRtaW5Hcm91cCA9IGlucHV0PHN0cmluZz4oKTtcclxuICBhZGRpdGlvbmFsSW5mbyA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHJcbiAgbG9naW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKExvZ2luRm9ybUNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgYWRtaW5Hcm91cDogdGhpcy5hZG1pbkdyb3VwKCksXHJcbiAgICAgICAgYWRkaXRpb25hbEluZm86IHRoaXMuYWRkaXRpb25hbEluZm8oKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1Mb2dvdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7IG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbG9nb3V0P2AgfVxyXG4gICAgfSlcclxuICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ1c2VyLWlkXCI+XHJcbiAgPCEtLSBMb2dnZWQgb3V0IC0tPlxyXG4gIDwhLS0gTG9nZ2VkIGluIC0tPlxyXG4gIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgIDwhLS0gV2l0aCBwaG90byAtLT5cclxuICAgIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0ZWRVc2VyPy5waG90b1VybCkge1xyXG4gICAgICA8aW1nXHJcbiAgICAgICAgaWQ9XCJhdXRoZW50aWNhdGVkLXVzZXItaW1hZ2VcIlxyXG4gICAgICAgIFtzcmNdPVwiYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0ZWRVc2VyPy5waG90b1VybFwiXHJcbiAgICAgICAgbWF0VG9vbHRpcD1cIkxvZ291dFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1Mb2dvdXQoKVwiIC8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPCEtLSBXaXRob3V0IHBob3RvIC0tPlxyXG4gICAgICA8bWF0LWljb25cclxuICAgICAgICBmb250SWNvbj1cImFjY291bnRfY2lyY2xlXCJcclxuICAgICAgICBtYXRUb29sdGlwPVwiTG9nb3V0XCJcclxuICAgICAgICAoY2xpY2spPVwiY29uZmlybUxvZ291dCgpXCI+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICB9XHJcbiAgICA8IS0tIE5hbWUgLS0+XHJcbiAgICA8ZGl2IGlkPVwidXNlci1uYW1lXCI+XHJcbiAgICAgIHt7IGF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGVkVXNlcj8uZGlzcGxheU5hbWUgfX1cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPG1hdC1pY29uXHJcbiAgICAgIGZvbnRJY29uPVwiYWNjb3VudF9jaXJjbGVcIlxyXG4gICAgICBtYXRUb29sdGlwPVwiTG9naW5cIlxyXG4gICAgICAoY2xpY2spPVwibG9naW4oKVwiPlxyXG4gICAgPC9tYXQtaWNvbj5cclxuICB9XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
3
3
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
4
4
|
import { AuthenticationService } from '../../services/authentication.service';
|
|
@@ -12,7 +12,8 @@ import * as i6 from "@angular/material/input";
|
|
|
12
12
|
import * as i7 from "@angular/material/progress-spinner";
|
|
13
13
|
import * as i8 from "@angular/material/slide-toggle";
|
|
14
14
|
export class LoginFormComponent {
|
|
15
|
-
constructor(
|
|
15
|
+
constructor() {
|
|
16
|
+
this.#data = inject(MAT_DIALOG_DATA);
|
|
16
17
|
//#region Services
|
|
17
18
|
this.dialogRef = inject((MatDialogRef));
|
|
18
19
|
this.authenticationService = inject(AuthenticationService);
|
|
@@ -22,10 +23,11 @@ export class LoginFormComponent {
|
|
|
22
23
|
adminGroup: new FormControl(),
|
|
23
24
|
additionalInfo: new FormControl()
|
|
24
25
|
});
|
|
25
|
-
this.form.get('adminGroup')?.setValue(data.adminGroup);
|
|
26
|
-
this.form.get('additionalInfo')?.setValue(data.additionalInfo);
|
|
27
26
|
}
|
|
27
|
+
#data;
|
|
28
28
|
ngOnInit() {
|
|
29
|
+
this.form.get('adminGroup')?.setValue(this.#data.adminGroup);
|
|
30
|
+
this.form.get('additionalInfo')?.setValue(this.#data.additionalInfo);
|
|
29
31
|
this.authenticatedChangedSubscription = this.authenticationService.authenticatedChanged
|
|
30
32
|
.subscribe(this.authChangedHandler.bind(this));
|
|
31
33
|
this.authenticationErrorSubscription = this.authenticationService.authenticationError
|
|
@@ -60,14 +62,11 @@ export class LoginFormComponent {
|
|
|
60
62
|
localStorage.setItem(keyName, 'true');
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoginFormComponent, deps: [
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LoginFormComponent, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>\n @if (authenticationService.authenticating) {\n <span>Authenticating...</span>\n } @else {\n <span>Login</span>\n }\n</h2>\n\n<mat-dialog-content>\n @if (authenticationService.authenticating) {\n <div id=\"spinner\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\n </div>\n } @else if (errorMessage) {\n <div id=\"error\">\n {{ errorMessage }}\n </div>\n } @else {\n <form [formGroup]=\"form\">\n <mat-form-field>\n <input matInput formControlName=\"username\" placeholder=\"Username\" (keyup.enter)=\"authenticate()\">\n </mat-form-field>\n <mat-form-field>\n <input matInput formControlName=\"password\" type=\"password\" placeholder=\"Password\" (keyup.enter)=\"authenticate()\">\n </mat-form-field>\n @if (authenticationService.config.showRememberMeOption) {\n <mat-slide-toggle [checked]=\"!authenticationService.useSessionStorage\" (change)=\"changeTokenStorageMode($event.checked)\">\n Remember me next time\n </mat-slide-toggle>\n }\n </form>\n }\n</mat-dialog-content>\n\n@if (!authenticationService.authenticating) {\n <mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"authenticate()\"\n [disabled]=\"form.invalid\">\n <mat-icon fontIcon=\"done\"/>\n <span>OK</span>\n </button>\n <button mat-raised-button (click)=\"dialogRef.close()\">\n <mat-icon fontIcon=\"close\"/>\n <span>Cancel</span>\n </button>\n </mat-dialog-actions>\n}", styles: ["#spinner{width:100%;height:100%;display:flex;justify-content:center;align-items:center}form{display:grid;gap:1rem}mat-dialog-actions{display:grid;justify-content:center;grid-template-columns:auto auto;gap:1rem}#error{color:red}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoginFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: LoginFormComponent, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>\r\n @if (authenticationService.authenticating) {\r\n <span>Authenticating...</span>\r\n } @else {\r\n <span>Login</span>\r\n }\r\n</h2>\r\n\r\n<mat-dialog-content>\r\n @if (authenticationService.authenticating) {\r\n <div id=\"spinner\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n } @else if (errorMessage) {\r\n <div id=\"error\">\r\n {{ errorMessage }}\r\n </div>\r\n } @else {\r\n <form [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\" (keyup.enter)=\"authenticate()\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput formControlName=\"password\" type=\"password\" placeholder=\"Password\" (keyup.enter)=\"authenticate()\">\r\n </mat-form-field>\r\n @if (authenticationService.config.showRememberMeOption) {\r\n <mat-slide-toggle [checked]=\"!authenticationService.useSessionStorage\" (change)=\"changeTokenStorageMode($event.checked)\">\r\n Remember me next time\r\n </mat-slide-toggle>\r\n }\r\n </form>\r\n }\r\n</mat-dialog-content>\r\n\r\n@if (!authenticationService.authenticating) {\r\n <mat-dialog-actions>\r\n <button mat-raised-button color=\"primary\" (click)=\"authenticate()\"\r\n [disabled]=\"form.invalid\">\r\n <mat-icon fontIcon=\"done\"/>\r\n <span>OK</span>\r\n </button>\r\n <button mat-raised-button (click)=\"dialogRef.close()\">\r\n <mat-icon fontIcon=\"close\"/>\r\n <span>Cancel</span>\r\n </button>\r\n </mat-dialog-actions>\r\n}", styles: ["#spinner{width:100%;height:100%;display:flex;justify-content:center;align-items:center}form{display:grid;gap:1rem}mat-dialog-actions{display:grid;justify-content:center;grid-template-columns:auto auto;gap:1rem}#error{color:red}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
|
|
65
67
|
}
|
|
66
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoginFormComponent, decorators: [{
|
|
67
69
|
type: Component,
|
|
68
|
-
args: [{ template: "<h2 mat-dialog-title>\n @if (authenticationService.authenticating) {\n <span>Authenticating...</span>\n } @else {\n <span>Login</span>\n }\n</h2>\n\n<mat-dialog-content>\n @if (authenticationService.authenticating) {\n <div id=\"spinner\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\n </div>\n } @else if (errorMessage) {\n <div id=\"error\">\n {{ errorMessage }}\n </div>\n } @else {\n <form [formGroup]=\"form\">\n <mat-form-field>\n <input matInput formControlName=\"username\" placeholder=\"Username\" (keyup.enter)=\"authenticate()\">\n </mat-form-field>\n <mat-form-field>\n <input matInput formControlName=\"password\" type=\"password\" placeholder=\"Password\" (keyup.enter)=\"authenticate()\">\n </mat-form-field>\n @if (authenticationService.config.showRememberMeOption) {\n <mat-slide-toggle [checked]=\"!authenticationService.useSessionStorage\" (change)=\"changeTokenStorageMode($event.checked)\">\n Remember me next time\n </mat-slide-toggle>\n }\n </form>\n }\n</mat-dialog-content>\n\n@if (!authenticationService.authenticating) {\n <mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"authenticate()\"\n [disabled]=\"form.invalid\">\n <mat-icon fontIcon=\"done\"/>\n <span>OK</span>\n </button>\n <button mat-raised-button (click)=\"dialogRef.close()\">\n <mat-icon fontIcon=\"close\"/>\n <span>Cancel</span>\n </button>\n </mat-dialog-actions>\n}", styles: ["#spinner{width:100%;height:100%;display:flex;justify-content:center;align-items:center}form{display:grid;gap:1rem}mat-dialog-actions{display:grid;justify-content:center;grid-template-columns:auto auto;gap:1rem}#error{color:red}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
|
|
69
|
-
}]
|
|
70
|
-
|
|
71
|
-
args: [MAT_DIALOG_DATA]
|
|
72
|
-
}] }] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi90b2tlbi9ndWkvc3JjL2NvbXBvbmVudHMvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuL2d1aS9zcmMvY29tcG9uZW50cy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7O0FBUzlFLE1BQU0sT0FBTyxrQkFBa0I7SUFnQjdCLFlBQXFDLElBQW1CO1FBZnhELGtCQUFrQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUFnQyxDQUFBLENBQUMsQ0FBQztRQUNyRCwwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQU03RCxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDbkIsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUUsQ0FBQztZQUN4RCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1lBQ3hELFVBQVUsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUM3QixjQUFjLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDbEMsQ0FBQyxDQUFDO1FBR0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQjthQUNwRixTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CO2FBQ2xGLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMzRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFFBQVMsRUFBRSxRQUFTLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxhQUFzQjtRQUMvQyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsR0FBUTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUM7UUFFdEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOzhHQTdEVSxrQkFBa0Isa0JBZ0JULGVBQWU7a0dBaEJ4QixrQkFBa0Isb0RDZi9CLHloREE4Q0M7OzJGRC9CWSxrQkFBa0I7a0JBUDlCLFNBQVM7OzswQkF1QkssTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IExvZ2luRm9ybURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9sb2dpbi1mb3JtLWRhdGEnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2xvZ2luLWZvcm0uY29tcG9uZW50LmNzcycsXHJcbiAgICAnLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzL21hdC1pY29uLmNzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8jcmVnaW9uIFNlcnZpY2VzXHJcbiAgcHVibGljIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8TG9naW5Gb3JtQ29tcG9uZW50Pik7XHJcbiAgcHVibGljIGF1dGhlbnRpY2F0aW9uU2VydmljZSA9IGluamVjdChBdXRoZW50aWNhdGlvblNlcnZpY2UpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBhdXRoZW50aWNhdGVkQ2hhbmdlZFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICBhdXRoZW50aWNhdGlvbkVycm9yU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB1c2VybmFtZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCBdKSxcclxuICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pLFxyXG4gICAgYWRtaW5Hcm91cDogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICBhZGRpdGlvbmFsSW5mbzogbmV3IEZvcm1Db250cm9sKClcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IExvZ2luRm9ybURhdGEpIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2FkbWluR3JvdXAnKT8uc2V0VmFsdWUoZGF0YS5hZG1pbkdyb3VwKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2FkZGl0aW9uYWxJbmZvJyk/LnNldFZhbHVlKGRhdGEuYWRkaXRpb25hbEluZm8pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWRDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuYXV0aGVudGljYXRlZENoYW5nZWRcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmF1dGhDaGFuZ2VkSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JTdWJzY3JpcHRpb24gPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGlvbkVycm9yXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5lcnJvckhhbmRsZXIuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25FcnJvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgYXV0aGVudGljYXRlKCkge1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgYWRtaW5Hcm91cCwgYWRkaXRpb25hbEluZm8gfSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmxvZ2luKHVzZXJuYW1lISwgcGFzc3dvcmQhLCBhZG1pbkdyb3VwLCBhZGRpdGlvbmFsSW5mbyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGF1dGhDaGFuZ2VkSGFuZGxlcihhdXRoZW50aWNhdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoYXV0aGVudGljYXRlZCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlcnJvckhhbmRsZXIoZXJyOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdBdXRoZW50aWNhdGlvbiBlcnJvcicsIGVycik7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGAke2Vyci5uYW1lfTogJHtlcnIuc3RhdHVzVGV4dH1gO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVG9rZW5TdG9yYWdlTW9kZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXlOYW1lID0gJ3N0b3JlVG9rZW5JblNlc3Npb24nO1xyXG5cclxuICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXlOYW1lKSkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXlOYW1lLCAndHJ1ZScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5cbiAgQGlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuYXV0aGVudGljYXRpbmcpIHtcbiAgICA8c3Bhbj5BdXRoZW50aWNhdGluZy4uLjwvc3Bhbj5cbiAgfSBAZWxzZSB7XG4gICAgPHNwYW4+TG9naW48L3NwYW4+XG4gIH1cbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0aW5nKSB7XG4gICAgPGRpdiBpZD1cInNwaW5uZXJcIj5cbiAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiLz5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgPGRpdiBpZD1cImVycm9yXCI+XG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiIHBsYWNlaG9sZGVyPVwiVXNlcm5hbWVcIiAoa2V5dXAuZW50ZXIpPVwiYXV0aGVudGljYXRlKClcIj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIiAoa2V5dXAuZW50ZXIpPVwiYXV0aGVudGljYXRlKClcIj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICBAaWYgKGF1dGhlbnRpY2F0aW9uU2VydmljZS5jb25maWcuc2hvd1JlbWVtYmVyTWVPcHRpb24pIHtcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgW2NoZWNrZWRdPVwiIWF1dGhlbnRpY2F0aW9uU2VydmljZS51c2VTZXNzaW9uU3RvcmFnZVwiIChjaGFuZ2UpPVwiY2hhbmdlVG9rZW5TdG9yYWdlTW9kZSgkZXZlbnQuY2hlY2tlZClcIj5cbiAgICAgICAgICBSZW1lbWJlciBtZSBuZXh0IHRpbWVcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgfVxuICAgIDwvZm9ybT5cbiAgfVxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbkBpZiAoIWF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGluZykge1xuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImF1dGhlbnRpY2F0ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj5cbiAgICAgIDxtYXQtaWNvbiBmb250SWNvbj1cImRvbmVcIi8+XG4gICAgICA8c3Bhbj5PSzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoKVwiPlxuICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIi8+XG4gICAgICA8c3Bhbj5DYW5jZWw8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxufSJdfQ==
|
|
70
|
+
args: [{ template: "<h2 mat-dialog-title>\r\n @if (authenticationService.authenticating) {\r\n <span>Authenticating...</span>\r\n } @else {\r\n <span>Login</span>\r\n }\r\n</h2>\r\n\r\n<mat-dialog-content>\r\n @if (authenticationService.authenticating) {\r\n <div id=\"spinner\">\r\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\"/>\r\n </div>\r\n } @else if (errorMessage) {\r\n <div id=\"error\">\r\n {{ errorMessage }}\r\n </div>\r\n } @else {\r\n <form [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\" (keyup.enter)=\"authenticate()\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput formControlName=\"password\" type=\"password\" placeholder=\"Password\" (keyup.enter)=\"authenticate()\">\r\n </mat-form-field>\r\n @if (authenticationService.config.showRememberMeOption) {\r\n <mat-slide-toggle [checked]=\"!authenticationService.useSessionStorage\" (change)=\"changeTokenStorageMode($event.checked)\">\r\n Remember me next time\r\n </mat-slide-toggle>\r\n }\r\n </form>\r\n }\r\n</mat-dialog-content>\r\n\r\n@if (!authenticationService.authenticating) {\r\n <mat-dialog-actions>\r\n <button mat-raised-button color=\"primary\" (click)=\"authenticate()\"\r\n [disabled]=\"form.invalid\">\r\n <mat-icon fontIcon=\"done\"/>\r\n <span>OK</span>\r\n </button>\r\n <button mat-raised-button (click)=\"dialogRef.close()\">\r\n <mat-icon fontIcon=\"close\"/>\r\n <span>Cancel</span>\r\n </button>\r\n </mat-dialog-actions>\r\n}", styles: ["#spinner{width:100%;height:100%;display:flex;justify-content:center;align-items:center}form{display:grid;gap:1rem}mat-dialog-actions{display:grid;justify-content:center;grid-template-columns:auto auto;gap:1rem}#error{color:red}\n", ".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}\n"] }]
|
|
71
|
+
}] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hdXRoZW50aWNhdGlvbi90b2tlbi9ndWkvc3JjL2NvbXBvbmVudHMvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuL2d1aS9zcmMvY29tcG9uZW50cy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7QUFTOUUsTUFBTSxPQUFPLGtCQUFrQjtJQVAvQjtRQVFFLFVBQUssR0FBRyxNQUFNLENBQWdCLGVBQWUsQ0FBQyxDQUFDO1FBRS9DLGtCQUFrQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUFnQyxDQUFBLENBQUMsQ0FBQztRQUNyRCwwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQU03RCxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDbkIsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUUsQ0FBQztZQUN4RCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1lBQ3hELFVBQVUsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUM3QixjQUFjLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDbEMsQ0FBQyxDQUFDO0tBOENKO0lBN0RDLEtBQUssQ0FBMEM7SUFpQi9DLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CO2FBQ3BGLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUI7YUFDbEYsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsK0JBQStCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzNFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUyxFQUFFLFFBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGtCQUFrQixDQUFDLGFBQXNCO1FBQy9DLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFRO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFnQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQztRQUV0QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7OEdBN0RVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG9EQ2YvQixxbkRBOENDOzsyRkQvQlksa0JBQWtCO2tCQVA5QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBMb2dpbkZvcm1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvbG9naW4tZm9ybS1kYXRhJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9naW4tZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9sb2dpbi1mb3JtLmNvbXBvbmVudC5jc3MnLFxyXG4gICAgJy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlcy9tYXQtaWNvbi5jc3MnXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICNkYXRhID0gaW5qZWN0PExvZ2luRm9ybURhdGE+KE1BVF9ESUFMT0dfREFUQSk7XHJcblxyXG4gIC8vI3JlZ2lvbiBTZXJ2aWNlc1xyXG4gIHB1YmxpYyBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPExvZ2luRm9ybUNvbXBvbmVudD4pO1xyXG4gIHB1YmxpYyBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcclxuICAvLyNlbmRyZWdpb25cclxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgYXV0aGVudGljYXRlZENoYW5nZWRTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgYXV0aGVudGljYXRpb25FcnJvclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdXNlcm5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sKG51bGwsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCBdKSxcclxuICAgIGFkbWluR3JvdXA6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgYWRkaXRpb25hbEluZm86IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgfSk7XHJcbiAgXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdhZG1pbkdyb3VwJyk/LnNldFZhbHVlKHRoaXMuI2RhdGEuYWRtaW5Hcm91cCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdhZGRpdGlvbmFsSW5mbycpPy5zZXRWYWx1ZSh0aGlzLiNkYXRhLmFkZGl0aW9uYWxJbmZvKTtcclxuXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWRDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuYXV0aGVudGljYXRlZENoYW5nZWRcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmF1dGhDaGFuZ2VkSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JTdWJzY3JpcHRpb24gPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGlvbkVycm9yXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5lcnJvckhhbmRsZXIuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25FcnJvclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgYXV0aGVudGljYXRlKCkge1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgYWRtaW5Hcm91cCwgYWRkaXRpb25hbEluZm8gfSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmxvZ2luKHVzZXJuYW1lISwgcGFzc3dvcmQhLCBhZG1pbkdyb3VwLCBhZGRpdGlvbmFsSW5mbyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGF1dGhDaGFuZ2VkSGFuZGxlcihhdXRoZW50aWNhdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoYXV0aGVudGljYXRlZCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlcnJvckhhbmRsZXIoZXJyOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdBdXRoZW50aWNhdGlvbiBlcnJvcicsIGVycik7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGAke2Vyci5uYW1lfTogJHtlcnIuc3RhdHVzVGV4dH1gO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVG9rZW5TdG9yYWdlTW9kZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXlOYW1lID0gJ3N0b3JlVG9rZW5JblNlc3Npb24nO1xyXG5cclxuICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXlOYW1lKSkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXlOYW1lLCAndHJ1ZScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5cclxuICBAaWYgKGF1dGhlbnRpY2F0aW9uU2VydmljZS5hdXRoZW50aWNhdGluZykge1xyXG4gICAgPHNwYW4+QXV0aGVudGljYXRpbmcuLi48L3NwYW4+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8c3Bhbj5Mb2dpbjwvc3Bhbj5cclxuICB9XHJcbjwvaDI+XHJcblxyXG48bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0aW5nKSB7XHJcbiAgICA8ZGl2IGlkPVwic3Bpbm5lclwiPlxyXG4gICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIi8+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIGlmIChlcnJvck1lc3NhZ2UpIHtcclxuICAgIDxkaXYgaWQ9XCJlcnJvclwiPlxyXG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBwbGFjZWhvbGRlcj1cIlVzZXJuYW1lXCIgKGtleXVwLmVudGVyKT1cImF1dGhlbnRpY2F0ZSgpXCI+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCIgKGtleXVwLmVudGVyKT1cImF1dGhlbnRpY2F0ZSgpXCI+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIEBpZiAoYXV0aGVudGljYXRpb25TZXJ2aWNlLmNvbmZpZy5zaG93UmVtZW1iZXJNZU9wdGlvbikge1xyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtjaGVja2VkXT1cIiFhdXRoZW50aWNhdGlvblNlcnZpY2UudXNlU2Vzc2lvblN0b3JhZ2VcIiAoY2hhbmdlKT1cImNoYW5nZVRva2VuU3RvcmFnZU1vZGUoJGV2ZW50LmNoZWNrZWQpXCI+XHJcbiAgICAgICAgICBSZW1lbWJlciBtZSBuZXh0IHRpbWVcclxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIH1cclxuICAgIDwvZm9ybT5cclxuICB9XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuQGlmICghYXV0aGVudGljYXRpb25TZXJ2aWNlLmF1dGhlbnRpY2F0aW5nKSB7XHJcbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImF1dGhlbnRpY2F0ZSgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiPlxyXG4gICAgICA8bWF0LWljb24gZm9udEljb249XCJkb25lXCIvPlxyXG4gICAgICA8c3Bhbj5PSzwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cclxuICAgICAgPG1hdC1pY29uIGZvbnRJY29uPVwiY2xvc2VcIi8+XHJcbiAgICAgIDxzcGFuPkNhbmNlbDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG59Il19
|
|
@@ -5,11 +5,10 @@ import { AuthenticationService as TokenAuthenticationService } from '@cleaveland
|
|
|
5
5
|
import { ServiceConfig } from '../model/service-config';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../model/service-config";
|
|
8
|
-
import * as i2 from "@angular/common/http";
|
|
9
8
|
export class AuthenticationService extends TokenAuthenticationService {
|
|
10
9
|
//#endregion
|
|
11
10
|
//#region Lifecycle
|
|
12
|
-
constructor(config
|
|
11
|
+
constructor(config) {
|
|
13
12
|
config = config ?? new ServiceConfig();
|
|
14
13
|
/*config = {
|
|
15
14
|
...new ServiceConfig(),
|
|
@@ -22,9 +21,8 @@ export class AuthenticationService extends TokenAuthenticationService {
|
|
|
22
21
|
// Need to force deferTokenValidation here because if a custom config was passed in, deferTokenValidation would have defaulted to false since it's the default boolean value
|
|
23
22
|
// If a custom config wasn't passed in, then deferTokenValidation would have been true from defaultConfig
|
|
24
23
|
config.deferTokenValidation = true;
|
|
25
|
-
super(config
|
|
24
|
+
super(config);
|
|
26
25
|
this.config = config;
|
|
27
|
-
this.http = http;
|
|
28
26
|
//#region Services
|
|
29
27
|
this.sharePointService = inject(SharePointService);
|
|
30
28
|
this.checkForExistingToken();
|
|
@@ -66,7 +64,7 @@ export class AuthenticationService extends TokenAuthenticationService {
|
|
|
66
64
|
}
|
|
67
65
|
});
|
|
68
66
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthenticationService, deps: [{ token: i1.ServiceConfig, optional: true }
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthenticationService, deps: [{ token: i1.ServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
68
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthenticationService, providedIn: 'root' }); }
|
|
71
69
|
}
|
|
72
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthenticationService, decorators: [{
|
|
@@ -76,5 +74,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
76
74
|
}]
|
|
77
75
|
}], ctorParameters: () => [{ type: i1.ServiceConfig, decorators: [{
|
|
78
76
|
type: Optional
|
|
79
|
-
}] }
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
}] }] });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuL2d1aS9zcmMvc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFeEUsT0FBTyxFQUVMLHFCQUFxQixJQUFJLDBCQUEwQixFQUNwRCxNQUFNLCtDQUErQyxDQUFDO0FBRXZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBS3hELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSwwQkFBMEI7SUFHbkUsWUFBWTtJQUVaLG1CQUFtQjtJQUNqQixZQUFpQyxNQUFxQjtRQUUxQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDdkM7Ozs7Ozs7WUFPSTtRQUVKLDRLQUE0SztRQUM1Syx5R0FBeUc7UUFDekcsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQTtRQUVsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFoQk8sV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUx4RCxrQkFBa0I7UUFDVixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQXNCeEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELFlBQVk7SUFFWixtQkFBbUI7SUFDVixZQUFZLENBQUMsS0FBYTtRQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQXdCLENBQUM7UUFFcEUsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTztZQUMvQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1lBQ25DLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7WUFDNUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1lBQ3RDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtTQUMzQixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTthQUMvQixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIscUVBQXFFO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0JBQzVDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFakcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDeEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F4RVUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5cclxuaW1wb3J0IHsgU2hhcmVQb2ludFNlcnZpY2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvc2hhcmVwb2ludCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEF1dGhlbnRpY2F0aW9uVG9rZW4sXHJcbiAgQXV0aGVudGljYXRpb25TZXJ2aWNlIGFzIFRva2VuQXV0aGVudGljYXRpb25TZXJ2aWNlXHJcbn0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2F1dGhlbnRpY2F0aW9uL3Rva2VuJztcclxuXHJcbmltcG9ydCB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuLi9tb2RlbC9zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblNlcnZpY2UgZXh0ZW5kcyBUb2tlbkF1dGhlbnRpY2F0aW9uU2VydmljZSB7XHJcbiAgLy8jcmVnaW9uIFNlcnZpY2VzXHJcbiAgcHJpdmF0ZSBzaGFyZVBvaW50U2VydmljZSA9IGluamVjdChTaGFyZVBvaW50U2VydmljZSk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBMaWZlY3ljbGVcclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIG92ZXJyaWRlIGNvbmZpZzogU2VydmljZUNvbmZpZykge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IGNvbmZpZyA/PyBuZXcgU2VydmljZUNvbmZpZygpO1xyXG4gICAgICAgICAgICAgICAgLypjb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLm5ldyBTZXJ2aWNlQ29uZmlnKCksXHJcbiAgICAgICAgICAgICAgICAgIC4uLmNvbmZpZyxcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gZm9yY2UgZGVmZXJUb2tlblZhbGlkYXRpb24gaGVyZSBiZWNhdXNlIGlmIGEgY3VzdG9tIGNvbmZpZyB3YXMgcGFzc2VkIGluLCBkZWZlclRva2VuVmFsaWRhdGlvbiB3b3VsZCBoYXZlIGRlZmF1bHRlZCB0byBmYWxzZSBzaW5jZSBpdCdzIHRoZSBkZWZhdWx0IGJvb2xlYW4gdmFsdWVcclxuICAgICAgICAgICAgICAgICAgLy8gSWYgYSBjdXN0b20gY29uZmlnIHdhc24ndCBwYXNzZWQgaW4sIHRoZW4gZGVmZXJUb2tlblZhbGlkYXRpb24gd291bGQgaGF2ZSBiZWVuIHRydWUgZnJvbSBkZWZhdWx0Q29uZmlnXHJcbiAgICAgICAgICAgICAgICAgIGRlZmVyVG9rZW5WYWxpZGF0aW9uOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9OyovXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gTmVlZCB0byBmb3JjZSBkZWZlclRva2VuVmFsaWRhdGlvbiBoZXJlIGJlY2F1c2UgaWYgYSBjdXN0b20gY29uZmlnIHdhcyBwYXNzZWQgaW4sIGRlZmVyVG9rZW5WYWxpZGF0aW9uIHdvdWxkIGhhdmUgZGVmYXVsdGVkIHRvIGZhbHNlIHNpbmNlIGl0J3MgdGhlIGRlZmF1bHQgYm9vbGVhbiB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgLy8gSWYgYSBjdXN0b20gY29uZmlnIHdhc24ndCBwYXNzZWQgaW4sIHRoZW4gZGVmZXJUb2tlblZhbGlkYXRpb24gd291bGQgaGF2ZSBiZWVuIHRydWUgZnJvbSBkZWZhdWx0Q29uZmlnXHJcbiAgICAgICAgICAgICAgICBjb25maWcuZGVmZXJUb2tlblZhbGlkYXRpb24gPSB0cnVlXHJcblxyXG4gICAgICAgICAgICAgICAgc3VwZXIoY29uZmlnKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRm9yRXhpc3RpbmdUb2tlbigpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFV0aWxpdGllc1xyXG4gIG92ZXJyaWRlIHZhbGlkYXRlVXNlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBqd3RIZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgZGVjb2RlZCA9IGp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbikgYXMgQXV0aGVudGljYXRpb25Ub2tlbjtcclxuXHJcbiAgICBpZiAoand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKSkge1xyXG4gICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkVXNlciA9IHtcclxuICAgICAgYWRtaW46IGRlY29kZWQucm9sZSA9PT0gJ0FkbWluJyxcclxuICAgICAgZGlzcGxheU5hbWU6IGRlY29kZWQuZGlzcGxheU5hbWUsXHJcbiAgICAgIGFjY291bnROYW1lOiBkZWNvZGVkLndpbmFjY291bnRuYW1lLFxyXG4gICAgICBkaXN0aW5ndWlzaGVkTmFtZTogZGVjb2RlZC5kaXN0aW5ndWlzaGVkTmFtZSxcclxuICAgICAgZW1wbG95ZWVOdW1iZXI6IGRlY29kZWQuZW1wbG95ZWVOdW1iZXIsXHJcbiAgICAgIG1lbWJlck9mOiBkZWNvZGVkLm1lbWJlck9mXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKHRoaXMuY29uZmlnLnRva2VuTmFtZSwgdG9rZW4pO1xyXG5cclxuICAgIHRoaXMuZ2V0UGhvdG8oKTtcclxuICAgIFxyXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRlZENoYW5nZWQuZW1pdCh0aGlzLmF1dGhlbnRpY2F0ZWQpO1xyXG5cclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuYXV0aGVudGljYXRpbmdDaGFuZ2VkLmVtaXQodGhpcy5hdXRoZW50aWNhdGluZyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBob3RvKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaGFyZVBvaW50U2VydmljZS5nZXRQaG90b3MoKVxyXG4gICAgICAuc3Vic2NyaWJlKHBob3RvcyA9PiB7XHJcbiAgICAgICAgLy8gVGhlIHVzZXIgbWF5IGhhdmUgYmVlbiBsb2dnZWQgb3V0IGJ5IHRoZSB0aW1lIHRoZSBwaG90b3MgY2FtZSBiYWNrXHJcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhlbnRpY2F0ZWRVc2VyPy5lbXBsb3llZU51bWJlcikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGhvdG8gPSBwaG90b3MuZmluZChwaWMgPT4gcGljLmVtcGxveWVlTnVtYmVyID09PSArdGhpcy5hdXRoZW50aWNhdGVkVXNlciEuZW1wbG95ZWVOdW1iZXIpO1xyXG5cclxuICAgICAgICBpZiAocGhvdG8pIHtcclxuICAgICAgICAgIHRoaXMuYXV0aGVudGljYXRlZFVzZXIucGhvdG9VcmwgPSBwaG90by5lbmNvZGVkQWJzVXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59Il19
|