@eui/ecl 21.0.0-next.9 → 21.0.0-rc.1

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 (508) hide show
  1. package/docs/changelog.html +863 -0
  2. package/docs/components/EclAccordionComponent.html +9 -3
  3. package/docs/components/EclAccordionItemComponent.html +9 -3
  4. package/docs/components/EclAppComponent.html +3 -3
  5. package/docs/components/EclBannerComponent.html +17 -5
  6. package/docs/components/EclBlockquoteComponent.html +3 -3
  7. package/docs/components/EclBreadcrumbComponent.html +12 -46
  8. package/docs/components/EclBreadcrumbSegmentComponent.html +10 -4
  9. package/docs/components/EclButtonComponent.html +9 -3
  10. package/docs/components/EclCardBodyComponent.html +3 -3
  11. package/docs/components/EclCardComponent.html +3 -3
  12. package/docs/components/EclCarouselComponent.html +31 -5
  13. package/docs/components/EclCarouselItemComponent.html +9 -3
  14. package/docs/components/EclCategoryFilterComponent.html +9 -3
  15. package/docs/components/EclCategoryFilterItemComponent.html +21 -5
  16. package/docs/components/EclCategoryFilterListComponent.html +9 -5
  17. package/docs/components/EclCheckboxHelpComponent.html +3 -3
  18. package/docs/components/EclCheckboxLabelComponent.html +3 -3
  19. package/docs/components/EclContentBlockComponent.html +3 -3
  20. package/docs/components/EclContentItemComponent.html +3 -3
  21. package/docs/components/EclDateBlockComponent.html +8 -6
  22. package/docs/components/EclDescriptionListDefinitionComponent.html +3 -5
  23. package/docs/components/EclExpandableComponent.html +3 -3
  24. package/docs/components/EclFactFiguresComponent.html +3 -3
  25. package/docs/components/EclFactFiguresItemComponent.html +3 -3
  26. package/docs/components/EclFactFiguresViewAllComponent.html +3 -3
  27. package/docs/components/EclFeaturedComponent.html +9 -3
  28. package/docs/components/EclFeaturedItemComponent.html +9 -3
  29. package/docs/components/EclFeaturedItemDescriptionComponent.html +9 -3
  30. package/docs/components/EclFileComponent.html +9 -3
  31. package/docs/components/EclFileItemComponent.html +3 -3
  32. package/docs/components/EclFileItemsComponent.html +3 -3
  33. package/docs/components/EclFileTaxonomyComponent.html +3 -3
  34. package/docs/components/EclFormGroupComponent.html +3 -3
  35. package/docs/components/EclFormLabelComponent.html +10 -4
  36. package/docs/components/EclGalleryComponent.html +15 -3
  37. package/docs/components/EclGalleryFooterComponent.html +9 -9
  38. package/docs/components/EclGalleryItemComponent.html +4 -75
  39. package/docs/components/EclIconComponent.html +15 -3
  40. package/docs/components/EclInpageNavigationComponent.html +19 -42
  41. package/docs/components/EclInpageNavigationItemComponent.html +10 -4
  42. package/docs/components/EclListIllustrationComponent.html +3 -3
  43. package/docs/components/EclListIllustrationItemComponent.html +21 -3
  44. package/docs/components/EclLoadingIndicatorComponent.html +3 -3
  45. package/docs/components/EclMediaContainerComponent.html +9 -3
  46. package/docs/components/EclMegaMenuComponent.html +56 -4
  47. package/docs/components/EclMegaMenuFeaturedComponent.html +9 -3
  48. package/docs/components/EclMegaMenuInfoComponent.html +9 -3
  49. package/docs/components/EclMegaMenuItemComponent.html +39 -3
  50. package/docs/components/EclMegaMenuSubitemComponent.html +18 -24
  51. package/docs/components/EclMenuComponent.html +51 -3
  52. package/docs/components/EclMenuItemComponent.html +33 -3
  53. package/docs/components/EclMenuMegaComponent.html +9 -3
  54. package/docs/components/EclMenuMegaItemComponent.html +21 -3
  55. package/docs/components/EclModalBodyComponent.html +4 -40
  56. package/docs/components/EclModalComponent.html +9 -5
  57. package/docs/components/EclModalFooterComponent.html +3 -3
  58. package/docs/components/EclModalHeaderComponent.html +9 -3
  59. package/docs/components/EclMultiselectComponent.html +9 -13
  60. package/docs/components/EclMultiselectDropdownComponent.html +27 -7
  61. package/docs/components/EclMultiselectInputComponent.html +3 -3
  62. package/docs/components/EclMultiselectOptgroupComponent.html +3 -3
  63. package/docs/components/EclMultiselectOptionComponent.html +10 -8
  64. package/docs/components/EclNavigationListComponent.html +3 -3
  65. package/docs/components/EclNavigationListItemComponent.html +9 -3
  66. package/docs/components/EclNewsTickerComponent.html +15 -5
  67. package/docs/components/EclNewsTickerItemComponent.html +9 -5
  68. package/docs/components/EclNotificationComponent.html +70 -4
  69. package/docs/components/EclPageHeaderComponent.html +3 -3
  70. package/docs/components/EclPageHeaderExpandableComponent.html +15 -4
  71. package/docs/components/EclPaginationComponent.html +15 -3
  72. package/docs/components/EclPaginationItemComponent.html +10 -4
  73. package/docs/components/EclPopoverComponent.html +9 -38
  74. package/docs/components/EclRadioHelpComponent.html +3 -3
  75. package/docs/components/EclRadioLabelComponent.html +3 -3
  76. package/docs/components/EclRangeBubbleComponent.html +15 -3
  77. package/docs/components/EclRangeValueComponent.html +3 -3
  78. package/docs/components/EclRatingFieldComponent.html +3 -3
  79. package/docs/components/EclSearchFormComponent.html +8 -8
  80. package/docs/components/EclSelectContainerComponent.html +3 -3
  81. package/docs/components/EclSiteFooterComponent.html +23 -4
  82. package/docs/components/{EclTabMoreComponent.html → EclSiteFooterCoownerComponent.html} +16 -50
  83. package/docs/components/EclSiteFooterCoreComponent.html +3 -3
  84. package/docs/components/EclSiteFooterFixedContentEUComponent.html +4 -4
  85. package/docs/components/EclSiteFooterRowCommonComponent.html +3 -3
  86. package/docs/components/EclSiteHeaderActionComponent.html +3 -3
  87. package/docs/components/EclSiteHeaderBannerTopComponent.html +9 -3
  88. package/docs/components/EclSiteHeaderComponent.html +9 -22
  89. package/docs/components/EclSiteHeaderCustomActionComponent.html +9 -3
  90. package/docs/components/EclSiteHeaderEnvironmentComponent.html +3 -3
  91. package/docs/components/EclSiteHeaderLanguageComponent.html +9 -3
  92. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +10 -4
  93. package/docs/components/EclSiteHeaderLoginComponent.html +9 -3
  94. package/docs/components/EclSiteHeaderNotificationComponent.html +3 -3
  95. package/docs/components/EclSiteHeaderSearchComponent.html +13 -7
  96. package/docs/components/EclSocialMediaFollowComponent.html +3 -3
  97. package/docs/components/EclSocialMediaFollowItemComponent.html +34 -5
  98. package/docs/components/EclSplashPageComponent.html +3 -3
  99. package/docs/components/EclSplashPageLanguageCategoryComponent.html +3 -3
  100. package/docs/components/EclSplashPageLanguageContainerComponent.html +3 -3
  101. package/docs/components/EclSplashPageLanguageLinkComponent.html +3 -3
  102. package/docs/components/EclSpotlightComponent.html +9 -3
  103. package/docs/components/EclSpotlightLinkComponent.html +21 -3
  104. package/docs/components/EclStickyContainerComponent.html +3 -3
  105. package/docs/components/EclTabComponent.html +10 -6
  106. package/docs/components/EclTabLabelComponent.html +9 -3
  107. package/docs/components/EclTableSortButtonComponent.html +9 -3
  108. package/docs/components/EclTabsComponent.html +46 -74
  109. package/docs/components/EclTagComponent.html +15 -3
  110. package/docs/components/EclTimelineComponent.html +3 -3
  111. package/docs/components/EclTimelineItemComponent.html +3 -3
  112. package/docs/components/EclTimelineItemTogglerComponent.html +3 -3
  113. package/docs/directives/ECLClickOutsideDirective.html +5 -1
  114. package/docs/directives/ECLFormLabelOptionalDirective.html +6 -0
  115. package/docs/directives/EclBannerDescriptionLinkDirective.html +6 -0
  116. package/docs/directives/EclBannerImageDirective.html +12 -0
  117. package/docs/directives/EclBannerTitleLinkDirective.html +6 -0
  118. package/docs/directives/EclBannerVideoDirective.html +6 -0
  119. package/docs/directives/EclBreadcrumbContainerDirective.html +6 -23
  120. package/docs/directives/EclButtonIconContainerDirective.html +6 -0
  121. package/docs/directives/EclCardImageDirective.html +6 -0
  122. package/docs/directives/EclCheckboxInputDirective.html +6 -0
  123. package/docs/directives/EclContentItemImageDirective.html +6 -0
  124. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +12 -0
  125. package/docs/directives/EclDescriptionListDefinitionListDirective.html +6 -0
  126. package/docs/directives/EclDescriptionListTermDirective.html +6 -0
  127. package/docs/directives/EclDividerDirective.html +6 -0
  128. package/docs/directives/EclFeaturedItemLinkDirective.html +6 -2
  129. package/docs/directives/EclFeedbackHiddenDirective.html +385 -0
  130. package/docs/directives/EclFileDownloadDirective.html +6 -0
  131. package/docs/directives/EclFileImageDirective.html +6 -0
  132. package/docs/directives/EclFilePreviewDirective.html +12 -0
  133. package/docs/directives/EclFileTitleDirective.html +6 -0
  134. package/docs/directives/EclFileTranslationDownloadDirective.html +6 -0
  135. package/docs/directives/EclGalleryMediaDirective.html +6 -0
  136. package/docs/directives/EclGalleryPictureDirective.html +6 -0
  137. package/docs/{modules/EclFormLabelModule.html → directives/EclHelpHiddenDirective.html} +169 -57
  138. package/docs/directives/EclIndicatorDirective.html +6 -0
  139. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  140. package/docs/directives/EclLinkDirective.html +150 -8
  141. package/docs/directives/EclLinkIconContainerDirective.html +6 -0
  142. package/docs/directives/EclLinkIndicatorDirective.html +6 -0
  143. package/docs/directives/EclListIllustrationIconDirective.html +6 -0
  144. package/docs/directives/EclListIllustrationImageDirective.html +6 -0
  145. package/docs/directives/EclLoadingIndicatorLabelDirective.html +6 -0
  146. package/docs/directives/EclMediaContainerIframeDirective.html +6 -0
  147. package/docs/directives/EclMediaContainerItemDirective.html +12 -0
  148. package/docs/directives/EclMegaMenuContainerDirective.html +6 -0
  149. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +6 -0
  150. package/docs/directives/EclMegaMenuFeaturedListDirective.html +6 -0
  151. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +6 -0
  152. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +6 -0
  153. package/docs/directives/EclMegaMenuListDirective.html +6 -0
  154. package/docs/directives/EclMegaMenuSpacerDirective.html +6 -0
  155. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  156. package/docs/directives/EclModalBodyFixedContentDirective.html +6 -0
  157. package/docs/directives/EclMultiselectOptionDirective.html +11 -5
  158. package/docs/directives/EclNewsTickerIconDirective.html +6 -0
  159. package/docs/{modules/EclNotificationModule.html → directives/EclNotificationIconDirective.html} +169 -57
  160. package/docs/directives/{EclSiteFooterLogoListDirective.html → EclNotificationLinkDirective.html} +57 -161
  161. package/docs/directives/EclOrderedListDirective.html +6 -0
  162. package/docs/directives/EclOrderedListItemDirective.html +6 -0
  163. package/docs/directives/EclPaginationListDirective.html +6 -0
  164. package/docs/directives/EclPopoverToggleDirective.html +12 -0
  165. package/docs/directives/EclRadioInputDirective.html +6 -0
  166. package/docs/directives/EclSiteFooterColumnDirective.html +6 -0
  167. package/docs/directives/{EclSiteFooterLogoDirective.html → EclSiteFooterCoownerItemDirective.html} +63 -31
  168. package/docs/directives/{EclSiteFooterLogoItemDirective.html → EclSiteFooterCoownerListDirective.html} +50 -166
  169. package/docs/directives/EclSiteFooterDescriptionDirective.html +6 -0
  170. package/docs/directives/EclSiteFooterDescriptionNameDirective.html +6 -0
  171. package/docs/directives/EclSiteFooterLinkDirective.html +6 -0
  172. package/docs/directives/EclSiteFooterListDirective.html +6 -19
  173. package/docs/directives/EclSiteFooterListItemDirective.html +6 -0
  174. package/docs/directives/EclSiteFooterLogoImageDirective.html +6 -0
  175. package/docs/directives/EclSiteFooterLogoLinkDirective.html +6 -0
  176. package/docs/directives/EclSiteFooterRowDirective.html +6 -0
  177. package/docs/directives/EclSiteFooterSectionDirective.html +0 -96
  178. package/docs/directives/EclSiteFooterSocialMediaDirective.html +6 -0
  179. package/docs/directives/EclSiteFooterTitleDirective.html +6 -0
  180. package/docs/directives/EclSiteFooterTitleLinkDirective.html +6 -0
  181. package/docs/directives/EclSiteHeaderCtaDirective.html +6 -0
  182. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +6 -0
  183. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +6 -0
  184. package/docs/directives/EclSpotlightImageDirective.html +6 -0
  185. package/docs/directives/EclTableCaptionDirective.html +6 -0
  186. package/docs/directives/EclTagSetItemDirective.html +6 -0
  187. package/docs/directives/EclTimelineSetDirective.html +6 -0
  188. package/docs/directives/EclUnorderedListDirective.html +6 -0
  189. package/docs/directives/EclUnorderedListItemDirective.html +6 -0
  190. package/docs/injectables/EclRtlService.html +6 -0
  191. package/docs/js/libs/bootstrap-native.js +1 -1
  192. package/docs/js/libs/vis-network.min.js +78 -0
  193. package/docs/js/menu-wc.js +53 -2401
  194. package/docs/js/menu-wc_es5.js +1 -1
  195. package/docs/js/search/search_index.js +2 -2
  196. package/docs/miscellaneous/functions.html +5 -1
  197. package/docs/miscellaneous/variables.html +534 -1395
  198. package/docs/modules.html +2 -722
  199. package/docs/overview.html +2 -2
  200. package/docs/properties.html +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +8 -27
  202. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -23
  204. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-banner.mjs +36 -85
  206. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -30
  208. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +15 -42
  210. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-button.mjs +14 -34
  212. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-components-ecl-card.mjs +14 -45
  214. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  215. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +8 -27
  216. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  217. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +11 -30
  218. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  219. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +15 -34
  220. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  221. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +56 -128
  222. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  223. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +11 -30
  224. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  225. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +5 -23
  226. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  227. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +5 -23
  228. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  229. package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -24
  230. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  231. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +5 -23
  232. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  233. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +14 -48
  234. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  235. package/fesm2022/eui-ecl-components-ecl-featured.mjs +14 -47
  236. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  237. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +5 -23
  238. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  239. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +5 -23
  240. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  241. package/fesm2022/eui-ecl-components-ecl-file.mjs +32 -81
  242. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  243. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +5 -23
  244. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  245. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +51 -22
  246. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  247. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +21 -75
  248. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  249. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -23
  250. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  251. package/fesm2022/eui-ecl-components-ecl-icon.mjs +5 -23
  252. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  253. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +24 -51
  254. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  255. package/fesm2022/eui-ecl-components-ecl-label.mjs +5 -23
  256. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  257. package/fesm2022/eui-ecl-components-ecl-link.mjs +44 -41
  258. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  259. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +18 -51
  260. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  261. package/fesm2022/eui-ecl-components-ecl-list.mjs +29 -74
  262. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  263. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +11 -30
  264. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  265. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +17 -50
  266. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  267. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +50 -112
  268. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  269. package/fesm2022/eui-ecl-components-ecl-menu.mjs +14 -33
  270. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  271. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -80
  272. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  273. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +27 -66
  274. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  275. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +14 -44
  276. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  277. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +11 -39
  278. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  279. package/fesm2022/eui-ecl-components-ecl-notification.mjs +86 -50
  280. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  281. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +43 -100
  282. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  283. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +12 -32
  284. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  285. package/fesm2022/eui-ecl-components-ecl-popover.mjs +16 -44
  286. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  287. package/fesm2022/eui-ecl-components-ecl-radio.mjs +14 -32
  288. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  289. package/fesm2022/eui-ecl-components-ecl-range.mjs +11 -30
  290. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  291. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +5 -23
  292. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  293. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +12 -32
  294. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  295. package/fesm2022/eui-ecl-components-ecl-select.mjs +8 -33
  296. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  297. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +150 -260
  298. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  299. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +73 -157
  300. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  301. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +14 -32
  302. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  303. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +29 -74
  304. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  305. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs +13 -13
  306. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
  307. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +5 -23
  308. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  309. package/fesm2022/eui-ecl-components-ecl-table.mjs +32 -80
  310. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +56 -129
  312. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  313. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -33
  314. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +5 -24
  316. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +5 -24
  318. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +20 -62
  320. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-core.mjs +25 -62
  322. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-shared.mjs +3 -3
  324. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  325. package/fesm2022/eui-ecl.mjs +1 -203
  326. package/fesm2022/eui-ecl.mjs.map +1 -1
  327. package/package.json +17 -17
  328. package/types/eui-ecl-components-ecl-accordion.d.ts +1 -13
  329. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  330. package/types/eui-ecl-components-ecl-app.d.ts +2 -13
  331. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  332. package/types/eui-ecl-components-ecl-banner.d.ts +2 -14
  333. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  334. package/types/eui-ecl-components-ecl-blockquote.d.ts +1 -13
  335. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  336. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +11 -27
  337. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  338. package/types/eui-ecl-components-ecl-button.d.ts +1 -13
  339. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  340. package/types/eui-ecl-components-ecl-card.d.ts +1 -13
  341. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  342. package/types/eui-ecl-components-ecl-carousel.d.ts +1 -13
  343. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  344. package/types/eui-ecl-components-ecl-category-filter.d.ts +1 -13
  345. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  346. package/types/eui-ecl-components-ecl-checkbox.d.ts +1 -12
  347. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  348. package/types/eui-ecl-components-ecl-content-block.d.ts +1 -12
  349. package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
  350. package/types/eui-ecl-components-ecl-content-item.d.ts +1 -12
  351. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  352. package/types/eui-ecl-components-ecl-date-block.d.ts +1 -12
  353. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  354. package/types/eui-ecl-components-ecl-date-picker.d.ts +2 -13
  355. package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
  356. package/types/eui-ecl-components-ecl-divider.d.ts +1 -12
  357. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  358. package/types/eui-ecl-components-ecl-expandable.d.ts +2 -13
  359. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  360. package/types/eui-ecl-components-ecl-fact-figures.d.ts +1 -12
  361. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  362. package/types/eui-ecl-components-ecl-featured.d.ts +1 -13
  363. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  364. package/types/eui-ecl-components-ecl-feedback-message.d.ts +1 -12
  365. package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
  366. package/types/eui-ecl-components-ecl-file-upload.d.ts +1 -12
  367. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  368. package/types/eui-ecl-components-ecl-file.d.ts +1 -12
  369. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  370. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -12
  371. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  372. package/types/eui-ecl-components-ecl-form-label.d.ts +24 -10
  373. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  374. package/types/eui-ecl-components-ecl-gallery.d.ts +3 -20
  375. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  376. package/types/eui-ecl-components-ecl-help-block.d.ts +1 -12
  377. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  378. package/types/eui-ecl-components-ecl-icon.d.ts +1 -12
  379. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  380. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +2 -17
  381. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  382. package/types/eui-ecl-components-ecl-label.d.ts +1 -12
  383. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  384. package/types/eui-ecl-components-ecl-link.d.ts +17 -16
  385. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  386. package/types/eui-ecl-components-ecl-list-illustration.d.ts +1 -12
  387. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  388. package/types/eui-ecl-components-ecl-list.d.ts +1 -12
  389. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  390. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +1 -13
  391. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  392. package/types/eui-ecl-components-ecl-media-container.d.ts +1 -12
  393. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  394. package/types/eui-ecl-components-ecl-mega-menu.d.ts +1 -13
  395. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  396. package/types/eui-ecl-components-ecl-menu.d.ts +1 -12
  397. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  398. package/types/eui-ecl-components-ecl-modal.d.ts +2 -19
  399. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  400. package/types/eui-ecl-components-ecl-multiselect.d.ts +1 -12
  401. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  402. package/types/eui-ecl-components-ecl-navigation-list.d.ts +1 -12
  403. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  404. package/types/eui-ecl-components-ecl-news-ticker.d.ts +1 -13
  405. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  406. package/types/eui-ecl-components-ecl-notification.d.ts +45 -29
  407. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  408. package/types/eui-ecl-components-ecl-page-header.d.ts +1 -12
  409. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  410. package/types/eui-ecl-components-ecl-pagination.d.ts +3 -14
  411. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  412. package/types/eui-ecl-components-ecl-popover.d.ts +5 -17
  413. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  414. package/types/eui-ecl-components-ecl-radio.d.ts +1 -12
  415. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  416. package/types/eui-ecl-components-ecl-range.d.ts +1 -12
  417. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  418. package/types/eui-ecl-components-ecl-rating-field.d.ts +2 -13
  419. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  420. package/types/eui-ecl-components-ecl-search-form.d.ts +4 -15
  421. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  422. package/types/eui-ecl-components-ecl-select.d.ts +1 -13
  423. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  424. package/types/eui-ecl-components-ecl-site-footer.d.ts +42 -63
  425. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  426. package/types/eui-ecl-components-ecl-site-header.d.ts +4 -19
  427. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  428. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +6 -13
  429. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  430. package/types/eui-ecl-components-ecl-splash-page.d.ts +1 -12
  431. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  432. package/types/eui-ecl-components-ecl-sticky-container.d.ts +1 -12
  433. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  434. package/types/eui-ecl-components-ecl-table.d.ts +1 -12
  435. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  436. package/types/eui-ecl-components-ecl-tabs.d.ts +4 -46
  437. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  438. package/types/eui-ecl-components-ecl-tag.d.ts +1 -12
  439. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  440. package/types/eui-ecl-components-ecl-text-area.d.ts +1 -13
  441. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  442. package/types/eui-ecl-components-ecl-text-input.d.ts +1 -13
  443. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  444. package/types/eui-ecl-components-ecl-timeline.d.ts +1 -12
  445. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  446. package/types/eui-ecl-core.d.ts +0 -3
  447. package/types/eui-ecl-core.d.ts.map +1 -1
  448. package/types/eui-ecl.d.ts +1 -69
  449. package/types/eui-ecl.d.ts.map +1 -1
  450. package/docs/js/libs/vis.min.js +0 -47
  451. package/docs/modules/EclAccordionModule.html +0 -273
  452. package/docs/modules/EclAllModule.html +0 -261
  453. package/docs/modules/EclAppModule.html +0 -267
  454. package/docs/modules/EclBannerModule.html +0 -321
  455. package/docs/modules/EclBlockquoteModule.html +0 -279
  456. package/docs/modules/EclBreadcrumbModule.html +0 -321
  457. package/docs/modules/EclButtonModule.html +0 -285
  458. package/docs/modules/EclCardModule.html +0 -321
  459. package/docs/modules/EclCarouselModule.html +0 -273
  460. package/docs/modules/EclCategoryFilterModule.html +0 -279
  461. package/docs/modules/EclCheckboxModule.html +0 -321
  462. package/docs/modules/EclContentBlockModule.html +0 -321
  463. package/docs/modules/EclContentItemModule.html +0 -321
  464. package/docs/modules/EclDateBlockModule.html +0 -267
  465. package/docs/modules/EclDatePickerModule.html +0 -267
  466. package/docs/modules/EclDividerModule.html +0 -267
  467. package/docs/modules/EclExpandableModule.html +0 -267
  468. package/docs/modules/EclFactFiguresModule.html +0 -285
  469. package/docs/modules/EclFeaturedModule.html +0 -321
  470. package/docs/modules/EclFeedbackMessageModule.html +0 -267
  471. package/docs/modules/EclFileModule.html +0 -321
  472. package/docs/modules/EclFileUploadModule.html +0 -267
  473. package/docs/modules/EclFormGroupModule.html +0 -267
  474. package/docs/modules/EclGalleryModule.html +0 -321
  475. package/docs/modules/EclHelpBlockModule.html +0 -267
  476. package/docs/modules/EclIconModule.html +0 -267
  477. package/docs/modules/EclInpageNavigationModule.html +0 -321
  478. package/docs/modules/EclLabelModule.html +0 -267
  479. package/docs/modules/EclLinkModule.html +0 -285
  480. package/docs/modules/EclListIllustrationModule.html +0 -321
  481. package/docs/modules/EclListModule.html +0 -321
  482. package/docs/modules/EclLoadingIndicatorModule.html +0 -279
  483. package/docs/modules/EclMediaContainerModule.html +0 -321
  484. package/docs/modules/EclMegaMenuModule.html +0 -321
  485. package/docs/modules/EclMenuModule.html +0 -321
  486. package/docs/modules/EclModalModule.html +0 -321
  487. package/docs/modules/EclMultiselectModule.html +0 -321
  488. package/docs/modules/EclNavigationListModule.html +0 -321
  489. package/docs/modules/EclNewsTickerModule.html +0 -321
  490. package/docs/modules/EclPageHeaderModule.html +0 -321
  491. package/docs/modules/EclPaginationModule.html +0 -321
  492. package/docs/modules/EclPopoverModule.html +0 -321
  493. package/docs/modules/EclRadioModule.html +0 -285
  494. package/docs/modules/EclRangeModule.html +0 -321
  495. package/docs/modules/EclRatingFieldModule.html +0 -267
  496. package/docs/modules/EclSearchFormModule.html +0 -267
  497. package/docs/modules/EclSelectModule.html +0 -321
  498. package/docs/modules/EclSiteFooterModule.html +0 -321
  499. package/docs/modules/EclSiteHeaderModule.html +0 -321
  500. package/docs/modules/EclSocialMediaFollowModule.html +0 -321
  501. package/docs/modules/EclSplashPageModule.html +0 -321
  502. package/docs/modules/EclStickyContainerModule.html +0 -267
  503. package/docs/modules/EclTableModule.html +0 -321
  504. package/docs/modules/EclTabsModule.html +0 -321
  505. package/docs/modules/EclTagModule.html +0 -321
  506. package/docs/modules/EclTextAreaModule.html +0 -267
  507. package/docs/modules/EclTextInputModule.html +0 -267
  508. package/docs/modules/EclTimelineModule.html +0 -297
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, Component, booleanAttribute, HostBinding, Input, EventEmitter, ContentChild, ViewChild, Output, IterableDiffers, ChangeDetectorRef, PLATFORM_ID, afterNextRender, HostListener, forwardRef, ContentChildren, ViewEncapsulation, NgModule } from '@angular/core';
2
+ import { inject, ElementRef, Component, EventEmitter, booleanAttribute, HostBinding, ContentChild, ViewChild, Output, Input, IterableDiffers, ChangeDetectorRef, PLATFORM_ID, afterNextRender, HostListener, forwardRef, ContentChildren, ViewEncapsulation } from '@angular/core';
3
3
  import { ECLBaseDirective, EclBaseEvent, EclRtlService, KeyCode } from '@eui/ecl/core';
4
4
  import * as i1 from '@eui/ecl/components/ecl-link';
5
5
  import { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';
@@ -23,52 +23,14 @@ class EclTabLabelComponent extends ECLBaseDirective {
23
23
  super(...arguments);
24
24
  this.el = inject(ElementRef);
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-rc.2", type: EclTabLabelComponent, isStandalone: true, selector: "ecl-tab-label", usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.3", type: EclTabLabelComponent, isStandalone: true, selector: "ecl-tab-label", usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabLabelComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabLabelComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ selector: 'ecl-tab-label', template: "<ng-content></ng-content>\n" }]
32
32
  }] });
33
33
 
34
- /**
35
- * @deprecated
36
- * This component is deprecated and will be removed in v20.
37
- *
38
- * Represents a "More" tab item used to group additional tabs when space is limited.
39
- */
40
- class EclTabMoreComponent extends ECLBaseDirective {
41
- constructor() {
42
- super(...arguments);
43
- /**
44
- * Controls whether the tab is hidden.
45
- * When true, the `ecl-tabs__item--hidden` class is applied.
46
- */
47
- this.isHidden = false;
48
- }
49
- /**
50
- * Host CSS classes applied to the component.
51
- */
52
- get cssClasses() {
53
- return [super.getCssClasses('ecl-tabs__item ecl-tabs__item--more')].join(' ').trim();
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabMoreComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-rc.2", type: EclTabMoreComponent, isStandalone: true, selector: "ecl-tab-more", inputs: { isHidden: ["isHidden", "isHidden", booleanAttribute] }, host: { properties: { "class.ecl-tabs__item--hidden": "this.isHidden", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabMoreComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'ecl-tab-more', template: "<ng-content></ng-content>\n" }]
61
- }], propDecorators: { isHidden: [{
62
- type: Input,
63
- args: [{ transform: booleanAttribute }]
64
- }, {
65
- type: HostBinding,
66
- args: ['class.ecl-tabs__item--hidden']
67
- }], cssClasses: [{
68
- type: HostBinding,
69
- args: ['class']
70
- }] } });
71
-
72
34
  /**
73
35
  * Event emitted when a tab is selected.
74
36
  *
@@ -87,9 +49,6 @@ class EclTabSelectEvent extends EclBaseEvent {
87
49
  /**
88
50
  * Represents a single tab inside the ECL Tabs component.
89
51
  * Manages its label, state (active, hidden), and interaction events like click or keydown.
90
- *
91
- * Note: The old selector `ecl-tab` is deprecated and will be removed in v20.
92
- * Use `div[eclTab]` instead.
93
52
  */
94
53
  class EclTabComponent extends ECLBaseDirective {
95
54
  constructor() {
@@ -189,12 +148,12 @@ class EclTabComponent extends ECLBaseDirective {
189
148
  onBlur() {
190
149
  this.link.onBlur();
191
150
  }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-rc.2", type: EclTabComponent, isStandalone: true, selector: "ecl-tab, div[eclTab]", inputs: { id: "id", anchorExtraClasses: "anchorExtraClasses", isHidden: ["isHidden", "isHidden", booleanAttribute], isActive: ["isActive", "isActive", booleanAttribute] }, outputs: { selectTab: "selectTab", keydownTab: "keydownTab" }, host: { properties: { "class.ecl-tabs__item--hidden": "this.isHidden", "class": "this.cssClasses" } }, queries: [{ propertyName: "label", first: true, predicate: EclTabLabelComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["content"], descendants: true }, { propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer {{anchorExtraClasses}}\"\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", dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }] }); }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.3", type: EclTabComponent, isStandalone: true, selector: "div[eclTab]", inputs: { id: "id", anchorExtraClasses: "anchorExtraClasses", isHidden: ["isHidden", "isHidden", booleanAttribute], isActive: ["isActive", "isActive", booleanAttribute] }, outputs: { selectTab: "selectTab", keydownTab: "keydownTab" }, host: { properties: { "class.ecl-tabs__item--hidden": "this.isHidden", "class": "this.cssClasses" } }, queries: [{ propertyName: "label", first: true, predicate: EclTabLabelComponent, descendants: true }], viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["content"], descendants: true }, { propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer {{anchorExtraClasses}}\"\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", dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }] }); }
194
153
  }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabComponent, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabComponent, decorators: [{
196
155
  type: Component,
197
- args: [{ selector: 'ecl-tab, div[eclTab]', imports: [...EUI_ECL_LINK], template: "<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer {{anchorExtraClasses}}\"\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" }]
156
+ args: [{ selector: 'div[eclTab]', imports: [...EUI_ECL_LINK], template: "<a\n eclLink\n role=\"tab\"\n class=\"ecl-tabs__link eui-ecl-u-cursor-pointer {{anchorExtraClasses}}\"\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" }]
198
157
  }], ctorParameters: () => [], propDecorators: { id: [{
199
158
  type: Input
200
159
  }], anchorExtraClasses: [{
@@ -233,9 +192,6 @@ var ShiftDirection;
233
192
  })(ShiftDirection || (ShiftDirection = {}));
234
193
  /**
235
194
  * ECL Tabs component for displaying tabbed content and managing tab selection and navigation.
236
- *
237
- * Note: The old selector `ecl-tabs` is deprecated and will be removed in v20.
238
- * Use `div[eclTabs]` instead.
239
195
  */
240
196
  class EclTabsComponent extends ECLBaseDirective {
241
197
  constructor() {
@@ -390,19 +346,6 @@ class EclTabsComponent extends ECLBaseDirective {
390
346
  }
391
347
  return '0';
392
348
  }
393
- /**
394
- * Handles blur event when navigating tabs via keyboard.
395
- */
396
- onTabBlur(evt) {
397
- this.closeDropdown();
398
- if (evt.shiftKey) {
399
- this.getFirstTabFromArray().onBlur();
400
- }
401
- else {
402
- this.getLastVisibleTab().onFocus();
403
- this.getLastVisibleTab().onBlur();
404
- }
405
- }
406
349
  /**
407
350
  * Handles tab selection.
408
351
  * @param tab Tab to activate.
@@ -466,45 +409,48 @@ class EclTabsComponent extends ECLBaseDirective {
466
409
  * @param tab Target tab.
467
410
  */
468
411
  onTabKeydown(event, tab) {
469
- event.preventDefault();
470
- if (event instanceof KeyboardEvent) {
471
- const index = this.getCurrentTabIndex(tab);
472
- switch (event.key) {
473
- case KeyCode.ARROW_LEFT: {
474
- this.onTabKeydownArrowLeft(index);
475
- break;
476
- }
477
- case KeyCode.ARROW_RIGHT: {
478
- this.onTabKeydownArrowRight(index);
479
- break;
480
- }
481
- case KeyCode.ARROW_UP: {
482
- this.onTabKeydownArrowLeft(index);
483
- break;
484
- }
485
- case KeyCode.ARROW_DOWN: {
486
- this.onTabKeydownArrowRight(index);
487
- break;
488
- }
489
- case KeyCode.END: {
490
- this.onTabKeydownEnd();
491
- break;
492
- }
493
- case KeyCode.HOME: {
494
- this.onTabKeydownHome();
495
- break;
496
- }
497
- case KeyCode.ENTER: {
498
- this.onTabSelect(tab);
499
- break;
500
- }
501
- case KeyCode.TAB: {
502
- this.onTabBlur(event);
503
- break;
504
- }
505
- default: {
506
- break;
507
- }
412
+ if (!(event instanceof KeyboardEvent)) {
413
+ return;
414
+ }
415
+ const index = this.getCurrentTabIndex(tab);
416
+ switch (event.key) {
417
+ case KeyCode.ARROW_LEFT: {
418
+ event.preventDefault();
419
+ this.onTabKeydownArrowLeft(index);
420
+ break;
421
+ }
422
+ case KeyCode.ARROW_RIGHT: {
423
+ event.preventDefault();
424
+ this.onTabKeydownArrowRight(index);
425
+ break;
426
+ }
427
+ case KeyCode.ARROW_UP: {
428
+ event.preventDefault();
429
+ this.onTabKeydownArrowLeft(index);
430
+ break;
431
+ }
432
+ case KeyCode.ARROW_DOWN: {
433
+ event.preventDefault();
434
+ this.onTabKeydownArrowRight(index);
435
+ break;
436
+ }
437
+ case KeyCode.END: {
438
+ event.preventDefault();
439
+ this.onTabKeydownEnd();
440
+ break;
441
+ }
442
+ case KeyCode.HOME: {
443
+ event.preventDefault();
444
+ this.onTabKeydownHome();
445
+ break;
446
+ }
447
+ case KeyCode.ENTER: {
448
+ event.preventDefault();
449
+ this.onTabSelect(tab);
450
+ break;
451
+ }
452
+ default: {
453
+ break;
508
454
  }
509
455
  }
510
456
  }
@@ -805,12 +751,12 @@ class EclTabsComponent extends ECLBaseDirective {
805
751
  }, this.TIMEOUT_INTERVAL);
806
752
  }).observe(this.tabsList.nativeElement);
807
753
  }
808
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
809
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-rc.2", type: EclTabsComponent, isStandalone: true, selector: "div[eclTabs], ecl-tabs", inputs: { bodyClass: "bodyClass" }, outputs: { tabSelect: "tabSelect" }, host: { listeners: { "document:click": "onClick($event.target)" }, properties: { "class.ecl-tabs": "this.hasClass" } }, queries: [{ propertyName: "tabs", predicate: i0.forwardRef(() => EclTabComponent) }], viewQueries: [{ propertyName: "tabsList", first: true, predicate: ["tabsList"], descendants: true }, { propertyName: "moreButton", first: true, predicate: ["moreButton"], descendants: true }, { propertyName: "btnPrev", first: true, predicate: ["btnPrev"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }, { propertyName: "dropdownList", first: true, predicate: ["dropdownList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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}", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1$1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclTabComponent, selector: "ecl-tab, div[eclTab]", inputs: ["id", "anchorExtraClasses", "isHidden", "isActive"], outputs: ["selectTab", "keydownTab"] }, { kind: "component", type: EclTabLabelComponent, selector: "ecl-tab-label" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
754
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
755
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: EclTabsComponent, isStandalone: true, selector: "div[eclTabs]", inputs: { bodyClass: "bodyClass" }, outputs: { tabSelect: "tabSelect" }, host: { listeners: { "document:click": "onClick($event.target)" }, properties: { "class.ecl-tabs": "this.hasClass" } }, queries: [{ propertyName: "tabs", predicate: i0.forwardRef(() => EclTabComponent) }], viewQueries: [{ propertyName: "tabsList", first: true, predicate: ["tabsList"], descendants: true }, { propertyName: "moreButton", first: true, predicate: ["moreButton"], descendants: true }, { propertyName: "btnPrev", first: true, predicate: ["btnPrev"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }, { propertyName: "dropdownList", first: true, predicate: ["dropdownList"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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}", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1$1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclTabComponent, selector: "div[eclTab]", inputs: ["id", "anchorExtraClasses", "isHidden", "isActive"], outputs: ["selectTab", "keydownTab"] }, { kind: "component", type: EclTabLabelComponent, selector: "ecl-tab-label" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
810
756
  }
811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsComponent, decorators: [{
757
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: EclTabsComponent, decorators: [{
812
758
  type: Component,
813
- args: [{ selector: 'div[eclTabs], ecl-tabs', imports: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, EclTabComponent, EclTabLabelComponent], encapsulation: ViewEncapsulation.None, template: "@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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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}" }]
759
+ args: [{ selector: 'div[eclTabs]', imports: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, EclTabComponent, EclTabLabelComponent], encapsulation: ViewEncapsulation.None, template: "@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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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}" }]
814
760
  }], ctorParameters: () => [], propDecorators: { hasClass: [{
815
761
  type: HostBinding,
816
762
  args: ['class.ecl-tabs']
@@ -841,32 +787,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ng
841
787
  args: ['document:click', ['$event.target']]
842
788
  }] } });
843
789
 
844
- const COMPONENTS = [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent];
845
- /**
846
- * Module that provides the EclTabsComponent and it's dependencies.
847
- *
848
- * @deprecated Use {@link EUI_ECL_TABS} instead.
849
- */
850
- class EclTabsModule {
851
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
852
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsModule, imports: [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent], exports: [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent] }); }
853
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsModule, imports: [EclTabsComponent] }); }
854
- }
855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclTabsModule, decorators: [{
856
- type: NgModule,
857
- args: [{
858
- imports: [...COMPONENTS],
859
- exports: [...COMPONENTS],
860
- }]
861
- }] });
862
-
863
790
  const EUI_ECL_TABS = [
864
- EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent,
791
+ EclTabsComponent, EclTabComponent, EclTabLabelComponent,
865
792
  ];
866
793
 
867
794
  /**
868
795
  * Generated bundle index. Do not edit.
869
796
  */
870
797
 
871
- export { EUI_ECL_TABS, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent, EclTabSelectEvent, EclTabsComponent, EclTabsModule, ShiftDirection };
798
+ export { EUI_ECL_TABS, EclTabComponent, EclTabLabelComponent, EclTabSelectEvent, EclTabsComponent, ShiftDirection };
872
799
  //# sourceMappingURL=eui-ecl-components-ecl-tabs.mjs.map
@@ -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/ecl-tab-more.component.ts","../../components/ecl-tabs/ecl-tab-more.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-tabs.module.ts","../../components/ecl-tabs/index.ts","../../components/ecl-tabs/eui-ecl-components-ecl-tabs.ts"],"sourcesContent":["import { Component, ElementRef, inject } 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})\nexport class EclTabLabelComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n}\n","<ng-content></ng-content>\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})\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 { 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 inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } 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 imports: [...EUI_ECL_LINK],\n})\nexport class EclTabComponent extends ECLBaseDirective implements EclTab, AfterViewInit {\n /**\n * Unique identifier for the tab.\n */\n @Input() id: string;\n\n /**\n * Extra classes to be added to the anchor tag.\n */\n @Input() anchorExtraClasses: 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 private elementRef = inject(ElementRef);\n\n constructor() {\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 {{anchorExtraClasses}}\"\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';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\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, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclTabLabelComponent } from './ecl-tab-label.component';\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 imports: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, EclTabComponent, EclTabLabelComponent],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclTabsComponent extends ECLBaseDirective implements OnInit, OnDestroy {\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 differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n private eclRtlService = inject(EclRtlService);\n private platformId = inject(PLATFORM_ID);\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 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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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 { NgModule } from '@angular/core';\nimport { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTabMoreComponent } from './ecl-tab-more.component';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabsComponent } from './ecl-tabs.component';\n\nconst COMPONENTS = [EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent];\n/**\n * Module that provides the EclTabsComponent and it's dependencies.\n *\n * @deprecated Use {@link EUI_ECL_TABS} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclTabsModule {}\n","import { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTabMoreComponent } from './ecl-tab-more.component';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabsComponent } from './ecl-tabs.component';\n\nexport * from './ecl-tabs.module';\nexport * from './ecl-tabs.component';\nexport * from './ecl-tab.component';\nexport * from './ecl-tab-more.component';\nexport * from './ecl-tab-label.component';\nexport * from './models/ecl-tab.model';\nexport * from './events/ecl-tab-select.event';\n\nexport const EUI_ECL_TABS = [\n EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;AAGA;;;AAGG;AAKG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAJ1D,IAAA,WAAA,GAAA;;AAKI,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,IAAA;mHAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,IAAA,EAAA,oBAAoB,gGCXjC,6BACA,EAAA,CAAA,CAAA;;gGDUa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,6BAAA,EAAA;;;AEL7B;;;;;AAKG;AAKG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AAJzD,IAAA,WAAA,GAAA;;AAKI;;;AAGG;QACkF,IAAA,CAAA,QAAQ,GAAG,KAAK;AASxG,IAAA;AAPG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACxF;mHAbS,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAKR,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBxC,6BACA,EAAA,CAAA,CAAA;;gGDYa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACI,cAAc,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAQvB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAAG,WAAW;uBAAC,8BAA8B;;sBAKlF,WAAW;uBAAC,OAAO;;;AEpBxB;;;;AAIG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC/C;;AAEG;AACH,IAAA,WAAA,CAAmB,GAAW,EAAA;AAC1B,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,GAAG,GAAH,GAAG;IAEtB;AACH;;ACKD;;;;;;AAMG;AAMG,MAAO,eAAgB,SAAQ,gBAAgB,CAAA;AA6DjD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAnDX;;AAEG;QACkF,IAAA,CAAA,QAAQ,GAAG,KAAK;AAErG;;AAEG;QACqC,IAAA,CAAA,QAAQ,GAAG,KAAK;AAExD;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAqB;AAE3D;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAS;AAkBhD;;AAEG;QACI,IAAA,CAAA,QAAQ,GAAG,EAAE;AAEpB;;AAEG;QACH,IAAA,CAAA,YAAY,GAAG,CAAC,CAAC;QAET,IAAA,CAAA,WAAW,GAAG,IAAI;AAElB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAInC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC;QAChF;IACJ;AAEA;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa;IACzC;AAEA;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;AACpE,YAAA,OAAO,IAAI;QACf;AACA,QAAA,OAAO,KAAK;IAChB;IAEA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS;IACzD;AAEA;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACnE;AAEA;;AAEG;IACH,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS;IAChD;AAEA;;;AAGG;IACI,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QAC5B;QACA,OAAO,IAAI,CAAC,KAAK;IACrB;AAEA;;AAEG;IACH,UAAU,GAAA;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA;;AAEG;AACH,IAAA,SAAS,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;IACvB;AAEA;;AAEG;IACH,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IACtB;mHA9IS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAcJ,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAKhB,gBAAgB,sOA0BtB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EALvB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxE/B,ubAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;gGDiBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,OAAA,EAEvB,CAAC,GAAG,YAAY,CAAC,EAAA,QAAA,EAAA,ubAAA,EAAA;;sBAMzB;;sBAKA;;sBAKA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAAG,WAAW;uBAAC,8BAA8B;;sBAKlF,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAKrC;;sBAKA;;sBAMA,SAAS;uBAAC,SAAS;;sBAKnB,SAAS;uBAAC,gBAAgB;;sBAK1B,YAAY;uBAAC,oBAAoB;;sBA+CjC,WAAW;uBAAC,OAAO;;;IEvFZ;AAAZ,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,MAAiB;AACrB,CAAC,EAHW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;AAK1B;;;;;AAKG;AAQG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAyGlD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAzGX;;AAEG;AAC4B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,IAAI,CAAC,kBAAkB;AAElE;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,YAAY;AAEjC;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAqB;AAgC3D;;AAEG;QACH,IAAA,CAAA,YAAY,GAA2B,EAAE;AAEzC;;AAEG;QACH,IAAA,CAAA,QAAQ,GAA2B,EAAE;AAErC;;AAEG;QACH,IAAA,CAAA,KAAK,GAAG,CAAC;AAET;;AAEG;QACH,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAE1B;;AAEG;QACH,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAE1B;;AAEG;QACH,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAEvB;;AAEG;QACH,IAAA,CAAA,mBAAmB,GAAG,KAAK;AAE3B;;AAEG;QACH,IAAA,CAAA,mBAAmB,GAAG,KAAK;AAE3B;;AAEG;QACH,IAAA,CAAA,cAAc,GAAG,4BAA4B;AAErC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9B,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAGhC,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QACnD,IAAA,CAAA,WAAW,GAAG,IAAI;QAClB,IAAA,CAAA,KAAK,GAAG,KAAK;QAEb,IAAA,CAAA,gBAAgB,GAAG,CAAC;AAIxB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC;QAClF;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5C,eAAe,CAAC,MAAK;YACjB,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC3B,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;QAC/B;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAGA,IAAA,OAAO,CAAC,MAAM,EAAA;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzG,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;AAEA;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC7D,YAAA,OAAO,IAAI;QACf;AACA,QAAA,OAAO,KAAK;IAChB;AAEA;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS;IAChE;AAEA;;AAEG;IACH,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC3C;AAEA;;AAEG;IACH,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;IACvC;AAEA;;AAEG;IACH,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB;IACtD;AAEA;;AAEG;IACH,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,kBAAkB,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,EAAE,CAAA,EAAA,CAAI,GAAG,MAAM;IACxE;AAEA;;AAEG;IACH,YAAY,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF;AAEA;;AAEG;IACH,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;IAC3D;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;QACrB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;IACrD;AAEA;;AAEG;IACH,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,OAAO,MAAM;QACjB;AACA,QAAA,OAAO,GAAG;IACd;AAEA;;AAEG;AACH,IAAA,SAAS,CAAC,GAAkB,EAAA;QACxB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;AACd,YAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE;QACxC;aAAO;AACH,YAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE;QACrC;IACJ;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,GAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;IAChC;AAEA;;;AAGG;AACH,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;YACnC,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBACnC;YACJ;QACJ;AACA,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/D,IAAI,CAAC,eAAe,EAAE;QAC1B;aAAO;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAC9B;IACJ;AAEA;;;AAGG;AACH,IAAA,qBAAqB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC;AACvC,YAAA,IAAI,KAAK,KAAK,CAAC,EAAE;gBACb;YACJ;QACJ;QAEA,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzC,IAAI,CAAC,cAAc,EAAE;QACzB;aAAO;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAC9B;IACJ;AAEA;;AAEG;IACH,gBAAgB,GAAA;QACZ,IAAI,CAAC,eAAe,EAAE;IAC1B;AAEA;;AAEG;IACH,eAAe,GAAA;QACX,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA;;;;AAIG;IACH,YAAY,CAAC,KAAY,EAAE,GAAoB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,KAAK,YAAY,aAAa,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC1C,YAAA,QAAQ,KAAK,CAAC,GAAG;AACb,gBAAA,KAAK,OAAO,CAAC,UAAU,EAAE;AACrB,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBACjC;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,WAAW,EAAE;AACtB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;oBAClC;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;AACnB,oBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBACjC;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,UAAU,EAAE;AACrB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;oBAClC;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,eAAe,EAAE;oBACtB;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,IAAI,EAAE;oBACf,IAAI,CAAC,gBAAgB,EAAE;oBACvB;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,KAAK,EAAE;AAChB,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBACrB;gBACJ;AACA,gBAAA,KAAK,OAAO,CAAC,GAAG,EAAE;AACd,oBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;oBACrB;gBACJ;gBACA,SAAS;oBACL;gBACJ;;QAER;IACJ;AAEQ,IAAA,kBAAkB,CAAC,GAAoB,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;AAChD,QAAA,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5D;AAEQ,IAAA,SAAS,CAAC,GAAW,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAE/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;AAC1C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;AAEhE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,EAAE;QAE1G,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,SAAS,GAAG,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;gBACnC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,UAAU;gBACxD,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,WAAW;AACzD,gBAAA,UAAU,CACjB;QACL;aAAO;YACH,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;QACjG;QAEA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAE1G,QAAA,IAAI,SAAS,GAAG,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;YAChC,SAAS,GAAG,SAAS;QACzB;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,GAAG,CAAA,YAAA,EAAe,SAAS,eAAe;QACjE;aAAO;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,CAAA,aAAA,EAAgB,SAAS,eAAe;QAClE;IACJ;IAEQ,YAAY,CAAC,GAAW,EAAE,KAAa,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,cAAc,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAG;AAChE,gBAAA,OAAO,CAAC;YACZ;iBAAO;gBACH,OAAO,KAAK,GAAG,CAAC;YACpB;QACJ;aAAO;YACH,IAAI,KAAK,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1C,gBAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;YAClC;iBAAO;gBACH,OAAO,KAAK,GAAG,CAAC;YACpB;QACJ;IACJ;IAEQ,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAoB;AACxD,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;AACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAyB,CAAC;AACjD,QAAA,CAAC,CAAC;IACN;IAEQ,cAAc,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;IAC9B;IAEQ,YAAY,GAAA;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;IACrC;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACnC;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAClC;IAEQ,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvH;AAEQ,IAAA,2BAA2B,CAAC,IAAgC,EAAA;QAChE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3E;IAEQ,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACtB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC9B,YAAA,CAAC,CAAC;QACN;aAAO;YACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAI;AAClC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAI;AACpC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,YAAA,CAAC,CAAC;QACN;QACA,IAAI,CAAC,2BAA2B,EAAE;IACtC;AAEQ,IAAA,gBAAgB,CAAC,GAAoB,EAAA;AACzC,QAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACxD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC9D,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,QAAA,CAAC,CAAC;IACN;IAEQ,WAAW,GAAA;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC9B,YAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;YACzB;iBAAO;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC1B;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,iBAAiB,GAAA;QACrB,IAAI,MAAM,GAAG,IAAI;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACjC,YAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACd,MAAM,GAAG,EAAE;YACf;iBAAO;gBACH;YACJ;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM;IACjB;AAEQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC3C,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC;QACtC;aAAO;YACH,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QAC9C;IACJ;IAEQ,eAAe,GAAA;QACnB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE;IACzC;IAEQ,cAAc,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE;QACxC;aAAO;YACH,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACpD;IACJ;AAEQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC;QACtC;aAAO;YACH,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QAC9C;IACJ;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;IACtE;IAEQ,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE;IAEQ,oBAAoB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACnC;AAEQ,IAAA,mBAAmB,CAAC,GAAoB,EAAA;AAC5C,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE;AACtB,YAAA,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;QAC/B;IACJ;IAEQ,iBAAiB,CAAC,IAA4B,EAAE,QAAgC,EAAA;AACpF,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AAChB,YAAA,EAAE,CAAC,QAAQ,GAAG,KAAK;AACvB,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACpB,YAAA,EAAE,CAAC,QAAQ,GAAG,KAAK;AACvB,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,WAAW,CAAC,GAAoB,EAAA;AACpC,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI;IACvB;AAEQ,IAAA,kBAAkB,CAAC,GAAoB,EAAA;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnD;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,oBAAoB,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AAC5C,QAAA,CAAC,CAAC;IACV;IAEQ,YAAY,GAAA;QAChB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,YAAY,EAAE;YACnB;QACJ;AACA,QAAA,IAAI,CAAC,cAAc,GAAG,4BAA4B;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACzC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1E,gBAAA,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;gBACpC;AACA,gBAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC7B,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,mBAAmB,EAAE;QAC9B;aAAO;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC;QACnD;IACJ;IAEQ,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAClF,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QAC5B;IACJ;IAEQ,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvD;IAEQ,wBAAwB,GAAA;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAClC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAChE;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;IAC1B;IAEQ,gBAAgB,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK;IACpE;AAEQ,IAAA,6BAA6B,CAAC,WAAqB,EAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAClC,YAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACzB;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACxB;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAC/B,IAAI,CAAC,iBAAiB,EAAE;IAC5B;IAEQ,iBAAiB,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAG,CAAC,KAAI;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACzB,QAAA,CAAC,CAAC;IACN;IAEQ,oBAAoB,GAAA;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;QAC3B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YACtF,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;gBACrB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;oBACzD,IAAI,CAAC,eAAe,EAAE;gBAC1B;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,aAAa,CAAC,QAAiB,EAAA;AACnC,QAAA,OAAO,QAAQ,KAAK,IAAI,CAAC,KAAK;IAClC;IAEQ,eAAe,GAAA;QACnB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,4BAA4B;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;IAClB;IAEQ,yBAAyB,GAAA;QAC7B,IAAI,cAAc,CAAC,MAAK;YACpB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,YAAY,EAAE;AACvB,YAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;QAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC3C;mHA3pBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAmBS,eAAe,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1ErD,q1GAmEC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfa,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAsC,eAAe,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;gGAG7G,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,WAEzB,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,YAAY,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAA,aAAA,EACxG,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,q1GAAA,EAAA;;sBAMpC,WAAW;uBAAC,gBAAgB;;sBAK5B;;sBAKA;;sBAKA,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,eAAe,CAAC;;sBAKjD,SAAS;uBAAC,UAAU;;sBAKpB,SAAS;uBAAC,YAAY;;sBAKtB,SAAS;uBAAC,SAAS;;sBAKnB,SAAS;uBAAC,SAAS;;sBAKnB,SAAS;uBAAC,cAAc;;sBAuFxB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC;;;AEpLrD,MAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;AACjG;;;;AAIG;MAKU,aAAa,CAAA;mHAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,OAAA,EAAA,CAVN,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAA5E,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAUnF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAVN,gBAAgB,CAAA,EAAA,CAAA,CAAA;;gGAUvB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA;;;ACFM,MAAM,YAAY,GAAG;AACxB,IAAA,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB;;;ACdhF;;AAEG;;;;"}
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/index.ts","../../components/ecl-tabs/eui-ecl-components-ecl-tabs.ts"],"sourcesContent":["import { Component, ElementRef, inject } 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})\nexport class EclTabLabelComponent extends ECLBaseDirective {\n el = inject(ElementRef);\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 inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } 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@Component({\n selector: 'div[eclTab]',\n templateUrl: './ecl-tab.component.html',\n imports: [...EUI_ECL_LINK],\n})\nexport class EclTabComponent extends ECLBaseDirective implements EclTab, AfterViewInit {\n /**\n * Unique identifier for the tab.\n */\n @Input() id: string;\n\n /**\n * Extra classes to be added to the anchor tag.\n */\n @Input() anchorExtraClasses: 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 private elementRef = inject(ElementRef);\n\n constructor() {\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 {{anchorExtraClasses}}\"\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';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\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, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabSelectEvent } from './events/ecl-tab-select.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclTabLabelComponent } from './ecl-tab-label.component';\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@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclTabs]',\n templateUrl: './ecl-tabs.component.html',\n imports: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, EclTabComponent, EclTabLabelComponent],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclTabsComponent extends ECLBaseDirective implements OnInit, OnDestroy {\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 differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n private eclRtlService = inject(EclRtlService);\n private platformId = inject(PLATFORM_ID);\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 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 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 if (!(event instanceof KeyboardEvent)) {\n return;\n }\n\n const index = this.getCurrentTabIndex(tab);\n switch (event.key) {\n case KeyCode.ARROW_LEFT: {\n event.preventDefault();\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n event.preventDefault();\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.ARROW_UP: {\n event.preventDefault();\n this.onTabKeydownArrowLeft(index);\n break;\n }\n case KeyCode.ARROW_DOWN: {\n event.preventDefault();\n this.onTabKeydownArrowRight(index);\n break;\n }\n case KeyCode.END: {\n event.preventDefault();\n this.onTabKeydownEnd();\n break;\n }\n case KeyCode.HOME: {\n event.preventDefault();\n this.onTabKeydownHome();\n break;\n }\n case KeyCode.ENTER: {\n event.preventDefault();\n this.onTabSelect(tab);\n break;\n }\n default: {\n break;\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=\"tertiary\"\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=\"tertiary\" 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=\"tertiary\" 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 { EclTabLabelComponent } from './ecl-tab-label.component';\nimport { EclTabComponent } from './ecl-tab.component';\nimport { EclTabsComponent } from './ecl-tabs.component';\n\nexport * from './ecl-tabs.component';\nexport * from './ecl-tab.component';\nexport * from './ecl-tab-label.component';\nexport * from './models/ecl-tab.model';\nexport * from './events/ecl-tab-select.event';\n\nexport const EUI_ECL_TABS = [\n EclTabsComponent, EclTabComponent, EclTabLabelComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}