@eui/ecl 21.2.6 → 21.2.7-snapshot-1780663563127

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 (209) hide show
  1. package/assets/i18n-ecl/bg.json +218 -211
  2. package/assets/i18n-ecl/cs.json +217 -210
  3. package/assets/i18n-ecl/da.json +218 -211
  4. package/assets/i18n-ecl/de.json +218 -211
  5. package/assets/i18n-ecl/el.json +218 -211
  6. package/assets/i18n-ecl/en.json +219 -212
  7. package/assets/i18n-ecl/es.json +218 -211
  8. package/assets/i18n-ecl/et.json +219 -212
  9. package/assets/i18n-ecl/fi.json +219 -212
  10. package/assets/i18n-ecl/fr.json +219 -212
  11. package/assets/i18n-ecl/ga.json +219 -212
  12. package/assets/i18n-ecl/hr.json +219 -212
  13. package/assets/i18n-ecl/hu.json +219 -212
  14. package/assets/i18n-ecl/it.json +219 -212
  15. package/assets/i18n-ecl/lt.json +219 -212
  16. package/assets/i18n-ecl/lv.json +219 -212
  17. package/assets/i18n-ecl/mt.json +219 -212
  18. package/assets/i18n-ecl/nl.json +219 -212
  19. package/assets/i18n-ecl/pl.json +219 -212
  20. package/assets/i18n-ecl/pt.json +219 -212
  21. package/assets/i18n-ecl/ro.json +219 -212
  22. package/assets/i18n-ecl/sk.json +219 -212
  23. package/assets/i18n-ecl/sl.json +219 -212
  24. package/assets/i18n-ecl/sv.json +219 -212
  25. package/components/ecl-add-to-calendar/package.json +4 -0
  26. package/components/ecl-quiz/package.json +4 -0
  27. package/docs/changelog.html +47 -0
  28. package/docs/components/EclAccordionComponent.html +2 -2
  29. package/docs/components/EclAccordionItemComponent.html +2 -2
  30. package/docs/components/EclAccordionSummaryComponent.html +2 -2
  31. package/docs/components/EclAddToCalendarComponent.html +711 -0
  32. package/docs/components/EclAppComponent.html +2 -2
  33. package/docs/components/EclBannerComponent.html +26 -2
  34. package/docs/components/EclBlockquoteComponent.html +2 -2
  35. package/docs/components/EclBreadcrumbComponent.html +2 -2
  36. package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
  37. package/docs/components/EclButtonComponent.html +2 -2
  38. package/docs/components/EclCardBodyComponent.html +2 -2
  39. package/docs/components/EclCardComponent.html +2 -2
  40. package/docs/components/EclCarouselComponent.html +2 -2
  41. package/docs/components/EclCarouselItemComponent.html +2 -2
  42. package/docs/components/EclCategoryFilterComponent.html +2 -2
  43. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  44. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  45. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  46. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  47. package/docs/components/EclContentBlockComponent.html +2 -2
  48. package/docs/components/EclContentItemComponent.html +2 -2
  49. package/docs/components/EclDateBlockComponent.html +2 -2
  50. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  51. package/docs/components/EclExpandableComponent.html +2 -2
  52. package/docs/components/EclFactFiguresComponent.html +2 -2
  53. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  54. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  55. package/docs/components/EclFeaturedComponent.html +2 -2
  56. package/docs/components/EclFeaturedItemComponent.html +19 -43
  57. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  58. package/docs/components/EclFileComponent.html +42 -17
  59. package/docs/components/EclFileItemComponent.html +29 -10
  60. package/docs/components/EclFileItemsComponent.html +2 -2
  61. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  62. package/docs/components/EclFormGroupComponent.html +2 -2
  63. package/docs/components/EclFormLabelComponent.html +2 -2
  64. package/docs/components/EclGalleryComponent.html +2 -2
  65. package/docs/components/EclGalleryFooterComponent.html +2 -2
  66. package/docs/components/EclGalleryItemComponent.html +2 -2
  67. package/docs/components/EclIconComponent.html +3 -3
  68. package/docs/components/EclIndicatorComponent-1.html +2 -2
  69. package/docs/components/EclIndicatorComponent.html +2 -2
  70. package/docs/components/EclInpageNavigationComponent.html +2 -2
  71. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  72. package/docs/components/EclListIllustrationComponent.html +2 -2
  73. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  74. package/docs/components/EclLoadingIndicatorComponent.html +2 -2
  75. package/docs/components/EclMediaContainerComponent.html +2 -2
  76. package/docs/components/EclMegaMenuComponent.html +2 -2
  77. package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
  78. package/docs/components/EclMegaMenuInfoComponent.html +2 -2
  79. package/docs/components/EclMegaMenuItemComponent.html +2 -2
  80. package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
  81. package/docs/components/EclMenuComponent.html +2 -2
  82. package/docs/components/EclMenuItemComponent.html +15 -15
  83. package/docs/components/EclMenuMegaComponent.html +2 -2
  84. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  85. package/docs/components/EclModalBodyComponent.html +2 -2
  86. package/docs/components/EclModalComponent.html +2 -2
  87. package/docs/components/EclModalFooterComponent.html +2 -2
  88. package/docs/components/EclModalHeaderComponent.html +2 -2
  89. package/docs/components/EclMultiselectComponent.html +148 -12
  90. package/docs/components/EclMultiselectDropdownComponent.html +172 -124
  91. package/docs/components/EclMultiselectInputComponent.html +215 -144
  92. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  93. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  94. package/docs/components/EclNavigationListComponent.html +2 -2
  95. package/docs/components/EclNavigationListItemComponent.html +2 -2
  96. package/docs/components/EclNewsTickerComponent.html +2 -2
  97. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  98. package/docs/components/EclNotificationComponent.html +2 -2
  99. package/docs/components/EclPageHeaderComponent.html +2 -2
  100. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +2 -2
  101. package/docs/components/EclPageHeaderExpandableComponent.html +2 -2
  102. package/docs/components/EclPageHeaderNextComponent.html +2 -2
  103. package/docs/components/EclPageHeaderSectionComponent.html +2 -2
  104. package/docs/components/EclPageHeaderSectionInfoComponent.html +2 -2
  105. package/docs/components/EclPaginationComponent.html +2 -2
  106. package/docs/components/EclPaginationItemComponent.html +2 -2
  107. package/docs/components/EclPopoverComponent.html +2 -2
  108. package/docs/components/EclQuizCardComponent.html +2119 -0
  109. package/docs/components/EclQuizComponent.html +1527 -0
  110. package/docs/components/EclRadioHelpComponent.html +2 -2
  111. package/docs/components/EclRadioLabelComponent.html +2 -2
  112. package/docs/components/EclRangeBubbleComponent.html +2 -2
  113. package/docs/components/EclRangeValueComponent.html +2 -2
  114. package/docs/components/EclRatingFieldComponent.html +2 -2
  115. package/docs/components/EclSearchFormComponent.html +2 -2
  116. package/docs/components/EclSelectContainerComponent.html +2 -2
  117. package/docs/components/EclSiteFooterComponent.html +2 -2
  118. package/docs/components/EclSiteFooterCoownerComponent.html +2 -2
  119. package/docs/components/EclSiteFooterCoreComponent.html +2 -2
  120. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  121. package/docs/components/EclSiteFooterRowCommonComponent.html +2 -2
  122. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  123. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  124. package/docs/components/EclSiteHeaderComponent.html +2 -2
  125. package/docs/components/EclSiteHeaderCustomActionComponent.html +2 -2
  126. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  127. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  128. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  129. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  130. package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
  131. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  132. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  133. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  134. package/docs/components/EclSplashPageComponent.html +2 -2
  135. package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
  136. package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
  137. package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
  138. package/docs/components/EclSpotlightComponent.html +2 -2
  139. package/docs/components/EclSpotlightLinkComponent.html +2 -2
  140. package/docs/components/EclStickyContainerComponent.html +2 -2
  141. package/docs/components/EclTabComponent.html +2 -2
  142. package/docs/components/EclTabLabelComponent.html +2 -2
  143. package/docs/components/EclTableSortButtonComponent.html +2 -2
  144. package/docs/components/EclTabsComponent.html +111 -131
  145. package/docs/components/EclTagComponent.html +2 -2
  146. package/docs/components/EclTimelineComponent.html +2 -2
  147. package/docs/components/EclTimelineItemComponent.html +2 -2
  148. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  149. package/docs/directives/EclAddToCalendarActionDirective.html +253 -0
  150. package/docs/interfaces/EclQuizCardFlipEvent.html +379 -0
  151. package/docs/js/menu-wc.js +15 -0
  152. package/docs/js/menu-wc_es5.js +1 -1
  153. package/docs/js/search/search_index.js +2 -2
  154. package/docs/json/EclAddToCalendarActionDirective.md +8 -0
  155. package/docs/json/EclAddToCalendarComponent.md +21 -0
  156. package/docs/json/EclBannerComponent.md +1 -0
  157. package/docs/json/EclFeaturedItemComponent.md +2 -1
  158. package/docs/json/EclFileComponent.md +2 -1
  159. package/docs/json/EclFileItemComponent.md +2 -1
  160. package/docs/json/EclIconComponent.md +1 -1
  161. package/docs/json/EclMultiselectComponent.md +2 -1
  162. package/docs/json/EclMultiselectInputComponent.md +7 -7
  163. package/docs/json/EclQuizCardComponent.md +30 -0
  164. package/docs/json/EclQuizComponent.md +22 -0
  165. package/docs/json/documentation.json +2658 -714
  166. package/docs/miscellaneous/variables.html +70 -0
  167. package/docs/overview.html +3 -3
  168. package/docs/properties.html +1 -1
  169. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +73 -0
  170. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -0
  171. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -3
  172. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  173. package/fesm2022/eui-ecl-components-ecl-banner.mjs +4 -2
  174. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  175. package/fesm2022/eui-ecl-components-ecl-featured.mjs +9 -13
  176. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  177. package/fesm2022/eui-ecl-components-ecl-file.mjs +63 -36
  178. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  179. package/fesm2022/eui-ecl-components-ecl-icon.mjs +4 -1
  180. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  181. package/fesm2022/eui-ecl-components-ecl-menu.mjs +5 -5
  182. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  183. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +146 -133
  184. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  185. package/fesm2022/eui-ecl-components-ecl-quiz.mjs +496 -0
  186. package/fesm2022/eui-ecl-components-ecl-quiz.mjs.map +1 -0
  187. package/fesm2022/eui-ecl-components-ecl-range.mjs +1 -0
  188. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  189. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +72 -51
  190. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  191. package/package.json +10 -2
  192. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +42 -0
  193. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -0
  194. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  195. package/types/eui-ecl-components-ecl-banner.d.ts +2 -1
  196. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  197. package/types/eui-ecl-components-ecl-featured.d.ts +23 -21
  198. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  199. package/types/eui-ecl-components-ecl-file.d.ts +22 -15
  200. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  201. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  202. package/types/eui-ecl-components-ecl-menu.d.ts +1 -1
  203. package/types/eui-ecl-components-ecl-multiselect.d.ts +65 -48
  204. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  205. package/types/eui-ecl-components-ecl-quiz.d.ts +203 -0
  206. package/types/eui-ecl-components-ecl-quiz.d.ts.map +1 -0
  207. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  208. package/types/eui-ecl-components-ecl-tabs.d.ts +6 -17
  209. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-featured.mjs","sources":["../../components/ecl-featured/ecl-featured.component.ts","../../components/ecl-featured/ecl-featured.component.html","../../components/ecl-featured/ecl-featured-item-link.directive.ts","../../components/ecl-featured/ecl-featured-item.component.ts","../../components/ecl-featured/ecl-featured-item.component.html","../../components/ecl-featured/ecl-featured-item-description.component.ts","../../components/ecl-featured/ecl-featured-item-description.component.html","../../components/ecl-featured/index.ts","../../components/ecl-featured/eui-ecl-components-ecl-featured.ts"],"sourcesContent":["import { booleanAttribute, Component, HostBinding, input, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Custom ECL component, that adds visual support to a piece of content. Uses <ecl-media-container>.\n */\n@Component({\n selector: 'ecl-featured, article[eclFeatured]',\n templateUrl: './ecl-featured.component.html',\n})\nexport class EclFeaturedComponent extends ECLBaseDirective {\n /**\n * The position of the image in the component. Can be 'left' or 'right'. The default value is 'left'.\n */\n @Input() position: 'left' | 'right' = 'left';\n \n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n @Input() variant: 'highlight';\n\n isDynamicImage = input(false, { transform: booleanAttribute });\n\n horizontalAlign = input<'left' | 'center' | undefined>();\n\n verticalAlign = input<'top' | 'center' | undefined>();\n\n /** Gives a different display for the link in highlighted mode */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-featured-item--link-highlighted') isLinkHighlighted = false;\n\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Adds specific classes to the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-featured-item'),\n this.variant ? `ecl-featured-item--${this.variant}`: '',\n this.horizontalAlign() === 'center' ? 'ecl-featured-item--hcenter' : '',\n this.verticalAlign() === 'center' ? 'ecl-featured-item--vcenter' : '',\n this.isDynamicImage() ? 'ecl-featured-item--dynamic' : ''\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-featured-item__container\" [class.ecl-featured-item__container--right]=\"position === 'right'\">\n <ng-content></ng-content>\n</div>","import { Directive, ElementRef, Input, Renderer2, HostBinding, inject, input, computed } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class for the eclLink directive, used in <ecl-featured-item> construction.\n */\n@Directive({\n selector: '[eclFeaturedItemLink]',\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__link') className = true;\n\n @Input()\n set ariaDescribedBy(value: string | null) {\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-describedby', value);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-describedby');\n }\n }\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n}\n\n@Directive({\n selector: '[eclFeaturedMediaAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'cssAnchor()',\n },\n})\nexport class EclFeaturedMediaAnchorDirective extends ECLBaseDirective {\n eclFeaturedMediaAnchor = input<'left' | 'right' | '20%' | 'center' | undefined>();\n\n readonly cssAnchor = computed(() => {\n const value = this.eclFeaturedMediaAnchor();\n\n if (!value || value === 'center') {\n return null;\n }\n\n return value;\n });\n}\n","import { AfterContentInit, Component, ContentChild, ContentChildren, HostBinding, Input, QueryList, Renderer2, ElementRef, contentChild, computed } from '@angular/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { uniqueId } from '@eui/core';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Container for the text part - title and description of the <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item, div[eclFeaturedItem]',\n imports: [NgTemplateOutlet],\n templateUrl: './ecl-featured-item.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemComponent extends ECLBaseDirective implements AfterContentInit {\n @Input() eclTitle = '';\n @Input() id: string = `ecl-featured-item-${uniqueId()}`;\n mediaContainer = contentChild(EclMediaContainerComponent);\n @ContentChildren(EclFeaturedItemLinkDirective, { descendants: true })\n links?: QueryList<EclFeaturedItemLinkDirective>;\n\n @HostBinding('class.ecl-featured-item__item') className = true;\n\n protected readonly hasMedia = computed(() => { return !!this.mediaContainer() });\n\n get hasTitle(): boolean {\n return this.eclTitle !== '';\n }\n\n ngAfterContentInit(): void {\n if (this.mediaContainer()) {\n this.mediaContainer().class = 'ecl-featured-item__media_container';\n }\n\n const describedBy = this.hasTitle ? `${this.id}-title` : null;\n if (describedBy && this.links) {\n this.links.forEach(link => {\n link.ariaDescribedBy = describedBy;\n });\n }\n }\n}\n","@if (!hasMedia()) {\n<div class=\"ecl-featured-item__content\">\n <div class=\"ecl-featured-item__info\">\n @if(hasTitle) {\n <div class=\"ecl-featured-item__title\" [attr.id]=\"id + '-title'\">\n {{ eclTitle }}\n </div>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content select=\"[eclLink]\"></ng-content>\n</div>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class to style <ecl-featured-item-description> component, as a part of the\n * <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item-description',\n templateUrl: './ecl-featured-item-description.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__description') className = true;\n}\n","<ng-content></ng-content>\n","import { EclFeaturedComponent } from './ecl-featured.component';\nimport { EclFeaturedItemComponent } from './ecl-featured-item.component';\nimport { EclFeaturedItemDescriptionComponent } from './ecl-featured-item-description.component';\nimport { EclFeaturedItemLinkDirective, EclFeaturedMediaAnchorDirective } from './ecl-featured-item-link.directive';\n\nexport * from './ecl-featured.component';\nexport * from './ecl-featured-item.component';\nexport * from './ecl-featured-item-description.component';\nexport * from './ecl-featured-item-link.directive';\n\nexport const EUI_ECL_FEATURED = [\n EclFeaturedComponent,\n EclFeaturedItemComponent,\n EclFeaturedItemLinkDirective,\n EclFeaturedItemDescriptionComponent,\n EclFeaturedMediaAnchorDirective,\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-featured.mjs","sources":["../../components/ecl-featured/ecl-featured.component.ts","../../components/ecl-featured/ecl-featured.component.html","../../components/ecl-featured/ecl-featured-item-link.directive.ts","../../components/ecl-featured/ecl-featured-item.component.ts","../../components/ecl-featured/ecl-featured-item.component.html","../../components/ecl-featured/ecl-featured-item-description.component.ts","../../components/ecl-featured/ecl-featured-item-description.component.html","../../components/ecl-featured/index.ts","../../components/ecl-featured/eui-ecl-components-ecl-featured.ts"],"sourcesContent":["import { booleanAttribute, Component, HostBinding, input, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Custom ECL component, that adds visual support to a piece of content. Uses <ecl-media-container>.\n */\n@Component({\n selector: 'ecl-featured, article[eclFeatured]',\n templateUrl: './ecl-featured.component.html',\n})\nexport class EclFeaturedComponent extends ECLBaseDirective {\n /**\n * The position of the image in the component. Can be 'left' or 'right'. The default value is 'left'.\n */\n @Input() position: 'left' | 'right' = 'left';\n \n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n @Input() variant: 'highlight';\n\n isDynamicImage = input(false, { transform: booleanAttribute });\n\n horizontalAlign = input<'left' | 'center' | undefined>();\n\n verticalAlign = input<'top' | 'center' | undefined>();\n\n /** Gives a different display for the link in highlighted mode */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-featured-item--link-highlighted') isLinkHighlighted = false;\n\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Adds specific classes to the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-featured-item'),\n this.variant ? `ecl-featured-item--${this.variant}`: '',\n this.horizontalAlign() === 'center' ? 'ecl-featured-item--hcenter' : '',\n this.verticalAlign() === 'center' ? 'ecl-featured-item--vcenter' : '',\n this.isDynamicImage() ? 'ecl-featured-item--dynamic' : ''\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-featured-item__container\" [class.ecl-featured-item__container--right]=\"position === 'right'\">\n <ng-content></ng-content>\n</div>","import { Directive, ElementRef, Input, Renderer2, HostBinding, inject, input, computed } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class for the eclLink directive, used in <ecl-featured-item> construction.\n */\n@Directive({\n selector: '[eclFeaturedItemLink]',\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__link') className = true;\n\n @Input()\n set ariaDescribedBy(value: string | null) {\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-describedby', value);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-describedby');\n }\n }\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n}\n\n@Directive({\n selector: '[eclFeaturedMediaAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'cssAnchor()',\n },\n})\nexport class EclFeaturedMediaAnchorDirective extends ECLBaseDirective {\n eclFeaturedMediaAnchor = input<'left' | 'right' | '20%' | 'center' | undefined>();\n\n readonly cssAnchor = computed(() => {\n const value = this.eclFeaturedMediaAnchor();\n\n if (!value || value === 'center') {\n return null;\n }\n\n return value;\n });\n}\n","import { AfterContentInit, Component, ContentChildren, HostBinding, QueryList, contentChild, computed, input } from '@angular/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { uniqueId } from '@eui/core';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Container for the text part - title and description of the <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item, div[eclFeaturedItem]',\n imports: [NgTemplateOutlet],\n templateUrl: './ecl-featured-item.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemComponent extends ECLBaseDirective implements AfterContentInit {\n eclTitle = input('');\n eclMicroTitle = input('');\n id = input<string>(`ecl-featured-item-${uniqueId()}`);\n mediaContainer = contentChild(EclMediaContainerComponent);\n @ContentChildren(EclFeaturedItemLinkDirective, { descendants: true })\n links?: QueryList<EclFeaturedItemLinkDirective>;\n\n @HostBinding('class.ecl-featured-item__item') className = true;\n\n protected readonly hasMedia = computed(() => { return !!this.mediaContainer() });\n protected readonly hasTitle = computed(() => this.eclTitle() !== '');\n protected readonly hasMicroTitle = computed(() => this.eclMicroTitle() !== '');\n\n ngAfterContentInit(): void {\n if (this.mediaContainer()) {\n this.mediaContainer().class = 'ecl-featured-item__media_container';\n }\n\n const describedBy = this.hasTitle() ? `${this.id()}-title` : null;\n if (describedBy && this.links) {\n this.links.forEach(link => {\n link.ariaDescribedBy = describedBy;\n });\n }\n }\n}\n","@if (!hasMedia()) {\n<div class=\"ecl-featured-item__content\">\n <div class=\"ecl-featured-item__info\">\n @if(hasMicroTitle()) {\n <div class=\"ecl-featured-item__micro-title\">{{ eclMicroTitle() }}</div>\n }\n @if(hasTitle()) {\n <div class=\"ecl-featured-item__title\" [attr.id]=\"id() + '-title'\">\n {{ eclTitle() }}\n </div>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content select=\"[eclLink]\"></ng-content>\n</div>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class to style <ecl-featured-item-description> component, as a part of the\n * <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item-description',\n templateUrl: './ecl-featured-item-description.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__description') className = true;\n}\n","<ng-content></ng-content>\n","import { EclFeaturedComponent } from './ecl-featured.component';\nimport { EclFeaturedItemComponent } from './ecl-featured-item.component';\nimport { EclFeaturedItemDescriptionComponent } from './ecl-featured-item-description.component';\nimport { EclFeaturedItemLinkDirective, EclFeaturedMediaAnchorDirective } from './ecl-featured-item-link.directive';\n\nexport * from './ecl-featured.component';\nexport * from './ecl-featured-item.component';\nexport * from './ecl-featured-item-description.component';\nexport * from './ecl-featured-item-link.directive';\n\nexport const EUI_ECL_FEATURED = [\n EclFeaturedComponent,\n EclFeaturedItemComponent,\n EclFeaturedItemLinkDirective,\n EclFeaturedItemDescriptionComponent,\n EclFeaturedMediaAnchorDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, Input, inject, ContentChild, Component, booleanAttribute, EventEmitter, ContentChildren, Output } from '@angular/core';
2
+ import { HostBinding, Directive, Input, inject, input, ContentChild, Component, booleanAttribute, EventEmitter, ContentChildren, Output } from '@angular/core';
3
3
  import { ECLBaseDirective, EclThemeService, EclBaseEvent } 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';
@@ -173,6 +173,34 @@ class EclFileComponent extends ECLBaseDirective {
173
173
  constructor() {
174
174
  super(...arguments);
175
175
  this.eclThemeService = inject(EclThemeService);
176
+ /**
177
+ * Optional description displayed under the file title.
178
+ */
179
+ this.description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : /* istanbul ignore next */ []));
180
+ /**
181
+ * Optional language ID (e.g., for translation or accessibility attributes).
182
+ */
183
+ this.langId = input(...(ngDevMode ? [undefined, { debugName: "langId" }] : /* istanbul ignore next */ []));
184
+ /**
185
+ * Additional label shown next to the language label, e.g. file type or status.
186
+ */
187
+ this.labelInfo = input(...(ngDevMode ? [undefined, { debugName: "labelInfo" }] : /* istanbul ignore next */ []));
188
+ /**
189
+ * Language indicator string (e.g. "EN", "FR") used in the label.
190
+ */
191
+ this.language = input(...(ngDevMode ? [undefined, { debugName: "language" }] : /* istanbul ignore next */ []));
192
+ /**
193
+ * Additional details displayed in the file component (e.g. file size, date).
194
+ */
195
+ this.detailMeta = input(...(ngDevMode ? [undefined, { debugName: "detailMeta" }] : /* istanbul ignore next */ []));
196
+ /**
197
+ * Main metadata displayed for the file (e.g. format, license).
198
+ */
199
+ this.meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
200
+ /**
201
+ * ID applied to the meta element for accessibility.
202
+ */
203
+ this.metaId = input(...(ngDevMode ? [undefined, { debugName: "metaId" }] : /* istanbul ignore next */ []));
176
204
  }
177
205
  /**
178
206
  * Host element CSS classes based on theme and content.
@@ -188,32 +216,20 @@ class EclFileComponent extends ECLBaseDirective {
188
216
  return !!this.eclPictureContent;
189
217
  }
190
218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclFileComponent, isStandalone: true, selector: "ecl-file", inputs: { description: "description", id: "id", langId: "langId", labelInfo: "labelInfo", language: "language", detailMeta: "detailMeta", meta: "meta" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclPictureContent", first: true, predicate: EclFilePictureDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo }}</span>\n </div>\n }\n @if(detailMeta) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta; track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description) {\n <div class=\"ecl-file__description\">{{ description }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId\">{{ language }}</div>\n <div class=\"ecl-file__meta\">{{ meta }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i2.EclLabelDirective, selector: "[eclLabel]", inputs: ["variant"] }] }); }
219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclFileComponent, isStandalone: true, selector: "ecl-file", inputs: { description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, langId: { classPropertyName: "langId", publicName: "langId", isSignal: true, isRequired: false, transformFunction: null }, labelInfo: { classPropertyName: "labelInfo", publicName: "labelInfo", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, detailMeta: { classPropertyName: "detailMeta", publicName: "detailMeta", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, metaId: { classPropertyName: "metaId", publicName: "metaId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclPictureContent", first: true, predicate: EclFilePictureDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo()) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo() }}</span>\n </div>\n }\n @if(detailMeta()) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta(); track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description()) {\n <div class=\"ecl-file__description\">{{ description() }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId()\">{{ language() }}</div>\n <div class=\"ecl-file__meta\" [id]=\"metaId()\">{{ meta() }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i2.EclLabelDirective, selector: "[eclLabel]", inputs: ["variant"] }] }); }
192
220
  }
193
221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclFileComponent, decorators: [{
194
222
  type: Component,
195
223
  args: [{ selector: 'ecl-file', imports: [
196
224
  ...EUI_ECL_ICON,
197
225
  ...EUI_ECL_LABEL,
198
- ], template: "<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo }}</span>\n </div>\n }\n @if(detailMeta) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta; track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description) {\n <div class=\"ecl-file__description\">{{ description }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId\">{{ language }}</div>\n <div class=\"ecl-file__meta\">{{ meta }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
226
+ ], template: "<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo()) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo() }}</span>\n </div>\n }\n @if(detailMeta()) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta(); track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description()) {\n <div class=\"ecl-file__description\">{{ description() }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId()\">{{ language() }}</div>\n <div class=\"ecl-file__meta\" [id]=\"metaId()\">{{ meta() }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
199
227
  }], propDecorators: { cssClasses: [{
200
228
  type: HostBinding,
201
229
  args: ['class']
202
- }], description: [{
203
- type: Input
204
- }], id: [{
205
- type: Input
206
- }], langId: [{
207
- type: Input
208
- }], labelInfo: [{
209
- type: Input
210
- }], language: [{
211
- type: Input
212
- }], detailMeta: [{
213
- type: Input
214
- }], meta: [{
230
+ }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], id: [{
215
231
  type: Input
216
- }], eclPictureContent: [{
232
+ }], langId: [{ type: i0.Input, args: [{ isSignal: true, alias: "langId", required: false }] }], labelInfo: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelInfo", required: false }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], detailMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "detailMeta", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], metaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaId", required: false }] }], eclPictureContent: [{
217
233
  type: ContentChild,
218
234
  args: [EclFilePictureDirective]
219
235
  }] } });
@@ -229,7 +245,31 @@ class EclFileItemComponent extends ECLBaseDirective {
229
245
  * Indicates whether the item is a description block rather than a translation.
230
246
  * Adds the `ecl-file__translation-description` class when true.
231
247
  */
232
- this.isDescription = false;
248
+ this.isDescription = input(false, { ...(ngDevMode ? { debugName: "isDescription" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
249
+ /**
250
+ * Title text of the file item.
251
+ */
252
+ this.eclTitle = input(...(ngDevMode ? [undefined, { debugName: "eclTitle" }] : /* istanbul ignore next */ []));
253
+ /**
254
+ * ID applied to the title element for accessibility.
255
+ */
256
+ this.titleId = input(...(ngDevMode ? [undefined, { debugName: "titleId" }] : /* istanbul ignore next */ []));
257
+ /**
258
+ * ID applied to the meta element for accessibility.
259
+ */
260
+ this.metaId = input(...(ngDevMode ? [undefined, { debugName: "metaId" }] : /* istanbul ignore next */ []));
261
+ /**
262
+ * Additional metadata for the item (e.g., file size, type).
263
+ */
264
+ this.meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
265
+ /**
266
+ * Language label displayed next to the title (e.g., "FR", "EN").
267
+ */
268
+ this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
269
+ /**
270
+ * Supplementary language detail displayed below the language label.
271
+ */
272
+ this.langDetail = input(...(ngDevMode ? [undefined, { debugName: "langDetail" }] : /* istanbul ignore next */ []));
233
273
  /**
234
274
  * ARIA role attribute set to 'listitem' for accessibility.
235
275
  */
@@ -242,7 +282,7 @@ class EclFileItemComponent extends ECLBaseDirective {
242
282
  get cssClasses() {
243
283
  return [
244
284
  super.getCssClasses('ecl-file__translation-item'),
245
- this.isDescription ? 'ecl-file__translation-description' : '',
285
+ this.isDescription() ? 'ecl-file__translation-description' : '',
246
286
  ].join(' ').trim();
247
287
  }
248
288
  /**
@@ -252,25 +292,12 @@ class EclFileItemComponent extends ECLBaseDirective {
252
292
  return this.eclFileComponent && this.eclFileComponent.isThumbnail;
253
293
  }
254
294
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclFileItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
255
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclFileItemComponent, isStandalone: true, selector: "ecl-file-item", inputs: { isDescription: ["isDescription", "isDescription", booleanAttribute], eclTitle: "eclTitle", titleId: "titleId", meta: "meta", label: "label", langDetail: "langDetail" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "@if (isDescription) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId\" [attr.lang]=\"langDetail\">{{ eclTitle }}</div>\n <div class=\"ecl-file__translation-meta\">{{ meta }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n" }); }
295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclFileItemComponent, isStandalone: true, selector: "ecl-file-item", inputs: { isDescription: { classPropertyName: "isDescription", publicName: "isDescription", isSignal: true, isRequired: false, transformFunction: null }, eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null }, metaId: { classPropertyName: "metaId", publicName: "metaId", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, langDetail: { classPropertyName: "langDetail", publicName: "langDetail", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "@if (isDescription()) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId()\" [attr.lang]=\"langDetail()\">{{ eclTitle() }}</div>\n <div class=\"ecl-file__translation-meta\" [id]=\"metaId()\">{{ meta() }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n" }); }
256
296
  }
257
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclFileItemComponent, decorators: [{
258
298
  type: Component,
259
- args: [{ selector: 'ecl-file-item', template: "@if (isDescription) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId\" [attr.lang]=\"langDetail\">{{ eclTitle }}</div>\n <div class=\"ecl-file__translation-meta\">{{ meta }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n" }]
260
- }], propDecorators: { isDescription: [{
261
- type: Input,
262
- args: [{ transform: booleanAttribute }]
263
- }], eclTitle: [{
264
- type: Input
265
- }], titleId: [{
266
- type: Input
267
- }], meta: [{
268
- type: Input
269
- }], label: [{
270
- type: Input
271
- }], langDetail: [{
272
- type: Input
273
- }], cssClasses: [{
299
+ args: [{ selector: 'ecl-file-item', template: "@if (isDescription()) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId()\" [attr.lang]=\"langDetail()\">{{ eclTitle() }}</div>\n <div class=\"ecl-file__translation-meta\" [id]=\"metaId()\">{{ meta() }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n" }]
300
+ }], propDecorators: { isDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDescription", required: false }] }], eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], metaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "metaId", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], langDetail: [{ type: i0.Input, args: [{ isSignal: true, alias: "langDetail", required: false }] }], cssClasses: [{
274
301
  type: HostBinding,
275
302
  args: ['class']
276
303
  }], role: [{
@@ -315,7 +342,7 @@ class EclFileItemsComponent extends ECLBaseDirective {
315
342
  * Returns the number of translation items excluding description entries.
316
343
  */
317
344
  getItemsCount() {
318
- return this.items.filter((item) => !item.isDescription).length;
345
+ return this.items.filter((item) => !item.isDescription()).length;
319
346
  }
320
347
  /**
321
348
  * Toggles the expansion state of the translation list.
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-file.mjs","sources":["../../components/ecl-file/ecl-file-download.directive.ts","../../components/ecl-file/ecl-file-picture.directive.ts","../../components/ecl-file/ecl-file.component.ts","../../components/ecl-file/ecl-file.component.html","../../components/ecl-file/ecl-file-item/ecl-file-item.component.ts","../../components/ecl-file/ecl-file-item/ecl-file-item.component.html","../../components/ecl-file/events/ecl-file-items-toggle.event.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.html","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.ts","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.html","../../components/ecl-file/index.ts","../../components/ecl-file/eui-ecl-components-ecl-file.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply the correct styling class for a translation download link\n * inside a file component.\n */\n@Directive({\n selector: '[eclFileTranslationDownload]',\n})\nexport class EclFileTranslationDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL translation download class to the host element.\n */\n @HostBinding('class.ecl-file__translation-download') className = true;\n}\n\n/**\n * Directive to apply the correct styling class for a standard file download link.\n */\n@Directive({\n selector: '[eclFileDownload]',\n})\nexport class EclFileDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL download class to the host element.\n */\n @HostBinding('class.ecl-file__download') className = true;\n}\n\n/**\n * Directive to style a file preview link.\n * Adds spacing and ECL link classes for standalone appearance.\n */\n@Directive({\n selector: '[eclFilePreview]',\n host: {\n '[style.margin-inline-end.px]': '24',\n },\n})\nexport class EclFilePreviewDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL link class to the host element.\n */\n @HostBinding('class.ecl-link') hasClass = true;\n\n /**\n * Applies the standalone variant of the ECL link class to the host element.\n */\n @HostBinding('class.ecl-link--standalone') hasClassStandalone = true;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a <picture> element used in an ECL file component.\n * Adds ECL-specific picture and file picture classes.\n */\n@Directive({\n selector: 'picture[eclFilePicture]',\n})\nexport class EclFilePictureDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL picture styling classes to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-file__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive to style an <img> element inside an ECL file component.\n * Adds the ECL-specific image class.\n */\n@Directive({\n selector: 'img[eclFileImage]',\n})\nexport class EclFileImageDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL image class to the host element.\n */\n @HostBinding('class.ecl-file__image') className = true;\n}\n\n/**\n * Directive to style a title element in an ECL file component.\n */\n@Directive({\n selector: '[eclFileTitle]',\n})\nexport class EclFileTitleDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL file title class to the host element.\n */\n @HostBinding('class.ecl-file__title') className = true;\n\n /**\n * ID attribute for the title element.\n */\n @Input() id: string;\n}\n","import {\n Component,\n ContentChild,\n HostBinding,\n Input,\n inject,\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LABEL } from '@eui/ecl/components/ecl-label';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\nimport { EclFilePictureDirective } from './ecl-file-picture.directive';\n\n/**\n * Component representing a file item with optional metadata, description,\n * and image (thumbnail) support.\n */\n@Component({\n selector: 'ecl-file',\n templateUrl: './ecl-file.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_LABEL,\n ],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFileComponent extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n\n /**\n * Host element CSS classes based on theme and content.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file'), this.isThumbnail ? 'ecl-file--thumbnail' : ''].join(' ').trim();\n }\n\n /**\n * Optional description displayed under the file title.\n */\n @Input() description: string;\n\n /**\n * Optional ID for the file component, useful for accessibility or referencing.\n */\n @Input() id: string;\n\n /**\n * Optional language ID (e.g., for translation or accessibility attributes).\n */\n @Input() langId: string;\n\n /**\n * Additional label shown next to the language label, e.g. file type or status.\n */\n @Input() labelInfo: string;\n\n /**\n * Language indicator string (e.g. \"EN\", \"FR\") used in the label.\n */\n @Input() language: string;\n\n /**\n * Additional details displayed in the file component (e.g. file size, date).\n */\n @Input() detailMeta: string[];\n\n /**\n * Main metadata displayed for the file (e.g. format, license).\n */\n @Input() meta: string;\n\n /**\n * Optional image directive projected via content slot, used for thumbnails.\n */\n @ContentChild(EclFilePictureDirective) eclPictureContent: EclFilePictureDirective;\n\n /**\n * Determines whether the file has an associated thumbnail.\n * Returns true if an `EclFilePictureDirective` is present in projected content.\n */\n get isThumbnail(): boolean {\n return !!this.eclPictureContent;\n }\n}\n","<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo }}</span>\n </div>\n }\n @if(detailMeta) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta; track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description) {\n <div class=\"ecl-file__description\">{{ description }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId\">{{ language }}</div>\n <div class=\"ecl-file__meta\">{{ meta }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n","import { Component, HostBinding, Input, booleanAttribute, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileComponent } from '../ecl-file.component';\n\n/**\n * Component representing a single file translation or descriptive item\n * inside the main ECL File component.\n */\n@Component({\n selector: 'ecl-file-item',\n templateUrl: './ecl-file-item.component.html',\n})\nexport class EclFileItemComponent extends ECLBaseDirective {\n /**\n * Indicates whether the item is a description block rather than a translation.\n * Adds the `ecl-file__translation-description` class when true.\n */\n @Input({ transform: booleanAttribute }) isDescription = false;\n\n /**\n * Title text of the file item.\n */\n @Input() eclTitle: string;\n\n /**\n * ID applied to the title element for accessibility.\n */\n @Input() titleId: string;\n\n /**\n * Additional metadata for the item (e.g., file size, type).\n */\n @Input() meta: string;\n\n /**\n * Language label displayed next to the title (e.g., \"FR\", \"EN\").\n */\n @Input() label: string;\n\n /**\n * Supplementary language detail displayed below the language label.\n */\n @Input() langDetail: string;\n\n /**\n * Host CSS classes for the item, based on the content and state.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-file__translation-item'),\n this.isDescription ? 'ecl-file__translation-description' : '',\n ].join(' ').trim();\n }\n\n /**\n * ARIA role attribute set to 'listitem' for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n private eclFileComponent = inject(EclFileComponent);\n\n /**\n * Indicates whether the parent `EclFileComponent` has a thumbnail image.\n */\n get isThumbnail(): boolean {\n return this.eclFileComponent && this.eclFileComponent.isThumbnail;\n }\n}\n","@if (isDescription) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId\" [attr.lang]=\"langDetail\">{{ eclTitle }}</div>\n <div class=\"ecl-file__translation-meta\">{{ meta }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclFileItemsToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}","import { Component, Input, ContentChildren, QueryList, Output, EventEmitter, HostBinding, booleanAttribute } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileItemComponent } from '../ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsToggleEvent } from '../events/ecl-file-items-toggle.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Component representing a container for file item translations within an ECL File component.\n * It can be expanded or collapsed, and emits an event when toggled.\n */\n@Component({\n selector: 'ecl-file-items',\n templateUrl: './ecl-file-items.component.html',\n imports: [\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_ICON,\n TranslateModule,\n ],\n})\nexport class EclFileItemsComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__translation-container')].join(' ').trim();\n }\n\n /**\n * Label displayed above the translations list.\n */\n @Input() label: string;\n\n /**\n * Whether the list is initially expanded.\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * Emits a toggle event when the translations list is expanded or collapsed.\n * \n * @remarks\n * Consumers can call `preventDefault()` on the event to cancel the toggle.\n */\n // eslint-disable-next-line\n @Output() toggle = new EventEmitter<EclFileItemsToggleEvent>();\n\n /**\n * Content-projected list of translation items (excluding description blocks).\n */\n @ContentChildren(EclFileItemComponent) items: QueryList<EclFileItemComponent>;\n\n /**\n * Returns the number of translation items excluding description entries.\n */\n getItemsCount(): number {\n return this.items.filter((item) => !item.isDescription).length;\n }\n\n /**\n * Toggles the expansion state of the translation list.\n * Emits `toggle` event and updates `isExpanded` if not prevented.\n */\n onToggleClick(evt: MouseEvent): void {\n const nextExpandedState = !this.isExpanded;\n const event = new EclFileItemsToggleEvent(nextExpandedState);\n\n this.toggle.next(event);\n\n if (!event.defaultPrevented) {\n this.isExpanded = nextExpandedState;\n }\n }\n}\n","<button eclButton variant=\"tertiary\" class=\"ecl-file__translation-toggle\" [attr.aria-expanded]=\"isExpanded\" (click)=\"onToggleClick($event)\">\n <span eclButtonLabel>\n {{ label || 'ecl.file.OTHER-LANGUAGES' | translate: { count: getItemsCount() } }}\n </span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-180\"></ecl-icon>\n</button>\n<ul class=\"ecl-file__translation-list\">\n <ng-content></ng-content>\n</ul>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing the taxonomy section of a file in the ECL File component.\n */\n@Component({\n selector: 'ecl-file-taxonomy',\n templateUrl: './ecl-file-taxonomy.component.html',\n})\nexport class EclFileTaxonomyComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__taxonomy')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { EclFileDownloadDirective, EclFilePreviewDirective, EclFileTranslationDownloadDirective } from './ecl-file-download.directive';\nimport { EclFileItemComponent } from './ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsComponent } from './ecl-file-items/ecl-file-items.component';\nimport { EclFileImageDirective, EclFilePictureDirective, EclFileTitleDirective } from './ecl-file-picture.directive';\nimport { EclFileTaxonomyComponent } from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nimport { EclFileComponent } from './ecl-file.component';\n\nexport * from './ecl-file.component';\nexport * from './ecl-file-items/ecl-file-items.component';\nexport * from './ecl-file-item/ecl-file-item.component';\nexport * from './ecl-file-download.directive';\nexport * from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nexport * from './ecl-file-picture.directive';\nexport * from './events/ecl-file-items-toggle.event';\n\nexport const EUI_ECL_FILE = [\n EclFileComponent,\n EclFileDownloadDirective,\n EclFileItemsComponent,\n EclFileItemComponent,\n EclFileTaxonomyComponent,\n EclFileTitleDirective,\n EclFileTranslationDownloadDirective,\n EclFilePictureDirective,\n EclFileImageDirective,\n EclFilePreviewDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAGA;;;AAGG;AAIG,MAAO,mCAAoC,SAAQ,gBAAgB,CAAA;AAHzE,IAAA,WAAA,GAAA;;AAKI;;AAEG;QACkD,IAAA,CAAA,SAAS,GAAG,IAAI;AACxE,IAAA;+GANY,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sCAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AAC3C,iBAAA;;sBAMI,WAAW;uBAAC,sCAAsC;;AAGvD;;AAEG;AAIG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAH9D,IAAA,WAAA,GAAA;;AAKI;;AAEG;QACsC,IAAA,CAAA,SAAS,GAAG,IAAI;AAC5D,IAAA;+GANY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;sBAMI,WAAW;uBAAC,0BAA0B;;AAG3C;;;AAGG;AAOG,MAAO,uBAAwB,SAAQ,gBAAgB,CAAA;AAN7D,IAAA,WAAA,GAAA;;AAQI;;AAEG;QAC4B,IAAA,CAAA,QAAQ,GAAG,IAAI;AAE9C;;AAEG;QACwC,IAAA,CAAA,kBAAkB,GAAG,IAAI;AACvE,IAAA;+GAXY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACF,wBAAA,8BAA8B,EAAE,IAAI;AACvC,qBAAA;AACJ,iBAAA;;sBAMI,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,4BAA4B;;;ACjD7C;;;AAGG;AAIG,MAAO,uBAAwB,SAAQ,gBAAgB,CAAA;AAEzD;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAClF;+GARS,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACtC,iBAAA;;sBAMI,WAAW;uBAAC,OAAO;;AAMxB;;;AAGG;AAIG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAH3D,IAAA,WAAA,GAAA;;AAKI;;AAEG;QACmC,IAAA,CAAA,SAAS,GAAG,IAAI;AACzD,IAAA;+GANY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;sBAMI,WAAW;uBAAC,uBAAuB;;AAGxC;;AAEG;AAIG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAH3D,IAAA,WAAA,GAAA;;AAKI;;AAEG;QACmC,IAAA,CAAA,SAAS,GAAG,IAAI;AAMzD,IAAA;+GAXY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;sBAMI,WAAW;uBAAC,uBAAuB;;sBAKnC;;;ACxCL;;;AAGG;AAgBG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAftD,IAAA,WAAA,GAAA;;AAgBI,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAyD5C,IAAA;AAvDG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,qBAAqB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC5G;AA0CA;;;AAGG;AACH,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB;IACnC;+GAzDS,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiDX,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChFzC,49CAwCA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDTa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,OAAA,EAEX;AACL,wBAAA,GAAG,YAAY;AACf,wBAAA,GAAG,aAAa;AACnB,qBAAA,EAAA,QAAA,EAAA,49CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAeA,WAAW;uBAAC,OAAO;;sBAQnB;;sBAKA;;sBAKA;;sBAKA;;sBAKA;;sBAKA;;sBAKA;;sBAKA,YAAY;uBAAC,uBAAuB;;;AE5EzC;;;AAGG;AAKG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAJ1D,IAAA,WAAA,GAAA;;AAKI;;;AAGG;QACqC,IAAA,CAAA,aAAa,GAAG,KAAK;AAsC7D;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;AACnC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAQtD,IAAA;AAvBG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC;YACjD,IAAI,CAAC,aAAa,GAAG,mCAAmC,GAAG,EAAE;AAChE,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAQA;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW;IACrE;+GAtDS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAKT,gBAAgB,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBxC,mgBAYA,EAAA,CAAA,CAAA;;4FDAa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,mgBAAA,EAAA;;sBAQxB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAKrC;;sBAKA;;sBAKA;;sBAKA;;sBAKA;;sBAKA,WAAW;uBAAC,OAAO;;sBAWnB,WAAW;uBAAC,WAAW;;;AExDtB,MAAO,uBAAwB,SAAQ,YAAY,CAAA;AACrD,IAAA,WAAA,CAAmB,UAAmB,EAAA;AAClC,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,UAAU,GAAV,UAAU;IAE7B;AACH;;ACED;;;AAGG;AAUG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAT3D,IAAA,WAAA,GAAA;;AAwBI;;AAEG;QACqC,IAAA,CAAA,UAAU,GAAG,KAAK;AAE1D;;;;;AAKG;;AAEO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAA2B;AA4BjE,IAAA;AArDG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACpF;AA0BA;;AAEG;IACH,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM;IAClE;AAEA;;;AAGG;AACH,IAAA,aAAa,CAAC,GAAe,EAAA;AACzB,QAAA,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,UAAU;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;AAE5D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB;QACvC;IACJ;+GAtDS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qHAkBV,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAcnB,oBAAoB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrDzC,icASA,8hBDSQ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EAEjB;AACL,wBAAA,GAAG,cAAc;AACjB,wBAAA,GAAG,YAAY;wBACf,eAAe;AAClB,qBAAA,EAAA,QAAA,EAAA,icAAA,EAAA;;sBAOA,WAAW;uBAAC,OAAO;;sBAQnB;;sBAKA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBASrC;;sBAKA,eAAe;uBAAC,oBAAoB;;;AElDzC;;AAEG;AAKG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAE1D;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACvE;+GARS,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,0JCVrC,6BACA,EAAA,CAAA,CAAA;;4FDSa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAQ5B,WAAW;uBAAC,OAAO;;;AEAjB,MAAM,YAAY,GAAG;IACxB,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,mCAAmC;IACnC,uBAAuB;IACvB,qBAAqB;IACrB,uBAAuB;;;ACzB3B;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-file.mjs","sources":["../../components/ecl-file/ecl-file-download.directive.ts","../../components/ecl-file/ecl-file-picture.directive.ts","../../components/ecl-file/ecl-file.component.ts","../../components/ecl-file/ecl-file.component.html","../../components/ecl-file/ecl-file-item/ecl-file-item.component.ts","../../components/ecl-file/ecl-file-item/ecl-file-item.component.html","../../components/ecl-file/events/ecl-file-items-toggle.event.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.ts","../../components/ecl-file/ecl-file-items/ecl-file-items.component.html","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.ts","../../components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.html","../../components/ecl-file/index.ts","../../components/ecl-file/eui-ecl-components-ecl-file.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply the correct styling class for a translation download link\n * inside a file component.\n */\n@Directive({\n selector: '[eclFileTranslationDownload]',\n})\nexport class EclFileTranslationDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL translation download class to the host element.\n */\n @HostBinding('class.ecl-file__translation-download') className = true;\n}\n\n/**\n * Directive to apply the correct styling class for a standard file download link.\n */\n@Directive({\n selector: '[eclFileDownload]',\n})\nexport class EclFileDownloadDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL download class to the host element.\n */\n @HostBinding('class.ecl-file__download') className = true;\n}\n\n/**\n * Directive to style a file preview link.\n * Adds spacing and ECL link classes for standalone appearance.\n */\n@Directive({\n selector: '[eclFilePreview]',\n host: {\n '[style.margin-inline-end.px]': '24',\n },\n})\nexport class EclFilePreviewDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL link class to the host element.\n */\n @HostBinding('class.ecl-link') hasClass = true;\n\n /**\n * Applies the standalone variant of the ECL link class to the host element.\n */\n @HostBinding('class.ecl-link--standalone') hasClassStandalone = true;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a <picture> element used in an ECL file component.\n * Adds ECL-specific picture and file picture classes.\n */\n@Directive({\n selector: 'picture[eclFilePicture]',\n})\nexport class EclFilePictureDirective extends ECLBaseDirective {\n\n /**\n * Applies ECL picture styling classes to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-file__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive to style an <img> element inside an ECL file component.\n * Adds the ECL-specific image class.\n */\n@Directive({\n selector: 'img[eclFileImage]',\n})\nexport class EclFileImageDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL image class to the host element.\n */\n @HostBinding('class.ecl-file__image') className = true;\n}\n\n/**\n * Directive to style a title element in an ECL file component.\n */\n@Directive({\n selector: '[eclFileTitle]',\n})\nexport class EclFileTitleDirective extends ECLBaseDirective {\n\n /**\n * Applies the ECL file title class to the host element.\n */\n @HostBinding('class.ecl-file__title') className = true;\n\n /**\n * ID attribute for the title element.\n */\n @Input() id: string;\n}\n","import {\n Component,\n ContentChild,\n HostBinding,\n Input,\n inject,\n input,\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LABEL } from '@eui/ecl/components/ecl-label';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\nimport { EclFilePictureDirective } from './ecl-file-picture.directive';\n\n/**\n * Component representing a file item with optional metadata, description,\n * and image (thumbnail) support.\n */\n@Component({\n selector: 'ecl-file',\n templateUrl: './ecl-file.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_LABEL,\n ],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFileComponent extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n\n /**\n * Host element CSS classes based on theme and content.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file'), this.isThumbnail ? 'ecl-file--thumbnail' : ''].join(' ').trim();\n }\n\n /**\n * Optional description displayed under the file title.\n */\n description = input<string>();\n\n /**\n * Optional ID for the file component, useful for accessibility or referencing.\n */\n @Input() id: string;\n\n /**\n * Optional language ID (e.g., for translation or accessibility attributes).\n */\n langId = input<string>();\n\n /**\n * Additional label shown next to the language label, e.g. file type or status.\n */\n labelInfo = input<string>();\n\n /**\n * Language indicator string (e.g. \"EN\", \"FR\") used in the label.\n */\n language = input<string>();\n\n /**\n * Additional details displayed in the file component (e.g. file size, date).\n */\n detailMeta = input<string[]>();\n\n /**\n * Main metadata displayed for the file (e.g. format, license).\n */\n meta = input<string>();\n\n /**\n * ID applied to the meta element for accessibility.\n */\n metaId = input<string>();\n\n /**\n * Optional image directive projected via content slot, used for thumbnails.\n */\n @ContentChild(EclFilePictureDirective) eclPictureContent: EclFilePictureDirective;\n\n /**\n * Determines whether the file has an associated thumbnail.\n * Returns true if an `EclFilePictureDirective` is present in projected content.\n */\n get isThumbnail(): boolean {\n return !!this.eclPictureContent;\n }\n}\n","<div class=\"ecl-file__container\">\n @if(!isThumbnail) {\n @if(eclThemeService.isECTheme()) {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"2xl\"></ecl-icon>\n } @else {\n <ecl-icon icon=\"file\" class=\"ecl-file__icon\" size=\"m\"></ecl-icon>\n }\n } @else {\n <ng-content select=\"[eclFilePicture]\"></ng-content>\n }\n <div class=\"ecl-file__info\">\n @if(labelInfo()) {\n <div class=\"ecl-file__label\">\n <span eclLabel variant=\"highlight\">{{ labelInfo() }}</span>\n </div>\n }\n @if(detailMeta()) {\n <ul class=\"ecl-file__detail-meta\">\n @for (el of detailMeta(); track el) {\n <li class=\"ecl-file__detail-meta-item\" >{{ el }}</li>\n }\n </ul>\n }\n <ng-content select=\"[eclFileTitle]\"></ng-content>\n @if(description()) {\n <div class=\"ecl-file__description\">{{ description() }}</div>\n }\n <ng-content select=\"ecl-file-taxonomy\"></ng-content>\n </div>\n\n </div>\n <div class=\"ecl-file__footer\">\n <div class=\"ecl-file__language\" [id]=\"langId()\">{{ language() }}</div>\n <div class=\"ecl-file__meta\" [id]=\"metaId()\">{{ meta() }}</div>\n <div class=\"ecl-file__action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileDownload]\"></ng-content>\n </div>\n </div>\n<ng-content></ng-content>\n","import { Component, HostBinding, booleanAttribute, inject, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileComponent } from '../ecl-file.component';\n\n/**\n * Component representing a single file translation or descriptive item\n * inside the main ECL File component.\n */\n@Component({\n selector: 'ecl-file-item',\n templateUrl: './ecl-file-item.component.html',\n})\nexport class EclFileItemComponent extends ECLBaseDirective {\n /**\n * Indicates whether the item is a description block rather than a translation.\n * Adds the `ecl-file__translation-description` class when true.\n */\n isDescription = input(false, { transform: booleanAttribute });\n\n /**\n * Title text of the file item.\n */\n eclTitle = input<string>();\n\n /**\n * ID applied to the title element for accessibility.\n */\n titleId = input<string>();\n\n /**\n * ID applied to the meta element for accessibility.\n */\n metaId = input<string>();\n\n /**\n * Additional metadata for the item (e.g., file size, type).\n */\n meta = input<string>();\n\n /**\n * Language label displayed next to the title (e.g., \"FR\", \"EN\").\n */\n label = input<string>();\n\n /**\n * Supplementary language detail displayed below the language label.\n */\n langDetail = input<string>();\n\n /**\n * Host CSS classes for the item, based on the content and state.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-file__translation-item'),\n this.isDescription() ? 'ecl-file__translation-description' : '',\n ].join(' ').trim();\n }\n\n /**\n * ARIA role attribute set to 'listitem' for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n private eclFileComponent = inject(EclFileComponent);\n\n /**\n * Indicates whether the parent `EclFileComponent` has a thumbnail image.\n */\n get isThumbnail(): boolean {\n return this.eclFileComponent && this.eclFileComponent.isThumbnail;\n }\n}\n","@if (isDescription()) {\n <ng-content></ng-content>\n} @else {\n <div class=\"ecl-file__translation-info\">\n <div class=\"ecl-file__translation-title\" [id]=\"titleId()\" [attr.lang]=\"langDetail()\">{{ eclTitle() }}</div>\n <div class=\"ecl-file__translation-meta\" [id]=\"metaId()\">{{ meta() }}</div>\n </div>\n <div class=\"ecl-file__translation-action\">\n <ng-content select=\"[eclFilePreview]\"></ng-content>\n <ng-content select=\"[eclFileTranslationDownload]\"></ng-content>\n </div>\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclFileItemsToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}","import { Component, Input, ContentChildren, QueryList, Output, EventEmitter, HostBinding, booleanAttribute } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFileItemComponent } from '../ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsToggleEvent } from '../events/ecl-file-items-toggle.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Component representing a container for file item translations within an ECL File component.\n * It can be expanded or collapsed, and emits an event when toggled.\n */\n@Component({\n selector: 'ecl-file-items',\n templateUrl: './ecl-file-items.component.html',\n imports: [\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_ICON,\n TranslateModule,\n ],\n})\nexport class EclFileItemsComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__translation-container')].join(' ').trim();\n }\n\n /**\n * Label displayed above the translations list.\n */\n @Input() label: string;\n\n /**\n * Whether the list is initially expanded.\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * Emits a toggle event when the translations list is expanded or collapsed.\n * \n * @remarks\n * Consumers can call `preventDefault()` on the event to cancel the toggle.\n */\n // eslint-disable-next-line\n @Output() toggle = new EventEmitter<EclFileItemsToggleEvent>();\n\n /**\n * Content-projected list of translation items (excluding description blocks).\n */\n @ContentChildren(EclFileItemComponent) items: QueryList<EclFileItemComponent>;\n\n /**\n * Returns the number of translation items excluding description entries.\n */\n getItemsCount(): number {\n return this.items.filter((item) => !item.isDescription()).length;\n }\n\n /**\n * Toggles the expansion state of the translation list.\n * Emits `toggle` event and updates `isExpanded` if not prevented.\n */\n onToggleClick(evt: MouseEvent): void {\n const nextExpandedState = !this.isExpanded;\n const event = new EclFileItemsToggleEvent(nextExpandedState);\n\n this.toggle.next(event);\n\n if (!event.defaultPrevented) {\n this.isExpanded = nextExpandedState;\n }\n }\n}\n","<button eclButton variant=\"tertiary\" class=\"ecl-file__translation-toggle\" [attr.aria-expanded]=\"isExpanded\" (click)=\"onToggleClick($event)\">\n <span eclButtonLabel>\n {{ label || 'ecl.file.OTHER-LANGUAGES' | translate: { count: getItemsCount() } }}\n </span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-180\"></ecl-icon>\n</button>\n<ul class=\"ecl-file__translation-list\">\n <ng-content></ng-content>\n</ul>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing the taxonomy section of a file in the ECL File component.\n */\n@Component({\n selector: 'ecl-file-taxonomy',\n templateUrl: './ecl-file-taxonomy.component.html',\n})\nexport class EclFileTaxonomyComponent extends ECLBaseDirective {\n\n /**\n * CSS classes applied to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-file__taxonomy')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { EclFileDownloadDirective, EclFilePreviewDirective, EclFileTranslationDownloadDirective } from './ecl-file-download.directive';\nimport { EclFileItemComponent } from './ecl-file-item/ecl-file-item.component';\nimport { EclFileItemsComponent } from './ecl-file-items/ecl-file-items.component';\nimport { EclFileImageDirective, EclFilePictureDirective, EclFileTitleDirective } from './ecl-file-picture.directive';\nimport { EclFileTaxonomyComponent } from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nimport { EclFileComponent } from './ecl-file.component';\n\nexport * from './ecl-file.component';\nexport * from './ecl-file-items/ecl-file-items.component';\nexport * from './ecl-file-item/ecl-file-item.component';\nexport * from './ecl-file-download.directive';\nexport * from './ecl-file-taxonomy/ecl-file-taxonomy.component';\nexport * from './ecl-file-picture.directive';\nexport * from './events/ecl-file-items-toggle.event';\n\nexport const EUI_ECL_FILE = [\n EclFileComponent,\n EclFileDownloadDirective,\n EclFileItemsComponent,\n EclFileItemComponent,\n EclFileTaxonomyComponent,\n EclFileTitleDirective,\n EclFileTranslationDownloadDirective,\n EclFilePictureDirective,\n EclFileImageDirective,\n EclFilePreviewDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -159,7 +159,7 @@ class EclIconComponent {
159
159
  case 'default':
160
160
  this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);
161
161
  break;
162
- case 'social':
162
+ case 'social': // TODO: Remove this in the next version.
163
163
  this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);
164
164
  break;
165
165
  case 'social-media':
@@ -174,6 +174,9 @@ class EclIconComponent {
174
174
  case 'flag-non-members':
175
175
  this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);
176
176
  break;
177
+ case 'phosphor':
178
+ this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);
179
+ break;
177
180
  default:
178
181
  this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);
179
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n inject,\n Input,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `flag`, or a custom URL prefix.\n * Defaults to `'default'`.\n */\n iconSet = input<'default' | 'social' | 'social-media' | 'social-media-color' | 'flag' | 'flag-non-members' | string>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n @Input() ariaLabelledby: string;\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n @Input() role: string;\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n @Input() title: string;\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n @Input({ transform: booleanAttribute }) ariaHidden: boolean;\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n @Input({ transform: booleanAttribute }) focusable = false;\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-icon--flip-horizontal')\n isFlipHorizontal = false;\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-grey')\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n @ViewChild('svg') svgEl: ElementRef;\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n this.overrideRoleValueBasedOnTitle();\n this.overrideAriaLabelValueBasedOnTitle();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n\n private overrideRoleValueBasedOnTitle(): void {\n if (this.title !== undefined && this.role === undefined) {\n this.role = 'img';\n }\n }\n\n private overrideAriaLabelValueBasedOnTitle(): void {\n if (this.title !== undefined && this.ariaHidden === undefined) {\n this.ariaHidden = false;\n } else if (this.ariaHidden === undefined) {\n this.ariaHidden = true;\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.role]=\"role || null\"\n [attr.focusable]=\"focusable\">\n @if (title) {\n <title>{{title}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\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-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n inject,\n Input,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `flag`, or a custom URL prefix.\n * Defaults to `'default'`.\n */\n iconSet = input<'default' | 'social' | 'social-media' | 'social-media-color' | 'flag' | 'flag-non-members' | \n 'phosphor' | string>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n @Input() ariaLabelledby: string;\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n @Input() role: string;\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n @Input() title: string;\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n @Input({ transform: booleanAttribute }) ariaHidden: boolean;\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n @Input({ transform: booleanAttribute }) focusable = false;\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-icon--flip-horizontal')\n isFlipHorizontal = false;\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-grey')\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n @ViewChild('svg') svgEl: ElementRef;\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n this.overrideRoleValueBasedOnTitle();\n this.overrideAriaLabelValueBasedOnTitle();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social': // TODO: Remove this in the next version.\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n case 'phosphor':\n this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n\n private overrideRoleValueBasedOnTitle(): void {\n if (this.title !== undefined && this.role === undefined) {\n this.role = 'img';\n }\n }\n\n private overrideAriaLabelValueBasedOnTitle(): void {\n if (this.title !== undefined && this.ariaHidden === undefined) {\n this.ariaHidden = false;\n } else if (this.ariaHidden === undefined) {\n this.ariaHidden = true;\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.role]=\"role || null\"\n [attr.focusable]=\"focusable\">\n @if (title) {\n <title>{{title}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -393,7 +393,7 @@ class EclMenuItemComponent extends ECLBaseDirective {
393
393
  get hasEclChildrenDataAttribute() {
394
394
  return this.hasChildren || undefined;
395
395
  }
396
- get isAriaExpanded() {
396
+ get isDataExpanded() {
397
397
  return this.hasChildren ? this.isHovered : null;
398
398
  }
399
399
  get ariaCurrent() {
@@ -744,11 +744,11 @@ class EclMenuItemComponent extends ECLBaseDirective {
744
744
  });
745
745
  }
746
746
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
747
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclMenuItemComponent, isStandalone: true, selector: "ecl-menu-item", inputs: { id: "id", label: "label", toggleAriaLabel: "toggleAriaLabel", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent", linkExtraAttributes: "linkExtraAttributes" }, outputs: { menuItemSelect: "menuItemSelect", menuItemCaret: "menuItemCaret", menuItemHover: "menuItemHover", menuItemHoverOut: "menuItemHoverOut", menuMegaItemSelect: "menuMegaItemSelect", menuItemFocus: "menuItemFocus", menuItemKeydown: "menuItemKeydown", menuMegaLastItemTab: "menuMegaLastItemTab" }, host: { listeners: { "mouseenter": "onItemMouseEnter($event)", "mouseleave": "onItemMouseLeave($event)" }, properties: { "attr.role": "this.role", "class": "this.cssClasses", "class.ecl-menu__item--has-children": "this.hasEclChildrenDataAttribute", "attr.aria-haspopup": "this.hasEclChildrenDataAttribute", "attr.aria-expanded": "this.isAriaExpanded" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(() => EclMenuMegaComponent), descendants: true }], viewQueries: [{ propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }, { propertyName: "menuButton", first: true, predicate: EclButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
747
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: EclMenuItemComponent, isStandalone: true, selector: "ecl-menu-item", inputs: { id: "id", label: "label", toggleAriaLabel: "toggleAriaLabel", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent", linkExtraAttributes: "linkExtraAttributes" }, outputs: { menuItemSelect: "menuItemSelect", menuItemCaret: "menuItemCaret", menuItemHover: "menuItemHover", menuItemHoverOut: "menuItemHoverOut", menuMegaItemSelect: "menuMegaItemSelect", menuItemFocus: "menuItemFocus", menuItemKeydown: "menuItemKeydown", menuMegaLastItemTab: "menuMegaLastItemTab" }, host: { listeners: { "mouseenter": "onItemMouseEnter($event)", "mouseleave": "onItemMouseLeave($event)" }, properties: { "attr.role": "this.role", "class": "this.cssClasses", "class.ecl-menu__item--has-children": "this.hasEclChildrenDataAttribute", "attr.aria-haspopup": "this.hasEclChildrenDataAttribute", "attr.data-expanded": "this.isDataExpanded" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(() => EclMenuMegaComponent), descendants: true }], viewQueries: [{ propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }, { propertyName: "menuButton", first: true, predicate: EclButtonComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.data-expanded]=\"isDataExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
748
748
  }
749
749
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: EclMenuItemComponent, decorators: [{
750
750
  type: Component,
751
- args: [{ selector: 'ecl-menu-item', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], encapsulation: ViewEncapsulation.None, template: "@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.aria-expanded]=\"isAriaExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
751
+ args: [{ selector: 'ecl-menu-item', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], encapsulation: ViewEncapsulation.None, template: "@if (href) {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n} @else {\n <a eclLink\n #menuLink\n variant=\"standalone\"\n [attr.tabindex]=\"tabindex || 0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__link\"\n [class.ecl-menu__link--current]=\"isCurrent\"\n [attr.aria-current]=\"ariaCurrent\"\n (focus)=\"onItemFocus($event)\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onLinkKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n}\n\n@if (hasChildren) {\n @if (isMobileBreakpoint) {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n (click)=\"onItemCaretClick($event)\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n } @else {\n <button\n eclButton\n variant=\"tertiary\"\n class=\"ecl-menu__button-caret ecl-button--neutral\"\n type=\"button\"\n [attr.aria-label]=\"toggleAriaLabel || 'Access item children'\"\n [attr.data-expanded]=\"isDataExpanded\"\n (keydown)=\"onButtonKeydown($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-180\" class=\"ecl-button__icon\"></ecl-icon>\n </button>\n }\n}\n\n<ng-content select=\"ecl-menu-mega\"></ng-content>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
752
752
  }], ctorParameters: () => [], propDecorators: { id: [{
753
753
  type: Input
754
754
  }], label: [{
@@ -806,9 +806,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
806
806
  }, {
807
807
  type: HostBinding,
808
808
  args: ['attr.aria-haspopup']
809
- }], isAriaExpanded: [{
809
+ }], isDataExpanded: [{
810
810
  type: HostBinding,
811
- args: ['attr.aria-expanded']
811
+ args: ['attr.data-expanded']
812
812
  }], onItemMouseEnter: [{
813
813
  type: HostListener,
814
814
  args: ['mouseenter', ['$event']]