@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
@@ -16,7 +16,14 @@ import { Subject, of } from 'rxjs';
16
16
  import { takeUntil, mergeWith } from 'rxjs/operators';
17
17
  import * as i1$1 from '@angular/cdk/layout';
18
18
 
19
+ /**
20
+ * Component representing a tab label within ECL Tabs.
21
+ * Used as a container for the tab's visual label content.
22
+ */
19
23
  class EclTabLabelComponent extends ECLBaseDirective {
24
+ /**
25
+ * Reference to the host DOM element.
26
+ */
20
27
  constructor(el) {
21
28
  super();
22
29
  this.el = el;
@@ -29,31 +36,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
29
36
  args: [{ selector: 'ecl-tab-label', standalone: false, template: "<ng-content></ng-content>\n" }]
30
37
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
31
38
 
39
+ /**
40
+ * Event emitted when a tab is selected.
41
+ *
42
+ * Contains a reference to the selected tab instance.
43
+ */
32
44
  class EclTabSelectEvent extends EclBaseEvent {
45
+ /**
46
+ * The tab instance that has been selected.
47
+ */
33
48
  constructor(tab) {
34
49
  super();
35
50
  this.tab = tab;
36
51
  }
37
52
  }
38
53
 
54
+ /**
55
+ * Represents a single tab inside the ECL Tabs component.
56
+ * Manages its label, state (active, hidden), and interaction events like click or keydown.
57
+ *
58
+ * Note: The old selector `ecl-tab` is deprecated and will be removed in v20.
59
+ * Use `div[eclTab]` instead.
60
+ */
39
61
  class EclTabComponent extends ECLBaseDirective {
40
62
  constructor(elementRef) {
41
63
  super();
42
64
  this.elementRef = elementRef;
65
+ /**
66
+ * Hides the tab when true by applying the `ecl-tabs__item--hidden` CSS class.
67
+ */
43
68
  this.isHidden = false;
69
+ /**
70
+ * Marks the tab as active.
71
+ */
44
72
  this.isActive = false;
73
+ /**
74
+ * Emits when the tab is selected via click.
75
+ */
45
76
  this.selectTab = new EventEmitter();
77
+ /**
78
+ * Emits when a keydown event occurs on the tab.
79
+ */
46
80
  this.keydownTab = new EventEmitter();
81
+ /**
82
+ * Contains the inner HTML of the tab label.
83
+ */
47
84
  this.tabLabel = '';
85
+ /**
86
+ * The tab index value for the tab's link.
87
+ */
48
88
  this.hrefTabindex = -1;
49
89
  this.isFirstCall = true;
50
90
  if (this.isUsingOldSelector) {
51
91
  console.warn('"ecl-tab" selector is deprecated; use "div[eclTab]" instead.');
52
92
  }
53
93
  }
94
+ /**
95
+ * Returns the host HTML element of the tab component.
96
+ */
54
97
  get hostElement() {
55
98
  return this.elementRef.nativeElement;
56
99
  }
100
+ /**
101
+ * Determines if the deprecated selector `<ecl-tab>` is used.
102
+ */
57
103
  get isUsingOldSelector() {
58
104
  if (this.elementRef.nativeElement.tagName.toLowerCase() === 'ecl-tab') {
59
105
  return true;
@@ -63,12 +109,22 @@ class EclTabComponent extends ECLBaseDirective {
63
109
  ngAfterViewInit() {
64
110
  this.tabLabel = this.label.el.nativeElement.innerHTML;
65
111
  }
112
+ /**
113
+ * Returns the CSS classes applied to the host element.
114
+ */
66
115
  get cssClasses() {
67
116
  return [super.getCssClasses('ecl-tabs__item')].join(' ').trim();
68
117
  }
118
+ /**
119
+ * Returns the inner HTML content of the tab label.
120
+ */
69
121
  getTabLabel() {
70
122
  return this.label.el.nativeElement.innerHTML;
71
123
  }
124
+ /**
125
+ * Returns the width of the tab element in pixels.
126
+ * The measurement is cached after the first call.
127
+ */
72
128
  getWidth() {
73
129
  if (this.isFirstCall) {
74
130
  this.width = this.hostElement.getBoundingClientRect().width;
@@ -76,15 +132,27 @@ class EclTabComponent extends ECLBaseDirective {
76
132
  }
77
133
  return this.width;
78
134
  }
135
+ /**
136
+ * Handles a click event on the tab and emits the `selectTab` event.
137
+ */
79
138
  onTabClick() {
80
139
  this.selectTab.next(new EclTabSelectEvent(this));
81
140
  }
141
+ /**
142
+ * Handles a keydown event on the tab and emits the `keydownTab` event.
143
+ */
82
144
  onKeydown(event) {
83
145
  this.keydownTab.next(event);
84
146
  }
147
+ /**
148
+ * Calls the focus method on the inner link directive.
149
+ */
85
150
  onFocus() {
86
151
  this.link.onFocus();
87
152
  }
153
+ /**
154
+ * Calls the blur method on the inner link directive.
155
+ */
88
156
  onBlur() {
89
157
  this.link.onBlur();
90
158
  }
@@ -128,6 +196,12 @@ var ShiftDirection;
128
196
  ShiftDirection["NEXT"] = "next";
129
197
  ShiftDirection["PREVIOUS"] = "prev";
130
198
  })(ShiftDirection || (ShiftDirection = {}));
199
+ /**
200
+ * ECL Tabs component for displaying tabbed content and managing tab selection and navigation.
201
+ *
202
+ * Note: The old selector `ecl-tabs` is deprecated and will be removed in v20.
203
+ * Use `div[eclTabs]` instead.
204
+ */
131
205
  class EclTabsComponent extends ECLBaseDirective {
132
206
  constructor(differs, cdkBreakpointObserver, cd, el, eclRtlService, platformId) {
133
207
  super();
@@ -137,17 +211,53 @@ class EclTabsComponent extends ECLBaseDirective {
137
211
  this.el = el;
138
212
  this.eclRtlService = eclRtlService;
139
213
  this.platformId = platformId;
214
+ /**
215
+ * Adds `ecl-tabs` class to the host if not using the deprecated selector.
216
+ */
140
217
  this.hasClass = !this.isUsingOldSelector;
218
+ /**
219
+ * Class applied to the tab body container.
220
+ */
141
221
  this.bodyClass = 'ecl-u-mt-s';
222
+ /**
223
+ * Emits an event when a tab is selected.
224
+ */
142
225
  this.tabSelect = new EventEmitter();
226
+ /**
227
+ * Tabs displayed in the dropdown.
228
+ */
143
229
  this.dropdownTabs = [];
230
+ /**
231
+ * Tabs displayed in the visible list.
232
+ */
144
233
  this.listTabs = [];
234
+ /**
235
+ * Index of the active tab.
236
+ */
145
237
  this.index = 0;
238
+ /**
239
+ * Indicates whether the dropdown is expanded.
240
+ */
146
241
  this.isDropdownExpanded = false;
242
+ /**
243
+ * Indicates whether the mobile breakpoint is active.
244
+ */
147
245
  this.isMobileBreakpoint = false;
246
+ /**
247
+ * Indicates whether the "more" button is shown.
248
+ */
148
249
  this.isMoreButtonShow = true;
250
+ /**
251
+ * Indicates whether the scroll previous button is shown.
252
+ */
149
253
  this.isScrollPrevBtnShow = false;
254
+ /**
255
+ * Indicates whether the scroll next button is shown.
256
+ */
150
257
  this.isScrollNextBtnShow = false;
258
+ /**
259
+ * CSS transform applied to the scrollable tab list.
260
+ */
151
261
  this.styleTransform = 'translate3d(0px, 0px, 0px)';
152
262
  this.destroy$ = new Subject();
153
263
  this.isFirstCall = true;
@@ -179,42 +289,75 @@ class EclTabsComponent extends ECLBaseDirective {
179
289
  this.closeDropdown();
180
290
  }
181
291
  }
292
+ /**
293
+ * Whether the deprecated selector is being used.
294
+ */
182
295
  get isUsingOldSelector() {
183
296
  if (this.el.nativeElement.tagName.toLowerCase() === 'ecl-tabs') {
184
297
  return true;
185
298
  }
186
299
  return false;
187
300
  }
301
+ /**
302
+ * Whether any visible tab is active.
303
+ */
188
304
  get isMoreButtonActive() {
189
305
  return this.listTabs.find((el) => el.isActive) !== undefined;
190
306
  }
307
+ /**
308
+ * Scrolls the tab list to the left.
309
+ */
191
310
  onScrollPrev() {
192
311
  this.shiftTabs(ShiftDirection.PREVIOUS);
193
312
  }
313
+ /**
314
+ * Scrolls the tab list to the right.
315
+ */
194
316
  onScrollNext() {
195
317
  this.shiftTabs(ShiftDirection.NEXT);
196
318
  }
319
+ /**
320
+ * Toggles the dropdown visibility.
321
+ */
197
322
  onDropdownToggle() {
198
323
  this.isDropdownExpanded = !this.isDropdownExpanded;
199
324
  }
325
+ /**
326
+ * Returns the style value for tab list width.
327
+ */
200
328
  getTabsWidthStyle() {
201
329
  return this.isMobileBreakpoint ? `${this.getTabsWidth()}px` : 'auto';
202
330
  }
331
+ /**
332
+ * Calculates total width of all tabs.
333
+ */
203
334
  getTabsWidth() {
204
335
  return this.tabs.reduce((total, item) => (total += Math.ceil(item.getWidth())), 0);
205
336
  }
337
+ /**
338
+ * Returns the number of tabs hidden in dropdown.
339
+ */
206
340
  getHiddenTabsCount() {
207
341
  return this.tabs.filter((item) => item.isHidden).length;
208
342
  }
343
+ /**
344
+ * Returns the label of the tab at the specified index.
345
+ */
209
346
  getTabLabel(index) {
210
347
  return this.getTabsAsArray()[index].getTabLabel();
211
348
  }
349
+ /**
350
+ * Returns the duration of the transition animation.
351
+ */
212
352
  getTransitionDuration() {
213
353
  if (this.isMobileBreakpoint) {
214
354
  return '0.4s';
215
355
  }
216
356
  return '0';
217
357
  }
358
+ /**
359
+ * Handles blur event when navigating tabs via keyboard.
360
+ */
218
361
  onTabBlur(evt) {
219
362
  this.closeDropdown();
220
363
  if (evt.shiftKey) {
@@ -225,11 +368,19 @@ class EclTabsComponent extends ECLBaseDirective {
225
368
  this.getLastVisibleTab().onBlur();
226
369
  }
227
370
  }
371
+ /**
372
+ * Handles tab selection.
373
+ * @param tab Tab to activate.
374
+ */
228
375
  onTabSelect(tab) {
229
376
  this.deactivateAllTabs(this.tabs.toArray(), this.listTabs);
230
377
  this.activateTab(tab);
231
378
  this.sendTabSelectEvent(tab);
232
379
  }
380
+ /**
381
+ * Handles right arrow key navigation.
382
+ * @param index Current tab index.
383
+ */
233
384
  onTabKeydownArrowRight(index) {
234
385
  if (this.isMobileBreakpoint) {
235
386
  this.shiftTabs(ShiftDirection.NEXT);
@@ -244,6 +395,10 @@ class EclTabsComponent extends ECLBaseDirective {
244
395
  this.focusOnNextTab(index);
245
396
  }
246
397
  }
398
+ /**
399
+ * Handles left arrow key navigation.
400
+ * @param index Current tab index.
401
+ */
247
402
  onTabKeydownArrowLeft(index) {
248
403
  if (this.isMobileBreakpoint) {
249
404
  this.shiftTabs(ShiftDirection.PREVIOUS);
@@ -258,12 +413,23 @@ class EclTabsComponent extends ECLBaseDirective {
258
413
  this.focusOnPrevTab(index);
259
414
  }
260
415
  }
416
+ /**
417
+ * Focuses the first tab in the list.
418
+ */
261
419
  onTabKeydownHome() {
262
420
  this.focusOnFirstTab();
263
421
  }
422
+ /**
423
+ * Focuses the last tab in the list.
424
+ */
264
425
  onTabKeydownEnd() {
265
426
  this.focusOnLastTab();
266
427
  }
428
+ /**
429
+ * Handles all supported keyboard events for a tab.
430
+ * @param event KeyboardEvent triggered.
431
+ * @param tab Target tab.
432
+ */
267
433
  onTabKeydown(event, tab) {
268
434
  event.preventDefault();
269
435
  if (event instanceof KeyboardEvent) {
@@ -644,13 +810,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
644
810
  }] } });
645
811
 
646
812
  /**
647
- * @deprecated - this component is deprecated and will be removed in v20
813
+ * @deprecated
814
+ * This component is deprecated and will be removed in v20.
815
+ *
816
+ * Represents a "More" tab item used to group additional tabs when space is limited.
648
817
  */
649
818
  class EclTabMoreComponent extends ECLBaseDirective {
650
819
  constructor() {
651
820
  super(...arguments);
821
+ /**
822
+ * Controls whether the tab is hidden.
823
+ * When true, the `ecl-tabs__item--hidden` class is applied.
824
+ */
652
825
  this.isHidden = false;
653
826
  }
827
+ /**
828
+ * Host CSS classes applied to the component.
829
+ */
654
830
  get cssClasses() {
655
831
  return [super.getCssClasses('ecl-tabs__item ecl-tabs__item--more')].join(' ').trim();
656
832
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-tabs.mjs","sources":["../../components/ecl-tabs/ecl-tab-label.component.ts","../../components/ecl-tabs/ecl-tab-label.component.html","../../components/ecl-tabs/events/ecl-tab-select.event.ts","../../components/ecl-tabs/ecl-tab.component.ts","../../components/ecl-tabs/ecl-tab.component.html","../../components/ecl-tabs/ecl-tabs.component.ts","../../components/ecl-tabs/ecl-tabs.component.html","../../components/ecl-tabs/ecl-tab-more.component.ts","../../components/ecl-tabs/ecl-tab-more.component.html","../../components/ecl-tabs/ecl-tabs.module.ts","../../components/ecl-tabs/eui-ecl-components-ecl-tabs.ts"],"sourcesContent":["import { Component, ElementRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Component({\n selector: 'ecl-tab-label',\n templateUrl: './ecl-tab-label.component.html',\n standalone: false,\n})\nexport class EclTabLabelComponent extends ECLBaseDirective {\n constructor(public el: ElementRef) {\n super();\n }\n}\n","<ng-content></ng-content>\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclTab } from '../models/ecl-tab.model';\n\nexport class EclTabSelectEvent extends EclBaseEvent {\n constructor(public tab: EclTab) {\n super();\n }\n}","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTab } from './models/ecl-tab.model';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\n\n@Component({\n /**\n * @deprecated - selector 'ecl-tab' is deprecated and will be removed in v 20\n */\n selector: 'ecl-tab, div[eclTab]',\n templateUrl: './ecl-tab.component.html',\n standalone: false,\n})\nexport class EclTabComponent extends ECLBaseDirective implements EclTab, AfterViewInit {\n @Input() id: string;\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-tabs__item--hidden') isHidden = false;\n @Input({ transform: booleanAttribute }) isActive = false;\n\n @Output() selectTab = new EventEmitter<EclTabSelectEvent>();\n @Output() keydownTab = new EventEmitter<Event>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('content') contentTemplate: TemplateRef<any>;\n @ViewChild(EclLinkDirective) link: EclLinkDirective;\n\n @ContentChild(EclTabLabelComponent) label: EclTabLabelComponent;\n\n public tabLabel = '';\n hrefTabindex = -1;\n private isFirstCall = true;\n private width: number;\n\n constructor(private elementRef: ElementRef) {\n super();\n if (this.isUsingOldSelector) {\n console.warn('\"ecl-tab\" selector is deprecated; use \"div[eclTab]\" instead.');\n }\n }\n\n get hostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n get isUsingOldSelector(): boolean {\n if (this.elementRef.nativeElement.tagName.toLowerCase() === 'ecl-tab') {\n return true;\n }\n return false;\n }\n\n ngAfterViewInit(): void {\n this.tabLabel = this.label.el.nativeElement.innerHTML;\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tabs__item')].join(' ').trim();\n }\n\n getTabLabel(): string {\n return this.label.el.nativeElement.innerHTML;\n }\n\n public getWidth(): number {\n if (this.isFirstCall) {\n this.width = this.hostElement.getBoundingClientRect().width;\n this.isFirstCall = false;\n }\n return this.width;\n }\n\n onTabClick(): void {\n this.selectTab.next(new EclTabSelectEvent(this));\n }\n\n onKeydown(event: Event): void {\n this.keydownTab.next(event);\n }\n\n onFocus(): void {\n this.link.onFocus();\n }\n\n onBlur(): void {\n this.link.onBlur();\n }\n}\n","<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer\"\n [class.ecl-tabs__link--active]=\"isActive\"\n [attr.aria-selected]=\"isActive\"\n [tabindex]=\"hrefTabindex\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onTabClick()\">\n <ng-content select=\"ecl-tab-label\"></ng-content>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n afterNextRender,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Observable, of, Subject } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\n\nexport enum ShiftDirection {\n NEXT = 'next',\n PREVIOUS = 'prev',\n}\n\n@Component({\n /**\n * @deprecated - selector 'ecl-tabs' is deprecated and will be removed in v 20\n */\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclTabs], ecl-tabs',\n templateUrl: './ecl-tabs.component.html',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclTabsComponent extends ECLBaseDirective implements OnInit, OnDestroy {\n\n @HostBinding('class.ecl-tabs') hasClass = !this.isUsingOldSelector;\n @Input() bodyClass = 'ecl-u-mt-s';\n @Output() tabSelect = new EventEmitter<EclTabSelectEvent>();\n\n @ContentChildren(forwardRef(() => EclTabComponent)) tabs: QueryList<EclTabComponent>;\n\n @ViewChild('tabsList') tabsList: ElementRef;\n @ViewChild('moreButton') moreButton: EclButtonComponent;\n @ViewChild('btnPrev') btnPrev: EclButtonComponent;\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n @ViewChild('dropdownList') dropdownList: ElementRef;\n dropdownTabs: Array<EclTabComponent> = [];\n listTabs: Array<EclTabComponent> = [];\n\n index = 0;\n isDropdownExpanded = false;\n isMobileBreakpoint = false;\n isMoreButtonShow = true;\n isScrollPrevBtnShow = false;\n isScrollNextBtnShow = false;\n styleTransform = 'translate3d(0px, 0px, 0px)';\n\n private differ: IterableDiffer<EclTabComponent>;\n private diff: IterableChanges<EclTabComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isFirstCall = true;\n private isRtl = false;\n private moreBtnWidth: number;\n private TIMEOUT_INTERVAL = 0;\n\n constructor(\n private differs: IterableDiffers,\n private cdkBreakpointObserver: BreakpointObserver,\n private cd: ChangeDetectorRef,\n private el: ElementRef,\n private eclRtlService: EclRtlService,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n super();\n if (this.isUsingOldSelector) {\n console.warn('\"ecl-tabs\" selector is deprecated; use \"div[eclTabs]\" instead.');\n }\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n setTimeout(() => this.setTabindex());\n this.observeTabsChanges();\n this.observeElementSizeChanges();\n this.cd.detectChanges();\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observeBreakpointChanges();\n this.handleRtlChangeState();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n @HostListener('document:click', ['$event.target'])\n onClick(target): void {\n if (!this.moreButton.el.nativeElement.contains(target) && !this.dropdownList.nativeElement.contains(target)) {\n this.closeDropdown();\n }\n }\n\n get isUsingOldSelector(): boolean {\n if (this.el.nativeElement.tagName.toLowerCase() === 'ecl-tabs') {\n return true;\n }\n return false;\n }\n\n get isMoreButtonActive(): boolean {\n return this.listTabs.find((el) => el.isActive) !== undefined;\n }\n\n onScrollPrev(): void {\n this.shiftTabs(ShiftDirection.PREVIOUS);\n }\n\n onScrollNext(): void {\n this.shiftTabs(ShiftDirection.NEXT);\n }\n\n onDropdownToggle(): void {\n this.isDropdownExpanded = !this.isDropdownExpanded;\n }\n\n getTabsWidthStyle(): string {\n return this.isMobileBreakpoint ? `${this.getTabsWidth()}px` : 'auto';\n }\n\n getTabsWidth(): number {\n return this.tabs.reduce((total, item) => (total += Math.ceil(item.getWidth())), 0);\n }\n\n getHiddenTabsCount(): number {\n return this.tabs.filter((item) => item.isHidden).length;\n }\n\n getTabLabel(index: number): string {\n return this.getTabsAsArray()[index].getTabLabel();\n }\n\n getTransitionDuration(): string {\n if (this.isMobileBreakpoint) {\n return '0.4s';\n }\n return '0';\n }\n\n onTabBlur(evt: KeyboardEvent): void {\n this.closeDropdown();\n if (evt.shiftKey) {\n this.getFirstTabFromArray().onBlur();\n } else {\n this.getLastVisibleTab().onFocus();\n this.getLastVisibleTab().onBlur();\n }\n }\n\n onTabSelect(tab: EclTabComponent): void {\n this.deactivateAllTabs(this.tabs.toArray(), this.listTabs);\n this.activateTab(tab);\n this.sendTabSelectEvent(tab);\n }\n\n onTabKeydownArrowRight(index: number): void {\n if (this.isMobileBreakpoint) {\n this.shiftTabs(ShiftDirection.NEXT);\n if (index === this.getTabsCount() - 1) {\n return;\n }\n }\n if (index === this.getTabsCount() - 1 && !this.isMobileBreakpoint ) {\n this.focusOnFirstTab();\n } else {\n this.focusOnNextTab(index);\n }\n }\n\n onTabKeydownArrowLeft(index: number): void {\n if (this.isMobileBreakpoint) {\n this.shiftTabs(ShiftDirection.PREVIOUS);\n if (index === 0) {\n return;\n }\n }\n\n if (index === 0 && !this.isMobileBreakpoint) {\n this.focusOnLastTab();\n } else {\n this.focusOnPrevTab(index);\n }\n }\n\n onTabKeydownHome(): void {\n this.focusOnFirstTab();\n }\n\n onTabKeydownEnd(): void {\n this.focusOnLastTab();\n }\n\n onTabKeydown(event: Event, tab: EclTabComponent): void {\n event.preventDefault();\n if (event instanceof KeyboardEvent) {\n const index = this.getCurrentTabIndex(tab);\n switch (event.key) {\n case KeyCode.ARROW_LEFT: {\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_DOWN: {\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.END: {\n this.onTabKeydownEnd();\n break;\n }\n case KeyCode.HOME: {\n this.onTabKeydownHome();\n break;\n }\n case KeyCode.ENTER: {\n this.onTabSelect(tab);\n break;\n }\n case KeyCode.TAB: {\n this.onTabBlur(event);\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n\n private getCurrentTabIndex(tab: EclTabComponent): number {\n const index = this.getTabsAsArray().indexOf(tab)\n return index !== -1 ? index : this.listTabs.indexOf(tab);\n }\n\n private shiftTabs(dir: string): void {\n this.index = this.getShifIndex(dir, this.index);\n\n this.isScrollPrevBtnShow = this.index >= 1;\n this.isScrollNextBtnShow = this.index <= this.getTabsCount() - 1;\n\n const leftMargin = this.index === 0 ? 0 : this.btnPrev.el.nativeElement.getBoundingClientRect().width + 13;\n\n let newOffset = 0;\n if (this.isRtl) {\n newOffset = Math.ceil(\n this.tabsList.nativeElement.offsetWidth -\n this.getTabsAsArray()[this.index].hostElement.offsetLeft -\n this.getTabsAsArray()[this.index].hostElement.offsetWidth -\n leftMargin,\n );\n } else {\n newOffset = Math.ceil(this.getTabsAsArray()[this.index]?.hostElement.offsetLeft - leftMargin);\n }\n\n const maxScroll = Math.ceil(this.getTabsListWidth() - this.el.nativeElement.getBoundingClientRect().width);\n\n if (newOffset > maxScroll) {\n this.isScrollNextBtnShow = false;\n newOffset = maxScroll;\n }\n\n if (this.isRtl) {\n this.styleTransform = `translate3d(${newOffset}px, 0px, 0px)`;\n } else {\n this.styleTransform = `translate3d(-${newOffset}px, 0px, 0px)`;\n }\n }\n\n private getShifIndex(dir: string, index: number): number {\n if (dir === ShiftDirection.NEXT) {\n if (index === this.getTabsCount() - 1 && !this.isMobileBreakpoint ) {\n return 0;\n } else {\n return index + 1;\n }\n } else {\n if (index === 0 && !this.isMobileBreakpoint) {\n return this.getTabsCount() - 1;\n } else {\n return index - 1;\n }\n }\n }\n\n private createSecondListForDropdown(): void {\n this.listTabs = [];\n this.tabs.forEach((tab) => {\n const newTab = Object.assign({}, tab) as EclTabComponent;\n newTab.isHidden = true;\n newTab.isActive = false;\n this.listTabs.push(newTab as EclTabComponent);\n });\n }\n\n private getTabsAsArray(): EclTabComponent[] {\n return this.tabs.toArray();\n }\n\n private getTabsCount(): number {\n return this.tabs.toArray().length;\n }\n\n private closeDropdown(): void {\n this.isDropdownExpanded = false;\n }\n\n private openDropdown(): void {\n this.isDropdownExpanded = true;\n }\n\n private observeTabsChanges(): void {\n this.createTabsChangesObservable(this.tabs).pipe(takeUntil(this.destroy$)).subscribe(this.onTabsChanges.bind(this));\n }\n\n private createTabsChangesObservable(tabs: QueryList<EclTabComponent>): Observable<QueryList<EclTabComponent>> {\n return of(tabs).pipe(mergeWith(tabs.changes), takeUntil(this.destroy$));\n }\n\n private onTabsChanges(): void {\n this.diff = this.differ.diff(this.tabs);\n\n if (!this.diff) {\n this.tabs.forEach((tab) => {\n this.connectTabEvents(tab);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectTabEvents(change.item);\n });\n\n this.diff.forEachRemovedItem((change) => {\n this.disconnectTabEvents(change.item);\n });\n }\n this.createSecondListForDropdown();\n }\n\n private connectTabEvents(tab: EclTabComponent): void {\n tab.selectTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onTabSelect(tab);\n });\n tab.keydownTab.pipe(takeUntil(this.destroy$)).subscribe((event) => {\n this.onTabKeydown(event, tab);\n });\n }\n\n private setTabindex(): void {\n this.tabs.forEach((item, index) => {\n if (index === 0) {\n item.hrefTabindex = 0;\n } else {\n item.hrefTabindex = -1;\n }\n });\n }\n\n private getLastVisibleTab(): EclTabComponent {\n let result = null;\n this.getTabsAsArray().forEach((el) => {\n if (!el.isHidden) {\n result = el;\n } else {\n return;\n }\n });\n return result;\n }\n\n private focusOnNextTab(index: number): void {\n if (this.getTabsAsArray()[index + 1].isHidden) {\n this.openDropdown();\n this.focusOnDropdownTab(index + 1);\n } else {\n this.closeDropdown();\n this.getTabsAsArray()[index + 1].onFocus();\n }\n }\n\n private focusOnFirstTab(): void {\n this.closeDropdown();\n this.getFirstTabFromArray().onFocus();\n }\n\n private focusOnLastTab(): void {\n if (!this.getLastTabFromArray().isHidden) {\n this.getLastTabFromArray().onFocus();\n } else {\n this.openDropdown();\n this.focusOnDropdownTab(this.getTabsCount() - 1);\n }\n }\n\n private focusOnPrevTab(index: number): void {\n if (!this.listTabs[index - 1].isHidden) {\n this.focusOnDropdownTab(index - 1);\n } else {\n this.closeDropdown();\n this.getTabsAsArray()[index - 1].onFocus();\n }\n }\n\n private focusOnDropdownTab(index: number): void {\n this.dropdownList.nativeElement.children[index].firstChild.focus();\n }\n\n private getLastTabFromArray(): EclTabComponent {\n return this.getTabsAsArray()[this.getTabsAsArray().length - 1];\n }\n\n private getFirstTabFromArray(): EclTabComponent {\n return this.getTabsAsArray()[0];\n }\n\n private disconnectTabEvents(tab: EclTabComponent): void {\n if (tab && tab.selectTab) {\n tab.selectTab.unsubscribe();\n }\n }\n\n private deactivateAllTabs(tabs: Array<EclTabComponent>, listTabs: Array<EclTabComponent>): void {\n tabs.forEach((it) => {\n it.isActive = false;\n });\n\n listTabs.forEach((it) => {\n it.isActive = false;\n });\n }\n\n private activateTab(tab: EclTabComponent): void {\n tab.isActive = true;\n }\n\n private sendTabSelectEvent(tab: EclTabComponent): void {\n this.tabSelect.next(new EclTabSelectEvent(tab));\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 480px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private handleResize(): void {\n this.closeDropdown();\n if (this.isMobileBreakpoint) {\n this.handleMobile();\n return;\n }\n this.styleTransform = 'translate3d(0px, 0px, 0px)';\n this.index = 0;\n this.initMoreBtnWidth();\n let stopWidth = this.moreBtnWidth + 25;\n const hiddenItems = [];\n const listWidth = this.getTabsListWidth();\n this.isScrollNextBtnShow = false;\n this.isScrollPrevBtnShow = false;\n this.isMoreButtonShow = false;\n this.tabs.forEach((item, i) => {\n item.isHidden = false;\n if (listWidth >= stopWidth + item.getWidth() && !hiddenItems.includes(i - 1)) {\n stopWidth += item.getWidth();\n } else {\n item.isHidden = true;\n if (item.isActive) {\n this.listTabs[i].isActive = true;\n }\n hiddenItems.push(i);\n }\n });\n this.cd.markForCheck();\n if (!hiddenItems.length) {\n this.isMoreButtonShow = false;\n this.setActiveItemForMainTabs();\n this.hideAllDropdownTabs();\n } else {\n this.isMoreButtonShow = true;\n this.setHiddenItemsForDropdownTabs(hiddenItems);\n }\n }\n\n private initMoreBtnWidth(): void {\n if (this.isFirstCall) {\n this.moreBtnWidth = this.moreButton.el.nativeElement.getBoundingClientRect().width;\n this.isFirstCall = false;\n }\n }\n\n private hideAllDropdownTabs(): void {\n this.listTabs.forEach(item => item.isHidden = true);\n }\n\n private setActiveItemForMainTabs(): void {\n this.listTabs.forEach((item, index) => {\n if (item.isActive) {\n setTimeout(() => this.tabs.toArray()[index].isActive = true);\n }\n });\n this.cd.markForCheck();\n }\n\n private getTabsListWidth(): number {\n return this.tabsList.nativeElement.getBoundingClientRect().width;\n }\n\n private setHiddenItemsForDropdownTabs(hiddenItems: number[]): void {\n this.listTabs.forEach((item, index) => {\n if (hiddenItems.includes(index)) {\n item.isHidden = false;\n } else {\n item.isHidden = true;\n }\n });\n }\n\n private handleMobile(): void {\n this.isMoreButtonShow = false;\n this.isScrollPrevBtnShow = false;\n this.isScrollNextBtnShow = true;\n this.setAllTabsVisible();\n }\n\n private setAllTabsVisible(): void {\n this.tabs.forEach((item , i) => {\n item.isHidden = false;\n })\n }\n\n private handleRtlChangeState(): void {\n const isRtlOld = this.isRtl;\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n setTimeout(() => {\n this.isRtl = rtlState;\n if (this.isMobileBreakpoint && this.hasRtlChanged(isRtlOld)) {\n this.handleRtlChange();\n }\n });\n });\n }\n\n private hasRtlChanged(isRtlOld: boolean): boolean {\n return isRtlOld !== this.isRtl;\n }\n\n private handleRtlChange(): void {\n this.handleMobile();\n this.styleTransform = 'translate3d(0px, 0px, 0px)';\n this.index = 0;\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n this.handleResize();\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.tabsList.nativeElement);\n }\n}\n","@if (isUsingOldSelector) {\n<div class=\"ecl-tabs\">\n <ng-container *ngTemplateOutlet=\"eclTabsTemplate\"></ng-container>\n</div>\n} @else {\n<ng-container *ngTemplateOutlet=\"eclTabsTemplate\"></ng-container>\n}\n\n<ng-template #eclTabsTemplate>\n <div class=\"ecl-tabs__container\" [class.ecl-tabs__container--right]=\"isScrollNextBtnShow\"\n [class.ecl-tabs__container--left]=\"isScrollPrevBtnShow\">\n <div class=\"ecl-tabs__list\" role=\"tablist\" #tabsList [style.width]=\"getTabsWidthStyle()\"\n [style.transform]=\"styleTransform\" [style.transition-duration]=\"getTransitionDuration()\">\n <ng-content select=\"ecl-tab, [eclTab]\"></ng-content>\n <div class=\"ecl-tabs__item ecl-tabs__item--more\" [class.ecl-tabs__item--hidden]=\"!isMoreButtonShow\">\n @if (listTabs.length > 0) {\n <div class=\"ecl-tabs__dropdown\" [class.ecl-tabs__dropdown--show]=\"isDropdownExpanded\">\n <div class=\"ecl-tabs__dropdown-list\" #dropdownList>\n @for (tab of listTabs; track tab.id; let i = $index) {\n <div eclTab [isActive]=\"tab.isActive\" [isHidden]=\"tab.isHidden\" (click)=\"onTabSelect(tab)\"\n (keydown)=\"onTabKeydown($event, tab)\">\n <ecl-tab-label>{{ getTabLabel(i) }}</ecl-tab-label>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n <button #moreButton eclButton class=\"ecl-tabs__toggle\" tabindex=\"-1\" variant=\"ghost\"\n [attr.aria-expanded]=\"isDropdownExpanded\" [class.ecl-tabs__toggle--active]=\"isMoreButtonActive\"\n (click)=\"onDropdownToggle()\" [class.ecl-tabs__toggle--hidden]=\"!isMoreButtonShow\">\n <span eclButtonLabel>\n {{ 'ecl.common.MORE' | translate }}\n ({{ getHiddenTabsCount() }})\n </span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-180\" size=\"fluid\"></ecl-icon>\n </button>\n </div>\n\n <div class=\"ecl-tabs__controls\">\n <button #btnPrev eclButton variant=\"ghost\" isIconOnly class=\"ecl-tabs__prev\"\n [style.display]=\"isScrollPrevBtnShow ? 'flex' : 'none'\" (click)=\"onScrollPrev()\">\n <span eclButtonLabel>{{ 'ecl.common.PREVIOUS' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\" size=\"s\" class=\"\"> </ecl-icon>\n </button>\n <button #btnNext eclButton variant=\"ghost\" isIconOnly class=\"ecl-tabs__next\"\n [style.display]=\"isScrollNextBtnShow ? 'flex' : 'none'\" (click)=\"onScrollNext()\">\n <span eclButtonLabel>{{ 'ecl.common.NEXT' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"s\" class=\"\"> </ecl-icon>\n </button>\n </div>\n</ng-template>\n\n@for (tab of tabs.toArray(); track tab.tabLabel) {\n@if (tab.isActive) {\n<div class=\"{{ bodyClass }}\">\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n</div>\n}\n}\n@for (tab of listTabs; track tab.tabLabel) {\n@if (tab.isActive) {\n<div class=\"{{ bodyClass }}\">\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n</div>\n}\n}","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * @deprecated - this component is deprecated and will be removed in v20\n */\n@Component({\n selector: 'ecl-tab-more',\n templateUrl: './ecl-tab-more.component.html',\n standalone: false,\n})\nexport class EclTabMoreComponent extends ECLBaseDirective {\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-tabs__item--hidden') isHidden = false;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tabs__item ecl-tabs__item--more')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/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 { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabsComponent } from './ecl-tabs.component';\nimport { EclTabMoreComponent } from './ecl-tab-more.component';\nimport { ECLClickOutsideDirective } from '@eui/ecl/core';\n\nconst COMPONENTS = [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n EclLinkModule,\n EclButtonModule,\n EclIconModule,\n TranslateModule,\n ECLClickOutsideDirective,\n ],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.EclTabComponent","i7.EclTabLabelComponent"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-tabs.mjs","sources":["../../components/ecl-tabs/ecl-tab-label.component.ts","../../components/ecl-tabs/ecl-tab-label.component.html","../../components/ecl-tabs/events/ecl-tab-select.event.ts","../../components/ecl-tabs/ecl-tab.component.ts","../../components/ecl-tabs/ecl-tab.component.html","../../components/ecl-tabs/ecl-tabs.component.ts","../../components/ecl-tabs/ecl-tabs.component.html","../../components/ecl-tabs/ecl-tab-more.component.ts","../../components/ecl-tabs/ecl-tab-more.component.html","../../components/ecl-tabs/ecl-tabs.module.ts","../../components/ecl-tabs/eui-ecl-components-ecl-tabs.ts"],"sourcesContent":["import { Component, ElementRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a tab label within ECL Tabs.\n * Used as a container for the tab's visual label content.\n */\n@Component({\n selector: 'ecl-tab-label',\n templateUrl: './ecl-tab-label.component.html',\n standalone: false,\n})\nexport class EclTabLabelComponent extends ECLBaseDirective {\n /**\n * Reference to the host DOM element.\n */\n constructor(public el: ElementRef) {\n super();\n }\n}\n","<ng-content></ng-content>\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclTab } from '../models/ecl-tab.model';\n\n/**\n * Event emitted when a tab is selected.\n *\n * Contains a reference to the selected tab instance.\n */\nexport class EclTabSelectEvent extends EclBaseEvent {\n /**\n * The tab instance that has been selected.\n */\n constructor(public tab: EclTab) {\n super();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTab } from './models/ecl-tab.model';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\n\n/**\n * Represents a single tab inside the ECL Tabs component.\n * Manages its label, state (active, hidden), and interaction events like click or keydown.\n *\n * Note: The old selector `ecl-tab` is deprecated and will be removed in v20.\n * Use `div[eclTab]` instead.\n */\n@Component({\n selector: 'ecl-tab, div[eclTab]',\n templateUrl: './ecl-tab.component.html',\n standalone: false,\n})\nexport class EclTabComponent extends ECLBaseDirective implements EclTab, AfterViewInit {\n /**\n * Unique identifier for the tab.\n */\n @Input() id: string;\n\n /**\n * Hides the tab when true by applying the `ecl-tabs__item--hidden` CSS class.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-tabs__item--hidden') isHidden = false;\n\n /**\n * Marks the tab as active.\n */\n @Input({ transform: booleanAttribute }) isActive = false;\n\n /**\n * Emits when the tab is selected via click.\n */\n @Output() selectTab = new EventEmitter<EclTabSelectEvent>();\n\n /**\n * Emits when a keydown event occurs on the tab.\n */\n @Output() keydownTab = new EventEmitter<Event>();\n\n /**\n * Reference to the tab content template.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('content') contentTemplate: TemplateRef<any>;\n\n /**\n * Reference to the internal link directive used in the tab.\n */\n @ViewChild(EclLinkDirective) link: EclLinkDirective;\n\n /**\n * Reference to the projected tab label component.\n */\n @ContentChild(EclTabLabelComponent) label: EclTabLabelComponent;\n\n /**\n * Contains the inner HTML of the tab label.\n */\n public tabLabel = '';\n\n /**\n * The tab index value for the tab's link.\n */\n hrefTabindex = -1;\n\n private isFirstCall = true;\n private width: number;\n\n constructor(private elementRef: ElementRef) {\n super();\n if (this.isUsingOldSelector) {\n console.warn('\"ecl-tab\" selector is deprecated; use \"div[eclTab]\" instead.');\n }\n }\n\n /**\n * Returns the host HTML element of the tab component.\n */\n get hostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Determines if the deprecated selector `<ecl-tab>` is used.\n */\n get isUsingOldSelector(): boolean {\n if (this.elementRef.nativeElement.tagName.toLowerCase() === 'ecl-tab') {\n return true;\n }\n return false;\n }\n\n ngAfterViewInit(): void {\n this.tabLabel = this.label.el.nativeElement.innerHTML;\n }\n\n /**\n * Returns the CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tabs__item')].join(' ').trim();\n }\n\n /**\n * Returns the inner HTML content of the tab label.\n */\n getTabLabel(): string {\n return this.label.el.nativeElement.innerHTML;\n }\n\n /**\n * Returns the width of the tab element in pixels.\n * The measurement is cached after the first call.\n */\n public getWidth(): number {\n if (this.isFirstCall) {\n this.width = this.hostElement.getBoundingClientRect().width;\n this.isFirstCall = false;\n }\n return this.width;\n }\n\n /**\n * Handles a click event on the tab and emits the `selectTab` event.\n */\n onTabClick(): void {\n this.selectTab.next(new EclTabSelectEvent(this));\n }\n\n /**\n * Handles a keydown event on the tab and emits the `keydownTab` event.\n */\n onKeydown(event: Event): void {\n this.keydownTab.next(event);\n }\n\n /**\n * Calls the focus method on the inner link directive.\n */\n onFocus(): void {\n this.link.onFocus();\n }\n\n /**\n * Calls the blur method on the inner link directive.\n */\n onBlur(): void {\n this.link.onBlur();\n }\n}\n","<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer\"\n [class.ecl-tabs__link--active]=\"isActive\"\n [attr.aria-selected]=\"isActive\"\n [tabindex]=\"hrefTabindex\"\n (keydown)=\"onKeydown($event)\"\n (click)=\"onTabClick()\">\n <ng-content select=\"ecl-tab-label\"></ng-content>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n afterNextRender,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Observable, of, Subject } from 'rxjs';\nimport { mergeWith, takeUntil } from 'rxjs/operators';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\n\nexport enum ShiftDirection {\n NEXT = 'next',\n PREVIOUS = 'prev',\n}\n\n/**\n * ECL Tabs component for displaying tabbed content and managing tab selection and navigation.\n *\n * Note: The old selector `ecl-tabs` is deprecated and will be removed in v20.\n * Use `div[eclTabs]` instead.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclTabs], ecl-tabs',\n templateUrl: './ecl-tabs.component.html',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclTabsComponent extends ECLBaseDirective implements OnInit, OnDestroy {\n\n /**\n * Adds `ecl-tabs` class to the host if not using the deprecated selector.\n */\n @HostBinding('class.ecl-tabs') hasClass = !this.isUsingOldSelector;\n\n /**\n * Class applied to the tab body container.\n */\n @Input() bodyClass = 'ecl-u-mt-s';\n\n /**\n * Emits an event when a tab is selected.\n */\n @Output() tabSelect = new EventEmitter<EclTabSelectEvent>();\n\n /**\n * All projected tabs inside the component.\n */\n @ContentChildren(forwardRef(() => EclTabComponent)) tabs: QueryList<EclTabComponent>;\n\n /**\n * Reference to the visible tab list container.\n */\n @ViewChild('tabsList') tabsList: ElementRef;\n\n /**\n * Reference to the \"more\" button.\n */\n @ViewChild('moreButton') moreButton: EclButtonComponent;\n\n /**\n * Reference to the scroll previous button.\n */\n @ViewChild('btnPrev') btnPrev: EclButtonComponent;\n\n /**\n * Reference to the scroll next button.\n */\n @ViewChild('btnNext') btnNext: EclButtonComponent;\n\n /**\n * Reference to the dropdown list containing overflowed tabs.\n */\n @ViewChild('dropdownList') dropdownList: ElementRef;\n\n /**\n * Tabs displayed in the dropdown.\n */\n dropdownTabs: Array<EclTabComponent> = [];\n\n /**\n * Tabs displayed in the visible list.\n */\n listTabs: Array<EclTabComponent> = [];\n\n /**\n * Index of the active tab.\n */\n index = 0;\n\n /**\n * Indicates whether the dropdown is expanded.\n */\n isDropdownExpanded = false;\n\n /**\n * Indicates whether the mobile breakpoint is active.\n */\n isMobileBreakpoint = false;\n\n /**\n * Indicates whether the \"more\" button is shown.\n */\n isMoreButtonShow = true;\n\n /**\n * Indicates whether the scroll previous button is shown.\n */\n isScrollPrevBtnShow = false;\n\n /**\n * Indicates whether the scroll next button is shown.\n */\n isScrollNextBtnShow = false;\n\n /**\n * CSS transform applied to the scrollable tab list.\n */\n styleTransform = 'translate3d(0px, 0px, 0px)';\n\n private differ: IterableDiffer<EclTabComponent>;\n private diff: IterableChanges<EclTabComponent>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isFirstCall = true;\n private isRtl = false;\n private moreBtnWidth: number;\n private TIMEOUT_INTERVAL = 0;\n\n constructor(\n private differs: IterableDiffers,\n private cdkBreakpointObserver: BreakpointObserver,\n private cd: ChangeDetectorRef,\n private el: ElementRef,\n private eclRtlService: EclRtlService,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n super();\n if (this.isUsingOldSelector) {\n console.warn('\"ecl-tabs\" selector is deprecated; use \"div[eclTabs]\" instead.');\n }\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n setTimeout(() => this.setTabindex());\n this.observeTabsChanges();\n this.observeElementSizeChanges();\n this.cd.detectChanges();\n });\n }\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observeBreakpointChanges();\n this.handleRtlChangeState();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n @HostListener('document:click', ['$event.target'])\n onClick(target): void {\n if (!this.moreButton.el.nativeElement.contains(target) && !this.dropdownList.nativeElement.contains(target)) {\n this.closeDropdown();\n }\n }\n\n /**\n * Whether the deprecated selector is being used.\n */\n get isUsingOldSelector(): boolean {\n if (this.el.nativeElement.tagName.toLowerCase() === 'ecl-tabs') {\n return true;\n }\n return false;\n }\n\n /**\n * Whether any visible tab is active.\n */\n get isMoreButtonActive(): boolean {\n return this.listTabs.find((el) => el.isActive) !== undefined;\n }\n\n /**\n * Scrolls the tab list to the left.\n */\n onScrollPrev(): void {\n this.shiftTabs(ShiftDirection.PREVIOUS);\n }\n\n /**\n * Scrolls the tab list to the right.\n */\n onScrollNext(): void {\n this.shiftTabs(ShiftDirection.NEXT);\n }\n\n /**\n * Toggles the dropdown visibility.\n */\n onDropdownToggle(): void {\n this.isDropdownExpanded = !this.isDropdownExpanded;\n }\n\n /**\n * Returns the style value for tab list width.\n */\n getTabsWidthStyle(): string {\n return this.isMobileBreakpoint ? `${this.getTabsWidth()}px` : 'auto';\n }\n\n /**\n * Calculates total width of all tabs.\n */\n getTabsWidth(): number {\n return this.tabs.reduce((total, item) => (total += Math.ceil(item.getWidth())), 0);\n }\n\n /**\n * Returns the number of tabs hidden in dropdown.\n */\n getHiddenTabsCount(): number {\n return this.tabs.filter((item) => item.isHidden).length;\n }\n\n /**\n * Returns the label of the tab at the specified index.\n */\n getTabLabel(index: number): string {\n return this.getTabsAsArray()[index].getTabLabel();\n }\n\n /**\n * Returns the duration of the transition animation.\n */\n getTransitionDuration(): string {\n if (this.isMobileBreakpoint) {\n return '0.4s';\n }\n return '0';\n }\n\n /**\n * Handles blur event when navigating tabs via keyboard.\n */\n onTabBlur(evt: KeyboardEvent): void {\n this.closeDropdown();\n if (evt.shiftKey) {\n this.getFirstTabFromArray().onBlur();\n } else {\n this.getLastVisibleTab().onFocus();\n this.getLastVisibleTab().onBlur();\n }\n }\n\n /**\n * Handles tab selection.\n * @param tab Tab to activate.\n */\n onTabSelect(tab: EclTabComponent): void {\n this.deactivateAllTabs(this.tabs.toArray(), this.listTabs);\n this.activateTab(tab);\n this.sendTabSelectEvent(tab);\n }\n\n /**\n * Handles right arrow key navigation.\n * @param index Current tab index.\n */\n onTabKeydownArrowRight(index: number): void {\n if (this.isMobileBreakpoint) {\n this.shiftTabs(ShiftDirection.NEXT);\n if (index === this.getTabsCount() - 1) {\n return;\n }\n }\n if (index === this.getTabsCount() - 1 && !this.isMobileBreakpoint) {\n this.focusOnFirstTab();\n } else {\n this.focusOnNextTab(index);\n }\n }\n\n /**\n * Handles left arrow key navigation.\n * @param index Current tab index.\n */\n onTabKeydownArrowLeft(index: number): void {\n if (this.isMobileBreakpoint) {\n this.shiftTabs(ShiftDirection.PREVIOUS);\n if (index === 0) {\n return;\n }\n }\n\n if (index === 0 && !this.isMobileBreakpoint) {\n this.focusOnLastTab();\n } else {\n this.focusOnPrevTab(index);\n }\n }\n\n /**\n * Focuses the first tab in the list.\n */\n onTabKeydownHome(): void {\n this.focusOnFirstTab();\n }\n\n /**\n * Focuses the last tab in the list.\n */\n onTabKeydownEnd(): void {\n this.focusOnLastTab();\n }\n\n /**\n * Handles all supported keyboard events for a tab.\n * @param event KeyboardEvent triggered.\n * @param tab Target tab.\n */\n onTabKeydown(event: Event, tab: EclTabComponent): void {\n event.preventDefault();\n if (event instanceof KeyboardEvent) {\n const index = this.getCurrentTabIndex(tab);\n switch (event.key) {\n case KeyCode.ARROW_LEFT: {\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.ARROW_UP: {\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_DOWN: {\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.END: {\n this.onTabKeydownEnd();\n break;\n }\n case KeyCode.HOME: {\n this.onTabKeydownHome();\n break;\n }\n case KeyCode.ENTER: {\n this.onTabSelect(tab);\n break;\n }\n case KeyCode.TAB: {\n this.onTabBlur(event);\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n\n private getCurrentTabIndex(tab: EclTabComponent): number {\n const index = this.getTabsAsArray().indexOf(tab)\n return index !== -1 ? index : this.listTabs.indexOf(tab);\n }\n\n private shiftTabs(dir: string): void {\n this.index = this.getShifIndex(dir, this.index);\n\n this.isScrollPrevBtnShow = this.index >= 1;\n this.isScrollNextBtnShow = this.index <= this.getTabsCount() - 1;\n\n const leftMargin = this.index === 0 ? 0 : this.btnPrev.el.nativeElement.getBoundingClientRect().width + 13;\n\n let newOffset = 0;\n if (this.isRtl) {\n newOffset = Math.ceil(\n this.tabsList.nativeElement.offsetWidth -\n this.getTabsAsArray()[this.index].hostElement.offsetLeft -\n this.getTabsAsArray()[this.index].hostElement.offsetWidth -\n leftMargin,\n );\n } else {\n newOffset = Math.ceil(this.getTabsAsArray()[this.index]?.hostElement.offsetLeft - leftMargin);\n }\n\n const maxScroll = Math.ceil(this.getTabsListWidth() - this.el.nativeElement.getBoundingClientRect().width);\n\n if (newOffset > maxScroll) {\n this.isScrollNextBtnShow = false;\n newOffset = maxScroll;\n }\n\n if (this.isRtl) {\n this.styleTransform = `translate3d(${newOffset}px, 0px, 0px)`;\n } else {\n this.styleTransform = `translate3d(-${newOffset}px, 0px, 0px)`;\n }\n }\n\n private getShifIndex(dir: string, index: number): number {\n if (dir === ShiftDirection.NEXT) {\n if (index === this.getTabsCount() - 1 && !this.isMobileBreakpoint ) {\n return 0;\n } else {\n return index + 1;\n }\n } else {\n if (index === 0 && !this.isMobileBreakpoint) {\n return this.getTabsCount() - 1;\n } else {\n return index - 1;\n }\n }\n }\n\n private createSecondListForDropdown(): void {\n this.listTabs = [];\n this.tabs.forEach((tab) => {\n const newTab = Object.assign({}, tab) as EclTabComponent;\n newTab.isHidden = true;\n newTab.isActive = false;\n this.listTabs.push(newTab as EclTabComponent);\n });\n }\n\n private getTabsAsArray(): EclTabComponent[] {\n return this.tabs.toArray();\n }\n\n private getTabsCount(): number {\n return this.tabs.toArray().length;\n }\n\n private closeDropdown(): void {\n this.isDropdownExpanded = false;\n }\n\n private openDropdown(): void {\n this.isDropdownExpanded = true;\n }\n\n private observeTabsChanges(): void {\n this.createTabsChangesObservable(this.tabs).pipe(takeUntil(this.destroy$)).subscribe(this.onTabsChanges.bind(this));\n }\n\n private createTabsChangesObservable(tabs: QueryList<EclTabComponent>): Observable<QueryList<EclTabComponent>> {\n return of(tabs).pipe(mergeWith(tabs.changes), takeUntil(this.destroy$));\n }\n\n private onTabsChanges(): void {\n this.diff = this.differ.diff(this.tabs);\n\n if (!this.diff) {\n this.tabs.forEach((tab) => {\n this.connectTabEvents(tab);\n });\n } else {\n this.diff.forEachAddedItem((change) => {\n this.connectTabEvents(change.item);\n });\n\n this.diff.forEachRemovedItem((change) => {\n this.disconnectTabEvents(change.item);\n });\n }\n this.createSecondListForDropdown();\n }\n\n private connectTabEvents(tab: EclTabComponent): void {\n tab.selectTab.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onTabSelect(tab);\n });\n tab.keydownTab.pipe(takeUntil(this.destroy$)).subscribe((event) => {\n this.onTabKeydown(event, tab);\n });\n }\n\n private setTabindex(): void {\n this.tabs.forEach((item, index) => {\n if (index === 0) {\n item.hrefTabindex = 0;\n } else {\n item.hrefTabindex = -1;\n }\n });\n }\n\n private getLastVisibleTab(): EclTabComponent {\n let result = null;\n this.getTabsAsArray().forEach((el) => {\n if (!el.isHidden) {\n result = el;\n } else {\n return;\n }\n });\n return result;\n }\n\n private focusOnNextTab(index: number): void {\n if (this.getTabsAsArray()[index + 1].isHidden) {\n this.openDropdown();\n this.focusOnDropdownTab(index + 1);\n } else {\n this.closeDropdown();\n this.getTabsAsArray()[index + 1].onFocus();\n }\n }\n\n private focusOnFirstTab(): void {\n this.closeDropdown();\n this.getFirstTabFromArray().onFocus();\n }\n\n private focusOnLastTab(): void {\n if (!this.getLastTabFromArray().isHidden) {\n this.getLastTabFromArray().onFocus();\n } else {\n this.openDropdown();\n this.focusOnDropdownTab(this.getTabsCount() - 1);\n }\n }\n\n private focusOnPrevTab(index: number): void {\n if (!this.listTabs[index - 1].isHidden) {\n this.focusOnDropdownTab(index - 1);\n } else {\n this.closeDropdown();\n this.getTabsAsArray()[index - 1].onFocus();\n }\n }\n\n private focusOnDropdownTab(index: number): void {\n this.dropdownList.nativeElement.children[index].firstChild.focus();\n }\n\n private getLastTabFromArray(): EclTabComponent {\n return this.getTabsAsArray()[this.getTabsAsArray().length - 1];\n }\n\n private getFirstTabFromArray(): EclTabComponent {\n return this.getTabsAsArray()[0];\n }\n\n private disconnectTabEvents(tab: EclTabComponent): void {\n if (tab && tab.selectTab) {\n tab.selectTab.unsubscribe();\n }\n }\n\n private deactivateAllTabs(tabs: Array<EclTabComponent>, listTabs: Array<EclTabComponent>): void {\n tabs.forEach((it) => {\n it.isActive = false;\n });\n\n listTabs.forEach((it) => {\n it.isActive = false;\n });\n }\n\n private activateTab(tab: EclTabComponent): void {\n tab.isActive = true;\n }\n\n private sendTabSelectEvent(tab: EclTabComponent): void {\n this.tabSelect.next(new EclTabSelectEvent(tab));\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 480px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private handleResize(): void {\n this.closeDropdown();\n if (this.isMobileBreakpoint) {\n this.handleMobile();\n return;\n }\n this.styleTransform = 'translate3d(0px, 0px, 0px)';\n this.index = 0;\n this.initMoreBtnWidth();\n let stopWidth = this.moreBtnWidth + 25;\n const hiddenItems = [];\n const listWidth = this.getTabsListWidth();\n this.isScrollNextBtnShow = false;\n this.isScrollPrevBtnShow = false;\n this.isMoreButtonShow = false;\n this.tabs.forEach((item, i) => {\n item.isHidden = false;\n if (listWidth >= stopWidth + item.getWidth() && !hiddenItems.includes(i - 1)) {\n stopWidth += item.getWidth();\n } else {\n item.isHidden = true;\n if (item.isActive) {\n this.listTabs[i].isActive = true;\n }\n hiddenItems.push(i);\n }\n });\n this.cd.markForCheck();\n if (!hiddenItems.length) {\n this.isMoreButtonShow = false;\n this.setActiveItemForMainTabs();\n this.hideAllDropdownTabs();\n } else {\n this.isMoreButtonShow = true;\n this.setHiddenItemsForDropdownTabs(hiddenItems);\n }\n }\n\n private initMoreBtnWidth(): void {\n if (this.isFirstCall) {\n this.moreBtnWidth = this.moreButton.el.nativeElement.getBoundingClientRect().width;\n this.isFirstCall = false;\n }\n }\n\n private hideAllDropdownTabs(): void {\n this.listTabs.forEach(item => item.isHidden = true);\n }\n\n private setActiveItemForMainTabs(): void {\n this.listTabs.forEach((item, index) => {\n if (item.isActive) {\n setTimeout(() => this.tabs.toArray()[index].isActive = true);\n }\n });\n this.cd.markForCheck();\n }\n\n private getTabsListWidth(): number {\n return this.tabsList.nativeElement.getBoundingClientRect().width;\n }\n\n private setHiddenItemsForDropdownTabs(hiddenItems: number[]): void {\n this.listTabs.forEach((item, index) => {\n if (hiddenItems.includes(index)) {\n item.isHidden = false;\n } else {\n item.isHidden = true;\n }\n });\n }\n\n private handleMobile(): void {\n this.isMoreButtonShow = false;\n this.isScrollPrevBtnShow = false;\n this.isScrollNextBtnShow = true;\n this.setAllTabsVisible();\n }\n\n private setAllTabsVisible(): void {\n this.tabs.forEach((item , i) => {\n item.isHidden = false;\n })\n }\n\n private handleRtlChangeState(): void {\n const isRtlOld = this.isRtl;\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n setTimeout(() => {\n this.isRtl = rtlState;\n if (this.isMobileBreakpoint && this.hasRtlChanged(isRtlOld)) {\n this.handleRtlChange();\n }\n });\n });\n }\n\n private hasRtlChanged(isRtlOld: boolean): boolean {\n return isRtlOld !== this.isRtl;\n }\n\n private handleRtlChange(): void {\n this.handleMobile();\n this.styleTransform = 'translate3d(0px, 0px, 0px)';\n this.index = 0;\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n this.handleResize();\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.tabsList.nativeElement);\n }\n}\n","@if (isUsingOldSelector) {\n<div class=\"ecl-tabs\">\n <ng-container *ngTemplateOutlet=\"eclTabsTemplate\"></ng-container>\n</div>\n} @else {\n<ng-container *ngTemplateOutlet=\"eclTabsTemplate\"></ng-container>\n}\n\n<ng-template #eclTabsTemplate>\n <div class=\"ecl-tabs__container\" [class.ecl-tabs__container--right]=\"isScrollNextBtnShow\"\n [class.ecl-tabs__container--left]=\"isScrollPrevBtnShow\">\n <div class=\"ecl-tabs__list\" role=\"tablist\" #tabsList [style.width]=\"getTabsWidthStyle()\"\n [style.transform]=\"styleTransform\" [style.transition-duration]=\"getTransitionDuration()\">\n <ng-content select=\"ecl-tab, [eclTab]\"></ng-content>\n <div class=\"ecl-tabs__item ecl-tabs__item--more\" [class.ecl-tabs__item--hidden]=\"!isMoreButtonShow\">\n @if (listTabs.length > 0) {\n <div class=\"ecl-tabs__dropdown\" [class.ecl-tabs__dropdown--show]=\"isDropdownExpanded\">\n <div class=\"ecl-tabs__dropdown-list\" #dropdownList>\n @for (tab of listTabs; track tab.id; let i = $index) {\n <div eclTab [isActive]=\"tab.isActive\" [isHidden]=\"tab.isHidden\" (click)=\"onTabSelect(tab)\"\n (keydown)=\"onTabKeydown($event, tab)\">\n <ecl-tab-label>{{ getTabLabel(i) }}</ecl-tab-label>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n <button #moreButton eclButton class=\"ecl-tabs__toggle\" tabindex=\"-1\" variant=\"ghost\"\n [attr.aria-expanded]=\"isDropdownExpanded\" [class.ecl-tabs__toggle--active]=\"isMoreButtonActive\"\n (click)=\"onDropdownToggle()\" [class.ecl-tabs__toggle--hidden]=\"!isMoreButtonShow\">\n <span eclButtonLabel>\n {{ 'ecl.common.MORE' | translate }}\n ({{ getHiddenTabsCount() }})\n </span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-180\" size=\"fluid\"></ecl-icon>\n </button>\n </div>\n\n <div class=\"ecl-tabs__controls\">\n <button #btnPrev eclButton variant=\"ghost\" isIconOnly class=\"ecl-tabs__prev\"\n [style.display]=\"isScrollPrevBtnShow ? 'flex' : 'none'\" (click)=\"onScrollPrev()\">\n <span eclButtonLabel>{{ 'ecl.common.PREVIOUS' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\" size=\"s\" class=\"\"> </ecl-icon>\n </button>\n <button #btnNext eclButton variant=\"ghost\" isIconOnly class=\"ecl-tabs__next\"\n [style.display]=\"isScrollNextBtnShow ? 'flex' : 'none'\" (click)=\"onScrollNext()\">\n <span eclButtonLabel>{{ 'ecl.common.NEXT' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"s\" class=\"\"> </ecl-icon>\n </button>\n </div>\n</ng-template>\n\n@for (tab of tabs.toArray(); track tab.tabLabel) {\n@if (tab.isActive) {\n<div class=\"{{ bodyClass }}\">\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n</div>\n}\n}\n@for (tab of listTabs; track tab.tabLabel) {\n@if (tab.isActive) {\n<div class=\"{{ bodyClass }}\">\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n</div>\n}\n}","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * @deprecated\n * This component is deprecated and will be removed in v20.\n * \n * Represents a \"More\" tab item used to group additional tabs when space is limited.\n */\n@Component({\n selector: 'ecl-tab-more',\n templateUrl: './ecl-tab-more.component.html',\n standalone: false,\n})\nexport class EclTabMoreComponent extends ECLBaseDirective {\n /**\n * Controls whether the tab is hidden.\n * When true, the `ecl-tabs__item--hidden` class is applied.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-tabs__item--hidden') isHidden = false;\n\n /**\n * Host CSS classes applied to the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tabs__item ecl-tabs__item--more')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/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 { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabsComponent } from './ecl-tabs.component';\nimport { EclTabMoreComponent } from './ecl-tab-more.component';\nimport { ECLClickOutsideDirective } from '@eui/ecl/core';\n\nconst COMPONENTS = [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n EclLinkModule,\n EclButtonModule,\n EclIconModule,\n TranslateModule,\n ECLClickOutsideDirective,\n ],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.EclTabComponent","i7.EclTabLabelComponent"],"mappings":"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"}