@alfresco/aca-content 4.4.0-7758235643 → 4.4.0-7758921706

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.
@@ -21,77 +21,28 @@
21
21
  * You should have received a copy of the GNU Lesser General Public License
22
22
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
23
  */
24
- import { IdentityUserService, AuthenticationService } from '@alfresco/adf-core';
25
- import { Component, ViewEncapsulation } from '@angular/core';
26
- import { of } from 'rxjs';
27
- import { PeopleContentService } from '@alfresco/adf-content-services';
28
- import { map } from 'rxjs/operators';
24
+ import { Component, ViewEncapsulation, inject } from '@angular/core';
29
25
  import { CommonModule } from '@angular/common';
30
26
  import { RouterModule } from '@angular/router';
31
27
  import { MatMenuModule } from '@angular/material/menu';
32
28
  import { TranslateModule } from '@ngx-translate/core';
29
+ import { getUserProfile } from '@alfresco/aca-shared/store';
30
+ import { Store } from '@ngrx/store';
33
31
  import * as i0 from "@angular/core";
34
- import * as i1 from "@alfresco/adf-content-services";
35
- import * as i2 from "@alfresco/adf-core";
36
- import * as i3 from "@angular/common";
37
- import * as i4 from "@angular/router";
38
- import * as i5 from "@angular/material/menu";
39
- import * as i6 from "@ngx-translate/core";
32
+ import * as i1 from "@angular/common";
33
+ import * as i2 from "@angular/router";
34
+ import * as i3 from "@angular/material/menu";
35
+ import * as i4 from "@ngx-translate/core";
40
36
  export class UserInfoComponent {
41
- constructor(peopleContentService, identityUserService, authService) {
42
- this.peopleContentService = peopleContentService;
43
- this.identityUserService = identityUserService;
44
- this.authService = authService;
45
- }
46
- ngOnInit() {
47
- this.getUserInfo();
48
- }
49
- getUserInfo() {
50
- if (this.authService.isOauth()) {
51
- this.loadIdentityUserInfo();
52
- if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
53
- this.loadEcmUserInfo();
54
- }
55
- }
56
- else if (this.isEcmLoggedIn()) {
57
- this.loadEcmUserInfo();
58
- }
59
- }
60
- get isLoggedIn() {
61
- if (this.authService.isKerberosEnabled()) {
62
- return true;
63
- }
64
- return this.authService.isLoggedIn();
65
- }
66
- loadEcmUserInfo() {
67
- this.displayName$ = this.peopleContentService.getCurrentUserInfo().pipe(map((model) => this.parseDisplayName(model)));
68
- }
69
- loadIdentityUserInfo() {
70
- this.displayName$ = of(this.identityUserService.getCurrentUserInfo()).pipe(map((model) => this.parseDisplayName(model)));
71
- }
72
- parseDisplayName(model) {
73
- const result = { firstName: '', initials: '', email: '' };
74
- if (model.firstName) {
75
- result.firstName = model.firstName;
76
- result.initials = model.firstName.charAt(0).toUpperCase();
77
- }
78
- if (model.lastName) {
79
- result.firstName += ' ' + model.lastName;
80
- result.initials += model.lastName.charAt(0).toUpperCase();
81
- }
82
- if (model.email) {
83
- result.email = `${model.email}`;
84
- }
85
- return result;
86
- }
87
- isEcmLoggedIn() {
88
- return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
37
+ constructor() {
38
+ this.store = inject((Store));
39
+ this.user$ = this.store.select(getUserProfile);
89
40
  }
90
41
  }
91
- UserInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, deps: [{ token: i1.PeopleContentService }, { token: i2.IdentityUserService }, { token: i2.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
92
- UserInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserInfoComponent, isStandalone: true, selector: "app-user-info", ngImport: i0, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{'APP.TOOLTIPS.MY_PROFILE' | translate}}\">\n <button class=\"aca-user-info-button\">\n <div>{{ (displayName$ | async)?.initials }}</div>\n </button>\n <div class=\"aca-user-info-name-email\">\n <div>{{ (displayName$ | async)?.firstName }}</div>\n <div>{{ (displayName$ | async)?.email }}</div>\n </div>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-name-email{line-height:24px;margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
42
+ UserInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ UserInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserInfoComponent, isStandalone: true, selector: "app-user-info", ngImport: i0, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{ 'APP.TOOLTIPS.MY_PROFILE' | translate }}\">\n <ng-container *ngIf=\"user$ | async as user\">\n <button class=\"aca-user-info-button\">\n <div>{{ user.initials || 'U' }}</div>\n </button>\n <div class=\"aca-user-info-details\">\n <div>{{ user.userName }}</div>\n <div>{{ user.email }}</div>\n </div>\n </ng-container>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-details{line-height:24px;margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
93
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, decorators: [{
94
45
  type: Component,
95
- args: [{ standalone: true, imports: [CommonModule, RouterModule, MatMenuModule, TranslateModule], selector: 'app-user-info', encapsulation: ViewEncapsulation.None, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{'APP.TOOLTIPS.MY_PROFILE' | translate}}\">\n <button class=\"aca-user-info-button\">\n <div>{{ (displayName$ | async)?.initials }}</div>\n </button>\n <div class=\"aca-user-info-name-email\">\n <div>{{ (displayName$ | async)?.firstName }}</div>\n <div>{{ (displayName$ | async)?.email }}</div>\n </div>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-name-email{line-height:24px;margin-left:10px}\n"] }]
96
- }], ctorParameters: function () { return [{ type: i1.PeopleContentService }, { type: i2.IdentityUserService }, { type: i2.AuthenticationService }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tb24vdXNlci1pbmZvL3VzZXItaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvY29tbW9uL3VzZXItaW5mby91c2VyLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFVdEQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNVLG9CQUEwQyxFQUMxQyxtQkFBd0MsRUFDeEMsV0FBa0M7UUFGbEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGdCQUFX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M0QsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IElkZW50aXR5VXNlclNlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZW9wbGVDb250ZW50U2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWluZm8nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1pbmZvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVXNlckluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkaXNwbGF5TmFtZSQ6IE9ic2VydmFibGU8eyBmaXJzdE5hbWU6IHN0cmluZzsgaW5pdGlhbHM6IHN0cmluZzsgZW1haWw6IHN0cmluZyB9PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBlb3BsZUNvbnRlbnRTZXJ2aWNlOiBQZW9wbGVDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2U6IElkZW50aXR5VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFVzZXJJbmZvKCk7XG4gIH1cblxuICBnZXRVc2VySW5mbygpIHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5pc09hdXRoKCkpIHtcbiAgICAgIHRoaXMubG9hZElkZW50aXR5VXNlckluZm8oKTtcblxuICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNFQ01Qcm92aWRlcigpICYmIHRoaXMuYXV0aFNlcnZpY2UuaXNFY21Mb2dnZWRJbigpKSB7XG4gICAgICAgIHRoaXMubG9hZEVjbVVzZXJJbmZvKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRWNtTG9nZ2VkSW4oKSkge1xuICAgICAgdGhpcy5sb2FkRWNtVXNlckluZm8oKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5pc0tlcmJlcm9zRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaXNMb2dnZWRJbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRWNtVXNlckluZm8oKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSQgPSB0aGlzLnBlb3BsZUNvbnRlbnRTZXJ2aWNlLmdldEN1cnJlbnRVc2VySW5mbygpLnBpcGUobWFwKChtb2RlbCkgPT4gdGhpcy5wYXJzZURpc3BsYXlOYW1lKG1vZGVsKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkSWRlbnRpdHlVc2VySW5mbygpIHtcbiAgICB0aGlzLmRpc3BsYXlOYW1lJCA9IG9mKHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKSkucGlwZShtYXAoKG1vZGVsKSA9PiB0aGlzLnBhcnNlRGlzcGxheU5hbWUobW9kZWwpKSk7XG4gIH1cblxuICBwYXJzZURpc3BsYXlOYW1lKG1vZGVsOiB7IGZpcnN0TmFtZT86IHN0cmluZzsgbGFzdE5hbWU/OiBzdHJpbmc7IGVtYWlsPzogc3RyaW5nIH0pOiB7IGZpcnN0TmFtZTogc3RyaW5nOyBpbml0aWFsczogc3RyaW5nOyBlbWFpbDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHsgZmlyc3ROYW1lOiAnJywgaW5pdGlhbHM6ICcnLCBlbWFpbDogJycgfTtcbiAgICBpZiAobW9kZWwuZmlyc3ROYW1lKSB7XG4gICAgICByZXN1bHQuZmlyc3ROYW1lID0gbW9kZWwuZmlyc3ROYW1lO1xuICAgICAgcmVzdWx0LmluaXRpYWxzID0gbW9kZWwuZmlyc3ROYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAobW9kZWwubGFzdE5hbWUpIHtcbiAgICAgIHJlc3VsdC5maXJzdE5hbWUgKz0gJyAnICsgbW9kZWwubGFzdE5hbWU7XG4gICAgICByZXN1bHQuaW5pdGlhbHMgKz0gbW9kZWwubGFzdE5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIGlmIChtb2RlbC5lbWFpbCkge1xuICAgICAgcmVzdWx0LmVtYWlsID0gYCR7bW9kZWwuZW1haWx9YDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFY21Mb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5pc0VjbUxvZ2dlZEluKCkgfHwgKHRoaXMuYXV0aFNlcnZpY2UuaXNFQ01Qcm92aWRlcigpICYmIHRoaXMuYXV0aFNlcnZpY2UuaXNLZXJiZXJvc0VuYWJsZWQoKSk7XG4gIH1cbn1cbiIsIjxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImFjYS11c2VyLWluZm9cIiBbcm91dGVyTGlua109XCJbJy9wcm9maWxlJ11cIiB0aXRsZT1cInt7J0FQUC5UT09MVElQUy5NWV9QUk9GSUxFJyB8IHRyYW5zbGF0ZX19XCI+XG4gIDxidXR0b24gY2xhc3M9XCJhY2EtdXNlci1pbmZvLWJ1dHRvblwiPlxuICAgIDxkaXY+e3sgKGRpc3BsYXlOYW1lJCB8IGFzeW5jKT8uaW5pdGlhbHMgfX08L2Rpdj5cbiAgPC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJhY2EtdXNlci1pbmZvLW5hbWUtZW1haWxcIj5cbiAgICA8ZGl2Pnt7IChkaXNwbGF5TmFtZSQgfCBhc3luYyk/LmZpcnN0TmFtZSB9fTwvZGl2PlxuICAgIDxkaXY+e3sgKGRpc3BsYXlOYW1lJCB8IGFzeW5jKT8uZW1haWwgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
46
+ args: [{ standalone: true, imports: [CommonModule, RouterModule, MatMenuModule, TranslateModule], selector: 'app-user-info', encapsulation: ViewEncapsulation.None, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{ 'APP.TOOLTIPS.MY_PROFILE' | translate }}\">\n <ng-container *ngIf=\"user$ | async as user\">\n <button class=\"aca-user-info-button\">\n <div>{{ user.initials || 'U' }}</div>\n </button>\n <div class=\"aca-user-info-details\">\n <div>{{ user.userName }}</div>\n <div>{{ user.email }}</div>\n </div>\n </ng-container>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-details{line-height:24px;margin-left:10px}\n"] }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tb24vdXNlci1pbmZvL3VzZXItaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL2NvbXBvbmVudHMvY29tbW9uL3VzZXItaW5mby91c2VyLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVVwQyxNQUFNLE9BQU8saUJBQWlCO0lBUjlCO1FBU1UsVUFBSyxHQUFHLE1BQU0sQ0FBa0IsQ0FBQSxLQUFlLENBQUEsQ0FBQyxDQUFDO1FBQ3pELFVBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUMzQzs7OEdBSFksaUJBQWlCO2tHQUFqQixpQkFBaUIseUVDeEM5Qix5YkFXQSx3YkR1QlksWUFBWSx1TEFBRSxZQUFZLDhRQUFFLGFBQWEsa0xBQUUsZUFBZTsyRkFNekQsaUJBQWlCO2tCQVI3QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxZQUMzRCxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQXBwU3RvcmUsIGdldFVzZXJQcm9maWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1hdE1lbnVNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItaW5mbycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLWluZm8uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBVc2VySW5mb0NvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RvcmUgPSBpbmplY3Q8U3RvcmU8QXBwU3RvcmU+PihTdG9yZTxBcHBTdG9yZT4pO1xuICB1c2VyJCA9IHRoaXMuc3RvcmUuc2VsZWN0KGdldFVzZXJQcm9maWxlKTtcbn1cbiIsIjxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImFjYS11c2VyLWluZm9cIiBbcm91dGVyTGlua109XCJbJy9wcm9maWxlJ11cIiB0aXRsZT1cInt7ICdBUFAuVE9PTFRJUFMuTVlfUFJPRklMRScgfCB0cmFuc2xhdGUgfX1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXIkIHwgYXN5bmMgYXMgdXNlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhY2EtdXNlci1pbmZvLWJ1dHRvblwiPlxuICAgICAgPGRpdj57eyB1c2VyLmluaXRpYWxzIHx8ICdVJyB9fTwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtdXNlci1pbmZvLWRldGFpbHNcIj5cbiAgICAgIDxkaXY+e3sgdXNlci51c2VyTmFtZSB9fTwvZGl2PlxuICAgICAgPGRpdj57eyB1c2VyLmVtYWlsIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
@@ -21,80 +21,38 @@
21
21
  * You should have received a copy of the GNU Lesser General Public License
22
22
  * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
23
23
  */
24
- import { PeopleContentService } from '@alfresco/adf-content-services';
25
- import { AuthenticationService, IdentityUserService } from '@alfresco/adf-core';
26
- import { Component, Input, ViewEncapsulation } from '@angular/core';
27
- import { of } from 'rxjs';
28
- import { map } from 'rxjs/operators';
24
+ import { Component, Input, ViewEncapsulation, inject } from '@angular/core';
29
25
  import { CommonModule } from '@angular/common';
30
26
  import { MatButtonModule } from '@angular/material/button';
31
27
  import { TranslateModule } from '@ngx-translate/core';
32
28
  import { MatMenuModule } from '@angular/material/menu';
33
29
  import { ToolbarMenuItemComponent } from '@alfresco/aca-shared';
30
+ import { getUserProfile } from '@alfresco/aca-shared/store';
31
+ import { Store } from '@ngrx/store';
34
32
  import * as i0 from "@angular/core";
35
- import * as i1 from "@alfresco/adf-content-services";
36
- import * as i2 from "@alfresco/adf-core";
37
- import * as i3 from "@angular/common";
38
- import * as i4 from "@ngx-translate/core";
39
- import * as i5 from "@angular/material/button";
40
- import * as i6 from "@angular/material/menu";
33
+ import * as i1 from "@angular/common";
34
+ import * as i2 from "@ngx-translate/core";
35
+ import * as i3 from "@angular/material/button";
36
+ import * as i4 from "@angular/material/menu";
41
37
  export class UserMenuComponent {
42
- constructor(peopleContentService, identityUserService, authService) {
43
- this.peopleContentService = peopleContentService;
44
- this.identityUserService = identityUserService;
45
- this.authService = authService;
38
+ constructor() {
39
+ this.store = inject((Store));
40
+ this.user$ = this.store.select(getUserProfile);
46
41
  }
47
42
  ngOnInit() {
48
- this.getUserInfo();
49
43
  if (this.data?.items) {
50
44
  this.data.items.sort((a, b) => a.order - b.order);
51
45
  }
52
46
  }
53
- getUserInfo() {
54
- if (this.authService.isOauth()) {
55
- this.loadIdentityUserInfo();
56
- if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
57
- this.loadEcmUserInfo();
58
- }
59
- }
60
- else if (this.isEcmLoggedIn()) {
61
- this.loadEcmUserInfo();
62
- }
63
- }
64
- get isLoggedIn() {
65
- if (this.authService.isKerberosEnabled()) {
66
- return true;
67
- }
68
- return this.authService.isLoggedIn();
69
- }
70
- loadEcmUserInfo() {
71
- this.displayName$ = this.peopleContentService.getCurrentUserInfo().pipe(map((model) => this.parseDisplayName(model)));
72
- }
73
- loadIdentityUserInfo() {
74
- this.displayName$ = of(this.identityUserService.getCurrentUserInfo()).pipe(map((model) => this.parseDisplayName(model)));
75
- }
76
- parseDisplayName(model) {
77
- const result = { firstName: '', initials: '' };
78
- if (model.firstName) {
79
- result.initials = model.firstName.charAt(0).toUpperCase();
80
- }
81
- if (model.lastName) {
82
- result.initials += model.lastName.charAt(0).toUpperCase();
83
- }
84
- return result;
85
- }
86
- isEcmLoggedIn() {
87
- return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
88
- }
89
47
  }
90
- UserMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, deps: [{ token: i1.PeopleContentService }, { token: i2.IdentityUserService }, { token: i2.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
91
- UserMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserMenuComponent, isStandalone: true, selector: "aca-user-menu", inputs: { actionRef: "actionRef", data: "data" }, ngImport: i0, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (displayName$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }], encapsulation: i0.ViewEncapsulation.None });
48
+ UserMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ UserMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserMenuComponent, isStandalone: true, selector: "aca-user-menu", inputs: { actionRef: "actionRef", data: "data" }, ngImport: i0, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (user$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }], encapsulation: i0.ViewEncapsulation.None });
92
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, decorators: [{
93
51
  type: Component,
94
- args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatMenuModule, ToolbarMenuItemComponent], selector: 'aca-user-menu', encapsulation: ViewEncapsulation.None, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (displayName$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"] }]
95
- }], ctorParameters: function () { return [{ type: i1.PeopleContentService }, { type: i2.IdentityUserService }, { type: i2.AuthenticationService }]; }, propDecorators: { actionRef: [{
52
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatMenuModule, ToolbarMenuItemComponent], selector: 'aca-user-menu', encapsulation: ViewEncapsulation.None, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (user$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"] }]
53
+ }], propDecorators: { actionRef: [{
96
54
  type: Input
97
55
  }], data: [{
98
56
  type: Input
99
57
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9zaWRlbmF2L3VzZXItbWVudS91c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL3NpZGVuYXYvdXNlci1tZW51L3VzZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFVaEUsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUNVLG9CQUEwQyxFQUMxQyxtQkFBd0MsRUFDeEMsV0FBa0M7UUFGbEMseUJBQW9CLEdBQXBC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LEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxZQUN4RixlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUk7aUxBS3JDLFNBQVM7c0JBRFIsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgUGVvcGxlQ29udGVudFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlLCBJZGVudGl0eVVzZXJTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50QWN0aW9uUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBUb29sYmFyTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdhY2EtdXNlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGlzcGxheU5hbWUkOiBPYnNlcnZhYmxlPHsgZmlyc3ROYW1lOiBzdHJpbmc7IGluaXRpYWxzOiBzdHJpbmcgfT47XG4gIEBJbnB1dCgpXG4gIGFjdGlvblJlZjogQ29udGVudEFjdGlvblJlZjtcbiAgQElucHV0KClcbiAgZGF0YTogeyBpdGVtczogYW55W10gfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBlb3BsZUNvbnRlbnRTZXJ2aWNlOiBQZW9wbGVDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2U6IElkZW50aXR5VXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFVzZXJJbmZvKCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uaXRlbXMpIHtcbiAgICAgIHRoaXMuZGF0YS5pdGVtcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0VXNlckluZm8oKSB7XG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNPYXV0aCgpKSB7XG4gICAgICB0aGlzLmxvYWRJZGVudGl0eVVzZXJJbmZvKCk7XG5cbiAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmlzRUNNUHJvdmlkZXIoKSAmJiB0aGlzLmF1dGhTZXJ2aWNlLmlzRWNtTG9nZ2VkSW4oKSkge1xuICAgICAgICB0aGlzLmxvYWRFY21Vc2VySW5mbygpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0VjbUxvZ2dlZEluKCkpIHtcbiAgICAgIHRoaXMubG9hZEVjbVVzZXJJbmZvKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNLZXJiZXJvc0VuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmlzTG9nZ2VkSW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVjbVVzZXJJbmZvKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheU5hbWUkID0gdGhpcy5wZW9wbGVDb250ZW50U2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS5waXBlKG1hcCgobW9kZWwpID0+IHRoaXMucGFyc2VEaXNwbGF5TmFtZShtb2RlbCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZElkZW50aXR5VXNlckluZm8oKSB7XG4gICAgdGhpcy5kaXNwbGF5TmFtZSQgPSBvZih0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkpLnBpcGUobWFwKChtb2RlbCkgPT4gdGhpcy5wYXJzZURpc3BsYXlOYW1lKG1vZGVsKSkpO1xuICB9XG5cbiAgcGFyc2VEaXNwbGF5TmFtZShtb2RlbDogeyBmaXJzdE5hbWU/OiBzdHJpbmc7IGxhc3ROYW1lPzogc3RyaW5nIH0pOiB7IGZpcnN0TmFtZTogc3RyaW5nOyBpbml0aWFsczogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHsgZmlyc3ROYW1lOiAnJywgaW5pdGlhbHM6ICcnIH07XG4gICAgaWYgKG1vZGVsLmZpcnN0TmFtZSkge1xuICAgICAgcmVzdWx0LmluaXRpYWxzID0gbW9kZWwuZmlyc3ROYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICBpZiAobW9kZWwubGFzdE5hbWUpIHtcbiAgICAgIHJlc3VsdC5pbml0aWFscyArPSBtb2RlbC5sYXN0TmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFY21Mb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5pc0VjbUxvZ2dlZEluKCkgfHwgKHRoaXMuYXV0aFNlcnZpY2UuaXNFQ01Qcm92aWRlcigpICYmIHRoaXMuYXV0aFNlcnZpY2UuaXNLZXJiZXJvc0VuYWJsZWQoKSk7XG4gIH1cbn1cbiIsIjxidXR0b24gbWF0LWJ1dHRvblxuICBjbGFzcz1cImFjYS11c2VyLW1lbnUtYnV0dG9uXCJcbiAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYXBwLXVzZXItbWVudS1idXR0b25cIlxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gIHRpdGxlPVwie3snQVBQLlRPT0xUSVBTLk9QVElPTlNfU0VUVElOR1MnIHwgdHJhbnNsYXRlfX1cIlxuPlxuICA8ZGl2Pnt7IChkaXNwbGF5TmFtZSQgfCBhc3luYyk/LmluaXRpYWxzIH19PC9kaXY+XG48L2J1dHRvbj5cblxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGEuaXRlbXNcIj5cbiAgICA8YXBwLXRvb2xiYXItbWVudS1pdGVtIFthY3Rpb25SZWZdPVwiaXRlbVwiPjwvYXBwLXRvb2xiYXItbWVudS1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LW1lbnU+XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9zaWRlbmF2L3VzZXItbWVudS91c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL3NpZGVuYXYvdXNlci1tZW51L3VzZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQVVwQyxNQUFNLE9BQU8saUJBQWlCO0lBUjlCO1FBU1UsVUFBSyxHQUFHLE1BQU0sQ0FBa0IsQ0FBQSxLQUFlLENBQUEsQ0FBQyxDQUFDO1FBQ3pELFVBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWEzQztJQUxDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7OEdBZFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkhDMUM5QixtZEFjQSx3VURzQlksWUFBWSxnTkFBRSxlQUFlLDJGQUFFLGVBQWUsMFZBQUUsYUFBYSw0UEFBRSx3QkFBd0I7MkZBTXRGLGlCQUFpQjtrQkFSN0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLENBQUMsWUFDeEYsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJOzhCQU9yQyxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudEFjdGlvblJlZiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgQXBwU3RvcmUsIGdldFVzZXJQcm9maWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgVG9vbGJhck1lbnVJdGVtQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdhY2EtdXNlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBzdG9yZSA9IGluamVjdDxTdG9yZTxBcHBTdG9yZT4+KFN0b3JlPEFwcFN0b3JlPik7XG4gIHVzZXIkID0gdGhpcy5zdG9yZS5zZWxlY3QoZ2V0VXNlclByb2ZpbGUpO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvblJlZjogQ29udGVudEFjdGlvblJlZjtcblxuICBASW5wdXQoKVxuICBkYXRhOiB7IGl0ZW1zOiBhbnlbXSB9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGE/Lml0ZW1zKSB7XG4gICAgICB0aGlzLmRhdGEuaXRlbXMuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvbiBtYXQtYnV0dG9uXG4gIGNsYXNzPVwiYWNhLXVzZXItbWVudS1idXR0b25cIlxuICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhcHAtdXNlci1tZW51LWJ1dHRvblwiXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgdGl0bGU9XCJ7eydBUFAuVE9PTFRJUFMuT1BUSU9OU19TRVRUSU5HUycgfCB0cmFuc2xhdGV9fVwiXG4+XG4gIDxkaXY+e3sgKHVzZXIkIHwgYXN5bmMpPy5pbml0aWFscyB9fTwvZGl2PlxuPC9idXR0b24+XG5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhLml0ZW1zXCI+XG4gICAgPGFwcC10b29sYmFyLW1lbnUtaXRlbSBbYWN0aW9uUmVmXT1cIml0ZW1cIj48L2FwcC10b29sYmFyLW1lbnUtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1tZW51PlxuIl19
@@ -82,6 +82,7 @@ function updateUser(state, action) {
82
82
  const lastName = user.lastName || '';
83
83
  const userName = `${firstName} ${lastName}`;
84
84
  const initials = [firstName[0], lastName[0]].join('');
85
+ const email = user.email;
85
86
  const capabilities = user.capabilities;
86
87
  const isAdmin = capabilities ? capabilities.isAdmin : true;
87
88
  newState.user = {
@@ -91,7 +92,8 @@ function updateUser(state, action) {
91
92
  initials,
92
93
  isAdmin,
93
94
  id,
94
- groups
95
+ groups,
96
+ email
95
97
  };
96
98
  return newState;
97
99
  }
@@ -201,4 +203,4 @@ function showLoader(state, action) {
201
203
  newState.showLoader = action.payload;
202
204
  return newState;
203
205
  }
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2FwcC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUVMLGVBQWUsRUFZZixjQUFjLEVBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWtCLGlCQUFpQixFQUFFLE1BQWM7SUFDNUUsSUFBSSxRQUFrQixDQUFDO0lBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLGNBQWMsQ0FBQyxlQUFlO1lBQ2pDLFFBQVEsR0FBRyxFQUFFLEdBQUksTUFBZ0MsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxNQUFNO1FBQ1IsS0FBSyxlQUFlLENBQUMsWUFBWTtZQUMvQixRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsY0FBYztZQUNoQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUE4QixDQUFDLENBQUM7WUFDN0QsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtZQUNsQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsaUJBQWlCO1lBQ25DLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBcUMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxhQUFhO1lBQy9CLFFBQVEsR0FBRyxnQkFBZ0Is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Q0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsS0FBZSxFQUFFLE1BQW9DO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBZSxFQUFFLE1BQXdCO0lBQzNELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdGF0ZSxcbiAgTm9kZUFjdGlvblR5cGVzLFxuICBTZXRVc2VyUHJvZmlsZUFjdGlvbixcbiAgU2V0Q3VycmVudEZvbGRlckFjdGlvbixcbiAgU2V0Q3VycmVudFVybEFjdGlvbixcbiAgU2V0SW5pdGlhbFN0YXRlQWN0aW9uLFxuICBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uLFxuICBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24sXG4gIFNldEN1cnJlbnROb2RlVmVyc2lvbkFjdGlvbixcbiAgU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbixcbiAgQXBwQWN0aW9uVHlwZXMsXG4gIFNob3dMb2FkZXJBY3Rpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9BUFBfU1RBVEUgfSBmcm9tICcuLi9pbml0aWFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcFJlZHVjZXIoc3RhdGU6IEFwcFN0YXRlID0gSU5JVElBTF9BUFBfU1RBVEUsIGFjdGlvbjogQWN0aW9uKTogQXBwU3RhdGUge1xuICBsZXQgbmV3U3RhdGU6IEFwcFN0YXRlO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluaXRpYWxTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0geyAuLi4oYWN0aW9uIGFzIFNldEluaXRpYWxTdGF0ZUFjdGlvbikucGF5bG9hZCB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOb2RlQWN0aW9uVHlwZXMuU2V0U2VsZWN0aW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVTZWxlY3RlZE5vZGVzKHN0YXRlLCBhY3Rpb24gYXMgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldFVzZXJQcm9maWxlOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVVc2VyKHN0YXRlLCBhY3Rpb24gYXMgU2V0VXNlclByb2ZpbGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50Rm9sZGVyOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Rm9sZGVyKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudEZvbGRlckFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRWZXJzaW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Tm9kZVZlcnNpb24oc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50VXJsOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50VXJsKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudFVybEFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlRvZ2dsZUluZm9EcmF3ZXI6XG4gICAgICBuZXdTdGF0ZSA9IHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyU3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3Q6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJBc3BlY3Qoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRSZXBvc2l0b3J5SW5mbzpcbiAgICAgIG5ld1N0YXRlID0gdXBkYXRlUmVwb3NpdG9yeVN0YXR1cyhzdGF0ZSwgYWN0aW9uIGFzIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0RmlsZVVwbG9hZGluZ0RpYWxvZzpcbiAgICAgIG5ld1N0YXRlID0gc2V0VXBsb2FkRGlhbG9nVmlzaWJpbGl0eShzdGF0ZSwgYWN0aW9uIGFzIFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TaG93SW5mb0RyYXdlclByZXZpZXc6XG4gICAgICBuZXdTdGF0ZSA9IHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJQcmV2aWV3U3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJQcmV2aWV3KHN0YXRlLCBhY3Rpb24gYXMgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNob3dMb2FkZXJBY3Rpb246XG4gICAgICBuZXdTdGF0ZSA9IHNob3dMb2FkZXIoc3RhdGUsIGFjdGlvbiBhcyBTaG93TG9hZGVyQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVXNlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0VXNlclByb2ZpbGVBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCB1c2VyID0gYWN0aW9uLnBheWxvYWQucGVyc29uO1xuICBjb25zdCBncm91cHMgPSBbLi4uKGFjdGlvbi5wYXlsb2FkLmdyb3VwcyB8fCBbXSldO1xuXG4gIGNvbnN0IGlkID0gdXNlci5pZDtcbiAgY29uc3QgZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWUgfHwgJyc7XG4gIGNvbnN0IGxhc3ROYW1lID0gdXNlci5sYXN0TmFtZSB8fCAnJztcbiAgY29uc3QgdXNlck5hbWUgPSBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YDtcbiAgY29uc3QgaW5pdGlhbHMgPSBbZmlyc3ROYW1lWzBdLCBsYXN0TmFtZVswXV0uam9pbignJyk7XG5cbiAgY29uc3QgY2FwYWJpbGl0aWVzID0gdXNlci5jYXBhYmlsaXRpZXM7XG4gIGNvbnN0IGlzQWRtaW4gPSBjYXBhYmlsaXRpZXMgPyBjYXBhYmlsaXRpZXMuaXNBZG1pbiA6IHRydWU7XG5cbiAgbmV3U3RhdGUudXNlciA9IHtcbiAgICBmaXJzdE5hbWUsXG4gICAgbGFzdE5hbWUsXG4gICAgdXNlck5hbWUsXG4gICAgaW5pdGlhbHMsXG4gICAgaXNBZG1pbixcbiAgICBpZCxcbiAgICBncm91cHNcbiAgfTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnRGb2xkZXIoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEN1cnJlbnRGb2xkZXJBY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLm5hdmlnYXRpb24uY3VycmVudEZvbGRlciA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnROb2RlVmVyc2lvbihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0Q3VycmVudE5vZGVWZXJzaW9uQWN0aW9uKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5jdXJyZW50Tm9kZVZlcnNpb24gPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVDdXJyZW50VXJsKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRDdXJyZW50VXJsQWN0aW9uKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5uYXZpZ2F0aW9uLnVybCA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGU6IEFwcFN0YXRlKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmluZm9EcmF3ZXJPcGVuZWQ7XG4gIGlmIChzdGF0ZS5zZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgIHZhbHVlID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSAhdmFsdWU7XG4gIH1cblxuICBuZXdTdGF0ZS5pbmZvRHJhd2VyT3BlbmVkID0gdmFsdWU7XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBzaG93SW5mb0RyYXdlclByZXZpZXcoc3RhdGU6IEFwcFN0YXRlKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmluZm9EcmF3ZXJQcmV2aWV3O1xuICBpZiAoc3RhdGUuc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICB2YWx1ZSA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHZhbHVlID0gIXZhbHVlO1xuICB9XG5cbiAgbmV3U3RhdGUuaW5mb0RyYXdlclByZXZpZXcgPSB2YWx1ZTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNlbGVjdGVkTm9kZXMoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldFNlbGVjdGVkTm9kZXNBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCBub2RlcyA9IFsuLi5hY3Rpb24ucGF5bG9hZF07XG4gIGNvbnN0IGNvdW50ID0gbm9kZXMubGVuZ3RoO1xuICBjb25zdCBpc0VtcHR5ID0gbm9kZXMubGVuZ3RoID09PSAwO1xuXG4gIGxldCBmaXJzdCA9IG51bGw7XG4gIGxldCBsYXN0ID0gbnVsbDtcbiAgbGV0IGZpbGUgPSBudWxsO1xuICBsZXQgZm9sZGVyID0gbnVsbDtcbiAgbGV0IGxpYnJhcnkgPSBudWxsO1xuXG4gIGlmIChub2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgZmlyc3QgPSBub2Rlc1swXTtcbiAgICBsYXN0ID0gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBmaWxlID0gbm9kZXMuZmluZChcbiAgICAgICAgKGVudGl0eTogYW55KSA9PlxuICAgICAgICAgIC8vIHdvcmthcm91bmQgU2hhcmVkXG4gICAgICAgICAgISEoZW50aXR5LmVudHJ5LmlzRmlsZSB8fCBlbnRpdHkuZW50cnkubm9kZUlkIHx8IGVudGl0eS5lbnRyeS5zaGFyZWRCeVVzZXIpXG4gICAgICApO1xuICAgICAgZm9sZGVyID0gbm9kZXMuZmluZCgoZW50aXR5OiBhbnkpID0+IGVudGl0eS5lbnRyeS5pc0ZvbGRlcik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbGlicmFyaWVzOiBhbnlbXSA9IFsuLi5hY3Rpb24ucGF5bG9hZF0uZmlsdGVyKChub2RlOiBhbnkpID0+IG5vZGUuaXNMaWJyYXJ5KTtcbiAgaWYgKGxpYnJhcmllcy5sZW5ndGggPT09IDEpIHtcbiAgICBsaWJyYXJ5ID0gbGlicmFyaWVzWzBdO1xuICB9XG5cbiAgaWYgKGlzRW1wdHkpIHtcbiAgICBuZXdTdGF0ZS5pbmZvRHJhd2VyT3BlbmVkID0gZmFsc2U7XG4gIH1cblxuICBuZXdTdGF0ZS5zZWxlY3Rpb24gPSB7XG4gICAgY291bnQsXG4gICAgbm9kZXMsXG4gICAgaXNFbXB0eSxcbiAgICBmaXJzdCxcbiAgICBsYXN0LFxuICAgIGZpbGUsXG4gICAgZm9sZGVyLFxuICAgIGxpYnJhcmllcyxcbiAgICBsaWJyYXJ5XG4gIH07XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuY29uc3Qgc2V0SW5mb0RyYXdlciA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uKSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5mb0RyYXdlck9wZW5lZDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5jb25zdCBzZXRJbmZvRHJhd2VyUHJldmlldyA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJQcmV2aWV3OiBhY3Rpb24ucGF5bG9hZFxufSk7XG5cbmNvbnN0IHNldEluZm9EcmF3ZXJBc3BlY3QgPSAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdEFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVSZXBvc2l0b3J5U3RhdHVzKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbikge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUucmVwb3NpdG9yeSA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHNldFVwbG9hZERpYWxvZ1Zpc2liaWxpdHkoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5maWxlVXBsb2FkaW5nRGlhbG9nID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gc2hvd0xvYWRlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2hvd0xvYWRlckFjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLnNob3dMb2FkZXIgPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuIl19
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2FwcC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUVMLGVBQWUsRUFZZixjQUFjLEVBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWtCLGlCQUFpQixFQUFFLE1BQWM7SUFDNUUsSUFBSSxRQUFrQixDQUFDO0lBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLGNBQWMsQ0FBQyxlQUFlO1lBQ2pDLFFBQVEsR0FBRyxFQUFFLEdBQUksTUFBZ0MsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxNQUFNO1FBQ1IsS0FBSyxlQUFlLENBQUMsWUFBWTtZQUMvQixRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsY0FBYztZQUNoQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUE4QixDQUFDLENBQUM7WUFDN0QsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtZQUNsQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsaUJBQWlCO1lBQ25DLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBcUMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxhQUFhO1lBQy9CLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsTUFBNkIsQ0FBQyxDQUFDO1lBQ2xFLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxnQkFBZ0I7WUFDbEMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxrQkFBa0I7WUFDcEMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBa0MsQ0FBQyxDQUFDO1lBQ3BFLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQywyQkFBMkI7WUFDN0MsUUFBUSxHQUFHLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUEyQyxDQUFDLENBQUM7WUFDbkYsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGlCQUFpQjtZQUNuQyxRQUFRLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQWlDLENBQUMsQ0FBQztZQUM1RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsc0JBQXNCO1lBQ3hDLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsTUFBc0MsQ0FBQyxDQUFDO1lBQ3BGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxxQkFBcUI7WUFDdkMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyx5QkFBeUI7WUFDM0MsUUFBUSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxNQUF5QyxDQUFDLENBQUM7WUFDbEYsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtZQUNsQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUEwQixDQUFDLENBQUM7WUFDekQsTUFBTTtRQUNSO1lBQ0UsUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztLQUMzQjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFlLEVBQUUsTUFBNEI7SUFDL0QsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbEQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxHQUFHLFNBQVMsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM1QyxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUV6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3ZDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTNELFFBQVEsQ0FBQyxJQUFJLEdBQUc7UUFDZCxTQUFTO1FBQ1QsUUFBUTtRQUNSLFFBQVE7UUFDUixRQUFRO1FBQ1IsT0FBTztRQUNQLEVBQUU7UUFDRixNQUFNO1FBQ04sS0FBSztLQUNOLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUFlLEVBQUUsTUFBOEI7SUFDMUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsS0FBZSxFQUFFLE1BQW1DO0lBQ3BGLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM3QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFlLEVBQUUsTUFBMkI7SUFDcEUsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDekMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBZTtJQUN2QyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFFOUIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0lBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7UUFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNmO1NBQU07UUFDTCxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7S0FDaEI7SUFFRCxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRWxDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEtBQWU7SUFDNUMsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBRTlCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUNwQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQzNCLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDZjtTQUFNO1FBQ0wsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO0tBQ2hCO0lBRUQsUUFBUSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVuQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUFlLEVBQUUsTUFBOEI7SUFDMUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUVuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDakIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztJQUNoQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRW5CLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDcEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDZixDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ2Qsb0JBQW9CO1lBQ3BCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQzlFLENBQUM7WUFDRixNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3RDtLQUNGO0lBRUQsTUFBTSxTQUFTLEdBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFFRCxJQUFJLE9BQU8sRUFBRTtRQUNYLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7S0FDbkM7SUFFRCxRQUFRLENBQUMsU0FBUyxHQUFHO1FBQ25CLEtBQUs7UUFDTCxLQUFLO1FBQ0wsT0FBTztRQUNQLEtBQUs7UUFDTCxJQUFJO1FBQ0osSUFBSTtRQUNKLE1BQU07UUFDTixTQUFTO1FBQ1QsT0FBTztLQUNSLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFlLEVBQUUsTUFBZ0MsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxHQUFHLEtBQUs7SUFDUixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsT0FBTztDQUNqQyxDQUFDLENBQUM7QUFFSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBZSxFQUFFLE1BQXVDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUYsR0FBRyxLQUFLO0lBQ1IsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLE9BQU87Q0FDbEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWUsRUFBRSxNQUF5QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLEdBQUcsS0FBSztJQUNSLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxPQUFPO0NBQ3pDLENBQUMsQ0FBQztBQUVILFNBQVMsc0JBQXNCLENBQUMsS0FBZSxFQUFFLE1BQStCO0lBQzlFLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsS0FBZSxFQUFFLE1BQW9DO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBZSxFQUFFLE1BQXdCO0lBQzNELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdGF0ZSxcbiAgTm9kZUFjdGlvblR5cGVzLFxuICBTZXRVc2VyUHJvZmlsZUFjdGlvbixcbiAgU2V0Q3VycmVudEZvbGRlckFjdGlvbixcbiAgU2V0Q3VycmVudFVybEFjdGlvbixcbiAgU2V0SW5pdGlhbFN0YXRlQWN0aW9uLFxuICBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uLFxuICBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24sXG4gIFNldEN1cnJlbnROb2RlVmVyc2lvbkFjdGlvbixcbiAgU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbixcbiAgQXBwQWN0aW9uVHlwZXMsXG4gIFNob3dMb2FkZXJBY3Rpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9BUFBfU1RBVEUgfSBmcm9tICcuLi9pbml0aWFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcFJlZHVjZXIoc3RhdGU6IEFwcFN0YXRlID0gSU5JVElBTF9BUFBfU1RBVEUsIGFjdGlvbjogQWN0aW9uKTogQXBwU3RhdGUge1xuICBsZXQgbmV3U3RhdGU6IEFwcFN0YXRlO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluaXRpYWxTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0geyAuLi4oYWN0aW9uIGFzIFNldEluaXRpYWxTdGF0ZUFjdGlvbikucGF5bG9hZCB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOb2RlQWN0aW9uVHlwZXMuU2V0U2VsZWN0aW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVTZWxlY3RlZE5vZGVzKHN0YXRlLCBhY3Rpb24gYXMgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldFVzZXJQcm9maWxlOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVVc2VyKHN0YXRlLCBhY3Rpb24gYXMgU2V0VXNlclByb2ZpbGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50Rm9sZGVyOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Rm9sZGVyKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudEZvbGRlckFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRWZXJzaW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Tm9kZVZlcnNpb24oc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50VXJsOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50VXJsKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudFVybEFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlRvZ2dsZUluZm9EcmF3ZXI6XG4gICAgICBuZXdTdGF0ZSA9IHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyU3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3Q6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJBc3BlY3Qoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRSZXBvc2l0b3J5SW5mbzpcbiAgICAgIG5ld1N0YXRlID0gdXBkYXRlUmVwb3NpdG9yeVN0YXR1cyhzdGF0ZSwgYWN0aW9uIGFzIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0RmlsZVVwbG9hZGluZ0RpYWxvZzpcbiAgICAgIG5ld1N0YXRlID0gc2V0VXBsb2FkRGlhbG9nVmlzaWJpbGl0eShzdGF0ZSwgYWN0aW9uIGFzIFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TaG93SW5mb0RyYXdlclByZXZpZXc6XG4gICAgICBuZXdTdGF0ZSA9IHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJQcmV2aWV3U3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJQcmV2aWV3KHN0YXRlLCBhY3Rpb24gYXMgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNob3dMb2FkZXJBY3Rpb246XG4gICAgICBuZXdTdGF0ZSA9IHNob3dMb2FkZXIoc3RhdGUsIGFjdGlvbiBhcyBTaG93TG9hZGVyQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVXNlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0VXNlclByb2ZpbGVBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCB1c2VyID0gYWN0aW9uLnBheWxvYWQucGVyc29uO1xuICBjb25zdCBncm91cHMgPSBbLi4uKGFjdGlvbi5wYXlsb2FkLmdyb3VwcyB8fCBbXSldO1xuXG4gIGNvbnN0IGlkID0gdXNlci5pZDtcbiAgY29uc3QgZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWUgfHwgJyc7XG4gIGNvbnN0IGxhc3ROYW1lID0gdXNlci5sYXN0TmFtZSB8fCAnJztcbiAgY29uc3QgdXNlck5hbWUgPSBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YDtcbiAgY29uc3QgaW5pdGlhbHMgPSBbZmlyc3ROYW1lWzBdLCBsYXN0TmFtZVswXV0uam9pbignJyk7XG4gIGNvbnN0IGVtYWlsID0gdXNlci5lbWFpbDtcblxuICBjb25zdCBjYXBhYmlsaXRpZXMgPSB1c2VyLmNhcGFiaWxpdGllcztcbiAgY29uc3QgaXNBZG1pbiA9IGNhcGFiaWxpdGllcyA/IGNhcGFiaWxpdGllcy5pc0FkbWluIDogdHJ1ZTtcblxuICBuZXdTdGF0ZS51c2VyID0ge1xuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICB1c2VyTmFtZSxcbiAgICBpbml0aWFscyxcbiAgICBpc0FkbWluLFxuICAgIGlkLFxuICAgIGdyb3VwcyxcbiAgICBlbWFpbFxuICB9O1xuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVudEZvbGRlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0Q3VycmVudEZvbGRlckFjdGlvbikge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUubmF2aWdhdGlvbi5jdXJyZW50Rm9sZGVyID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVudE5vZGVWZXJzaW9uKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLmN1cnJlbnROb2RlVmVyc2lvbiA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnRVcmwoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEN1cnJlbnRVcmxBY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLm5hdmlnYXRpb24udXJsID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdG9nZ2xlSW5mb0RyYXdlcihzdGF0ZTogQXBwU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG5cbiAgbGV0IHZhbHVlID0gc3RhdGUuaW5mb0RyYXdlck9wZW5lZDtcbiAgaWYgKHN0YXRlLnNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgdmFsdWUgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9ICF2YWx1ZTtcbiAgfVxuXG4gIG5ld1N0YXRlLmluZm9EcmF3ZXJPcGVuZWQgPSB2YWx1ZTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZTogQXBwU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG5cbiAgbGV0IHZhbHVlID0gc3RhdGUuaW5mb0RyYXdlclByZXZpZXc7XG4gIGlmIChzdGF0ZS5zZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgIHZhbHVlID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSAhdmFsdWU7XG4gIH1cblxuICBuZXdTdGF0ZS5pbmZvRHJhd2VyUHJldmlldyA9IHZhbHVlO1xuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU2VsZWN0ZWROb2RlcyhzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGNvbnN0IG5vZGVzID0gWy4uLmFjdGlvbi5wYXlsb2FkXTtcbiAgY29uc3QgY291bnQgPSBub2Rlcy5sZW5ndGg7XG4gIGNvbnN0IGlzRW1wdHkgPSBub2Rlcy5sZW5ndGggPT09IDA7XG5cbiAgbGV0IGZpcnN0ID0gbnVsbDtcbiAgbGV0IGxhc3QgPSBudWxsO1xuICBsZXQgZmlsZSA9IG51bGw7XG4gIGxldCBmb2xkZXIgPSBudWxsO1xuICBsZXQgbGlicmFyeSA9IG51bGw7XG5cbiAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICBmaXJzdCA9IG5vZGVzWzBdO1xuICAgIGxhc3QgPSBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTtcblxuICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGZpbGUgPSBub2Rlcy5maW5kKFxuICAgICAgICAoZW50aXR5OiBhbnkpID0+XG4gICAgICAgICAgLy8gd29ya2Fyb3VuZCBTaGFyZWRcbiAgICAgICAgICAhIShlbnRpdHkuZW50cnkuaXNGaWxlIHx8IGVudGl0eS5lbnRyeS5ub2RlSWQgfHwgZW50aXR5LmVudHJ5LnNoYXJlZEJ5VXNlcilcbiAgICAgICk7XG4gICAgICBmb2xkZXIgPSBub2Rlcy5maW5kKChlbnRpdHk6IGFueSkgPT4gZW50aXR5LmVudHJ5LmlzRm9sZGVyKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBsaWJyYXJpZXM6IGFueVtdID0gWy4uLmFjdGlvbi5wYXlsb2FkXS5maWx0ZXIoKG5vZGU6IGFueSkgPT4gbm9kZS5pc0xpYnJhcnkpO1xuICBpZiAobGlicmFyaWVzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxpYnJhcnkgPSBsaWJyYXJpZXNbMF07XG4gIH1cblxuICBpZiAoaXNFbXB0eSkge1xuICAgIG5ld1N0YXRlLmluZm9EcmF3ZXJPcGVuZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG5ld1N0YXRlLnNlbGVjdGlvbiA9IHtcbiAgICBjb3VudCxcbiAgICBub2RlcyxcbiAgICBpc0VtcHR5LFxuICAgIGZpcnN0LFxuICAgIGxhc3QsXG4gICAgZmlsZSxcbiAgICBmb2xkZXIsXG4gICAgbGlicmFyaWVzLFxuICAgIGxpYnJhcnlcbiAgfTtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5jb25zdCBzZXRJbmZvRHJhd2VyID0gKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24pID0+ICh7XG4gIC4uLnN0YXRlLFxuICBpbmZvRHJhd2VyT3BlbmVkOiBhY3Rpb24ucGF5bG9hZFxufSk7XG5cbmNvbnN0IHNldEluZm9EcmF3ZXJQcmV2aWV3ID0gKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRJbmZvRHJhd2VyUHJldmlld1N0YXRlQWN0aW9uKSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5mb0RyYXdlclByZXZpZXc6IGFjdGlvbi5wYXlsb2FkXG59KTtcblxuY29uc3Qgc2V0SW5mb0RyYXdlckFzcGVjdCA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlck1ldGFkYXRhQXNwZWN0QWN0aW9uKSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5mb0RyYXdlck1ldGFkYXRhQXNwZWN0OiBhY3Rpb24ucGF5bG9hZFxufSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZVJlcG9zaXRvcnlTdGF0dXMoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5yZXBvc2l0b3J5ID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gc2V0VXBsb2FkRGlhbG9nVmlzaWJpbGl0eShzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLmZpbGVVcGxvYWRpbmdEaWFsb2cgPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBzaG93TG9hZGVyKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTaG93TG9hZGVyQWN0aW9uKTogQXBwU3RhdGUge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUuc2hvd0xvYWRlciA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG4iXX0=
@@ -1434,6 +1434,7 @@ function updateUser(state, action) {
1434
1434
  const lastName = user.lastName || '';
1435
1435
  const userName = `${firstName} ${lastName}`;
1436
1436
  const initials = [firstName[0], lastName[0]].join('');
1437
+ const email = user.email;
1437
1438
  const capabilities = user.capabilities;
1438
1439
  const isAdmin = capabilities ? capabilities.isAdmin : true;
1439
1440
  newState.user = {
@@ -1443,7 +1444,8 @@ function updateUser(state, action) {
1443
1444
  initials,
1444
1445
  isAdmin,
1445
1446
  id,
1446
- groups
1447
+ groups,
1448
+ email
1447
1449
  };
1448
1450
  return newState;
1449
1451
  }
@@ -6162,62 +6164,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
6162
6164
  type: Input
6163
6165
  }] } });
6164
6166
 
6167
+ /*!
6168
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
6169
+ *
6170
+ * Alfresco Example Content Application
6171
+ *
6172
+ * This file is part of the Alfresco Example Content Application.
6173
+ * If the software was purchased under a paid Alfresco license, the terms of
6174
+ * the paid license agreement will prevail. Otherwise, the software is
6175
+ * provided under the following open source license terms:
6176
+ *
6177
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
6178
+ * it under the terms of the GNU Lesser General Public License as published by
6179
+ * the Free Software Foundation, either version 3 of the License, or
6180
+ * (at your option) any later version.
6181
+ *
6182
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
6183
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
6184
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6185
+ * GNU Lesser General Public License for more details.
6186
+ *
6187
+ * You should have received a copy of the GNU Lesser General Public License
6188
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
6189
+ */
6165
6190
  class UserMenuComponent {
6166
- constructor(peopleContentService, identityUserService, authService) {
6167
- this.peopleContentService = peopleContentService;
6168
- this.identityUserService = identityUserService;
6169
- this.authService = authService;
6191
+ constructor() {
6192
+ this.store = inject((Store));
6193
+ this.user$ = this.store.select(getUserProfile);
6170
6194
  }
6171
6195
  ngOnInit() {
6172
6196
  var _a;
6173
- this.getUserInfo();
6174
6197
  if ((_a = this.data) === null || _a === void 0 ? void 0 : _a.items) {
6175
6198
  this.data.items.sort((a, b) => a.order - b.order);
6176
6199
  }
6177
6200
  }
6178
- getUserInfo() {
6179
- if (this.authService.isOauth()) {
6180
- this.loadIdentityUserInfo();
6181
- if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
6182
- this.loadEcmUserInfo();
6183
- }
6184
- }
6185
- else if (this.isEcmLoggedIn()) {
6186
- this.loadEcmUserInfo();
6187
- }
6188
- }
6189
- get isLoggedIn() {
6190
- if (this.authService.isKerberosEnabled()) {
6191
- return true;
6192
- }
6193
- return this.authService.isLoggedIn();
6194
- }
6195
- loadEcmUserInfo() {
6196
- this.displayName$ = this.peopleContentService.getCurrentUserInfo().pipe(map((model) => this.parseDisplayName(model)));
6197
- }
6198
- loadIdentityUserInfo() {
6199
- this.displayName$ = of(this.identityUserService.getCurrentUserInfo()).pipe(map((model) => this.parseDisplayName(model)));
6200
- }
6201
- parseDisplayName(model) {
6202
- const result = { firstName: '', initials: '' };
6203
- if (model.firstName) {
6204
- result.initials = model.firstName.charAt(0).toUpperCase();
6205
- }
6206
- if (model.lastName) {
6207
- result.initials += model.lastName.charAt(0).toUpperCase();
6208
- }
6209
- return result;
6210
- }
6211
- isEcmLoggedIn() {
6212
- return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
6213
- }
6214
6201
  }
6215
- UserMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, deps: [{ token: i1$1.PeopleContentService }, { token: i4.IdentityUserService }, { token: i4.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
6216
- UserMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserMenuComponent, isStandalone: true, selector: "aca-user-menu", inputs: { actionRef: "actionRef", data: "data" }, ngImport: i0, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (displayName$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }], encapsulation: i0.ViewEncapsulation.None });
6202
+ UserMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6203
+ UserMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserMenuComponent, isStandalone: true, selector: "aca-user-menu", inputs: { actionRef: "actionRef", data: "data" }, ngImport: i0, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (user$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: ToolbarMenuItemComponent, selector: "app-toolbar-menu-item", inputs: ["actionRef", "menuId"] }], encapsulation: i0.ViewEncapsulation.None });
6217
6204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserMenuComponent, decorators: [{
6218
6205
  type: Component,
6219
- args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatMenuModule, ToolbarMenuItemComponent], selector: 'aca-user-menu', encapsulation: ViewEncapsulation.None, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (displayName$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"] }]
6220
- }], ctorParameters: function () { return [{ type: i1$1.PeopleContentService }, { type: i4.IdentityUserService }, { type: i4.AuthenticationService }]; }, propDecorators: { actionRef: [{
6206
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatMenuModule, ToolbarMenuItemComponent], selector: 'aca-user-menu', encapsulation: ViewEncapsulation.None, template: "<button mat-button\n class=\"aca-user-menu-button\"\n data-automation-id=\"app-user-menu-button\"\n [matMenuTriggerFor]=\"menu\"\n title=\"{{'APP.TOOLTIPS.OPTIONS_SETTINGS' | translate}}\"\n>\n <div>{{ (user$ | async)?.initials }}</div>\n</button>\n\n<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-container *ngFor=\"let item of data.items\">\n <app-toolbar-menu-item [actionRef]=\"item\"></app-toolbar-menu-item>\n </ng-container>\n</mat-menu>\n", styles: [".aca-user-menu-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-sidenav-user-menu-color);border:none}\n"] }]
6207
+ }], propDecorators: { actionRef: [{
6221
6208
  type: Input
6222
6209
  }], data: [{
6223
6210
  type: Input
@@ -6596,63 +6583,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
6596
6583
  }]
6597
6584
  }], ctorParameters: function () { return [{ type: i1.Store }]; } });
6598
6585
 
6586
+ /*!
6587
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
6588
+ *
6589
+ * Alfresco Example Content Application
6590
+ *
6591
+ * This file is part of the Alfresco Example Content Application.
6592
+ * If the software was purchased under a paid Alfresco license, the terms of
6593
+ * the paid license agreement will prevail. Otherwise, the software is
6594
+ * provided under the following open source license terms:
6595
+ *
6596
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
6597
+ * it under the terms of the GNU Lesser General Public License as published by
6598
+ * the Free Software Foundation, either version 3 of the License, or
6599
+ * (at your option) any later version.
6600
+ *
6601
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
6602
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
6603
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6604
+ * GNU Lesser General Public License for more details.
6605
+ *
6606
+ * You should have received a copy of the GNU Lesser General Public License
6607
+ * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
6608
+ */
6599
6609
  class UserInfoComponent {
6600
- constructor(peopleContentService, identityUserService, authService) {
6601
- this.peopleContentService = peopleContentService;
6602
- this.identityUserService = identityUserService;
6603
- this.authService = authService;
6604
- }
6605
- ngOnInit() {
6606
- this.getUserInfo();
6607
- }
6608
- getUserInfo() {
6609
- if (this.authService.isOauth()) {
6610
- this.loadIdentityUserInfo();
6611
- if (this.authService.isECMProvider() && this.authService.isEcmLoggedIn()) {
6612
- this.loadEcmUserInfo();
6613
- }
6614
- }
6615
- else if (this.isEcmLoggedIn()) {
6616
- this.loadEcmUserInfo();
6617
- }
6618
- }
6619
- get isLoggedIn() {
6620
- if (this.authService.isKerberosEnabled()) {
6621
- return true;
6622
- }
6623
- return this.authService.isLoggedIn();
6624
- }
6625
- loadEcmUserInfo() {
6626
- this.displayName$ = this.peopleContentService.getCurrentUserInfo().pipe(map((model) => this.parseDisplayName(model)));
6627
- }
6628
- loadIdentityUserInfo() {
6629
- this.displayName$ = of(this.identityUserService.getCurrentUserInfo()).pipe(map((model) => this.parseDisplayName(model)));
6630
- }
6631
- parseDisplayName(model) {
6632
- const result = { firstName: '', initials: '', email: '' };
6633
- if (model.firstName) {
6634
- result.firstName = model.firstName;
6635
- result.initials = model.firstName.charAt(0).toUpperCase();
6636
- }
6637
- if (model.lastName) {
6638
- result.firstName += ' ' + model.lastName;
6639
- result.initials += model.lastName.charAt(0).toUpperCase();
6640
- }
6641
- if (model.email) {
6642
- result.email = `${model.email}`;
6643
- }
6644
- return result;
6645
- }
6646
- isEcmLoggedIn() {
6647
- return this.authService.isEcmLoggedIn() || (this.authService.isECMProvider() && this.authService.isKerberosEnabled());
6610
+ constructor() {
6611
+ this.store = inject((Store));
6612
+ this.user$ = this.store.select(getUserProfile);
6648
6613
  }
6649
6614
  }
6650
- UserInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, deps: [{ token: i1$1.PeopleContentService }, { token: i4.IdentityUserService }, { token: i4.AuthenticationService }], target: i0.ɵɵFactoryTarget.Component });
6651
- UserInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserInfoComponent, isStandalone: true, selector: "app-user-info", ngImport: i0, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{'APP.TOOLTIPS.MY_PROFILE' | translate}}\">\n <button class=\"aca-user-info-button\">\n <div>{{ (displayName$ | async)?.initials }}</div>\n </button>\n <div class=\"aca-user-info-name-email\">\n <div>{{ (displayName$ | async)?.firstName }}</div>\n <div>{{ (displayName$ | async)?.email }}</div>\n </div>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-name-email{line-height:24px;margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
6615
+ UserInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6616
+ UserInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: UserInfoComponent, isStandalone: true, selector: "app-user-info", ngImport: i0, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{ 'APP.TOOLTIPS.MY_PROFILE' | translate }}\">\n <ng-container *ngIf=\"user$ | async as user\">\n <button class=\"aca-user-info-button\">\n <div>{{ user.initials || 'U' }}</div>\n </button>\n <div class=\"aca-user-info-details\">\n <div>{{ user.userName }}</div>\n <div>{{ user.email }}</div>\n </div>\n </ng-container>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-details{line-height:24px;margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
6652
6617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UserInfoComponent, decorators: [{
6653
6618
  type: Component,
6654
- args: [{ standalone: true, imports: [CommonModule, RouterModule, MatMenuModule, TranslateModule], selector: 'app-user-info', encapsulation: ViewEncapsulation.None, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{'APP.TOOLTIPS.MY_PROFILE' | translate}}\">\n <button class=\"aca-user-info-button\">\n <div>{{ (displayName$ | async)?.initials }}</div>\n </button>\n <div class=\"aca-user-info-name-email\">\n <div>{{ (displayName$ | async)?.firstName }}</div>\n <div>{{ (displayName$ | async)?.email }}</div>\n </div>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-name-email{line-height:24px;margin-left:10px}\n"] }]
6655
- }], ctorParameters: function () { return [{ type: i1$1.PeopleContentService }, { type: i4.IdentityUserService }, { type: i4.AuthenticationService }]; } });
6619
+ args: [{ standalone: true, imports: [CommonModule, RouterModule, MatMenuModule, TranslateModule], selector: 'app-user-info', encapsulation: ViewEncapsulation.None, template: "<div mat-menu-item class=\"aca-user-info\" [routerLink]=\"['/profile']\" title=\"{{ 'APP.TOOLTIPS.MY_PROFILE' | translate }}\">\n <ng-container *ngIf=\"user$ | async as user\">\n <button class=\"aca-user-info-button\">\n <div>{{ user.initials || 'U' }}</div>\n </button>\n <div class=\"aca-user-info-details\">\n <div>{{ user.userName }}</div>\n <div>{{ user.email }}</div>\n </div>\n </ng-container>\n</div>\n", styles: [".aca-user-info{display:flex;height:66px;align-items:center}.aca-user-info-button{border-radius:90%;height:32px;margin-right:0;min-width:32px;padding:0;font-weight:700;line-height:32px;text-align:center;vertical-align:middle;background:var(--theme-about-panel-border-color);color:var(--theme-selected-text-color);border:none}.aca-user-info-details{line-height:24px;margin-left:10px}\n"] }]
6620
+ }] });
6656
6621
 
6657
6622
  /*!
6658
6623
  * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.