@eui/components 17.0.0-next.26 → 17.0.0-next.27

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 (37) hide show
  1. package/docs/components/EuiAppComponent.html +1 -75
  2. package/docs/components/EuiAppSidebarHeaderUserProfileComponent.html +281 -133
  3. package/docs/components/EuiAppTopMessageComponent.html +1 -1
  4. package/docs/components/EuiNotificationsComponent.html +1 -1
  5. package/docs/components/EuiUserProfileCardComponent.html +2 -40
  6. package/docs/components/EuiUserProfileComponent.html +119 -30
  7. package/docs/dependencies.html +2 -2
  8. package/docs/js/menu-wc.js +3 -3
  9. package/docs/js/menu-wc_es5.js +1 -1
  10. package/docs/js/search/search_index.js +2 -2
  11. package/docs/modules/EuiAppSidebarModule.html +3 -0
  12. package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +5 -3
  13. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +64 -27
  14. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.module.mjs +10 -4
  15. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +5 -4
  16. package/esm2022/layout/eui-app/eui-app.component.mjs +6 -36
  17. package/esm2022/layout/eui-header/header-user-profile/header-user-profile.component.mjs +1 -1
  18. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +3 -3
  19. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +6 -7
  20. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +47 -19
  21. package/eui-tree-list/eui-tree-list-item.component.d.ts +1 -1
  22. package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
  23. package/fesm2022/eui-components-eui-tree-list.mjs +4 -2
  24. package/fesm2022/eui-components-eui-tree-list.mjs.map +1 -1
  25. package/fesm2022/eui-components-layout.mjs +562 -523
  26. package/fesm2022/eui-components-layout.mjs.map +1 -1
  27. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts +14 -10
  28. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
  29. package/layout/eui-app/eui-app-sidebar/sidebar.module.d.ts +2 -1
  30. package/layout/eui-app/eui-app-sidebar/sidebar.module.d.ts.map +1 -1
  31. package/layout/eui-app/eui-app.component.d.ts +3 -8
  32. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  33. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts +2 -3
  34. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  35. package/layout/eui-user-profile/user-profile.component.d.ts +13 -7
  36. package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild } from '@angular/core';
2
+ import { Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Host, Optional, Inject, forwardRef } from '@angular/core';
3
3
  import { coerceBoolean } from '@eui/core';
4
4
  import { takeUntil } from 'rxjs/operators';
5
5
  import { Subject } from 'rxjs';
6
6
  import { BaseStatesDirective } from '@eui/components/shared';
7
+ import { EuiToolbarItemComponent } from '../eui-toolbar';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@eui/core";
9
10
  import * as i2 from "@eui/components/shared";
@@ -16,8 +17,7 @@ export class EuiUserProfileComponent {
16
17
  get cssClasses() {
17
18
  return this.getCssClasses();
18
19
  }
19
- constructor(asService, userService, baseStatesDirective) {
20
- this.asService = asService;
20
+ constructor(toolbarItemParent, userService, baseStatesDirective) {
21
21
  this.userService = userService;
22
22
  this.baseStatesDirective = baseStatesDirective;
23
23
  this.isOnline = true;
@@ -28,20 +28,28 @@ export class EuiUserProfileComponent {
28
28
  this.hasWelcomeLabel = true;
29
29
  this.isShowAvatarInitials = false;
30
30
  this.hasTabNavigation = false;
31
+ this.isReverse = false;
32
+ this.hasToggle = false;
31
33
  this.unsubscribeSubject$ = new Subject();
34
+ this.toolbarItemParent = toolbarItemParent;
32
35
  }
33
36
  ngOnInit() {
34
- if (this.isShowAvatarInitials) {
35
- this.userService
36
- .getState()
37
- .pipe(takeUntil(this.unsubscribeSubject$))
38
- .subscribe((state) => {
39
- if (state) {
40
- const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
41
- const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
42
- this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
43
- }
44
- });
37
+ this.userService
38
+ .getState()
39
+ .pipe(takeUntil(this.unsubscribeSubject$))
40
+ .subscribe((state) => {
41
+ if (state) {
42
+ this.userState = state;
43
+ const firstNameInitial = state.firstName?.substring(0, 1).toUpperCase();
44
+ const lastNameInitial = state.lastName?.substring(0, 1).toUpperCase();
45
+ this.avatarInitials = `${firstNameInitial}${lastNameInitial}`;
46
+ }
47
+ });
48
+ }
49
+ ngAfterContentInit() {
50
+ if (this.toolbarItemParent) {
51
+ this.baseStatesDirective.euiSizeS = true;
52
+ this.baseStatesDirective.euiInverted = true;
45
53
  }
46
54
  }
47
55
  ngOnDestroy() {
@@ -54,10 +62,11 @@ export class EuiUserProfileComponent {
54
62
  getCssClasses() {
55
63
  return [
56
64
  this.baseStatesDirective.getCssClasses('eui-user-profile'),
65
+ this.isReverse ? 'eui-user-profile--reverse' : '',
57
66
  ].join(' ').trim();
58
67
  }
59
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiUserProfileComponent, deps: [{ token: i1.EuiAppShellService }, { token: i1.UserService }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
60
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", hasMenu: "hasMenu", isShowUserInfos: "isShowUserInfos", hasWelcomeLabel: "hasWelcomeLabel", isShowAvatarInitials: "isShowAvatarInitials", hasTabNavigation: "hasTabNavigation" }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiInverted", "euiInverted"] }], ngImport: i0, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <button [tabindex]=\"hasMenu ? '0' : '-1'\" class=\"eui-user-profile-content\">\n <div *ngIf=\"isShowUserInfos\"\n class=\"eui-user-profile__infos\"\n [class.eui-user-profile__infos--no-subinfos]=\"(asService.state$ | async).userSubInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"(asService.state$ | async).impersonatedUserInfos; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span class=\"eui-u-mr-2xs\" *ngIf=\"hasWelcomeLabel\">{{ welcomeLabel }}</span>\n <strong>{{ (asService.state$ | async).userInfos }}</strong>\n <span class=\"eui-u-ml-2xs\">{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).impersonatedUserInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).userInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-template>\n </div>\n\n <eui-avatar [euiSizeS]=\"baseStatesDirective.euiSizeS\" euiInfo\n [hasShadow]=\"(asService.state$ | async).impersonatedUserInfos\">\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-badge *ngIf=\"isShowAvatarInitials\" position=\"bottom\">\n <eui-badge euiSecondary>\n <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" fillColor=\"white\"></eui-icon-svg>\n </eui-badge>\n </eui-avatar-badge>\n </eui-avatar>\n </button>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;background:none;border:none;cursor:pointer;display:flex}.eui-user-profile-content:focus:active:not([readonly]),.eui-user-profile-content:focus:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile-content:focus [tabindex=\"0\"]:active:not([readonly]),.eui-user-profile-content:focus [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;padding-right:var(--eui-base-spacing-s);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{text-align:right}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-90)}.eui-user-profile__infos--no-subinfos{display:flex}.eui-toolbar-item .eui-user-profile__infos,.eui-toolbar-item .eui-user-profile__infos-name,.eui-toolbar-item .eui-user-profile__subinfos{color:var(--eui-base-color-white)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--inverted .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile--inverted .eui-user-profile__infos-welcome,.eui-user-profile--inverted .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15)}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);border-left:var(--eui-base-spacing-2xs) solid transparent;cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);border-left:4px solid transparent}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item:focus{border-left:4px solid var(--eui-base-color-accessible-focus);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}.eui-user-profile-card{width:100%}.eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-base-spacing-m) var(--eui-base-spacing-m) var(--eui-base-spacing-m) 0}.eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-user-profile-card__avatar-wrapper{display:flex}.eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-base-spacing-s)}.eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-base-spacing-xs)}.eui-user-profile-card__impersonateInfos{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { 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: ["aria-label"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
68
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiUserProfileComponent, deps: [{ token: forwardRef(() => EuiToolbarItemComponent), host: true, optional: true }, { token: i1.UserService }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EuiUserProfileComponent, selector: "eui-user-profile", inputs: { welcomeLabel: "welcomeLabel", impersonateLabel: "impersonateLabel", avatarUrl: "avatarUrl", subInfos: "subInfos", hasMenu: "hasMenu", isShowUserInfos: "isShowUserInfos", hasWelcomeLabel: "hasWelcomeLabel", isShowAvatarInitials: "isShowAvatarInitials", hasTabNavigation: "hasTabNavigation", isReverse: "isReverse", hasToggle: "hasToggle" }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiInverted", "euiInverted"] }], ngImport: i0, template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <button [tabindex]=\"hasMenu ? '0' : '-1'\" class=\"eui-user-profile-content\">\n <div *ngIf=\"isShowUserInfos\"\n class=\"eui-user-profile__infos\"\n [class.eui-user-profile__infos--no-subinfos]=\"subInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"userState?.impersonatingUser; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span class=\"eui-u-mr-2xs\" *ngIf=\"hasWelcomeLabel\">{{ welcomeLabel }}</span>\n <strong>{{ userState?.impersonatingUser?.firstName }} {{ userState?.impersonatingUser?.lastName}}</strong>\n <span class=\"eui-u-ml-2xs\">{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.fullName }}\n </div>\n <div *ngIf=\"subInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ subInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n <div class=\"eui-user-profile__infos-name\">{{ userState?.fullName }}</div>\n <div *ngIf=\"subInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ subInfos }}\n </div>\n </ng-template>\n </div>\n\n <eui-avatar [euiSizeS]=\"baseStatesDirective.euiSizeS\" euiInfo\n [hasShadow]=\"userState?.impersonatingUser\">\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-badge position=\"bottom\" *ngIf=\"hasToggle\">\n <eui-badge euiSecondary>\n <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" fillColor=\"white\"></eui-icon-svg>\n </eui-badge>\n </eui-avatar-badge>\n </eui-avatar>\n </button>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;background:none;border:none;cursor:pointer;display:flex}.eui-user-profile-content:focus:active:not([readonly]),.eui-user-profile-content:focus:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile-content:focus [tabindex=\"0\"]:active:not([readonly]),.eui-user-profile-content:focus [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;padding-right:var(--eui-base-spacing-s);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{text-align:right}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-90)}.eui-user-profile__infos--no-subinfos{display:flex}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--inverted .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile--inverted .eui-user-profile__infos-welcome,.eui-user-profile--inverted .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15)}.eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-base-spacing-m)}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);border-left:var(--eui-base-spacing-2xs) solid transparent;cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);border-left:4px solid transparent}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item:focus{border-left:4px solid var(--eui-base-color-accessible-focus);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}.eui-user-profile-card{width:100%}.eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-base-spacing-m) var(--eui-base-spacing-m) var(--eui-base-spacing-m) 0}.eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-user-profile-card__avatar-wrapper{display:flex}.eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-base-spacing-s)}.eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-base-spacing-xs)}.eui-user-profile-card__impersonateInfos{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-s)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { 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: ["aria-label"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
61
70
  }
62
71
  __decorate([
63
72
  coerceBoolean
@@ -74,6 +83,12 @@ __decorate([
74
83
  __decorate([
75
84
  coerceBoolean
76
85
  ], EuiUserProfileComponent.prototype, "hasTabNavigation", void 0);
86
+ __decorate([
87
+ coerceBoolean
88
+ ], EuiUserProfileComponent.prototype, "isReverse", void 0);
89
+ __decorate([
90
+ coerceBoolean
91
+ ], EuiUserProfileComponent.prototype, "hasToggle", void 0);
77
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiUserProfileComponent, decorators: [{
78
93
  type: Component,
79
94
  args: [{ selector: 'eui-user-profile', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, hostDirectives: [
@@ -84,8 +99,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
84
99
  'euiInverted',
85
100
  ],
86
101
  },
87
- ], template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <button [tabindex]=\"hasMenu ? '0' : '-1'\" class=\"eui-user-profile-content\">\n <div *ngIf=\"isShowUserInfos\"\n class=\"eui-user-profile__infos\"\n [class.eui-user-profile__infos--no-subinfos]=\"(asService.state$ | async).userSubInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"(asService.state$ | async).impersonatedUserInfos; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span class=\"eui-u-mr-2xs\" *ngIf=\"hasWelcomeLabel\">{{ welcomeLabel }}</span>\n <strong>{{ (asService.state$ | async).userInfos }}</strong>\n <span class=\"eui-u-ml-2xs\">{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).impersonatedUserInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n <div class=\"eui-user-profile__infos-name\">{{ (asService.state$ | async).userInfos }}</div>\n <div *ngIf=\"(asService.state$ | async).userSubInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ (asService.state$ | async).userSubInfos }}\n </div>\n </ng-template>\n </div>\n\n <eui-avatar [euiSizeS]=\"baseStatesDirective.euiSizeS\" euiInfo\n [hasShadow]=\"(asService.state$ | async).impersonatedUserInfos\">\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-badge *ngIf=\"isShowAvatarInitials\" position=\"bottom\">\n <eui-badge euiSecondary>\n <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" fillColor=\"white\"></eui-icon-svg>\n </eui-badge>\n </eui-avatar-badge>\n </eui-avatar>\n </button>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;background:none;border:none;cursor:pointer;display:flex}.eui-user-profile-content:focus:active:not([readonly]),.eui-user-profile-content:focus:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile-content:focus [tabindex=\"0\"]:active:not([readonly]),.eui-user-profile-content:focus [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;padding-right:var(--eui-base-spacing-s);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{text-align:right}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-90)}.eui-user-profile__infos--no-subinfos{display:flex}.eui-toolbar-item .eui-user-profile__infos,.eui-toolbar-item .eui-user-profile__infos-name,.eui-toolbar-item .eui-user-profile__subinfos{color:var(--eui-base-color-white)}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--inverted .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile--inverted .eui-user-profile__infos-welcome,.eui-user-profile--inverted .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15)}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);border-left:var(--eui-base-spacing-2xs) solid transparent;cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);border-left:4px solid transparent}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item:focus{border-left:4px solid var(--eui-base-color-accessible-focus);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}.eui-user-profile-card{width:100%}.eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-base-spacing-m) var(--eui-base-spacing-m) var(--eui-base-spacing-m) 0}.eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-user-profile-card__avatar-wrapper{display:flex}.eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-base-spacing-s)}.eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-base-spacing-xs)}.eui-user-profile-card__impersonateInfos{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-s)}\n"] }]
88
- }], ctorParameters: () => [{ type: i1.EuiAppShellService }, { type: i1.UserService }, { type: i2.BaseStatesDirective }], propDecorators: { cssClasses: [{
102
+ ], template: "<ng-container *ngIf=\"hasMenu; else noMenuContent\">\n <eui-dropdown [hasTabNavigation]=\"hasTabNavigation\" width=\"340px\" #dropdown>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-container>\n\n<ng-template #noMenuContent>\n <ng-container *ngTemplateOutlet=\"userProfileContent\"></ng-container>\n</ng-template>\n\n<ng-template #userProfileContent>\n <button [tabindex]=\"hasMenu ? '0' : '-1'\" class=\"eui-user-profile-content\">\n <div *ngIf=\"isShowUserInfos\"\n class=\"eui-user-profile__infos\"\n [class.eui-user-profile__infos--no-subinfos]=\"subInfos && !hasWelcomeLabel\">\n <ng-container *ngIf=\"userState?.impersonatingUser; else notImpersonated\">\n <div class=\"eui-user-profile__infos-welcome\">\n <span class=\"eui-u-mr-2xs\" *ngIf=\"hasWelcomeLabel\">{{ welcomeLabel }}</span>\n <strong>{{ userState?.impersonatingUser?.firstName }} {{ userState?.impersonatingUser?.lastName}}</strong>\n <span class=\"eui-u-ml-2xs\">{{ impersonateLabel }}</span>\n </div>\n <div class=\"eui-user-profile__infos-name\">\n {{ userState?.fullName }}\n </div>\n <div *ngIf=\"subInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ subInfos }}\n </div>\n </ng-container>\n\n <ng-template #notImpersonated>\n <div *ngIf=\"hasWelcomeLabel\" class=\"eui-user-profile__infos-welcome\">{{ welcomeLabel }}</div>\n <div class=\"eui-user-profile__infos-name\">{{ userState?.fullName }}</div>\n <div *ngIf=\"subInfos\" class=\"eui-user-profile__infos-subinfos\">\n {{ subInfos }}\n </div>\n </ng-template>\n </div>\n\n <eui-avatar [euiSizeS]=\"baseStatesDirective.euiSizeS\" euiInfo\n [hasShadow]=\"userState?.impersonatingUser\">\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-badge position=\"bottom\" *ngIf=\"hasToggle\">\n <eui-badge euiSecondary>\n <eui-icon-svg icon=\"eui-chevron-down\" size=\"xs\" fillColor=\"white\"></eui-icon-svg>\n </eui-badge>\n </eui-avatar-badge>\n </eui-avatar>\n </button>\n</ng-template>\n", styles: [".eui-user-profile{display:flex;position:relative}.eui-user-profile-content{align-items:center;background:none;border:none;cursor:pointer;display:flex}.eui-user-profile-content:focus:active:not([readonly]),.eui-user-profile-content:focus:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile-content:focus [tabindex=\"0\"]:active:not([readonly]),.eui-user-profile-content:focus [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-user-profile__infos{align-items:flex-end;display:flex;flex-direction:column;padding-right:var(--eui-base-spacing-s);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-user-profile__infos-container{justify-content:flex-end;align-items:center;display:flex;width:100%}.eui-user-profile__infos-welcome{text-align:right}.eui-user-profile__infos-name{color:var(--eui-base-color-primary-100);font:normal normal 400 .875rem/1rem var(--eui-base-font-family);font-weight:700}.eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-90)}.eui-user-profile__infos--no-subinfos{display:flex}@media screen and (max-width: 767px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:flex}.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}@media screen and (min-width: 768px){.eui-app-shell-header-toolbar-items .eui-user-profile{display:none}.is-header-shrink .eui-user-profile{display:flex}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-app .eui-app-toolbar .eui-user-profile__infos{display:none}}.eui-user-profile--inverted .eui-user-profile__infos-name{color:var(--eui-base-color-white)}.eui-user-profile--inverted .eui-user-profile__infos-welcome,.eui-user-profile--inverted .eui-user-profile__infos-subinfos{color:var(--eui-base-color-grey-15)}.eui-user-profile--reverse .eui-user-profile-content{flex-direction:row-reverse}.eui-user-profile--reverse .eui-user-profile__infos{margin-left:var(--eui-base-spacing-m)}.eui-user-profile-menu{height:auto;min-width:340px;position:relative}.eui-user-profile-menu-item{align-items:center;border-bottom:1px solid var(--eui-base-color-grey-20);border-left:var(--eui-base-spacing-2xs) solid transparent;cursor:pointer;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);border-left:4px solid transparent}.eui-user-profile-menu-item:last-child{border-bottom:0}.eui-user-profile-menu-item a{color:var(--eui-base-color-text);text-decoration:none}.eui-user-profile-menu-item .eui-icon{color:var(--eui-base-color-grey-75);font-size:var(--eui-base-icon-size-m);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs)}.eui-user-profile-menu-item:hover{background-color:var(--eui-base-color-grey-5);cursor:pointer}.eui-user-profile-menu-item:focus{border-left:4px solid var(--eui-base-color-accessible-focus);transition:outline .15s ease-in-out,border .15s ease-in-out}.eui-user-profile-menu-item.link{cursor:pointer}.eui-user-profile-menu-item-right-content{margin-left:auto}.eui-user-profile-card{width:100%}.eui-user-profile-card__main-wrapper{display:flex;flex-direction:row;padding:var(--eui-base-spacing-m) var(--eui-base-spacing-m) var(--eui-base-spacing-m) 0}.eui-user-profile-card__main-wrapper-right-content{display:flex;flex-direction:column;margin-left:auto}.eui-user-profile-card__avatar-wrapper{display:flex}.eui-user-profile-card__userInfos{display:flex;flex-direction:column;padding-left:var(--eui-base-spacing-s)}.eui-user-profile-card__userInfos-item{padding-bottom:var(--eui-base-spacing-xs)}.eui-user-profile-card__impersonateInfos{background-color:var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-s)}\n"] }]
103
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
104
+ type: Host
105
+ }, {
106
+ type: Optional
107
+ }, {
108
+ type: Inject,
109
+ args: [forwardRef(() => EuiToolbarItemComponent)]
110
+ }] }, { type: i1.UserService }, { type: i2.BaseStatesDirective }], propDecorators: { cssClasses: [{
89
111
  type: HostBinding,
90
112
  args: ['class']
91
113
  }], dropdown: [{
@@ -97,6 +119,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
97
119
  type: Input
98
120
  }], avatarUrl: [{
99
121
  type: Input
122
+ }], subInfos: [{
123
+ type: Input
100
124
  }], hasMenu: [{
101
125
  type: Input
102
126
  }], isShowUserInfos: [{
@@ -107,5 +131,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
107
131
  type: Input
108
132
  }], hasTabNavigation: [{
109
133
  type: Input
134
+ }], isReverse: [{
135
+ type: Input
136
+ }], hasToggle: [{
137
+ type: Input
110
138
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xheW91dC9ldWktdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9sYXlvdXQvZXVpLXVzZXItcHJvZmlsZS91c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBVSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEksT0FBTyxFQUFtQyxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQWtCN0QsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQTZCRCxZQUNXLFNBQTZCLEVBQzVCLFdBQXdCLEVBQ3pCLG1CQUF3QztRQUZ4QyxjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBOUJuRCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBS1AsaUJBQVksR0FBRyxTQUFTLENBQUM7UUFDekIscUJBQWdCLEdBQUcsZUFBZSxDQUFDO1FBSzVDLFlBQU8sR0FBaUIsSUFBSSxDQUFDO1FBRzdCLG9CQUFlLEdBQWlCLElBQUksQ0FBQztRQUdyQyxvQkFBZSxHQUFpQixJQUFJLENBQUM7UUFHckMseUJBQW9CLEdBQWlCLEtBQUssQ0FBQztRQUczQyxxQkFBZ0IsR0FBaUIsS0FBSyxDQUFDO1FBRS9CLHdCQUFtQixHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBTXhELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFdBQVc7aUJBQ1gsUUFBUSxFQUFFO2lCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNqQixJQUFJLEtBQUssRUFBRTtvQkFDUCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDeEUsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsZ0JBQWdCLEdBQUcsZUFBZSxFQUFFLENBQUM7aUJBQ2pFO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTztZQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7U0FDN0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztpSUFuRVEsdUJBQXVCO3FIQUF2Qix1QkFBdUIscW1CQ3pCcEMsa3FHQXdEQTs7QURkSTtJQURDLGFBQWE7d0RBQ2U7QUFHN0I7SUFEQyxhQUFhO2dFQUN1QjtBQUdyQztJQURDLGFBQWE7Z0VBQ3VCO0FBR3JDO0lBREMsYUFBYTtxRUFDNkI7QUFHM0M7SUFEQyxhQUFhO2lFQUN5QjsyRkE3QjlCLHVCQUF1QjtrQkFoQm5DLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUksa0JBQ3JCO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSxtQkFBbUI7NEJBQzlCLE1BQU0sRUFBRTtnQ0FDSixVQUFVO2dDQUNWLGFBQWE7NkJBQ2hCO3lCQUNKO3FCQUNKO21KQUlVLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsT0FBTztnQkFRRyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRVosWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFJTixPQUFPO3NCQUZOLEtBQUs7Z0JBS04sZUFBZTtzQkFGZCxLQUFLO2dCQUtOLGVBQWU7c0JBRmQsS0FBSztnQkFLTixvQkFBb0I7c0JBRm5CLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV1aURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kcm9wZG93bic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlU3RhdGVzRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXVzZXItcHJvZmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vX3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogW1xuICAgICAgICAgICAgICAgICdldWlTaXplUycsXG4gICAgICAgICAgICAgICAgJ2V1aUludmVydGVkJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVXNlclByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENzc0NsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBpc09ubGluZSA9IHRydWU7XG4gICAgYXZhdGFySW5pdGlhbHM6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd246IEV1aURyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgd2VsY29tZUxhYmVsID0gJ1dlbGNvbWUnO1xuICAgIEBJbnB1dCgpIGltcGVyc29uYXRlTGFiZWwgPSAnaW1wZXJzb25hdGluZyc7XG4gICAgQElucHV0KCkgYXZhdGFyVXJsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzTWVudTogQm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaXNTaG93VXNlckluZm9zOiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNXZWxjb21lTGFiZWw6IEJvb2xlYW5JbnB1dCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzU2hvd0F2YXRhckluaXRpYWxzOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzVGFiTmF2aWdhdGlvbjogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlU3ViamVjdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1Nob3dBdmF0YXJJbml0aWFscykge1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRTdGF0ZSgpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTdWJqZWN0JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdE5hbWVJbml0aWFsID0gc3RhdGUuZmlyc3ROYW1lPy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3ROYW1lSW5pdGlhbCA9IHN0YXRlLmxhc3ROYW1lPy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXZhdGFySW5pdGlhbHMgPSBgJHtmaXJzdE5hbWVJbml0aWFsfSR7bGFzdE5hbWVJbml0aWFsfWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktdXNlci1wcm9maWxlJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTWVudTsgZWxzZSBub01lbnVDb250ZW50XCI+XG4gICAgPGV1aS1kcm9wZG93biBbaGFzVGFiTmF2aWdhdGlvbl09XCJoYXNUYWJOYXZpZ2F0aW9uXCIgd2lkdGg9XCIzNDBweFwiICNkcm9wZG93bj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJQcm9maWxlQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgPC9ldWktZHJvcGRvd24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNub01lbnVDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1c2VyUHJvZmlsZUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGVDb250ZW50PlxuICAgICAgICA8YnV0dG9uIFt0YWJpbmRleF09XCJoYXNNZW51ID8gJzAnIDogJy0xJ1wiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93VXNlckluZm9zXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXVzZXItcHJvZmlsZV9faW5mb3MtLW5vLXN1YmluZm9zXT1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLnVzZXJTdWJJbmZvcyAmJiAhaGFzV2VsY29tZUxhYmVsXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLmltcGVyc29uYXRlZFVzZXJJbmZvczsgZWxzZSBub3RJbXBlcnNvbmF0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLXdlbGNvbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXUtbXItMnhzXCIgKm5nSWY9XCJoYXNXZWxjb21lTGFiZWxcIj57eyB3ZWxjb21lTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLnVzZXJJbmZvcyB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktdS1tbC0yeHNcIj57eyBpbXBlcnNvbmF0ZUxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLW5hbWVcIj57eyAoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS5pbXBlcnNvbmF0ZWRVc2VySW5mb3MgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLnVzZXJTdWJJbmZvc1wiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3Mtc3ViaW5mb3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChhc1NlcnZpY2Uuc3RhdGUkIHwgYXN5bmMpLnVzZXJTdWJJbmZvcyB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90SW1wZXJzb25hdGVkPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzV2VsY29tZUxhYmVsXCIgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy13ZWxjb21lXCI+e3sgd2VsY29tZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1uYW1lXCI+e3sgKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykudXNlckluZm9zIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS51c2VyU3ViSW5mb3NcIiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLXN1YmluZm9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAoYXNTZXJ2aWNlLnN0YXRlJCB8IGFzeW5jKS51c2VyU3ViSW5mb3MgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZXVpLWF2YXRhciBbZXVpU2l6ZVNdPVwiYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTaXplU1wiIGV1aUluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNTaGFkb3ddPVwiKGFzU2VydmljZS5zdGF0ZSQgfCBhc3luYykuaW1wZXJzb25hdGVkVXNlckluZm9zXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItdGV4dCAqbmdJZj1cImlzU2hvd0F2YXRhckluaXRpYWxzOyBlbHNlIG5vQXZhdGFySW5pdGlhbHNcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXZhdGFySW5pdGlhbHMgfX1cbiAgICAgICAgICAgICAgICA8L2V1aS1hdmF0YXItdGV4dD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQXZhdGFySW5pdGlhbHM+XG4gICAgICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLWltYWdlICpuZ0lmPVwiIWF2YXRhclVybFwiPjwvZXVpLWF2YXRhci1pbWFnZT5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItaW1hZ2UgKm5nSWY9XCJhdmF0YXJVcmxcIiBbaW1hZ2VVcmxdPVwiYXZhdGFyVXJsXCI+PC9ldWktYXZhdGFyLWltYWdlPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGV1aS1hdmF0YXItYmFkZ2UgKm5nSWY9XCJpc1Nob3dBdmF0YXJJbml0aWFsc1wiIHBvc2l0aW9uPVwiYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktYmFkZ2UgZXVpU2Vjb25kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNoZXZyb24tZG93blwiIHNpemU9XCJ4c1wiIGZpbGxDb2xvcj1cIndoaXRlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLWJhZGdlPlxuICAgICAgICAgICAgICAgIDwvZXVpLWF2YXRhci1iYWRnZT5cbiAgICAgICAgICAgIDwvZXVpLWF2YXRhcj5cbiAgICAgICAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xheW91dC9ldWktdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9sYXlvdXQvZXVpLXVzZXItcHJvZmlsZS91c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBVSxTQUFTLEVBQWEsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUc5TCxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBa0J6RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBc0NELFlBQzJFLGlCQUFpQixFQUNoRixXQUF3QixFQUN6QixtQkFBd0M7UUFEdkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXRDbkQsYUFBUSxHQUFHLElBQUksQ0FBQztRQU1QLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLGVBQWUsQ0FBQztRQU01QyxZQUFPLEdBQWlCLElBQUksQ0FBQztRQUc3QixvQkFBZSxH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U0FBUzt1QkFBQyxVQUFVO2dCQUVaLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFJTixPQUFPO3NCQUZOLEtBQUs7Z0JBS04sZUFBZTtzQkFGZCxLQUFLO2dCQUtOLGVBQWU7c0JBRmQsS0FBSztnQkFLTixvQkFBb0I7c0JBRm5CLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBS04sU0FBUztzQkFGUixLQUFLO2dCQUtOLFNBQVM7c0JBRlIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIEhvc3QsIE9wdGlvbmFsLCBJbmplY3QsIGZvcndhcmRSZWYsIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IFVzZXJTZXJ2aWNlLCBVc2VyU3RhdGUsIGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXVpRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRyb3Bkb3duJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IEV1aVRvb2xiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZXVpLXRvb2xiYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS11c2VyLXByb2ZpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL19zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFtcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVMnLFxuICAgICAgICAgICAgICAgICdldWlJbnZlcnRlZCcsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVVzZXJQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDc3NDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgdXNlclN0YXRlOiBVc2VyU3RhdGU7XG4gICAgaXNPbmxpbmUgPSB0cnVlO1xuICAgIGF2YXRhckluaXRpYWxzOiBzdHJpbmc7XG4gICAgdG9vbGJhckl0ZW1QYXJlbnQ6IEV1aVRvb2xiYXJJdGVtQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93bjogRXVpRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSB3ZWxjb21lTGFiZWwgPSAnV2VsY29tZSc7XG4gICAgQElucHV0KCkgaW1wZXJzb25hdGVMYWJlbCA9ICdpbXBlcnNvbmF0aW5nJztcbiAgICBASW5wdXQoKSBhdmF0YXJVcmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJJbmZvczogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGhhc01lbnU6IEJvb2xlYW5JbnB1dCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzU2hvd1VzZXJJbmZvczogQm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzV2VsY29tZUxhYmVsOiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc1Nob3dBdmF0YXJJbml0aWFsczogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGhhc1RhYk5hdmlnYXRpb246IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc1JldmVyc2U6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBoYXNUb2dnbGU6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZVN1YmplY3QkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASG9zdCgpIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBFdWlUb29sYmFySXRlbUNvbXBvbmVudCkpIHRvb2xiYXJJdGVtUGFyZW50LFxuICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgcHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHRoaXMudG9vbGJhckl0ZW1QYXJlbnQgPSB0b29sYmFySXRlbVBhcmVudCBhcyBFdWlUb29sYmFySXRlbUNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgICAgICAgLmdldFN0YXRlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lSW5pdGlhbCA9IHN0YXRlLmZpcnN0TmFtZT8uc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3ROYW1lSW5pdGlhbCA9IHN0YXRlLmxhc3ROYW1lPy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdmF0YXJJbml0aWFscyA9IGAke2ZpcnN0TmFtZUluaXRpYWx9JHtsYXN0TmFtZUluaXRpYWx9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRvb2xiYXJJdGVtUGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpU2l6ZVMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aUludmVydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlU3ViamVjdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5nZXRDc3NDbGFzc2VzKCdldWktdXNlci1wcm9maWxlJyksXG4gICAgICAgICAgICB0aGlzLmlzUmV2ZXJzZSA/ICdldWktdXNlci1wcm9maWxlLS1yZXZlcnNlJzogJycsXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTWVudTsgZWxzZSBub01lbnVDb250ZW50XCI+XG4gICAgPGV1aS1kcm9wZG93biBbaGFzVGFiTmF2aWdhdGlvbl09XCJoYXNUYWJOYXZpZ2F0aW9uXCIgd2lkdGg9XCIzNDBweFwiICNkcm9wZG93bj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInVzZXJQcm9maWxlQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgPC9ldWktZHJvcGRvd24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNub01lbnVDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1c2VyUHJvZmlsZUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGVDb250ZW50PlxuICAgICAgICA8YnV0dG9uIFt0YWJpbmRleF09XCJoYXNNZW51ID8gJzAnIDogJy0xJ1wiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93VXNlckluZm9zXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXVzZXItcHJvZmlsZV9faW5mb3MtLW5vLXN1YmluZm9zXT1cInN1YkluZm9zICYmICFoYXNXZWxjb21lTGFiZWxcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlclN0YXRlPy5pbXBlcnNvbmF0aW5nVXNlcjsgZWxzZSBub3RJbXBlcnNvbmF0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11c2VyLXByb2ZpbGVfX2luZm9zLXdlbGNvbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXUtbXItMnhzXCIgKm5nSWY9XCJoYXNXZWxjb21lTGFiZWxcIj57eyB3ZWxjb21lTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHVzZXJTdGF0ZT8uaW1wZXJzb25hdGluZ1VzZXI/LmZpcnN0TmFtZSB9fSB7eyB1c2VyU3RhdGU/LmltcGVyc29uYXRpbmdVc2VyPy5sYXN0TmFtZX19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS11LW1sLTJ4c1wiPnt7IGltcGVyc29uYXRlTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3MtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlclN0YXRlPy5mdWxsTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1YkluZm9zXCIgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1zdWJpbmZvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViSW5mb3MgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdEltcGVyc29uYXRlZD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1dlbGNvbWVMYWJlbFwiIGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3Mtd2VsY29tZVwiPnt7IHdlbGNvbWVMYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXVzZXItcHJvZmlsZV9faW5mb3MtbmFtZVwiPnt7IHVzZXJTdGF0ZT8uZnVsbE5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1YkluZm9zXCIgY2xhc3M9XCJldWktdXNlci1wcm9maWxlX19pbmZvcy1zdWJpbmZvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViSW5mb3MgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZXVpLWF2YXRhciBbZXVpU2l6ZVNdPVwiYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTaXplU1wiIGV1aUluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgIFtoYXNTaGFkb3ddPVwidXNlclN0YXRlPy5pbXBlcnNvbmF0aW5nVXNlclwiPlxuICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLXRleHQgKm5nSWY9XCJpc1Nob3dBdmF0YXJJbml0aWFsczsgZWxzZSBub0F2YXRhckluaXRpYWxzXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGF2YXRhckluaXRpYWxzIH19XG4gICAgICAgICAgICAgICAgPC9ldWktYXZhdGFyLXRleHQ+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0F2YXRhckluaXRpYWxzPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWF2YXRhci1pbWFnZSAqbmdJZj1cIiFhdmF0YXJVcmxcIj48L2V1aS1hdmF0YXItaW1hZ2U+XG4gICAgICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLWltYWdlICpuZ0lmPVwiYXZhdGFyVXJsXCIgW2ltYWdlVXJsXT1cImF2YXRhclVybFwiPjwvZXVpLWF2YXRhci1pbWFnZT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxldWktYXZhdGFyLWJhZGdlIHBvc2l0aW9uPVwiYm90dG9tXCIgKm5nSWY9XCJoYXNUb2dnbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1iYWRnZSBldWlTZWNvbmRhcnk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1kb3duXCIgc2l6ZT1cInhzXCIgZmlsbENvbG9yPVwid2hpdGVcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktYmFkZ2U+XG4gICAgICAgICAgICAgICAgPC9ldWktYXZhdGFyLWJhZGdlPlxuICAgICAgICAgICAgPC9ldWktYXZhdGFyPlxuICAgICAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -61,7 +61,7 @@ export declare class EuiTreeListItemComponent implements AfterContentInit {
61
61
  protected disableFocus(): void;
62
62
  protected enableFocus(): void;
63
63
  private getCssClasses;
64
- static ɵfac: i0.ɵɵFactoryDeclaration<EuiTreeListItemComponent, [{ host: true; }, null, null, null]>;
64
+ static ɵfac: i0.ɵɵFactoryDeclaration<EuiTreeListItemComponent, [{ optional: true; host: true; }, null, null, null]>;
65
65
  static ɵcmp: i0.ɵɵComponentDeclaration<EuiTreeListItemComponent, "eui-tree-list-item", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "linkUrl": { "alias": "linkUrl"; "required": false; }; "subLabel": { "alias": "subLabel"; "required": false; }; "active": { "alias": "active"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "alwaysExpanded": { "alias": "alwaysExpanded"; "required": false; }; "url": { "alias": "url"; "required": false; }; "isDisplaySubLinksOnHover": { "alias": "isDisplaySubLinksOnHover"; "required": false; }; "subLinks": { "alias": "subLinks"; "required": false; }; "isNavigateOnlyOnLabelClick": { "alias": "isNavigateOnlyOnLabelClick"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, { "toggled": "toggled"; }, ["customLabel", "customDetailContent", "customSubContainerContent", "subTreeList", "customContent"], ["eui-tree-list-item-content", "eui-tree-list-item-label", "eui-tree-list-item-details", "eui-tree-list-item-sub-container", "*"], false, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiInfo": "euiInfo"; "euiSuccess": "euiSuccess"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; }; outputs: {}; }]>;
66
66
  }
67
67
  export declare class EuiTreeListItemLabelTagDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-tree-list-item.component.d.ts","sourceRoot":"","sources":["../../eui-tree-list/eui-tree-list-item.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-tree-list-item.component.d.ts","sourceRoot":"","sources":["../../eui-tree-list/eui-tree-list-item.component.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, HostBinding, EventEmitter, forwardRef, ViewEncapsulation, Host, Inject, Input, Output, ViewChild, ContentChild, ContentChildren, Directive, NgModule } from '@angular/core';
2
+ import { Component, HostBinding, EventEmitter, forwardRef, ViewEncapsulation, Host, Optional, Inject, Input, Output, ViewChild, ContentChild, ContentChildren, Directive, NgModule } from '@angular/core';
3
3
  import { uniqueId, consumeEvent } from '@eui/core';
4
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
5
  import * as i2 from '@eui/components/shared';
@@ -219,7 +219,7 @@ class EuiTreeListItemComponent {
219
219
  .join(' ')
220
220
  .trim();
221
221
  }
222
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiTreeListItemComponent, deps: [{ token: forwardRef(() => EuiTreeListComponent), host: true }, { token: i1.Router }, { token: i0.ElementRef }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
222
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiTreeListItemComponent, deps: [{ token: forwardRef(() => EuiTreeListComponent), host: true, optional: true }, { token: i1.Router }, { token: i0.ElementRef }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
223
223
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: EuiTreeListItemComponent, selector: "eui-tree-list-item", inputs: { e2eAttr: "e2eAttr", id: "id", label: "label", linkUrl: "linkUrl", subLabel: "subLabel", active: "active", expanded: "expanded", alwaysExpanded: "alwaysExpanded", url: "url", isDisplaySubLinksOnHover: "isDisplaySubLinksOnHover", subLinks: "subLinks", isNavigateOnlyOnLabelClick: "isNavigateOnlyOnLabelClick", isVisible: "isVisible" }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.cssClasses", "attr.tabindex": "this.tabIndex", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "customLabel", first: true, predicate: i0.forwardRef(() => EuiTreeListItemLabelTagDirective), descendants: true }, { propertyName: "customDetailContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemDetailsContentTagDirective), descendants: true }, { propertyName: "customSubContainerContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemSubContainerContentTagDirective), descendants: true }, { propertyName: "subTreeList", predicate: i0.forwardRef(() => EuiTreeListComponent), descendants: true }, { propertyName: "customContent", predicate: i0.forwardRef(() => EuiTreeListItemContentComponent) }], viewQueries: [{ propertyName: "focusable", first: true, predicate: ["focusable"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiInfo", "euiInfo", "euiSuccess", "euiSuccess", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n role=\"treeitem\"\n [id]=\"id\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\"\n [attr.aria-expanded]=\"expanded\"\n role=\"treeitem\">\n\n <ng-container *ngIf=\"hasCustomContent; else noCustomContent\">\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-container>\n\n <ng-template #noCustomContent>\n <div class=\"eui-u-flex\">\n <eui-label *ngIf=\"!customLabel\">\n {{label}}\n <eui-label *ngIf=\"subLabel\" euiSublabel>{{subLabel}}</eui-label>\n </eui-label>\n\n <eui-label *ngIf=\"customLabel\">\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"customDetailContent\">\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"customSubContainerContent\">\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-template [ngIf]=\"expanded || alwaysExpanded\">\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n <button *ngIf=\"hasSub && !alwaysExpanded\" euiButton euiIconButton euiBasicButton euiRounded euiPrimary euiSizeS aria-label=\"Expand - collapse button icon\" (click)=\"toggle($event)\">\n <ng-container *ngIf=\"expanded\">\n <eui-icon-svg icon=\"eui-chevron-up\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n <ng-container *ngIf=\"!expanded\">\n <eui-icon-svg icon=\"eui-chevron-forward\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i5.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
224
224
  }
225
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: EuiTreeListItemComponent, decorators: [{
@@ -232,6 +232,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImpor
232
232
  ], template: "<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n role=\"treeitem\"\n [id]=\"id\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\"\n [attr.aria-expanded]=\"expanded\"\n role=\"treeitem\">\n\n <ng-container *ngIf=\"hasCustomContent; else noCustomContent\">\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-container>\n\n <ng-template #noCustomContent>\n <div class=\"eui-u-flex\">\n <eui-label *ngIf=\"!customLabel\">\n {{label}}\n <eui-label *ngIf=\"subLabel\" euiSublabel>{{subLabel}}</eui-label>\n </eui-label>\n\n <eui-label *ngIf=\"customLabel\">\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"customDetailContent\">\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"customSubContainerContent\">\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n </ng-container>\n</div>\n\n<ng-template [ngIf]=\"expanded || alwaysExpanded\">\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n <button *ngIf=\"hasSub && !alwaysExpanded\" euiButton euiIconButton euiBasicButton euiRounded euiPrimary euiSizeS aria-label=\"Expand - collapse button icon\" (click)=\"toggle($event)\">\n <ng-container *ngIf=\"expanded\">\n <eui-icon-svg icon=\"eui-chevron-up\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n <ng-container *ngIf=\"!expanded\">\n <eui-icon-svg icon=\"eui-chevron-forward\" fillColor=\"grey-100\"></eui-icon-svg>\n </ng-container>\n </button>\n </div>\n </div>\n</ng-template>\n" }]
233
233
  }], ctorParameters: () => [{ type: undefined, decorators: [{
234
234
  type: Host
235
+ }, {
236
+ type: Optional
235
237
  }, {
236
238
  type: Inject,
237
239
  args: [forwardRef(() => EuiTreeListComponent)]