@eui/ecl 23.0.0-alpha.3 → 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 (312) hide show
  1. package/docs/changelog.html +77 -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 +152 -136
  114. package/docs/properties.html +1 -1
  115. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
  116. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  117. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
  118. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
  119. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
  120. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
  121. package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
  122. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  123. package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
  124. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  125. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
  126. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  127. package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
  128. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  129. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
  130. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  131. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
  132. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  133. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
  134. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  135. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
  136. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  137. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
  138. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  139. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
  140. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  141. package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
  142. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  143. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
  144. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
  146. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
  148. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
  150. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  151. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
  152. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  153. package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
  154. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  155. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
  156. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  157. package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
  158. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  159. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
  160. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  161. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
  162. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  163. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
  164. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  165. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
  166. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  167. package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
  168. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  169. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
  170. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  171. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
  172. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  173. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
  174. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  175. package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
  176. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  177. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
  178. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  179. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
  180. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  181. package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
  182. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  183. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
  184. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  185. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
  186. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  187. package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
  188. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  189. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
  190. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  191. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
  192. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  193. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
  194. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  195. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
  196. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  197. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
  198. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  199. package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
  200. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
  202. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
  204. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
  206. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
  208. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
  210. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
  212. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  214. package/package.json +8 -3
  215. package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
  216. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  217. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
  218. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
  219. package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
  220. package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
  221. package/types/eui-ecl-components-ecl-app.d.ts +6 -6
  222. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  223. package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
  224. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  225. package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
  226. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  227. package/types/eui-ecl-components-ecl-card.d.ts +2 -3
  228. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  229. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
  230. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  231. package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
  232. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  233. package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
  234. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  235. package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
  236. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  237. package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
  238. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  239. package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
  240. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  241. package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
  242. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  243. package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
  244. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  245. package/types/eui-ecl-components-ecl-file.d.ts +7 -8
  246. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  247. package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
  248. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  249. package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
  250. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  251. package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
  252. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  253. package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
  254. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  255. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
  256. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  257. package/types/eui-ecl-components-ecl-label.d.ts +3 -3
  258. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  259. package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
  260. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  261. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
  262. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  263. package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
  264. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  265. package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
  266. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  267. package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
  268. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  269. package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
  270. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  271. package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
  272. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  273. package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
  274. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  275. package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
  276. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  277. package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
  278. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  279. package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
  280. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  281. package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
  282. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  283. package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
  284. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  285. package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
  286. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  287. package/types/eui-ecl-components-ecl-select.d.ts +13 -17
  288. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  289. package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
  290. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  291. package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
  292. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  293. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
  294. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  295. package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
  296. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  297. package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
  298. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  299. package/types/eui-ecl-components-ecl-table.d.ts +4 -5
  300. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  301. package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
  302. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  303. package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
  304. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  305. package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
  306. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  307. package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
  308. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  309. package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
  310. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  311. package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
  312. 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, ElementRef, Input, HostBinding, Directive, PLATFORM_ID, afterNextRender, ContentChild, input, signal, contentChild, DOCUMENT, computed, Renderer2, booleanAttribute, ViewChild, ViewChildren, Component } from '@angular/core';
2
+ import { input, inject, ElementRef, Input, HostBinding, Directive, PLATFORM_ID, afterNextRender, ContentChild, booleanAttribute, signal, contentChild, DOCUMENT, computed, Renderer2, ViewChild, ViewChildren, Component } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { isPlatformBrowser } from '@angular/common';
5
5
  import * as i1 from '@eui/ecl/components/ecl-button';
@@ -15,6 +15,10 @@ import { Subject, fromEvent, auditTime, takeUntil, timer, take } from 'rxjs';
15
15
  class EclMediaContainerIframeDirective extends ECLBaseDirective {
16
16
  constructor() {
17
17
  super(...arguments);
18
+ this.width = input(undefined, /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
20
+ this.height = input(undefined, /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
18
22
  this.hasCustomRatio = false;
19
23
  this.elem = inject(ElementRef);
20
24
  }
@@ -22,8 +26,8 @@ class EclMediaContainerIframeDirective extends ECLBaseDirective {
22
26
  return this.hasCustomRatio ? this.calculateCustomRatio() : null;
23
27
  }
24
28
  calculateCustomRatio() {
25
- let iframeHeight = this.height;
26
- let iframeWidth = this.width;
29
+ let iframeHeight = this.height();
30
+ let iframeWidth = this.width();
27
31
  if (!iframeWidth || !iframeHeight) {
28
32
  iframeWidth = this.elem.nativeElement.offsetWidth;
29
33
  iframeHeight = this.elem.nativeElement.offsetHeight;
@@ -31,18 +35,14 @@ class EclMediaContainerIframeDirective extends ECLBaseDirective {
31
35
  return `${iframeWidth}/${iframeHeight}`;
32
36
  }
33
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerIframeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: EclMediaContainerIframeDirective, isStandalone: true, selector: "iframe[eclMediaContainerIframe]", inputs: { width: "width", height: "height", ratio: "ratio" }, host: { properties: { "style.aspect-ratio": "this.ratio" } }, usesInheritance: true, ngImport: i0 }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: EclMediaContainerIframeDirective, isStandalone: true, selector: "iframe[eclMediaContainerIframe]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "style.aspect-ratio": "this.ratio" } }, usesInheritance: true, ngImport: i0 }); }
35
39
  }
36
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerIframeDirective, decorators: [{
37
41
  type: Directive,
38
42
  args: [{
39
43
  selector: 'iframe[eclMediaContainerIframe]',
40
44
  }]
41
- }], propDecorators: { width: [{
42
- type: Input
43
- }], height: [{
44
- type: Input
45
- }], ratio: [{
45
+ }], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], ratio: [{
46
46
  type: Input
47
47
  }, {
48
48
  type: HostBinding,
@@ -74,9 +74,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74
74
  */
75
75
  class EclMediaContainerItemDirective extends ECLBaseDirective {
76
76
  get cssClasses() {
77
+ const ratio = this.ratio();
77
78
  return [
78
79
  super.getCssClasses('ecl-media-container__media'),
79
- this.ratio ? `ecl-media-container__media--ratio-${this.ratio}` : '',
80
+ ratio ? `ecl-media-container__media--ratio-${ratio}` : '',
80
81
  this.isVideo ? 'ecl-video' : '',
81
82
  ]
82
83
  .join(' ')
@@ -85,6 +86,8 @@ class EclMediaContainerItemDirective extends ECLBaseDirective {
85
86
  constructor() {
86
87
  super();
87
88
  this.el = inject(ElementRef);
89
+ this.ratio = input(undefined, /* @ts-ignore */
90
+ ...(ngDevMode ? [{ debugName: "ratio" }] : /* istanbul ignore next */ []));
88
91
  this.isVideo = false;
89
92
  this.platformId = inject(PLATFORM_ID);
90
93
  afterNextRender(() => {
@@ -93,7 +96,7 @@ class EclMediaContainerItemDirective extends ECLBaseDirective {
93
96
  }
94
97
  ngAfterContentInit() {
95
98
  if (this.contentIframe) {
96
- this.contentIframe.hasCustomRatio = this.ratio ? false : true;
99
+ this.contentIframe.hasCustomRatio = this.ratio() ? false : true;
97
100
  }
98
101
  if (isPlatformBrowser(this.platformId)) {
99
102
  const selector = this.el.nativeElement.tagName;
@@ -111,16 +114,14 @@ class EclMediaContainerItemDirective extends ECLBaseDirective {
111
114
  }
112
115
  }
113
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
114
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: EclMediaContainerItemDirective, isStandalone: true, selector: "[eclMediaContainerItem], img[eclMediaContainerImage]", inputs: { ratio: "ratio" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "contentIframe", first: true, predicate: EclMediaContainerIframeDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
117
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: EclMediaContainerItemDirective, isStandalone: true, selector: "[eclMediaContainerItem], img[eclMediaContainerImage]", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "contentIframe", first: true, predicate: EclMediaContainerIframeDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
115
118
  }
116
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerItemDirective, decorators: [{
117
120
  type: Directive,
118
121
  args: [{
119
122
  selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',
120
123
  }]
121
- }], ctorParameters: () => [], propDecorators: { ratio: [{
122
- type: Input
123
- }], contentIframe: [{
124
+ }], ctorParameters: () => [], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], contentIframe: [{
124
125
  type: ContentChild,
125
126
  args: [EclMediaContainerIframeDirective, { static: false }]
126
127
  }], cssClasses: [{
@@ -194,11 +195,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
194
195
  class EclMediaContainerComponent extends ECLBaseDirective {
195
196
  constructor() {
196
197
  super(...arguments);
197
- this.isFullWidth = false;
198
+ this.isFullWidth = input(false, { ...(ngDevMode ? { debugName: "isFullWidth" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
198
199
  /**
199
200
  * Used for a video only - if the video should play immediately.
200
201
  */
201
- this.eclAutoplay = false;
202
+ this.eclAutoplay = input(false, { ...(ngDevMode ? { debugName: "eclAutoplay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
202
203
  this.captionPosition = input('bottom', /* @ts-ignore */
203
204
  ...(ngDevMode ? [{ debugName: "captionPosition" }] : /* istanbul ignore next */ []));
204
205
  /**
@@ -238,7 +239,7 @@ class EclMediaContainerComponent extends ECLBaseDirective {
238
239
  ngAfterContentInit() {
239
240
  if (isPlatformBrowser(this.platformId)) {
240
241
  this.hasVideo.set(this.eclMediaContainerItem?.isVideo ?? false);
241
- if (this.hasVideo() && this.eclAutoplay) {
242
+ if (this.hasVideo() && this.eclAutoplay()) {
242
243
  const videoEl = this.eclMediaContainerItem?.el?.nativeElement;
243
244
  if (videoEl) {
244
245
  this.removeVideoListeners.push(this.renderer.listen(videoEl, 'play', () => (this.isPlaying = true)), this.renderer.listen(videoEl, 'pause', () => (this.isPlaying = false)));
@@ -300,20 +301,14 @@ class EclMediaContainerComponent extends ECLBaseDirective {
300
301
  this.captionBottomOffset.set(`${this.creditEl().nativeElement.offsetHeight}px`);
301
302
  }
302
303
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclMediaContainerComponent, isStandalone: true, selector: "ecl-media-container", inputs: { isFullWidth: { classPropertyName: "isFullWidth", publicName: "isFullWidth", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, eclAutoplay: { classPropertyName: "eclAutoplay", publicName: "eclAutoplay", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, captionPosition: { classPropertyName: "captionPosition", publicName: "captionPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()" } }, queries: [{ propertyName: "creditEl", first: true, predicate: EclMediaContainerCreditDirective, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "expandable", first: true, predicate: EclExpandableComponent, descendants: true }, { propertyName: "eclMediaContainerItem", first: true, predicate: EclMediaContainerItemDirective, descendants: true }], viewQueries: [{ propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "eclButtons", predicate: EclButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclMediaContainerComponent, isStandalone: true, selector: "ecl-media-container", inputs: { isFullWidth: { classPropertyName: "isFullWidth", publicName: "isFullWidth", isSignal: true, isRequired: false, transformFunction: null }, eclAutoplay: { classPropertyName: "eclAutoplay", publicName: "eclAutoplay", isSignal: true, isRequired: false, transformFunction: null }, captionPosition: { classPropertyName: "captionPosition", publicName: "captionPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()" } }, queries: [{ propertyName: "creditEl", first: true, predicate: EclMediaContainerCreditDirective, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "expandable", first: true, predicate: EclExpandableComponent, descendants: true }, { propertyName: "eclMediaContainerItem", first: true, predicate: EclMediaContainerItemDirective, descendants: true }], viewQueries: [{ propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "eclButtons", predicate: EclButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth()\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay()) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
304
305
  }
305
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclMediaContainerComponent, decorators: [{
306
307
  type: Component,
307
308
  args: [{ selector: 'ecl-media-container', imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON], host: {
308
309
  '[class]': 'cssClasses()',
309
- }, template: "<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n", styles: [":host{display:block}\n"] }]
310
- }], propDecorators: { isFullWidth: [{
311
- type: Input,
312
- args: [{ transform: booleanAttribute }]
313
- }], eclAutoplay: [{
314
- type: Input,
315
- args: [{ transform: booleanAttribute }]
316
- }], captionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionPosition", required: false }] }], expandable: [{
310
+ }, template: "<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth()\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay()) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n", styles: [":host{display:block}\n"] }]
311
+ }], propDecorators: { isFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFullWidth", required: false }] }], eclAutoplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclAutoplay", required: false }] }], captionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "captionPosition", required: false }] }], expandable: [{
317
312
  type: ContentChild,
318
313
  args: [EclExpandableComponent]
319
314
  }], eclMediaContainerItem: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-media-container.mjs","sources":["../../components/ecl-media-container/ecl-media-container-iframe.directive.ts","../../components/ecl-media-container/ecl-media-container-item-audio-description.directive.ts","../../components/ecl-media-container/ecl-media-container-item.directive.ts","../../components/ecl-media-container/ecl-media-container-picture.directive.ts","../../components/ecl-media-container/ecl-media-container-caption.directive.ts","../../components/ecl-media-container/ecl-media-container-credit.directive.ts","../../components/ecl-media-container/ecl-media-container.component.ts","../../components/ecl-media-container/ecl-media-container.component.html","../../components/ecl-media-container/index.ts","../../components/ecl-media-container/eui-ecl-components-ecl-media-container.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the iframe element.\n */\n@Directive({\n selector: 'iframe[eclMediaContainerIframe]',\n})\nexport class EclMediaContainerIframeDirective extends ECLBaseDirective {\n @Input() width;\n @Input() height;\n @Input()\n @HostBinding('style.aspect-ratio')\n get ratio(): string {\n return this.hasCustomRatio ? this.calculateCustomRatio() : null;\n }\n\n hasCustomRatio = false;\n private elem = inject(ElementRef);\n\n calculateCustomRatio(): string {\n let iframeHeight = this.height;\n let iframeWidth = this.width;\n if (!iframeWidth || !iframeHeight) {\n iframeWidth = this.elem.nativeElement.offsetWidth;\n iframeHeight = this.elem.nativeElement.offsetHeight;\n }\n return `${iframeWidth}/${iframeHeight}`;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling to the media container description.\n */\n@Directive({\n\tselector: '[eclMediaContainerItemAudioDescription]',\n})\nexport class EclMediaContainerItemAudioDescriptionDirective extends ECLBaseDirective {\n\t@HostBinding('class')\n\tget cssClasses(): string {\n\t\treturn [super.getCssClasses('ecl-media-container__media-audio')].join(' ').trim();\n\t}\n}\n","import { AfterContentInit, ContentChild, Directive, ElementRef, HostBinding, Input, PLATFORM_ID, afterNextRender, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Adds styling and functionality to the media container item /image.\n */\n@Directive({\n selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',\n})\nexport class EclMediaContainerItemDirective extends ECLBaseDirective implements AfterContentInit {\n el = inject(ElementRef);\n\n @Input() ratio: string;\n @ContentChild(EclMediaContainerIframeDirective, { static: false }) contentIframe: EclMediaContainerIframeDirective;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-media-container__media'),\n this.ratio ? `ecl-media-container__media--ratio-${this.ratio}` : '',\n this.isVideo ? 'ecl-video' : '',\n ]\n .join(' ')\n .trim();\n }\n\n public isVideo = false;\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.setIframeUrl();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.contentIframe) {\n this.contentIframe.hasCustomRatio = this.ratio ? false : true;\n }\n if (isPlatformBrowser(this.platformId)) {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n }\n\n // TODO: is this really needed?\n setIframeUrl(): void {\n if (this.el.nativeElement.lastChild && this.el.nativeElement.lastChild.nodeName === 'IFRAME') {\n const iframe = this.el.nativeElement.lastChild;\n const iframeUrl = new URL(iframe.src);\n if (iframeUrl.host.includes('youtube')) {\n iframe.src = iframeUrl;\n }\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies styles for the picture element.\n */\n@Directive({\n selector: 'picture[eclMediaContainerPicture]',\n})\nexport class EclMediaContainerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-media-container__picture')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container caption element.\n */\n@Directive({\n selector: 'figcaption[eclMediaContainerCaption]',\n})\nexport class EclMediaContainerCaptionDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__caption')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container credit element.\n */\n@Directive({\n selector: 'footer[eclMediaContainerCredit]',\n})\nexport class EclMediaContainerCreditDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__credit')].join(' ').trim();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, Component, computed, ContentChild, contentChild, DOCUMENT, ElementRef, inject, Input, input, OnDestroy, PLATFORM_ID, QueryList, Renderer2, signal, ViewChild, ViewChildren } from '@angular/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclExpandableComponent } from '@eui/ecl/components/ecl-expandable';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { auditTime, fromEvent, Subject, take, takeUntil, timer } from 'rxjs';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\n\n/**\n * A media container is used to display media items (video, audio, image or other data) with a caption.\n */\n@Component({\n selector: 'ecl-media-container',\n templateUrl: './ecl-media-container.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\n\nexport class EclMediaContainerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n /**\n * Used for a video only - if the video should play immediately.\n */\n @Input({ transform: booleanAttribute }) eclAutoplay = false;\n\n captionPosition = input<'over' | 'bottom' | 'hidden'>('bottom');\n\n /**\n * Allows a parent component to override the caption position programmatically.\n */\n captionPositionOverride = signal<'over' | 'bottom' | 'hidden' | null>(null);\n\n @ContentChild(EclExpandableComponent) expandable: EclExpandableComponent;\n @ContentChild(EclMediaContainerItemDirective) eclMediaContainerItem: EclMediaContainerItemDirective;\n @ViewChildren(EclButtonComponent) eclButtons: QueryList<EclButtonComponent>;\n @ViewChild('pauseButton') pauseButton: EclButtonComponent;\n @ViewChild('playButton') playButton: EclButtonComponent;\n private creditEl = contentChild(EclMediaContainerCreditDirective, { read: ElementRef });\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView;\n\n captionBottomOffset = signal<string | null>(null);\n\n /**\n * Resolved caption position considering the override.\n */\n resolvedCaptionPosition = computed(() => this.captionPositionOverride() ?? this.captionPosition());\n\n /**\n * Applies specific classes for the component.\n */\n cssClasses = computed(() => {\n const position = this.resolvedCaptionPosition();\n return [super.getCssClasses('ecl-media-container'),\n position !== 'bottom' ? `ecl-media-container--caption-${position}` : ''\n ].join(' ').trim();\n });\n\n hasVideo = signal(false);\n\n public isPlaying = false;\n private readonly DELAY = 0;\n private renderer = inject(Renderer2);\n private removeVideoListeners: Array<() => void> = [];\n private platformId = inject(PLATFORM_ID);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hasVideo.set(this.eclMediaContainerItem?.isVideo ?? false);\n\n if (this.hasVideo() && this.eclAutoplay) {\n const videoEl = this.eclMediaContainerItem?.el?.nativeElement as HTMLVideoElement | undefined;\n if (videoEl) {\n this.removeVideoListeners.push(\n this.renderer.listen(videoEl, 'play', () => (this.isPlaying = true)),\n this.renderer.listen(videoEl, 'pause', () => (this.isPlaying = false)),\n );\n\n this.renderer.setAttribute(videoEl, 'loop', '');\n this.renderer.setAttribute(videoEl, 'muted', '');\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n this.setCaptionBottom();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setCaptionBottom();\n });\n }\n\n if (this.expandable) {\n this.expandable.class = [this.expandable.class, 'ecl-media-container__expandable'].join(' ');\n }\n }\n\n ngOnDestroy(): void {\n for (const unlisten of this.removeVideoListeners) unlisten();\n this.removeVideoListeners = [];\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When user clicks on 'play' button -> start the video and move the focus to the 'pause' button.\n */\n onVideoPlay(): void {\n const videoEl = this.eclMediaContainerItem.el.nativeElement;\n videoEl.play();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const pauseButton = this.eclButtons.find(\n button => button === this.pauseButton);\n this.focusOnButton(pauseButton);\n });\n }\n\n /**\n * When user clicks on 'pause' button -> pause the video and move the focus to the 'play' button.\n */\n onVideoPause(): void {\n const videoEl = this.eclMediaContainerItem.el.nativeElement;\n videoEl.pause();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const playButton = this.eclButtons.find(\n button => button === this.playButton);\n this.focusOnButton(playButton);\n });\n }\n\n private focusOnButton(button: EclButtonComponent): void {\n if (!button) {\n return;\n }\n button.onFocus();\n }\n\n private setCaptionBottom(): void {\n if (!this.creditEl() || this.resolvedCaptionPosition() !== 'over') {\n this.captionBottomOffset.set(null);\n return;\n }\n this.captionBottomOffset.set(`${this.creditEl().nativeElement.offsetHeight}px`);\n }\n}\n","<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n","import { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { EclMediaContainerItemAudioDescriptionDirective } from './ecl-media-container-item-audio-description.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\nimport { EclMediaContainerPictureDirective } from './ecl-media-container-picture.directive';\nimport { EclMediaContainerCaptionDirective } from './ecl-media-container-caption.directive';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerComponent } from './ecl-media-container.component';\n\nexport * from './ecl-media-container.component';\nexport * from './ecl-media-container-item.directive';\nexport * from './ecl-media-container-iframe.directive';\nexport * from './ecl-media-container-picture.directive';\nexport * from './ecl-media-container-item-audio-description.directive';\nexport * from './ecl-media-container-caption.directive';\nexport * from './ecl-media-container-credit.directive';\n\nexport const EUI_ECL_MEDIA_CONTAINER = [\n EclMediaContainerComponent,\n EclMediaContainerItemDirective,\n EclMediaContainerIframeDirective,\n EclMediaContainerPictureDirective,\n EclMediaContainerItemAudioDescriptionDirective,\n EclMediaContainerCaptionDirective,\n EclMediaContainerCreditDirective,\n] as const;","/**\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-media-container.mjs","sources":["../../components/ecl-media-container/ecl-media-container-iframe.directive.ts","../../components/ecl-media-container/ecl-media-container-item-audio-description.directive.ts","../../components/ecl-media-container/ecl-media-container-item.directive.ts","../../components/ecl-media-container/ecl-media-container-picture.directive.ts","../../components/ecl-media-container/ecl-media-container-caption.directive.ts","../../components/ecl-media-container/ecl-media-container-credit.directive.ts","../../components/ecl-media-container/ecl-media-container.component.ts","../../components/ecl-media-container/ecl-media-container.component.html","../../components/ecl-media-container/index.ts","../../components/ecl-media-container/eui-ecl-components-ecl-media-container.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the iframe element.\n */\n@Directive({\n selector: 'iframe[eclMediaContainerIframe]',\n})\nexport class EclMediaContainerIframeDirective extends ECLBaseDirective {\n readonly width = input(undefined);\n readonly height = input(undefined);\n @Input()\n @HostBinding('style.aspect-ratio')\n get ratio(): string {\n return this.hasCustomRatio ? this.calculateCustomRatio() : null;\n }\n\n hasCustomRatio = false;\n private elem = inject(ElementRef);\n\n calculateCustomRatio(): string {\n let iframeHeight = this.height();\n let iframeWidth = this.width();\n if (!iframeWidth || !iframeHeight) {\n iframeWidth = this.elem.nativeElement.offsetWidth;\n iframeHeight = this.elem.nativeElement.offsetHeight;\n }\n return `${iframeWidth}/${iframeHeight}`;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling to the media container description.\n */\n@Directive({\n\tselector: '[eclMediaContainerItemAudioDescription]',\n})\nexport class EclMediaContainerItemAudioDescriptionDirective extends ECLBaseDirective {\n\t@HostBinding('class')\n\tget cssClasses(): string {\n\t\treturn [super.getCssClasses('ecl-media-container__media-audio')].join(' ').trim();\n\t}\n}\n","import { AfterContentInit, ContentChild, Directive, ElementRef, HostBinding, PLATFORM_ID, afterNextRender, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Adds styling and functionality to the media container item /image.\n */\n@Directive({\n selector: '[eclMediaContainerItem], img[eclMediaContainerImage]',\n})\nexport class EclMediaContainerItemDirective extends ECLBaseDirective implements AfterContentInit {\n el = inject(ElementRef);\n\n readonly ratio = input<string>(undefined);\n @ContentChild(EclMediaContainerIframeDirective, { static: false }) contentIframe: EclMediaContainerIframeDirective;\n\n @HostBinding('class')\n get cssClasses(): string {\n const ratio = this.ratio();\n return [\n super.getCssClasses('ecl-media-container__media'),\n ratio ? `ecl-media-container__media--ratio-${ratio}` : '',\n this.isVideo ? 'ecl-video' : '',\n ]\n .join(' ')\n .trim();\n }\n\n public isVideo = false;\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.setIframeUrl();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.contentIframe) {\n this.contentIframe.hasCustomRatio = this.ratio() ? false : true;\n }\n if (isPlatformBrowser(this.platformId)) {\n const selector = this.el.nativeElement.tagName;\n this.isVideo = selector === 'VIDEO';\n }\n }\n\n // TODO: is this really needed?\n setIframeUrl(): void {\n if (this.el.nativeElement.lastChild && this.el.nativeElement.lastChild.nodeName === 'IFRAME') {\n const iframe = this.el.nativeElement.lastChild;\n const iframeUrl = new URL(iframe.src);\n if (iframeUrl.host.includes('youtube')) {\n iframe.src = iframeUrl;\n }\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies styles for the picture element.\n */\n@Directive({\n selector: 'picture[eclMediaContainerPicture]',\n})\nexport class EclMediaContainerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-media-container__picture')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container caption element.\n */\n@Directive({\n selector: 'figcaption[eclMediaContainerCaption]',\n})\nexport class EclMediaContainerCaptionDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__caption')].join(' ').trim();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds styling and attributes to the media container credit element.\n */\n@Directive({\n selector: 'footer[eclMediaContainerCredit]',\n})\nexport class EclMediaContainerCreditDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-media-container__credit')].join(' ').trim();\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, Component, computed, ContentChild, contentChild, DOCUMENT, ElementRef, inject, input, OnDestroy, PLATFORM_ID, QueryList, Renderer2, signal, ViewChild, ViewChildren } from '@angular/core';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EclExpandableComponent } from '@eui/ecl/components/ecl-expandable';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { auditTime, fromEvent, Subject, take, takeUntil, timer } from 'rxjs';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\n\n/**\n * A media container is used to display media items (video, audio, image or other data) with a caption.\n */\n@Component({\n selector: 'ecl-media-container',\n templateUrl: './ecl-media-container.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\n\nexport class EclMediaContainerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * Used for a video only - if the video should play immediately.\n */\n readonly eclAutoplay = input(false, { transform: booleanAttribute });\n\n captionPosition = input<'over' | 'bottom' | 'hidden'>('bottom');\n\n /**\n * Allows a parent component to override the caption position programmatically.\n */\n captionPositionOverride = signal<'over' | 'bottom' | 'hidden' | null>(null);\n\n @ContentChild(EclExpandableComponent) expandable: EclExpandableComponent;\n @ContentChild(EclMediaContainerItemDirective) eclMediaContainerItem: EclMediaContainerItemDirective;\n @ViewChildren(EclButtonComponent) eclButtons: QueryList<EclButtonComponent>;\n @ViewChild('pauseButton') pauseButton: EclButtonComponent;\n @ViewChild('playButton') playButton: EclButtonComponent;\n private creditEl = contentChild(EclMediaContainerCreditDirective, { read: ElementRef });\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView;\n\n captionBottomOffset = signal<string | null>(null);\n\n /**\n * Resolved caption position considering the override.\n */\n resolvedCaptionPosition = computed(() => this.captionPositionOverride() ?? this.captionPosition());\n\n /**\n * Applies specific classes for the component.\n */\n cssClasses = computed(() => {\n const position = this.resolvedCaptionPosition();\n return [super.getCssClasses('ecl-media-container'),\n position !== 'bottom' ? `ecl-media-container--caption-${position}` : ''\n ].join(' ').trim();\n });\n\n hasVideo = signal(false);\n\n public isPlaying = false;\n private readonly DELAY = 0;\n private renderer = inject(Renderer2);\n private removeVideoListeners: Array<() => void> = [];\n private platformId = inject(PLATFORM_ID);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.hasVideo.set(this.eclMediaContainerItem?.isVideo ?? false);\n\n if (this.hasVideo() && this.eclAutoplay()) {\n const videoEl = this.eclMediaContainerItem?.el?.nativeElement as HTMLVideoElement | undefined;\n if (videoEl) {\n this.removeVideoListeners.push(\n this.renderer.listen(videoEl, 'play', () => (this.isPlaying = true)),\n this.renderer.listen(videoEl, 'pause', () => (this.isPlaying = false)),\n );\n\n this.renderer.setAttribute(videoEl, 'loop', '');\n this.renderer.setAttribute(videoEl, 'muted', '');\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n this.setCaptionBottom();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setCaptionBottom();\n });\n }\n\n if (this.expandable) {\n this.expandable.class = [this.expandable.class, 'ecl-media-container__expandable'].join(' ');\n }\n }\n\n ngOnDestroy(): void {\n for (const unlisten of this.removeVideoListeners) unlisten();\n this.removeVideoListeners = [];\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When user clicks on 'play' button -> start the video and move the focus to the 'pause' button.\n */\n onVideoPlay(): void {\n const videoEl = this.eclMediaContainerItem.el.nativeElement;\n videoEl.play();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const pauseButton = this.eclButtons.find(\n button => button === this.pauseButton);\n this.focusOnButton(pauseButton);\n });\n }\n\n /**\n * When user clicks on 'pause' button -> pause the video and move the focus to the 'play' button.\n */\n onVideoPause(): void {\n const videoEl = this.eclMediaContainerItem.el.nativeElement;\n videoEl.pause();\n\n timer(this.DELAY).pipe(take(1)).subscribe(() => {\n const playButton = this.eclButtons.find(\n button => button === this.playButton);\n this.focusOnButton(playButton);\n });\n }\n\n private focusOnButton(button: EclButtonComponent): void {\n if (!button) {\n return;\n }\n button.onFocus();\n }\n\n private setCaptionBottom(): void {\n if (!this.creditEl() || this.resolvedCaptionPosition() !== 'over') {\n this.captionBottomOffset.set(null);\n return;\n }\n this.captionBottomOffset.set(`${this.creditEl().nativeElement.offsetHeight}px`);\n }\n}\n","<figure class=\"ecl-media-container__figure\" [class.ecl-media-container--full-width]=\"isFullWidth()\" [style.--ecl-caption-bottom]=\"captionBottomOffset()\">\n @if (hasVideo()) {\n <div class=\"ecl-media-container__video-wrapper\">\n <ng-content select=\"video[eclMediaContainerItem]\"></ng-content>\n @if (eclAutoplay()) {\n <button #playButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'flex'\" type=\"button\">\n <span eclButtonLabel>Play</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-media-container__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'flex' : 'none'\" type=\"button\">\n <span eclButtonLabel>Pause</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n }\n </div>\n }\n <ng-content select=\"div[eclMediaContainerItem]\"></ng-content>\n <ng-content select=\"picture[eclMediaContainerPicture]\"></ng-content>\n\n <ng-content select=\"figcaption[eclMediaContainerCaption]\"></ng-content>\n <ng-content select=\"footer[eclMediaContainerCredit]\"></ng-content>\n <ng-content select=\"ecl-expandable\"></ng-content>\n</figure>\n","import { EclMediaContainerIframeDirective } from './ecl-media-container-iframe.directive';\nimport { EclMediaContainerItemAudioDescriptionDirective } from './ecl-media-container-item-audio-description.directive';\nimport { EclMediaContainerItemDirective } from './ecl-media-container-item.directive';\nimport { EclMediaContainerPictureDirective } from './ecl-media-container-picture.directive';\nimport { EclMediaContainerCaptionDirective } from './ecl-media-container-caption.directive';\nimport { EclMediaContainerCreditDirective } from './ecl-media-container-credit.directive';\nimport { EclMediaContainerComponent } from './ecl-media-container.component';\n\nexport * from './ecl-media-container.component';\nexport * from './ecl-media-container-item.directive';\nexport * from './ecl-media-container-iframe.directive';\nexport * from './ecl-media-container-picture.directive';\nexport * from './ecl-media-container-item-audio-description.directive';\nexport * from './ecl-media-container-caption.directive';\nexport * from './ecl-media-container-credit.directive';\n\nexport const EUI_ECL_MEDIA_CONTAINER = [\n EclMediaContainerComponent,\n EclMediaContainerItemDirective,\n EclMediaContainerIframeDirective,\n EclMediaContainerPictureDirective,\n EclMediaContainerItemAudioDescriptionDirective,\n EclMediaContainerCaptionDirective,\n EclMediaContainerCreditDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}