@eui/ecl 23.0.0-alpha.4 → 23.0.0-alpha.5

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 (313) hide show
  1. package/docs/changelog.html +38 -0
  2. package/docs/components/EclAddToCalendarComponent.html +7 -62
  3. package/docs/components/EclAnimatedNumbersComponent.html +0 -39
  4. package/docs/components/EclAppComponent.html +12 -72
  5. package/docs/components/EclBannerComponent.html +46 -46
  6. package/docs/components/EclBlockquoteComponent.html +6 -1
  7. package/docs/components/EclCarouselComponent.html +5 -0
  8. package/docs/components/EclCategoryFilterComponent.html +5 -0
  9. package/docs/components/EclCategoryFilterItemComponent.html +15 -10
  10. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  11. package/docs/components/EclContentItemComponent.html +4 -0
  12. package/docs/components/EclDateBlockComponent.html +43 -18
  13. package/docs/components/EclExpandableComponent.html +63 -1
  14. package/docs/components/EclFeaturedComponent.html +46 -37
  15. package/docs/components/EclFileComponent.html +19 -14
  16. package/docs/components/EclFileItemsComponent.html +31 -1
  17. package/docs/components/EclFormLabelComponent.html +1 -1
  18. package/docs/components/EclGalleryComponent.html +29 -29
  19. package/docs/components/EclGalleryItemComponent.html +47 -47
  20. package/docs/components/EclIconComponent.html +158 -48
  21. package/docs/components/EclInpageNavigationComponent.html +21 -1
  22. package/docs/components/EclInpageNavigationItemComponent.html +39 -1
  23. package/docs/components/EclListIllustrationComponent.html +47 -47
  24. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  25. package/docs/components/EclMediaContainerComponent.html +20 -20
  26. package/docs/components/EclMegaMenuFeaturedComponent.html +6 -1
  27. package/docs/components/EclMegaMenuInfoComponent.html +11 -1
  28. package/docs/components/EclMegaMenuItemComponent.html +44 -34
  29. package/docs/components/EclMegaMenuSubitemComponent.html +46 -31
  30. package/docs/components/EclMenuItemComponent.html +12 -2
  31. package/docs/components/EclMenuMegaItemComponent.html +8 -3
  32. package/docs/components/EclMultiselectComponent.html +56 -56
  33. package/docs/components/EclMultiselectDropdownComponent.html +1 -1
  34. package/docs/components/EclMultiselectOptgroupComponent.html +6 -1
  35. package/docs/components/EclNavigationListItemComponent.html +1 -1
  36. package/docs/components/EclNotificationComponent.html +32 -1
  37. package/docs/components/EclPaginationItemComponent.html +84 -59
  38. package/docs/components/EclRatingFieldComponent.html +98 -2
  39. package/docs/components/EclSearchFormComponent.html +41 -1
  40. package/docs/components/EclSelectContainerComponent.html +116 -1
  41. package/docs/components/EclSiteFooterComponent.html +1 -1
  42. package/docs/components/EclSiteFooterCoreComponent.html +6 -1
  43. package/docs/components/EclSiteFooterFixedContentEUComponent.html +16 -1
  44. package/docs/components/EclSiteFooterRowCommonComponent.html +6 -1
  45. package/docs/components/EclSiteHeaderComponent.html +27 -27
  46. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +96 -86
  47. package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
  48. package/docs/components/EclSiteHeaderSearchComponent.html +20 -10
  49. package/docs/components/EclSocialMediaFollowComponent.html +7 -2
  50. package/docs/components/EclSocialMediaFollowItemComponent.html +40 -25
  51. package/docs/components/EclSplashPageLanguageCategoryComponent.html +6 -1
  52. package/docs/components/EclSplashPageLanguageContainerComponent.html +6 -1
  53. package/docs/components/EclSplashPageLanguageLinkComponent.html +6 -1
  54. package/docs/components/EclTabComponent.html +50 -20
  55. package/docs/components/EclTabsComponent.html +1 -1
  56. package/docs/components/EclTagComponent.html +6 -1
  57. package/docs/components/EclTimelineComponent.html +4 -169
  58. package/docs/components/EclTimelineItemComponent.html +104 -1
  59. package/docs/directives/EclAccordionDirective.html +9 -99
  60. package/docs/directives/EclFileTitleDirective.html +5 -0
  61. package/docs/directives/EclFileUploadDirective.html +120 -0
  62. package/docs/directives/EclGalleryMediaDirective.html +5 -0
  63. package/docs/directives/EclMediaContainerIframeDirective.html +9 -11
  64. package/docs/directives/EclMediaContainerItemDirective.html +5 -0
  65. package/docs/directives/EclMultiselectOptionDirective.html +20 -10
  66. package/docs/directives/EclRadioDirective.html +18 -13
  67. package/docs/directives/EclSelectDirective.html +40 -0
  68. package/docs/directives/EclSiteFooterListDirective.html +5 -104
  69. package/docs/directives/EclSiteFooterSectionDirective.html +1 -1
  70. package/docs/directives/EclSiteFooterTitleDirective.html +29 -0
  71. package/docs/directives/EclTableHeaderDirective.html +5 -0
  72. package/docs/directives/EclTextMediaMediaAnchorDirective.html +1 -1
  73. package/docs/js/search/search_index.js +2 -2
  74. package/docs/json/EclAddToCalendarComponent.md +1 -1
  75. package/docs/json/EclBannerComponent.md +7 -7
  76. package/docs/json/EclCategoryFilterItemComponent.md +1 -1
  77. package/docs/json/EclDateBlockComponent.md +1 -1
  78. package/docs/json/EclExpandableComponent.md +2 -0
  79. package/docs/json/EclFeaturedComponent.md +3 -3
  80. package/docs/json/EclFileComponent.md +1 -1
  81. package/docs/json/EclFileItemsComponent.md +1 -0
  82. package/docs/json/EclGalleryComponent.md +4 -4
  83. package/docs/json/EclGalleryItemComponent.md +2 -2
  84. package/docs/json/EclIconComponent.md +4 -4
  85. package/docs/json/EclInpageNavigationItemComponent.md +1 -0
  86. package/docs/json/EclListIllustrationComponent.md +3 -3
  87. package/docs/json/EclMediaContainerComponent.md +1 -1
  88. package/docs/json/EclMediaContainerIframeDirective.md +2 -2
  89. package/docs/json/EclMegaMenuItemComponent.md +2 -2
  90. package/docs/json/EclMegaMenuSubitemComponent.md +3 -3
  91. package/docs/json/EclMenuItemComponent.md +1 -1
  92. package/docs/json/EclMenuMegaItemComponent.md +1 -1
  93. package/docs/json/EclMultiselectComponent.md +3 -3
  94. package/docs/json/EclMultiselectOptionDirective.md +1 -1
  95. package/docs/json/EclNavigationListItemComponent.md +1 -1
  96. package/docs/json/EclNotificationComponent.md +1 -0
  97. package/docs/json/EclPaginationItemComponent.md +3 -3
  98. package/docs/json/EclRadioDirective.md +1 -1
  99. package/docs/json/EclRatingFieldComponent.md +1 -0
  100. package/docs/json/EclSearchFormComponent.md +1 -0
  101. package/docs/json/EclSelectContainerComponent.md +6 -0
  102. package/docs/json/EclSiteFooterSectionDirective.md +1 -1
  103. package/docs/json/EclSiteHeaderComponent.md +2 -2
  104. package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
  105. package/docs/json/EclSiteHeaderSearchComponent.md +1 -1
  106. package/docs/json/EclSocialMediaFollowComponent.md +1 -1
  107. package/docs/json/EclSocialMediaFollowItemComponent.md +4 -4
  108. package/docs/json/EclTabComponent.md +2 -1
  109. package/docs/json/EclTagComponent.md +1 -1
  110. package/docs/json/EclTextMediaMediaAnchorDirective.md +1 -1
  111. package/docs/json/EclTimelineItemComponent.md +1 -0
  112. package/docs/json/documentation.json +4188 -2895
  113. package/docs/llms.txt +154 -138
  114. package/docs/miscellaneous/variables.html +2 -2
  115. package/docs/properties.html +1 -1
  116. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
  117. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  118. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
  119. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
  120. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
  121. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
  122. package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
  123. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  124. package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
  125. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  126. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
  127. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  128. package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
  129. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  130. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
  131. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  132. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
  133. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  134. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
  135. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  136. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
  137. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  138. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
  139. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  140. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
  141. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  142. package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
  143. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  144. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
  145. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  146. package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
  147. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  148. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
  149. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  150. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
  151. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  152. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
  153. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  154. package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
  155. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  156. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
  157. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  158. package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
  159. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  160. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
  161. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  162. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
  163. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  164. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
  165. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  166. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
  167. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  168. package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
  169. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  170. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
  171. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  172. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
  173. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  174. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
  175. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  176. package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
  177. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  178. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
  179. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  180. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
  181. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  182. package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
  183. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  184. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
  185. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  186. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
  187. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  188. package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
  189. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  190. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
  191. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  192. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
  193. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  194. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
  195. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  196. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
  197. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  198. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
  199. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  200. package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
  201. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  202. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
  203. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  204. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
  205. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  206. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
  207. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  208. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
  209. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  210. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
  211. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  212. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
  213. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  214. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  215. package/package.json +1 -1
  216. package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
  217. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  218. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
  219. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
  220. package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
  221. package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
  222. package/types/eui-ecl-components-ecl-app.d.ts +6 -6
  223. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  224. package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
  225. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  226. package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
  227. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  228. package/types/eui-ecl-components-ecl-card.d.ts +2 -3
  229. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  230. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
  231. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  232. package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
  233. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  234. package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
  235. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  236. package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
  237. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  238. package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
  239. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  240. package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
  241. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  242. package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
  243. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  244. package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
  245. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  246. package/types/eui-ecl-components-ecl-file.d.ts +7 -8
  247. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  248. package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
  249. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  250. package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
  251. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  252. package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
  253. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  254. package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
  255. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  256. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
  257. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  258. package/types/eui-ecl-components-ecl-label.d.ts +3 -3
  259. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  260. package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
  261. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  262. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
  263. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  264. package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
  265. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  266. package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
  267. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  268. package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
  269. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  270. package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
  271. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  272. package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
  273. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  274. package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
  275. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  276. package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
  277. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  278. package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
  279. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  280. package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
  281. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  282. package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
  283. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  284. package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
  285. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  286. package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
  287. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  288. package/types/eui-ecl-components-ecl-select.d.ts +13 -17
  289. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  290. package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
  291. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  292. package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
  293. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  294. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
  295. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  296. package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
  297. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  298. package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
  299. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  300. package/types/eui-ecl-components-ecl-table.d.ts +4 -5
  301. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  302. package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
  303. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  304. package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
  305. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  306. package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
  307. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  308. package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
  309. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  310. package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
  311. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  312. package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
  313. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, booleanAttribute, HostBinding, Input, Component, ElementRef, Injector, ViewContainerRef, Renderer2, PLATFORM_ID, runInInjectionContext, afterNextRender, Directive } from '@angular/core';
2
+ import { model, inject, HostBinding, Component, input, booleanAttribute, ElementRef, Injector, ViewContainerRef, Renderer2, PLATFORM_ID, runInInjectionContext, afterNextRender, Directive } from '@angular/core';
3
3
  import { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';
4
4
  import * as i1 from '@eui/ecl/components/ecl-icon';
5
5
  import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
@@ -19,11 +19,17 @@ class EclSelectContainerComponent extends ECLBaseDirective {
19
19
  * Size/length of the field and the dropdown, can be 's', 'm' or 'l'. Default is 'm'.
20
20
  * Same as the size of the main host element.
21
21
  */
22
- this.eclSize = 'm';
22
+ this.eclSize = model('m', /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "eclSize" }] : /* istanbul ignore next */ []));
24
+ this.disabled = model(undefined, /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
26
+ this.isInvalid = model(undefined, /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
23
28
  /**
24
29
  * Custom label for the arrow-down button. Set from the main host element.
25
30
  */
26
- this.toggleLabel = undefined;
31
+ this.toggleLabel = model(undefined, /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "toggleLabel" }] : /* istanbul ignore next */ []));
27
33
  this.ICON_SIZE_EC = 'xs';
28
34
  this.ICON_SIZE_EU = 's';
29
35
  this.eclThemeService = inject(EclThemeService);
@@ -32,11 +38,12 @@ class EclSelectContainerComponent extends ECLBaseDirective {
32
38
  * Adds specific classes for the container.
33
39
  */
34
40
  get cssClasses() {
41
+ const eclSize = this.eclSize();
35
42
  return [
36
43
  super.getCssClasses('ecl-select__container'),
37
- this.eclSize ? `ecl-select__container--${this.eclSize}` : '',
38
- this.disabled ? 'ecl-select__container--disabled' : '',
39
- this.isInvalid ? 'ecl-select__container--invalid' : '',
44
+ eclSize ? `ecl-select__container--${eclSize}` : '',
45
+ this.disabled() ? 'ecl-select__container--disabled' : '',
46
+ this.isInvalid() ? 'ecl-select__container--invalid' : '',
40
47
  ]
41
48
  .join(' ')
42
49
  .trim();
@@ -53,7 +60,7 @@ class EclSelectContainerComponent extends ECLBaseDirective {
53
60
  }
54
61
  }
55
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSelectContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: EclSelectContainerComponent, isStandalone: true, selector: "ecl-select-container", inputs: { eclSize: "eclSize", disabled: ["disabled", "disabled", booleanAttribute], isInvalid: ["isInvalid", "isInvalid", booleanAttribute], toggleLabel: "toggleLabel" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclSelectContainerComponent, isStandalone: true, selector: "ecl-select-container", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { eclSize: "eclSizeChange", disabled: "disabledChange", isInvalid: "isInvalidChange", toggleLabel: "toggleLabelChange" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
57
64
  }
58
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSelectContainerComponent, decorators: [{
59
66
  type: Component,
@@ -61,18 +68,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
61
68
  ...EUI_ECL_ICON,
62
69
  TranslatePipe,
63
70
  ...EUI_ECL_BUTTON,
64
- ], template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n" }]
65
- }], propDecorators: { eclSize: [{
66
- type: Input
67
- }], disabled: [{
68
- type: Input,
69
- args: [{ transform: booleanAttribute }]
70
- }], isInvalid: [{
71
- type: Input,
72
- args: [{ transform: booleanAttribute }]
73
- }], toggleLabel: [{
74
- type: Input
75
- }], cssClasses: [{
71
+ ], template: "<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n" }]
72
+ }], propDecorators: { eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }, { type: i0.Output, args: ["eclSizeChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }, { type: i0.Output, args: ["isInvalidChange"] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }, { type: i0.Output, args: ["toggleLabelChange"] }], cssClasses: [{
76
73
  type: HostBinding,
77
74
  args: ['class']
78
75
  }] } });
@@ -85,11 +82,15 @@ class EclSelectDirective extends ECLBaseDirective {
85
82
  constructor() {
86
83
  super(...arguments);
87
84
  /** Disables the select element. */
88
- this.disabled = false;
85
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
89
86
  /** Marks the select element as invalid. */
90
- this.isInvalid = false;
87
+ this.isInvalid = input(false, { ...(ngDevMode ? { debugName: "isInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
88
+ /** Accessible label for the toggle button. */
89
+ this.toggleLabel = input(undefined, /* @ts-ignore */
90
+ ...(ngDevMode ? [{ debugName: "toggleLabel" }] : /* istanbul ignore next */ []));
91
91
  /** Size of the select component. */
92
- this.eclSize = 'm';
92
+ this.eclSize = input('m', /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "eclSize" }] : /* istanbul ignore next */ []));
93
94
  this.ngControl = inject(NgControl, { optional: true, self: true });
94
95
  this.el = inject((ElementRef));
95
96
  this.injector = inject(Injector);
@@ -103,12 +104,12 @@ class EclSelectDirective extends ECLBaseDirective {
103
104
  return [super.getCssClasses('ecl-select')].join(' ').trim();
104
105
  }
105
106
  get isDisabled() {
106
- return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled || null);
107
+ return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled() || null);
107
108
  }
108
109
  get isInvalidState() {
109
110
  return this.ngControl
110
111
  ? (this.ngControl.status === 'INVALID' && this.ngControl.touched)
111
- : this.isInvalid;
112
+ : this.isInvalid();
112
113
  }
113
114
  /**
114
115
  * Initializes the directive.
@@ -173,10 +174,10 @@ class EclSelectDirective extends ECLBaseDirective {
173
174
  const c = this.containerRef?.instance;
174
175
  if (!c)
175
176
  return;
176
- c.eclSize = this.eclSize;
177
- c.disabled = this.isDisabled;
178
- c.toggleLabel = this.toggleLabel;
179
- c.isInvalid = this.isInvalidState;
177
+ c.eclSize.set(this.eclSize());
178
+ c.disabled.set(this.isDisabled);
179
+ c.toggleLabel.set(this.toggleLabel());
180
+ c.isInvalid.set(this.isInvalidState);
180
181
  }
181
182
  /**
182
183
  * Enhances <optgroup> and <option> elements with
@@ -205,25 +206,15 @@ class EclSelectDirective extends ECLBaseDirective {
205
206
  });
206
207
  }
207
208
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
208
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.0.5", type: EclSelectDirective, isStandalone: true, selector: "select[eclSelect]", inputs: { disabled: ["disabled", "disabled", booleanAttribute], isInvalid: ["isInvalid", "isInvalid", booleanAttribute], toggleLabel: "toggleLabel", eclSize: "eclSize" }, host: { properties: { "attr.disabled": "this.isDisabled", "class": "this.cssClasses", "class.ecl-select--invalid": "this.isInvalidState" } }, usesInheritance: true, ngImport: i0 }); }
209
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: EclSelectDirective, isStandalone: true, selector: "select[eclSelect]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, toggleLabel: { classPropertyName: "toggleLabel", publicName: "toggleLabel", isSignal: true, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.disabled": "this.isDisabled", "class": "this.cssClasses", "class.ecl-select--invalid": "this.isInvalidState" } }, usesInheritance: true, ngImport: i0 }); }
209
210
  }
210
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSelectDirective, decorators: [{
211
212
  type: Directive,
212
213
  args: [{ selector: 'select[eclSelect]' }]
213
214
  }], propDecorators: { disabled: [{
214
- type: Input,
215
- args: [{ transform: booleanAttribute }]
216
- }, {
217
215
  type: HostBinding,
218
216
  args: ['attr.disabled']
219
- }], isInvalid: [{
220
- type: Input,
221
- args: [{ transform: booleanAttribute }]
222
- }], toggleLabel: [{
223
- type: Input
224
- }], eclSize: [{
225
- type: Input
226
- }], cssClasses: [{
217
+ }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], toggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleLabel", required: false }] }], eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], cssClasses: [{
227
218
  type: HostBinding,
228
219
  args: ['class']
229
220
  }], isDisabled: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-select.mjs","sources":["../../components/ecl-select/ecl-select-container.component.ts","../../components/ecl-select/ecl-select-container.component.html","../../components/ecl-select/ecl-select.directive.ts","../../components/ecl-select/index.ts","../../components/ecl-select/eui-ecl-components-ecl-select.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Container component, which wraps the <select> component. Ataches custom select button with dropdown arrow.\n */\n@Component({\n selector: 'ecl-select-container',\n templateUrl: './ecl-select-container.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n})\nexport class EclSelectContainerComponent extends ECLBaseDirective {\n /**\n * Size/length of the field and the dropdown, can be 's', 'm' or 'l'. Default is 'm'.\n * Same as the size of the main host element.\n */\n @Input() eclSize = 'm';\n @Input({ transform: booleanAttribute }) disabled: boolean;\n @Input({ transform: booleanAttribute }) isInvalid: boolean;\n /**\n * Custom label for the arrow-down button. Set from the main host element.\n */\n @Input() toggleLabel: string | undefined = undefined;\n\n /**\n * Adds specific classes for the container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-select__container'),\n this.eclSize ? `ecl-select__container--${this.eclSize}` : '',\n this.disabled ? 'ecl-select__container--disabled' : '',\n this.isInvalid ? 'ecl-select__container--invalid' : '',\n ]\n .join(' ')\n .trim();\n }\n\n private ICON_SIZE_EC = 'xs';\n private ICON_SIZE_EU = 's'\n private eclThemeService = inject(EclThemeService);\n\n /**\n * Returns different icon sizes, depending if it's EU (s) or EC (xs) theme.\n */\n get iconSize(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC;\n } else {\n return this.ICON_SIZE_EU;\n }\n }\n}\n","<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewContainerRef,\n afterNextRender,\n booleanAttribute,\n inject,\n runInInjectionContext\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Directive that enhances a native <select> element with ECL styling\n * by wrapping it inside an {@link EclSelectContainerComponent}.\n */\n@Directive({ selector: 'select[eclSelect]' })\nexport class EclSelectDirective extends ECLBaseDirective\n implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n /** Disables the select element. */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.disabled') disabled = false;\n\n /** Marks the select element as invalid. */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /** Accessible label for the toggle button. */\n @Input() toggleLabel?: string;\n\n /** Size of the select component. */\n @Input() eclSize: 's' | 'm' | 'l' = 'm';\n\n private ngControl = inject(NgControl, { optional: true, self: true });\n private el = inject(ElementRef<HTMLElement>);\n private injector = inject(Injector);\n private vcr = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n private isBrowser = isPlatformBrowser(this.platformId);\n private containerRef!: ComponentRef<EclSelectContainerComponent>;\n private readonly OPTGROUP_TAG_NAME = 'OPTGROUP';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n @HostBinding('attr.disabled')\n get isDisabled(): boolean {\n return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled || null);\n }\n\n @HostBinding('class.ecl-select--invalid')\n get isInvalidState(): boolean {\n return this.ngControl\n ? (this.ngControl.status === 'INVALID' && this.ngControl.touched)\n : this.isInvalid;\n }\n\n /**\n * Initializes the directive.\n * - Creates the {@link EclSelectContainerComponent} wrapper.\n * - Synchronizes initial input values.\n * - Moves the <select> element inside the wrapper.\n */\n ngOnInit(): void {\n this.containerRef = this.vcr.createComponent(EclSelectContainerComponent);\n this.syncContainerInputs();\n\n const containerEl = this.containerRef.location.nativeElement as any;\n const selectEl = this.el.nativeElement as any;\n\n const moveIfNeeded = () => {\n if (selectEl.parentNode === containerEl) return;\n\n const firstChild = containerEl.firstChild ?? null;\n this.renderer.insertBefore(containerEl, selectEl, firstChild, true);\n };\n\n if (this.isBrowser) {\n if (selectEl.parentNode !== containerEl) {\n runInInjectionContext(this.injector, () => {\n afterNextRender(moveIfNeeded);\n });\n }\n } else {\n moveIfNeeded();\n }\n }\n\n /**\n * Processes any <optgroup> elements inside the <select> and\n * enhances them with appropriate accessibility attributes.\n */\n ngAfterContentInit(): void {\n const childrenElements: Element[] =\n Array.from(this.el.nativeElement.children);\n\n this.handleOptgroup(childrenElements);\n }\n\n /**\n * Keeps the wrapper component synchronized with the directive’s\n * current inputs and form control state.\n *\n * This is used to reflect runtime changes such as:\n * - Disabled state\n * - Validation status\n * - Size changes\n */\n ngDoCheck(): void {\n this.syncContainerInputs();\n }\n\n /**\n * Destroys the dynamically created wrapper component to prevent\n * memory leaks when the directive is removed.\n */\n ngOnDestroy(): void {\n this.containerRef?.destroy();\n }\n\n /**\n * Synchronizes directive inputs and control state\n * with the wrapper component instance.\n */\n private syncContainerInputs(): void {\n const c = this.containerRef?.instance;\n if (!c) return;\n\n c.eclSize = this.eclSize;\n c.disabled = this.isDisabled;\n c.toggleLabel = this.toggleLabel;\n c.isInvalid = this.isInvalidState;\n }\n\n /**\n * Enhances <optgroup> and <option> elements with\n * accessible aria-label attributes.\n *\n * - Applies the optgroup label to the group container.\n * - Combines option and group labels for child options.\n *\n * This improves screen reader support for grouped options.\n *\n * @param childrenElements List of direct children of the <select> element.\n */\n private handleOptgroup(childrenElements: Element[]): void {\n childrenElements\n .filter(el =>\n el.tagName === this.OPTGROUP_TAG_NAME &&\n el.getAttribute('label') !== null\n )\n .forEach(optGroup => {\n const optGroupLabel = optGroup.getAttribute('label');\n\n this.renderer.setAttribute(\n optGroup,\n 'aria-label',\n optGroupLabel\n );\n\n Array.from(optGroup.children).forEach(option => {\n const optionLabel =\n option.getAttribute('label') || option.textContent;\n\n if (optionLabel) {\n this.renderer.setAttribute(\n option,\n 'aria-label',\n `${optionLabel} - ${optGroupLabel}`\n );\n }\n });\n });\n }\n}\n","import { EclSelectDirective } from './ecl-select.directive';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\n\nexport * from './ecl-select.directive';\nexport * from './ecl-select-container.component';\n\nexport const EUI_ECL_SELECT = [\n EclSelectDirective,\n EclSelectContainerComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-select.mjs","sources":["../../components/ecl-select/ecl-select-container.component.ts","../../components/ecl-select/ecl-select-container.component.html","../../components/ecl-select/ecl-select.directive.ts","../../components/ecl-select/index.ts","../../components/ecl-select/eui-ecl-components-ecl-select.ts"],"sourcesContent":["import { Component, HostBinding, inject, model } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Container component, which wraps the <select> component. Ataches custom select button with dropdown arrow.\n */\n@Component({\n selector: 'ecl-select-container',\n templateUrl: './ecl-select-container.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n})\nexport class EclSelectContainerComponent extends ECLBaseDirective {\n /**\n * Size/length of the field and the dropdown, can be 's', 'm' or 'l'. Default is 'm'.\n * Same as the size of the main host element.\n */\n readonly eclSize = model('m');\n readonly disabled = model<boolean>(undefined);\n readonly isInvalid = model<boolean>(undefined);\n /**\n * Custom label for the arrow-down button. Set from the main host element.\n */\n readonly toggleLabel = model<string | undefined>(undefined);\n\n /**\n * Adds specific classes for the container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const eclSize = this.eclSize();\n return [\n super.getCssClasses('ecl-select__container'),\n eclSize ? `ecl-select__container--${eclSize}` : '',\n this.disabled() ? 'ecl-select__container--disabled' : '',\n this.isInvalid() ? 'ecl-select__container--invalid' : '',\n ]\n .join(' ')\n .trim();\n }\n\n private ICON_SIZE_EC = 'xs';\n private ICON_SIZE_EU = 's'\n private eclThemeService = inject(EclThemeService);\n\n /**\n * Returns different icon sizes, depending if it's EU (s) or EC (xs) theme.\n */\n get iconSize(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC;\n } else {\n return this.ICON_SIZE_EU;\n }\n }\n}\n","<div class=\"ecl-select__icon\">\n <button eclButton variant=\"tertiary\" tabindex=\"-1\" isIconOnly>\n <span eclButtonLabel>{{ toggleLabel() || 'ecl.multiselect.TOGGLE.DROPDOWN' | translate }}</span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"iconSize\" transform=\"rotate-180\"></ecl-icon>\n </button>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n Injector,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewContainerRef,\n afterNextRender,\n booleanAttribute,\n inject,\n runInInjectionContext,\n input,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\nimport { NgControl } from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Directive that enhances a native <select> element with ECL styling\n * by wrapping it inside an {@link EclSelectContainerComponent}.\n */\n@Directive({ selector: 'select[eclSelect]' })\nexport class EclSelectDirective extends ECLBaseDirective\n implements OnInit, DoCheck, AfterContentInit, OnDestroy {\n\n /** Disables the select element. */\n @HostBinding('attr.disabled')\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Marks the select element as invalid. */\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /** Accessible label for the toggle button. */\n readonly toggleLabel = input<string>(undefined);\n\n /** Size of the select component. */\n readonly eclSize = input<'s' | 'm' | 'l'>('m');\n\n private ngControl = inject(NgControl, { optional: true, self: true });\n private el = inject(ElementRef<HTMLElement>);\n private injector = inject(Injector);\n private vcr = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n private isBrowser = isPlatformBrowser(this.platformId);\n private containerRef!: ComponentRef<EclSelectContainerComponent>;\n private readonly OPTGROUP_TAG_NAME = 'OPTGROUP';\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-select')].join(' ').trim();\n }\n\n @HostBinding('attr.disabled')\n get isDisabled(): boolean {\n return this.ngControl ? (this.ngControl.disabled || null) : (this.disabled() || null);\n }\n\n @HostBinding('class.ecl-select--invalid')\n get isInvalidState(): boolean {\n return this.ngControl\n ? (this.ngControl.status === 'INVALID' && this.ngControl.touched)\n : this.isInvalid();\n }\n\n /**\n * Initializes the directive.\n * - Creates the {@link EclSelectContainerComponent} wrapper.\n * - Synchronizes initial input values.\n * - Moves the <select> element inside the wrapper.\n */\n ngOnInit(): void {\n this.containerRef = this.vcr.createComponent(EclSelectContainerComponent);\n this.syncContainerInputs();\n\n const containerEl = this.containerRef.location.nativeElement as any;\n const selectEl = this.el.nativeElement as any;\n\n const moveIfNeeded = () => {\n if (selectEl.parentNode === containerEl) return;\n\n const firstChild = containerEl.firstChild ?? null;\n this.renderer.insertBefore(containerEl, selectEl, firstChild, true);\n };\n\n if (this.isBrowser) {\n if (selectEl.parentNode !== containerEl) {\n runInInjectionContext(this.injector, () => {\n afterNextRender(moveIfNeeded);\n });\n }\n } else {\n moveIfNeeded();\n }\n }\n\n /**\n * Processes any <optgroup> elements inside the <select> and\n * enhances them with appropriate accessibility attributes.\n */\n ngAfterContentInit(): void {\n const childrenElements: Element[] =\n Array.from(this.el.nativeElement.children);\n\n this.handleOptgroup(childrenElements);\n }\n\n /**\n * Keeps the wrapper component synchronized with the directive’s\n * current inputs and form control state.\n *\n * This is used to reflect runtime changes such as:\n * - Disabled state\n * - Validation status\n * - Size changes\n */\n ngDoCheck(): void {\n this.syncContainerInputs();\n }\n\n /**\n * Destroys the dynamically created wrapper component to prevent\n * memory leaks when the directive is removed.\n */\n ngOnDestroy(): void {\n this.containerRef?.destroy();\n }\n\n /**\n * Synchronizes directive inputs and control state\n * with the wrapper component instance.\n */\n private syncContainerInputs(): void {\n const c = this.containerRef?.instance;\n if (!c) return;\n\n c.eclSize.set(this.eclSize());\n c.disabled.set(this.isDisabled);\n c.toggleLabel.set(this.toggleLabel());\n c.isInvalid.set(this.isInvalidState);\n }\n\n /**\n * Enhances <optgroup> and <option> elements with\n * accessible aria-label attributes.\n *\n * - Applies the optgroup label to the group container.\n * - Combines option and group labels for child options.\n *\n * This improves screen reader support for grouped options.\n *\n * @param childrenElements List of direct children of the <select> element.\n */\n private handleOptgroup(childrenElements: Element[]): void {\n childrenElements\n .filter(el =>\n el.tagName === this.OPTGROUP_TAG_NAME &&\n el.getAttribute('label') !== null\n )\n .forEach(optGroup => {\n const optGroupLabel = optGroup.getAttribute('label');\n\n this.renderer.setAttribute(\n optGroup,\n 'aria-label',\n optGroupLabel\n );\n\n Array.from(optGroup.children).forEach(option => {\n const optionLabel =\n option.getAttribute('label') || option.textContent;\n\n if (optionLabel) {\n this.renderer.setAttribute(\n option,\n 'aria-label',\n `${optionLabel} - ${optGroupLabel}`\n );\n }\n });\n });\n }\n}\n","import { EclSelectDirective } from './ecl-select.directive';\nimport { EclSelectContainerComponent } from './ecl-select-container.component';\n\nexport * from './ecl-select.directive';\nexport * from './ecl-select-container.component';\n\nexport const EUI_ECL_SELECT = [\n EclSelectDirective,\n EclSelectContainerComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}