@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.
- package/esm2020/lib/components/common/user-info/user-info.component.mjs +15 -64
- package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +15 -57
- package/esm2020/lib/store/reducers/app.reducer.mjs +4 -2
- package/fesm2015/alfresco-aca-content.mjs +63 -98
- package/fesm2015/alfresco-aca-content.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content.mjs +17 -98
- package/fesm2020/alfresco-aca-content.mjs.map +1 -1
- package/lib/components/common/user-info/user-info.component.d.ts +3 -52
- package/lib/components/sidenav/user-menu/user-menu.component.d.ts +2 -23
- package/package.json +1 -1
|
@@ -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 {
|
|
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 "@
|
|
35
|
-
import * as i2 from "@
|
|
36
|
-
import * as i3 from "@angular/
|
|
37
|
-
import * as i4 from "@
|
|
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(
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
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: [
|
|
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
|
|
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
|
|
96
|
-
}]
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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 {
|
|
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 "@
|
|
36
|
-
import * as i2 from "@
|
|
37
|
-
import * as i3 from "@angular/
|
|
38
|
-
import * as i4 from "@
|
|
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(
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
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: [
|
|
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>{{ (
|
|
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>{{ (
|
|
95
|
-
}],
|
|
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,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2FwcC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUVMLGVBQWUsRUFZZixjQUFjLEVBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWtCLGlCQUFpQixFQUFFLE1BQWM7SUFDNUUsSUFBSSxRQUFrQixDQUFDO0lBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLGNBQWMsQ0FBQyxlQUFlO1lBQ2pDLFFBQVEsR0FBRyxFQUFFLEdBQUksTUFBZ0MsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxNQUFNO1FBQ1IsS0FBSyxlQUFlLENBQUMsWUFBWTtZQUMvQixRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsY0FBYztZQUNoQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUE4QixDQUFDLENBQUM7WUFDN0QsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtZQUNsQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsaUJBQWlCO1lBQ25DLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBcUMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxhQUFhO1lBQy9CLFFBQVEsR0FBRyxnQkFBZ0Is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R0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsS0FBZSxFQUFFLE1BQW9DO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBZSxFQUFFLE1BQXdCO0lBQzNELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdGF0ZSxcbiAgTm9kZUFjdGlvblR5cGVzLFxuICBTZXRVc2VyUHJvZmlsZUFjdGlvbixcbiAgU2V0Q3VycmVudEZvbGRlckFjdGlvbixcbiAgU2V0Q3VycmVudFVybEFjdGlvbixcbiAgU2V0SW5pdGlhbFN0YXRlQWN0aW9uLFxuICBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uLFxuICBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24sXG4gIFNldEN1cnJlbnROb2RlVmVyc2lvbkFjdGlvbixcbiAgU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbixcbiAgQXBwQWN0aW9uVHlwZXMsXG4gIFNob3dMb2FkZXJBY3Rpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9BUFBfU1RBVEUgfSBmcm9tICcuLi9pbml0aWFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcFJlZHVjZXIoc3RhdGU6IEFwcFN0YXRlID0gSU5JVElBTF9BUFBfU1RBVEUsIGFjdGlvbjogQWN0aW9uKTogQXBwU3RhdGUge1xuICBsZXQgbmV3U3RhdGU6IEFwcFN0YXRlO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluaXRpYWxTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0geyAuLi4oYWN0aW9uIGFzIFNldEluaXRpYWxTdGF0ZUFjdGlvbikucGF5bG9hZCB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOb2RlQWN0aW9uVHlwZXMuU2V0U2VsZWN0aW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVTZWxlY3RlZE5vZGVzKHN0YXRlLCBhY3Rpb24gYXMgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldFVzZXJQcm9maWxlOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVVc2VyKHN0YXRlLCBhY3Rpb24gYXMgU2V0VXNlclByb2ZpbGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50Rm9sZGVyOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Rm9sZGVyKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudEZvbGRlckFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRWZXJzaW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Tm9kZVZlcnNpb24oc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50VXJsOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50VXJsKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudFVybEFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlRvZ2dsZUluZm9EcmF3ZXI6XG4gICAgICBuZXdTdGF0ZSA9IHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyU3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3Q6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJBc3BlY3Qoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRSZXBvc2l0b3J5SW5mbzpcbiAgICAgIG5ld1N0YXRlID0gdXBkYXRlUmVwb3NpdG9yeVN0YXR1cyhzdGF0ZSwgYWN0aW9uIGFzIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0RmlsZVVwbG9hZGluZ0RpYWxvZzpcbiAgICAgIG5ld1N0YXRlID0gc2V0VXBsb2FkRGlhbG9nVmlzaWJpbGl0eShzdGF0ZSwgYWN0aW9uIGFzIFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TaG93SW5mb0RyYXdlclByZXZpZXc6XG4gICAgICBuZXdTdGF0ZSA9IHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJQcmV2aWV3U3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJQcmV2aWV3KHN0YXRlLCBhY3Rpb24gYXMgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNob3dMb2FkZXJBY3Rpb246XG4gICAgICBuZXdTdGF0ZSA9IHNob3dMb2FkZXIoc3RhdGUsIGFjdGlvbiBhcyBTaG93TG9hZGVyQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVXNlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0VXNlclByb2ZpbGVBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCB1c2VyID0gYWN0aW9uLnBheWxvYWQucGVyc29uO1xuICBjb25zdCBncm91cHMgPSBbLi4uKGFjdGlvbi5wYXlsb2FkLmdyb3VwcyB8fCBbXSldO1xuXG4gIGNvbnN0IGlkID0gdXNlci5pZDtcbiAgY29uc3QgZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWUgfHwgJyc7XG4gIGNvbnN0IGxhc3ROYW1lID0gdXNlci5sYXN0TmFtZSB8fCAnJztcbiAgY29uc3QgdXNlck5hbWUgPSBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YDtcbiAgY29uc3QgaW5pdGlhbHMgPSBbZmlyc3ROYW1lWzBdLCBsYXN0TmFtZVswXV0uam9pbignJyk7XG4gIGNvbnN0IGVtYWlsID0gdXNlci5lbWFpbDtcblxuICBjb25zdCBjYXBhYmlsaXRpZXMgPSB1c2VyLmNhcGFiaWxpdGllcztcbiAgY29uc3QgaXNBZG1pbiA9IGNhcGFiaWxpdGllcyA/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(
|
|
6167
|
-
this.
|
|
6168
|
-
this.
|
|
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: [
|
|
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>{{ (
|
|
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>{{ (
|
|
6220
|
-
}],
|
|
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(
|
|
6601
|
-
this.
|
|
6602
|
-
this.
|
|
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: [
|
|
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
|
|
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
|
|
6655
|
-
}]
|
|
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.
|