@eui/components 18.2.6-snapshot-1734699198333 → 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.
Files changed (25) hide show
  1. package/docs/components/EuiAutocompleteComponent.html +1 -1
  2. package/docs/components/EuiUserProfileCardComponent.html +78 -36
  3. package/docs/components/EuiUserProfileComponent.html +64 -3
  4. package/docs/dependencies.html +2 -2
  5. package/docs/js/menu-wc_es5.js +1 -1
  6. package/docs/js/search/search_index.js +2 -2
  7. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
  8. package/esm2022/eui-chip/eui-chip.component.mjs +2 -2
  9. package/esm2022/eui-user-profile/user-profile-card/user-profile-card.component.mjs +51 -25
  10. package/esm2022/eui-user-profile/user-profile.component.mjs +37 -15
  11. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +1 -1
  12. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +1 -1
  13. package/eui-user-profile/user-profile-card/user-profile-card.component.d.ts +24 -8
  14. package/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  15. package/eui-user-profile/user-profile.component.d.ts +19 -7
  16. package/eui-user-profile/user-profile.component.d.ts.map +1 -1
  17. package/fesm2022/eui-components-eui-autocomplete.mjs +2 -2
  18. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  19. package/fesm2022/eui-components-eui-chip.mjs +2 -2
  20. package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
  21. package/fesm2022/eui-components-eui-user-profile.mjs +82 -32
  22. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  23. package/fesm2022/eui-components-layout.mjs +2 -2
  24. package/fesm2022/eui-components-layout.mjs.map +1 -1
  25. package/package.json +3 -3
@@ -1,13 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, HostBinding, ContentChildren, forwardRef, HostListener, booleanAttribute, ChangeDetectionStrategy, Input, ViewChild, EventEmitter, Output, NgModule } from '@angular/core';
3
- import { takeUntil } from 'rxjs/operators';
2
+ import { Component, ViewEncapsulation, HostBinding, ContentChildren, forwardRef, HostListener, signal, computed, booleanAttribute, ChangeDetectionStrategy, Input, ViewChild, EventEmitter, inject, Output, NgModule } from '@angular/core';
4
3
  import { Subject } from 'rxjs';
5
4
  import * as i2 from '@eui/components/shared';
6
5
  import { BaseStatesDirective } from '@eui/components/shared';
7
6
  import { FocusKeyManager } from '@angular/cdk/a11y';
7
+ import { takeUntil } from 'rxjs/operators';
8
8
  import * as i1 from '@eui/components/eui-dropdown';
9
9
  import { EuiDropdownModule } from '@eui/components/eui-dropdown';
10
+ import { toSignal } from '@angular/core/rxjs-interop';
10
11
  import * as i1$1 from '@eui/core';
12
+ import { UserService } from '@eui/core';
11
13
  import * as i3 from '@angular/common';
12
14
  import { CommonModule } from '@angular/common';
13
15
  import * as i4 from '@eui/components/eui-icon';
@@ -16,9 +18,9 @@ import * as i6 from '@eui/components/eui-avatar';
16
18
  import { EuiAvatarModule } from '@eui/components/eui-avatar';
17
19
  import * as i7 from '@eui/components/eui-badge';
18
20
  import { EuiBadgeModule } from '@eui/components/eui-badge';
19
- import * as i4$1 from '@eui/components/eui-button';
21
+ import * as i3$1 from '@eui/components/eui-button';
20
22
  import { EuiButtonModule } from '@eui/components/eui-button';
21
- import * as i6$1 from '@eui/components/eui-icon-button';
23
+ import * as i5 from '@eui/components/eui-icon-button';
22
24
  import { EuiIconButtonModule } from '@eui/components/eui-icon-button';
23
25
 
24
26
  class EuiUserProfileMenuItemComponent {
@@ -124,20 +126,40 @@ class EuiUserProfileComponent {
124
126
  this.euiStatusSecondary = false;
125
127
  this.euiStatusSuccess = false;
126
128
  this.euiStatusDanger = false;
129
+ /**
130
+ * If true, the name will be displayed in reverse order (first name, first)
131
+ */
132
+ this.reverseNameOrder = false;
127
133
  this.isDropdownOpen = false;
134
+ this.orderSignal = signal(false);
128
135
  this.unsubscribeSubject$ = new Subject();
136
+ this.userState = toSignal(this.userService.getState());
137
+ }
138
+ ngOnChanges(changes) {
139
+ if (changes['reverseNameOrder']) {
140
+ this.orderSignal.set(this.reverseNameOrder);
141
+ }
129
142
  }
130
143
  ngOnInit() {
131
- this.userService
132
- .getState()
133
- .pipe(takeUntil(this.unsubscribeSubject$))
134
- .subscribe((state) => {
135
- if (state) {
136
- this.userState = state;
137
- const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
138
- const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
139
- this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
140
- }
144
+ this.avatarInitials = computed(() => {
145
+ const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();
146
+ const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();
147
+ return this.orderSignal() ?
148
+ `${firstNameInitial}${lastNameInitial}`
149
+ : `${lastNameInitial}${firstNameInitial}`;
150
+ });
151
+ this.fullName = computed(() => {
152
+ const user = this.userState();
153
+ const impersonated = this.userState().impersonatingUser;
154
+ const fullName = (user) => {
155
+ return this.orderSignal()
156
+ ? `${user.firstName} ${user.lastName}`
157
+ : `${user.lastName} ${user.firstName}`;
158
+ };
159
+ return {
160
+ user: fullName(user),
161
+ impersonated: impersonated ? fullName(impersonated) : undefined,
162
+ };
141
163
  });
142
164
  }
143
165
  ngAfterViewInit() {
@@ -176,7 +198,7 @@ class EuiUserProfileComponent {
176
198
  this.isDropdownOpen = isOpen;
177
199
  }
178
200
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.UserService }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
179
- 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: i1.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i1.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 }); }
201
+ 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: i1.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i1.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 }); }
180
202
  }
181
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileComponent, decorators: [{
182
204
  type: Component,
@@ -189,7 +211,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
189
211
  'euiPrimary',
190
212
  ],
191
213
  },
192
- ], 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"] }]
214
+ ], 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"] }]
193
215
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.UserService }, { type: i2.BaseStatesDirective }], propDecorators: { cssClasses: [{
194
216
  type: HostBinding,
195
217
  args: ['class']
@@ -236,6 +258,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
236
258
  }], euiStatusDanger: [{
237
259
  type: Input,
238
260
  args: [{ transform: booleanAttribute }]
261
+ }], reverseNameOrder: [{
262
+ type: Input
239
263
  }], dropdown: [{
240
264
  type: ViewChild,
241
265
  args: ['dropdown']
@@ -248,27 +272,51 @@ class EuiUserProfileCardComponent {
248
272
  get cssClasses() {
249
273
  return 'eui-user-profile-card';
250
274
  }
251
- constructor(userService) {
252
- this.userService = userService;
275
+ constructor() {
276
+ /**
277
+ * If true, the user is online
278
+ * @deprecated This property is not used anymore
279
+ */
253
280
  this.isOnline = true;
254
281
  this.impersonateLabel = 'impersonating';
255
282
  this.showDetailsLabel = 'Show profile details';
256
283
  this.isShowAvatarInitials = false;
284
+ /**
285
+ * If true, the name will be displayed in reverse order (first name, first)
286
+ */
287
+ this.reverseNameOrder = false;
257
288
  this.showProfileInfo = new EventEmitter();
258
289
  this.closeProfileMenu = new EventEmitter();
259
290
  this.unsubscribeSubject$ = new Subject();
291
+ this.userService = inject(UserService);
292
+ this.orderSignal = signal(false);
293
+ this.userState = toSignal(this.userService.getState());
294
+ }
295
+ ngOnChanges(changes) {
296
+ if (changes['reverseNameOrder']) {
297
+ this.orderSignal.set(this.reverseNameOrder);
298
+ }
260
299
  }
261
300
  ngOnInit() {
262
- this.userService
263
- .getState()
264
- .pipe(takeUntil(this.unsubscribeSubject$))
265
- .subscribe((state) => {
266
- if (state) {
267
- const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
268
- const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
269
- this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
270
- this.userState = state;
271
- }
301
+ this.avatarInitials = computed(() => {
302
+ const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();
303
+ const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();
304
+ return this.orderSignal() ?
305
+ `${firstNameInitial}${lastNameInitial}`
306
+ : `${lastNameInitial}${firstNameInitial}`;
307
+ });
308
+ this.fullName = computed(() => {
309
+ const user = this.userState();
310
+ const impersonated = this.userState().impersonatingUser;
311
+ const fullName = (user) => {
312
+ return this.orderSignal()
313
+ ? `${user.firstName} ${user.lastName}`
314
+ : `${user.lastName} ${user.firstName}`;
315
+ };
316
+ return {
317
+ user: fullName(user),
318
+ impersonated: impersonated ? fullName(impersonated) : undefined,
319
+ };
272
320
  });
273
321
  }
274
322
  ngOnDestroy() {
@@ -281,13 +329,13 @@ class EuiUserProfileCardComponent {
281
329
  onClose() {
282
330
  this.closeProfileMenu.emit();
283
331
  }
284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, deps: [{ token: i1$1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
285
- 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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i4$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { 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$1.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 }); }
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
333
+ 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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i3$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { 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: 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 }); }
286
334
  }
287
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiUserProfileCardComponent, decorators: [{
288
336
  type: Component,
289
- 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" }]
290
- }], ctorParameters: () => [{ type: i1$1.UserService }], propDecorators: { cssClasses: [{
337
+ 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" }]
338
+ }], ctorParameters: () => [], propDecorators: { cssClasses: [{
291
339
  type: HostBinding,
292
340
  args: ['class']
293
341
  }], impersonateLabel: [{
@@ -299,6 +347,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
299
347
  }], isShowAvatarInitials: [{
300
348
  type: Input,
301
349
  args: [{ transform: booleanAttribute }]
350
+ }], reverseNameOrder: [{
351
+ type: Input
302
352
  }], showProfileInfo: [{
303
353
  type: Output
304
354
  }], closeProfileMenu: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-user-profile.mjs","sources":["../../eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.ts","../../eui-user-profile/user-profile-menu/user-profile-menu.component.ts","../../eui-user-profile/user-profile.component.ts","../../eui-user-profile/user-profile.component.html","../../eui-user-profile/user-profile-card/user-profile-card.component.ts","../../eui-user-profile/user-profile-card/user-profile-card.component.html","../../eui-user-profile/user-profile.module.ts","../../eui-user-profile/eui-components-eui-user-profile.ts"],"sourcesContent":["import { Component, HostBinding, ViewEncapsulation, ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'eui-user-profile-menu-item',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileMenuItemComponent implements FocusableOption {\n @HostBinding('class') class = 'eui-user-profile-menu-item';\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.role') role = 'menuitem';\n\n constructor(private element: ElementRef) {}\n\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n AfterContentInit,\n QueryList,\n ContentChildren,\n OnDestroy,\n HostListener,\n forwardRef,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EuiUserProfileMenuItemComponent } from '../user-profile-menu-item/user-profile-menu-item.component';\nimport { EuiDropdownService } from '@eui/components/eui-dropdown';\n\n@Component({\n selector: 'eui-user-profile-menu',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileMenuComponent implements AfterContentInit, OnDestroy {\n @HostBinding() class = 'eui-user-profile-menu';\n @HostBinding('attr.role') role = 'menu';\n\n @ContentChildren(forwardRef(() => EuiUserProfileMenuItemComponent)) items: QueryList<EuiUserProfileMenuItemComponent>;\n private focusKeyManager: FocusKeyManager<EuiUserProfileMenuItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private dropdownService: EuiDropdownService) {}\n\n @HostListener('keydown', ['$event'])\n onKeydown(event): void {\n this.focusKeyManager.onKeydown(event);\n }\n\n ngAfterContentInit(): void {\n this.dropdownService.isDropdownOpen.pipe(takeUntil(this.destroy$)).subscribe((isOpen: boolean) => {\n if (isOpen) {\n this.focusKeyManager = new FocusKeyManager(this.items).withWrap();\n this.focusKeyManager.setFirstItemActive();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, ViewChild, OnDestroy, Host, Optional, Inject, forwardRef, AfterContentInit, ContentChild, QueryList, AfterViewInit, ContentChildren, ElementRef, booleanAttribute, Renderer2 } from '@angular/core';\nimport { UserState } from '@eui/core';\nimport { UserService } from '@eui/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\nimport { Subject } from 'rxjs';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';\n\n/**\n * Represents an extended user profile that includes impersonation capabilities\n * and organizational information.\n * @extends {UserState}\n *\n * When using this interface with UserService, specify it as the generic type parameter:\n * Example: private userService: UserService<UserProfile>\n */\nexport interface UserProfile extends UserState {\n /** The profile of another user being impersonated, if applicable */\n impersonatingUser?: UserProfile;\n /** The user's function or role within the system */\n function?: string;\n /** The organization details associated with the user */\n organisation?: {\n /** The unique code identifying the organization */\n code: string\n }\n}\n\n@Component({\n selector: 'eui-user-profile',\n templateUrl: './user-profile.component.html',\n styleUrls: ['./_styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSecondary',\n 'euiPrimary',\n ],\n },\n ],\n})\nexport class EuiUserProfileComponent implements OnInit, OnDestroy, AfterViewInit {\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-user-profile'),\n this.isReverse ? 'eui-user-profile--reverse': '',\n this.isShowAvatarInitials ? 'eui-user-profile--initials': '',\n ].join(' ').trim();\n }\n\n userState: UserProfile;\n isOnline = true;\n avatarInitials: string;\n\n @Input() welcomeLabel = 'Welcome';\n @Input() impersonateLabel = 'impersonating';\n @Input() avatarUrl: string;\n @Input() subInfos: string;\n @Input() statusVariant = 'success';\n\n @Input({ transform: booleanAttribute }) hasMenu = false;\n @Input({ transform: booleanAttribute }) hasWelcomeLabel = true;\n @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n @Input({ transform: booleanAttribute }) isReverse = false;\n @Input({ transform: booleanAttribute }) hasToggle = false;\n @Input({ transform: booleanAttribute }) isHeaderUserProfile = false;\n @Input({ transform: booleanAttribute }) isShowUserInfos = true;\n\n @Input({ transform: booleanAttribute }) euiStatusSecondary = false;\n @Input({ transform: booleanAttribute }) euiStatusSuccess = false;\n @Input({ transform: booleanAttribute }) euiStatusDanger = false;\n\n @ViewChild('dropdown') dropdown: EuiDropdownComponent;\n @ContentChildren(forwardRef(() => EuiUserProfileMenuComponent), { descendants: true })\n hasMenuContent: QueryList<EuiUserProfileMenuComponent>;\n\n isDropdownOpen = false;\n\n private unsubscribeSubject$: Subject<void> = new Subject();\n\n constructor(\n private elRef: ElementRef,\n private userService: UserService,\n public baseStatesDirective: BaseStatesDirective,\n ) {\n }\n\n ngOnInit(): void {\n this.userService\n .getState()\n .pipe(takeUntil(this.unsubscribeSubject$))\n .subscribe((state: UserProfile) => {\n if (state) {\n this.userState = state;\n const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();\n const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();\n this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;\n }\n });\n }\n\n ngAfterViewInit(): void {\n let hasToolbarItemParent = false, toolbar;\n\n try {\n hasToolbarItemParent = this.elRef.nativeElement.closest('eui-toolbar-item');\n toolbar = this.elRef.nativeElement.closest('eui-toolbar');\n } catch(e) {\n // do nothing\n }\n\n setTimeout(() => {\n if (hasToolbarItemParent) {\n this.baseStatesDirective.euiSizeS = true;\n if (toolbar && toolbar.classList.contains('eui--secondary') || this.baseStatesDirective.euiSecondary) {\n this.baseStatesDirective.euiSecondary = true;\n } else {\n this.baseStatesDirective.euiPrimary = true;\n }\n }\n if (hasToolbarItemParent || !this.isHeaderUserProfile) {\n this.hasMenu = this.hasMenuContent.length !== 0;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeSubject$.next();\n this.unsubscribeSubject$.complete();\n }\n\n closeDropdown(): void {\n this.dropdown.closeDropdown();\n this.isDropdownOpen = false;\n }\n\n onDropdownExpand(isOpen: boolean): void {\n this.isDropdownOpen = isOpen;\n }\n}\n","@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","import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, EventEmitter, Output, OnDestroy, booleanAttribute } from '@angular/core';\nimport { UserProfile } from '../user-profile.component';\nimport { UserService } from '@eui/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'eui-user-profile-card',\n templateUrl: './user-profile-card.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileCardComponent implements OnInit, OnDestroy {\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-user-profile-card';\n }\n\n avatarInitials: string;\n userState: UserProfile;\n isOnline = true;\n\n @Input() impersonateLabel = 'impersonating';\n @Input() showDetailsLabel = 'Show profile details';\n @Input() avatarUrl: string;\n @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n\n @Output() showProfileInfo: EventEmitter<void> = new EventEmitter();\n @Output() closeProfileMenu: EventEmitter<void> = new EventEmitter();\n\n private unsubscribeSubject$: Subject<void> = new Subject();\n\n constructor(\n private userService: UserService<UserProfile>,\n ) {}\n\n ngOnInit(): void {\n this.userService\n .getState()\n .pipe(\n takeUntil(this.unsubscribeSubject$),\n )\n .subscribe((state) => {\n if (state) {\n const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();\n const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();\n this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;\n this.userState = state;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeSubject$.next();\n this.unsubscribeSubject$.complete();\n }\n\n onShowInfoClick(): void {\n this.showProfileInfo.emit();\n }\n\n onClose(): void {\n this.closeProfileMenu.emit();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';\nimport { EuiUserProfileMenuItemComponent } from './user-profile-menu-item/user-profile-menu-item.component';\n\nimport { EuiUserProfileComponent } from './user-profile.component';\nimport { EuiUserProfileCardComponent } from './user-profile-card/user-profile-card.component';\n\nimport { EuiAvatarModule } from '@eui/components/eui-avatar';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\nconst COMPONENTS = [EuiUserProfileComponent, EuiUserProfileMenuComponent, EuiUserProfileMenuItemComponent, EuiUserProfileCardComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n EuiIconModule,\n EuiDropdownModule, EuiButtonModule, EuiAvatarModule,\n EuiIconButtonModule,\n EuiBadgeModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EuiUserProfileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i5","i2","i3","i4","i6"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAQa,+BAA+B,CAAA;AAKxC,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO;QAJL,IAAK,CAAA,KAAA,GAAG,4BAA4B;QAC5B,IAAQ,CAAA,QAAA,GAAG,IAAI;QACnB,IAAI,CAAA,IAAA,GAAG,UAAU;;IAI3C,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;;+GAR7B,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,+KAH9B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAG5B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACxC,iBAAA;+EAEyB,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO;gBACU,QAAQ,EAAA,CAAA;sBAArC,WAAW;uBAAC,eAAe;gBACF,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;;;MCYf,2BAA2B,CAAA;AAQpC,IAAA,WAAA,CAAoB,eAAmC,EAAA;QAAnC,IAAe,CAAA,eAAA,GAAf,eAAe;QAPpB,IAAK,CAAA,KAAA,GAAG,uBAAuB;QACpB,IAAI,CAAA,IAAA,GAAG,MAAM;AAI/B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;;AAK3D,IAAA,SAAS,CAAC,KAAK,EAAA;AACX,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;;IAGzC,kBAAkB,GAAA;QACd,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;YAC7F,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;AACjE,gBAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;;AAEjD,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;;+GA1BtB,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAIF,+BAA+B,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPvD,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAG5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACxC,iBAAA;uFAEkB,KAAK,EAAA,CAAA;sBAAnB;gBACyB,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBAE4C,KAAK,EAAA,CAAA;sBAAxE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,+BAA+B,CAAC;gBAOlE,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;MCa1B,uBAAuB,CAAA;AAChC,IAAA,IACW,UAAU,GAAA;QACjB,OAAO;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,kBAAkB,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,2BAA2B,GAAE,EAAE;YAChD,IAAI,CAAC,oBAAoB,GAAG,4BAA4B,GAAE,EAAE;AAC/D,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;;AAkCtB,IAAA,WAAA,CACY,KAAiB,EACjB,WAAwB,EACzB,mBAAwC,EAAA;QAFvC,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAW,CAAA,WAAA,GAAX,WAAW;QACZ,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QAjC9B,IAAQ,CAAA,QAAA,GAAG,IAAI;QAGN,IAAY,CAAA,YAAA,GAAG,SAAS;QACxB,IAAgB,CAAA,gBAAA,GAAG,eAAe;QAGlC,IAAa,CAAA,aAAA,GAAG,SAAS;QAEM,IAAO,CAAA,OAAA,GAAG,KAAK;QACf,IAAe,CAAA,eAAA,GAAG,IAAI;QACtB,IAAoB,CAAA,oBAAA,GAAG,KAAK;QAC5B,IAAgB,CAAA,gBAAA,GAAG,KAAK;QACxB,IAAS,CAAA,SAAA,GAAG,KAAK;QACjB,IAAS,CAAA,SAAA,GAAG,KAAK;QACjB,IAAmB,CAAA,mBAAA,GAAG,KAAK;QAC3B,IAAe,CAAA,eAAA,GAAG,IAAI;QAEtB,IAAkB,CAAA,kBAAA,GAAG,KAAK;QAC1B,IAAgB,CAAA,gBAAA,GAAG,KAAK;QACxB,IAAe,CAAA,eAAA,GAAG,KAAK;QAM/D,IAAc,CAAA,cAAA,GAAG,KAAK;AAEd,QAAA,IAAA,CAAA,mBAAmB,GAAkB,IAAI,OAAO,EAAE;;IAS1D,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;AACA,aAAA,QAAQ;AACR,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAkB,KAAI;YAC9B,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AACvE,gBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;gBACrE,IAAI,CAAC,cAAc,GAAG,CAAA,EAAG,gBAAgB,CAAG,EAAA,eAAe,EAAE;;AAErE,SAAC,CAAC;;IAGV,eAAe,GAAA;AACX,QAAA,IAAI,oBAAoB,GAAG,KAAK,EAAE,OAAO;AAEzC,QAAA,IAAI;YACA,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;;QAC3D,OAAM,CAAC,EAAE;;;QAIX,UAAU,CAAC,MAAK;YACZ,IAAI,oBAAoB,EAAE;AACtB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI;AACxC,gBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;AAClG,oBAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY,GAAG,IAAI;;qBACzC;AACH,oBAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI;;;AAGlD,YAAA,IAAI,oBAAoB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;;AAEvD,SAAC,CAAC;;IAGN,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;;IAGvC,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;AAG/B,IAAA,gBAAgB,CAAC,MAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;;+GAlGvB,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAoBZ,gBAAgB,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAChB,gBAAgB,CAAA,EAAA,oBAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAChB,gBAAgB,CAChB,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAgB,CAChB,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,CAChB,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAgB,uEAChB,gBAAgB,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAChB,gBAAgB,CAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAEhB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAChB,gBAAgB,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAChB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAGF,2BAA2B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChFjE,4sHAgFA,EAAA,MAAA,EAAA,CAAA,ynIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,gCAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDlCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,OAAO,iBACjC,iBAAiB,CAAC,IAAI,EACrB,cAAA,EAAA;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;AAC9B,4BAAA,MAAM,EAAE;gCACJ,UAAU;gCACV,cAAc;gCACd,YAAY;AACf,6BAAA;AACJ,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,4sHAAA,EAAA,MAAA,EAAA,CAAA,ynIAAA,CAAA,EAAA;6IAIU,UAAU,EAAA,CAAA;sBADpB,WAAW;uBAAC,OAAO;gBAaX,YAAY,EAAA,CAAA;sBAApB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBAEuC,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEf,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU;gBAErB,cAAc,EAAA,CAAA;sBADb,eAAe;uBAAC,UAAU,CAAC,MAAM,2BAA2B,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;MEpE5E,2BAA2B,CAAA;AACpC,IAAA,IACW,UAAU,GAAA;AACjB,QAAA,OAAO,uBAAuB;;AAiBlC,IAAA,WAAA,CACY,WAAqC,EAAA;QAArC,IAAW,CAAA,WAAA,GAAX,WAAW;QAbvB,IAAQ,CAAA,QAAA,GAAG,IAAI;QAEN,IAAgB,CAAA,gBAAA,GAAG,eAAe;QAClC,IAAgB,CAAA,gBAAA,GAAG,sBAAsB;QAEV,IAAoB,CAAA,oBAAA,GAAG,KAAK;AAE1D,QAAA,IAAA,CAAA,eAAe,GAAuB,IAAI,YAAY,EAAE;AACxD,QAAA,IAAA,CAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAE;AAE3D,QAAA,IAAA,CAAA,mBAAmB,GAAkB,IAAI,OAAO,EAAE;;IAM1D,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;AACA,aAAA,QAAQ;AACR,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAEtC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACjB,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AACvE,gBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;gBACrE,IAAI,CAAC,cAAc,GAAG,CAAA,EAAG,gBAAgB,CAAG,EAAA,eAAe,EAAE;AAC7D,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE9B,SAAC,CAAC;;IAGV,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;;IAGvC,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;IAG/B,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;;+GAlDvB,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA3B,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAahB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBxC,u6DAsCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FD1Ba,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,mBAEhB,uBAAuB,CAAC,OAAO,EACjC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,u6DAAA,EAAA;kFAI1B,UAAU,EAAA,CAAA;sBADpB,WAAW;uBAAC,OAAO;gBASX,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACuC,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAE5B,eAAe,EAAA,CAAA;sBAAxB;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;;;AEZL,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,CAAC;MAa1H,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAApB,oBAAoB,EAAA,YAAA,EAAA,CAbb,uBAAuB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAI9H,YAAY;YACZ,aAAa;YACb,iBAAiB,EAAE,eAAe,EAAE,eAAe;YACnD,mBAAmB;AACnB,YAAA,cAAc,aARF,uBAAuB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAazH,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YATzB,YAAY;YACZ,aAAa;YACb,iBAAiB,EAAE,eAAe,EAAE,eAAe;YACnD,mBAAmB;YACnB,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAKT,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,iBAAiB,EAAE,eAAe,EAAE,eAAe;wBACnD,mBAAmB;wBACnB,cAAc;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA;;;AC5BD;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-components-eui-user-profile.mjs","sources":["../../eui-user-profile/user-profile-menu-item/user-profile-menu-item.component.ts","../../eui-user-profile/user-profile-menu/user-profile-menu.component.ts","../../eui-user-profile/user-profile.component.ts","../../eui-user-profile/user-profile.component.html","../../eui-user-profile/user-profile-card/user-profile-card.component.ts","../../eui-user-profile/user-profile-card/user-profile-card.component.html","../../eui-user-profile/user-profile.module.ts","../../eui-user-profile/eui-components-eui-user-profile.ts"],"sourcesContent":["import { Component, HostBinding, ViewEncapsulation, ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'eui-user-profile-menu-item',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileMenuItemComponent implements FocusableOption {\n @HostBinding('class') class = 'eui-user-profile-menu-item';\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.role') role = 'menuitem';\n\n constructor(private element: ElementRef) {}\n\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n AfterContentInit,\n QueryList,\n ContentChildren,\n OnDestroy,\n HostListener,\n forwardRef,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EuiUserProfileMenuItemComponent } from '../user-profile-menu-item/user-profile-menu-item.component';\nimport { EuiDropdownService } from '@eui/components/eui-dropdown';\n\n@Component({\n selector: 'eui-user-profile-menu',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileMenuComponent implements AfterContentInit, OnDestroy {\n @HostBinding() class = 'eui-user-profile-menu';\n @HostBinding('attr.role') role = 'menu';\n\n @ContentChildren(forwardRef(() => EuiUserProfileMenuItemComponent)) items: QueryList<EuiUserProfileMenuItemComponent>;\n private focusKeyManager: FocusKeyManager<EuiUserProfileMenuItemComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private dropdownService: EuiDropdownService) {}\n\n @HostListener('keydown', ['$event'])\n onKeydown(event): void {\n this.focusKeyManager.onKeydown(event);\n }\n\n ngAfterContentInit(): void {\n this.dropdownService.isDropdownOpen.pipe(takeUntil(this.destroy$)).subscribe((isOpen: boolean) => {\n if (isOpen) {\n this.focusKeyManager = new FocusKeyManager(this.items).withWrap();\n this.focusKeyManager.setFirstItemActive();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","import {\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n forwardRef,\n QueryList,\n ContentChildren,\n booleanAttribute,\n computed,\n Signal,\n signal,\n SimpleChanges,\n OnChanges,\n AfterViewInit,\n ElementRef,\n} from '@angular/core';\nimport { UserDetails, UserService, UserState } from '@eui/core';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\nimport { Subject } from 'rxjs';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Represents an extended user profile that includes impersonation capabilities\n * and organizational information.\n * @extends {UserState}\n *\n * When using this interface with UserService, specify it as the generic type parameter:\n * Example: private userService: UserService<UserProfile>\n */\nexport interface UserProfile extends UserState {\n /** The profile of another user being impersonated, if applicable */\n impersonatingUser?: UserProfile;\n /** The user's function or role within the system */\n function?: string;\n /** The organization details associated with the user */\n organisation?: {\n /** The unique code identifying the organization */\n code: string\n }\n}\n\n@Component({\n selector: 'eui-user-profile',\n templateUrl: './user-profile.component.html',\n styleUrls: ['./_styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSecondary',\n 'euiPrimary',\n ],\n },\n ],\n})\nexport class EuiUserProfileComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-user-profile'),\n this.isReverse ? 'eui-user-profile--reverse': '',\n this.isShowAvatarInitials ? 'eui-user-profile--initials': '',\n ].join(' ').trim();\n }\n\n isOnline = true;\n userState: Signal<UserProfile>;\n avatarInitials: Signal<string>;\n /**\n * Holds the full name of the user and the impersonated user\n */\n fullName: Signal<{ user: string, impersonated: string }>;\n\n @Input() welcomeLabel = 'Welcome';\n @Input() impersonateLabel = 'impersonating';\n @Input() avatarUrl: string;\n @Input() subInfos: string;\n @Input() statusVariant = 'success';\n\n @Input({ transform: booleanAttribute }) hasMenu = false;\n @Input({ transform: booleanAttribute }) hasWelcomeLabel = true;\n @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n @Input({ transform: booleanAttribute }) hasTabNavigation = false;\n @Input({ transform: booleanAttribute }) isReverse = false;\n @Input({ transform: booleanAttribute }) hasToggle = false;\n @Input({ transform: booleanAttribute }) isHeaderUserProfile = false;\n @Input({ transform: booleanAttribute }) isShowUserInfos = true;\n\n @Input({ transform: booleanAttribute }) euiStatusSecondary = false;\n @Input({ transform: booleanAttribute }) euiStatusSuccess = false;\n @Input({ transform: booleanAttribute }) euiStatusDanger = false;\n /**\n * If true, the name will be displayed in reverse order (first name, first)\n */\n @Input() reverseNameOrder = false;\n\n @ViewChild('dropdown') dropdown: EuiDropdownComponent;\n @ContentChildren(forwardRef(() => EuiUserProfileMenuComponent), { descendants: true })\n hasMenuContent: QueryList<EuiUserProfileMenuComponent>;\n\n isDropdownOpen = false;\n\n private orderSignal = signal(false);\n private unsubscribeSubject$: Subject<void> = new Subject();\n\n constructor(\n private elRef: ElementRef,\n private userService: UserService,\n public baseStatesDirective: BaseStatesDirective,\n ) {\n this.userState = toSignal(this.userService.getState());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['reverseNameOrder']) {\n this.orderSignal.set(this.reverseNameOrder);\n }\n }\n\n ngOnInit(): void {\n this.avatarInitials = computed(() => {\n const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();\n const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();\n return this.orderSignal() ?\n `${firstNameInitial}${lastNameInitial}`\n : `${lastNameInitial}${firstNameInitial}`;\n });\n this.fullName = computed(() => {\n const user = this.userState();\n const impersonated = this.userState().impersonatingUser;\n\n const fullName = (user: UserDetails): string => {\n return this.orderSignal()\n ? `${user.firstName} ${user.lastName}`\n : `${user.lastName} ${user.firstName}`;\n };\n return {\n user: fullName(user),\n impersonated: impersonated ? fullName(impersonated) : undefined,\n };\n });\n }\n\n ngAfterViewInit(): void {\n let hasToolbarItemParent = false, toolbar;\n\n try {\n hasToolbarItemParent = this.elRef.nativeElement.closest('eui-toolbar-item');\n toolbar = this.elRef.nativeElement.closest('eui-toolbar');\n } catch(e) {\n // do nothing\n }\n\n setTimeout(() => {\n if (hasToolbarItemParent) {\n this.baseStatesDirective.euiSizeS = true;\n if (toolbar && toolbar.classList.contains('eui--secondary') || this.baseStatesDirective.euiSecondary) {\n this.baseStatesDirective.euiSecondary = true;\n } else {\n this.baseStatesDirective.euiPrimary = true;\n }\n }\n if (hasToolbarItemParent || !this.isHeaderUserProfile) {\n this.hasMenu = this.hasMenuContent.length !== 0;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeSubject$.next();\n this.unsubscribeSubject$.complete();\n }\n\n closeDropdown(): void {\n this.dropdown.closeDropdown();\n this.isDropdownOpen = false;\n }\n\n onDropdownExpand(isOpen: boolean): void {\n this.isDropdownOpen = isOpen;\n }\n}\n","@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","import {\n inject,\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n OnInit,\n EventEmitter,\n Output,\n OnDestroy,\n Signal,\n computed,\n signal,\n SimpleChanges,\n OnChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { UserProfile } from '../user-profile.component';\nimport { UserService, UserDetails } from '@eui/core';\nimport { Subject } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'eui-user-profile-card',\n templateUrl: './user-profile-card.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiUserProfileCardComponent implements OnInit, OnDestroy, OnChanges {\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-user-profile-card';\n }\n\n avatarInitials: Signal<string>;\n /**\n * Holds the full name of the user and the impersonated user\n */\n fullName: Signal<{ user: string, impersonated: string }>;\n userState: Signal<UserProfile>;\n /**\n * If true, the user is online\n * @deprecated This property is not used anymore\n */\n isOnline = true;\n\n @Input() impersonateLabel = 'impersonating';\n @Input() showDetailsLabel = 'Show profile details';\n @Input() avatarUrl: string;\n @Input({ transform: booleanAttribute }) isShowAvatarInitials = false;\n /**\n * If true, the name will be displayed in reverse order (first name, first)\n */\n @Input() reverseNameOrder = false;\n\n @Output() showProfileInfo: EventEmitter<void> = new EventEmitter();\n @Output() closeProfileMenu: EventEmitter<void> = new EventEmitter();\n private unsubscribeSubject$: Subject<void> = new Subject();\n private userService: UserService<UserProfile> = inject(UserService);\n private orderSignal = signal(false);\n\n constructor() {\n this.userState = toSignal(this.userService.getState());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['reverseNameOrder']) {\n this.orderSignal.set(this.reverseNameOrder);\n }\n }\n\n ngOnInit(): void {\n this.avatarInitials = computed((): string => {\n const firstNameInitial = this.userState().firstName?.substring(0, 1).toUpperCase();\n const lastNameInitial = this.userState().lastName?.substring(0, 1).toUpperCase();\n return this.orderSignal() ?\n `${firstNameInitial}${lastNameInitial}`\n : `${lastNameInitial}${firstNameInitial}`;\n });\n this.fullName = computed(() => {\n const user = this.userState();\n const impersonated = this.userState().impersonatingUser;\n\n const fullName = (user: UserDetails): string => {\n return this.orderSignal()\n ? `${user.firstName} ${user.lastName}`\n : `${user.lastName} ${user.firstName}`;\n };\n return {\n user: fullName(user),\n impersonated: impersonated ? fullName(impersonated) : undefined,\n };\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeSubject$.next();\n this.unsubscribeSubject$.complete();\n }\n\n onShowInfoClick(): void {\n this.showProfileInfo.emit();\n }\n\n onClose(): void {\n this.closeProfileMenu.emit();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiUserProfileMenuComponent } from './user-profile-menu/user-profile-menu.component';\nimport { EuiUserProfileMenuItemComponent } from './user-profile-menu-item/user-profile-menu-item.component';\n\nimport { EuiUserProfileComponent } from './user-profile.component';\nimport { EuiUserProfileCardComponent } from './user-profile-card/user-profile-card.component';\n\nimport { EuiAvatarModule } from '@eui/components/eui-avatar';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\nconst COMPONENTS = [EuiUserProfileComponent, EuiUserProfileMenuComponent, EuiUserProfileMenuItemComponent, EuiUserProfileCardComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n EuiIconModule,\n EuiDropdownModule, EuiButtonModule, EuiAvatarModule,\n EuiIconButtonModule,\n EuiBadgeModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EuiUserProfileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i5","i2","i3","i4"],"mappings":"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"}
@@ -301,7 +301,7 @@ class EuiAppSidebarHeaderUserProfileComponent {
301
301
  ].join(' ').trim();
302
302
  }
303
303
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarHeaderUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
304
- 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i2$2.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 }); }
304
+ 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i2$2.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 }); }
305
305
  }
306
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarHeaderUserProfileComponent, decorators: [{
307
307
  type: Component,
@@ -2046,7 +2046,7 @@ class EuiHeaderUserProfileComponent {
2046
2046
  this.hasMenu = this.hasMenuContent.length !== 0;
2047
2047
  }
2048
2048
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiHeaderUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2049
- 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: 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 }); }
2049
+ 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: 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 }); }
2050
2050
  }
2051
2051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiHeaderUserProfileComponent, decorators: [{
2052
2052
  type: Component,