@eui/components 19.1.1-snapshot-1740477848147 → 19.1.1-snapshot-1741264224607

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 (283) hide show
  1. package/directives/eui-clearable.directive.d.ts.map +1 -1
  2. package/directives/eui-loading.directive.d.ts.map +1 -1
  3. package/directives/eui-maxlength.directive.d.ts.map +1 -1
  4. package/directives/eui-scroll-handler.directive.d.ts.map +1 -1
  5. package/directives/eui-smooth-scroll.directive.d.ts.map +1 -1
  6. package/directives/eui-tooltip/eui-tooltip.directive.d.ts.map +1 -1
  7. package/docs/components/EuiAutocompleteComponent.html +1 -1
  8. package/docs/components/EuiAvatarBadgeComponent.html +52 -0
  9. package/docs/components/EuiAvatarComponent.html +109 -1
  10. package/docs/components/EuiAvatarIconComponent.html +16 -0
  11. package/docs/components/EuiAvatarImageComponent.html +42 -0
  12. package/docs/components/EuiAvatarListComponent.html +45 -0
  13. package/docs/components/EuiAvatarTextComponent.html +38 -0
  14. package/docs/components/EuiDisableContentComponent.html +167 -191
  15. package/docs/components/EuiDiscussionThreadComponent.html +77 -1
  16. package/docs/components/EuiDiscussionThreadItemComponent.html +118 -0
  17. package/docs/components/EuiIconToggleComponent.html +149 -0
  18. package/docs/components/EuiLanguageSelectorComponent.html +1 -5
  19. package/docs/components/EuiListComponent.html +130 -0
  20. package/docs/components/EuiListItemComponent.html +29 -0
  21. package/docs/components/EuiMessageBoxComponent.html +192 -2
  22. package/docs/components/EuiPageColumnComponent.html +0 -10
  23. package/docs/components/EuiPopoverComponent.html +119 -8
  24. package/docs/components/EuiTimebarComponent.html +87 -2
  25. package/docs/components/EuiWizardComponent.html +1 -1
  26. package/docs/dependencies.html +33 -33
  27. package/docs/directives/EuiPopoverArrowPositionDirective.html +29 -0
  28. package/docs/injectables/EuiMessageBoxService.html +49 -3
  29. package/docs/interfaces/EuiDiscussionThreadItem.html +61 -0
  30. package/docs/js/menu-wc.js +48 -50
  31. package/docs/js/menu-wc_es5.js +1 -1
  32. package/docs/js/search/search_index.js +2 -2
  33. package/docs/miscellaneous/typealiases.html +6 -0
  34. package/docs/miscellaneous/variables.html +59 -5
  35. package/docs/modules/EuiAvatarModule.html +25 -4
  36. package/docs/modules/EuiDisableContentModule.html +22 -4
  37. package/docs/modules/EuiDiscussionThreadModule.html +16 -1
  38. package/docs/modules/EuiIconToggleModule.html +23 -11
  39. package/docs/modules/EuiListModule.html +17 -2
  40. package/docs/modules/EuiMessageBoxModule.html +13 -1
  41. package/docs/modules/EuiPopoverModule.html +16 -1
  42. package/docs/modules/EuiTimebarModule.html +23 -14
  43. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  44. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts.map +1 -1
  45. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  46. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts +37 -0
  47. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts.map +1 -1
  48. package/eui-avatar/avatar-icon/avatar-icon.component.d.ts +18 -0
  49. package/eui-avatar/avatar-icon/avatar-icon.component.d.ts.map +1 -1
  50. package/eui-avatar/avatar-image/avatar-image.component.d.ts +26 -0
  51. package/eui-avatar/avatar-image/avatar-image.component.d.ts.map +1 -1
  52. package/eui-avatar/avatar-list/avatar-list.component.d.ts +30 -0
  53. package/eui-avatar/avatar-list/avatar-list.component.d.ts.map +1 -1
  54. package/eui-avatar/avatar-text/avatar-text.component.d.ts +35 -0
  55. package/eui-avatar/avatar-text/avatar-text.component.d.ts.map +1 -1
  56. package/eui-avatar/eui-avatar.component.d.ts +85 -1
  57. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  58. package/eui-avatar/eui-avatar.module.d.ts +33 -10
  59. package/eui-avatar/eui-avatar.module.d.ts.map +1 -1
  60. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  61. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  62. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  63. package/eui-button/eui-button.component.d.ts.map +1 -1
  64. package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
  65. package/eui-button-v2/eui-button-v2.component.d.ts.map +1 -1
  66. package/eui-card/components/eui-card-header/eui-card-header.component.d.ts.map +1 -1
  67. package/eui-card/eui-card.component.d.ts.map +1 -1
  68. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  69. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  70. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  71. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  72. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  73. package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
  74. package/eui-disable-content/eui-disable-content.component.d.ts +80 -13
  75. package/eui-disable-content/eui-disable-content.component.d.ts.map +1 -1
  76. package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts +65 -0
  77. package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts.map +1 -1
  78. package/eui-discussion-thread/eui-discussion-thread.component.d.ts +51 -0
  79. package/eui-discussion-thread/eui-discussion-thread.component.d.ts.map +1 -1
  80. package/eui-discussion-thread/eui-discussion-thread.module.d.ts +19 -1
  81. package/eui-discussion-thread/eui-discussion-thread.module.d.ts.map +1 -1
  82. package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts +45 -0
  83. package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts.map +1 -1
  84. package/eui-dropdown/dropdown-item/eui-dropdown-item.component.d.ts.map +1 -1
  85. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  86. package/eui-feedback-message/eui-feedback-message.component.d.ts.map +1 -1
  87. package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
  88. package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
  89. package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
  90. package/eui-growl/eui-growl.component.d.ts.map +1 -1
  91. package/eui-icon/eui-icon-svg.component.d.ts.map +1 -1
  92. package/eui-icon-button/eui-icon-button.component.d.ts.map +1 -1
  93. package/eui-icon-button-expander/eui-icon-button-expander.component.d.ts.map +1 -1
  94. package/eui-icon-input/eui-icon-input.component.d.ts.map +1 -1
  95. package/eui-icon-toggle/eui-icon-toggle.component.d.ts +96 -1
  96. package/eui-icon-toggle/eui-icon-toggle.component.d.ts.map +1 -1
  97. package/eui-icon-toggle/eui-icon-toggle.module.d.ts +19 -4
  98. package/eui-icon-toggle/eui-icon-toggle.module.d.ts.map +1 -1
  99. package/eui-input-number/eui-input-number.component.d.ts.map +1 -1
  100. package/eui-label/eui-label.component.d.ts.map +1 -1
  101. package/eui-language-selector/language-selector.component.d.ts +4 -2
  102. package/eui-language-selector/language-selector.component.d.ts.map +1 -1
  103. package/eui-list/eui-list-item/eui-list-item.component.d.ts +34 -0
  104. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  105. package/eui-list/eui-list.component.d.ts +56 -0
  106. package/eui-list/eui-list.component.d.ts.map +1 -1
  107. package/eui-list/eui-list.module.d.ts +18 -1
  108. package/eui-list/eui-list.module.d.ts.map +1 -1
  109. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  110. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  111. package/eui-message-box/eui-message-box.component.d.ts +148 -2
  112. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  113. package/eui-message-box/eui-message-box.module.d.ts +15 -1
  114. package/eui-message-box/eui-message-box.module.d.ts.map +1 -1
  115. package/eui-message-box/services/eui-message-box.service.d.ts +58 -3
  116. package/eui-message-box/services/eui-message-box.service.d.ts.map +1 -1
  117. package/eui-navbar/eui-navbar-item/eui-navbar-item.component.d.ts.map +1 -1
  118. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  119. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
  120. package/eui-page/components/eui-page-columns/eui-page-columns.component.d.ts.map +1 -1
  121. package/eui-page/components/eui-page-header/eui-page-header.component.d.ts.map +1 -1
  122. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  123. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts +32 -0
  124. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts.map +1 -1
  125. package/eui-popover/eui-popover.component.d.ts +119 -7
  126. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  127. package/eui-popover/eui-popover.module.d.ts +18 -1
  128. package/eui-popover/eui-popover.module.d.ts.map +1 -1
  129. package/eui-popover/models/eui-popover-position.model.d.ts +26 -0
  130. package/eui-popover/models/eui-popover-position.model.d.ts.map +1 -1
  131. package/eui-progress-circle/eui-progress-circle.component.d.ts.map +1 -1
  132. package/eui-select/eui-select-option.directive.d.ts.map +1 -1
  133. package/eui-select/eui-select.component.d.ts.map +1 -1
  134. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  135. package/eui-skeleton/eui-skeleton.component.d.ts.map +1 -1
  136. package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
  137. package/eui-table/eui-table.component.d.ts.map +1 -1
  138. package/eui-table/filter/eui-table-filter.component.d.ts.map +1 -1
  139. package/eui-table/selectable-header/eui-table-selectable-header.component.d.ts.map +1 -1
  140. package/eui-table/selectable-row/eui-table-selectable-row.component.d.ts.map +1 -1
  141. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
  142. package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
  143. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts.map +1 -1
  144. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts.map +1 -1
  145. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts.map +1 -1
  146. package/eui-tabs/eui-tab/eui-tab.component.d.ts.map +1 -1
  147. package/eui-tabs/eui-tab-content/eui-tab-content.component.d.ts.map +1 -1
  148. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  149. package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
  150. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  151. package/eui-timebar/eui-timebar-item.model.d.ts +20 -1
  152. package/eui-timebar/eui-timebar-item.model.d.ts.map +1 -1
  153. package/eui-timebar/eui-timebar.component.d.ts +83 -6
  154. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  155. package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
  156. package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
  157. package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
  158. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  159. package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
  160. package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
  161. package/eui-tree-list/toolbar/toolbar.component.d.ts.map +1 -1
  162. package/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  163. package/eui-user-profile/user-profile.component.d.ts.map +1 -1
  164. package/eui-wizard/eui-wizard-step.component.d.ts.map +1 -1
  165. package/eui-wizard/eui-wizard.component.d.ts +1 -0
  166. package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
  167. package/externals/eui-editor/counters/eui-editor-counters.component.d.ts.map +1 -1
  168. package/externals/quill/quill-editor.component.d.ts.map +1 -1
  169. package/fesm2022/eui-components-directives.mjs +70 -70
  170. package/fesm2022/eui-components-eui-accordion.mjs +13 -13
  171. package/fesm2022/eui-components-eui-alert.mjs +10 -10
  172. package/fesm2022/eui-components-eui-autocomplete.mjs +15 -14
  173. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  174. package/fesm2022/eui-components-eui-avatar.mjs +286 -36
  175. package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
  176. package/fesm2022/eui-components-eui-badge.mjs +7 -7
  177. package/fesm2022/eui-components-eui-block-content.mjs +7 -7
  178. package/fesm2022/eui-components-eui-block-document.mjs +7 -7
  179. package/fesm2022/eui-components-eui-breadcrumb.mjs +13 -13
  180. package/fesm2022/eui-components-eui-button-group.mjs +7 -7
  181. package/fesm2022/eui-components-eui-button-v2.mjs +7 -7
  182. package/fesm2022/eui-components-eui-button.mjs +7 -7
  183. package/fesm2022/eui-components-eui-card.mjs +49 -49
  184. package/fesm2022/eui-components-eui-chip-group.mjs +7 -7
  185. package/fesm2022/eui-components-eui-chip-list.mjs +13 -13
  186. package/fesm2022/eui-components-eui-chip.mjs +7 -7
  187. package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
  188. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  189. package/fesm2022/eui-components-eui-dashboard-card.mjs +13 -13
  190. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  191. package/fesm2022/eui-components-eui-date-range-selector.mjs +10 -10
  192. package/fesm2022/eui-components-eui-datepicker.mjs +19 -19
  193. package/fesm2022/eui-components-eui-dialog.mjs +19 -19
  194. package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
  195. package/fesm2022/eui-components-eui-disable-content.mjs +113 -39
  196. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  197. package/fesm2022/eui-components-eui-discussion-thread.mjs +113 -12
  198. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  199. package/fesm2022/eui-components-eui-dropdown.mjs +20 -20
  200. package/fesm2022/eui-components-eui-feedback-message.mjs +8 -8
  201. package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
  202. package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
  203. package/fesm2022/eui-components-eui-file-upload.mjs +19 -19
  204. package/fesm2022/eui-components-eui-growl.mjs +7 -7
  205. package/fesm2022/eui-components-eui-icon-button-expander.mjs +7 -7
  206. package/fesm2022/eui-components-eui-icon-button.mjs +7 -7
  207. package/fesm2022/eui-components-eui-icon-color.mjs +7 -7
  208. package/fesm2022/eui-components-eui-icon-input.mjs +7 -7
  209. package/fesm2022/eui-components-eui-icon-state.mjs +7 -7
  210. package/fesm2022/eui-components-eui-icon-toggle.mjs +106 -10
  211. package/fesm2022/eui-components-eui-icon-toggle.mjs.map +1 -1
  212. package/fesm2022/eui-components-eui-icon.mjs +7 -7
  213. package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
  214. package/fesm2022/eui-components-eui-input-group.mjs +13 -13
  215. package/fesm2022/eui-components-eui-input-number.mjs +10 -10
  216. package/fesm2022/eui-components-eui-input-radio.mjs +7 -7
  217. package/fesm2022/eui-components-eui-input-text.mjs +7 -7
  218. package/fesm2022/eui-components-eui-label.mjs +8 -8
  219. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  220. package/fesm2022/eui-components-eui-language-selector.mjs +23 -12
  221. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  222. package/fesm2022/eui-components-eui-list.mjs +116 -15
  223. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  224. package/fesm2022/eui-components-eui-menu.mjs +10 -10
  225. package/fesm2022/eui-components-eui-message-box.mjs +208 -20
  226. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  227. package/fesm2022/eui-components-eui-navbar.mjs +10 -10
  228. package/fesm2022/eui-components-eui-overlay.mjs +19 -19
  229. package/fesm2022/eui-components-eui-page.mjs +61 -62
  230. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  231. package/fesm2022/eui-components-eui-paginator.mjs +7 -7
  232. package/fesm2022/eui-components-eui-popover.mjs +194 -20
  233. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  234. package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
  235. package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
  236. package/fesm2022/eui-components-eui-select.mjs +19 -19
  237. package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
  238. package/fesm2022/eui-components-eui-skeleton.mjs +7 -7
  239. package/fesm2022/eui-components-eui-slide-toggle.mjs +8 -8
  240. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  241. package/fesm2022/eui-components-eui-split-button.mjs +7 -7
  242. package/fesm2022/eui-components-eui-table-v2.mjs +34 -34
  243. package/fesm2022/eui-components-eui-table.mjs +34 -34
  244. package/fesm2022/eui-components-eui-tabs.mjs +24 -24
  245. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  246. package/fesm2022/eui-components-eui-textarea.mjs +10 -10
  247. package/fesm2022/eui-components-eui-timebar.mjs +82 -10
  248. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  249. package/fesm2022/eui-components-eui-timeline.mjs +10 -10
  250. package/fesm2022/eui-components-eui-timepicker.mjs +7 -7
  251. package/fesm2022/eui-components-eui-tree-list.mjs +25 -25
  252. package/fesm2022/eui-components-eui-tree.mjs +21 -21
  253. package/fesm2022/eui-components-eui-user-profile.mjs +16 -16
  254. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  255. package/fesm2022/eui-components-eui-wizard.mjs +16 -15
  256. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  257. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  258. package/fesm2022/eui-components-externals-eui-editor.mjs +28 -28
  259. package/fesm2022/eui-components-externals-quill.mjs +10 -10
  260. package/fesm2022/eui-components-layout.mjs +183 -182
  261. package/fesm2022/eui-components-layout.mjs.map +1 -1
  262. package/fesm2022/eui-components-pipes.mjs +14 -14
  263. package/fesm2022/eui-components-shared.mjs +6 -6
  264. package/fesm2022/eui-components.mjs +4 -4
  265. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
  266. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  267. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts.map +1 -1
  268. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
  269. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  270. package/layout/eui-footer/footer.component.d.ts.map +1 -1
  271. package/layout/eui-header/header-user-profile/header-user-profile.component.d.ts.map +1 -1
  272. package/layout/eui-notifications/eui-notification-item.component.d.ts.map +1 -1
  273. package/layout/eui-notifications/eui-notifications.component.d.ts.map +1 -1
  274. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts.map +1 -1
  275. package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -1
  276. package/layout/eui-toolbar/toolbar-items/toolbar-items.component.d.ts.map +1 -1
  277. package/layout/eui-toolbar/toolbar-navbar-item/toolbar-navbar-item.component.d.ts.map +1 -1
  278. package/layout/eui-toolbar/toolbar-search/toolbar-search.component.d.ts.map +1 -1
  279. package/layout/eui-toolbar/toolbar-selector/toolbar-selector.component.d.ts.map +1 -1
  280. package/layout/eui-toolbar/toolbar.component.d.ts.map +1 -1
  281. package/package.json +3 -3
  282. package/shared/base/base-states.directive.d.ts.map +1 -1
  283. package/shared/input.directive.d.ts.map +1 -1
@@ -10,7 +10,7 @@ import { ConnectionPositionPair, OverlayModule } from '@angular/cdk/overlay';
10
10
  import * as i3 from '@angular/common';
11
11
  import { DOCUMENT, CommonModule } from '@angular/common';
12
12
  import * as i4 from '@eui/components/eui-button';
13
- import { EuiButtonModule } from '@eui/components/eui-button';
13
+ import { EuiButtonComponent } from '@eui/components/eui-button';
14
14
  import * as i5 from '@eui/components/eui-icon';
15
15
  import { EuiIconModule } from '@eui/components/eui-icon';
16
16
  import * as i6 from '@angular/cdk/a11y';
@@ -19,10 +19,33 @@ import * as i7 from '@angular/cdk/observers';
19
19
  import { ObserversModule } from '@angular/cdk/observers';
20
20
  import { EuiIconButtonModule } from '@eui/components/eui-icon-button';
21
21
 
22
+ /**
23
+ * Position configuration for a popover appearing above its origin element.
24
+ * Centers the popover horizontally relative to the origin.
25
+ */
22
26
  const TOP = new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, 0, 0, ['eui-popover-position', 'eui-popover-position--top']);
27
+ /**
28
+ * Position configuration for a popover appearing below its origin element.
29
+ * Centers the popover horizontally relative to the origin.
30
+ */
23
31
  const BOTTOM = new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, 0, 0, ['eui-popover-position', 'eui-popover-position--bottom']);
32
+ /**
33
+ * Position configuration for a popover appearing to the left of its origin element.
34
+ * Centers the popover vertically relative to the origin.
35
+ */
24
36
  const LEFT = new ConnectionPositionPair({ originX: 'start', originY: 'center' }, { overlayX: 'end', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--left']);
37
+ /**
38
+ * Position configuration for a popover appearing to the right of its origin element.
39
+ * Centers the popover vertically relative to the origin.
40
+ */
25
41
  const RIGHT = new ConnectionPositionPair({ originX: 'end', originY: 'center' }, { overlayX: 'start', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--right']);
42
+ /**
43
+ * Converts a ConnectedOverlayPositionChange object to an EuiPopoverPosition string.
44
+ * Used to determine which predefined position the overlay has settled on.
45
+ *
46
+ * @param connectionPair - The position change event from the CDK overlay
47
+ * @returns The string representation of the popover position ('top', 'right', 'bottom', 'left')
48
+ */
26
49
  const getPosition = ({ connectionPair }) => {
27
50
  switch (connectionPair) {
28
51
  case TOP:
@@ -36,6 +59,31 @@ const getPosition = ({ connectionPair }) => {
36
59
  }
37
60
  };
38
61
 
62
+ /**
63
+ * @description
64
+ * Directive that positions an arrow element for a popover relative to its origin element.
65
+ *
66
+ * This directive calculates and applies the appropriate positioning style to ensure
67
+ * the arrow correctly points to the origin element regardless of the popover's position.
68
+ * It adjusts arrow placement dynamically based on the position strategy ('top', 'bottom',
69
+ * 'left', or 'right') and the dimensions and position of the origin element.
70
+ *
71
+ * @example
72
+ * // Basic usage in an arrow element inside a popover:
73
+ * <div class="popover-arrow"
74
+ * [euiPopoverArrowPosition]="positionAndRect$">
75
+ * </div>
76
+ *
77
+ * @example
78
+ * // In the component class:
79
+ * // Position and rect as an Observable
80
+ * positionAndRect$ = new BehaviorSubject<[EuiPopoverPosition, DOMRect]>(['bottom', originRect]);
81
+ *
82
+ * // Update when position changes
83
+ * updatePosition(position: EuiPopoverPosition, rect: DOMRect) {
84
+ * this.positionAndRect$.next([position, rect]);
85
+ * }
86
+ */
39
87
  class EuiPopoverArrowPositionDirective {
40
88
  constructor(renderer, elementRef, document) {
41
89
  this.renderer = renderer;
@@ -74,10 +122,10 @@ class EuiPopoverArrowPositionDirective {
74
122
  }
75
123
  return '';
76
124
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverArrowPositionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
78
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.7", type: EuiPopoverArrowPositionDirective, isStandalone: false, selector: "[euiPopoverArrowPosition]", inputs: { position$: ["euiPopoverArrowPosition", "position$"] }, ngImport: i0 }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverArrowPositionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
126
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: EuiPopoverArrowPositionDirective, isStandalone: false, selector: "[euiPopoverArrowPosition]", inputs: { position$: ["euiPopoverArrowPosition", "position$"] }, ngImport: i0 }); }
79
127
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverArrowPositionDirective, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverArrowPositionDirective, decorators: [{
81
129
  type: Directive,
82
130
  args: [{
83
131
  selector: '[euiPopoverArrowPosition]',
@@ -91,20 +139,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
91
139
  args: ['euiPopoverArrowPosition']
92
140
  }] } });
93
141
 
142
+ /**
143
+ * @description
144
+ * A flexible popover component that displays content in an overlay positioned relative to an origin element.
145
+ *
146
+ * The popover can be positioned at four different positions (top, right, bottom, left) relative to the
147
+ * origin element, with automatic fallback positions if the preferred position doesn't fit in the viewport.
148
+ * It supports various visual styles, dismissal behaviors, and size variants.
149
+ *
150
+ * @example
151
+ * // Basic usage with a trigger element:
152
+ * <button #triggerButton (click)="popover.openPopover(triggerButton)">Open Popover</button>
153
+ * <eui-popover #popover>
154
+ * <div>Popover content</div>
155
+ * </eui-popover>
156
+ *
157
+ * @example
158
+ * // With custom configuration:
159
+ * <eui-popover
160
+ * position="right"
161
+ * type="colored-header"
162
+ * [hasBackDrop]="true"
163
+ * [hasCloseButton]="false"
164
+ * (popoverOpen)="onPopoverOpen()"
165
+ * title="Popover Title">
166
+ * <div>Popover content</div>
167
+ * </eui-popover>
168
+ */
94
169
  class EuiPopoverComponent {
95
170
  constructor(overlay, viewContainerRef, scrollDispatcher, baseStatesDirective) {
96
171
  this.overlay = overlay;
97
172
  this.viewContainerRef = viewContainerRef;
98
173
  this.scrollDispatcher = scrollDispatcher;
99
174
  this.baseStatesDirective = baseStatesDirective;
175
+ /**
176
+ * Determines the preferred placement of the popover relative to its origin element.
177
+ * The component will attempt to use this position first, falling back to alternatives
178
+ * if there's not enough space in the viewport.
179
+ *
180
+ * @default 'bottom'
181
+ */
100
182
  this.position = 'bottom';
183
+ /**
184
+ * Visual styling variant for the popover.
185
+ * - 'default': Standard popover with subtle border and drop shadow
186
+ * - 'flat': Popover without shadows, using only border for definition
187
+ * - 'colored-header': Popover with an accent-colored header area
188
+ * - 'colored-solid': Popover with accent color applied to the entire component
189
+ *
190
+ * @default 'default'
191
+ */
101
192
  this.type = 'default';
193
+ /**
194
+ * Custom width for the popover.
195
+ * Can be specified in any valid CSS unit (px, %, em, etc).
196
+ * When null, the popover width is determined by its content.
197
+ *
198
+ * @default null
199
+ */
102
200
  this.width = null;
201
+ /**
202
+ * Whether to show a semi-transparent backdrop behind the popover.
203
+ * When true, creates a visual overlay that dims the rest of the UI.
204
+ *
205
+ * @default false
206
+ */
103
207
  this.hasBackDrop = false;
208
+ /**
209
+ * Whether to show a close button in the top-right corner of the popover.
210
+ * When clicked, the close button will dismiss the popover.
211
+ *
212
+ * @default true
213
+ */
104
214
  this.hasCloseButton = true;
215
+ /**
216
+ * Whether the popover can be dismissed by clicking outside its boundaries.
217
+ * When false, the popover will remain open until explicitly closed via code
218
+ * or by clicking the close button (if available).
219
+ *
220
+ * @default true
221
+ */
105
222
  this.isDismissable = true;
223
+ /**
224
+ * Event emitted when a click occurs outside the popover boundaries.
225
+ * Only emitted when isDismissable is true.
226
+ */
106
227
  this.outsideClick = new EventEmitter();
228
+ /**
229
+ * Event emitted when the popover is opened.
230
+ * Fires after the popover content has been attached to the DOM and positioned.
231
+ */
107
232
  this.popoverOpen = new EventEmitter();
233
+ /**
234
+ * Event emitted when the popover is closed.
235
+ * Fires after the popover content has been removed from the DOM.
236
+ */
108
237
  this.popoverClose = new EventEmitter();
109
238
  this.destroy$ = new Subject();
110
239
  this.isOpen$ = new BehaviorSubject(false);
@@ -145,7 +274,7 @@ class EuiPopoverComponent {
145
274
  * @usageNotes
146
275
  * ```html
147
276
  * <eui-popover #popover>
148
- * \@if (popover.isOpen) {
277
+ * @if (popover.isOpen) {
149
278
  * <my-component></my-component>
150
279
  * }
151
280
  * </eui-popover>
@@ -155,15 +284,21 @@ class EuiPopoverComponent {
155
284
  get isOpen() {
156
285
  return this.isOpen$.value;
157
286
  }
287
+ /**
288
+ * Updates the position strategy when content changes.
289
+ * Recalculates and updates the overlay position to handle content size changes.
290
+ */
158
291
  onContentChange() {
159
292
  this.positionStrategy = this.getPositionStrategy();
160
293
  this.positionStrategyUpdate$.next();
161
294
  this.overlayRef.updatePositionStrategy(this.positionStrategy);
162
295
  }
163
296
  /**
164
- * Open a popover
297
+ * Opens the popover relative to the provided origin element.
298
+ * Sets up scroll monitoring, position strategy, and attaches the popover content to the overlay.
299
+ * Emits the popoverOpen event when complete.
165
300
  *
166
- * @param origin Origin of the popover position
301
+ * @param origin - Reference to the element that triggers the popover
167
302
  */
168
303
  openPopover(origin) {
169
304
  if (!this.isOpen) {
@@ -184,6 +319,7 @@ class EuiPopoverComponent {
184
319
  panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),
185
320
  });
186
321
  this.overlayRef.attach(this.templatePortal);
322
+ document.querySelector('.cdk-overlay-container')?.classList.add('eui-19');
187
323
  this.positionStrategy = positionStrategy;
188
324
  this.positionStrategyUpdate$.next();
189
325
  this.overlayRef
@@ -200,7 +336,8 @@ class EuiPopoverComponent {
200
336
  }
201
337
  }
202
338
  /**
203
- * Close a popover
339
+ * Closes the popover.
340
+ * Cleans up subscriptions, disposes the overlay, and emits the popoverClose event.
204
341
  */
205
342
  closePopover() {
206
343
  this.scrollDispatcherSubscription.unsubscribe();
@@ -210,16 +347,24 @@ class EuiPopoverComponent {
210
347
  this.popoverClose.emit();
211
348
  }
212
349
  /**
213
- * Reacts on the Esc keydown event to close the popup. Can be used as alternative to the close icon button,
214
- * or as the main way to close the popup when hasCloseButton is false
350
+ * Handles keyboard events to allow closing the popover with the Escape key.
351
+ * Can be used as an alternative to the close button or when hasCloseButton is false.
215
352
  *
216
- * @param event The key event pressed
353
+ * @param event - The keyboard event
217
354
  */
218
355
  onKeyDown(event) {
219
356
  if (event.key === 'Escape') {
220
357
  this.closePopover();
221
358
  }
222
359
  }
360
+ /**
361
+ * Checks whether the origin element is currently visible within the scrollable parent's viewport.
362
+ * Used to determine if the popover should remain open during scroll events.
363
+ *
364
+ * @param origin - The HTML element that triggers the popover
365
+ * @param scrollableParent - The scrollable container element
366
+ * @returns True if the origin element is visible in the viewport, otherwise false
367
+ */
223
368
  isVisible(origin, scrollableParent) {
224
369
  const originY = origin.getBoundingClientRect().y;
225
370
  const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);
@@ -227,6 +372,13 @@ class EuiPopoverComponent {
227
372
  return ((originY > 0 && originY < scrollableParentHeight) ||
228
373
  (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight));
229
374
  }
375
+ /**
376
+ * Creates and returns a position strategy for the overlay.
377
+ * Configures the overlay to be positioned relative to the origin element
378
+ * with fallback positions if the preferred one doesn't fit.
379
+ *
380
+ * @returns A flexible connected position strategy configured for the popover
381
+ */
230
382
  getPositionStrategy() {
231
383
  return this.overlay
232
384
  .position()
@@ -235,6 +387,11 @@ class EuiPopoverComponent {
235
387
  .withFlexibleDimensions(false)
236
388
  .withLockedPosition(true);
237
389
  }
390
+ /**
391
+ * Sets up the position stream for the arrow positioning directive.
392
+ * Creates an observable that emits the current popover position and the origin element's bounding rectangle
393
+ * whenever the popover's position changes.
394
+ */
238
395
  setPositionStream() {
239
396
  this.position$ = this.positionStrategyUpdate$.pipe(switchMap(() => this.positionStrategy.positionChanges), map(getPosition), distinctUntilChanged(), map((position) => {
240
397
  const rect = this.origin.nativeElement ?
@@ -243,10 +400,10 @@ class EuiPopoverComponent {
243
400
  return [position, rect];
244
401
  }));
245
402
  }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: EuiPopoverComponent, isStandalone: false, selector: "eui-popover", inputs: { title: "title", position: "position", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-19\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-19 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-19 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow,.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner,.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner,.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-19 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-19 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-19 .eui-popover__container{width:100%}.eui-19 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-19 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-19 .eui-popover__content{padding:var(--eui-s-xs)}.eui-19 .eui-popover--has-custom-width{width:100%!important}.eui-19 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-19 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-19 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-19 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-19 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-19 .eui-popover--size-auto{max-width:none;width:auto}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-19 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-19 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-19 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-19 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-19 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-19 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-19 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-19 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-19 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
404
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiPopoverComponent, isStandalone: false, selector: "eui-popover", inputs: { title: "title", position: "position", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeAuto", "euiSizeAuto", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-19 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;color:var(--eui-c-neutral-lighter);display:none;height:0;position:absolute;width:0}.eui-19 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow,.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner,.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner,.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-19 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-19 .eui-popover{display:flex;width:25rem}.eui-19 .eui-popover__container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:100%}.eui-19 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-19 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-19 .eui-popover__content{padding:var(--eui-s-xs)}.eui-19 .eui-popover--has-custom-width{width:100%!important}.eui-19 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-19 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-19 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-19 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-19 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-19 .eui-popover--size-auto{max-width:none;width:auto}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-19 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-19 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-19 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-19 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-19 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-19 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-19 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-19 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-19 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
248
405
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverComponent, decorators: [{
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverComponent, decorators: [{
250
407
  type: Component,
251
408
  args: [{ selector: 'eui-popover', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, hostDirectives: [
252
409
  {
@@ -261,7 +418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
261
418
  'euiSizeVariant',
262
419
  ],
263
420
  },
264
- ], template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-19\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-19 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-19 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow,.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner,.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner,.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-19 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-19 .eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:25rem}.eui-19 .eui-popover__container{width:100%}.eui-19 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-19 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-19 .eui-popover__content{padding:var(--eui-s-xs)}.eui-19 .eui-popover--has-custom-width{width:100%!important}.eui-19 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-19 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-19 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-19 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-19 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-19 .eui-popover--size-auto{max-width:none;width:auto}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-19 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-19 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-19 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-19 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-19 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-19 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-19 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-19 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-19 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"] }]
421
+ ], template: "<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-19 .eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;color:var(--eui-c-neutral-lighter);display:none;height:0;position:absolute;width:0}.eui-19 .eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:\" \";display:block;height:0;position:absolute;width:0}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow,.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{display:block}.eui-19 .eui-popover-position--top .eui-popover__arrow,.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner,.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-19 .eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-19 .eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-19 .eui-popover-position--left .eui-popover__arrow,.eui-19 .eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner,.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-19 .eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-19 .eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-19 .eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-19 .eui-popover{display:flex;width:25rem}.eui-19 .eui-popover__container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);width:100%}.eui-19 .eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-19 .eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-19 .eui-popover__content{padding:var(--eui-s-xs)}.eui-19 .eui-popover--has-custom-width{width:100%!important}.eui-19 .eui-popover--size-s{max-width:12rem;width:12rem}.eui-19 .eui-popover--size-m{max-width:25rem;width:25rem}.eui-19 .eui-popover--size-l{max-width:35rem;width:35rem}.eui-19 .eui-popover--size-xl{max-width:50rem;width:50rem}.eui-19 .eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-19 .eui-popover--size-auto{max-width:none;width:auto}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-popover__container--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-19 .eui-popover__container--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-19 .eui-popover__container--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-19 .eui-popover__container--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-19 .eui-popover__container--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-header .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-19 .eui-popover__container--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-19 .eui-popover__container--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-19 .eui-popover__container--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-19 .eui-popover__container--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-19 .eui-popover__container--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-title,.eui-19 .eui-popover__container--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close .eui-icon-svg>svg{color:var(--eui-c-white)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:hover .eui-icon-svg>svg,.eui-19 .eui-popover__container--colored-solid .eui-popover__header-close:active .eui-icon-svg>svg{color:var(--eui-c-neutral)!important}.eui-19 .eui-popover__container--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n"] }]
265
422
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.ScrollDispatcher }, { type: i2.BaseStatesDirective }], propDecorators: { title: [{
266
423
  type: Input
267
424
  }], position: [{
@@ -290,15 +447,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
290
447
  args: ['templatePortalContent']
291
448
  }] } });
292
449
 
450
+ /**
451
+ * Module that provides the EUI Popover component and related directives.
452
+ *
453
+ * This module exports the EuiPopoverComponent which allows for creating popover overlays
454
+ * positioned relative to trigger elements. Popovers can be configured with various
455
+ * positioning options, visual styles, and dismissal behaviors.
456
+ *
457
+ * @example
458
+ * import { EuiPopoverModule } from '@eui/components/eui-popover';
459
+ *
460
+ * @NgModule({
461
+ * imports: [
462
+ * EuiPopoverModule
463
+ * ]
464
+ * })
465
+ * export class MyModule {}
466
+ */
293
467
  class EuiPopoverModule {
294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
295
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverModule, declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective], imports: [CommonModule, OverlayModule, EuiButtonModule, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule], exports: [EuiPopoverComponent] }); }
296
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverModule, imports: [CommonModule, OverlayModule, EuiButtonModule, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule] }); }
468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
469
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverModule, declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective], imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule], exports: [EuiPopoverComponent] }); }
470
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverModule, imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule] }); }
297
471
  }
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiPopoverModule, decorators: [{
472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiPopoverModule, decorators: [{
299
473
  type: NgModule,
300
474
  args: [{
301
- imports: [CommonModule, OverlayModule, EuiButtonModule, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],
475
+ imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],
302
476
  declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],
303
477
  exports: [EuiPopoverComponent],
304
478
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-popover.mjs","sources":["../../eui-popover/models/eui-popover-position.model.ts","../../eui-popover/directives/eui-popover-arrow-position.directive.ts","../../eui-popover/eui-popover.component.ts","../../eui-popover/eui-popover.component.html","../../eui-popover/eui-popover.module.ts","../../eui-popover/eui-components-eui-popover.ts"],"sourcesContent":["import { ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport type EuiPopoverPosition = 'top' | 'right' | 'bottom' | 'left';\n\nexport const TOP = new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, 0, 0, ['eui-popover-position', 'eui-popover-position--top']);\nexport const BOTTOM = new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, 0, 0, ['eui-popover-position', 'eui-popover-position--bottom']);\nexport const LEFT = new ConnectionPositionPair({ originX: 'start', originY: 'center' }, { overlayX: 'end', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--left']);\nexport const RIGHT = new ConnectionPositionPair({ originX: 'end', originY: 'center' }, { overlayX: 'start', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--right']);\n\nexport const getPosition = ({ connectionPair }: ConnectedOverlayPositionChange): EuiPopoverPosition => {\n switch (connectionPair) {\n case TOP:\n return 'top';\n case BOTTOM:\n return 'bottom';\n case LEFT:\n return 'left';\n case RIGHT:\n return 'right';\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EuiPopoverPosition } from '../models/eui-popover-position.model';\n\n@Directive({\n selector: '[euiPopoverArrowPosition]',\n standalone: false,\n})\nexport class EuiPopoverArrowPositionDirective implements OnInit, OnDestroy {\n @Input('euiPopoverArrowPosition')\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n private destroy$: Subject<void> = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n ngOnInit(): void {\n this.position$.pipe(takeUntil(this.destroy$)).subscribe(([position, originRect]) => {\n this.renderer.setProperty(this.elementRef.nativeElement, 'style', this.getStyle(position, originRect));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getStyle(position: EuiPopoverPosition, originRect: DOMRect): string {\n const arrowRect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (position === 'left' || position === 'right') {\n const verticalDiff: number =\n Math.floor(arrowRect.top + arrowRect.height / 2) - Math.floor(originRect.top + originRect.height / 2);\n\n if (verticalDiff > 0) {\n return `top: ${originRect.top + originRect.height / 2}px`;\n } else if (verticalDiff < 0) {\n return `top: unset; bottom: ${\n this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height\n }px`;\n }\n }\n if (position === 'top' || position === 'bottom') {\n const horizontalDiff: number =\n Math.floor(arrowRect.left + arrowRect.width / 2) - Math.floor(originRect.left + originRect.width / 2);\n\n if (horizontalDiff > 0) {\n return `left: ${originRect.left + originRect.width / 2}px`;\n } else if (horizontalDiff < 0) {\n return `left: unset; right: ${\n this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width\n }px`;\n }\n }\n return '';\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Overlay,\n OverlayRef,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n ScrollDispatcher,\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiPopoverPosition, BOTTOM, LEFT, RIGHT, TOP, getPosition } from './models/eui-popover-position.model';\n\n@Component({\n selector: 'eui-popover',\n templateUrl: './eui-popover.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiSize2XL',\n 'euiSizeAuto',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiPopoverComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n @Input() title: string;\n @Input() position: EuiPopoverPosition = 'bottom';\n @Input() type: 'default' | 'flat' | 'colored-header' | 'colored-solid' = 'default';\n @Input() width: string = null;\n @Input({ transform: booleanAttribute }) hasBackDrop = false;\n @Input({ transform: booleanAttribute }) hasCloseButton = true;\n @Input({ transform: booleanAttribute }) isDismissable = true;\n\n @Output() outsideClick = new EventEmitter();\n @Output() popoverOpen = new EventEmitter();\n @Output() popoverClose = new EventEmitter();\n\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private origin: ElementRef;\n private preferredPositons: ConnectionPositionPair[] = [BOTTOM, TOP, LEFT, RIGHT];\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private positionStrategyUpdate$: Subject<void> = new Subject();\n\n constructor(private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private baseStatesDirective: BaseStatesDirective){\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (this.position === 'top') {\n this.preferredPositons = [TOP, BOTTOM, LEFT, RIGHT];\n } else if (this.position === 'right') {\n this.preferredPositons = [RIGHT, LEFT, TOP, BOTTOM];\n } else if (this.position === 'left') {\n this.preferredPositons = [LEFT, RIGHT, TOP, BOTTOM];\n } else {\n this.preferredPositons = [BOTTOM, TOP, LEFT, RIGHT];\n }\n }\n\n ngOnInit(): void {\n this.setPositionStream();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n /**\n * Whether the eui-popover is open.\n *\n * @usageNotes\n * ```html\n * <eui-popover #popover>\n * \\@if (popover.isOpen) {\n * <my-component></my-component>\n * }\n * </eui-popover>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n public onContentChange(): void {\n this.positionStrategy = this.getPositionStrategy();\n this.positionStrategyUpdate$.next();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n\n /**\n * Open a popover\n *\n * @param origin Origin of the popover position\n */\n public openPopover(origin: ElementRef): void {\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(origin as unknown as HTMLElement, scrollableParent)) {\n this.closePopover();\n }\n });\n\n this.origin = origin;\n const positionStrategy = this.getPositionStrategy();\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n width: this.width,\n panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),\n });\n this.overlayRef.attach(this.templatePortal);\n\n this.positionStrategy = positionStrategy;\n this.positionStrategyUpdate$.next();\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isDismissable) {\n this.outsideClick.emit();\n this.closePopover();\n }\n });\n\n this.isOpen$.next(true);\n this.popoverOpen.emit();\n }\n }\n\n /**\n * Close a popover\n */\n public closePopover(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.isOpen$.next(false);\n this.popoverClose.emit();\n }\n\n /**\n * Reacts on the Esc keydown event to close the popup. Can be used as alternative to the close icon button,\n * or as the main way to close the popup when hasCloseButton is false\n *\n * @param event The key event pressed\n */\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closePopover();\n }\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions(this.preferredPositons)\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n private setPositionStream(): void {\n this.position$ = this.positionStrategyUpdate$.pipe(\n switchMap(() => this.positionStrategy.positionChanges),\n map(getPosition),\n distinctUntilChanged(),\n map((position) => {\n const rect = this.origin.nativeElement ?\n this.origin.nativeElement.getBoundingClientRect() :\n (this.origin as unknown as HTMLElement).getBoundingClientRect();\n return [position, rect];\n }),\n );\n }\n}\n","<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }} eui-19\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiPopoverComponent } from './eui-popover.component';\nimport { EuiPopoverArrowPositionDirective } from './directives/eui-popover-arrow-position.directive';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, EuiButtonModule, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],\n declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],\n exports: [EuiPopoverComponent],\n})\nexport class EuiPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i8.EuiPopoverArrowPositionDirective"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-popover.mjs","sources":["../../eui-popover/models/eui-popover-position.model.ts","../../eui-popover/directives/eui-popover-arrow-position.directive.ts","../../eui-popover/eui-popover.component.ts","../../eui-popover/eui-popover.component.html","../../eui-popover/eui-popover.module.ts","../../eui-popover/eui-components-eui-popover.ts"],"sourcesContent":["import { ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\n\n/**\n * Represents the four possible positions for a popover element.\n */\nexport type EuiPopoverPosition = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * Position configuration for a popover appearing above its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const TOP = new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--top'],\n);\n\n/**\n * Position configuration for a popover appearing below its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const BOTTOM = new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--bottom'],\n);\n\n/**\n * Position configuration for a popover appearing to the left of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const LEFT = new ConnectionPositionPair(\n { originX: 'start', originY: 'center' },\n { overlayX: 'end', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--left'],\n);\n\n/**\n * Position configuration for a popover appearing to the right of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const RIGHT = new ConnectionPositionPair(\n { originX: 'end', originY: 'center' },\n { overlayX: 'start', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--right'],\n);\n\n/**\n * Converts a ConnectedOverlayPositionChange object to an EuiPopoverPosition string.\n * Used to determine which predefined position the overlay has settled on.\n *\n * @param connectionPair - The position change event from the CDK overlay\n * @returns The string representation of the popover position ('top', 'right', 'bottom', 'left')\n */\nexport const getPosition = ({ connectionPair }: ConnectedOverlayPositionChange): EuiPopoverPosition => {\n switch (connectionPair) {\n case TOP:\n return 'top';\n case BOTTOM:\n return 'bottom';\n case LEFT:\n return 'left';\n case RIGHT:\n return 'right';\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EuiPopoverPosition } from '../models/eui-popover-position.model';\n\n/**\n * @description\n * Directive that positions an arrow element for a popover relative to its origin element.\n *\n * This directive calculates and applies the appropriate positioning style to ensure\n * the arrow correctly points to the origin element regardless of the popover's position.\n * It adjusts arrow placement dynamically based on the position strategy ('top', 'bottom',\n * 'left', or 'right') and the dimensions and position of the origin element.\n *\n * @example\n * // Basic usage in an arrow element inside a popover:\n * <div class=\"popover-arrow\"\n * [euiPopoverArrowPosition]=\"positionAndRect$\">\n * </div>\n *\n * @example\n * // In the component class:\n * // Position and rect as an Observable\n * positionAndRect$ = new BehaviorSubject<[EuiPopoverPosition, DOMRect]>(['bottom', originRect]);\n *\n * // Update when position changes\n * updatePosition(position: EuiPopoverPosition, rect: DOMRect) {\n * this.positionAndRect$.next([position, rect]);\n * }\n */\n@Directive({\n selector: '[euiPopoverArrowPosition]',\n standalone: false,\n})\nexport class EuiPopoverArrowPositionDirective implements OnInit, OnDestroy {\n /**\n * Observable that emits a tuple containing the popover position strategy\n * and the DOMRect of the origin element.\n *\n * The directive uses this information to calculate the appropriate\n * position for the arrow element.\n */\n @Input('euiPopoverArrowPosition')\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n private destroy$: Subject<void> = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n ngOnInit(): void {\n this.position$.pipe(takeUntil(this.destroy$)).subscribe(([position, originRect]) => {\n this.renderer.setProperty(this.elementRef.nativeElement, 'style', this.getStyle(position, originRect));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getStyle(position: EuiPopoverPosition, originRect: DOMRect): string {\n const arrowRect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (position === 'left' || position === 'right') {\n const verticalDiff: number =\n Math.floor(arrowRect.top + arrowRect.height / 2) - Math.floor(originRect.top + originRect.height / 2);\n\n if (verticalDiff > 0) {\n return `top: ${originRect.top + originRect.height / 2}px`;\n } else if (verticalDiff < 0) {\n return `top: unset; bottom: ${\n this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height\n }px`;\n }\n }\n if (position === 'top' || position === 'bottom') {\n const horizontalDiff: number =\n Math.floor(arrowRect.left + arrowRect.width / 2) - Math.floor(originRect.left + originRect.width / 2);\n\n if (horizontalDiff > 0) {\n return `left: ${originRect.left + originRect.width / 2}px`;\n } else if (horizontalDiff < 0) {\n return `left: unset; right: ${\n this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width\n }px`;\n }\n }\n return '';\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Overlay,\n OverlayRef,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n ScrollDispatcher,\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiPopoverPosition, BOTTOM, LEFT, RIGHT, TOP, getPosition } from './models/eui-popover-position.model';\n\n/**\n * @description\n * A flexible popover component that displays content in an overlay positioned relative to an origin element.\n *\n * The popover can be positioned at four different positions (top, right, bottom, left) relative to the\n * origin element, with automatic fallback positions if the preferred position doesn't fit in the viewport.\n * It supports various visual styles, dismissal behaviors, and size variants.\n *\n * @example\n * // Basic usage with a trigger element:\n * <button #triggerButton (click)=\"popover.openPopover(triggerButton)\">Open Popover</button>\n * <eui-popover #popover>\n * <div>Popover content</div>\n * </eui-popover>\n *\n * @example\n * // With custom configuration:\n * <eui-popover\n * position=\"right\"\n * type=\"colored-header\"\n * [hasBackDrop]=\"true\"\n * [hasCloseButton]=\"false\"\n * (popoverOpen)=\"onPopoverOpen()\"\n * title=\"Popover Title\">\n * <div>Popover content</div>\n * </eui-popover>\n */\n@Component({\n selector: 'eui-popover',\n templateUrl: './eui-popover.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiSize2XL',\n 'euiSizeAuto',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiPopoverComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * Optional title text to display in the popover header.\n * When provided, adds a title element at the top of the popover content.\n */\n @Input() title: string;\n\n /**\n * Determines the preferred placement of the popover relative to its origin element.\n * The component will attempt to use this position first, falling back to alternatives\n * if there's not enough space in the viewport.\n *\n * @default 'bottom'\n */\n @Input() position: EuiPopoverPosition = 'bottom';\n\n /**\n * Visual styling variant for the popover.\n * - 'default': Standard popover with subtle border and drop shadow\n * - 'flat': Popover without shadows, using only border for definition\n * - 'colored-header': Popover with an accent-colored header area\n * - 'colored-solid': Popover with accent color applied to the entire component\n *\n * @default 'default'\n */\n @Input() type: 'default' | 'flat' | 'colored-header' | 'colored-solid' = 'default';\n\n /**\n * Custom width for the popover.\n * Can be specified in any valid CSS unit (px, %, em, etc).\n * When null, the popover width is determined by its content.\n *\n * @default null\n */\n @Input() width: string = null;\n\n /**\n * Whether to show a semi-transparent backdrop behind the popover.\n * When true, creates a visual overlay that dims the rest of the UI.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) hasBackDrop = false;\n\n /**\n * Whether to show a close button in the top-right corner of the popover.\n * When clicked, the close button will dismiss the popover.\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) hasCloseButton = true;\n\n /**\n * Whether the popover can be dismissed by clicking outside its boundaries.\n * When false, the popover will remain open until explicitly closed via code\n * or by clicking the close button (if available).\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) isDismissable = true;\n\n /**\n * Event emitted when a click occurs outside the popover boundaries.\n * Only emitted when isDismissable is true.\n */\n @Output() outsideClick = new EventEmitter();\n\n /**\n * Event emitted when the popover is opened.\n * Fires after the popover content has been attached to the DOM and positioned.\n */\n @Output() popoverOpen = new EventEmitter();\n\n /**\n * Event emitted when the popover is closed.\n * Fires after the popover content has been removed from the DOM.\n */\n @Output() popoverClose = new EventEmitter();\n\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private origin: ElementRef;\n private preferredPositons: ConnectionPositionPair[] = [BOTTOM, TOP, LEFT, RIGHT];\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private positionStrategyUpdate$: Subject<void> = new Subject();\n\n constructor(private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private baseStatesDirective: BaseStatesDirective){\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (this.position === 'top') {\n this.preferredPositons = [TOP, BOTTOM, LEFT, RIGHT];\n } else if (this.position === 'right') {\n this.preferredPositons = [RIGHT, LEFT, TOP, BOTTOM];\n } else if (this.position === 'left') {\n this.preferredPositons = [LEFT, RIGHT, TOP, BOTTOM];\n } else {\n this.preferredPositons = [BOTTOM, TOP, LEFT, RIGHT];\n }\n }\n\n ngOnInit(): void {\n this.setPositionStream();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n /**\n * Whether the eui-popover is open.\n *\n * @usageNotes\n * ```html\n * <eui-popover #popover>\n * @if (popover.isOpen) {\n * <my-component></my-component>\n * }\n * </eui-popover>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Updates the position strategy when content changes.\n * Recalculates and updates the overlay position to handle content size changes.\n */\n public onContentChange(): void {\n this.positionStrategy = this.getPositionStrategy();\n this.positionStrategyUpdate$.next();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n\n /**\n * Opens the popover relative to the provided origin element.\n * Sets up scroll monitoring, position strategy, and attaches the popover content to the overlay.\n * Emits the popoverOpen event when complete.\n *\n * @param origin - Reference to the element that triggers the popover\n */\n public openPopover(origin: ElementRef): void {\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(origin as unknown as HTMLElement, scrollableParent)) {\n this.closePopover();\n }\n });\n\n this.origin = origin;\n const positionStrategy = this.getPositionStrategy();\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n width: this.width,\n panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),\n });\n this.overlayRef.attach(this.templatePortal);\n\n document.querySelector('.cdk-overlay-container')?.classList.add('eui-19');\n\n this.positionStrategy = positionStrategy;\n this.positionStrategyUpdate$.next();\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isDismissable) {\n this.outsideClick.emit();\n this.closePopover();\n }\n });\n\n this.isOpen$.next(true);\n this.popoverOpen.emit();\n }\n }\n\n /**\n * Closes the popover.\n * Cleans up subscriptions, disposes the overlay, and emits the popoverClose event.\n */\n public closePopover(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.isOpen$.next(false);\n this.popoverClose.emit();\n }\n\n /**\n * Handles keyboard events to allow closing the popover with the Escape key.\n * Can be used as an alternative to the close button or when hasCloseButton is false.\n *\n * @param event - The keyboard event\n */\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closePopover();\n }\n }\n\n /**\n * Checks whether the origin element is currently visible within the scrollable parent's viewport.\n * Used to determine if the popover should remain open during scroll events.\n *\n * @param origin - The HTML element that triggers the popover\n * @param scrollableParent - The scrollable container element\n * @returns True if the origin element is visible in the viewport, otherwise false\n */\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n /**\n * Creates and returns a position strategy for the overlay.\n * Configures the overlay to be positioned relative to the origin element\n * with fallback positions if the preferred one doesn't fit.\n *\n * @returns A flexible connected position strategy configured for the popover\n */\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions(this.preferredPositons)\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n /**\n * Sets up the position stream for the arrow positioning directive.\n * Creates an observable that emits the current popover position and the origin element's bounding rectangle\n * whenever the popover's position changes.\n */\n private setPositionStream(): void {\n this.position$ = this.positionStrategyUpdate$.pipe(\n switchMap(() => this.positionStrategy.positionChanges),\n map(getPosition),\n distinctUntilChanged(),\n map((position) => {\n const rect = this.origin.nativeElement ?\n this.origin.nativeElement.getBoundingClientRect() :\n (this.origin as unknown as HTMLElement).getBoundingClientRect();\n return [position, rect];\n }),\n );\n }\n}\n","<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiButtonComponent } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiPopoverComponent } from './eui-popover.component';\nimport { EuiPopoverArrowPositionDirective } from './directives/eui-popover-arrow-position.directive';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n/**\n * Module that provides the EUI Popover component and related directives.\n *\n * This module exports the EuiPopoverComponent which allows for creating popover overlays\n * positioned relative to trigger elements. Popovers can be configured with various\n * positioning options, visual styles, and dismissal behaviors.\n *\n * @example\n * import { EuiPopoverModule } from '@eui/components/eui-popover';\n *\n * @NgModule({\n * imports: [\n * EuiPopoverModule\n * ]\n * })\n * export class MyModule {}\n */\n@NgModule({\n imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],\n declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],\n exports: [EuiPopoverComponent],\n})\nexport class EuiPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i8.EuiPopoverArrowPositionDirective"],"mappings":"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"}