@eui/eds 23.0.0-alpha.6 → 23.0.0-alpha.7

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 (232) hide show
  1. package/docs/changelog.html +41 -0
  2. package/docs/classes/EdsChipModel.html +6 -6
  3. package/docs/classes/{EuiChipTooltip.html → EdsChipTooltip.html} +2 -2
  4. package/docs/components/EdsAlert.html +27 -226
  5. package/docs/components/EdsAlertTitle.html +2 -2
  6. package/docs/components/EdsAvatar.html +35 -108
  7. package/docs/components/EdsAvatarBadge.html +2 -2
  8. package/docs/components/EdsAvatarContent.html +2 -2
  9. package/docs/components/EdsAvatarContentLabel.html +2 -2
  10. package/docs/components/EdsAvatarContentSublabel.html +2 -2
  11. package/docs/components/EdsAvatarIcon.html +2 -2
  12. package/docs/components/EdsAvatarImage.html +2 -2
  13. package/docs/components/EdsAvatarList.html +2 -2
  14. package/docs/components/EdsAvatarText.html +2 -2
  15. package/docs/components/EdsBadge.html +41 -175
  16. package/docs/components/EdsButton.html +123 -123
  17. package/docs/components/EdsChip.html +135 -254
  18. package/docs/components/EdsIcon.html +93 -145
  19. package/docs/components/EdsIconButton.html +72 -86
  20. package/docs/components/EdsIconImage.html +5 -5
  21. package/docs/components/EdsIconState.html +47 -61
  22. package/docs/components/EdsLanguageSelector.html +870 -0
  23. package/docs/components/EdsMenu.html +631 -0
  24. package/docs/components/EdsMenuItemComponent.html +728 -0
  25. package/docs/components/EdsOverlay.html +804 -0
  26. package/docs/components/EdsOverlayContent.html +315 -0
  27. package/docs/components/EdsOverlayFooter.html +315 -0
  28. package/docs/components/EdsOverlayHeader.html +458 -0
  29. package/docs/components/EdsOverlayHeaderActionItems.html +315 -0
  30. package/docs/components/EdsOverlayHeaderLabel.html +315 -0
  31. package/docs/components/EdsOverlayHeaderSublabel.html +315 -0
  32. package/docs/components/EdsPage.html +315 -0
  33. package/docs/components/EdsPageContent.html +319 -0
  34. package/docs/components/EdsPageFooter.html +387 -0
  35. package/docs/components/EdsPageHeader.html +673 -0
  36. package/docs/components/EdsPageHeaderActionItems.html +315 -0
  37. package/docs/components/EdsPageHeaderBody.html +315 -0
  38. package/docs/components/EdsPageHeaderLabel.html +315 -0
  39. package/docs/components/EdsPageHeaderSublabel.html +315 -0
  40. package/docs/components/EdsShell.html +1078 -0
  41. package/docs/components/EdsShellContent.html +315 -0
  42. package/docs/components/EdsShellFooter.html +383 -0
  43. package/docs/components/EdsShellHeader.html +383 -0
  44. package/docs/components/EdsShellHeaderApp.html +443 -0
  45. package/docs/components/EdsShellHeaderEnd.html +311 -0
  46. package/docs/components/EdsShellHeaderEnvironment.html +315 -0
  47. package/docs/components/EdsShellHeaderLogo.html +561 -0
  48. package/docs/components/EdsShellHeaderStart.html +311 -0
  49. package/docs/components/EdsShellMenuToggle.html +458 -0
  50. package/docs/components/EdsShellSidebar.html +413 -0
  51. package/docs/components/EdsShellSidebarBottomNav.html +624 -0
  52. package/docs/components/EdsShellSidebarFooter.html +315 -0
  53. package/docs/components/EdsShellSidebarHeader.html +508 -0
  54. package/docs/components/EdsShellSidebarNav.html +624 -0
  55. package/docs/components/EdsShellToolbar.html +315 -0
  56. package/docs/components/EdsShellToolbarApp.html +443 -0
  57. package/docs/components/EdsShellToolbarEnd.html +315 -0
  58. package/docs/components/EdsShellToolbarEnvironment.html +315 -0
  59. package/docs/components/EdsShellToolbarLogo.html +315 -0
  60. package/docs/components/EdsShellToolbarStart.html +315 -0
  61. package/docs/components/EdsShellTopMessage.html +574 -0
  62. package/docs/components/EdsTab.html +6 -10
  63. package/docs/components/EdsTabBody.html +6 -10
  64. package/docs/components/EdsTabHeader.html +6 -10
  65. package/docs/components/EdsTabHeaderLabel.html +2 -2
  66. package/docs/components/EdsTabHeaderLeftContent.html +2 -2
  67. package/docs/components/EdsTabHeaderRightContent.html +2 -2
  68. package/docs/components/EdsTabHeaderSublabel.html +2 -2
  69. package/docs/components/EdsTabs.html +61 -126
  70. package/docs/components/EdsTabsRightContent.html +2 -2
  71. package/docs/components/EdsTag.html +82 -182
  72. package/docs/components/EdsTooltipContainer.html +2 -2
  73. package/docs/components/EdsUserProfile.html +1336 -0
  74. package/docs/components/EdsUserProfileMenu.html +315 -0
  75. package/docs/components/EdsUserProfileMenuItem.html +511 -0
  76. package/docs/directives/{EuiBaseColorVariantsDirective.html → EdsBaseColorVariantsDirective.html} +174 -91
  77. package/docs/directives/{EuiBaseSizeVariantsDirective.html → EdsBaseSizeVariantsDirective.html} +107 -107
  78. package/docs/directives/EdsResizable.html +586 -0
  79. package/docs/directives/EdsTooltip.html +21 -21
  80. package/docs/interfaces/EdsLanguage.html +368 -0
  81. package/docs/interfaces/EdsMenuItem.html +731 -0
  82. package/docs/js/menu-wc.js +146 -5
  83. package/docs/js/search/search_index.js +2 -2
  84. package/docs/json/EdsAlert.md +7 -7
  85. package/docs/json/EdsAvatar.md +8 -7
  86. package/docs/json/EdsBadge.md +14 -14
  87. package/docs/json/EdsBaseColorVariantsDirective.md +22 -0
  88. package/docs/json/EdsBaseSizeVariantsDirective.md +23 -0
  89. package/docs/json/EdsButton.md +21 -21
  90. package/docs/json/EdsChip.md +15 -14
  91. package/docs/json/EdsIcon.md +23 -23
  92. package/docs/json/EdsIconButton.md +18 -17
  93. package/docs/json/EdsIconImage.md +10 -10
  94. package/docs/json/EdsIconState.md +12 -12
  95. package/docs/json/EdsLanguageSelector.md +16 -0
  96. package/docs/json/EdsMenu.md +17 -0
  97. package/docs/json/EdsMenuItemComponent.md +18 -0
  98. package/docs/json/EdsOverlay.md +19 -0
  99. package/docs/json/EdsOverlayContent.md +8 -0
  100. package/docs/json/EdsOverlayFooter.md +8 -0
  101. package/docs/json/EdsOverlayHeader.md +11 -0
  102. package/docs/json/EdsOverlayHeaderActionItems.md +8 -0
  103. package/docs/json/EdsOverlayHeaderLabel.md +8 -0
  104. package/docs/json/EdsOverlayHeaderSublabel.md +8 -0
  105. package/docs/json/EdsPage.md +8 -0
  106. package/docs/json/EdsPageContent.md +8 -0
  107. package/docs/json/EdsPageFooter.md +11 -0
  108. package/docs/json/EdsPageHeader.md +18 -0
  109. package/docs/json/EdsPageHeaderActionItems.md +8 -0
  110. package/docs/json/EdsPageHeaderBody.md +8 -0
  111. package/docs/json/EdsPageHeaderLabel.md +8 -0
  112. package/docs/json/EdsPageHeaderSublabel.md +8 -0
  113. package/docs/json/EdsResizable.md +24 -0
  114. package/docs/json/EdsShell.md +14 -0
  115. package/docs/json/EdsShellContent.md +8 -0
  116. package/docs/json/EdsShellFooter.md +11 -0
  117. package/docs/json/EdsShellHeader.md +11 -0
  118. package/docs/json/EdsShellHeaderApp.md +13 -0
  119. package/docs/json/EdsShellHeaderEnd.md +8 -0
  120. package/docs/json/EdsShellHeaderEnvironment.md +8 -0
  121. package/docs/json/EdsShellHeaderLogo.md +15 -0
  122. package/docs/json/EdsShellHeaderStart.md +8 -0
  123. package/docs/json/EdsShellMenuToggle.md +11 -0
  124. package/docs/json/EdsShellSidebar.md +12 -0
  125. package/docs/json/EdsShellSidebarBottomNav.md +17 -0
  126. package/docs/json/EdsShellSidebarFooter.md +8 -0
  127. package/docs/json/EdsShellSidebarHeader.md +15 -0
  128. package/docs/json/EdsShellSidebarNav.md +17 -0
  129. package/docs/json/EdsShellToolbar.md +8 -0
  130. package/docs/json/EdsShellToolbarApp.md +13 -0
  131. package/docs/json/EdsShellToolbarEnd.md +8 -0
  132. package/docs/json/EdsShellToolbarEnvironment.md +8 -0
  133. package/docs/json/EdsShellToolbarLogo.md +8 -0
  134. package/docs/json/EdsShellToolbarStart.md +8 -0
  135. package/docs/json/EdsShellTopMessage.md +19 -0
  136. package/docs/json/EdsTabs.md +4 -4
  137. package/docs/json/EdsTag.md +14 -13
  138. package/docs/json/EdsTooltip.md +7 -7
  139. package/docs/json/EdsUserProfile.md +21 -0
  140. package/docs/json/EdsUserProfileMenu.md +8 -0
  141. package/docs/json/EdsUserProfileMenuItem.md +8 -0
  142. package/docs/json/documentation.json +9649 -5338
  143. package/docs/llms.txt +641 -123
  144. package/docs/miscellaneous/typealiases.html +309 -0
  145. package/docs/miscellaneous/variables.html +342 -0
  146. package/docs/overview.html +3 -3
  147. package/docs/properties.html +1 -1
  148. package/eds-language-selector/package.json +4 -0
  149. package/eds-menu/package.json +4 -0
  150. package/eds-overlay/package.json +4 -0
  151. package/eds-page/package.json +4 -0
  152. package/eds-resizable/package.json +4 -0
  153. package/eds-shell/package.json +4 -0
  154. package/eds-user-profile/package.json +4 -0
  155. package/fesm2022/eui-eds-eds-alert.mjs +33 -61
  156. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  157. package/fesm2022/eui-eds-eds-avatar.mjs +29 -43
  158. package/fesm2022/eui-eds-eds-avatar.mjs.map +1 -1
  159. package/fesm2022/eui-eds-eds-badge.mjs +65 -89
  160. package/fesm2022/eui-eds-eds-badge.mjs.map +1 -1
  161. package/fesm2022/eui-eds-eds-button.mjs +70 -99
  162. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  163. package/fesm2022/eui-eds-eds-chip.mjs +118 -111
  164. package/fesm2022/eui-eds-eds-chip.mjs.map +1 -1
  165. package/fesm2022/eui-eds-eds-icon-button.mjs +49 -55
  166. package/fesm2022/eui-eds-eds-icon-button.mjs.map +1 -1
  167. package/fesm2022/eui-eds-eds-icon-state.mjs +38 -34
  168. package/fesm2022/eui-eds-eds-icon-state.mjs.map +1 -1
  169. package/fesm2022/eui-eds-eds-icon.mjs +92 -107
  170. package/fesm2022/eui-eds-eds-icon.mjs.map +1 -1
  171. package/fesm2022/eui-eds-eds-language-selector.mjs +67 -0
  172. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -0
  173. package/fesm2022/eui-eds-eds-menu.mjs +90 -0
  174. package/fesm2022/eui-eds-eds-menu.mjs.map +1 -0
  175. package/fesm2022/eui-eds-eds-overlay.mjs +141 -0
  176. package/fesm2022/eui-eds-eds-overlay.mjs.map +1 -0
  177. package/fesm2022/eui-eds-eds-page.mjs +129 -0
  178. package/fesm2022/eui-eds-eds-page.mjs.map +1 -0
  179. package/fesm2022/eui-eds-eds-resizable.mjs +193 -0
  180. package/fesm2022/eui-eds-eds-resizable.mjs.map +1 -0
  181. package/fesm2022/eui-eds-eds-shell.mjs +481 -0
  182. package/fesm2022/eui-eds-eds-shell.mjs.map +1 -0
  183. package/fesm2022/eui-eds-eds-tabs.mjs +71 -101
  184. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  185. package/fesm2022/eui-eds-eds-tag.mjs +74 -77
  186. package/fesm2022/eui-eds-eds-tag.mjs.map +1 -1
  187. package/fesm2022/eui-eds-eds-tooltip.mjs +23 -23
  188. package/fesm2022/eui-eds-eds-tooltip.mjs.map +1 -1
  189. package/fesm2022/eui-eds-eds-user-profile.mjs +231 -0
  190. package/fesm2022/eui-eds-eds-user-profile.mjs.map +1 -0
  191. package/fesm2022/eui-eds-shared.mjs +255 -243
  192. package/fesm2022/eui-eds-shared.mjs.map +1 -1
  193. package/package.json +29 -1
  194. package/types/eui-eds-eds-alert.d.ts +7 -29
  195. package/types/eui-eds-eds-alert.d.ts.map +1 -1
  196. package/types/eui-eds-eds-avatar.d.ts +11 -12
  197. package/types/eui-eds-eds-avatar.d.ts.map +1 -1
  198. package/types/eui-eds-eds-badge.d.ts +15 -20
  199. package/types/eui-eds-eds-badge.d.ts.map +1 -1
  200. package/types/eui-eds-eds-button.d.ts +22 -30
  201. package/types/eui-eds-eds-button.d.ts.map +1 -1
  202. package/types/eui-eds-eds-chip.d.ts +36 -36
  203. package/types/eui-eds-eds-chip.d.ts.map +1 -1
  204. package/types/eui-eds-eds-icon-button.d.ts +13 -16
  205. package/types/eui-eds-eds-icon-button.d.ts.map +1 -1
  206. package/types/eui-eds-eds-icon-state.d.ts +8 -8
  207. package/types/eui-eds-eds-icon-state.d.ts.map +1 -1
  208. package/types/eui-eds-eds-icon.d.ts +22 -29
  209. package/types/eui-eds-eds-icon.d.ts.map +1 -1
  210. package/types/eui-eds-eds-language-selector.d.ts +34 -0
  211. package/types/eui-eds-eds-language-selector.d.ts.map +1 -0
  212. package/types/eui-eds-eds-menu.d.ts +65 -0
  213. package/types/eui-eds-eds-menu.d.ts.map +1 -0
  214. package/types/eui-eds-eds-overlay.d.ts +64 -0
  215. package/types/eui-eds-eds-overlay.d.ts.map +1 -0
  216. package/types/eui-eds-eds-page.d.ts +63 -0
  217. package/types/eui-eds-eds-page.d.ts.map +1 -0
  218. package/types/eui-eds-eds-resizable.d.ts +49 -0
  219. package/types/eui-eds-eds-resizable.d.ts.map +1 -0
  220. package/types/eui-eds-eds-shell.d.ts +229 -0
  221. package/types/eui-eds-eds-shell.d.ts.map +1 -0
  222. package/types/eui-eds-eds-tabs.d.ts +32 -30
  223. package/types/eui-eds-eds-tabs.d.ts.map +1 -1
  224. package/types/eui-eds-eds-tag.d.ts +22 -25
  225. package/types/eui-eds-eds-tag.d.ts.map +1 -1
  226. package/types/eui-eds-eds-tooltip.d.ts +16 -16
  227. package/types/eui-eds-eds-user-profile.d.ts +78 -0
  228. package/types/eui-eds-eds-user-profile.d.ts.map +1 -0
  229. package/types/eui-eds-shared.d.ts +82 -79
  230. package/types/eui-eds-shared.d.ts.map +1 -1
  231. package/docs/json/EuiBaseColorVariantsDirective.md +0 -21
  232. package/docs/json/EuiBaseSizeVariantsDirective.md +0 -23
@@ -104,43 +104,43 @@ class EdsTooltip {
104
104
  *
105
105
  * @default false
106
106
  */
107
- this.euiTooltipPrimary = false;
107
+ this.edsTooltipPrimary = false;
108
108
  /**
109
109
  * Whether the tooltip has a Secondary state.
110
110
  *
111
111
  * @default false
112
112
  */
113
- this.euiTooltipSecondary = false;
113
+ this.edsTooltipSecondary = false;
114
114
  /**
115
115
  * Whether the tooltip has Info state.
116
116
  *
117
117
  * @default false
118
118
  */
119
- this.euiTooltipInfo = false;
119
+ this.edsTooltipInfo = false;
120
120
  /**
121
121
  * Whether the tooltip has a Success state.
122
122
  *
123
123
  * @default false
124
124
  */
125
- this.euiTooltipSuccess = false;
125
+ this.edsTooltipSuccess = false;
126
126
  /**
127
127
  * Whether the tooltip has a Warning state.
128
128
  *
129
129
  * @default false
130
130
  */
131
- this.euiTooltipWarning = false;
131
+ this.edsTooltipWarning = false;
132
132
  /**
133
133
  * Whether the tooltip has a Danger state.
134
134
  *
135
135
  * @default false
136
136
  */
137
- this.euiTooltipDanger = false;
137
+ this.edsTooltipDanger = false;
138
138
  /**
139
139
  * Whether the tooltip has Accent state.
140
140
  *
141
141
  * @default false
142
142
  */
143
- this.euiTooltipAccent = false;
143
+ this.edsTooltipAccent = false;
144
144
  this.originX = 'center';
145
145
  this.originY = 'top';
146
146
  this.overlayX = 'center';
@@ -270,29 +270,29 @@ class EdsTooltip {
270
270
  /**
271
271
  * Generates and returns the tooltip configuration based on the defined tooltip properties.
272
272
  *
273
- * @returns {EuiTooltipInterface} The tooltip configuration object, including attributes used in container component.
273
+ * @returns {edsTooltipInterface} The tooltip configuration object, including attributes used in container component.
274
274
  */
275
275
  getTooltipConfig() {
276
276
  let colorClass = 'secondary';
277
- if (this.euiTooltipPrimary) {
277
+ if (this.edsTooltipPrimary) {
278
278
  colorClass = 'primary';
279
279
  }
280
- if (this.euiTooltipSecondary) {
280
+ if (this.edsTooltipSecondary) {
281
281
  colorClass = 'secondary';
282
282
  }
283
- if (this.euiTooltipInfo) {
283
+ if (this.edsTooltipInfo) {
284
284
  colorClass = 'info';
285
285
  }
286
- if (this.euiTooltipSuccess) {
286
+ if (this.edsTooltipSuccess) {
287
287
  colorClass = 'success';
288
288
  }
289
- if (this.euiTooltipWarning) {
289
+ if (this.edsTooltipWarning) {
290
290
  colorClass = 'warning';
291
291
  }
292
- if (this.euiTooltipDanger) {
292
+ if (this.edsTooltipDanger) {
293
293
  colorClass = 'danger';
294
294
  }
295
- if (this.euiTooltipAccent) {
295
+ if (this.edsTooltipAccent) {
296
296
  colorClass = 'accent';
297
297
  }
298
298
  return {
@@ -362,7 +362,7 @@ class EdsTooltip {
362
362
  }
363
363
  }
364
364
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
365
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.0.5", type: EdsTooltip, isStandalone: true, selector: "[edsTooltip]", inputs: { e2eAttr: "e2eAttr", showDelay: ["showDelay", "showDelay", numberAttribute], hideDelay: ["hideDelay", "hideDelay", numberAttribute], contentAlignment: "contentAlignment", position: "position", isDisabled: ["isDisabled", "isDisabled", booleanAttribute], tooltipContent: ["edsTooltip", "tooltipContent"], euiTooltipPrimary: ["euiTooltipPrimary", "euiTooltipPrimary", booleanAttribute], euiTooltipSecondary: ["euiTooltipSecondary", "euiTooltipSecondary", booleanAttribute], euiTooltipInfo: ["euiTooltipInfo", "euiTooltipInfo", booleanAttribute], euiTooltipSuccess: ["euiTooltipSuccess", "euiTooltipSuccess", booleanAttribute], euiTooltipWarning: ["euiTooltipWarning", "euiTooltipWarning", booleanAttribute], euiTooltipDanger: ["euiTooltipDanger", "euiTooltipDanger", booleanAttribute], euiTooltipAccent: ["euiTooltipAccent", "euiTooltipAccent", booleanAttribute] }, host: { listeners: { "mouseenter": "mouseEntering($event)", "focus": "focused($event)", "keydown.esc": "onEscapePressed($any($event))" } }, exportAs: ["edsTooltip"], usesOnChanges: true, ngImport: i0 }); }
365
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.0.5", type: EdsTooltip, isStandalone: true, selector: "[edsTooltip]", inputs: { e2eAttr: "e2eAttr", showDelay: ["showDelay", "showDelay", numberAttribute], hideDelay: ["hideDelay", "hideDelay", numberAttribute], contentAlignment: "contentAlignment", position: "position", isDisabled: ["isDisabled", "isDisabled", booleanAttribute], tooltipContent: ["edsTooltip", "tooltipContent"], edsTooltipPrimary: ["edsTooltipPrimary", "edsTooltipPrimary", booleanAttribute], edsTooltipSecondary: ["edsTooltipSecondary", "edsTooltipSecondary", booleanAttribute], edsTooltipInfo: ["edsTooltipInfo", "edsTooltipInfo", booleanAttribute], edsTooltipSuccess: ["edsTooltipSuccess", "edsTooltipSuccess", booleanAttribute], edsTooltipWarning: ["edsTooltipWarning", "edsTooltipWarning", booleanAttribute], edsTooltipDanger: ["edsTooltipDanger", "edsTooltipDanger", booleanAttribute], edsTooltipAccent: ["edsTooltipAccent", "edsTooltipAccent", booleanAttribute] }, host: { listeners: { "mouseenter": "mouseEntering($event)", "focus": "focused($event)", "keydown.esc": "onEscapePressed($any($event))" } }, exportAs: ["edsTooltip"], usesOnChanges: true, ngImport: i0 }); }
366
366
  }
367
367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsTooltip, decorators: [{
368
368
  type: Directive,
@@ -388,25 +388,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
388
388
  }], tooltipContent: [{
389
389
  type: Input,
390
390
  args: ['edsTooltip']
391
- }], euiTooltipPrimary: [{
391
+ }], edsTooltipPrimary: [{
392
392
  type: Input,
393
393
  args: [{ transform: booleanAttribute }]
394
- }], euiTooltipSecondary: [{
394
+ }], edsTooltipSecondary: [{
395
395
  type: Input,
396
396
  args: [{ transform: booleanAttribute }]
397
- }], euiTooltipInfo: [{
397
+ }], edsTooltipInfo: [{
398
398
  type: Input,
399
399
  args: [{ transform: booleanAttribute }]
400
- }], euiTooltipSuccess: [{
400
+ }], edsTooltipSuccess: [{
401
401
  type: Input,
402
402
  args: [{ transform: booleanAttribute }]
403
- }], euiTooltipWarning: [{
403
+ }], edsTooltipWarning: [{
404
404
  type: Input,
405
405
  args: [{ transform: booleanAttribute }]
406
- }], euiTooltipDanger: [{
406
+ }], edsTooltipDanger: [{
407
407
  type: Input,
408
408
  args: [{ transform: booleanAttribute }]
409
- }], euiTooltipAccent: [{
409
+ }], edsTooltipAccent: [{
410
410
  type: Input,
411
411
  args: [{ transform: booleanAttribute }]
412
412
  }], mouseEntering: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-tooltip.mjs","sources":["../../eds-tooltip/eds-tooltip-animations.ts","../../eds-tooltip/eds-tooltip-container.ts","../../eds-tooltip/eds-tooltip-container.html","../../eds-tooltip/eds-tooltip.ts","../../eds-tooltip/eui-eds-eds-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger, keyframes } from '@angular/animations';\n\n/**\n * Tooltip display animation.\n */\nexport const showHide = trigger('showHide', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.99)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(1)', offset: 1 }),\n ]),\n ),\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 }))),\n]);\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { showHide } from './eds-tooltip-animations';\nimport { EdsTooltipInterface } from './eds-tooltip.config';\n\n@Component({\n selector: 'eds-tooltip-container',\n templateUrl: 'eds-tooltip-container.html',\n styleUrl: './eds-tooltip-container.scss', \n // Styles are in globals: \\packages\\styles\\src\\styles\\07-elements\\directives\\_eui-tooltip.scss\n animations: [showHide],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsTooltipContainer {\n /**\n * Configuration provided by euiTooltip directive at instantiation.\n *\n * @type {EuiTooltipInterface} A config object containing e2eAttr, tooltipContent, position, contentAlign, colorClass.\n */\n @Input() config!: EdsTooltipInterface;\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tooltip'\n */\n @HostBinding('attr.data-e2e') e2e = 'eds-tooltip';\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n get cssClasses(): string {\n return ['eds-tooltip', 'eds-tooltip--content-' + this.config.contentAlign, 'eds-tooltip--' + this.config.colorClass]\n .join(' ')\n .trim();\n }\n @HostBinding('@showHide') get showHide(): string {\n return 'visible';\n }\n}\n","<div [innerHTML]=\"config.tooltipContent\"></div>\n","import {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n ElementRef,\n HostListener,\n OnChanges,\n numberAttribute,\n booleanAttribute,\n ComponentRef,\n inject,\n} from '@angular/core';\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, fromEvent, Subject, Subscription, take, timer } from 'rxjs';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { EdsTooltipContainer } from './eds-tooltip-container';\nimport { EdsTooltipInterface } from './eds-tooltip.config';\n\n@Directive({\n selector: '[edsTooltip]',\n exportAs: 'edsTooltip',\n})\nexport class EdsTooltip implements OnChanges, OnInit, OnDestroy {\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tooltip'\n */\n @Input() e2eAttr = 'eds-tooltip';\n /**\n * Sets the delay for the tooltip to be visible.\n *\n * @default 0\n */\n @Input({ transform: numberAttribute }) showDelay = 0;\n /**\n * Sets the delay for the tooltip to be hidden\n *\n * @default 0\n */\n @Input({ transform: numberAttribute }) hideDelay = 0;\n /**\n * Sets the alignment of the content in the tooltip.\n *\n * @default 'center''\n */\n @Input() contentAlignment: 'left' | 'right' | 'center' | 'justify' = 'center';\n /**\n * Sets the position of the tooltip relative to its trigger element.\n *\n * @default 'center''\n */\n @Input() position: 'left' | 'right' | 'above' | 'below' | 'before' | 'after' | string = 'above';\n /**\n * Whether the tooltip is disabled.\n *\n * @default false (enable)\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n /**\n * Tooltip content.\n */\n @Input('edsTooltip') tooltipContent!: string;\n /**\n * Whether the tooltip has a Primary state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipPrimary = false;\n /**\n * Whether the tooltip has a Secondary state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipSecondary = false;\n /**\n * Whether the tooltip has Info state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipInfo = false;\n /**\n * Whether the tooltip has a Success state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipSuccess = false;\n /**\n * Whether the tooltip has a Warning state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipWarning = false;\n /**\n * Whether the tooltip has a Danger state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipDanger = false;\n /**\n * Whether the tooltip has Accent state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTooltipAccent = false;\n\n private originX: 'start' | 'end' | 'center' = 'center';\n private originY: 'top' | 'bottom' | 'center' = 'top';\n private overlayX: 'start' | 'end' | 'center' = 'center';\n private overlayY: 'top' | 'bottom' | 'center' = 'bottom';\n private fallbackOriginX: 'start' | 'end' | 'center' = 'center';\n private fallbackOriginY: 'top' | 'bottom' | 'center' = 'bottom';\n private fallbackOverlayX: 'start' | 'end' | 'center' = 'center';\n private fallbackOverlayY: 'top' | 'bottom' | 'center' = 'top';\n private overlayRef!: OverlayRef | null;\n private destroy$ = new Subject<boolean>();\n private isOpen$ = new BehaviorSubject<boolean>(false);\n private mouseleaveSubscription = new Subscription();\n private blurSubscription = new Subscription();\n private showDelaySubscription = new Subscription();\n private positionStrategySubscription = new Subscription();\n private tooltipInstance!: ComponentRef<EdsTooltipContainer>;\n private overlay = inject(Overlay);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnChanges(): void {\n if (this.tooltipInstance) {\n this.tooltipInstance.setInput('config', this.getTooltipConfig());\n }\n\n this.setPosition();\n }\n\n ngOnInit(): void {\n this.setPosition();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n this.positionStrategySubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n @HostListener('mouseenter', ['$event'])\n mouseEntering(event: MouseEvent): void {\n this.show(event.target ?? undefined);\n }\n\n @HostListener('focus', ['$event'])\n focused(event: FocusEvent): void {\n this.show(event.target ?? undefined);\n }\n\n /**\n * Returns the current open state.\n *\n * @returns {boolean} `true` if the element is open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Method that shows a tooltip.\n *\n * @param origin Origin of the tooltip. Where it will be displayed.\n */\n public show(origin: EventTarget = this.host.nativeElement): void {\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n \n this.showDelaySubscription = timer(this.showDelay).subscribe(() => {\n if (!this.isOpen && !this.isDisabled && this.tooltipContent) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions([\n new ConnectionPositionPair(\n { originX: this.originX, originY: this.originY },\n { overlayX: this.overlayX, overlayY: this.overlayY },\n ),\n new ConnectionPositionPair(\n { originX: this.fallbackOriginX, originY: this.fallbackOriginY },\n { overlayX: this.fallbackOverlayX, overlayY: this.fallbackOverlayY },\n ),\n ])\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n usePopover: false,\n panelClass: ['eds-tooltip-panel', 'eui-21'],\n positionStrategy,\n scrollStrategy,\n });\n\n this.positionStrategySubscription = positionStrategy.positionChanges.subscribe((overlayPosition) => {\n this.position = this.getPosition(overlayPosition);\n const positionClasses = [\n 'eds-tooltip--left',\n 'eds-tooltip--right',\n 'eds-tooltip--above',\n 'eds-tooltip--below',\n 'eds-tooltip--before',\n 'eds-tooltip--after',\n ];\n this.overlayRef?.removePanelClass(positionClasses);\n this.overlayRef?.addPanelClass(['eds-tooltip--' + this.position]);\n });\n\n const componentPortal = new ComponentPortal<EdsTooltipContainer>(\n EdsTooltipContainer,\n null,\n );\n\n this.tooltipInstance = this.overlayRef.attach(componentPortal);\n this.tooltipInstance.setInput('config', this.getTooltipConfig());\n\n this.isOpen$.next(true);\n }\n });\n\n this.mouseleaveSubscription = fromEvent(origin, 'mouseleave').subscribe(() => {\n this.hide();\n });\n\n this.blurSubscription = fromEvent(origin, 'blur').subscribe(() => {\n this.hide();\n });\n }\n\n /**\n * Method that closes a tooltip.\n */\n public hide(): void {\n timer(this.hideDelay)\n .pipe(take(1))\n .subscribe(() => {\n this.isOpen$.next(false);\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n this.positionStrategySubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n });\n }\n\n @HostListener('keydown.esc', ['$any($event)'])\n protected onEscapePressed(event: KeyboardEvent): void {\n if (this.isOpen) {\n event.stopPropagation();\n this.hide();\n }\n }\n\n /**\n * Generates and returns the tooltip configuration based on the defined tooltip properties.\n *\n * @returns {EuiTooltipInterface} The tooltip configuration object, including attributes used in container component.\n */\n private getTooltipConfig(): EdsTooltipInterface {\n let colorClass = 'secondary';\n if (this.euiTooltipPrimary) {\n colorClass = 'primary';\n }\n if (this.euiTooltipSecondary) {\n colorClass = 'secondary';\n }\n if (this.euiTooltipInfo) {\n colorClass = 'info';\n }\n if (this.euiTooltipSuccess) {\n colorClass = 'success';\n }\n if (this.euiTooltipWarning) {\n colorClass = 'warning';\n }\n if (this.euiTooltipDanger) {\n colorClass = 'danger';\n }\n if (this.euiTooltipAccent) {\n colorClass = 'accent';\n }\n\n return {\n e2eAttr: this.e2eAttr,\n tooltipContent: this.tooltipContent,\n position: this.position,\n contentAlign: this.contentAlignment,\n colorClass,\n };\n }\n\n /**\n * Determines and returns the tooltip's position based on the overlay's connection pair.\n *\n * @param {ConnectedOverlayPositionChange} overlayPosition - The overlay position change event.\n * @returns {string} The calculated position (`'above'`, `'below'`, `'left'`, or `'right'`).\n */\n private getPosition(overlayPosition: ConnectedOverlayPositionChange): string {\n if (overlayPosition.connectionPair.originY === 'top' && overlayPosition.connectionPair.overlayY === 'bottom') {\n return 'above';\n }\n if (overlayPosition.connectionPair.originY === 'bottom' && overlayPosition.connectionPair.overlayY === 'top') {\n return 'below';\n }\n if (overlayPosition.connectionPair.originX === 'start' && overlayPosition.connectionPair.overlayX === 'end') {\n return 'left';\n }\n if (overlayPosition.connectionPair.originX === 'end' && overlayPosition.connectionPair.overlayX === 'start') {\n return 'right';\n }\n return this.position;\n }\n\n /**\n * Sets the position-related properties based on the current `position` value.\n */\n private setPosition(): void {\n if (this.position === 'above') {\n this.originY = 'top';\n this.overlayY = 'bottom';\n this.fallbackOriginY = 'bottom';\n this.fallbackOverlayY = 'top';\n }\n if (this.position === 'right' || this.position === 'after') {\n this.originX = 'end';\n this.originY = 'center';\n this.overlayX = 'start';\n this.overlayY = 'center';\n this.fallbackOriginX = 'start';\n this.fallbackOriginY = 'center';\n this.fallbackOverlayX = 'end';\n this.fallbackOverlayY = 'center';\n }\n if (this.position === 'below') {\n this.originY = 'bottom';\n this.overlayY = 'top';\n this.fallbackOriginY = 'top';\n this.fallbackOverlayY = 'bottom';\n }\n if (this.position === 'left' || this.position === 'before') {\n this.originX = 'start';\n this.originY = 'center';\n this.overlayX = 'end';\n this.overlayY = 'center';\n this.fallbackOriginX = 'end';\n this.fallbackOriginY = 'center';\n this.fallbackOverlayX = 'start';\n this.fallbackOverlayY = 'center';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-eds-eds-tooltip.mjs","sources":["../../eds-tooltip/eds-tooltip-animations.ts","../../eds-tooltip/eds-tooltip-container.ts","../../eds-tooltip/eds-tooltip-container.html","../../eds-tooltip/eds-tooltip.ts","../../eds-tooltip/eui-eds-eds-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger, keyframes } from '@angular/animations';\n\n/**\n * Tooltip display animation.\n */\nexport const showHide = trigger('showHide', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.99)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(1)', offset: 1 }),\n ]),\n ),\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 }))),\n]);\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { showHide } from './eds-tooltip-animations';\nimport { EdsTooltipInterface } from './eds-tooltip.config';\n\n@Component({\n selector: 'eds-tooltip-container',\n templateUrl: 'eds-tooltip-container.html',\n styleUrl: './eds-tooltip-container.scss', \n // Styles are in globals: \\packages\\styles\\src\\styles\\07-elements\\directives\\_eui-tooltip.scss\n animations: [showHide],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EdsTooltipContainer {\n /**\n * Configuration provided by euiTooltip directive at instantiation.\n *\n * @type {EuiTooltipInterface} A config object containing e2eAttr, tooltipContent, position, contentAlign, colorClass.\n */\n @Input() config!: EdsTooltipInterface;\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tooltip'\n */\n @HostBinding('attr.data-e2e') e2e = 'eds-tooltip';\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n get cssClasses(): string {\n return ['eds-tooltip', 'eds-tooltip--content-' + this.config.contentAlign, 'eds-tooltip--' + this.config.colorClass]\n .join(' ')\n .trim();\n }\n @HostBinding('@showHide') get showHide(): string {\n return 'visible';\n }\n}\n","<div [innerHTML]=\"config.tooltipContent\"></div>\n","import {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n ElementRef,\n HostListener,\n OnChanges,\n numberAttribute,\n booleanAttribute,\n ComponentRef,\n inject,\n} from '@angular/core';\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, fromEvent, Subject, Subscription, take, timer } from 'rxjs';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { EdsTooltipContainer } from './eds-tooltip-container';\nimport { EdsTooltipInterface } from './eds-tooltip.config';\n\n@Directive({\n selector: '[edsTooltip]',\n exportAs: 'edsTooltip',\n})\nexport class EdsTooltip implements OnChanges, OnInit, OnDestroy {\n /**\n * Sets the `data-e2e` attribute for the host element.\n *\n * @default 'eds-tooltip'\n */\n @Input() e2eAttr = 'eds-tooltip';\n /**\n * Sets the delay for the tooltip to be visible.\n *\n * @default 0\n */\n @Input({ transform: numberAttribute }) showDelay = 0;\n /**\n * Sets the delay for the tooltip to be hidden\n *\n * @default 0\n */\n @Input({ transform: numberAttribute }) hideDelay = 0;\n /**\n * Sets the alignment of the content in the tooltip.\n *\n * @default 'center''\n */\n @Input() contentAlignment: 'left' | 'right' | 'center' | 'justify' = 'center';\n /**\n * Sets the position of the tooltip relative to its trigger element.\n *\n * @default 'center''\n */\n @Input() position: 'left' | 'right' | 'above' | 'below' | 'before' | 'after' | string = 'above';\n /**\n * Whether the tooltip is disabled.\n *\n * @default false (enable)\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n /**\n * Tooltip content.\n */\n @Input('edsTooltip') tooltipContent!: string;\n /**\n * Whether the tooltip has a Primary state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipPrimary = false;\n /**\n * Whether the tooltip has a Secondary state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipSecondary = false;\n /**\n * Whether the tooltip has Info state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipInfo = false;\n /**\n * Whether the tooltip has a Success state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipSuccess = false;\n /**\n * Whether the tooltip has a Warning state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipWarning = false;\n /**\n * Whether the tooltip has a Danger state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipDanger = false;\n /**\n * Whether the tooltip has Accent state.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) edsTooltipAccent = false;\n\n private originX: 'start' | 'end' | 'center' = 'center';\n private originY: 'top' | 'bottom' | 'center' = 'top';\n private overlayX: 'start' | 'end' | 'center' = 'center';\n private overlayY: 'top' | 'bottom' | 'center' = 'bottom';\n private fallbackOriginX: 'start' | 'end' | 'center' = 'center';\n private fallbackOriginY: 'top' | 'bottom' | 'center' = 'bottom';\n private fallbackOverlayX: 'start' | 'end' | 'center' = 'center';\n private fallbackOverlayY: 'top' | 'bottom' | 'center' = 'top';\n private overlayRef!: OverlayRef | null;\n private destroy$ = new Subject<boolean>();\n private isOpen$ = new BehaviorSubject<boolean>(false);\n private mouseleaveSubscription = new Subscription();\n private blurSubscription = new Subscription();\n private showDelaySubscription = new Subscription();\n private positionStrategySubscription = new Subscription();\n private tooltipInstance!: ComponentRef<EdsTooltipContainer>;\n private overlay = inject(Overlay);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnChanges(): void {\n if (this.tooltipInstance) {\n this.tooltipInstance.setInput('config', this.getTooltipConfig());\n }\n\n this.setPosition();\n }\n\n ngOnInit(): void {\n this.setPosition();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n this.positionStrategySubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n @HostListener('mouseenter', ['$event'])\n mouseEntering(event: MouseEvent): void {\n this.show(event.target ?? undefined);\n }\n\n @HostListener('focus', ['$event'])\n focused(event: FocusEvent): void {\n this.show(event.target ?? undefined);\n }\n\n /**\n * Returns the current open state.\n *\n * @returns {boolean} `true` if the element is open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Method that shows a tooltip.\n *\n * @param origin Origin of the tooltip. Where it will be displayed.\n */\n public show(origin: EventTarget = this.host.nativeElement): void {\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n \n this.showDelaySubscription = timer(this.showDelay).subscribe(() => {\n if (!this.isOpen && !this.isDisabled && this.tooltipContent) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions([\n new ConnectionPositionPair(\n { originX: this.originX, originY: this.originY },\n { overlayX: this.overlayX, overlayY: this.overlayY },\n ),\n new ConnectionPositionPair(\n { originX: this.fallbackOriginX, originY: this.fallbackOriginY },\n { overlayX: this.fallbackOverlayX, overlayY: this.fallbackOverlayY },\n ),\n ])\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: false,\n usePopover: false,\n panelClass: ['eds-tooltip-panel', 'eui-21'],\n positionStrategy,\n scrollStrategy,\n });\n\n this.positionStrategySubscription = positionStrategy.positionChanges.subscribe((overlayPosition) => {\n this.position = this.getPosition(overlayPosition);\n const positionClasses = [\n 'eds-tooltip--left',\n 'eds-tooltip--right',\n 'eds-tooltip--above',\n 'eds-tooltip--below',\n 'eds-tooltip--before',\n 'eds-tooltip--after',\n ];\n this.overlayRef?.removePanelClass(positionClasses);\n this.overlayRef?.addPanelClass(['eds-tooltip--' + this.position]);\n });\n\n const componentPortal = new ComponentPortal<EdsTooltipContainer>(\n EdsTooltipContainer,\n null,\n );\n\n this.tooltipInstance = this.overlayRef.attach(componentPortal);\n this.tooltipInstance.setInput('config', this.getTooltipConfig());\n\n this.isOpen$.next(true);\n }\n });\n\n this.mouseleaveSubscription = fromEvent(origin, 'mouseleave').subscribe(() => {\n this.hide();\n });\n\n this.blurSubscription = fromEvent(origin, 'blur').subscribe(() => {\n this.hide();\n });\n }\n\n /**\n * Method that closes a tooltip.\n */\n public hide(): void {\n timer(this.hideDelay)\n .pipe(take(1))\n .subscribe(() => {\n this.isOpen$.next(false);\n this.mouseleaveSubscription.unsubscribe();\n this.blurSubscription.unsubscribe();\n this.showDelaySubscription.unsubscribe();\n this.positionStrategySubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n });\n }\n\n @HostListener('keydown.esc', ['$any($event)'])\n protected onEscapePressed(event: KeyboardEvent): void {\n if (this.isOpen) {\n event.stopPropagation();\n this.hide();\n }\n }\n\n /**\n * Generates and returns the tooltip configuration based on the defined tooltip properties.\n *\n * @returns {edsTooltipInterface} The tooltip configuration object, including attributes used in container component.\n */\n private getTooltipConfig(): EdsTooltipInterface {\n let colorClass = 'secondary';\n if (this.edsTooltipPrimary) {\n colorClass = 'primary';\n }\n if (this.edsTooltipSecondary) {\n colorClass = 'secondary';\n }\n if (this.edsTooltipInfo) {\n colorClass = 'info';\n }\n if (this.edsTooltipSuccess) {\n colorClass = 'success';\n }\n if (this.edsTooltipWarning) {\n colorClass = 'warning';\n }\n if (this.edsTooltipDanger) {\n colorClass = 'danger';\n }\n if (this.edsTooltipAccent) {\n colorClass = 'accent';\n }\n\n return {\n e2eAttr: this.e2eAttr,\n tooltipContent: this.tooltipContent,\n position: this.position,\n contentAlign: this.contentAlignment,\n colorClass,\n };\n }\n\n /**\n * Determines and returns the tooltip's position based on the overlay's connection pair.\n *\n * @param {ConnectedOverlayPositionChange} overlayPosition - The overlay position change event.\n * @returns {string} The calculated position (`'above'`, `'below'`, `'left'`, or `'right'`).\n */\n private getPosition(overlayPosition: ConnectedOverlayPositionChange): string {\n if (overlayPosition.connectionPair.originY === 'top' && overlayPosition.connectionPair.overlayY === 'bottom') {\n return 'above';\n }\n if (overlayPosition.connectionPair.originY === 'bottom' && overlayPosition.connectionPair.overlayY === 'top') {\n return 'below';\n }\n if (overlayPosition.connectionPair.originX === 'start' && overlayPosition.connectionPair.overlayX === 'end') {\n return 'left';\n }\n if (overlayPosition.connectionPair.originX === 'end' && overlayPosition.connectionPair.overlayX === 'start') {\n return 'right';\n }\n return this.position;\n }\n\n /**\n * Sets the position-related properties based on the current `position` value.\n */\n private setPosition(): void {\n if (this.position === 'above') {\n this.originY = 'top';\n this.overlayY = 'bottom';\n this.fallbackOriginY = 'bottom';\n this.fallbackOverlayY = 'top';\n }\n if (this.position === 'right' || this.position === 'after') {\n this.originX = 'end';\n this.originY = 'center';\n this.overlayX = 'start';\n this.overlayY = 'center';\n this.fallbackOriginX = 'start';\n this.fallbackOriginY = 'center';\n this.fallbackOverlayX = 'end';\n this.fallbackOverlayY = 'center';\n }\n if (this.position === 'below') {\n this.originY = 'bottom';\n this.overlayY = 'top';\n this.fallbackOriginY = 'top';\n this.fallbackOverlayY = 'bottom';\n }\n if (this.position === 'left' || this.position === 'before') {\n this.originX = 'start';\n this.originY = 'center';\n this.overlayX = 'end';\n this.overlayY = 'center';\n this.fallbackOriginX = 'end';\n this.fallbackOriginY = 'center';\n this.fallbackOverlayX = 'start';\n this.fallbackOverlayY = 'center';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, inject, ElementRef, contentChild, computed, signal, input, HostListener, HostBinding } from '@angular/core';
3
+ import * as i1 from '@eui/eds/eds-avatar';
4
+ import { EDS_AVATAR } from '@eui/eds/eds-avatar';
5
+ import * as i2 from '@eui/eds/eds-icon';
6
+ import { EDS_ICON } from '@eui/eds/eds-icon';
7
+ import * as i3 from '@angular/cdk/a11y';
8
+ import { A11yModule } from '@angular/cdk/a11y';
9
+
10
+ class EdsUserProfileMenu {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfileMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: EdsUserProfileMenu, isStandalone: true, selector: "eds-user-profile-menu", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".eui-21 :host{display:block;padding:var(--eds-sp-xs) var(--eds-sp-none)}\n"] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfileMenu, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'eds-user-profile-menu', template: "<ng-content></ng-content>\n", styles: [".eui-21 :host{display:block;padding:var(--eds-sp-xs) var(--eds-sp-none)}\n"] }]
17
+ }] });
18
+
19
+ class EdsUserProfile {
20
+ constructor() {
21
+ this.el = inject(ElementRef);
22
+ /** Detects whether a menu is projected. */
23
+ this.menuChild = contentChild(EdsUserProfileMenu, /* @ts-ignore */
24
+ ...(ngDevMode ? [{ debugName: "menuChild" }] : /* istanbul ignore next */ []));
25
+ /** Whether the component has a dropdown menu. */
26
+ this.hasMenu = computed(() => !!this.menuChild(), /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "hasMenu" }] : /* istanbul ignore next */ []));
28
+ /** Whether reverse mode is forced by context (e.g. inside eds-shell-header). */
29
+ this.contextReverse = signal(false, /* @ts-ignore */
30
+ ...(ngDevMode ? [{ debugName: "contextReverse" }] : /* istanbul ignore next */ []));
31
+ /** Whether the avatar should use medium size (e.g. inside eds-shell-toolbar). */
32
+ this.isInToolbar = signal(false, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "isInToolbar" }] : /* istanbul ignore next */ []));
34
+ /** Index of the currently focused menu item (-1 = none). */
35
+ this.focusedIndex = signal(-1, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
37
+ this.menuItems = [];
38
+ this.needsFocusOnOpen = false;
39
+ /** Full name of the user. */
40
+ this.fullName = input('', /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "fullName" }] : /* istanbul ignore next */ []));
42
+ /** First name. */
43
+ this.firstName = input('', /* @ts-ignore */
44
+ ...(ngDevMode ? [{ debugName: "firstName" }] : /* istanbul ignore next */ []));
45
+ /** Last name. */
46
+ this.lastName = input('', /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "lastName" }] : /* istanbul ignore next */ []));
48
+ /** URL of the avatar image. */
49
+ this.avatarUrl = input('', /* @ts-ignore */
50
+ ...(ngDevMode ? [{ debugName: "avatarUrl" }] : /* istanbul ignore next */ []));
51
+ /** Additional info displayed below the name (e.g. email, role). */
52
+ this.subInfos = input('', /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "subInfos" }] : /* istanbul ignore next */ []));
54
+ /** Welcome label displayed before the user name. */
55
+ this.welcomeLabel = input('Welcome', /* @ts-ignore */
56
+ ...(ngDevMode ? [{ debugName: "welcomeLabel" }] : /* istanbul ignore next */ []));
57
+ /** Whether to show the welcome label. */
58
+ this.hasWelcomeLabel = input(true, /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "hasWelcomeLabel" }] : /* istanbul ignore next */ []));
60
+ /** Whether to show user name and info text. */
61
+ this.isShowUserInfos = input(true, /* @ts-ignore */
62
+ ...(ngDevMode ? [{ debugName: "isShowUserInfos" }] : /* istanbul ignore next */ []));
63
+ /** Whether to show initials in the avatar when no image. */
64
+ this.isShowAvatarInitials = input(true, /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "isShowAvatarInitials" }] : /* istanbul ignore next */ []));
66
+ /** Reverse the layout (name on left, avatar on right). */
67
+ this.isReverse = input(false, /* @ts-ignore */
68
+ ...(ngDevMode ? [{ debugName: "isReverse" }] : /* istanbul ignore next */ []));
69
+ /** Effective reverse state: true if input or context forces it. */
70
+ this.effectiveReverse = computed(() => this.isReverse() || this.contextReverse(), /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "effectiveReverse" }] : /* istanbul ignore next */ []));
72
+ /** Whether to reverse name order (firstName first). */
73
+ this.reverseNameOrder = input(false, /* @ts-ignore */
74
+ ...(ngDevMode ? [{ debugName: "reverseNameOrder" }] : /* istanbul ignore next */ []));
75
+ /** Whether dropdown menu is open. */
76
+ this.isMenuOpen = signal(false, /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "isMenuOpen" }] : /* istanbul ignore next */ []));
78
+ /** Whether the dropdown should align to the left edge instead of right. */
79
+ this.alignLeft = signal(false, /* @ts-ignore */
80
+ ...(ngDevMode ? [{ debugName: "alignLeft" }] : /* istanbul ignore next */ []));
81
+ /** Computed display name. */
82
+ this.displayName = computed(() => {
83
+ if (this.fullName())
84
+ return this.fullName();
85
+ const first = this.firstName();
86
+ const last = this.lastName();
87
+ if (this.reverseNameOrder()) {
88
+ return `${first} ${last}`.trim();
89
+ }
90
+ return `${last} ${first}`.trim();
91
+ }, /* @ts-ignore */
92
+ ...(ngDevMode ? [{ debugName: "displayName" }] : /* istanbul ignore next */ []));
93
+ /** Computed initials from name. */
94
+ this.initials = computed(() => {
95
+ const first = this.firstName();
96
+ const last = this.lastName();
97
+ if (first && last) {
98
+ return `${first.charAt(0)}${last.charAt(0)}`.toUpperCase();
99
+ }
100
+ const full = this.fullName();
101
+ if (full) {
102
+ const parts = full.split(' ').filter(Boolean);
103
+ if (parts.length >= 2) {
104
+ return `${parts[0].charAt(0)}${parts[parts.length - 1].charAt(0)}`.toUpperCase();
105
+ }
106
+ return full.substring(0, 2).toUpperCase();
107
+ }
108
+ return '';
109
+ }, /* @ts-ignore */
110
+ ...(ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []));
111
+ }
112
+ ngOnInit() {
113
+ if (this.el.nativeElement.closest('eds-shell-header')) {
114
+ this.contextReverse.set(true);
115
+ }
116
+ if (this.el.nativeElement.closest('eds-shell-toolbar')) {
117
+ this.isInToolbar.set(true);
118
+ }
119
+ }
120
+ ngAfterViewChecked() {
121
+ if (this.needsFocusOnOpen && this.isMenuOpen()) {
122
+ this.menuItems = Array.from(this.el.nativeElement.querySelectorAll('eds-user-profile-menu-item'));
123
+ if (this.menuItems.length > 0) {
124
+ this.focusedIndex.set(0);
125
+ this.menuItems[0].focus();
126
+ this.needsFocusOnOpen = false;
127
+ }
128
+ }
129
+ }
130
+ onDocumentClick(event) {
131
+ if (this.isMenuOpen() && !this.el.nativeElement.contains(event.target)) {
132
+ this.closeMenu();
133
+ }
134
+ }
135
+ toggleMenu() {
136
+ if (!this.isMenuOpen()) {
137
+ this.updateAlignment();
138
+ this.isMenuOpen.set(true);
139
+ this.needsFocusOnOpen = true;
140
+ }
141
+ else {
142
+ this.closeMenu();
143
+ }
144
+ }
145
+ closeMenu() {
146
+ this.isMenuOpen.set(false);
147
+ this.focusedIndex.set(-1);
148
+ this.menuItems = [];
149
+ }
150
+ onMenuKeydown(event) {
151
+ if (event.key === 'ArrowDown') {
152
+ event.preventDefault();
153
+ this.moveFocus(1);
154
+ }
155
+ else if (event.key === 'ArrowUp') {
156
+ event.preventDefault();
157
+ this.moveFocus(-1);
158
+ }
159
+ else if (event.key === 'Escape') {
160
+ this.closeMenu();
161
+ // Return focus to trigger
162
+ const trigger = this.el.nativeElement.querySelector('.user-profile');
163
+ trigger?.focus();
164
+ }
165
+ else if (event.key === 'Enter' || event.key === ' ') {
166
+ event.preventDefault();
167
+ const idx = this.focusedIndex();
168
+ if (idx >= 0 && idx < this.menuItems.length) {
169
+ this.menuItems[idx].click();
170
+ }
171
+ }
172
+ }
173
+ moveFocus(direction) {
174
+ if (this.menuItems.length === 0)
175
+ return;
176
+ let newIndex = this.focusedIndex() + direction;
177
+ if (newIndex < 0)
178
+ newIndex = this.menuItems.length - 1;
179
+ if (newIndex >= this.menuItems.length)
180
+ newIndex = 0;
181
+ this.focusedIndex.set(newIndex);
182
+ this.menuItems[newIndex].focus();
183
+ }
184
+ updateAlignment() {
185
+ const rect = this.el.nativeElement.getBoundingClientRect();
186
+ const viewportWidth = window.innerWidth;
187
+ this.alignLeft.set(rect.right < viewportWidth / 2);
188
+ }
189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfile, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EdsUserProfile, isStandalone: true, selector: "eds-user-profile", inputs: { fullName: { classPropertyName: "fullName", publicName: "fullName", isSignal: true, isRequired: false, transformFunction: null }, firstName: { classPropertyName: "firstName", publicName: "firstName", isSignal: true, isRequired: false, transformFunction: null }, lastName: { classPropertyName: "lastName", publicName: "lastName", isSignal: true, isRequired: false, transformFunction: null }, avatarUrl: { classPropertyName: "avatarUrl", publicName: "avatarUrl", isSignal: true, isRequired: false, transformFunction: null }, subInfos: { classPropertyName: "subInfos", publicName: "subInfos", isSignal: true, isRequired: false, transformFunction: null }, welcomeLabel: { classPropertyName: "welcomeLabel", publicName: "welcomeLabel", isSignal: true, isRequired: false, transformFunction: null }, hasWelcomeLabel: { classPropertyName: "hasWelcomeLabel", publicName: "hasWelcomeLabel", isSignal: true, isRequired: false, transformFunction: null }, isShowUserInfos: { classPropertyName: "isShowUserInfos", publicName: "isShowUserInfos", isSignal: true, isRequired: false, transformFunction: null }, isShowAvatarInitials: { classPropertyName: "isShowAvatarInitials", publicName: "isShowAvatarInitials", isSignal: true, isRequired: false, transformFunction: null }, isReverse: { classPropertyName: "isReverse", publicName: "isReverse", isSignal: true, isRequired: false, transformFunction: null }, reverseNameOrder: { classPropertyName: "reverseNameOrder", publicName: "reverseNameOrder", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, queries: [{ propertyName: "menuChild", first: true, predicate: EdsUserProfileMenu, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"user-profile\"\n [class.reverse]=\"effectiveReverse()\"\n [class.in-toolbar]=\"isInToolbar()\"\n [class.has-menu]=\"hasMenu()\"\n [attr.tabindex]=\"hasMenu() ? 0 : null\"\n [attr.role]=\"hasMenu() ? 'button' : null\"\n (click)=\"hasMenu() && toggleMenu()\"\n (keydown.enter)=\"hasMenu() && toggleMenu()\"\n (keydown.space)=\"hasMenu() && toggleMenu(); $event.preventDefault()\"\n (keydown.escape)=\"closeMenu()\">\n\n <!-- Avatar -->\n @if (isInToolbar()) {\n <eds-avatar edsSizeM>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>\uD83D\uDC64</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n } @else {\n <eds-avatar edsSizeL>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>\uD83D\uDC64</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n }\n\n <!-- User info -->\n @if (isShowUserInfos()) {\n <div class=\"user-info\">\n @if (hasWelcomeLabel() && welcomeLabel()) {\n <span class=\"welcome\">{{ welcomeLabel() }}</span>\n }\n <span class=\"name\">{{ displayName() }}</span>\n @if (subInfos()) {\n <span class=\"sub-info\">{{ subInfos() }}</span>\n }\n </div>\n }\n\n <!-- Chevron indicator (only when menu is present) -->\n @if (hasMenu()) {\n <eds-icon class=\"chevron\" [class.chevron-brand]=\"isInToolbar()\" [icon]=\"isMenuOpen() ? 'caret-up' : 'caret-down'\" edsSizeS />\n }\n</div>\n\n<!-- Dropdown menu (content projected) -->\n@if (isMenuOpen()) {\n <div class=\"profile-menu\"\n [class.align-left]=\"alignLeft()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"menu\"\n (keydown)=\"onMenuKeydown($event)\">\n <ng-content select=\"eds-user-profile-menu\"></ng-content>\n </div>\n}\n", styles: [".eui-21 :host{display:inline-flex;position:relative}.eui-21 :host .user-profile{display:flex;align-items:center;gap:var(--eds-sp-xs);border-radius:var(--eds-br-s);padding:var(--eds-sp-3xs) var(--eds-sp-xs);transition:background .15s ease}.eui-21 :host .user-profile.has-menu{cursor:pointer}.eui-21 :host .user-profile.has-menu:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-xs)!important}.eui-21 :host .user-profile.has-menu:hover{background:var(--eds-c-surface-elevation-sunken)}.eui-21 :host .user-profile.has-menu.in-toolbar:hover{background:var(--eds-c-surface-brand--hover)}.eui-21 :host .user-profile.reverse .user-info{order:-1;text-align:right}.eui-21 :host .user-info{display:flex;flex-direction:column;min-width:0}.eui-21 :host .welcome{font:var(--eds-f-microcopy-xs);color:var(--eds-c-foreground-subtler)}.eui-21 :host .name{font:var(--eds-f-label-m-semi-bold);color:var(--eds-c-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .sub-info{font:var(--eds-f-microcopy-xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .chevron{flex-shrink:0;color:var(--eds-c-foreground-subtler);transition:transform .2s ease}.eui-21 :host .chevron.chevron-brand{color:var(--eds-c-on-surface-brand)}.eui-21 :host .profile-menu{position:absolute;top:100%;right:0;z-index:200;min-width:220px;margin-top:var(--eds-sp-3xs);background:var(--eds-c-surface-elevation-overlay);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-3);overflow:hidden}.eui-21 :host .profile-menu.align-left{right:auto;left:0}\n"], dependencies: [{ kind: "component", type: i1.EdsAvatar, selector: "div[edsAvatar], span[edsAvatar], eds-avatar", inputs: ["e2eAttr", "aria-label", "colorPalette"] }, { kind: "component", type: i1.EdsAvatarIcon, selector: "eds-avatar-icon" }, { kind: "component", type: i1.EdsAvatarText, selector: "eds-avatar-text" }, { kind: "component", type: i1.EdsAvatarImage, selector: "eds-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i2.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "ariaLabel", "ariaHidden"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
191
+ }
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfile, decorators: [{
193
+ type: Component,
194
+ args: [{ selector: 'eds-user-profile', imports: [...EDS_AVATAR, ...EDS_ICON, A11yModule], template: "<div\n class=\"user-profile\"\n [class.reverse]=\"effectiveReverse()\"\n [class.in-toolbar]=\"isInToolbar()\"\n [class.has-menu]=\"hasMenu()\"\n [attr.tabindex]=\"hasMenu() ? 0 : null\"\n [attr.role]=\"hasMenu() ? 'button' : null\"\n (click)=\"hasMenu() && toggleMenu()\"\n (keydown.enter)=\"hasMenu() && toggleMenu()\"\n (keydown.space)=\"hasMenu() && toggleMenu(); $event.preventDefault()\"\n (keydown.escape)=\"closeMenu()\">\n\n <!-- Avatar -->\n @if (isInToolbar()) {\n <eds-avatar edsSizeM>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>\uD83D\uDC64</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n } @else {\n <eds-avatar edsSizeL>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>\uD83D\uDC64</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n }\n\n <!-- User info -->\n @if (isShowUserInfos()) {\n <div class=\"user-info\">\n @if (hasWelcomeLabel() && welcomeLabel()) {\n <span class=\"welcome\">{{ welcomeLabel() }}</span>\n }\n <span class=\"name\">{{ displayName() }}</span>\n @if (subInfos()) {\n <span class=\"sub-info\">{{ subInfos() }}</span>\n }\n </div>\n }\n\n <!-- Chevron indicator (only when menu is present) -->\n @if (hasMenu()) {\n <eds-icon class=\"chevron\" [class.chevron-brand]=\"isInToolbar()\" [icon]=\"isMenuOpen() ? 'caret-up' : 'caret-down'\" edsSizeS />\n }\n</div>\n\n<!-- Dropdown menu (content projected) -->\n@if (isMenuOpen()) {\n <div class=\"profile-menu\"\n [class.align-left]=\"alignLeft()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"menu\"\n (keydown)=\"onMenuKeydown($event)\">\n <ng-content select=\"eds-user-profile-menu\"></ng-content>\n </div>\n}\n", styles: [".eui-21 :host{display:inline-flex;position:relative}.eui-21 :host .user-profile{display:flex;align-items:center;gap:var(--eds-sp-xs);border-radius:var(--eds-br-s);padding:var(--eds-sp-3xs) var(--eds-sp-xs);transition:background .15s ease}.eui-21 :host .user-profile.has-menu{cursor:pointer}.eui-21 :host .user-profile.has-menu:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-xs)!important}.eui-21 :host .user-profile.has-menu:hover{background:var(--eds-c-surface-elevation-sunken)}.eui-21 :host .user-profile.has-menu.in-toolbar:hover{background:var(--eds-c-surface-brand--hover)}.eui-21 :host .user-profile.reverse .user-info{order:-1;text-align:right}.eui-21 :host .user-info{display:flex;flex-direction:column;min-width:0}.eui-21 :host .welcome{font:var(--eds-f-microcopy-xs);color:var(--eds-c-foreground-subtler)}.eui-21 :host .name{font:var(--eds-f-label-m-semi-bold);color:var(--eds-c-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .sub-info{font:var(--eds-f-microcopy-xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .chevron{flex-shrink:0;color:var(--eds-c-foreground-subtler);transition:transform .2s ease}.eui-21 :host .chevron.chevron-brand{color:var(--eds-c-on-surface-brand)}.eui-21 :host .profile-menu{position:absolute;top:100%;right:0;z-index:200;min-width:220px;margin-top:var(--eds-sp-3xs);background:var(--eds-c-surface-elevation-overlay);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-3);overflow:hidden}.eui-21 :host .profile-menu.align-left{right:auto;left:0}\n"] }]
195
+ }], propDecorators: { menuChild: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EdsUserProfileMenu), { isSignal: true }] }], onDocumentClick: [{
196
+ type: HostListener,
197
+ args: ['document:click', ['$event']]
198
+ }], fullName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullName", required: false }] }], firstName: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstName", required: false }] }], lastName: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastName", required: false }] }], avatarUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarUrl", required: false }] }], subInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "subInfos", required: false }] }], welcomeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "welcomeLabel", required: false }] }], hasWelcomeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasWelcomeLabel", required: false }] }], isShowUserInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "isShowUserInfos", required: false }] }], isShowAvatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "isShowAvatarInitials", required: false }] }], isReverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "isReverse", required: false }] }], reverseNameOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "reverseNameOrder", required: false }] }] } });
199
+
200
+ class EdsUserProfileMenuItem {
201
+ constructor() {
202
+ this.tabindex = -1;
203
+ this.role = 'menuitem';
204
+ }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfileMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: EdsUserProfileMenuItem, isStandalone: true, selector: "eds-user-profile-menu-item", host: { properties: { "attr.tabindex": "this.tabindex", "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".eui-21 :host{display:block;padding:var(--eds-sp-xs) var(--eds-sp-m);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground);cursor:pointer;outline:none;transition:background .15s ease}.eui-21 :host:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-xs)!important}.eui-21 :host:hover{background:var(--eds-c-surface-elevation-sunken)}.eui-21 :host:first-child{background:var(--eds-c-surface-selected)}.eui-21 :host:focus{background:var(--eds-c-surface-selected)}\n"] }); }
207
+ }
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EdsUserProfileMenuItem, decorators: [{
209
+ type: Component,
210
+ args: [{ selector: 'eds-user-profile-menu-item', template: "<ng-content></ng-content>\n", styles: [".eui-21 :host{display:block;padding:var(--eds-sp-xs) var(--eds-sp-m);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground);cursor:pointer;outline:none;transition:background .15s ease}.eui-21 :host:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-xs)!important}.eui-21 :host:hover{background:var(--eds-c-surface-elevation-sunken)}.eui-21 :host:first-child{background:var(--eds-c-surface-selected)}.eui-21 :host:focus{background:var(--eds-c-surface-selected)}\n"] }]
211
+ }], propDecorators: { tabindex: [{
212
+ type: HostBinding,
213
+ args: ['attr.tabindex']
214
+ }], role: [{
215
+ type: HostBinding,
216
+ args: ['attr.role']
217
+ }] } });
218
+
219
+ /** Convenience array for importing all eds-user-profile components. */
220
+ const EDS_USER_PROFILE = [
221
+ EdsUserProfile,
222
+ EdsUserProfileMenu,
223
+ EdsUserProfileMenuItem,
224
+ ];
225
+
226
+ /**
227
+ * Generated bundle index. Do not edit.
228
+ */
229
+
230
+ export { EDS_USER_PROFILE, EdsUserProfile, EdsUserProfileMenu, EdsUserProfileMenuItem };
231
+ //# sourceMappingURL=eui-eds-eds-user-profile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eui-eds-eds-user-profile.mjs","sources":["../../eds-user-profile/eds-user-profile-menu.ts","../../eds-user-profile/eds-user-profile-menu.html","../../eds-user-profile/eds-user-profile.ts","../../eds-user-profile/eds-user-profile.html","../../eds-user-profile/eds-user-profile-menu-item.ts","../../eds-user-profile/eds-user-profile-menu-item.html","../../eds-user-profile/index.ts","../../eds-user-profile/eui-eds-eds-user-profile.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'eds-user-profile-menu',\n templateUrl: './eds-user-profile-menu.html',\n styleUrl: './eds-user-profile-menu.scss',\n})\nexport class EdsUserProfileMenu {}\n","<ng-content></ng-content>\n","import { Component, input, signal, computed, ElementRef, inject, HostListener, OnInit, contentChild, AfterViewChecked } from '@angular/core';\nimport { EDS_AVATAR } from '@eui/eds/eds-avatar';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsUserProfileMenu } from './eds-user-profile-menu';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'eds-user-profile',\n imports: [...EDS_AVATAR, ...EDS_ICON, A11yModule],\n templateUrl: './eds-user-profile.html',\n styleUrl: './eds-user-profile.scss',\n})\nexport class EdsUserProfile implements OnInit, AfterViewChecked {\n private el = inject(ElementRef);\n\n /** Detects whether a menu is projected. */\n private menuChild = contentChild(EdsUserProfileMenu);\n\n /** Whether the component has a dropdown menu. */\n hasMenu = computed(() => !!this.menuChild());\n\n /** Whether reverse mode is forced by context (e.g. inside eds-shell-header). */\n private contextReverse = signal(false);\n\n /** Whether the avatar should use medium size (e.g. inside eds-shell-toolbar). */\n isInToolbar = signal(false);\n\n /** Index of the currently focused menu item (-1 = none). */\n focusedIndex = signal(-1);\n\n private menuItems: HTMLElement[] = [];\n private needsFocusOnOpen = false;\n\n ngOnInit(): void {\n if (this.el.nativeElement.closest('eds-shell-header')) {\n this.contextReverse.set(true);\n }\n if (this.el.nativeElement.closest('eds-shell-toolbar')) {\n this.isInToolbar.set(true);\n }\n }\n\n ngAfterViewChecked(): void {\n if (this.needsFocusOnOpen && this.isMenuOpen()) {\n this.menuItems = Array.from(\n this.el.nativeElement.querySelectorAll('eds-user-profile-menu-item'),\n );\n if (this.menuItems.length > 0) {\n this.focusedIndex.set(0);\n this.menuItems[0].focus();\n this.needsFocusOnOpen = false;\n }\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (this.isMenuOpen() && !this.el.nativeElement.contains(event.target)) {\n this.closeMenu();\n }\n }\n\n /** Full name of the user. */\n fullName = input<string>('');\n\n /** First name. */\n firstName = input<string>('');\n\n /** Last name. */\n lastName = input<string>('');\n\n /** URL of the avatar image. */\n avatarUrl = input<string>('');\n\n /** Additional info displayed below the name (e.g. email, role). */\n subInfos = input<string>('');\n\n /** Welcome label displayed before the user name. */\n welcomeLabel = input<string>('Welcome');\n\n /** Whether to show the welcome label. */\n hasWelcomeLabel = input<boolean>(true);\n\n /** Whether to show user name and info text. */\n isShowUserInfos = input<boolean>(true);\n\n /** Whether to show initials in the avatar when no image. */\n isShowAvatarInitials = input<boolean>(true);\n\n /** Reverse the layout (name on left, avatar on right). */\n isReverse = input<boolean>(false);\n\n /** Effective reverse state: true if input or context forces it. */\n effectiveReverse = computed(() => this.isReverse() || this.contextReverse());\n\n /** Whether to reverse name order (firstName first). */\n reverseNameOrder = input<boolean>(false);\n\n /** Whether dropdown menu is open. */\n isMenuOpen = signal(false);\n\n /** Whether the dropdown should align to the left edge instead of right. */\n alignLeft = signal(false);\n\n /** Computed display name. */\n displayName = computed(() => {\n if (this.fullName()) return this.fullName();\n const first = this.firstName();\n const last = this.lastName();\n if (this.reverseNameOrder()) {\n return `${first} ${last}`.trim();\n }\n return `${last} ${first}`.trim();\n });\n\n /** Computed initials from name. */\n initials = computed(() => {\n const first = this.firstName();\n const last = this.lastName();\n if (first && last) {\n return `${first.charAt(0)}${last.charAt(0)}`.toUpperCase();\n }\n const full = this.fullName();\n if (full) {\n const parts = full.split(' ').filter(Boolean);\n if (parts.length >= 2) {\n return `${parts[0].charAt(0)}${parts[parts.length - 1].charAt(0)}`.toUpperCase();\n }\n return full.substring(0, 2).toUpperCase();\n }\n return '';\n });\n\n toggleMenu(): void {\n if (!this.isMenuOpen()) {\n this.updateAlignment();\n this.isMenuOpen.set(true);\n this.needsFocusOnOpen = true;\n } else {\n this.closeMenu();\n }\n }\n\n closeMenu(): void {\n this.isMenuOpen.set(false);\n this.focusedIndex.set(-1);\n this.menuItems = [];\n }\n\n onMenuKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.moveFocus(1);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.moveFocus(-1);\n } else if (event.key === 'Escape') {\n this.closeMenu();\n // Return focus to trigger\n const trigger = this.el.nativeElement.querySelector('.user-profile') as HTMLElement;\n trigger?.focus();\n } else if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n const idx = this.focusedIndex();\n if (idx >= 0 && idx < this.menuItems.length) {\n this.menuItems[idx].click();\n }\n }\n }\n\n private moveFocus(direction: number): void {\n if (this.menuItems.length === 0) return;\n\n let newIndex = this.focusedIndex() + direction;\n if (newIndex < 0) newIndex = this.menuItems.length - 1;\n if (newIndex >= this.menuItems.length) newIndex = 0;\n\n this.focusedIndex.set(newIndex);\n this.menuItems[newIndex].focus();\n }\n\n private updateAlignment(): void {\n const rect = this.el.nativeElement.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n this.alignLeft.set(rect.right < viewportWidth / 2);\n }\n}\n","<div\n class=\"user-profile\"\n [class.reverse]=\"effectiveReverse()\"\n [class.in-toolbar]=\"isInToolbar()\"\n [class.has-menu]=\"hasMenu()\"\n [attr.tabindex]=\"hasMenu() ? 0 : null\"\n [attr.role]=\"hasMenu() ? 'button' : null\"\n (click)=\"hasMenu() && toggleMenu()\"\n (keydown.enter)=\"hasMenu() && toggleMenu()\"\n (keydown.space)=\"hasMenu() && toggleMenu(); $event.preventDefault()\"\n (keydown.escape)=\"closeMenu()\">\n\n <!-- Avatar -->\n @if (isInToolbar()) {\n <eds-avatar edsSizeM>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>👤</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n } @else {\n <eds-avatar edsSizeL>\n @if (avatarUrl()) {\n <eds-avatar-icon>\n <eds-avatar-image [imageUrl]=\"avatarUrl()\" />\n </eds-avatar-icon>\n } @else if (isShowAvatarInitials() && initials()) {\n <eds-avatar-icon>\n <eds-avatar-text>{{ initials() }}</eds-avatar-text>\n </eds-avatar-icon>\n } @else {\n <eds-avatar-icon>\n <eds-avatar-text>👤</eds-avatar-text>\n </eds-avatar-icon>\n }\n </eds-avatar>\n }\n\n <!-- User info -->\n @if (isShowUserInfos()) {\n <div class=\"user-info\">\n @if (hasWelcomeLabel() && welcomeLabel()) {\n <span class=\"welcome\">{{ welcomeLabel() }}</span>\n }\n <span class=\"name\">{{ displayName() }}</span>\n @if (subInfos()) {\n <span class=\"sub-info\">{{ subInfos() }}</span>\n }\n </div>\n }\n\n <!-- Chevron indicator (only when menu is present) -->\n @if (hasMenu()) {\n <eds-icon class=\"chevron\" [class.chevron-brand]=\"isInToolbar()\" [icon]=\"isMenuOpen() ? 'caret-up' : 'caret-down'\" edsSizeS />\n }\n</div>\n\n<!-- Dropdown menu (content projected) -->\n@if (isMenuOpen()) {\n <div class=\"profile-menu\"\n [class.align-left]=\"alignLeft()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"menu\"\n (keydown)=\"onMenuKeydown($event)\">\n <ng-content select=\"eds-user-profile-menu\"></ng-content>\n </div>\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eds-user-profile-menu-item',\n templateUrl: './eds-user-profile-menu-item.html',\n styleUrl: './eds-user-profile-menu-item.scss',\n})\nexport class EdsUserProfileMenuItem {\n @HostBinding('attr.tabindex') tabindex = -1;\n @HostBinding('attr.role') role = 'menuitem';\n}\n","<ng-content></ng-content>\n","import { EdsUserProfile } from './eds-user-profile';\nimport { EdsUserProfileMenu } from './eds-user-profile-menu';\nimport { EdsUserProfileMenuItem } from './eds-user-profile-menu-item';\n\nexport { EdsUserProfile, EdsUserProfileMenu, EdsUserProfileMenuItem };\n\n/** Convenience array for importing all eds-user-profile components. */\nexport const EDS_USER_PROFILE = [\n EdsUserProfile,\n EdsUserProfileMenu,\n EdsUserProfileMenuItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAOa,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,iFCP/B,6BACA,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,4EAAA,CAAA,EAAA;;;MEStB,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;;QAGvB,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,kBAAkB;sFAAC;;QAGpD,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;oFAAC;;QAGpC,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK;2FAAC;;QAGtC,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,KAAK;wFAAC;;AAG3B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC;yFAAC;QAEjB,IAAA,CAAA,SAAS,GAAkB,EAAE;QAC7B,IAAA,CAAA,gBAAgB,GAAG,KAAK;;QAgChC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE;qFAAC;;QAG5B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE;sFAAC;;QAG7B,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE;qFAAC;;QAG5B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE;sFAAC;;QAG7B,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,EAAE;qFAAC;;QAG5B,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,SAAS;yFAAC;;QAGvC,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,IAAI;4FAAC;;QAGtC,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,IAAI;4FAAC;;QAGtC,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAU,IAAI;iGAAC;;QAG3C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK;sFAAC;;AAGjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;6FAAC;;QAG5E,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAU,KAAK;6FAAC;;QAGxC,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK;uFAAC;;QAG1B,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK;sFAAC;;AAGzB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,gBAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC3C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC3B,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE,CAAC,IAAI,EAAE;YAClC;YACA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,EAAE,CAAC,IAAI,EAAE;QAClC,CAAC;wFAAC;;AAGF,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,gBAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;YAC5D;AACA,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC5B,IAAI,IAAI,EAAE;AACR,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7C,gBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,oBAAA,OAAO,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,WAAW,EAAE;gBAClF;gBACA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;YAC3C;AACA,YAAA,OAAO,EAAE;QACX,CAAC;qFAAC;AAuDH,IAAA;IAzJC,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B;QACA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACF;IAEA,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CACrE;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC/B;QACF;IACF;AAGA,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACtE,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IAyEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;aAAO;YACL,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACnB;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAClC,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpB;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,SAAS,EAAE;;AAEhB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAgB;YACnF,OAAO,EAAE,KAAK,EAAE;QAClB;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YACrD,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;YAC7B;QACF;IACF;AAEQ,IAAA,SAAS,CAAC,SAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE;QAEjC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS;QAC9C,IAAI,QAAQ,GAAG,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AACtD,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,QAAQ,GAAG,CAAC;AAEnD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;IAClC;IAEQ,eAAe,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAC1D,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC;IACpD;8GA7KW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIQ,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBrD,k5EA6EA,0yEDrEwC,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIrC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,kBAAkB,EAAA,OAAA,EACnB,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,k5EAAA,EAAA,MAAA,EAAA,CAAA,8tDAAA,CAAA,EAAA;8FAQhB,kBAAkB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA;sBAuClD,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MEhD/B,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMgC,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAA,CAAA,IAAI,GAAG,UAAU;AAC5C,IAAA;8GAHY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,4KCPnC,6BACA,EAAA,MAAA,EAAA,CAAA,4jBAAA,CAAA,EAAA,CAAA,CAAA;;2FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,4jBAAA,CAAA,EAAA;;sBAKrC,WAAW;uBAAC,eAAe;;sBAC3B,WAAW;uBAAC,WAAW;;;AEH1B;AACO,MAAM,gBAAgB,GAAG;IAC9B,cAAc;IACd,kBAAkB;IAClB,sBAAsB;;;ACVxB;;AAEG;;;;"}