@eui/ecl 19.3.1 → 19.3.2-snapshot-1752652198707

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 (382) hide show
  1. package/components/ecl-app/ecl-app.component.d.ts +10 -0
  2. package/components/ecl-app/ecl-app.component.d.ts.map +1 -1
  3. package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts +6 -0
  4. package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts.map +1 -1
  5. package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +39 -0
  6. package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  7. package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts +42 -0
  8. package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
  9. package/components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.d.ts +3 -0
  10. package/components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.d.ts.map +1 -1
  11. package/components/ecl-media-container/ecl-media-container-iframe.directive.d.ts +3 -0
  12. package/components/ecl-media-container/ecl-media-container-iframe.directive.d.ts.map +1 -1
  13. package/components/ecl-media-container/ecl-media-container-item-audio-description.directive.d.ts +3 -0
  14. package/components/ecl-media-container/ecl-media-container-item-audio-description.directive.d.ts.map +1 -1
  15. package/components/ecl-media-container/ecl-media-container-item.directive.d.ts +3 -0
  16. package/components/ecl-media-container/ecl-media-container-item.directive.d.ts.map +1 -1
  17. package/components/ecl-media-container/ecl-media-container-picture.directive.d.ts +3 -0
  18. package/components/ecl-media-container/ecl-media-container-picture.directive.d.ts.map +1 -1
  19. package/components/ecl-media-container/ecl-media-container.component.d.ts +15 -0
  20. package/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
  21. package/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts +68 -0
  22. package/components/ecl-menu/ecl-menu/ecl-menu-item.component.d.ts.map +1 -1
  23. package/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts +69 -5
  24. package/components/ecl-menu/ecl-menu/ecl-menu.component.d.ts.map +1 -1
  25. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts +32 -0
  26. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.d.ts.map +1 -1
  27. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts +13 -0
  28. package/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.d.ts.map +1 -1
  29. package/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts +97 -0
  30. package/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.d.ts.map +1 -1
  31. package/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +74 -0
  32. package/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  33. package/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts +10 -0
  34. package/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.d.ts.map +1 -1
  35. package/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts +42 -0
  36. package/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.d.ts.map +1 -1
  37. package/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts +28 -0
  38. package/components/ecl-multiselect/ecl-multiselect-option.directive.d.ts.map +1 -1
  39. package/components/ecl-multiselect/ecl-multiselect.component.d.ts +45 -0
  40. package/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  41. package/components/ecl-navigation-list/ecl-navigation-list-item.component.d.ts +9 -0
  42. package/components/ecl-navigation-list/ecl-navigation-list-item.component.d.ts.map +1 -1
  43. package/components/ecl-navigation-list/ecl-navigation-list-picture.directive.d.ts +6 -0
  44. package/components/ecl-navigation-list/ecl-navigation-list-picture.directive.d.ts.map +1 -1
  45. package/components/ecl-navigation-list/ecl-navigation-list.component.d.ts +13 -0
  46. package/components/ecl-navigation-list/ecl-navigation-list.component.d.ts.map +1 -1
  47. package/components/ecl-page-header/ecl-page-header-background.directive.d.ts +16 -0
  48. package/components/ecl-page-header/ecl-page-header-background.directive.d.ts.map +1 -1
  49. package/components/ecl-page-header/ecl-page-header-description.directive.d.ts +33 -1
  50. package/components/ecl-page-header/ecl-page-header-description.directive.d.ts.map +1 -1
  51. package/components/ecl-page-header/ecl-page-header-info.directive.d.ts +8 -0
  52. package/components/ecl-page-header/ecl-page-header-info.directive.d.ts.map +1 -1
  53. package/components/ecl-page-header/ecl-page-header-meta.directive.d.ts +16 -0
  54. package/components/ecl-page-header/ecl-page-header-meta.directive.d.ts.map +1 -1
  55. package/components/ecl-page-header/ecl-page-header-title.directive.d.ts +14 -0
  56. package/components/ecl-page-header/ecl-page-header-title.directive.d.ts.map +1 -1
  57. package/components/ecl-page-header/ecl-page-header.component.d.ts +21 -0
  58. package/components/ecl-page-header/ecl-page-header.component.d.ts.map +1 -1
  59. package/components/ecl-pagination/ecl-pagination-item.component.d.ts +63 -0
  60. package/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
  61. package/components/ecl-pagination/ecl-pagination-list.directive.d.ts +7 -0
  62. package/components/ecl-pagination/ecl-pagination-list.directive.d.ts.map +1 -1
  63. package/components/ecl-pagination/ecl-pagination.component.d.ts +65 -0
  64. package/components/ecl-pagination/ecl-pagination.component.d.ts.map +1 -1
  65. package/components/ecl-pagination/events/ecl-pagination.event.d.ts +22 -1
  66. package/components/ecl-pagination/events/ecl-pagination.event.d.ts.map +1 -1
  67. package/components/ecl-radio/ecl-radio-help.component.d.ts +13 -0
  68. package/components/ecl-radio/ecl-radio-help.component.d.ts.map +1 -1
  69. package/components/ecl-radio/ecl-radio-input.directive.d.ts +30 -1
  70. package/components/ecl-radio/ecl-radio-input.directive.d.ts.map +1 -1
  71. package/components/ecl-radio/ecl-radio-label.component.d.ts +16 -0
  72. package/components/ecl-radio/ecl-radio-label.component.d.ts.map +1 -1
  73. package/components/ecl-radio/ecl-radio.directive.d.ts +31 -0
  74. package/components/ecl-radio/ecl-radio.directive.d.ts.map +1 -1
  75. package/components/ecl-range/ecl-range-bubble.component.d.ts +22 -0
  76. package/components/ecl-range/ecl-range-bubble.component.d.ts.map +1 -1
  77. package/components/ecl-range/ecl-range-value.component.d.ts +14 -0
  78. package/components/ecl-range/ecl-range-value.component.d.ts.map +1 -1
  79. package/components/ecl-range/ecl-range.directive.d.ts +42 -0
  80. package/components/ecl-range/ecl-range.directive.d.ts.map +1 -1
  81. package/components/ecl-range/events/ecl-range.event.d.ts +7 -0
  82. package/components/ecl-range/events/ecl-range.event.d.ts.map +1 -1
  83. package/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts +16 -0
  84. package/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.d.ts.map +1 -1
  85. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.d.ts +10 -0
  86. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.d.ts.map +1 -1
  87. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.d.ts +3 -0
  88. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.d.ts.map +1 -1
  89. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.d.ts +12 -0
  90. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.d.ts.map +1 -1
  91. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts +15 -0
  92. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.d.ts.map +1 -1
  93. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts +9 -0
  94. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.d.ts.map +1 -1
  95. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts +6 -0
  96. package/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.d.ts.map +1 -1
  97. package/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts +16 -0
  98. package/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.d.ts.map +1 -1
  99. package/components/ecl-site-footer/ecl-site-footer.component.d.ts +14 -0
  100. package/components/ecl-site-footer/ecl-site-footer.component.d.ts.map +1 -1
  101. package/components/ecl-site-header/action/ecl-site-header-action.component.d.ts +3 -0
  102. package/components/ecl-site-header/action/ecl-site-header-action.component.d.ts.map +1 -1
  103. package/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.d.ts +3 -0
  104. package/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.d.ts.map +1 -1
  105. package/components/ecl-site-header/cta/ecl-site-header-cta.directive.d.ts +4 -0
  106. package/components/ecl-site-header/cta/ecl-site-header-cta.directive.d.ts.map +1 -1
  107. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts +17 -4
  108. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts.map +1 -1
  109. package/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts +4 -0
  110. package/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts.map +1 -1
  111. package/components/ecl-site-header/ecl-site-header.component.d.ts +32 -0
  112. package/components/ecl-site-header/ecl-site-header.component.d.ts.map +1 -1
  113. package/components/ecl-site-header/language/ecl-site-header-language-popover.component.d.ts +50 -0
  114. package/components/ecl-site-header/language/ecl-site-header-language-popover.component.d.ts.map +1 -1
  115. package/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +54 -0
  116. package/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
  117. package/components/ecl-site-header/login/ecl-site-header-login-details.directive.d.ts +7 -0
  118. package/components/ecl-site-header/login/ecl-site-header-login-details.directive.d.ts.map +1 -1
  119. package/components/ecl-site-header/login/ecl-site-header-login.component.d.ts +19 -0
  120. package/components/ecl-site-header/login/ecl-site-header-login.component.d.ts.map +1 -1
  121. package/components/ecl-site-header/notification/ecl-site-header-notification.component.d.ts +4 -0
  122. package/components/ecl-site-header/notification/ecl-site-header-notification.component.d.ts.map +1 -1
  123. package/components/ecl-site-header/picture/ecl-site-header-picture.directive.d.ts +9 -0
  124. package/components/ecl-site-header/picture/ecl-site-header-picture.directive.d.ts.map +1 -1
  125. package/components/ecl-site-header/search/ecl-site-header-search.component.d.ts +17 -0
  126. package/components/ecl-site-header/search/ecl-site-header-search.component.d.ts.map +1 -1
  127. package/components/ecl-site-header/services/ecl-area-data.service.d.ts +8 -0
  128. package/components/ecl-site-header/services/ecl-area-data.service.d.ts.map +1 -1
  129. package/components/ecl-tabs/ecl-tab-label.component.d.ts +7 -0
  130. package/components/ecl-tabs/ecl-tab-label.component.d.ts.map +1 -1
  131. package/components/ecl-tabs/ecl-tab-more.component.d.ts +11 -1
  132. package/components/ecl-tabs/ecl-tab-more.component.d.ts.map +1 -1
  133. package/components/ecl-tabs/ecl-tab.component.d.ts +65 -0
  134. package/components/ecl-tabs/ecl-tab.component.d.ts.map +1 -1
  135. package/components/ecl-tabs/ecl-tabs.component.d.ts +116 -0
  136. package/components/ecl-tabs/ecl-tabs.component.d.ts.map +1 -1
  137. package/components/ecl-tabs/events/ecl-tab-select.event.d.ts +8 -0
  138. package/components/ecl-tabs/events/ecl-tab-select.event.d.ts.map +1 -1
  139. package/docs/classes/EclAppLanguageDismissEvent.html +7 -0
  140. package/docs/classes/EclBreadcrumbSegmentClickEvent.html +7 -0
  141. package/docs/classes/EclPaginationEvent.html +22 -0
  142. package/docs/classes/EclPaginationItemClickEvent.html +7 -0
  143. package/docs/classes/EclRangeEvent.html +10 -0
  144. package/docs/classes/EclTabSelectEvent.html +10 -0
  145. package/docs/components/EclAccordionComponent.html +1 -1
  146. package/docs/components/EclAccordionItemComponent.html +1 -1
  147. package/docs/components/EclAppComponent.html +15 -1
  148. package/docs/components/EclBannerComponent.html +1 -1
  149. package/docs/components/EclBlockquoteComponent.html +1 -1
  150. package/docs/components/EclBreadcrumbComponent.html +112 -1
  151. package/docs/components/EclBreadcrumbSegmentComponent.html +99 -1
  152. package/docs/components/EclButtonComponent.html +1 -1
  153. package/docs/components/EclCardBodyComponent.html +1 -1
  154. package/docs/components/EclCardComponent.html +1 -1
  155. package/docs/components/EclCarouselComponent.html +1 -1
  156. package/docs/components/EclCarouselItemComponent.html +1 -1
  157. package/docs/components/EclCategoryFilterComponent.html +1 -1
  158. package/docs/components/EclCategoryFilterItemComponent.html +1 -1
  159. package/docs/components/EclCategoryFilterListComponent.html +1 -1
  160. package/docs/components/EclCheckboxHelpComponent.html +1 -1
  161. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  162. package/docs/components/EclContentBlockComponent.html +1 -1
  163. package/docs/components/EclContentItemComponent.html +1 -1
  164. package/docs/components/EclDateBlockComponent.html +1 -1
  165. package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
  166. package/docs/components/EclExpandableComponent.html +1 -1
  167. package/docs/components/EclFactFiguresComponent.html +1 -1
  168. package/docs/components/EclFactFiguresDescriptionComponent.html +1 -1
  169. package/docs/components/EclFactFiguresItemComponent.html +1 -1
  170. package/docs/components/EclFactFiguresTitleComponent.html +1 -1
  171. package/docs/components/EclFactFiguresValueComponent.html +1 -1
  172. package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
  173. package/docs/components/EclFeaturedComponent.html +1 -1
  174. package/docs/components/EclFeaturedItemComponent.html +1 -1
  175. package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
  176. package/docs/components/EclFeaturedItemFooterComponent.html +1 -1
  177. package/docs/components/EclFileComponent.html +1 -1
  178. package/docs/components/EclFileItemComponent.html +1 -1
  179. package/docs/components/EclFileItemsComponent.html +1 -1
  180. package/docs/components/EclFileTaxonomyComponent.html +1 -1
  181. package/docs/components/EclFormGroupComponent.html +1 -1
  182. package/docs/components/EclFormLabelComponent.html +1 -1
  183. package/docs/components/EclGalleryComponent.html +1 -1
  184. package/docs/components/EclGalleryFooterComponent.html +1 -1
  185. package/docs/components/EclGalleryItemComponent.html +1 -1
  186. package/docs/components/EclIconComponent.html +1 -1
  187. package/docs/components/EclInpageNavigationComponent.html +1 -1
  188. package/docs/components/EclInpageNavigationItemComponent.html +1 -1
  189. package/docs/components/EclListIllustrationComponent.html +1 -1
  190. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  191. package/docs/components/EclLoadingIndicatorComponent.html +1 -1
  192. package/docs/components/EclMediaContainerComponent.html +35 -1
  193. package/docs/components/EclMegaMenuComponent.html +1 -1
  194. package/docs/components/EclMegaMenuFeaturedComponent.html +1 -1
  195. package/docs/components/EclMegaMenuInfoComponent.html +1 -1
  196. package/docs/components/EclMegaMenuItemComponent.html +1 -1
  197. package/docs/components/EclMegaMenuSubitemComponent.html +1 -1
  198. package/docs/components/EclMenuComponent.html +121 -49
  199. package/docs/components/EclMenuItemComponent.html +95 -1
  200. package/docs/components/EclMenuMegaComponent.html +27 -1
  201. package/docs/components/EclMenuMegaItemComponent.html +63 -1
  202. package/docs/components/EclModalBodyComponent.html +1 -1
  203. package/docs/components/EclModalComponent.html +1 -1
  204. package/docs/components/EclModalFooterComponent.html +1 -1
  205. package/docs/components/EclModalHeaderComponent.html +1 -1
  206. package/docs/components/EclMultiselectComponent.html +118 -1
  207. package/docs/components/EclMultiselectDropdownComponent.html +205 -1
  208. package/docs/components/EclMultiselectInputComponent.html +172 -1
  209. package/docs/components/EclMultiselectOptgroupComponent.html +32 -1
  210. package/docs/components/EclMultiselectOptionComponent.html +83 -1
  211. package/docs/components/EclNavigationListComponent.html +27 -1
  212. package/docs/components/EclNavigationListItemComponent.html +26 -1
  213. package/docs/components/EclNewsTickerComponent.html +1 -1
  214. package/docs/components/EclNewsTickerItemComponent.html +1 -1
  215. package/docs/components/EclNotificationComponent.html +1 -1
  216. package/docs/components/EclPageHeaderComponent.html +52 -1
  217. package/docs/components/EclPaginationComponent.html +110 -1
  218. package/docs/components/EclPaginationItemComponent.html +112 -1
  219. package/docs/components/EclPopoverComponent.html +1 -1
  220. package/docs/components/EclRadioHelpComponent.html +35 -1
  221. package/docs/components/EclRadioLabelComponent.html +41 -1
  222. package/docs/components/EclRangeBubbleComponent.html +57 -1
  223. package/docs/components/EclRangeValueComponent.html +40 -1
  224. package/docs/components/EclRatingFieldComponent.html +1 -1
  225. package/docs/components/EclSearchFormComponent.html +1 -1
  226. package/docs/components/EclSelectContainerComponent.html +1 -1
  227. package/docs/components/EclSiteFooterComponent.html +34 -1
  228. package/docs/components/EclSiteFooterFixedContentECComponent.html +33 -1
  229. package/docs/components/EclSiteFooterFixedContentEUComponent.html +33 -1
  230. package/docs/components/EclSiteHeaderActionComponent.html +8 -1
  231. package/docs/components/EclSiteHeaderBannerTopComponent.html +8 -1
  232. package/docs/components/EclSiteHeaderComponent.html +59 -2
  233. package/docs/components/EclSiteHeaderCustomActionComponent.html +35 -55
  234. package/docs/components/EclSiteHeaderEnvironmentComponent.html +9 -1
  235. package/docs/components/EclSiteHeaderLanguageComponent.html +95 -1
  236. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +105 -1
  237. package/docs/components/EclSiteHeaderLoginComponent.html +34 -1
  238. package/docs/components/EclSiteHeaderNotificationComponent.html +9 -1
  239. package/docs/components/EclSiteHeaderSearchComponent.html +37 -1
  240. package/docs/components/EclSocialMediaFollowComponent.html +1 -1
  241. package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
  242. package/docs/components/EclSocialMediaShareComponent.html +1 -1
  243. package/docs/components/EclSocialMediaShareItemComponent.html +1 -1
  244. package/docs/components/EclSplashPageComponent.html +1 -1
  245. package/docs/components/EclSplashPageLanguageCategoryComponent.html +1 -1
  246. package/docs/components/EclSplashPageLanguageContainerComponent.html +1 -1
  247. package/docs/components/EclSplashPageLanguageLinkComponent.html +1 -1
  248. package/docs/components/EclStickyContainerComponent.html +1 -1
  249. package/docs/components/EclTabComponent.html +123 -1
  250. package/docs/components/EclTabLabelComponent.html +11 -1
  251. package/docs/components/EclTabMoreComponent.html +36 -2
  252. package/docs/components/EclTableSortButtonComponent.html +1 -1
  253. package/docs/components/EclTabsComponent.html +200 -1
  254. package/docs/components/EclTagComponent.html +1 -1
  255. package/docs/components/EclTimelineComponent.html +1 -1
  256. package/docs/components/EclTimelineItemComponent.html +1 -1
  257. package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
  258. package/docs/dependencies.html +2 -2
  259. package/docs/directives/EclBreadcrumbContainerDirective.html +19 -0
  260. package/docs/directives/EclMediaContainerIframeDirective.html +7 -0
  261. package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +7 -0
  262. package/docs/directives/EclMediaContainerItemDirective.html +7 -0
  263. package/docs/directives/EclMediaContainerPictureDirective.html +7 -0
  264. package/docs/directives/EclMultiselectOptionDirective.html +85 -0
  265. package/docs/directives/EclNavigationListImageDirective.html +7 -0
  266. package/docs/directives/EclNavigationListPictureDirective.html +7 -0
  267. package/docs/directives/EclPageHeaderBackgroundImageDirective.html +19 -0
  268. package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +19 -0
  269. package/docs/directives/EclPageHeaderDescriptionContainerDirective.html +19 -0
  270. package/docs/directives/EclPageHeaderDescriptionDirective.html +19 -0
  271. package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +19 -0
  272. package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +20 -1
  273. package/docs/directives/EclPageHeaderInfoDirective.html +19 -0
  274. package/docs/directives/EclPageHeaderMetaDirective.html +19 -0
  275. package/docs/directives/EclPageHeaderMetaItemDirective.html +19 -0
  276. package/docs/directives/EclPageHeaderTitleDirective.html +34 -0
  277. package/docs/directives/EclPaginationListDirective.html +20 -0
  278. package/docs/directives/EclRadioDirective.html +60 -0
  279. package/docs/directives/EclRadioInputDirective.html +36 -0
  280. package/docs/directives/EclRangeDirective.html +92 -0
  281. package/docs/directives/EclSiteFooterColumnDirective.html +7 -0
  282. package/docs/directives/EclSiteFooterContentDirective.html +21 -6
  283. package/docs/directives/EclSiteFooterDescriptionDirective.html +7 -0
  284. package/docs/directives/EclSiteFooterLinkDirective.html +7 -0
  285. package/docs/directives/EclSiteFooterListDirective.html +7 -0
  286. package/docs/directives/EclSiteFooterListItemDirective.html +7 -0
  287. package/docs/directives/EclSiteFooterLogoDirective.html +9 -1
  288. package/docs/directives/EclSiteFooterLogoImageDirective.html +7 -0
  289. package/docs/directives/EclSiteFooterLogoItemDirective.html +9 -1
  290. package/docs/directives/EclSiteFooterLogoLinkDirective.html +7 -0
  291. package/docs/directives/EclSiteFooterLogoListDirective.html +9 -1
  292. package/docs/directives/EclSiteFooterPictureDirective.html +7 -0
  293. package/docs/directives/EclSiteFooterRowDirective.html +7 -0
  294. package/docs/directives/EclSiteFooterSectionDirective.html +14 -1
  295. package/docs/directives/EclSiteFooterTitleDirective.html +7 -0
  296. package/docs/directives/EclSiteFooterTitleLinkDirective.html +7 -0
  297. package/docs/directives/EclSiteHeaderCtaDirective.html +8 -0
  298. package/docs/directives/EclSiteHeaderImageDirective.html +7 -0
  299. package/docs/directives/EclSiteHeaderLinkDirective.html +7 -0
  300. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +7 -0
  301. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +8 -0
  302. package/docs/directives/EclSiteHeaderPictureDirective.html +7 -0
  303. package/docs/injectables/EclAreaDataService.html +10 -0
  304. package/docs/js/menu-wc.js +4 -4
  305. package/docs/js/menu-wc_es5.js +1 -1
  306. package/docs/js/search/search_index.js +2 -2
  307. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  308. package/fesm2022/eui-ecl-components-ecl-app.mjs +11 -0
  309. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  310. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  312. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +82 -2
  313. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  314. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  316. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  318. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  320. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  322. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  324. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  325. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  326. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  327. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  328. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  329. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  330. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  331. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  332. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  333. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  334. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  335. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  336. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  337. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  338. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  339. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  340. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +29 -0
  341. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  342. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  343. package/fesm2022/eui-ecl-components-ecl-menu.mjs +152 -18
  344. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  345. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  346. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +270 -1
  347. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  348. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +27 -0
  349. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  350. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  351. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  352. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +107 -3
  353. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  354. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +127 -1
  355. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  356. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  357. package/fesm2022/eui-ecl-components-ecl-radio.mjs +71 -1
  358. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  359. package/fesm2022/eui-ecl-components-ecl-range.mjs +68 -1
  360. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  361. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  362. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  363. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  364. package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
  365. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +85 -2
  366. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  367. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +182 -10
  368. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  369. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  370. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +1 -1
  371. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  372. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  373. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  374. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +177 -1
  375. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  376. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  377. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  378. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  379. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  380. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  381. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  382. package/package.json +2 -2
@@ -13,8 +13,23 @@ import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
13
13
  import * as i4 from '@ngx-translate/core';
14
14
  import { TranslateModule } from '@ngx-translate/core';
15
15
 
16
+ /**
17
+ * Event emitted by EclPaginationComponent when the page changes.
18
+ * Contains information about the current page and visible item range.
19
+ */
16
20
  class EclPaginationEvent extends EclBaseEvent {
17
- constructor(page, showingFrom, showingTo) {
21
+ /**
22
+ * Current page number after the change.
23
+ */
24
+ constructor(page,
25
+ /**
26
+ * Index of the first item shown on the current page.
27
+ */
28
+ showingFrom,
29
+ /**
30
+ * Index of the last item shown on the current page.
31
+ */
32
+ showingTo) {
18
33
  super();
19
34
  this.page = page;
20
35
  this.showingFrom = showingFrom;
@@ -22,9 +37,16 @@ class EclPaginationEvent extends EclBaseEvent {
22
37
  }
23
38
  }
24
39
 
40
+ /**
41
+ * Directive to apply ECL styles to the pagination list element.
42
+ * Adds the `ecl-pagination__list` class to the host element.
43
+ */
25
44
  class EclPaginationListDirective extends ECLBaseDirective {
26
45
  constructor() {
27
46
  super(...arguments);
47
+ /**
48
+ * Adds the `ecl-pagination__list` class to the host element.
49
+ */
28
50
  this.hasClass = true;
29
51
  }
30
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: EclPaginationListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
@@ -41,6 +63,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
41
63
  args: ['class.ecl-pagination__list']
42
64
  }] } });
43
65
 
66
+ /**
67
+ * Event emitted when a pagination item is clicked.
68
+ */
44
69
  class EclPaginationItemClickEvent extends EclBaseEvent {
45
70
  }
46
71
  // TODO: ecl-pagination-item selector is deprecated and should be removed in v20
@@ -55,29 +80,62 @@ class EclPaginationItemComponent extends ECLBaseDirective {
55
80
  .join(' ')
56
81
  .trim();
57
82
  }
83
+ /**
84
+ * Adds relevant classes to the host element.
85
+ */
58
86
  constructor(el) {
59
87
  super();
60
88
  this.el = el;
89
+ /**
90
+ * Sets the `role` attribute for accessibility.
91
+ */
61
92
  this.role = 'listitem';
93
+ /**
94
+ * Adds the `ecl-pagination__item--truncation` class when true.
95
+ */
62
96
  this.isTruncated = false;
97
+ /**
98
+ * Router navigation link for Angular routing.
99
+ */
63
100
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
101
  this.routerLink = null;
102
+ /**
103
+ * Query parameters for the router link.
104
+ */
65
105
  this.queryParams = null;
106
+ /**
107
+ * Determines how query parameters are handled during navigation.
108
+ */
66
109
  this.queryParamsHandling = null;
110
+ /**
111
+ * Emits when the pagination item is clicked.
112
+ */
67
113
  this.pageClick = new EventEmitter();
68
114
  if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {
69
115
  console.warn('"ecl-pagination-item" selector is deprecated; use "li[eclPaginationItem]" instead.');
70
116
  }
71
117
  }
118
+ /**
119
+ * Returns true if this item is an icon-only element (previous or next page).
120
+ */
72
121
  get isIconOnly() {
73
122
  return this.isPrevOrNextVisible();
74
123
  }
124
+ /**
125
+ * Handles the click event and emits the `pageClick` output.
126
+ * Prevents event propagation if no href is defined.
127
+ *
128
+ * @param evt Event object from the DOM click event.
129
+ */
75
130
  onPageClick(evt) {
76
131
  this.pageClick.next(new EclPaginationItemClickEvent());
77
132
  if (!this.href) {
78
133
  evt.stopPropagation();
79
134
  }
80
135
  }
136
+ /**
137
+ * Returns the i18n translation key for the ARIA label.
138
+ */
81
139
  geti18nPageAriaLabelKey() {
82
140
  let key = '';
83
141
  if (this.isNext) {
@@ -91,6 +149,9 @@ class EclPaginationItemComponent extends ECLBaseDirective {
91
149
  }
92
150
  return key;
93
151
  }
152
+ /**
153
+ * Returns the i18n translation key for the visible label.
154
+ */
94
155
  geti18nPageLabelKey() {
95
156
  let key = '';
96
157
  if (this.isNext) {
@@ -101,6 +162,9 @@ class EclPaginationItemComponent extends ECLBaseDirective {
101
162
  }
102
163
  return key;
103
164
  }
165
+ /**
166
+ * Returns true if the item is either previous or next.
167
+ */
104
168
  isPrevOrNextVisible() {
105
169
  return this.isPrevious || this.isNext;
106
170
  }
@@ -149,19 +213,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
149
213
  type: Output
150
214
  }] } });
151
215
 
216
+ /**
217
+ * Component rendering the ECL pagination.
218
+ * Supports manual and automatic modes.
219
+ * Emits page change events and manages pagination logic.
220
+ */
152
221
  class EclPaginationComponent extends ECLBaseDirective {
153
222
  constructor() {
154
223
  super(...arguments);
224
+ /**
225
+ * Defines the pagination mode.
226
+ * - `manual` - component waits for external events to change pages.
227
+ * - `auto` - component manages the pages automatically based on inputs.
228
+ */
155
229
  this.mode = 'manual';
230
+ /**
231
+ * Total number of items in the list.
232
+ */
156
233
  this.totalItems = DefaultConfig.totalItems;
234
+ /**
235
+ * Number of items displayed on a single page.
236
+ */
157
237
  this.pageSize = DefaultConfig.pageSize;
238
+ /**
239
+ * Currently selected page number.
240
+ */
158
241
  this.currentPage = DefaultConfig.currentPage;
242
+ /**
243
+ * Number of pagination links visible around the current page.
244
+ */
159
245
  this.pageWindowSize = DefaultConfig.pageWindowSize;
246
+ /**
247
+ * Emits a pagination event each time the page changes.
248
+ */
160
249
  this.page = new EventEmitter();
250
+ /**
251
+ * Adds the `ecl-pagination` class to the host element.
252
+ */
161
253
  this.cmpClass = true;
254
+ /**
255
+ * Sets the ARIA role to indicate navigation.
256
+ */
162
257
  this.role = 'navigation';
258
+ /**
259
+ * Internal pagination model storing pagination data and logic.
260
+ */
163
261
  this.model = EuiPagination.create();
164
262
  }
263
+ /**
264
+ * Lifecycle hook that runs once after component initialization.
265
+ * In automatic mode, triggers an initial page event.
266
+ */
165
267
  ngOnInit() {
166
268
  if (this.isModeAuto()) {
167
269
  setTimeout(() => {
@@ -169,6 +271,10 @@ class EclPaginationComponent extends ECLBaseDirective {
169
271
  });
170
272
  }
171
273
  }
274
+ /**
275
+ * Lifecycle hook called on input changes.
276
+ * Re-creates the pagination model in automatic mode.
277
+ */
172
278
  ngOnChanges() {
173
279
  if (this.isModeAuto()) {
174
280
  this.model = EuiPagination.create({
@@ -179,24 +285,44 @@ class EclPaginationComponent extends ECLBaseDirective {
179
285
  });
180
286
  }
181
287
  }
288
+ /**
289
+ * Returns true if the pagination list exists in the template.
290
+ */
182
291
  get hasList() {
183
292
  return !!this.eclPaginationList;
184
293
  }
294
+ /**
295
+ * Navigates to the previous page and emits a page change event.
296
+ */
185
297
  onPreviousPage() {
186
298
  this.model.goToPreviousPage();
187
299
  this.firePageEvent();
188
300
  }
301
+ /**
302
+ * Navigates to the next page and emits a page change event.
303
+ */
189
304
  onNextPage() {
190
305
  this.model.goToNextPage();
191
306
  this.firePageEvent();
192
307
  }
308
+ /**
309
+ * Navigates to a specific page and emits a page change event.
310
+ *
311
+ * @param page The page number to navigate to.
312
+ */
193
313
  onPage(page) {
194
314
  this.model.goToPage(page);
195
315
  this.firePageEvent();
196
316
  }
317
+ /**
318
+ * Checks if the component is in automatic mode.
319
+ */
197
320
  isModeAuto() {
198
321
  return this.mode === 'auto';
199
322
  }
323
+ /**
324
+ * Emits the page change event with the current pagination state.
325
+ */
200
326
  firePageEvent() {
201
327
  const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());
202
328
  this.page.next(evt);
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/ecl-pagination.module.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclPaginationEvent extends EclBaseEvent {\n constructor(\n public readonly page: number,\n public readonly showingFrom: number,\n public readonly showingTo: number,\n ) {\n super();\n }\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclPaginationList]',\n standalone: false,\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}","import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { Params, QueryParamsHandling } from '@angular/router';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n// TODO: ecl-pagination-item selector is deprecated and should be removed in v20\n@Component({\n selector: 'ecl-pagination-item, li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent ? 'ecl-pagination__item--current' : '',\n this.isNext ? 'ecl-pagination__item--next' : '',\n this.isPrevious ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n @HostBinding('attr.role') role = 'listitem';\n\n @Input() label: string;\n @Input() ariaLabel: string;\n @Input() pagesCount: string;\n @Input({ transform: booleanAttribute }) isCurrent: boolean;\n @Input({ transform: booleanAttribute }) isNext: boolean;\n @Input({ transform: booleanAttribute }) isPrevious: boolean;\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href: string;\n\n @Output() pageClick = new EventEmitter<EclPaginationItemClickEvent>();\n\n constructor(public el: ElementRef) {\n super();\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n onPageClick(evt: Event): void {\n this.pageClick.next(new EclPaginationItemClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n isPrevOrNextVisible(): boolean {\n return this.isPrevious || this.isNext;\n }\n}\n","@if (!isCurrent && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.href]=\"href\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, numberAttribute } from '@angular/core';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\n\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n @Input() mode: 'manual' | 'auto' = 'manual';\n @Input({ transform: numberAttribute }) totalItems: number = DefaultConfig.totalItems;\n @Input({ transform: numberAttribute }) pageSize: number = DefaultConfig.pageSize;\n @Input({ transform: numberAttribute }) currentPage: number = DefaultConfig.currentPage;\n @Input({ transform: numberAttribute }) pageWindowSize: number = DefaultConfig.pageWindowSize;\n\n @Output() page = new EventEmitter<EclPaginationEvent>();\n\n @HostBinding('class.ecl-pagination') cmpClass = true;\n @HostBinding('attr.role') role = 'navigation';\n\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n public model = EuiPagination.create();\n\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems,\n pageSize: this.pageSize,\n currentPage: this.currentPage,\n pageWindowSize: this.pageWindowSize,\n });\n }\n }\n\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n isModeAuto(): boolean {\n return this.mode === 'auto';\n }\n\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.next(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclPaginationComponent } from './ecl-pagination.component';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\n\nconst COMPONENTS = [EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective];\n@NgModule({\n imports: [CommonModule, RouterModule, EclIconModule, EclLinkModule, TranslateModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.EclPaginationItemComponent"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/ecl-pagination.module.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted by EclPaginationComponent when the page changes.\n * Contains information about the current page and visible item range.\n */\nexport class EclPaginationEvent extends EclBaseEvent {\n /**\n * Current page number after the change.\n */\n constructor(\n public readonly page: number,\n\n /**\n * Index of the first item shown on the current page.\n */\n public readonly showingFrom: number,\n\n /**\n * Index of the last item shown on the current page.\n */\n public readonly showingTo: number,\n ) {\n super();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply ECL styles to the pagination list element.\n * Adds the `ecl-pagination__list` class to the host element.\n */\n@Directive({\n selector: '[eclPaginationList]',\n standalone: false,\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-pagination__list` class to the host element.\n */\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { Params, QueryParamsHandling } from '@angular/router';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Event emitted when a pagination item is clicked.\n */\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n// TODO: ecl-pagination-item selector is deprecated and should be removed in v20\n@Component({\n selector: 'ecl-pagination-item, li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent ? 'ecl-pagination__item--current' : '',\n this.isNext ? 'ecl-pagination__item--next' : '',\n this.isPrevious ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the `role` attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Text content of the pagination item.\n */\n @Input() label: string;\n\n /**\n * Value for the `aria-label` attribute used for accessibility.\n */\n @Input() ariaLabel: string;\n\n /**\n * Total number of pages displayed by the pagination component.\n */\n @Input() pagesCount: string;\n\n /**\n * Adds the `ecl-pagination__item--current` class when true.\n */\n @Input({ transform: booleanAttribute }) isCurrent: boolean;\n\n /**\n * Adds the `ecl-pagination__item--next` class when true.\n */\n @Input({ transform: booleanAttribute }) isNext: boolean;\n\n /**\n * Adds the `ecl-pagination__item--previous` class when true.\n */\n @Input({ transform: booleanAttribute }) isPrevious: boolean;\n\n /**\n * Adds the `ecl-pagination__item--truncation` class when true.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n\n /**\n * Router navigation link for Angular routing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters for the router link.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Determines how query parameters are handled during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Href link for navigation.\n */\n @Input() href: string;\n\n /**\n * Emits when the pagination item is clicked.\n */\n @Output() pageClick = new EventEmitter<EclPaginationItemClickEvent>();\n\n /**\n * Adds relevant classes to the host element.\n */\n constructor(public el: ElementRef) {\n super();\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n /**\n * Returns true if this item is an icon-only element (previous or next page).\n */\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n /**\n * Handles the click event and emits the `pageClick` output.\n * Prevents event propagation if no href is defined.\n *\n * @param evt Event object from the DOM click event.\n */\n onPageClick(evt: Event): void {\n this.pageClick.next(new EclPaginationItemClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * Returns the i18n translation key for the ARIA label.\n */\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n /**\n * Returns the i18n translation key for the visible label.\n */\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n /**\n * Returns true if the item is either previous or next.\n */\n isPrevOrNextVisible(): boolean {\n return this.isPrevious || this.isNext;\n }\n}\n","@if (!isCurrent && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.href]=\"href\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, numberAttribute } from '@angular/core';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\n\n/**\n * Component rendering the ECL pagination.\n * Supports manual and automatic modes.\n * Emits page change events and manages pagination logic.\n */\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n /**\n * Defines the pagination mode.\n * - `manual` - component waits for external events to change pages.\n * - `auto` - component manages the pages automatically based on inputs.\n */\n @Input() mode: 'manual' | 'auto' = 'manual';\n\n /**\n * Total number of items in the list.\n */\n @Input({ transform: numberAttribute }) totalItems: number = DefaultConfig.totalItems;\n\n /**\n * Number of items displayed on a single page.\n */\n @Input({ transform: numberAttribute }) pageSize: number = DefaultConfig.pageSize;\n\n /**\n * Currently selected page number.\n */\n @Input({ transform: numberAttribute }) currentPage: number = DefaultConfig.currentPage;\n\n /**\n * Number of pagination links visible around the current page.\n */\n @Input({ transform: numberAttribute }) pageWindowSize: number = DefaultConfig.pageWindowSize;\n\n /**\n * Emits a pagination event each time the page changes.\n */\n @Output() page = new EventEmitter<EclPaginationEvent>();\n\n /**\n * Adds the `ecl-pagination` class to the host element.\n */\n @HostBinding('class.ecl-pagination') cmpClass = true;\n\n /**\n * Sets the ARIA role to indicate navigation.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * Reference to the pagination list directive inside the component's content.\n */\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n /**\n * Internal pagination model storing pagination data and logic.\n */\n public model = EuiPagination.create();\n\n /**\n * Lifecycle hook that runs once after component initialization.\n * In automatic mode, triggers an initial page event.\n */\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n /**\n * Lifecycle hook called on input changes.\n * Re-creates the pagination model in automatic mode.\n */\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems,\n pageSize: this.pageSize,\n currentPage: this.currentPage,\n pageWindowSize: this.pageWindowSize,\n });\n }\n }\n\n /**\n * Returns true if the pagination list exists in the template.\n */\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n /**\n * Navigates to the previous page and emits a page change event.\n */\n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to the next page and emits a page change event.\n */\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to a specific page and emits a page change event.\n *\n * @param page The page number to navigate to.\n */\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n /**\n * Checks if the component is in automatic mode.\n */\n isModeAuto(): boolean {\n return this.mode === 'auto';\n }\n\n /**\n * Emits the page change event with the current pagination state.\n */\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.next(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclPaginationComponent } from './ecl-pagination.component';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\n\nconst COMPONENTS = [EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective];\n@NgModule({\n imports: [CommonModule, RouterModule, EclIconModule, EclLinkModule, TranslateModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.EclPaginationItemComponent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-popover.mjs","sources":["../../components/ecl-popover/ecl-popover-content.directive.ts","../../components/ecl-popover/ecl-popover-toggle.directive.ts","../../components/ecl-popover/ecl-popover.component.ts","../../components/ecl-popover/ecl-popover.component.html","../../components/ecl-popover/ecl-popover.module.ts","../../components/ecl-popover/eui-ecl-components-ecl-popover.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the content section of an `ecl-popover` component.\n *\n * Responsible for applying the appropriate CSS class to the popover content container.\n */\n@Directive({\n selector: '[eclPopoverContent]',\n standalone: false,\n})\nexport class EclPopoverContentDirective extends ECLBaseDirective {\n /**\n * Host binding that applies the CSS class to style the popover content.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-popover__content')].join(' ').trim();\n }\n}\n","import { Directive, ElementRef, EventEmitter, Host, HostBinding, HostListener, Output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to toggle the visibility of an `ecl-popover` component.\n *\n * This directive emits a custom click event and manages accessibility attributes.\n */\n@Directive({\n selector: '[eclPopoverToggle]',\n standalone: false,\n})\nexport class EclPopoverToggleDirective extends ECLBaseDirective {\n /**\n * Sets the `aria-expanded` attribute to reflect the popover's open state.\n * This should be updated by the parent popover component.\n */\n @HostBinding('attr.aria-expanded') isExpanded = false;\n\n /**\n * Event emitted when the toggle element is clicked with the left mouse button.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click = new EventEmitter();\n\n /**\n * Reference to the host DOM element.\n * Useful for querying attributes like `aria-controls`.\n */\n constructor(public hostElementRef: ElementRef) {\n super();\n }\n\n /**\n * Host binding that applies the appropriate CSS class to the toggle element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-popover__toggle')].join(' ').trim();\n }\n\n /**\n * Emits the `click` event only for left mouse button clicks.\n * Used by the popover component to toggle visibility.\n */\n @HostListener('mouseup', ['$event'])\n onClick(evt: MouseEvent): void {\n const LEFT_BUTTON = 0;\n\n if (evt.button === LEFT_BUTTON) {\n this.click.next(null);\n }\n }\n\n /**\n * Returns the native HTML element of the directive.\n * Used internally by the popover to query attributes.\n */\n public getHostElement(): HTMLElement {\n return this.hostElementRef.nativeElement;\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPopoverToggleDirective } from './ecl-popover-toggle.directive';\n\n/**\n * Component representing an ECL Popover.\n * \n * It handles toggling visibility, positioning, and closing behavior of the popover.\n */\n@Component({\n selector: 'ecl-popover',\n templateUrl: './ecl-popover.component.html',\n standalone: false,\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclPopoverComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n /**\n * Reference to the popover container element.\n */\n @ViewChild('container') eclPopoverContainerElement: ElementRef;\n\n /**\n * Reference to the scrollable content element inside the popover.\n */\n @ViewChild('scrollable') eclPopoverScrollableElement: ElementRef;\n\n /**\n * Reference to the toggle element used to open/close the popover.\n */\n @ContentChild(EclPopoverToggleDirective) eclPopoverToggle: EclPopoverToggleDirective;\n\n /**\n * Current calculated position class of the popover.\n */\n popoverPosition: string;\n \n /**\n * Controls visibility of the popover. `true` means hidden.\n */\n isHidden = true;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLeft: boolean;\n private isRight: boolean;\n private isPushLeft: boolean;\n private isPushRight: boolean;\n private isPushTop: boolean;\n private isPushBottom: boolean;\n\n private readonly topClass = 'ecl-popover--top';\n private readonly bottomClass = 'ecl-popover--bottom';\n private readonly leftClass = 'ecl-popover--left';\n private readonly rightClass = 'ecl-popover--right';\n private readonly pushTopClass = 'ecl-popover--push-top';\n private readonly pushBottomClass = 'ecl-popover--push-bottom';\n private readonly pushLeftClass = 'ecl-popover--push-left';\n private readonly pushRightClass = 'ecl-popover--push-right';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-popover'),\n ]\n .join(' ')\n .trim();\n }\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n super();\n }\n\n /**\n * Initializes event subscriptions for toggle button.\n */\n ngAfterContentInit(): void {\n this.eclPopoverToggle?.click.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.isHidden = !this.isHidden;\n this.checkPosition(); // TODO: wrap on a platformBrowser check as it calls window and document\n });\n }\n\n /**\n * Lifecycle hook that cleans up subscriptions on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Returns the value of the `aria-controls` attribute from the toggle element,\n * if available. Used for accessibility linking.\n */\n get popoverToggleAriaControls(): string | null {\n return this.eclPopoverToggle?.hostElementRef.nativeElement.getAttribute('aria-controls');\n }\n\n /**\n * Handler triggered when a click outside the popover is detected.\n * Closes the popover if it is open.\n */\n @HostListener('eclClickOutside')\n onClickOutsidePopover(): void {\n if (!this.isHidden) {\n this.onClose();\n }\n }\n\n /**\n * Closes the popover when the Escape key is pressed.\n */\n @HostListener('document:keydown.escape', ['$event'])\n onEscapeKeydownHandler(event: KeyboardEvent): void {\n this.isHidden = true;\n }\n\n /**\n * Recalculates popover position when the window is resized.\n */\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.checkPosition();\n }\n\n /**\n * Recalculates popover position when the document is scrolled.\n */\n @HostListener('document:scroll', ['$event'])\n onDocumentScroll(): void {\n this.checkPosition();\n }\n\n /**\n * Public method used to close the popover and reset related styles.\n */\n onClose(): void {\n this.isHidden = true;\n this.resetStyless();\n }\n\n private checkPosition(): void {\n setTimeout(() => {\n if (!this.isHidden) {\n this.positionPopover();\n }\n });\n }\n\n private positionPopover(): void {\n this.resetStyless();\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const screenHeight = window.innerHeight;\n const screenWidth = window.innerWidth;\n\n // Calculate available space in each direction\n const spaceTop = toggleRect.top;\n const spaceBottom = screenHeight - toggleRect.bottom;\n const spaceLeft = toggleRect.left;\n const spaceRight = screenWidth - toggleRect.right;\n\n // Find the direction with the most available space\n if ((spaceTop > spaceBottom) && (spaceTop > spaceLeft) && (spaceTop > spaceRight)) {\n this.renderer.addClass(this.el.nativeElement, this.topClass);\n } else if ((spaceBottom > spaceLeft) && (spaceBottom > spaceRight)) {\n this.renderer.addClass(this.el.nativeElement, this.bottomClass);\n } else if (spaceLeft > spaceRight) {\n this.isLeft = true;\n this.renderer.addClass(this.el.nativeElement, this.leftClass);\n } else {\n this.isRight = true;\n this.renderer.addClass(this.el.nativeElement, this.rightClass);\n }\n this.handleScrollableWidth(spaceLeft, spaceRight, screenWidth);\n this.handlePushClass(screenWidth, screenHeight);\n }\n\n private handleScrollableWidth(spaceLeft: number, spaceRight: number, screenWidth: number): void {\n // Try to use as much of the available width, respecting the max-width set.\n const scrollable = this.eclPopoverScrollableElement.nativeElement;\n const styles = getComputedStyle(scrollable);\n const maxWidth = parseInt(styles.getPropertyValue('max-width'), 10);\n const minWidth = parseInt(styles.getPropertyValue('min-width'), 10);\n const padding = parseInt(styles.getPropertyValue('padding-left'), 10) * 2;\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n let availableSpace = 0;\n\n if (this.isLeft || this.isRight) {\n availableSpace = (this.isLeft ? spaceLeft : spaceRight) * 0.9;\n } else {\n const centerPosition = (toggleRect.right - toggleRect.left) / 2;\n availableSpace = (screenWidth - centerPosition + this.eclPopoverContainerElement.nativeElement.offsetWidth / 2) * 0.9;\n }\n if (maxWidth + padding < availableSpace) {\n this.renderer.setStyle(scrollable, 'width', `${maxWidth}px`);\n } else if (availableSpace < minWidth + padding) {\n this.renderer.setStyle(scrollable, 'width', `${minWidth}px`);\n } else {\n this.renderer.setStyle(scrollable, 'width', `${availableSpace - padding}px`);\n }\n }\n\n private resetStyless(): void {\n const popoverContainer = this.eclPopoverContainerElement.nativeElement;\n this.isPushLeft = false;\n this.isPushRight = false;\n this.isPushTop = false;\n this.isPushBottom = false;\n this.isLeft = false;\n this.isRight = false;\n this.popoverPosition = null;\n this.renderer.removeClass(this.el.nativeElement, this.topClass);\n this.renderer.removeClass(this.el.nativeElement, this.bottomClass);\n this.renderer.removeClass(this.el.nativeElement, this.leftClass);\n this.renderer.removeClass(this.el.nativeElement, this.rightClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushTopClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushBottomClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushLeftClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushRightClass);\n this.renderer.removeStyle(popoverContainer, 'top');\n this.renderer.removeStyle(popoverContainer, 'right');\n this.renderer.removeStyle(popoverContainer, 'left');\n this.renderer.removeStyle(popoverContainer, 'bottom');\n this.renderer.removeStyle(popoverContainer, 'transform');\n this.renderer.removeStyle(this.eclPopoverScrollableElement.nativeElement, 'width');\n }\n\n private handlePushClass(screenWidth: number, screenHeight: number): void {\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const popoverRect = this.eclPopoverContainerElement.nativeElement.getBoundingClientRect();\n const popoverContainer = this.eclPopoverContainerElement.nativeElement;\n\n if (this.isLeft || this.isRight) {\n if (popoverRect.top < 0) {\n this.renderer.addClass(this.el.nativeElement, this.pushTopClass);\n this.renderer.setStyle(popoverContainer, 'top', `-${Math.round(toggleRect.top)}px`);\n this.isPushTop = true;\n } else if (popoverRect.bottom > screenHeight) {\n this.renderer.addClass(this.el.nativeElement, this.pushBottomClass);\n this.renderer.setStyle(popoverContainer, 'bottom', `-${Math.round(screenHeight - (toggleRect.bottom + 8))}px`);\n this.isPushBottom = true;\n }\n } else {\n if (popoverRect.left < 0) {\n this.renderer.addClass(this.el.nativeElement, this.pushLeftClass);\n this.renderer.setStyle(popoverContainer, 'left', `-${toggleRect.left}px`);\n this.renderer.setStyle(popoverContainer, 'right', 'auto');\n this.renderer.setStyle(popoverContainer, 'transform', 'none');\n this.isPushLeft = true;\n }\n if (popoverRect.right > screenWidth) {\n this.renderer.addClass(this.el.nativeElement, this.pushRightClass);\n this.renderer.setStyle(popoverContainer, 'left', `-${screenWidth - toggleRect.right}px`);\n this.renderer.setStyle(popoverContainer, 'right', 'auto');\n this.renderer.setStyle(popoverContainer, 'transform', 'none');\n this.isPushRight = true;\n }\n }\n\n this.handleArrowPosition();\n }\n\n private handleArrowPosition(): void {\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const popoverRect = this.eclPopoverContainerElement.nativeElement.getBoundingClientRect();\n\n if (this.isLeft || this.isRight) {\n if (this.isPushBottom) {\n this.popoverPosition = `${Math.round(toggleRect.top - popoverRect.top + toggleRect.height / 2)}px`;\n } else if (this.isPushTop) {\n this.popoverPosition = `${Math.round(popoverRect.top + toggleRect.top + toggleRect.height / 2)}px`;\n }\n } else {\n if (this.isPushRight) {\n this.popoverPosition = `${Math.round(popoverRect.right - (toggleRect.right - toggleRect.width / 2))}px`;\n } else if (this.isPushLeft) {\n this.popoverPosition = `${Math.round(popoverRect.left + toggleRect.left + toggleRect.width / 2)}px`;\n }\n }\n }\n}\n","<ng-content select=\"[eclPopoverToggle]\"></ng-content>\n\n<div #container class=\"ecl-popover__container\" [style.--ecl-popover-position]=\"popoverPosition\" [hidden]=\"isHidden\" [attr.id]=\"popoverToggleAriaControls\">\n <div #scrollable class=\"ecl-popover__scrollable\">\n <button eclButton variant=\"tertiary\" (click)=\"onClose()\" class=\"ecl-popover__close\" isIconOnly>\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n <ng-content select=\"[eclPopoverContent]\"></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclPopoverContentDirective } from './ecl-popover-content.directive';\nimport { EclPopoverToggleDirective } from './ecl-popover-toggle.directive';\nimport { EclPopoverComponent } from './ecl-popover.component';\n\nconst COMPONENTS = [\n EclPopoverComponent,\n EclPopoverContentDirective,\n EclPopoverToggleDirective,\n];\n\n@NgModule({\n imports: [CommonModule, EclIconModule, EclLinkModule, EclButtonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-popover.mjs","sources":["../../components/ecl-popover/ecl-popover-content.directive.ts","../../components/ecl-popover/ecl-popover-toggle.directive.ts","../../components/ecl-popover/ecl-popover.component.ts","../../components/ecl-popover/ecl-popover.component.html","../../components/ecl-popover/ecl-popover.module.ts","../../components/ecl-popover/eui-ecl-components-ecl-popover.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the content section of an `ecl-popover` component.\n *\n * Responsible for applying the appropriate CSS class to the popover content container.\n */\n@Directive({\n selector: '[eclPopoverContent]',\n standalone: false,\n})\nexport class EclPopoverContentDirective extends ECLBaseDirective {\n /**\n * Host binding that applies the CSS class to style the popover content.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-popover__content')].join(' ').trim();\n }\n}\n","import { Directive, ElementRef, EventEmitter, Host, HostBinding, HostListener, Output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to toggle the visibility of an `ecl-popover` component.\n *\n * This directive emits a custom click event and manages accessibility attributes.\n */\n@Directive({\n selector: '[eclPopoverToggle]',\n standalone: false,\n})\nexport class EclPopoverToggleDirective extends ECLBaseDirective {\n /**\n * Sets the `aria-expanded` attribute to reflect the popover's open state.\n * This should be updated by the parent popover component.\n */\n @HostBinding('attr.aria-expanded') isExpanded = false;\n\n /**\n * Event emitted when the toggle element is clicked with the left mouse button.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click = new EventEmitter();\n\n /**\n * Reference to the host DOM element.\n * Useful for querying attributes like `aria-controls`.\n */\n constructor(public hostElementRef: ElementRef) {\n super();\n }\n\n /**\n * Host binding that applies the appropriate CSS class to the toggle element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-popover__toggle')].join(' ').trim();\n }\n\n /**\n * Emits the `click` event only for left mouse button clicks.\n * Used by the popover component to toggle visibility.\n */\n @HostListener('mouseup', ['$event'])\n onClick(evt: MouseEvent): void {\n const LEFT_BUTTON = 0;\n\n if (evt.button === LEFT_BUTTON) {\n this.click.next(null);\n }\n }\n\n /**\n * Returns the native HTML element of the directive.\n * Used internally by the popover to query attributes.\n */\n public getHostElement(): HTMLElement {\n return this.hostElementRef.nativeElement;\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPopoverToggleDirective } from './ecl-popover-toggle.directive';\n\n/**\n * Component representing an ECL Popover.\n * \n * It handles toggling visibility, positioning, and closing behavior of the popover.\n */\n@Component({\n selector: 'ecl-popover',\n templateUrl: './ecl-popover.component.html',\n standalone: false,\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclPopoverComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n /**\n * Reference to the popover container element.\n */\n @ViewChild('container') eclPopoverContainerElement: ElementRef;\n\n /**\n * Reference to the scrollable content element inside the popover.\n */\n @ViewChild('scrollable') eclPopoverScrollableElement: ElementRef;\n\n /**\n * Reference to the toggle element used to open/close the popover.\n */\n @ContentChild(EclPopoverToggleDirective) eclPopoverToggle: EclPopoverToggleDirective;\n\n /**\n * Current calculated position class of the popover.\n */\n popoverPosition: string;\n \n /**\n * Controls visibility of the popover. `true` means hidden.\n */\n isHidden = true;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLeft: boolean;\n private isRight: boolean;\n private isPushLeft: boolean;\n private isPushRight: boolean;\n private isPushTop: boolean;\n private isPushBottom: boolean;\n\n private readonly topClass = 'ecl-popover--top';\n private readonly bottomClass = 'ecl-popover--bottom';\n private readonly leftClass = 'ecl-popover--left';\n private readonly rightClass = 'ecl-popover--right';\n private readonly pushTopClass = 'ecl-popover--push-top';\n private readonly pushBottomClass = 'ecl-popover--push-bottom';\n private readonly pushLeftClass = 'ecl-popover--push-left';\n private readonly pushRightClass = 'ecl-popover--push-right';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-popover'),\n ]\n .join(' ')\n .trim();\n }\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n super();\n }\n\n /**\n * Initializes event subscriptions for toggle button.\n */\n ngAfterContentInit(): void {\n this.eclPopoverToggle?.click.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.isHidden = !this.isHidden;\n this.checkPosition(); // TODO: wrap on a platformBrowser check as it calls window and document\n });\n }\n\n /**\n * Lifecycle hook that cleans up subscriptions on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Returns the value of the `aria-controls` attribute from the toggle element,\n * if available. Used for accessibility linking.\n */\n get popoverToggleAriaControls(): string | null {\n return this.eclPopoverToggle?.hostElementRef.nativeElement.getAttribute('aria-controls');\n }\n\n /**\n * Handler triggered when a click outside the popover is detected.\n * Closes the popover if it is open.\n */\n @HostListener('eclClickOutside')\n onClickOutsidePopover(): void {\n if (!this.isHidden) {\n this.onClose();\n }\n }\n\n /**\n * Closes the popover when the Escape key is pressed.\n */\n @HostListener('document:keydown.escape', ['$event'])\n onEscapeKeydownHandler(event: KeyboardEvent): void {\n this.isHidden = true;\n }\n\n /**\n * Recalculates popover position when the window is resized.\n */\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.checkPosition();\n }\n\n /**\n * Recalculates popover position when the document is scrolled.\n */\n @HostListener('document:scroll', ['$event'])\n onDocumentScroll(): void {\n this.checkPosition();\n }\n\n /**\n * Public method used to close the popover and reset related styles.\n */\n onClose(): void {\n this.isHidden = true;\n this.resetStyless();\n }\n\n private checkPosition(): void {\n setTimeout(() => {\n if (!this.isHidden) {\n this.positionPopover();\n }\n });\n }\n\n private positionPopover(): void {\n this.resetStyless();\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const screenHeight = window.innerHeight;\n const screenWidth = window.innerWidth;\n\n // Calculate available space in each direction\n const spaceTop = toggleRect.top;\n const spaceBottom = screenHeight - toggleRect.bottom;\n const spaceLeft = toggleRect.left;\n const spaceRight = screenWidth - toggleRect.right;\n\n // Find the direction with the most available space\n if ((spaceTop > spaceBottom) && (spaceTop > spaceLeft) && (spaceTop > spaceRight)) {\n this.renderer.addClass(this.el.nativeElement, this.topClass);\n } else if ((spaceBottom > spaceLeft) && (spaceBottom > spaceRight)) {\n this.renderer.addClass(this.el.nativeElement, this.bottomClass);\n } else if (spaceLeft > spaceRight) {\n this.isLeft = true;\n this.renderer.addClass(this.el.nativeElement, this.leftClass);\n } else {\n this.isRight = true;\n this.renderer.addClass(this.el.nativeElement, this.rightClass);\n }\n this.handleScrollableWidth(spaceLeft, spaceRight, screenWidth);\n this.handlePushClass(screenWidth, screenHeight);\n }\n\n private handleScrollableWidth(spaceLeft: number, spaceRight: number, screenWidth: number): void {\n // Try to use as much of the available width, respecting the max-width set.\n const scrollable = this.eclPopoverScrollableElement.nativeElement;\n const styles = getComputedStyle(scrollable);\n const maxWidth = parseInt(styles.getPropertyValue('max-width'), 10);\n const minWidth = parseInt(styles.getPropertyValue('min-width'), 10);\n const padding = parseInt(styles.getPropertyValue('padding-left'), 10) * 2;\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n let availableSpace = 0;\n\n if (this.isLeft || this.isRight) {\n availableSpace = (this.isLeft ? spaceLeft : spaceRight) * 0.9;\n } else {\n const centerPosition = (toggleRect.right - toggleRect.left) / 2;\n availableSpace = (screenWidth - centerPosition + this.eclPopoverContainerElement.nativeElement.offsetWidth / 2) * 0.9;\n }\n if (maxWidth + padding < availableSpace) {\n this.renderer.setStyle(scrollable, 'width', `${maxWidth}px`);\n } else if (availableSpace < minWidth + padding) {\n this.renderer.setStyle(scrollable, 'width', `${minWidth}px`);\n } else {\n this.renderer.setStyle(scrollable, 'width', `${availableSpace - padding}px`);\n }\n }\n\n private resetStyless(): void {\n const popoverContainer = this.eclPopoverContainerElement.nativeElement;\n this.isPushLeft = false;\n this.isPushRight = false;\n this.isPushTop = false;\n this.isPushBottom = false;\n this.isLeft = false;\n this.isRight = false;\n this.popoverPosition = null;\n this.renderer.removeClass(this.el.nativeElement, this.topClass);\n this.renderer.removeClass(this.el.nativeElement, this.bottomClass);\n this.renderer.removeClass(this.el.nativeElement, this.leftClass);\n this.renderer.removeClass(this.el.nativeElement, this.rightClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushTopClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushBottomClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushLeftClass);\n this.renderer.removeClass(this.el.nativeElement, this.pushRightClass);\n this.renderer.removeStyle(popoverContainer, 'top');\n this.renderer.removeStyle(popoverContainer, 'right');\n this.renderer.removeStyle(popoverContainer, 'left');\n this.renderer.removeStyle(popoverContainer, 'bottom');\n this.renderer.removeStyle(popoverContainer, 'transform');\n this.renderer.removeStyle(this.eclPopoverScrollableElement.nativeElement, 'width');\n }\n\n private handlePushClass(screenWidth: number, screenHeight: number): void {\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const popoverRect = this.eclPopoverContainerElement.nativeElement.getBoundingClientRect();\n const popoverContainer = this.eclPopoverContainerElement.nativeElement;\n\n if (this.isLeft || this.isRight) {\n if (popoverRect.top < 0) {\n this.renderer.addClass(this.el.nativeElement, this.pushTopClass);\n this.renderer.setStyle(popoverContainer, 'top', `-${Math.round(toggleRect.top)}px`);\n this.isPushTop = true;\n } else if (popoverRect.bottom > screenHeight) {\n this.renderer.addClass(this.el.nativeElement, this.pushBottomClass);\n this.renderer.setStyle(popoverContainer, 'bottom', `-${Math.round(screenHeight - (toggleRect.bottom + 8))}px`);\n this.isPushBottom = true;\n }\n } else {\n if (popoverRect.left < 0) {\n this.renderer.addClass(this.el.nativeElement, this.pushLeftClass);\n this.renderer.setStyle(popoverContainer, 'left', `-${toggleRect.left}px`);\n this.renderer.setStyle(popoverContainer, 'right', 'auto');\n this.renderer.setStyle(popoverContainer, 'transform', 'none');\n this.isPushLeft = true;\n }\n if (popoverRect.right > screenWidth) {\n this.renderer.addClass(this.el.nativeElement, this.pushRightClass);\n this.renderer.setStyle(popoverContainer, 'left', `-${screenWidth - toggleRect.right}px`);\n this.renderer.setStyle(popoverContainer, 'right', 'auto');\n this.renderer.setStyle(popoverContainer, 'transform', 'none');\n this.isPushRight = true;\n }\n }\n\n this.handleArrowPosition();\n }\n\n private handleArrowPosition(): void {\n const toggleElement = this.eclPopoverToggle.getHostElement();\n const toggleRect = toggleElement.getBoundingClientRect();\n const popoverRect = this.eclPopoverContainerElement.nativeElement.getBoundingClientRect();\n\n if (this.isLeft || this.isRight) {\n if (this.isPushBottom) {\n this.popoverPosition = `${Math.round(toggleRect.top - popoverRect.top + toggleRect.height / 2)}px`;\n } else if (this.isPushTop) {\n this.popoverPosition = `${Math.round(popoverRect.top + toggleRect.top + toggleRect.height / 2)}px`;\n }\n } else {\n if (this.isPushRight) {\n this.popoverPosition = `${Math.round(popoverRect.right - (toggleRect.right - toggleRect.width / 2))}px`;\n } else if (this.isPushLeft) {\n this.popoverPosition = `${Math.round(popoverRect.left + toggleRect.left + toggleRect.width / 2)}px`;\n }\n }\n }\n}\n","<ng-content select=\"[eclPopoverToggle]\"></ng-content>\n\n<div #container class=\"ecl-popover__container\" [style.--ecl-popover-position]=\"popoverPosition\" [hidden]=\"isHidden\" [attr.id]=\"popoverToggleAriaControls\">\n <div #scrollable class=\"ecl-popover__scrollable\">\n <button eclButton variant=\"tertiary\" (click)=\"onClose()\" class=\"ecl-popover__close\" isIconOnly>\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n <ng-content select=\"[eclPopoverContent]\"></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclPopoverContentDirective } from './ecl-popover-content.directive';\nimport { EclPopoverToggleDirective } from './ecl-popover-toggle.directive';\nimport { EclPopoverComponent } from './ecl-popover.component';\n\nconst COMPONENTS = [\n EclPopoverComponent,\n EclPopoverContentDirective,\n EclPopoverToggleDirective,\n];\n\n@NgModule({\n imports: [CommonModule, EclIconModule, EclLinkModule, EclButtonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,11 +4,24 @@ import { booleanAttribute, HostBinding, Input, Component, ViewEncapsulation, for
4
4
  import { ECLBaseDirective } from '@eui/ecl/core';
5
5
  import * as i1 from '@angular/forms';
6
6
 
7
+ /**
8
+ * Component that displays help text for the ECL radio input.
9
+ *
10
+ * Supports styling for the disabled state and applies the proper ECL CSS classes.
11
+ * Should be placed inside a component using eclRadio.
12
+ */
7
13
  class EclRadioHelpComponent extends ECLBaseDirective {
8
14
  constructor() {
9
15
  super(...arguments);
16
+ /**
17
+ * Adds styling for a disabled help text.
18
+ */
10
19
  this.isDisabled = false;
11
20
  }
21
+ /**
22
+ * Returns the CSS classes applied to the host element.
23
+ * Includes the base ecl-radio__help class.
24
+ */
12
25
  get cssClasses() {
13
26
  return [super.getCssClasses('ecl-radio__help')].join(' ').trim();
14
27
  }
@@ -29,12 +42,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
29
42
  args: ['class']
30
43
  }] } });
31
44
 
45
+ /**
46
+ * Component representing a label for an ECL radio button.
47
+ *
48
+ * Used inside an element with the [eclRadio] directive to provide
49
+ * a styled label that can reflect the radio's state.
50
+ */
32
51
  class EclRadioLabelComponent extends ECLBaseDirective {
33
52
  constructor() {
34
53
  super(...arguments);
54
+ /**
55
+ * Adds styling for an invalid state.
56
+ */
35
57
  this.isInvalid = false;
58
+ /**
59
+ * Adds styling for a disabled state.
60
+ */
36
61
  this.isDisabled = false;
37
62
  }
63
+ /**
64
+ * Returns the CSS classes applied to the host element.
65
+ * Includes the base `ecl-radio__label` class.
66
+ */
38
67
  get cssClasses() {
39
68
  return [super.getCssClasses('ecl-radio__label')].join(' ').trim();
40
69
  }
@@ -55,15 +84,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
55
84
  args: ['class']
56
85
  }] } });
57
86
 
87
+ /**
88
+ * Directive that applies the ECL radio button styling and behavior.
89
+ *
90
+ * Should be applied to native radio input elements to enhance them
91
+ * with ECL styles and support for invalid, disabled and binary states.
92
+ */
58
93
  class EclRadioDirective extends ECLBaseDirective {
59
94
  constructor() {
60
95
  super(...arguments);
96
+ /**
97
+ * Adds the `ecl-radio--disabled` class to the host element when true.
98
+ */
61
99
  this.isDisabled = false;
100
+ /**
101
+ * Adds the `ecl-radio--invalid` class to the host element when true.
102
+ */
62
103
  this.isInvalid = false;
63
104
  }
105
+ /**
106
+ * Returns the CSS classes to apply on the host element.
107
+ * Includes the base `ecl-radio` class and the binary modifier if applicable.
108
+ */
64
109
  get cssClasses() {
65
110
  return [super.getCssClasses('ecl-radio'), this.isBinary ? 'ecl-radio--binary' : ''].join(' ').trim();
66
111
  }
112
+ /**
113
+ * Angular lifecycle hook called during every change detection run.
114
+ * Used to update child components with the current disabled and invalid states.
115
+ */
67
116
  ngDoCheck() {
68
117
  this.updateChildElements();
69
118
  }
@@ -111,11 +160,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
111
160
  args: ['class']
112
161
  }] } });
113
162
 
163
+ /**
164
+ * Directive that decorates native <input> elements to be styled as ECL radio inputs.
165
+ *
166
+ * Applies the proper ECL CSS classes and integrates with Angular forms
167
+ * to reflect validation states (invalid, disabled) in the parent ECL radio directive.
168
+ * Should be used together with the eclRadio directive.
169
+ */
114
170
  class EclRadioInputDirective extends ECLBaseDirective {
171
+ /**
172
+ * Returns the CSS classes applied to the host input element.
173
+ * Includes the base ecl-radio__input class.
174
+ */
115
175
  get cssClasses() {
116
176
  return [super.getCssClasses('ecl-radio__input')].join(' ').trim();
117
177
  }
118
- constructor(eclRadio, ngControl, cd) {
178
+ constructor(
179
+ /**
180
+ * Reference to the parent EclRadioDirective.
181
+ * Used internally to update radio validation and disabled states.
182
+ */
183
+ eclRadio,
184
+ /**
185
+ * Reference to the Angular form control, if present.
186
+ * Used internally to synchronize form state.
187
+ */
188
+ ngControl, cd) {
119
189
  super();
120
190
  this.eclRadio = eclRadio;
121
191
  this.ngControl = ngControl;