@eui/components 18.2.6 → 18.2.7-snapshot-1737719656069

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.
@@ -1,38 +1,62 @@
1
- import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Output, booleanAttribute } from '@angular/core';
2
- import { takeUntil } from 'rxjs/operators';
1
+ import { inject, Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Output, computed, signal, booleanAttribute, } from '@angular/core';
2
+ import { UserService } from '@eui/core';
3
3
  import { Subject } from 'rxjs';
4
+ import { toSignal } from '@angular/core/rxjs-interop';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@eui/core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@eui/components/eui-icon";
8
- import * as i4 from "@eui/components/eui-button";
9
- import * as i5 from "@eui/components/eui-avatar";
10
- import * as i6 from "@eui/components/eui-icon-button";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@eui/components/eui-icon";
8
+ import * as i3 from "@eui/components/eui-button";
9
+ import * as i4 from "@eui/components/eui-avatar";
10
+ import * as i5 from "@eui/components/eui-icon-button";
11
11
  export class EuiUserProfileCardComponent {
12
12
  get cssClasses() {
13
13
  return 'eui-user-profile-card';
14
14
  }
15
- constructor(userService) {
16
- this.userService = userService;
15
+ constructor() {
16
+ /**
17
+ * If true, the user is online
18
+ * @deprecated This property is not used anymore
19
+ */
17
20
  this.isOnline = true;
18
21
  this.impersonateLabel = 'impersonating';
19
22
  this.showDetailsLabel = 'Show profile details';
20
23
  this.isShowAvatarInitials = false;
24
+ /**
25
+ * If true, the name will be displayed in reverse order (first name, first)
26
+ */
27
+ this.reverseNameOrder = false;
21
28
  this.showProfileInfo = new EventEmitter();
22
29
  this.closeProfileMenu = new EventEmitter();
23
30
  this.unsubscribeSubject$ = new Subject();
31
+ this.userService = inject(UserService);
32
+ this.orderSignal = signal(false);
33
+ this.userState = toSignal(this.userService.getState());
34
+ }
35
+ ngOnChanges(changes) {
36
+ if (changes['reverseNameOrder']) {
37
+ this.orderSignal.set(this.reverseNameOrder);
38
+ }
24
39
  }
25
40
  ngOnInit() {
26
- this.userService
27
- .getState()
28
- .pipe(takeUntil(this.unsubscribeSubject$))
29
- .subscribe((state) => {
30
- if (state) {
31
- const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
32
- const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
33
- this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
34
- this.userState = state;
35
- }
41
+ this.avatarInitials = computed(() => {
42
+ const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();
43
+ const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();
44
+ return this.orderSignal() ?
45
+ `${firstNameInitial}${lastNameInitial}`
46
+ : `${lastNameInitial}${firstNameInitial}`;
47
+ });
48
+ this.fullName = computed(() => {
49
+ const user = this.userState();
50
+ const impersonated = this.userState().impersonatingUser;
51
+ const fullName = (user) => {
52
+ return this.orderSignal()
53
+ ? `${user.firstName} ${user.lastName}`
54
+ : `${user.lastName} ${user.firstName}`;
55
+ };
56
+ return {
57
+ user: fullName(user),
58
+ impersonated: impersonated ? fullName(impersonated) : undefined,
59
+ };
36
60
  });
37
61
  }
38
62
  ngOnDestroy() {
@@ -45,13 +69,13 @@ export class EuiUserProfileCardComponent {
45
69
  onClose() {
46
70
  this.closeProfileMenu.emit();
47
71
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiUserProfileCardComponent, selector: "eui-user-profile-card", inputs: { impersonateLabel: "impersonateLabel", showDetailsLabel: "showDetailsLabel", avatarUrl: "avatarUrl", isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute] }, outputs: { showProfileInfo: "showProfileInfo", closeProfileMenu: "closeProfileMenu" }, host: { properties: { "class": "this.cssClasses" } }, ngImport: i0, template: "<div class=\"eui-user-profile-card__main-wrapper\">\n <div class=\"eui-user-profile-card__avatar-wrapper\">\n <eui-avatar euiSizeL isFlat>\n <eui-avatar-text *ngIf=\"isShowAvatarInitials; else noAvatarInitials\">\n {{ avatarInitials }}\n </eui-avatar-text>\n <ng-template #noAvatarInitials>\n <eui-avatar-image *ngIf=\"!avatarUrl\"></eui-avatar-image>\n <eui-avatar-image *ngIf=\"avatarUrl\" [imageUrl]=\"avatarUrl\"></eui-avatar-image>\n </ng-template>\n </eui-avatar>\n </div>\n <div class=\"eui-user-profile-card__userInfos\">\n <div class=\"eui-u-f-xl eui-u-mb-s\">{{ userState.fullName }}</div>\n <div *ngIf=\"userState.function\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState.function }}\n </div>\n <div *ngIf=\"userState.organisation && userState.organisation.code\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState.organisation.code }}\n </div>\n </div>\n <div class=\"eui-user-profile-card__main-wrapper-right-content\">\n <eui-icon-button icon=\"close:outline\" size=\"s\" euiRounded (buttonClick)=\"onClose()\"/>\n <button euiButton euiIconButton euiInfo euiSizeS class=\"eui-u-ml-auto eui-u-mt-m\" tabindex=\"0\" (click)=\"onShowInfoClick()\" title=\"{{ showDetailsLabel }}\">\n <eui-icon-svg icon=\"information:outline\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-container *ngIf=\"userState?.impersonatingUser\">\n <div class=\"eui-user-profile-card__impersonateInfos\">\n <div>{{ userState?.impersonatingUser?.firstName }} {{ userState?.impersonatingUser?.lastName }}</div>\n <div class=\"eui-u-mt-2xs\">{{ impersonateLabel }}</div>\n <div class=\"eui-u-mt-2xs\">\n <strong>{{ userState?.fullName }}</strong>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiAvatarComponent, selector: "div[euiAvatar], span[euiAvatar], eui-avatar", inputs: ["e2eAttr", "aria-label", "hasShadow", "isShapeSquare", "isFlat", "hasNoBackground"] }, { kind: "component", type: i5.EuiAvatarTextComponent, selector: "eui-avatar-text" }, { kind: "component", type: i5.EuiAvatarImageComponent, selector: "eui-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i6.EuiIconButtonComponent, selector: "eui-icon-button", inputs: ["icon", "fillColor", "size", "ariaLabel", "tabindex", "hasNoPadding", "hasFocusHoverColor", "hasFocusHoverBg", "euiRounded", "euiDisabled"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiUserProfileCardComponent, selector: "eui-user-profile-card", inputs: { impersonateLabel: "impersonateLabel", showDetailsLabel: "showDetailsLabel", avatarUrl: "avatarUrl", isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], reverseNameOrder: "reverseNameOrder" }, outputs: { showProfileInfo: "showProfileInfo", closeProfileMenu: "closeProfileMenu" }, host: { properties: { "class": "this.cssClasses" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"eui-user-profile-card__main-wrapper\">\n <div class=\"eui-user-profile-card__avatar-wrapper\">\n <eui-avatar euiSizeL isFlat>\n <eui-avatar-text *ngIf=\"isShowAvatarInitials; else noAvatarInitials\">\n {{ avatarInitials() }}\n </eui-avatar-text>\n <ng-template #noAvatarInitials>\n <eui-avatar-image *ngIf=\"!avatarUrl\"></eui-avatar-image>\n <eui-avatar-image *ngIf=\"avatarUrl\" [imageUrl]=\"avatarUrl\"></eui-avatar-image>\n </ng-template>\n </eui-avatar>\n </div>\n <div class=\"eui-user-profile-card__userInfos\">\n <div class=\"eui-u-f-xl eui-u-mb-s\">{{ fullName()?.user }}</div>\n <div *ngIf=\"userState()?.function\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState()?.function }}\n </div>\n <div *ngIf=\"userState()?.organisation && userState()?.organisation.code\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState()?.organisation.code }}\n </div>\n </div>\n <div class=\"eui-user-profile-card__main-wrapper-right-content\">\n <eui-icon-button icon=\"close:outline\" size=\"s\" euiRounded (buttonClick)=\"onClose()\"/>\n <button euiButton euiIconButton euiInfo euiSizeS class=\"eui-u-ml-auto eui-u-mt-m\" tabindex=\"0\" (click)=\"onShowInfoClick()\" title=\"{{ showDetailsLabel }}\">\n <eui-icon-svg icon=\"information:outline\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-container *ngIf=\"userState()?.impersonatingUser\">\n <div class=\"eui-user-profile-card__impersonateInfos\">\n <div>{{ fullName()?.impersonated }}</div>\n <div class=\"eui-u-mt-2xs\">{{ impersonateLabel }}</div>\n <div class=\"eui-u-mt-2xs\">\n <strong>{{ fullName()?.user }}</strong>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i3.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i4.EuiAvatarComponent, selector: "div[euiAvatar], span[euiAvatar], eui-avatar", inputs: ["e2eAttr", "aria-label", "hasShadow", "isShapeSquare", "isFlat", "hasNoBackground"] }, { kind: "component", type: i4.EuiAvatarTextComponent, selector: "eui-avatar-text" }, { kind: "component", type: i4.EuiAvatarImageComponent, selector: "eui-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i5.EuiIconButtonComponent, selector: "eui-icon-button", inputs: ["icon", "fillColor", "size", "ariaLabel", "tabindex", "hasNoPadding", "hasFocusHoverColor", "hasFocusHoverBg", "euiRounded", "euiDisabled"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
50
74
  }
51
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, decorators: [{
52
76
  type: Component,
53
- args: [{ selector: 'eui-user-profile-card', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-user-profile-card__main-wrapper\">\n <div class=\"eui-user-profile-card__avatar-wrapper\">\n <eui-avatar euiSizeL isFlat>\n <eui-avatar-text *ngIf=\"isShowAvatarInitials; else noAvatarInitials\">\n {{ avatarInitials }}\n </eui-avatar-text>\n <ng-template #noAvatarInitials>\n <eui-avatar-image *ngIf=\"!avatarUrl\"></eui-avatar-image>\n <eui-avatar-image *ngIf=\"avatarUrl\" [imageUrl]=\"avatarUrl\"></eui-avatar-image>\n </ng-template>\n </eui-avatar>\n </div>\n <div class=\"eui-user-profile-card__userInfos\">\n <div class=\"eui-u-f-xl eui-u-mb-s\">{{ userState.fullName }}</div>\n <div *ngIf=\"userState.function\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState.function }}\n </div>\n <div *ngIf=\"userState.organisation && userState.organisation.code\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState.organisation.code }}\n </div>\n </div>\n <div class=\"eui-user-profile-card__main-wrapper-right-content\">\n <eui-icon-button icon=\"close:outline\" size=\"s\" euiRounded (buttonClick)=\"onClose()\"/>\n <button euiButton euiIconButton euiInfo euiSizeS class=\"eui-u-ml-auto eui-u-mt-m\" tabindex=\"0\" (click)=\"onShowInfoClick()\" title=\"{{ showDetailsLabel }}\">\n <eui-icon-svg icon=\"information:outline\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-container *ngIf=\"userState?.impersonatingUser\">\n <div class=\"eui-user-profile-card__impersonateInfos\">\n <div>{{ userState?.impersonatingUser?.firstName }} {{ userState?.impersonatingUser?.lastName }}</div>\n <div class=\"eui-u-mt-2xs\">{{ impersonateLabel }}</div>\n <div class=\"eui-u-mt-2xs\">\n <strong>{{ userState?.fullName }}</strong>\n </div>\n </div>\n</ng-container>\n" }]
54
- }], ctorParameters: () => [{ type: i1.UserService }], propDecorators: { cssClasses: [{
77
+ args: [{ selector: 'eui-user-profile-card', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-user-profile-card__main-wrapper\">\n <div class=\"eui-user-profile-card__avatar-wrapper\">\n <eui-avatar euiSizeL isFlat>\n <eui-avatar-text *ngIf=\"isShowAvatarInitials; else noAvatarInitials\">\n {{ avatarInitials() }}\n </eui-avatar-text>\n <ng-template #noAvatarInitials>\n <eui-avatar-image *ngIf=\"!avatarUrl\"></eui-avatar-image>\n <eui-avatar-image *ngIf=\"avatarUrl\" [imageUrl]=\"avatarUrl\"></eui-avatar-image>\n </ng-template>\n </eui-avatar>\n </div>\n <div class=\"eui-user-profile-card__userInfos\">\n <div class=\"eui-u-f-xl eui-u-mb-s\">{{ fullName()?.user }}</div>\n <div *ngIf=\"userState()?.function\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState()?.function }}\n </div>\n <div *ngIf=\"userState()?.organisation && userState()?.organisation.code\" class=\"eui-user-profile-card__userInfos-item\">\n {{ userState()?.organisation.code }}\n </div>\n </div>\n <div class=\"eui-user-profile-card__main-wrapper-right-content\">\n <eui-icon-button icon=\"close:outline\" size=\"s\" euiRounded (buttonClick)=\"onClose()\"/>\n <button euiButton euiIconButton euiInfo euiSizeS class=\"eui-u-ml-auto eui-u-mt-m\" tabindex=\"0\" (click)=\"onShowInfoClick()\" title=\"{{ showDetailsLabel }}\">\n <eui-icon-svg icon=\"information:outline\"></eui-icon-svg>\n </button>\n </div>\n</div>\n\n<ng-container *ngIf=\"userState()?.impersonatingUser\">\n <div class=\"eui-user-profile-card__impersonateInfos\">\n <div>{{ fullName()?.impersonated }}</div>\n <div class=\"eui-u-mt-2xs\">{{ impersonateLabel }}</div>\n <div class=\"eui-u-mt-2xs\">\n <strong>{{ fullName()?.user }}</strong>\n </div>\n </div>\n</ng-container>\n" }]
78
+ }], ctorParameters: () => [], propDecorators: { cssClasses: [{
55
79
  type: HostBinding,
56
80
  args: ['class']
57
81
  }], impersonateLabel: [{
@@ -63,9 +87,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
63
87
  }], isShowAvatarInitials: [{
64
88
  type: Input,
65
89
  args: [{ transform: booleanAttribute }]
90
+ }], reverseNameOrder: [{
91
+ type: Input
66
92
  }], showProfileInfo: [{
67
93
  type: Output
68
94
  }], closeProfileMenu: [{
69
95
  type: Output
70
96
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXVpLXVzZXItcHJvZmlsZS91c2VyLXByb2ZpbGUtY2FyZC91c2VyLXByb2ZpbGUtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9ldWktdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS1jYXJkL3VzZXItcHJvZmlsZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFhLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JLLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVEvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLElBQ1csVUFBVTtRQUNqQixPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7SUFnQkQsWUFDWSxXQUFxQztRQUFyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBMEI7UUFiakQsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVQLHFCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztRQUVYLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUUzRCxvQkFBZSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pELHFCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELHdCQUFtQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSXhELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVc7YUFDWCxRQUFRLEVBQUU7YUFDVixJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUN0QzthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3hFLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLGdCQUFnQixHQUFHLGVBQWUsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBbkRRLDJCQUEyQjttR0FBM0IsMkJBQTJCLDBOQWFoQixnQkFBZ0IsMEtDekJ4Qyx1NkRBc0NBOzs0RkQxQmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsT0FBTyxpQkFDakMsaUJBQWlCLENBQUMsSUFBSTtnRkFJMUIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxPQUFPO2dCQVNYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDa0Msb0JBQW9CO3NCQUEzRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGUgfSBmcm9tICcuLi91c2VyLXByb2ZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdXNlci1wcm9maWxlLWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVVzZXJQcm9maWxlQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdldWktdXNlci1wcm9maWxlLWNhcmQnO1xuICAgIH1cblxuICAgIGF2YXRhckluaXRpYWxzOiBzdHJpbmc7XG4gICAgdXNlclN0YXRlOiBVc2VyUHJvZmlsZTtcbiAgICBpc09ubGluZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBpbXBlcnNvbmF0ZUxhYmVsID0gJ2ltcGVyc29uYXRpbmcnO1xuICAgIEBJbnB1dCgpIHNob3dEZXRhaWxzTGFiZWwgPSAnU2hvdyBwcm9maWxlIGRldGFpbHMnO1xuICAgIEBJbnB1dCgpIGF2YXRhclVybDogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Nob3dBdmF0YXJJbml0aWFscyA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHNob3dQcm9maWxlSW5mbzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjbG9zZVByb2ZpbGVNZW51OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlU3ViamVjdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlPFVzZXJQcm9maWxlPixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgICAgICAgLmdldFN0YXRlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lSW5pdGlhbCA9IHN0YXRlLmZpcnN0TmFtZT8uc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3ROYW1lSW5pdGlhbCA9IHN0YXRlLmxhc3ROYW1lPy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdmF0YXJJbml0aWFscyA9IGAke2ZpcnN0TmFtZUluaXRpYWx9JHtsYXN0TmFtZUluaXRpYWx9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZVN1YmplY3QkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZVN1YmplY3QkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb25TaG93SW5mb0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dQcm9maWxlSW5mby5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVByb2ZpbGVNZW51LmVtaXQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jYXJkX19tYWluLXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jYXJkX19hdmF0YXItd3JhcHBlclwiPlxuICAgICAgICA8ZXVpLWF2YXRhciBldWlTaXplTCBpc0ZsYXQ+XG4gICAgICAgICAgICA8ZXVpLWF2YXRhci10ZXh0ICpuZ0lmPVwiaXNTaG93QXZhdGFySW5pdGlhbHM7IGVsc2Ugbm9BdmF0YXJJbml0aWFsc1wiPlxuICAgICAgICAgICAgICAgIHt7IGF2YXRhckluaXRpYWxzIH19XG4gICAgICAgICAgICA8L2V1aS1hdmF0YXItdGV4dD5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BdmF0YXJJbml0aWFscz5cbiAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci1pbWFnZSAqbmdJZj1cIiFhdmF0YXJVcmxcIj48L2V1aS1hdmF0YXItaW1hZ2U+XG4gICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItaW1hZ2UgKm5nSWY9XCJhdmF0YXJVcmxcIiBbaW1hZ2VVcmxdPVwiYXZhdGFyVXJsXCI+PC9ldWktYXZhdGFyLWltYWdlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9ldWktYXZhdGFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlLWNhcmRfX3VzZXJJbmZvc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtZi14bCBldWktdS1tYi1zXCI+e3sgdXNlclN0YXRlLmZ1bGxOYW1lIH19PC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyU3RhdGUuZnVuY3Rpb25cIiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGUtY2FyZF9fdXNlckluZm9zLWl0ZW1cIj5cbiAgICAgICAgICAgIHt7IHVzZXJTdGF0ZS5mdW5jdGlvbiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJTdGF0ZS5vcmdhbmlzYXRpb24gJiYgdXNlclN0YXRlLm9yZ2FuaXNhdGlvbi5jb2RlXCIgY2xhc3M9XCJldWktdXNlci1wcm9maWxlLWNhcmRfX3VzZXJJbmZvcy1pdGVtXCI+XG4gICAgICAgICAgICB7eyB1c2VyU3RhdGUub3JnYW5pc2F0aW9uLmNvZGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGUtY2FyZF9fbWFpbi13cmFwcGVyLXJpZ2h0LWNvbnRlbnRcIj5cbiAgICAgICAgPGV1aS1pY29uLWJ1dHRvbiBpY29uPVwiY2xvc2U6b3V0bGluZVwiIHNpemU9XCJzXCIgZXVpUm91bmRlZCAoYnV0dG9uQ2xpY2spPVwib25DbG9zZSgpXCIvPlxuICAgICAgICA8YnV0dG9uIGV1aUJ1dHRvbiBldWlJY29uQnV0dG9uIGV1aUluZm8gZXVpU2l6ZVMgY2xhc3M9XCJldWktdS1tbC1hdXRvIGV1aS11LW10LW1cIiB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwib25TaG93SW5mb0NsaWNrKClcIiB0aXRsZT1cInt7IHNob3dEZXRhaWxzTGFiZWwgfX1cIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImluZm9ybWF0aW9uOm91dGxpbmVcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJTdGF0ZT8uaW1wZXJzb25hdGluZ1VzZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jYXJkX19pbXBlcnNvbmF0ZUluZm9zXCI+XG4gICAgICAgIDxkaXY+e3sgdXNlclN0YXRlPy5pbXBlcnNvbmF0aW5nVXNlcj8uZmlyc3ROYW1lIH19IHt7IHVzZXJTdGF0ZT8uaW1wZXJzb25hdGluZ1VzZXI/Lmxhc3ROYW1lIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1tdC0yeHNcIj57eyBpbXBlcnNvbmF0ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1tdC0yeHNcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdXNlclN0YXRlPy5mdWxsTmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXVpLXVzZXItcHJvZmlsZS91c2VyLXByb2ZpbGUtY2FyZC91c2VyLXByb2ZpbGUtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9ldWktdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS1jYXJkL3VzZXItcHJvZmlsZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxZQUFZLEVBQ1osTUFBTSxFQUdOLFFBQVEsRUFDUixNQUFNLEVBR04sZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFRdEQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxJQUNXLFVBQVU7UUFDakIsT0FBTyx1QkFBdUIsQ0FBQztJQUNuQyxDQUFDO0lBNkJEO1FBckJBOzs7V0FHRztRQUNILGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFUCxxQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsc0JBQXNCLENBQUM7UUFFWCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDckU7O1dBRUc7UUFDTSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RCx3QkFBbUIsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FB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Z0JBQWdCLEVBQUU7Z0JBSTdCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgaW5qZWN0LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgU2lnbmFsLFxuICAgIGNvbXB1dGVkLFxuICAgIHNpZ25hbCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXJQcm9maWxlIH0gZnJvbSAnLi4vdXNlci1wcm9maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSwgVXNlckRldGFpbHMgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXVzZXItcHJvZmlsZS1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1wcm9maWxlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlVc2VyUHJvZmlsZUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdldWktdXNlci1wcm9maWxlLWNhcmQnO1xuICAgIH1cblxuICAgIGF2YXRhckluaXRpYWxzOiBTaWduYWw8c3RyaW5nPjtcbiAgICAvKipcbiAgICAgKiBIb2xkcyB0aGUgZnVsbCBuYW1lIG9mIHRoZSB1c2VyIGFuZCB0aGUgaW1wZXJzb25hdGVkIHVzZXJcbiAgICAgKi9cbiAgICBmdWxsTmFtZTogU2lnbmFsPHsgdXNlcjogc3RyaW5nLCBpbXBlcnNvbmF0ZWQ6IHN0cmluZyB9PjtcbiAgICB1c2VyU3RhdGU6IFNpZ25hbDxVc2VyUHJvZmlsZT47XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIHVzZXIgaXMgb25saW5lXG4gICAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wZXJ0eSBpcyBub3QgdXNlZCBhbnltb3JlXG4gICAgICovXG4gICAgaXNPbmxpbmUgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgaW1wZXJzb25hdGVMYWJlbCA9ICdpbXBlcnNvbmF0aW5nJztcbiAgICBASW5wdXQoKSBzaG93RGV0YWlsc0xhYmVsID0gJ1Nob3cgcHJvZmlsZSBkZXRhaWxzJztcbiAgICBASW5wdXQoKSBhdmF0YXJVcmw6IHN0cmluZztcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaG93QXZhdGFySW5pdGlhbHMgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgbmFtZSB3aWxsIGJlIGRpc3BsYXllZCBpbiByZXZlcnNlIG9yZGVyIChmaXJzdCBuYW1lLCBmaXJzdClcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZXZlcnNlTmFtZU9yZGVyID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgc2hvd1Byb2ZpbGVJbmZvOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNsb3NlUHJvZmlsZU1lbnU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlU3ViamVjdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlPFVzZXJQcm9maWxlPiA9IGluamVjdChVc2VyU2VydmljZSk7XG4gICAgcHJpdmF0ZSBvcmRlclNpZ25hbCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51c2VyU3RhdGUgPSB0b1NpZ25hbCh0aGlzLnVzZXJTZXJ2aWNlLmdldFN0YXRlKCkpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3JldmVyc2VOYW1lT3JkZXInXSkge1xuICAgICAgICAgICAgdGhpcy5vcmRlclNpZ25hbC5zZXQodGhpcy5yZXZlcnNlTmFtZU9yZGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YXRhckluaXRpYWxzID0gY29tcHV0ZWQoKCk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE5hbWVJbml0aWFsID0gdGhpcy51c2VyU3RhdGUoKS5maXJzdE5hbWU/LnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3QgbGFzdE5hbWVJbml0aWFsID0gdGhpcy51c2VyU3RhdGUoKS5sYXN0TmFtZT8uc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcmRlclNpZ25hbCgpID9cbiAgICAgICAgICAgICAgICBgJHtmaXJzdE5hbWVJbml0aWFsfSR7bGFzdE5hbWVJbml0aWFsfWBcbiAgICAgICAgICAgICAgICA6IGAke2xhc3ROYW1lSW5pdGlhbH0ke2ZpcnN0TmFtZUluaXRpYWx9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyU3RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGltcGVyc29uYXRlZCA9IHRoaXMudXNlclN0YXRlKCkuaW1wZXJzb25hdGluZ1VzZXI7XG5cbiAgICAgICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gKHVzZXI6IFVzZXJEZXRhaWxzKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcmRlclNpZ25hbCgpXG4gICAgICAgICAgICAgICAgICAgID8gYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gXG4gICAgICAgICAgICAgICAgICAgIDogYCR7dXNlci5sYXN0TmFtZX0gJHt1c2VyLmZpcnN0TmFtZX1gO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdXNlcjogZnVsbE5hbWUodXNlciksXG4gICAgICAgICAgICAgICAgaW1wZXJzb25hdGVkOiBpbXBlcnNvbmF0ZWQgPyBmdWxsTmFtZShpbXBlcnNvbmF0ZWQpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVTdWJqZWN0JC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVTdWJqZWN0JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIG9uU2hvd0luZm9DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93UHJvZmlsZUluZm8uZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VQcm9maWxlTWVudS5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGUtY2FyZF9fbWFpbi13cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGUtY2FyZF9fYXZhdGFyLXdyYXBwZXJcIj5cbiAgICAgICAgPGV1aS1hdmF0YXIgZXVpU2l6ZUwgaXNGbGF0PlxuICAgICAgICAgICAgPGV1aS1hdmF0YXItdGV4dCAqbmdJZj1cImlzU2hvd0F2YXRhckluaXRpYWxzOyBlbHNlIG5vQXZhdGFySW5pdGlhbHNcIj5cbiAgICAgICAgICAgICAgICB7eyBhdmF0YXJJbml0aWFscygpIH19XG4gICAgICAgICAgICA8L2V1aS1hdmF0YXItdGV4dD5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BdmF0YXJJbml0aWFscz5cbiAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci1pbWFnZSAqbmdJZj1cIiFhdmF0YXJVcmxcIj48L2V1aS1hdmF0YXItaW1hZ2U+XG4gICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItaW1hZ2UgKm5nSWY9XCJhdmF0YXJVcmxcIiBbaW1hZ2VVcmxdPVwiYXZhdGFyVXJsXCI+PC9ldWktYXZhdGFyLWltYWdlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9ldWktYXZhdGFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlLWNhcmRfX3VzZXJJbmZvc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtZi14bCBldWktdS1tYi1zXCI+e3sgZnVsbE5hbWUoKT8udXNlciB9fTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlclN0YXRlKCk/LmZ1bmN0aW9uXCIgY2xhc3M9XCJldWktdXNlci1wcm9maWxlLWNhcmRfX3VzZXJJbmZvcy1pdGVtXCI+XG4gICAgICAgICAgICB7eyB1c2VyU3RhdGUoKT8uZnVuY3Rpb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyU3RhdGUoKT8ub3JnYW5pc2F0aW9uICYmIHVzZXJTdGF0ZSgpPy5vcmdhbmlzYXRpb24uY29kZVwiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jYXJkX191c2VySW5mb3MtaXRlbVwiPlxuICAgICAgICAgICAge3sgdXNlclN0YXRlKCk/Lm9yZ2FuaXNhdGlvbi5jb2RlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlLWNhcmRfX21haW4td3JhcHBlci1yaWdodC1jb250ZW50XCI+XG4gICAgICAgIDxldWktaWNvbi1idXR0b24gaWNvbj1cImNsb3NlOm91dGxpbmVcIiBzaXplPVwic1wiIGV1aVJvdW5kZWQgKGJ1dHRvbkNsaWNrKT1cIm9uQ2xvc2UoKVwiLz5cbiAgICAgICAgPGJ1dHRvbiBldWlCdXR0b24gZXVpSWNvbkJ1dHRvbiBldWlJbmZvIGV1aVNpemVTIGNsYXNzPVwiZXVpLXUtbWwtYXV0byBldWktdS1tdC1tXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm9uU2hvd0luZm9DbGljaygpXCIgdGl0bGU9XCJ7eyBzaG93RGV0YWlsc0xhYmVsIH19XCI+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJpbmZvcm1hdGlvbjpvdXRsaW5lXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyU3RhdGUoKT8uaW1wZXJzb25hdGluZ1VzZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jYXJkX19pbXBlcnNvbmF0ZUluZm9zXCI+XG4gICAgICAgIDxkaXY+e3sgZnVsbE5hbWUoKT8uaW1wZXJzb25hdGVkIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1tdC0yeHNcIj57eyBpbXBlcnNvbmF0ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1tdC0yeHNcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZnVsbE5hbWUoKT8udXNlciB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,8 +1,8 @@
1
- import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, forwardRef, ContentChildren, booleanAttribute } from '@angular/core';
2
- import { takeUntil } from 'rxjs/operators';
1
+ import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, forwardRef, ContentChildren, booleanAttribute, computed, signal, } from '@angular/core';
3
2
  import { Subject } from 'rxjs';
4
3
  import { BaseStatesDirective } from '@eui/components/shared';
5
4
  import { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';
5
+ import { toSignal } from '@angular/core/rxjs-interop';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@eui/core";
8
8
  import * as i2 from "@eui/components/shared";
@@ -38,20 +38,40 @@ export class EuiUserProfileComponent {
38
38
  this.euiStatusSecondary = false;
39
39
  this.euiStatusSuccess = false;
40
40
  this.euiStatusDanger = false;
41
+ /**
42
+ * If true, the name will be displayed in reverse order (first name, first)
43
+ */
44
+ this.reverseNameOrder = false;
41
45
  this.isDropdownOpen = false;
46
+ this.orderSignal = signal(false);
42
47
  this.unsubscribeSubject$ = new Subject();
48
+ this.userState = toSignal(this.userService.getState());
49
+ }
50
+ ngOnChanges(changes) {
51
+ if (changes['reverseNameOrder']) {
52
+ this.orderSignal.set(this.reverseNameOrder);
53
+ }
43
54
  }
44
55
  ngOnInit() {
45
- this.userService
46
- .getState()
47
- .pipe(takeUntil(this.unsubscribeSubject$))
48
- .subscribe((state) => {
49
- if (state) {
50
- this.userState = state;
51
- const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
52
- const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
53
- this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
54
- }
56
+ this.avatarInitials = computed(() => {
57
+ const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();
58
+ const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();
59
+ return this.orderSignal() ?
60
+ `${firstNameInitial}${lastNameInitial}`
61
+ : `${lastNameInitial}${firstNameInitial}`;
62
+ });
63
+ this.fullName = computed(() => {
64
+ const user = this.userState();
65
+ const impersonated = this.userState().impersonatingUser;
66
+ const fullName = (user) => {
67
+ return this.orderSignal()
68
+ ? `${user.firstName} ${user.lastName}`
69
+ : `${user.lastName} ${user.firstName}`;
70
+ };
71
+ return {
72
+ user: fullName(user),
73
+ impersonated: impersonated ? fullName(impersonated) : undefined,
74
+ };
55
75
  });
56
76
  }
57
77
  ngAfterViewInit() {
@@ -90,7 +110,7 @@ export class EuiUserProfileComponent {
90
110
  this.isDropdownOpen = isOpen;
91
111
  }
92
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileComponent, deps: [{ token: i0.ElementRef }, { token: i1.UserService }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", subInfos: "subInfos", statusVariant: "statusVariant", hasMenu: ["hasMenu", "hasMenu", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], isReverse: ["isReverse", "isReverse", booleanAttribute], hasToggle: ["hasToggle", "hasToggle", booleanAttribute], isHeaderUserProfile: ["isHeaderUserProfile", "isHeaderUserProfile", booleanAttribute], isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], euiStatusSecondary: ["euiStatusSecondary", "euiStatusSecondary", booleanAttribute], euiStatusSuccess: ["euiStatusSuccess", "euiStatusSuccess", booleanAttribute], euiStatusDanger: ["euiStatusDanger", "euiStatusDanger", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "hasMenuContent", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent), descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSecondary", "euiSecondary", "euiPrimary", "euiPrimary"] }], ngImport: i0, template: "@if (hasMenu) {\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown (expand)=\"onDropdownExpand($event)\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n <eui-dropdown-content>\n <ng-content/>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n}\n\n<ng-template #userProfileContent>\n <button class=\"eui-user-profile-content\" [tabindex]=\"hasMenu ? '0' : '-1'\" [class.eui-user-profile-content--no-menu]=\"!hasMenu\">\n\n @if (isShowUserInfos) {\n <div class=\"eui-user-profile__infos\">\n @if (userState?.impersonatingUser) {\n <div class=\"eui-user-profile__infos-welcome\">\n @if (hasWelcomeLabel) {\n <span>{{ welcomeLabel }}</span>\n }\n {{ userState?.impersonatingUser?.firstName }} <strong>{{ userState?.impersonatingUser?.lastName}}</strong>\n <span>&nbsp;{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.firstName }} <strong>{{ userState?.lastName }}</strong>\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n } @else {\n @if (hasWelcomeLabel) {\n <div class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n }\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.firstName }} <strong>{{ userState?.lastName }}</strong>\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n }\n </div>\n }\n\n <eui-avatar isFlat [euiSizeS]=\"baseStatesDirective.euiSizeS\" [hasShadow]=\"userState?.impersonatingUser\">\n\n @if (isShowAvatarInitials) {\n <eui-avatar-text>{{ avatarInitials }}</eui-avatar-text>\n } @else {\n <eui-avatar-image [imageUrl]=\"avatarUrl\"/>\n }\n\n @if (euiStatusSecondary || euiStatusSuccess || euiStatusDanger) {\n <eui-avatar-badge position=\"bottom\">\n @if (euiStatusSuccess) {\n <eui-badge euiSuccess euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"checkmark:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusDanger) {\n <eui-badge euiDanger euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"remove:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusSecondary) {\n <eui-badge euiSecondary euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"close-circle:outline\" fillColor=\"neutral\" size=\"xs\"/>\n </eui-badge>\n }\n </eui-avatar-badge>\n }\n </eui-avatar>\n\n @if (hasMenu || hasToggle) {\n @if (isDropdownOpen) {\n <eui-icon-svg icon=\"chevron-up:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n } @else {\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n }\n }\n </button>\n</ng-template>\n", styles: [".eui-18 .eui-user-profile{display:flex;position:relative}.eui-18 .eui-user-profile-content{align-items:center;background:none;border:var(--eui-bw-none);cursor:pointer;display:flex;padding:var(--eui-s-2xs) 0;gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-content:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-content--no-menu{cursor:default}.eui-18 .eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column}.eui-18 .eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-18 .eui-user-profile__infos-welcome{text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__infos-name{color:var(--eui-c-branding);text-align:right;font:var(--eui-f-m-compact)}.eui-18 .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral);text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__drop-indicator{margin-left:calc(-1 * var(--eui-s-xs))}.eui-18 .eui--secondary .eui-user-profile__infos-name,.eui-18 .eui--secondary .eui-user-profile__infos-welcome{color:var(--eui-c-neutral)!important}@media screen and (max-width: 767px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.eui-18 .is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-name{color:var(--eui-c-white)}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-welcome,.eui-18 .eui-user-profile--primary .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral-lightest)}.eui-18 .eui-user-profile--primary .eui-user-profile__drop-indicator svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-18 .eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-18 .eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-s-m)}.eui-18 .eui-user-profile--initials .eui-avatar-content{background-color:var(--eui-c-branding-light)}.eui-18 .eui-user-profile--initials .eui-avatar-text{color:var(--eui-c-branding-light-contrast)}.eui-18 .eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-18 .eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);cursor:pointer;display:flex;padding:var(--eui-s-xs) var(--eui-s-s);gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:hover{background-color:var(--eui-c-hover);cursor:pointer}.eui-18 .eui-user-profile-menu-item:last-child{border-bottom:0}.eui-18 .eui-user-profile-menu-item a{color:var(--eui-c-text);text-decoration:none}.eui-18 .eui-user-profile-menu-item.link{cursor:pointer}.eui-18 .eui-user-profile-menu-item-right-content{margin-left:auto}.eui-18 .eui-user-profile-card{width:100%}.eui-18 .eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-s-m) var(--eui-s-m) var(--eui-s-m) 0}.eui-18 .eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-18 .eui-user-profile-card__avatar-wrapper{display:flex}.eui-18 .eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-s-s)}.eui-18 .eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-s-xs)}.eui-18 .eui-user-profile-card__impersonateInfos{background-color:var(--eui-c-neutral-bg-light);padding:var(--eui-s-s)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiAvatarComponent, selector: "div[euiAvatar], span[euiAvatar], eui-avatar", inputs: ["e2eAttr", "aria-label", "hasShadow", "isShapeSquare", "isFlat", "hasNoBackground"] }, { kind: "component", type: i6.EuiAvatarTextComponent, selector: "eui-avatar-text" }, { kind: "component", type: i6.EuiAvatarImageComponent, selector: "eui-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i6.EuiAvatarBadgeComponent, selector: "eui-avatar-badge", inputs: ["position"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label", "maxCharCount", "charReplacement", "euiIconBadge", "euiDottedBadge"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", subInfos: "subInfos", statusVariant: "statusVariant", hasMenu: ["hasMenu", "hasMenu", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], isReverse: ["isReverse", "isReverse", booleanAttribute], hasToggle: ["hasToggle", "hasToggle", booleanAttribute], isHeaderUserProfile: ["isHeaderUserProfile", "isHeaderUserProfile", booleanAttribute], isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], euiStatusSecondary: ["euiStatusSecondary", "euiStatusSecondary", booleanAttribute], euiStatusSuccess: ["euiStatusSuccess", "euiStatusSuccess", booleanAttribute], euiStatusDanger: ["euiStatusDanger", "euiStatusDanger", booleanAttribute], reverseNameOrder: "reverseNameOrder" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "hasMenuContent", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent), descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSecondary", "euiSecondary", "euiPrimary", "euiPrimary"] }], ngImport: i0, template: "@if (hasMenu) {\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown (expand)=\"onDropdownExpand($event)\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n <eui-dropdown-content>\n <ng-content/>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n}\n\n<ng-template #userProfileContent>\n <button class=\"eui-user-profile-content\" [tabindex]=\"hasMenu ? '0' : '-1'\" [class.eui-user-profile-content--no-menu]=\"!hasMenu\">\n\n @if (isShowUserInfos) {\n <div class=\"eui-user-profile__infos\">\n @if (userState()?.impersonatingUser) {\n <div class=\"eui-user-profile__infos-welcome\">\n @if (hasWelcomeLabel) {\n <span>{{ welcomeLabel }}&nbsp;</span>\n }\n @if(reverseNameOrder) {\n {{ userState()?.impersonatingUser?.firstName }} <strong>{{ userState()?.impersonatingUser?.lastName}}&nbsp;</strong>\n } @else {\n <strong>{{ userState()?.impersonatingUser?.lastName }}</strong> {{ userState()?.impersonatingUser?.firstName }}\n }\n <span>{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n @if(reverseNameOrder) {\n {{ userState()?.firstName }} <strong>{{ userState()?.lastName }}</strong>\n } @else {\n <strong>{{ userState()?.lastName }}</strong> {{ userState()?.firstName }}\n }\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n } @else {\n @if (hasWelcomeLabel) {\n <div class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n }\n <div class=\"eui-user-profile__infos-name\">\n @if(reverseNameOrder) {\n {{ userState()?.firstName }} <strong>{{ userState()?.lastName }}</strong>\n } @else {\n <strong>{{ userState()?.lastName }}</strong> {{ userState()?.firstName }}\n }\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n }\n </div>\n }\n\n <eui-avatar isFlat [euiSizeS]=\"baseStatesDirective.euiSizeS\" [hasShadow]=\"userState()?.impersonatingUser\">\n\n @if (isShowAvatarInitials) {\n <eui-avatar-text>{{ avatarInitials() }}</eui-avatar-text>\n } @else {\n <eui-avatar-image [imageUrl]=\"avatarUrl\"/>\n }\n\n @if (euiStatusSecondary || euiStatusSuccess || euiStatusDanger) {\n <eui-avatar-badge position=\"bottom\">\n @if (euiStatusSuccess) {\n <eui-badge euiSuccess euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"checkmark:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusDanger) {\n <eui-badge euiDanger euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"remove:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusSecondary) {\n <eui-badge euiSecondary euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"close-circle:outline\" fillColor=\"neutral\" size=\"xs\"/>\n </eui-badge>\n }\n </eui-avatar-badge>\n }\n </eui-avatar>\n\n @if (hasMenu || hasToggle) {\n @if (isDropdownOpen) {\n <eui-icon-svg icon=\"chevron-up:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n } @else {\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n }\n }\n </button>\n</ng-template>\n", styles: [".eui-18 .eui-user-profile{display:flex;position:relative}.eui-18 .eui-user-profile-content{align-items:center;background:none;border:var(--eui-bw-none);cursor:pointer;display:flex;padding:var(--eui-s-2xs) 0;gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-content:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-content--no-menu{cursor:default}.eui-18 .eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column}.eui-18 .eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-18 .eui-user-profile__infos-welcome{text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__infos-name{color:var(--eui-c-branding);text-align:right;font:var(--eui-f-m-compact)}.eui-18 .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral);text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__drop-indicator{margin-left:calc(-1 * var(--eui-s-xs))}.eui-18 .eui--secondary .eui-user-profile__infos-name,.eui-18 .eui--secondary .eui-user-profile__infos-welcome{color:var(--eui-c-neutral)!important}@media screen and (max-width: 767px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.eui-18 .is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-name{color:var(--eui-c-white)}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-welcome,.eui-18 .eui-user-profile--primary .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral-lightest)}.eui-18 .eui-user-profile--primary .eui-user-profile__drop-indicator svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-18 .eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-18 .eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-s-m)}.eui-18 .eui-user-profile--initials .eui-avatar-content{background-color:var(--eui-c-branding-light)}.eui-18 .eui-user-profile--initials .eui-avatar-text{color:var(--eui-c-branding-light-contrast)}.eui-18 .eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-18 .eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);cursor:pointer;display:flex;padding:var(--eui-s-xs) var(--eui-s-s);gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:hover{background-color:var(--eui-c-hover);cursor:pointer}.eui-18 .eui-user-profile-menu-item:last-child{border-bottom:0}.eui-18 .eui-user-profile-menu-item a{color:var(--eui-c-text);text-decoration:none}.eui-18 .eui-user-profile-menu-item.link{cursor:pointer}.eui-18 .eui-user-profile-menu-item-right-content{margin-left:auto}.eui-18 .eui-user-profile-card{width:100%}.eui-18 .eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-s-m) var(--eui-s-m) var(--eui-s-m) 0}.eui-18 .eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-18 .eui-user-profile-card__avatar-wrapper{display:flex}.eui-18 .eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-s-s)}.eui-18 .eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-s-xs)}.eui-18 .eui-user-profile-card__impersonateInfos{background-color:var(--eui-c-neutral-bg-light);padding:var(--eui-s-s)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiAvatarComponent, selector: "div[euiAvatar], span[euiAvatar], eui-avatar", inputs: ["e2eAttr", "aria-label", "hasShadow", "isShapeSquare", "isFlat", "hasNoBackground"] }, { kind: "component", type: i6.EuiAvatarTextComponent, selector: "eui-avatar-text" }, { kind: "component", type: i6.EuiAvatarImageComponent, selector: "eui-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i6.EuiAvatarBadgeComponent, selector: "eui-avatar-badge", inputs: ["position"] }, { kind: "component", type: i7.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label", "maxCharCount", "charReplacement", "euiIconBadge", "euiDottedBadge"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
94
114
  }
95
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileComponent, decorators: [{
96
116
  type: Component,
@@ -103,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
123
  'euiPrimary',
104
124
  ],
105
125
  },
106
- ], template: "@if (hasMenu) {\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown (expand)=\"onDropdownExpand($event)\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n <eui-dropdown-content>\n <ng-content/>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n}\n\n<ng-template #userProfileContent>\n <button class=\"eui-user-profile-content\" [tabindex]=\"hasMenu ? '0' : '-1'\" [class.eui-user-profile-content--no-menu]=\"!hasMenu\">\n\n @if (isShowUserInfos) {\n <div class=\"eui-user-profile__infos\">\n @if (userState?.impersonatingUser) {\n <div class=\"eui-user-profile__infos-welcome\">\n @if (hasWelcomeLabel) {\n <span>{{ welcomeLabel }}</span>\n }\n {{ userState?.impersonatingUser?.firstName }} <strong>{{ userState?.impersonatingUser?.lastName}}</strong>\n <span>&nbsp;{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.firstName }} <strong>{{ userState?.lastName }}</strong>\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n } @else {\n @if (hasWelcomeLabel) {\n <div class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n }\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.firstName }} <strong>{{ userState?.lastName }}</strong>\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n }\n </div>\n }\n\n <eui-avatar isFlat [euiSizeS]=\"baseStatesDirective.euiSizeS\" [hasShadow]=\"userState?.impersonatingUser\">\n\n @if (isShowAvatarInitials) {\n <eui-avatar-text>{{ avatarInitials }}</eui-avatar-text>\n } @else {\n <eui-avatar-image [imageUrl]=\"avatarUrl\"/>\n }\n\n @if (euiStatusSecondary || euiStatusSuccess || euiStatusDanger) {\n <eui-avatar-badge position=\"bottom\">\n @if (euiStatusSuccess) {\n <eui-badge euiSuccess euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"checkmark:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusDanger) {\n <eui-badge euiDanger euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"remove:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusSecondary) {\n <eui-badge euiSecondary euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"close-circle:outline\" fillColor=\"neutral\" size=\"xs\"/>\n </eui-badge>\n }\n </eui-avatar-badge>\n }\n </eui-avatar>\n\n @if (hasMenu || hasToggle) {\n @if (isDropdownOpen) {\n <eui-icon-svg icon=\"chevron-up:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n } @else {\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n }\n }\n </button>\n</ng-template>\n", styles: [".eui-18 .eui-user-profile{display:flex;position:relative}.eui-18 .eui-user-profile-content{align-items:center;background:none;border:var(--eui-bw-none);cursor:pointer;display:flex;padding:var(--eui-s-2xs) 0;gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-content:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-content--no-menu{cursor:default}.eui-18 .eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column}.eui-18 .eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-18 .eui-user-profile__infos-welcome{text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__infos-name{color:var(--eui-c-branding);text-align:right;font:var(--eui-f-m-compact)}.eui-18 .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral);text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__drop-indicator{margin-left:calc(-1 * var(--eui-s-xs))}.eui-18 .eui--secondary .eui-user-profile__infos-name,.eui-18 .eui--secondary .eui-user-profile__infos-welcome{color:var(--eui-c-neutral)!important}@media screen and (max-width: 767px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.eui-18 .is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-name{color:var(--eui-c-white)}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-welcome,.eui-18 .eui-user-profile--primary .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral-lightest)}.eui-18 .eui-user-profile--primary .eui-user-profile__drop-indicator svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-18 .eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-18 .eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-s-m)}.eui-18 .eui-user-profile--initials .eui-avatar-content{background-color:var(--eui-c-branding-light)}.eui-18 .eui-user-profile--initials .eui-avatar-text{color:var(--eui-c-branding-light-contrast)}.eui-18 .eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-18 .eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);cursor:pointer;display:flex;padding:var(--eui-s-xs) var(--eui-s-s);gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:hover{background-color:var(--eui-c-hover);cursor:pointer}.eui-18 .eui-user-profile-menu-item:last-child{border-bottom:0}.eui-18 .eui-user-profile-menu-item a{color:var(--eui-c-text);text-decoration:none}.eui-18 .eui-user-profile-menu-item.link{cursor:pointer}.eui-18 .eui-user-profile-menu-item-right-content{margin-left:auto}.eui-18 .eui-user-profile-card{width:100%}.eui-18 .eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-s-m) var(--eui-s-m) var(--eui-s-m) 0}.eui-18 .eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-18 .eui-user-profile-card__avatar-wrapper{display:flex}.eui-18 .eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-s-s)}.eui-18 .eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-s-xs)}.eui-18 .eui-user-profile-card__impersonateInfos{background-color:var(--eui-c-neutral-bg-light);padding:var(--eui-s-s)}\n"] }]
126
+ ], template: "@if (hasMenu) {\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown (expand)=\"onDropdownExpand($event)\">\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n <eui-dropdown-content>\n <ng-content/>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-container *ngTemplateOutlet=\"userProfileContent\"/>\n}\n\n<ng-template #userProfileContent>\n <button class=\"eui-user-profile-content\" [tabindex]=\"hasMenu ? '0' : '-1'\" [class.eui-user-profile-content--no-menu]=\"!hasMenu\">\n\n @if (isShowUserInfos) {\n <div class=\"eui-user-profile__infos\">\n @if (userState()?.impersonatingUser) {\n <div class=\"eui-user-profile__infos-welcome\">\n @if (hasWelcomeLabel) {\n <span>{{ welcomeLabel }}&nbsp;</span>\n }\n @if(reverseNameOrder) {\n {{ userState()?.impersonatingUser?.firstName }} <strong>{{ userState()?.impersonatingUser?.lastName}}&nbsp;</strong>\n } @else {\n <strong>{{ userState()?.impersonatingUser?.lastName }}</strong> {{ userState()?.impersonatingUser?.firstName }}\n }\n <span>{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n @if(reverseNameOrder) {\n {{ userState()?.firstName }} <strong>{{ userState()?.lastName }}</strong>\n } @else {\n <strong>{{ userState()?.lastName }}</strong> {{ userState()?.firstName }}\n }\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n } @else {\n @if (hasWelcomeLabel) {\n <div class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n }\n <div class=\"eui-user-profile__infos-name\">\n @if(reverseNameOrder) {\n {{ userState()?.firstName }} <strong>{{ userState()?.lastName }}</strong>\n } @else {\n <strong>{{ userState()?.lastName }}</strong> {{ userState()?.firstName }}\n }\n </div>\n @if (subInfos) {\n <div class=\"eui-user-profile__infos-subinfos\">{{ subInfos }}</div>\n }\n }\n </div>\n }\n\n <eui-avatar isFlat [euiSizeS]=\"baseStatesDirective.euiSizeS\" [hasShadow]=\"userState()?.impersonatingUser\">\n\n @if (isShowAvatarInitials) {\n <eui-avatar-text>{{ avatarInitials() }}</eui-avatar-text>\n } @else {\n <eui-avatar-image [imageUrl]=\"avatarUrl\"/>\n }\n\n @if (euiStatusSecondary || euiStatusSuccess || euiStatusDanger) {\n <eui-avatar-badge position=\"bottom\">\n @if (euiStatusSuccess) {\n <eui-badge euiSuccess euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"checkmark:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusDanger) {\n <eui-badge euiDanger euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"remove:outline\" size=\"xs\"/>\n </eui-badge>\n } @else if (euiStatusSecondary) {\n <eui-badge euiSecondary euiSizeS euiIconBadge>\n <eui-icon-svg icon=\"close-circle:outline\" fillColor=\"neutral\" size=\"xs\"/>\n </eui-badge>\n }\n </eui-avatar-badge>\n }\n </eui-avatar>\n\n @if (hasMenu || hasToggle) {\n @if (isDropdownOpen) {\n <eui-icon-svg icon=\"chevron-up:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n } @else {\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\" class=\"eui-user-profile__drop-indicator\"/>\n }\n }\n </button>\n</ng-template>\n", styles: [".eui-18 .eui-user-profile{display:flex;position:relative}.eui-18 .eui-user-profile-content{align-items:center;background:none;border:var(--eui-bw-none);cursor:pointer;display:flex;padding:var(--eui-s-2xs) 0;gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-content:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-content--no-menu{cursor:default}.eui-18 .eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column}.eui-18 .eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-18 .eui-user-profile__infos-welcome{text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__infos-name{color:var(--eui-c-branding);text-align:right;font:var(--eui-f-m-compact)}.eui-18 .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral);text-align:right;font:var(--eui-f-xs-compact)}.eui-18 .eui-user-profile__drop-indicator{margin-left:calc(-1 * var(--eui-s-xs))}.eui-18 .eui--secondary .eui-user-profile__infos-name,.eui-18 .eui--secondary .eui-user-profile__infos-welcome{color:var(--eui-c-neutral)!important}@media screen and (max-width: 767px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-18 .eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.eui-18 .is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-18 .eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-name{color:var(--eui-c-white)}.eui-18 .eui-user-profile--primary .eui-user-profile__infos-welcome,.eui-18 .eui-user-profile--primary .eui-user-profile__infos-subinfos{color:var(--eui-c-neutral-lightest)}.eui-18 .eui-user-profile--primary .eui-user-profile__drop-indicator svg{fill:var(--eui-c-white);color:var(--eui-c-white)}.eui-18 .eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-18 .eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-s-m)}.eui-18 .eui-user-profile--initials .eui-avatar-content{background-color:var(--eui-c-branding-light)}.eui-18 .eui-user-profile--initials .eui-avatar-text{color:var(--eui-c-branding-light-contrast)}.eui-18 .eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-18 .eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);cursor:pointer;display:flex;padding:var(--eui-s-xs) var(--eui-s-s);gap:var(--eui-s-xs)}.eui-18 .eui-user-profile-menu-item:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-user-profile-menu-item:hover{background-color:var(--eui-c-hover);cursor:pointer}.eui-18 .eui-user-profile-menu-item:last-child{border-bottom:0}.eui-18 .eui-user-profile-menu-item a{color:var(--eui-c-text);text-decoration:none}.eui-18 .eui-user-profile-menu-item.link{cursor:pointer}.eui-18 .eui-user-profile-menu-item-right-content{margin-left:auto}.eui-18 .eui-user-profile-card{width:100%}.eui-18 .eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-s-m) var(--eui-s-m) var(--eui-s-m) 0}.eui-18 .eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-18 .eui-user-profile-card__avatar-wrapper{display:flex}.eui-18 .eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-s-s)}.eui-18 .eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-s-xs)}.eui-18 .eui-user-profile-card__impersonateInfos{background-color:var(--eui-c-neutral-bg-light);padding:var(--eui-s-s)}\n"] }]
107
127
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.UserService }, { type: i2.BaseStatesDirective }], propDecorators: { cssClasses: [{
108
128
  type: HostBinding,
109
129
  args: ['class']
@@ -150,6 +170,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
150
170
  }], euiStatusDanger: [{
151
171
  type: Input,
152
172
  args: [{ transform: booleanAttribute }]
173
+ }], reverseNameOrder: [{
174
+ type: Input
153
175
  }], dropdown: [{
154
176
  type: ViewChild,
155
177
  args: ['dropdown']
@@ -157,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
157
179
  type: ContentChildren,
158
180
  args: [forwardRef(() => EuiUserProfileMenuComponent), { descendants: true }]
159
181
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS11c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS11c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBVSxTQUFTLEVBQXFDLFVBQVUsRUFBNEQsZUFBZSxFQUFjLGdCQUFnQixFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR2hTLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUF1QzlGLE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsSUFDVyxVQUFVO1FBQ2pCLE9BQU87WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFBLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUEsQ0FBQyxDQUFDLEVBQUU7U0FDL0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQWlDRCxZQUNZLEtBQWlCLEVBQ2pCLFdBQXdCLEVBQ3pCLG1CQUF3QztRQUZ2QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxD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QVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxvQkFBb0I7c0JBQTNELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxtQkFBbUI7c0JBQTFELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxrQkFBa0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRWYsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVyQixjQUFjO3NCQURiLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSG9zdCwgT3B0aW9uYWwsIEluamVjdCwgZm9yd2FyZFJlZiwgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgYm9vbGVhbkF0dHJpYnV0ZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyU3RhdGUgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXVpRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRyb3Bkb3duJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IEV1aVVzZXJQcm9maWxlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vdXNlci1wcm9maWxlLW1lbnUvdXNlci1wcm9maWxlLW1lbnUuY29tcG9uZW50JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGV4dGVuZGVkIHVzZXIgcHJvZmlsZSB0aGF0IGluY2x1ZGVzIGltcGVyc29uYXRpb24gY2FwYWJpbGl0aWVzXG4gKiBhbmQgb3JnYW5pemF0aW9uYWwgaW5mb3JtYXRpb24uXG4gKiBAZXh0ZW5kcyB7VXNlclN0YXRlfVxuICpcbiAqIFdoZW4gdXNpbmcgdGhpcyBpbnRlcmZhY2Ugd2l0aCBVc2VyU2VydmljZSwgc3BlY2lmeSBpdCBhcyB0aGUgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcjpcbiAqIEV4YW1wbGU6IHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlPFVzZXJQcm9maWxlPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIGV4dGVuZHMgVXNlclN0YXRlIHtcbiAgICAvKiogVGhlIHByb2ZpbGUgb2YgYW5vdGhlciB1c2VyIGJlaW5nIGltcGVyc29uYXRlZCwgaWYgYXBwbGljYWJsZSAqL1xuICAgIGltcGVyc29uYXRpbmdVc2VyPzogVXNlclByb2ZpbGU7XG4gICAgLyoqIFRoZSB1c2VyJ3MgZnVuY3Rpb24gb3Igcm9sZSB3aXRoaW4gdGhlIHN5c3RlbSAqL1xuICAgIGZ1bmN0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgb3JnYW5pemF0aW9uIGRldGFpbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyICovXG4gICAgb3JnYW5pc2F0aW9uPzoge1xuICAgICAgICAvKiogVGhlIHVuaXF1ZSBjb2RlIGlkZW50aWZ5aW5nIHRoZSBvcmdhbml6YXRpb24gKi9cbiAgICAgICAgY29kZTogc3RyaW5nXG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS11c2VyLXByb2ZpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL19zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlTZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICdldWlQcmltYXJ5JyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVXNlclByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLXVzZXItcHJvZmlsZScpLFxuICAgICAgICAgICAgdGhpcy5pc1JldmVyc2UgPyAnZXVpLXVzZXItcHJvZmlsZS0tcmV2ZXJzZSc6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1Nob3dBdmF0YXJJbml0aWFscyA/ICdldWktdXNlci1wcm9maWxlLS1pbml0aWFscyc6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgdXNlclN0YXRlOiBVc2VyUHJvZmlsZTtcbiAgICBpc09ubGluZSA9IHRydWU7XG4gICAgYXZhdGFySW5pdGlhbHM6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHdlbGNvbWVMYWJlbCA9ICdXZWxjb21lJztcbiAgICBASW5wdXQoKSBpbXBlcnNvbmF0ZUxhYmVsID0gJ2ltcGVyc29uYXRpbmcnO1xuICAgIEBJbnB1dCgpIGF2YXRhclVybDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YkluZm9zOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3RhdHVzVmFyaWFudCA9ICdzdWNjZXNzJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNNZW51ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1dlbGNvbWVMYWJlbCA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzU2hvd0F2YXRhckluaXRpYWxzID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1RhYk5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNSZXZlcnNlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1RvZ2dsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0hlYWRlclVzZXJQcm9maWxlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzU2hvd1VzZXJJbmZvcyA9IHRydWU7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXVpU3RhdHVzU2Vjb25kYXJ5ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV1aVN0YXR1c1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXVpU3RhdHVzRGFuZ2VyID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVXNlclByb2ZpbGVNZW51Q29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGhhc01lbnVDb250ZW50OiBRdWVyeUxpc3Q8RXVpVXNlclByb2ZpbGVNZW51Q29tcG9uZW50PjtcblxuICAgIGlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlU3ViamVjdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYmFzZVN0YXRlc0RpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgICAgICAgLmdldFN0YXRlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFVzZXJQcm9maWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclN0YXRlID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0TmFtZUluaXRpYWwgPSBzdGF0ZS5maXJzdE5hbWU/LnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0TmFtZUluaXRpYWwgPSBzdGF0ZS5sYXN0TmFtZT8uc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXZhdGFySW5pdGlhbHMgPSBgJHtmaXJzdE5hbWVJbml0aWFsfSR7bGFzdE5hbWVJbml0aWFsfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBsZXQgaGFzVG9vbGJhckl0ZW1QYXJlbnQgPSBmYWxzZSwgdG9vbGJhcjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaGFzVG9vbGJhckl0ZW1QYXJlbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZXVpLXRvb2xiYXItaXRlbScpO1xuICAgICAgICAgICAgdG9vbGJhciA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdldWktdG9vbGJhcicpO1xuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaGFzVG9vbGJhckl0ZW1QYXJlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpU2l6ZVMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICh0b29sYmFyICYmIHRvb2xiYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdldWktLXNlY29uZGFyeScpIHx8IHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTZWNvbmRhcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVNlY29uZGFyeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVByaW1hcnkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNUb29sYmFySXRlbVBhcmVudCB8fCAhdGhpcy5pc0hlYWRlclVzZXJQcm9maWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNNZW51ID0gdGhpcy5oYXNNZW51Q29udGVudC5sZW5ndGggIT09IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25FeHBhbmQoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBpc09wZW47XG4gICAgfVxufVxuIiwiQGlmIChoYXNNZW51KSB7XG4gICAgPGV1aS1kcm9wZG93biBbaGFzVGFiTmF2aWdhdGlvbl09XCJoYXNUYWJOYXZpZ2F0aW9uXCIgd2lkdGg9XCIzNDBweFwiICNkcm9wZG93biAoZXhwYW5kKT1cIm9uRHJvcGRvd25FeHBhbmQoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXNlclByb2ZpbGVDb250ZW50XCIvPlxuICAgICAgICA8ZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudC8+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgPC9ldWktZHJvcGRvd24+XG59IEBlbHNlIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXNlclByb2ZpbGVDb250ZW50XCIvPlxufVxuXG48bmctdGVtcGxhdGUgI3VzZXJQcm9maWxlQ29udGVudD5cbiAgICA8YnV0dG9uIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jb250ZW50XCIgW3RhYmluZGV4XT1cImhhc01lbnUgPyAnMCcgOiAnLTEnXCIgW2NsYXNzLmV1aS11c2VyLXByb2ZpbGUtY29udGVudC0tbm8tbWVudV09XCIhaGFzTWVudVwiPlxuXG4gICAgICAgIEBpZiAoaXNTaG93VXNlckluZm9zKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3NcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHVzZXJTdGF0ZT8uaW1wZXJzb25hdGluZ1VzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLXdlbGNvbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaGFzV2VsY29tZUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgd2VsY29tZUxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlclN0YXRlPy5pbXBlcnNvbmF0aW5nVXNlcj8uZmlyc3ROYW1lIH19IDxzdHJvbmc+e3sgdXNlclN0YXRlPy5pbXBlcnNvbmF0aW5nVXNlcj8ubGFzdE5hbWV9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Jm5ic3A7e3sgaW1wZXJzb25hdGVMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyU3RhdGU/LmZpcnN0TmFtZSB9fSA8c3Ryb25nPnt7IHVzZXJTdGF0ZT8ubGFzdE5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViSW5mb3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1zdWJpbmZvc1wiPnt7IHN1YkluZm9zIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChoYXNXZWxjb21lTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy13ZWxjb21lXCI+e3sgd2VsY29tZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXJTdGF0ZT8uZmlyc3ROYW1lIH19IDxzdHJvbmc+e3sgdXNlclN0YXRlPy5sYXN0TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJJbmZvcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLXN1YmluZm9zXCI+e3sgc3ViSW5mb3MgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGV1aS1hdmF0YXIgaXNGbGF0IFtldWlTaXplU109XCJiYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVNpemVTXCIgW2hhc1NoYWRvd109XCJ1c2VyU3RhdGU/LmltcGVyc29uYXRpbmdVc2VyXCI+XG5cbiAgICAgICAgICAgIEBpZiAoaXNTaG93QXZhdGFySW5pdGlhbHMpIHtcbiAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci10ZXh0Pnt7IGF2YXRhckluaXRpYWxzIH19PC9ldWktYXZhdGFyLXRleHQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci1pbWFnZSBbaW1hZ2VVcmxdPVwiYXZhdGFyVXJsXCIvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGV1aVN0YXR1c1NlY29uZGFyeSB8fCBldWlTdGF0dXNTdWNjZXNzIHx8IGV1aVN0YXR1c0Rhbmdlcikge1xuICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLWJhZGdlIHBvc2l0aW9uPVwiYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZXVpU3RhdHVzU3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1iYWRnZSBldWlTdWNjZXNzIGV1aVNpemVTIGV1aUljb25CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGVja21hcms6b3V0bGluZVwiIHNpemU9XCJ4c1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChldWlTdGF0dXNEYW5nZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktYmFkZ2UgZXVpRGFuZ2VyIGV1aVNpemVTIGV1aUljb25CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJyZW1vdmU6b3V0bGluZVwiIHNpemU9XCJ4c1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChldWlTdGF0dXNTZWNvbmRhcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktYmFkZ2UgZXVpU2Vjb25kYXJ5IGV1aVNpemVTIGV1aUljb25CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjbG9zZS1jaXJjbGU6b3V0bGluZVwiIGZpbGxDb2xvcj1cIm5ldXRyYWxcIiBzaXplPVwieHNcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aS1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZXVpLWF2YXRhci1iYWRnZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9ldWktYXZhdGFyPlxuXG4gICAgICAgIEBpZiAoaGFzTWVudSB8fCBoYXNUb2dnbGUpIHtcbiAgICAgICAgICAgIEBpZiAoaXNEcm9wZG93bk9wZW4pIHtcbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLXVwOnNoYXJwXCIgc2l6ZT1cInNcIiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2Ryb3AtaW5kaWNhdG9yXCIvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1kb3duOnNoYXJwXCIgc2l6ZT1cInNcIiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2Ryb3AtaW5kaWNhdG9yXCIvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS11c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS11c2VyLXByb2ZpbGUvdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUVMLFNBQVMsRUFFVCxVQUFVLEVBRVYsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBRVIsTUFBTSxHQUtULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUF1Q3RELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsSUFDVyxVQUFVO1FBQ2pCLE9BQU87WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFBLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUEsQ0FBQyxDQUFDLEVBQUU7U0FDL0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQTBDRCxZQUNZLEtBQWlCLEVBQ2pCLFdBQXdCLEVBQ3pCLG1CQUF3QztRQUZ2QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FB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RUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLGtCQUFrQjtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJN0IsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRXJCLGNBQWM7c0JBRGIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uRGVzdHJveSxcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBTaWduYWwsXG4gICAgc2lnbmFsLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscywgVXNlclNlcnZpY2UsIFVzZXJTdGF0ZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktZHJvcGRvd24nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZVN0YXRlc0RpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgRXVpVXNlclByb2ZpbGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi91c2VyLXByb2ZpbGUtbWVudS91c2VyLXByb2ZpbGUtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBleHRlbmRlZCB1c2VyIHByb2ZpbGUgdGhhdCBpbmNsdWRlcyBpbXBlcnNvbmF0aW9uIGNhcGFiaWxpdGllc1xuICogYW5kIG9yZ2FuaXphdGlvbmFsIGluZm9ybWF0aW9uLlxuICogQGV4dGVuZHMge1VzZXJTdGF0ZX1cbiAqXG4gKiBXaGVuIHVzaW5nIHRoaXMgaW50ZXJmYWNlIHdpdGggVXNlclNlcnZpY2UsIHNwZWNpZnkgaXQgYXMgdGhlIGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXI6XG4gKiBFeGFtcGxlOiBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZTxVc2VyUHJvZmlsZT5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyUHJvZmlsZSBleHRlbmRzIFVzZXJTdGF0ZSB7XG4gICAgLyoqIFRoZSBwcm9maWxlIG9mIGFub3RoZXIgdXNlciBiZWluZyBpbXBlcnNvbmF0ZWQsIGlmIGFwcGxpY2FibGUgKi9cbiAgICBpbXBlcnNvbmF0aW5nVXNlcj86IFVzZXJQcm9maWxlO1xuICAgIC8qKiBUaGUgdXNlcidzIGZ1bmN0aW9uIG9yIHJvbGUgd2l0aGluIHRoZSBzeXN0ZW0gKi9cbiAgICBmdW5jdGlvbj86IHN0cmluZztcbiAgICAvKiogVGhlIG9yZ2FuaXphdGlvbiBkZXRhaWxzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlciAqL1xuICAgIG9yZ2FuaXNhdGlvbj86IHtcbiAgICAgICAgLyoqIFRoZSB1bmlxdWUgY29kZSBpZGVudGlmeWluZyB0aGUgb3JnYW5pemF0aW9uICovXG4gICAgICAgIGNvZGU6IHN0cmluZ1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdXNlci1wcm9maWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9fc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVTJyxcbiAgICAgICAgICAgICAgICAnZXVpU2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAnZXVpUHJpbWFyeScsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVVzZXJQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLXVzZXItcHJvZmlsZScpLFxuICAgICAgICAgICAgdGhpcy5pc1JldmVyc2UgPyAnZXVpLXVzZXItcHJvZmlsZS0tcmV2ZXJzZSc6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1Nob3dBdmF0YXJJbml0aWFscyA/ICdldWktdXNlci1wcm9maWxlLS1pbml0aWFscyc6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgaXNPbmxpbmUgPSB0cnVlO1xuICAgIHVzZXJTdGF0ZTogU2lnbmFsPFVzZXJQcm9maWxlPjtcbiAgICBhdmF0YXJJbml0aWFsczogU2lnbmFsPHN0cmluZz47XG4gICAgLyoqXG4gICAgICogSG9sZHMgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgdXNlciBhbmQgdGhlIGltcGVyc29uYXRlZCB1c2VyXG4gICAgICovXG4gICAgZnVsbE5hbWU6IFNpZ25hbDx7IHVzZXI6IHN0cmluZywgaW1wZXJzb25hdGVkOiBzdHJpbmcgfT47XG5cbiAgICBASW5wdXQoKSB3ZWxjb21lTGFiZWwgPSAnV2VsY29tZSc7XG4gICAgQElucHV0KCkgaW1wZXJzb25hdGVMYWJlbCA9ICdpbXBlcnNvbmF0aW5nJztcbiAgICBASW5wdXQoKSBhdmF0YXJVcmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJJbmZvczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN0YXR1c1ZhcmlhbnQgPSAnc3VjY2Vzcyc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzTWVudSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNXZWxjb21lTGFiZWwgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Nob3dBdmF0YXJJbml0aWFscyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUYWJOYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzUmV2ZXJzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUb2dnbGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNIZWFkZXJVc2VyUHJvZmlsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Nob3dVc2VySW5mb3MgPSB0cnVlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV1aVN0YXR1c1NlY29uZGFyeSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBldWlTdGF0dXNTdWNjZXNzID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV1aVN0YXR1c0RhbmdlciA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBuYW1lIHdpbGwgYmUgZGlzcGxheWVkIGluIHJldmVyc2Ugb3JkZXIgKGZpcnN0IG5hbWUsIGZpcnN0KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHJldmVyc2VOYW1lT3JkZXIgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd246IEV1aURyb3Bkb3duQ29tcG9uZW50O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFdWlVc2VyUHJvZmlsZU1lbnVDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgaGFzTWVudUNvbnRlbnQ6IFF1ZXJ5TGlzdDxFdWlVc2VyUHJvZmlsZU1lbnVDb21wb25lbnQ+O1xuXG4gICAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgb3JkZXJTaWduYWwgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVTdWJqZWN0JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICB0aGlzLnVzZXJTdGF0ZSA9IHRvU2lnbmFsKHRoaXMudXNlclNlcnZpY2UuZ2V0U3RhdGUoKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1sncmV2ZXJzZU5hbWVPcmRlciddKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyU2lnbmFsLnNldCh0aGlzLnJldmVyc2VOYW1lT3JkZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhdGFySW5pdGlhbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE5hbWVJbml0aWFsID0gdGhpcy51c2VyU3RhdGUoKS5maXJzdE5hbWU/LnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgY29uc3QgbGFzdE5hbWVJbml0aWFsID0gdGhpcy51c2VyU3RhdGUoKS5sYXN0TmFtZT8uc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcmRlclNpZ25hbCgpID9cbiAgICAgICAgICAgICAgICBgJHtmaXJzdE5hbWVJbml0aWFsfSR7bGFzdE5hbWVJbml0aWFsfWBcbiAgICAgICAgICAgICAgICA6IGAke2xhc3ROYW1lSW5pdGlhbH0ke2ZpcnN0TmFtZUluaXRpYWx9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZnVsbE5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyU3RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGltcGVyc29uYXRlZCA9IHRoaXMudXNlclN0YXRlKCkuaW1wZXJzb25hdGluZ1VzZXI7XG5cbiAgICAgICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gKHVzZXI6IFVzZXJEZXRhaWxzKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcmRlclNpZ25hbCgpXG4gICAgICAgICAgICAgICAgICAgID8gYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gXG4gICAgICAgICAgICAgICAgICAgIDogYCR7dXNlci5sYXN0TmFtZX0gJHt1c2VyLmZpcnN0TmFtZX1gO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdXNlcjogZnVsbE5hbWUodXNlciksXG4gICAgICAgICAgICAgICAgaW1wZXJzb25hdGVkOiBpbXBlcnNvbmF0ZWQgPyBmdWxsTmFtZShpbXBlcnNvbmF0ZWQpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBsZXQgaGFzVG9vbGJhckl0ZW1QYXJlbnQgPSBmYWxzZSwgdG9vbGJhcjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaGFzVG9vbGJhckl0ZW1QYXJlbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZXVpLXRvb2xiYXItaXRlbScpO1xuICAgICAgICAgICAgdG9vbGJhciA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdldWktdG9vbGJhcicpO1xuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaGFzVG9vbGJhckl0ZW1QYXJlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpU2l6ZVMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICh0b29sYmFyICYmIHRvb2xiYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdldWktLXNlY29uZGFyeScpIHx8IHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTZWNvbmRhcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVNlY29uZGFyeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVByaW1hcnkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNUb29sYmFySXRlbVBhcmVudCB8fCAhdGhpcy5pc0hlYWRlclVzZXJQcm9maWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNNZW51ID0gdGhpcy5oYXNNZW51Q29udGVudC5sZW5ndGggIT09IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uRHJvcGRvd25FeHBhbmQoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBpc09wZW47XG4gICAgfVxufVxuIiwiQGlmIChoYXNNZW51KSB7XG4gICAgPGV1aS1kcm9wZG93biBbaGFzVGFiTmF2aWdhdGlvbl09XCJoYXNUYWJOYXZpZ2F0aW9uXCIgd2lkdGg9XCIzNDBweFwiICNkcm9wZG93biAoZXhwYW5kKT1cIm9uRHJvcGRvd25FeHBhbmQoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXNlclByb2ZpbGVDb250ZW50XCIvPlxuICAgICAgICA8ZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudC8+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgPC9ldWktZHJvcGRvd24+XG59IEBlbHNlIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXNlclByb2ZpbGVDb250ZW50XCIvPlxufVxuXG48bmctdGVtcGxhdGUgI3VzZXJQcm9maWxlQ29udGVudD5cbiAgICA8YnV0dG9uIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jb250ZW50XCIgW3RhYmluZGV4XT1cImhhc01lbnUgPyAnMCcgOiAnLTEnXCIgW2NsYXNzLmV1aS11c2VyLXByb2ZpbGUtY29udGVudC0tbm8tbWVudV09XCIhaGFzTWVudVwiPlxuXG4gICAgICAgIEBpZiAoaXNTaG93VXNlckluZm9zKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3NcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHVzZXJTdGF0ZSgpPy5pbXBlcnNvbmF0aW5nVXNlcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3Mtd2VsY29tZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChoYXNXZWxjb21lTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB3ZWxjb21lTGFiZWwgfX0mbmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYocmV2ZXJzZU5hbWVPcmRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXJTdGF0ZSgpPy5pbXBlcnNvbmF0aW5nVXNlcj8uZmlyc3ROYW1lIH19IDxzdHJvbmc+e3sgdXNlclN0YXRlKCk/LmltcGVyc29uYXRpbmdVc2VyPy5sYXN0TmFtZX19Jm5ic3A7PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHVzZXJTdGF0ZSgpPy5pbXBlcnNvbmF0aW5nVXNlcj8ubGFzdE5hbWUgfX08L3N0cm9uZz4ge3sgdXNlclN0YXRlKCk/LmltcGVyc29uYXRpbmdVc2VyPy5maXJzdE5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGltcGVyc29uYXRlTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3MtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHJldmVyc2VOYW1lT3JkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyU3RhdGUoKT8uZmlyc3ROYW1lIH19IDxzdHJvbmc+e3sgdXNlclN0YXRlKCk/Lmxhc3ROYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHVzZXJTdGF0ZSgpPy5sYXN0TmFtZSB9fTwvc3Ryb25nPiB7eyB1c2VyU3RhdGUoKT8uZmlyc3ROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YkluZm9zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3Mtc3ViaW5mb3NcIj57eyBzdWJJbmZvcyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGFzV2VsY29tZUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3Mtd2VsY29tZVwiPnt7IHdlbGNvbWVMYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYocmV2ZXJzZU5hbWVPcmRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXJTdGF0ZSgpPy5maXJzdE5hbWUgfX0gPHN0cm9uZz57eyB1c2VyU3RhdGUoKT8ubGFzdE5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgdXNlclN0YXRlKCk/Lmxhc3ROYW1lIH19PC9zdHJvbmc+IHt7IHVzZXJTdGF0ZSgpPy5maXJzdE5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViSW5mb3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1zdWJpbmZvc1wiPnt7IHN1YkluZm9zIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxldWktYXZhdGFyIGlzRmxhdCBbZXVpU2l6ZVNdPVwiYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTaXplU1wiIFtoYXNTaGFkb3ddPVwidXNlclN0YXRlKCk/LmltcGVyc29uYXRpbmdVc2VyXCI+XG5cbiAgICAgICAgICAgIEBpZiAoaXNTaG93QXZhdGFySW5pdGlhbHMpIHtcbiAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci10ZXh0Pnt7IGF2YXRhckluaXRpYWxzKCkgfX08L2V1aS1hdmF0YXItdGV4dD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLWltYWdlIFtpbWFnZVVybF09XCJhdmF0YXJVcmxcIi8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoZXVpU3RhdHVzU2Vjb25kYXJ5IHx8IGV1aVN0YXR1c1N1Y2Nlc3MgfHwgZXVpU3RhdHVzRGFuZ2VyKSB7XG4gICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItYmFkZ2UgcG9zaXRpb249XCJib3R0b21cIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChldWlTdGF0dXNTdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWJhZGdlIGV1aVN1Y2Nlc3MgZXVpU2l6ZVMgZXVpSWNvbkJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNoZWNrbWFyazpvdXRsaW5lXCIgc2l6ZT1cInhzXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGV1aVN0YXR1c0Rhbmdlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1iYWRnZSBldWlEYW5nZXIgZXVpU2l6ZVMgZXVpSWNvbkJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cInJlbW92ZTpvdXRsaW5lXCIgc2l6ZT1cInhzXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGV1aVN0YXR1c1NlY29uZGFyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1iYWRnZSBldWlTZWNvbmRhcnkgZXVpU2l6ZVMgZXVpSWNvbkJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNsb3NlLWNpcmNsZTpvdXRsaW5lXCIgZmlsbENvbG9yPVwibmV1dHJhbFwiIHNpemU9XCJ4c1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9ldWktYXZhdGFyLWJhZGdlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2V1aS1hdmF0YXI+XG5cbiAgICAgICAgQGlmIChoYXNNZW51IHx8IGhhc1RvZ2dsZSkge1xuICAgICAgICAgICAgQGlmIChpc0Ryb3Bkb3duT3Blbikge1xuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNoZXZyb24tdXA6c2hhcnBcIiBzaXplPVwic1wiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9fZHJvcC1pbmRpY2F0b3JcIi8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJjaGV2cm9uLWRvd246c2hhcnBcIiBzaXplPVwic1wiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9fZHJvcC1pbmRpY2F0b3JcIi8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -44,7 +44,7 @@ export class EuiAppSidebarHeaderUserProfileComponent {
44
44
  ].join(' ').trim();
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarHeaderUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiAppSidebarHeaderUserProfileComponent, selector: "eui-app-sidebar-header-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], isOnline: ["isOnline", "isOnline", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], hasToggle: ["hasToggle", "hasToggle", booleanAttribute], hasProfileDrawer: ["hasProfileDrawer", "hasProfileDrawer", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "userProfileMenu", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent) }], ngImport: i0, template: "<eui-user-profile\n [hasWelcomeLabel]=\"hasWelcomeLabel\"\n [welcomeLabel]=\"welcomeLabel\"\n [impersonateLabel]=\"impersonateLabel\"\n [avatarUrl]=\"avatarUrl\"\n [hasMenu]=\"userProfileMenu.length !== 0\"\n [isShowUserInfos]=\"isShowUserInfos\"\n [isShowAvatarInitials]=\"isShowAvatarInitials\"\n [hasTabNavigation]=\"hasTabNavigation\"\n isReverse\n [hasToggle]=\"hasToggle\"\n #userProfile>\n <ng-content select=\"eui-user-profile-menu\"></ng-content>\n</eui-user-profile>\n\n<button *ngIf=\"hasProfileDrawer\" euiButton euiRounded euiIconButton euiBasicButton euiSecondary class=\"eui-u-ml-auto\" aria-label=\"Toggle user profile details\">\n <eui-icon-svg [icon]=\"toggleProfile ? 'chevron-up:sharp' : 'chevron-down:sharp'\"></eui-icon-svg>\n</button>\n", styles: [".eui-app-sidebar-header-user-profile{border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;height:var(--eui-app-sidebar-header-user-profile);padding:var(--eui-s-s) var(--eui-s-m);position:relative;width:100%}.eui-app-sidebar-header-user-profile--has-drawer,.eui-app-sidebar-header-user-profile--has-drawer .eui-user-profile-content--no-menu{cursor:pointer}@media screen and (min-width: 996px){.eui-app-sidebar-header-user-profile{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i4.EuiUserProfileComponent, selector: "eui-user-profile", inputs: ["welcomeLabel", "impersonateLabel", "avatarUrl", "subInfos", "statusVariant", "hasMenu", "hasWelcomeLabel", "isShowAvatarInitials", "hasTabNavigation", "isReverse", "hasToggle", "isHeaderUserProfile", "isShowUserInfos", "euiStatusSecondary", "euiStatusSuccess", "euiStatusDanger"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiAppSidebarHeaderUserProfileComponent, selector: "eui-app-sidebar-header-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], isOnline: ["isOnline", "isOnline", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], hasToggle: ["hasToggle", "hasToggle", booleanAttribute], hasProfileDrawer: ["hasProfileDrawer", "hasProfileDrawer", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "userProfileMenu", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent) }], ngImport: i0, template: "<eui-user-profile\n [hasWelcomeLabel]=\"hasWelcomeLabel\"\n [welcomeLabel]=\"welcomeLabel\"\n [impersonateLabel]=\"impersonateLabel\"\n [avatarUrl]=\"avatarUrl\"\n [hasMenu]=\"userProfileMenu.length !== 0\"\n [isShowUserInfos]=\"isShowUserInfos\"\n [isShowAvatarInitials]=\"isShowAvatarInitials\"\n [hasTabNavigation]=\"hasTabNavigation\"\n isReverse\n [hasToggle]=\"hasToggle\"\n #userProfile>\n <ng-content select=\"eui-user-profile-menu\"></ng-content>\n</eui-user-profile>\n\n<button *ngIf=\"hasProfileDrawer\" euiButton euiRounded euiIconButton euiBasicButton euiSecondary class=\"eui-u-ml-auto\" aria-label=\"Toggle user profile details\">\n <eui-icon-svg [icon]=\"toggleProfile ? 'chevron-up:sharp' : 'chevron-down:sharp'\"></eui-icon-svg>\n</button>\n", styles: [".eui-app-sidebar-header-user-profile{border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;height:var(--eui-app-sidebar-header-user-profile);padding:var(--eui-s-s) var(--eui-s-m);position:relative;width:100%}.eui-app-sidebar-header-user-profile--has-drawer,.eui-app-sidebar-header-user-profile--has-drawer .eui-user-profile-content--no-menu{cursor:pointer}@media screen and (min-width: 996px){.eui-app-sidebar-header-user-profile{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i4.EuiUserProfileComponent, selector: "eui-user-profile", inputs: ["welcomeLabel", "impersonateLabel", "avatarUrl", "subInfos", "statusVariant", "hasMenu", "hasWelcomeLabel", "isShowAvatarInitials", "hasTabNavigation", "isReverse", "hasToggle", "isHeaderUserProfile", "isShowUserInfos", "euiStatusSecondary", "euiStatusSuccess", "euiStatusDanger", "reverseNameOrder"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarHeaderUserProfileComponent, decorators: [{
50
50
  type: Component,
@@ -20,7 +20,7 @@ export class EuiHeaderUserProfileComponent {
20
20
  this.hasMenu = this.hasMenuContent.length !== 0;
21
21
  }
22
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiHeaderUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiHeaderUserProfileComponent, isStandalone: true, selector: "eui-header-user-profile", inputs: { isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", subInfos: "subInfos" }, host: { properties: { "class": "this.cssClass" } }, queries: [{ propertyName: "hasMenuContent", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent), descendants: true }], viewQueries: [{ propertyName: "userProfile", first: true, predicate: ["userProfile"], descendants: true }], ngImport: i0, template: "<eui-user-profile\n [hasWelcomeLabel]=\"hasWelcomeLabel\"\n [welcomeLabel]=\"welcomeLabel\"\n [impersonateLabel]=\"impersonateLabel\"\n [avatarUrl]=\"avatarUrl\"\n [isShowUserInfos]=\"isShowUserInfos\"\n [isShowAvatarInitials]=\"isShowAvatarInitials\"\n [hasTabNavigation]=\"hasTabNavigation\"\n [subInfos]=\"subInfos\"\n [hasMenu]=\"hasMenu\"\n isHeaderUserProfile\n #userProfile>\n <ng-content select=\"eui-user-profile-menu\"></ng-content>\n</eui-user-profile>\n", styles: [".eui-header-user-profile{display:flex;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: EuiUserProfileModule }, { kind: "component", type: i1.EuiUserProfileComponent, selector: "eui-user-profile", inputs: ["welcomeLabel", "impersonateLabel", "avatarUrl", "subInfos", "statusVariant", "hasMenu", "hasWelcomeLabel", "isShowAvatarInitials", "hasTabNavigation", "isReverse", "hasToggle", "isHeaderUserProfile", "isShowUserInfos", "euiStatusSecondary", "euiStatusSuccess", "euiStatusDanger"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiHeaderUserProfileComponent, isStandalone: true, selector: "eui-header-user-profile", inputs: { isShowUserInfos: ["isShowUserInfos", "isShowUserInfos", booleanAttribute], hasWelcomeLabel: ["hasWelcomeLabel", "hasWelcomeLabel", booleanAttribute], isShowAvatarInitials: ["isShowAvatarInitials", "isShowAvatarInitials", booleanAttribute], hasTabNavigation: ["hasTabNavigation", "hasTabNavigation", booleanAttribute], welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", subInfos: "subInfos" }, host: { properties: { "class": "this.cssClass" } }, queries: [{ propertyName: "hasMenuContent", predicate: i0.forwardRef(() => EuiUserProfileMenuComponent), descendants: true }], viewQueries: [{ propertyName: "userProfile", first: true, predicate: ["userProfile"], descendants: true }], ngImport: i0, template: "<eui-user-profile\n [hasWelcomeLabel]=\"hasWelcomeLabel\"\n [welcomeLabel]=\"welcomeLabel\"\n [impersonateLabel]=\"impersonateLabel\"\n [avatarUrl]=\"avatarUrl\"\n [isShowUserInfos]=\"isShowUserInfos\"\n [isShowAvatarInitials]=\"isShowAvatarInitials\"\n [hasTabNavigation]=\"hasTabNavigation\"\n [subInfos]=\"subInfos\"\n [hasMenu]=\"hasMenu\"\n isHeaderUserProfile\n #userProfile>\n <ng-content select=\"eui-user-profile-menu\"></ng-content>\n</eui-user-profile>\n", styles: [".eui-header-user-profile{display:flex;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: EuiUserProfileModule }, { kind: "component", type: i1.EuiUserProfileComponent, selector: "eui-user-profile", inputs: ["welcomeLabel", "impersonateLabel", "avatarUrl", "subInfos", "statusVariant", "hasMenu", "hasWelcomeLabel", "isShowAvatarInitials", "hasTabNavigation", "isReverse", "hasToggle", "isHeaderUserProfile", "isShowUserInfos", "euiStatusSecondary", "euiStatusSuccess", "euiStatusDanger", "reverseNameOrder"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiHeaderUserProfileComponent, decorators: [{
26
26
  type: Component,
@@ -1,27 +1,43 @@
1
- import { OnInit, EventEmitter, OnDestroy } from '@angular/core';
1
+ import { OnInit, EventEmitter, OnDestroy, Signal, SimpleChanges, OnChanges } from '@angular/core';
2
2
  import { UserProfile } from '../user-profile.component';
3
- import { UserService } from '@eui/core';
4
3
  import * as i0 from "@angular/core";
5
- export declare class EuiUserProfileCardComponent implements OnInit, OnDestroy {
6
- private userService;
4
+ export declare class EuiUserProfileCardComponent implements OnInit, OnDestroy, OnChanges {
7
5
  get cssClasses(): string;
8
- avatarInitials: string;
9
- userState: UserProfile;
6
+ avatarInitials: Signal<string>;
7
+ /**
8
+ * Holds the full name of the user and the impersonated user
9
+ */
10
+ fullName: Signal<{
11
+ user: string;
12
+ impersonated: string;
13
+ }>;
14
+ userState: Signal<UserProfile>;
15
+ /**
16
+ * If true, the user is online
17
+ * @deprecated This property is not used anymore
18
+ */
10
19
  isOnline: boolean;
11
20
  impersonateLabel: string;
12
21
  showDetailsLabel: string;
13
22
  avatarUrl: string;
14
23
  isShowAvatarInitials: boolean;
24
+ /**
25
+ * If true, the name will be displayed in reverse order (first name, first)
26
+ */
27
+ reverseNameOrder: boolean;
15
28
  showProfileInfo: EventEmitter<void>;
16
29
  closeProfileMenu: EventEmitter<void>;
17
30
  private unsubscribeSubject$;
18
- constructor(userService: UserService<UserProfile>);
31
+ private userService;
32
+ private orderSignal;
33
+ constructor();
34
+ ngOnChanges(changes: SimpleChanges): void;
19
35
  ngOnInit(): void;
20
36
  ngOnDestroy(): void;
21
37
  onShowInfoClick(): void;
22
38
  onClose(): void;
23
39
  static ɵfac: i0.ɵɵFactoryDeclaration<EuiUserProfileCardComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<EuiUserProfileCardComponent, "eui-user-profile-card", never, { "impersonateLabel": { "alias": "impersonateLabel"; "required": false; }; "showDetailsLabel": { "alias": "showDetailsLabel"; "required": false; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; }; "isShowAvatarInitials": { "alias": "isShowAvatarInitials"; "required": false; }; }, { "showProfileInfo": "showProfileInfo"; "closeProfileMenu": "closeProfileMenu"; }, never, never, false, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<EuiUserProfileCardComponent, "eui-user-profile-card", never, { "impersonateLabel": { "alias": "impersonateLabel"; "required": false; }; "showDetailsLabel": { "alias": "showDetailsLabel"; "required": false; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; }; "isShowAvatarInitials": { "alias": "isShowAvatarInitials"; "required": false; }; "reverseNameOrder": { "alias": "reverseNameOrder"; "required": false; }; }, { "showProfileInfo": "showProfileInfo"; "closeProfileMenu": "closeProfileMenu"; }, never, never, false, never>;
25
41
  static ngAcceptInputType_isShowAvatarInitials: unknown;
26
42
  }
27
43
  //# sourceMappingURL=user-profile-card.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-profile-card.component.d.ts","sourceRoot":"","sources":["../../../eui-user-profile/user-profile-card/user-profile-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,MAAM,EAAE,YAAY,EAAU,SAAS,EAAoB,MAAM,eAAe,CAAC;AACrK,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;;AAIxC,qBAMa,2BAA4B,YAAW,MAAM,EAAE,SAAS;IAqB7D,OAAO,CAAC,WAAW;IApBvB,IACW,UAAU,IAAI,MAAM,CAE9B;IAED,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,UAAQ;IAEP,gBAAgB,SAAmB;IACnC,gBAAgB,SAA0B;IAC1C,SAAS,EAAE,MAAM,CAAC;IACa,oBAAoB,UAAS;IAE3D,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAsB;IACzD,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAsB;IAEpE,OAAO,CAAC,mBAAmB,CAAgC;gBAG/C,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;IAGjD,QAAQ,IAAI,IAAI;IAgBhB,WAAW,IAAI,IAAI;IAKnB,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,IAAI;yCAjDN,2BAA2B;2CAA3B,2BAA2B;mDAqD+woC,OAAQ;CAD9zoC"}
1
+ {"version":3,"file":"user-profile-card.component.d.ts","sourceRoot":"","sources":["../../../eui-user-profile/user-profile-card/user-profile-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,MAAM,EACN,YAAY,EAEZ,SAAS,EACT,MAAM,EAGN,aAAa,EACb,SAAS,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;;AAKxD,qBAMa,2BAA4B,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAC5E,IACW,UAAU,IAAI,MAAM,CAE9B;IAED,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B;;;OAGG;IACH,QAAQ,UAAQ;IAEP,gBAAgB,SAAmB;IACnC,gBAAgB,SAA0B;IAC1C,SAAS,EAAE,MAAM,CAAC;IACa,oBAAoB,UAAS;IACrE;;OAEG;IACM,gBAAgB,UAAS;IAExB,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,CAAsB;IACzD,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAsB;IACpE,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,WAAW,CAAiD;IACpE,OAAO,CAAC,WAAW,CAAiB;;IAMpC,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC,QAAQ,IAAI,IAAI;IAwBhB,WAAW,IAAI,IAAI;IAKnB,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,IAAI;yCA5EN,2BAA2B;2CAA3B,2BAA2B;mDAgFwhmC,OAAQ;CADvkmC"}