@eui/ecl 23.0.0-alpha.6 → 23.0.0-alpha.7

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 (215) hide show
  1. package/docs/changelog.html +41 -0
  2. package/docs/classes/EclLanguageService.html +8 -8
  3. package/docs/components/EclBannerComponent.html +28 -56
  4. package/docs/components/EclCardComponent.html +12 -24
  5. package/docs/components/EclCarouselComponent.html +33 -65
  6. package/docs/components/EclCarouselItemComponent.html +4 -8
  7. package/docs/components/EclCategoryFilterComponent.html +4 -8
  8. package/docs/components/EclCategoryFilterItemComponent.html +5 -9
  9. package/docs/components/EclCategoryFilterListComponent.html +5 -9
  10. package/docs/components/EclContentItemComponent.html +20 -40
  11. package/docs/components/EclFactFiguresItemComponent.html +4 -8
  12. package/docs/components/EclFactFiguresViewAllComponent.html +4 -8
  13. package/docs/components/EclFeaturedItemComponent.html +4 -10
  14. package/docs/components/EclFileComponent.html +4 -8
  15. package/docs/components/EclFileItemsComponent.html +4 -8
  16. package/docs/components/EclFormGroupComponent.html +4 -8
  17. package/docs/components/EclGalleryComponent.html +21 -41
  18. package/docs/components/EclGalleryItemComponent.html +8 -16
  19. package/docs/components/EclIconComponent.html +4 -8
  20. package/docs/components/EclInpageNavigationComponent.html +20 -40
  21. package/docs/components/EclInpageNavigationItemComponent.html +4 -8
  22. package/docs/components/EclListIllustrationComponent.html +4 -8
  23. package/docs/components/EclListIllustrationItemComponent.html +9 -17
  24. package/docs/components/EclMediaContainerComponent.html +21 -41
  25. package/docs/components/EclMegaMenuComponent.html +4 -8
  26. package/docs/components/EclMegaMenuFeaturedComponent.html +12 -24
  27. package/docs/components/EclMegaMenuInfoComponent.html +4 -8
  28. package/docs/components/EclMegaMenuItemComponent.html +37 -73
  29. package/docs/components/EclMegaMenuSubitemComponent.html +21 -43
  30. package/docs/components/EclMenuComponent.html +20 -40
  31. package/docs/components/EclMenuItemComponent.html +12 -24
  32. package/docs/components/EclMenuMegaItemComponent.html +12 -24
  33. package/docs/components/EclModalComponent.html +1 -1
  34. package/docs/components/EclMultiselectComponent.html +4 -8
  35. package/docs/components/EclMultiselectDropdownComponent.html +21 -41
  36. package/docs/components/EclMultiselectInputComponent.html +4 -8
  37. package/docs/components/EclMultiselectOptionComponent.html +4 -8
  38. package/docs/components/EclNavigationListComponent.html +4 -8
  39. package/docs/components/EclNavigationListItemComponent.html +4 -8
  40. package/docs/components/EclNewsTickerComponent.html +28 -48
  41. package/docs/components/EclNewsTickerItemComponent.html +4 -8
  42. package/docs/components/EclPageHeaderComponent.html +8 -16
  43. package/docs/components/EclPaginationComponent.html +4 -8
  44. package/docs/components/EclPopoverComponent.html +12 -24
  45. package/docs/components/EclSiteHeaderComponent.html +44 -88
  46. package/docs/components/EclSiteHeaderCustomActionComponent.html +8 -16
  47. package/docs/components/EclSiteHeaderLanguageComponent.html +10 -18
  48. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +6 -10
  49. package/docs/components/EclSiteHeaderLoginComponent.html +4 -8
  50. package/docs/components/EclSiteHeaderSearchComponent.html +4 -8
  51. package/docs/components/EclTabComponent.html +12 -24
  52. package/docs/components/EclTabsComponent.html +29 -57
  53. package/docs/components/EclTimelineComponent.html +4 -8
  54. package/docs/components/EclTimelineItemComponent.html +16 -32
  55. package/docs/directives/EclCheckboxDirective.html +16 -32
  56. package/docs/directives/EclDescriptionListDirective.html +4 -8
  57. package/docs/directives/EclGalleryMediaDirective.html +2 -2
  58. package/docs/directives/EclGalleryPictureDirective.html +1 -1
  59. package/docs/directives/EclListIllustrationPictureDirective.html +4 -8
  60. package/docs/directives/EclMediaContainerItemDirective.html +4 -8
  61. package/docs/directives/EclMegaMenuSublistDirective.html +8 -16
  62. package/docs/directives/EclMultiselectOptionDirective.html +4 -8
  63. package/docs/directives/EclPageHeaderMetaItemDirective.html +9 -0
  64. package/docs/directives/EclRadioDirective.html +8 -16
  65. package/docs/directives/EclSocialMediaFollowLinkDirective.html +4 -8
  66. package/docs/directives/EclTableDirective.html +4 -8
  67. package/docs/directives/EclTableHeadDirective.html +4 -8
  68. package/docs/injectables/EclDefaultLanguageService.html +7 -7
  69. package/docs/injectables/EclMegaMenuService.html +2 -2
  70. package/docs/interfaces/EclMegaMenuItem.html +2 -2
  71. package/docs/interfaces/EclMenuItem.html +2 -2
  72. package/docs/js/search/search_index.js +2 -2
  73. package/docs/json/EclMegaMenuItemComponent.md +1 -1
  74. package/docs/json/EclMegaMenuSubitemComponent.md +1 -1
  75. package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +2 -2
  76. package/docs/json/documentation.json +1365 -2133
  77. package/docs/llms.txt +182 -182
  78. package/docs/miscellaneous/variables.html +16 -16
  79. package/docs/properties.html +1 -1
  80. package/fesm2022/eui-ecl-components-ecl-banner.mjs +37 -40
  81. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  82. package/fesm2022/eui-ecl-components-ecl-card.mjs +23 -17
  83. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  84. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +105 -82
  85. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  86. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +36 -29
  87. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  88. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +30 -20
  89. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  90. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +46 -27
  91. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  92. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  93. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +25 -15
  94. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  95. package/fesm2022/eui-ecl-components-ecl-featured.mjs +10 -9
  96. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  97. package/fesm2022/eui-ecl-components-ecl-file.mjs +17 -13
  98. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  99. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +12 -7
  100. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  101. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -49
  102. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  103. package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -8
  104. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  105. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +48 -50
  106. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  107. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  108. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -24
  109. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  110. package/fesm2022/eui-ecl-components-ecl-list.mjs +6 -7
  111. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  112. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  113. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +31 -34
  114. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  115. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +237 -197
  116. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  117. package/fesm2022/eui-ecl-components-ecl-menu.mjs +108 -86
  118. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  119. package/fesm2022/eui-ecl-components-ecl-modal.mjs +0 -1
  120. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  121. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +70 -67
  122. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  123. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -14
  124. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  125. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +67 -51
  126. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  127. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +17 -12
  128. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  129. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +9 -7
  130. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  131. package/fesm2022/eui-ecl-components-ecl-popover.mjs +44 -38
  132. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  133. package/fesm2022/eui-ecl-components-ecl-radio.mjs +22 -14
  134. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  135. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +1 -1
  136. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  137. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +123 -118
  138. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  139. package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs +2 -2
  140. package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
  141. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +10 -8
  142. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  143. package/fesm2022/eui-ecl-components-ecl-table.mjs +17 -15
  144. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +101 -81
  146. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +47 -37
  148. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
  150. package/fesm2022/eui-ecl-core.mjs +1 -1
  151. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  152. package/package.json +1 -1
  153. package/types/eui-ecl-components-ecl-banner.d.ts +42 -43
  154. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  155. package/types/eui-ecl-components-ecl-card.d.ts +34 -35
  156. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  157. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -11
  158. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  159. package/types/eui-ecl-components-ecl-category-filter.d.ts +6 -6
  160. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  161. package/types/eui-ecl-components-ecl-checkbox.d.ts +47 -49
  162. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  163. package/types/eui-ecl-components-ecl-content-item.d.ts +16 -18
  164. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  165. package/types/eui-ecl-components-ecl-fact-figures.d.ts +3 -3
  166. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  167. package/types/eui-ecl-components-ecl-featured.d.ts +2 -2
  168. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  169. package/types/eui-ecl-components-ecl-file.d.ts +42 -43
  170. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  171. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -3
  172. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  173. package/types/eui-ecl-components-ecl-gallery.d.ts +12 -12
  174. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  175. package/types/eui-ecl-components-ecl-icon.d.ts +1 -1
  176. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  177. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +8 -8
  178. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  179. package/types/eui-ecl-components-ecl-list-illustration.d.ts +44 -44
  180. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  181. package/types/eui-ecl-components-ecl-list.d.ts +2 -2
  182. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  183. package/types/eui-ecl-components-ecl-media-container.d.ts +33 -33
  184. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  185. package/types/eui-ecl-components-ecl-mega-menu.d.ts +185 -191
  186. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  187. package/types/eui-ecl-components-ecl-menu.d.ts +126 -128
  188. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  189. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  190. package/types/eui-ecl-components-ecl-multiselect.d.ts +10 -10
  191. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  192. package/types/eui-ecl-components-ecl-navigation-list.d.ts +3 -4
  193. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  194. package/types/eui-ecl-components-ecl-news-ticker.d.ts +18 -18
  195. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  196. package/types/eui-ecl-components-ecl-page-header.d.ts +3 -3
  197. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  198. package/types/eui-ecl-components-ecl-pagination.d.ts +1 -1
  199. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  200. package/types/eui-ecl-components-ecl-popover.d.ts +3 -3
  201. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  202. package/types/eui-ecl-components-ecl-radio.d.ts +28 -28
  203. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  204. package/types/eui-ecl-components-ecl-site-header.d.ts +48 -48
  205. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  206. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +1 -1
  207. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  208. package/types/eui-ecl-components-ecl-table.d.ts +3 -3
  209. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  210. package/types/eui-ecl-components-ecl-tabs.d.ts +12 -12
  211. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  212. package/types/eui-ecl-components-ecl-timeline.d.ts +27 -28
  213. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  214. package/types/eui-ecl-core.d.ts +11 -11
  215. package/types/eui-ecl-core.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-date-picker.mjs","sources":["../../components/ecl-date-picker/duet-localization.ts","../../components/ecl-date-picker/events/ecl-date-picker-date-picked.event.ts","../../components/ecl-date-picker/ecl-date-picker.directive.ts","../../components/ecl-date-picker/ecl-date-picker-duet.directive.ts","../../components/ecl-date-picker/index.ts","../../components/ecl-date-picker/eui-ecl-components-ecl-date-picker.ts"],"sourcesContent":["export type DuetLocalization = {\n buttonLabel: string;\n selectedDateMessage: string;\n prevMonthLabel: string;\n nextMonthLabel: string;\n monthSelectLabel: string;\n yearSelectLabel: string;\n closeLabel: string;\n calendarHeading: string;\n placeholder: string;\n dayNames: string[];\n monthNames: string[];\n monthNamesShort: string[];\n locale?: string;\n};\n\nexport function buildDuetLocalization(\n translate: (key: string) => string,\n translateObject: <T>(key: string) => T,\n placeholder: string,\n locale: string\n): DuetLocalization {\n return {\n buttonLabel: translate('ecl.date-picker.buttonLabel'),\n selectedDateMessage: translate('ecl.date-picker.selectedDateMessage'),\n prevMonthLabel: translate('ecl.date-picker.prevMonthLabel'),\n nextMonthLabel: translate('ecl.date-picker.nextMonthLabel'),\n monthSelectLabel: translate('ecl.date-picker.monthSelectLabel'),\n yearSelectLabel: translate('ecl.date-picker.yearSelectLabel'),\n closeLabel: translate('ecl.date-picker.closeLabel'),\n calendarHeading: translate('ecl.date-picker.calendarHeading'),\n placeholder,\n\n dayNames: translateObject<string[]>('ecl.date-picker.weekdays'),\n monthNames: translateObject<string[]>('ecl.date-picker.months'),\n monthNamesShort: translateObject<string[]>('ecl.date-picker.monthsShort'),\n locale,\n };\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Custom event emitted by the ECL date picker when a date is selected.\n */\nexport class EclDatePickerDatePickedEvent extends EclBaseEvent {\n\tconstructor(public date: Date) {\n\t\tsuper();\n\t}\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n afterNextRender,\n booleanAttribute,\n effect,\n forwardRef,\n DOCUMENT,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { LocaleService, uniqueId } from '@eui/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { buildDuetLocalization } from './duet-localization';\nimport { EclDuetDateAdapter } from './ecl-date-picker-adapter';\nimport { EclDatePickerDatePickedEvent } from './events/ecl-date-picker-date-picked.event';\n\ntype DuetChangeDetail = { value: string; valueAsDate: Date };\ntype DuetChangeEvent = CustomEvent<DuetChangeDetail>;\n// Value type matches existing usage\ntype ModelValue = Date | null;\n\n/**\n * @deprecated This directive is deprecated. Please use '<duet-date-picker eclDatePicker>' instead.\n * Will be removed in v23.\n */\n@Directive({\n selector: 'input[eclDatePicker]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n },\n ],\n})\nexport class EclDatePickerDirective implements ControlValueAccessor, Validator {\n\n yearRange = input<number>(40);\n format = input<string>('DD-MM-YYYY');\n isInvalid = input(false, { transform: booleanAttribute });\n firstDayOfWeek = input<number>(1);\n eclSize = input<'s' | 'm' | 'l'>('m');\n placeholder = input<string>('DD-MM-YYYY');\n datePicked = output<EclDatePickerDatePickedEvent>();\n dateAdapter = input<EclDuetDateAdapter | null>(null);\n\n private control?: AbstractControl;\n private hasForms = false;\n private readonly host = inject(ElementRef<HTMLInputElement>);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translateService = inject(TranslateService);\n private readonly localeService = inject(LocaleService);\n private readonly eclRtlService = inject(EclRtlService);\n\n private duet?: (HTMLElement & {\n value: string;\n min: string;\n max: string;\n disabled: boolean;\n required: boolean;\n show: () => Promise<void>;\n dateAdapter: any;\n });\n\n private unlistenDuetChange?: () => void;\n\n private onChange: (value: ModelValue) => void = () => { };\n private onTouched: () => void = () => { };\n private unlistenDuetClose?: () => void;\n private unlistenDuetBlur?: () => void;\n private isDisabled = false;\n private wrapper?: HTMLDivElement;\n private parentReady = signal(false);\n\n constructor() {\n console.warn('\"eclDatePicker\" selector is deprecated; use \"duet-date-picker[eclDatePicker]\" instead.');\n afterNextRender(() => this.mount());\n effect(() => {\n // read the signal so the effect reruns on change\n const manualInvalid = this.isInvalid();\n\n if (!this.parentReady()) return;\n // Only apply manual invalid when NOT in forms mode\n if (!this.hasForms) {\n this.applyInvalidToWrapper(manualInvalid);\n }\n });\n }\n\n // ---- ControlValueAccessor ----\n writeValue(value: unknown): void {\n const inputEl = this.host.nativeElement;\n const fmt = this.format();\n\n // Normalize incoming value (Date | string | null -> { date, iso, display })\n const norm = this.normalizeIncoming(value, fmt);\n\n // Update input display (what the user sees)\n inputEl.value = norm.display;\n\n // Update Duet internal value (ISO)\n if (this.duet) {\n this.duet.value = norm.iso;\n }\n this.syncSoon();\n }\n\n registerOnChange(fn: (value: ModelValue) => void): void {\n this.onChange = fn;\n this.hasForms = true;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n this.hasForms = true;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.duet) this.duet.disabled = isDisabled;\n this.host.nativeElement.disabled = isDisabled;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.control = control;\n\n const required = this.host.nativeElement.required;\n const val = control.value;\n\n if (required && (val == null || val === '')) return { required: true };\n if (val == null || val === '') return null;\n\n if (val instanceof Date) return isNaN(val.getTime()) ? { eclDateInvalid: true } : null;\n\n if (typeof val === 'string') {\n return this.tryParseToIso(val, this.format()) ? null : { eclDateInvalid: true };\n }\n\n return { eclDateInvalid: true };\n }\n\n private applyInvalidState(): void {\n if (!this.wrapper) return;\n\n const invalid = this.computeInvalid();\n\n this.applyInvalidToWrapper(invalid);\n }\n\n private applyInvalidToWrapper(invalid: boolean): void {\n if (!this.wrapper) return;\n\n if (invalid) {\n this.renderer.addClass(this.wrapper, 'ecl-datepicker--invalid');\n this.renderer.setAttribute(this.wrapper, 'invalid', '');\n this.renderer.setAttribute(this.wrapper, 'aria-invalid', 'true');\n } else {\n this.renderer.removeClass(this.wrapper, 'ecl-datepicker--invalid');\n this.renderer.removeAttribute(this.wrapper, 'invalid');\n this.renderer.removeAttribute(this.wrapper, 'aria-invalid');\n }\n }\n\n private computeInvalid(): boolean {\n if (this.hasForms && this.control) {\n return this.control.invalid && (this.control.touched || this.control.dirty);\n }\n return this.isInvalid();\n }\n\n private syncSoon(): void {\n queueMicrotask(() => this.applyInvalidState());\n }\n\n private mount(): void {\n const inputEl = this.host.nativeElement as HTMLInputElement;\n const fmt = this.format();\n\n // Create wrapper (optional ECL classes)\n this.wrapper = this.renderer.createElement('div') as HTMLDivElement;\n if (this.wrapper) {\n this.renderer.addClass(this.wrapper, 'ecl-datepicker');\n this.renderer.addClass(this.wrapper, `ecl-datepicker--${this.eclSize()}`);\n this.parentReady.set(!!this.wrapper);\n }\n // Create duet-date-picker (visible)\n const duet = this.renderer.createElement('duet-date-picker') as any;\n\n const id = inputEl.id || `ecl-duet-${uniqueId()}`;\n if (!inputEl.id) inputEl.id = id;\n this.renderer.setAttribute(duet, 'identifier', id);\n\n // Pass required/disabled state\n duet.disabled = this.isDisabled || inputEl.disabled;\n duet.required = inputEl.required;\n\n this.renderer.setAttribute(duet, 'first-day-of-week', String(this.firstDayOfWeek()));\n\n // min/max\n const { minIso, maxIso } = this.computeMinMax(this.yearRange());\n duet.min = minIso;\n duet.max = maxIso;\n\n duet.dateAdapter = this.dateAdapter() ?? this.makeAdapter(fmt);\n\n duet.localization = buildDuetLocalization(\n (k) => this.translateService.instant(k) as string,\n <T>(k: string) => this.translateService.instant(k) as T,\n this.placeholder(),\n this.localeService.currentLocale,\n );\n\n // Insert Duet after input (or replace input if desired)\n this.renderer.insertBefore(inputEl.parentNode, this.wrapper, inputEl.nextSibling);\n this.renderer.appendChild(this.wrapper, duet);\n\n this.hideButKeep(inputEl);\n\n this.eclRtlService.currentRtlState$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((rtlState) => {\n duet.direction = rtlState ? 'left' : 'right';\n });\n\n // duetChange => update form + input display + emit\n this.unlistenDuetChange = this.renderer.listen(duet, 'duetChange', (e: DuetChangeEvent) => {\n const iso = e.detail?.value ?? '';\n const date = e.detail?.valueAsDate ?? null;\n\n if (!iso || !date) {\n inputEl.value = '';\n this.onChange(null);\n this.syncSoon();\n return;\n }\n\n const adapter = this.dateAdapter() ?? this.makeAdapter(fmt);\n inputEl.value = adapter.format(date);\n this.onChange(date);\n this.syncSoon();\n this.datePicked.emit(new EclDatePickerDatePickedEvent(date));\n });\n\n this.unlistenDuetClose = this.renderer.listen(duet, 'duetClose', () => {\n this.onTouched();\n this.syncSoon();\n });\n this.unlistenDuetBlur = this.renderer.listen(duet, 'duetBlur', () => {\n this.onTouched();\n this.syncSoon();\n });\n\n this.duet = duet;\n\n this.destroyRef.onDestroy(() => {\n this.unlistenDuetChange?.();\n this.unlistenDuetClose?.();\n this.unlistenDuetBlur?.();\n if (this.wrapper?.parentNode) this.wrapper.parentNode.removeChild(this.wrapper);\n });\n }\n\n // ---- helpers ----\n private computeMinMax(rangeYears: number): { minIso: string; maxIso: string } {\n const now = new Date();\n const min = new Date(now);\n const max = new Date(now);\n min.setFullYear(now.getFullYear() - rangeYears);\n max.setFullYear(now.getFullYear() + rangeYears);\n return { minIso: this.toIsoDate(min), maxIso: this.toIsoDate(max) };\n }\n\n private makeAdapter(fmt: string) {\n return {\n parse: (value = '', createDate: (y: number, m: number, d: number) => Date) => {\n const iso = this.tryParseToIso(value, fmt);\n if (!iso) return undefined;\n const [y, m, d] = iso.split('-').map(Number);\n return createDate(y, m, d);\n },\n format: (date: Date) => this.formatDate(date, fmt),\n };\n }\n\n private tryParseToIso(value: string, fmt: string): string | null {\n const val = value.trim();\n if (!val) return null;\n\n switch (fmt) {\n case 'YYYY-MM-DD': {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) return null;\n const [y, m, d] = val.split('-').map(Number);\n return this.isValidYmd(y, m, d) ? val : null;\n }\n\n case 'DD-MM-YYYY': {\n const m = /^(\\d{2})-(\\d{2})-(\\d{4})$/.exec(val);\n if (!m) return null;\n const d = Number(m[1]), mo = Number(m[2]), y = Number(m[3]);\n return this.isValidYmd(y, mo, d)\n ? `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`\n : null;\n }\n\n case 'DD/MM/YYYY': {\n const m = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/.exec(val);\n if (!m) return null;\n const d = Number(m[1]), mo = Number(m[2]), y = Number(m[3]);\n return this.isValidYmd(y, mo, d)\n ? `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`\n : null;\n }\n\n default:\n return null;\n }\n }\n\n private formatDate(date: Date, fmt: string): string {\n const y = date.getFullYear();\n const m = date.getMonth() + 1;\n const d = date.getDate();\n\n switch (fmt) {\n case 'YYYY-MM-DD':\n return `${this.pad(y, 4)}-${this.pad(m)}-${this.pad(d)}`;\n case 'DD/MM/YYYY':\n return `${this.pad(d)}/${this.pad(m)}/${this.pad(y, 4)}`;\n case 'DD-MM-YYYY':\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n default:\n // safe fallback\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n }\n }\n\n private toIsoDate(date: Date): string {\n return `${this.pad(date.getFullYear(), 4)}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())}`;\n }\n\n private isValidYmd(y: number, m: number, d: number): boolean {\n if (y < 1000 || y > 9999) return false;\n if (m < 1 || m > 12) return false;\n if (d < 1 || d > 31) return false;\n const test = new Date(y, m - 1, d);\n return test.getFullYear() === y && test.getMonth() === m - 1 && test.getDate() === d;\n }\n\n private pad(n: number, len = 2): string {\n return String(n).padStart(len, '0');\n }\n\n private hideButKeep(inputEl: HTMLInputElement) {\n // Offscreen but still in DOM (doesn’t interfere with layout)\n this.renderer.setStyle(inputEl, 'position', 'fixed');\n this.renderer.setStyle(inputEl, 'left', '-10000px');\n this.renderer.setStyle(inputEl, 'top', '0');\n this.renderer.setStyle(inputEl, 'width', '1px');\n this.renderer.setStyle(inputEl, 'height', '1px');\n this.renderer.setStyle(inputEl, 'opacity', '0');\n this.renderer.setStyle(inputEl, 'pointerEvents', 'none');\n }\n\n // Convert incoming values to { date, iso, display } for consistency\n private normalizeIncoming(value: unknown, fmt: string): { date: ModelValue; iso: string; display: string } {\n if (value == null) return { date: null, iso: '', display: '' };\n\n // If the model is already a Date (your current app)\n if (value instanceof Date) {\n if (isNaN(value.getTime())) return { date: null, iso: '', display: '' };\n return { date: value, iso: this.toIsoDate(value), display: this.formatDate(value, fmt) };\n }\n\n // If someone passes ISO string or display string (extra compatibility)\n if (typeof value === 'string') {\n const val = value.trim();\n if (!val) return { date: null, iso: '', display: '' };\n\n // ISO string\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) {\n const date = this.isoToDate(val);\n return date\n ? { date, iso: val, display: this.formatDate(date, fmt) }\n : { date: null, iso: '', display: '' };\n }\n\n // Display string -> ISO -> Date\n const iso = this.tryParseToIso(val, fmt);\n if (!iso) return { date: null, iso: '', display: val }; // show typed value but treat as invalid model\n const date = this.isoToDate(iso);\n return date\n ? { date, iso, display: val }\n : { date: null, iso: '', display: '' };\n }\n\n // Anything else: clear\n return { date: null, iso: '', display: '' };\n }\n\n private isoToDate(iso: string): Date | null {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(iso)) return null;\n const [y, m, d] = iso.split('-').map(Number);\n const dt = new Date(y, m - 1, d);\n if (dt.getFullYear() !== y || dt.getMonth() !== m - 1 || dt.getDate() !== d) return null;\n return dt;\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { LocaleService } from '@eui/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { buildDuetLocalization } from './duet-localization';\nimport { EclDuetDateAdapter } from './ecl-date-picker-adapter';\n\ntype ModelValue = Date | null;\n\ntype DuetEl = HTMLElement & {\n value: string; // ISO: YYYY-MM-DD\n disabled: boolean;\n required: boolean;\n dateAdapter: EclDuetDateAdapter;\n};\n\ntype DuetChangeDetail = { value: string; valueAsDate: Date };\ntype DuetChangeEvent = CustomEvent<DuetChangeDetail>;\n\n/**\n * ECL DatePicker directive for Duet Date Picker Web Component.\n *\n * Use this on a <duet-date-picker> element to integrate it with Angular forms\n * (ControlValueAccessor). This is the recommended approach.\n *\n * Example:\n * <duet-date-picker eclDatePicker ...></duet-date-picker>\n *\n * Note: The legacy <input eclDatePicker> directive is deprecated and will be removed\n * in the next major release.\n */\n@Directive({\n selector: 'duet-date-picker[eclDatePicker]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDuetDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EclDatePickerDuetDirective),\n multi: true,\n },\n ],\n})\nexport class EclDatePickerDuetDirective implements ControlValueAccessor, Validator {\n\n eclSize = input<'s' | 'm' | 'l'>('m');\n isInvalid = input(false, { transform: booleanAttribute });\n placeholder = input<string>('DD-MM-YYYY');\n dateAdapter = input<EclDuetDateAdapter | null>(null);\n\n private readonly host = inject(ElementRef<DuetEl>);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translateService = inject(TranslateService);\n private readonly localeService = inject(LocaleService);\n private readonly eclRtlService = inject(EclRtlService);\n\n private onChange: (value: ModelValue) => void = () => { };\n private onTouched: () => void = () => { };\n private isDisabled = false;\n\n private unlistenChange?: () => void;\n private unlistenClose?: () => void;\n private unlistenDuetBlur?: () => void;\n private parent?: HTMLElement | null;\n private parentReady = signal(false);\n\n // keep a stable adapter instance after mount\n private adapter!: EclDuetDateAdapter;\n\n constructor() {\n afterNextRender(() => this.mount());\n\n effect(() => {\n if (!this.parentReady() || !this.parent) return;\n\n if (this.isInvalid()) {\n this.renderer.addClass(this.parent, 'ecl-datepicker--invalid');\n this.renderer.setAttribute(this.parent, 'invalid', '');\n }\n else {\n this.renderer.removeClass(this.parent, 'ecl-datepicker--invalid');\n this.renderer.removeAttribute(this.parent, 'invalid');\n }\n });\n }\n\n // ---- CVA ----\n writeValue(value: ModelValue): void {\n const duet = this.host.nativeElement;\n duet.value = value ? this.toIsoDate(value) : '';\n }\n\n registerOnChange(fn: (value: ModelValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.host.nativeElement.disabled = isDisabled;\n }\n\n // ---- Validator ----\n validate(control: AbstractControl): ValidationErrors | null {\n const duet = this.host.nativeElement;\n\n const required = !!duet.required; // or duet.hasAttribute('required')\n const val = control.value as unknown;\n\n // required\n if (required && (val == null || val === '')) return { required: true };\n if (val == null || val === '') return null;\n\n // normalize to ISO for range checks\n let iso: string | null = null;\n\n if (val instanceof Date) {\n if (isNaN(val.getTime())) return { eclDateInvalid: true };\n iso = this.toIsoDate(val);\n } else if (typeof val === 'string') {\n // accept ISO, or try parse EU input (if someone binds strings)\n iso = this.isIso(val) ? val : this.tryParseEuToIso(val);\n if (!iso) return { eclDateInvalid: true };\n } else {\n return { eclDateInvalid: true };\n }\n\n // min/max from duet (typically ISO)\n const min = duet.getAttribute('min') || (duet as any).min || null;\n const max = duet.getAttribute('max') || (duet as any).max || null;\n\n // ISO \"YYYY-MM-DD\" compares lexicographically correctly\n if (min && iso < min) return { min: { min, actual: iso } };\n if (max && iso > max) return { max: { max, actual: iso } };\n\n return null;\n }\n\n private isIso(v: string): boolean {\n return /^\\d{4}-\\d{2}-\\d{2}$/.test(v);\n }\n\n private mount(): void {\n const duet = this.host.nativeElement;\n\n // 1) Parent wrapper classes (ECL)\n this.parent = duet.parentElement ?? undefined;\n this.parentReady.set(!!this.parent);\n if (this.parent) {\n this.renderer.addClass(this.parent, 'ecl-datepicker');\n this.renderer.addClass(this.parent, `ecl-datepicker--${this.eclSize()}`);\n }\n\n // 2) Adapter: user override or default EU\n this.adapter = this.dateAdapter() ?? this.makeDefaultEuAdapter();\n duet.dateAdapter = this.adapter;\n\n // 3) Localization\n duet.localization = buildDuetLocalization(\n (k) => this.translateService.instant(k) as string,\n <T>(k: string) => this.translateService.instant(k) as T,\n this.placeholder(),\n this.localeService.currentLocale,\n );\n\n // 4) Apply disabled state\n duet.disabled = this.isDisabled;\n\n // 5) CVA from duet events\n this.unlistenChange = this.renderer.listen(duet, 'duetChange', (e: DuetChangeEvent) => {\n const date = e.detail?.valueAsDate;\n if (!(date instanceof Date) || isNaN(date.getTime())) return;\n this.onChange(date);\n });\n\n this.eclRtlService.currentRtlState$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((rtlState) => {\n duet.direction = rtlState ? 'left' : 'right';\n });\n\n this.unlistenClose = this.renderer.listen(duet, 'duetClose', () => {\n this.onTouched();\n });\n this.unlistenDuetBlur = this.renderer.listen(duet, 'duetBlur', () => this.onTouched());\n\n this.destroyRef.onDestroy(() => {\n this.unlistenChange?.();\n this.unlistenClose?.();\n this.unlistenDuetBlur?.();\n });\n }\n\n // ---- Default EU adapter (DD-MM-YYYY) ----\n private makeDefaultEuAdapter(): EclDuetDateAdapter {\n return {\n parse: (value = '', createDate: (y: number, m: number, d: number) => Date) => {\n const iso = this.tryParseEuToIso(value);\n if (!iso) return undefined;\n const [y, m, d] = iso.split('-').map(Number);\n return createDate(y, m, d); // duet expects m 1-12\n },\n format: (date: Date) => this.formatEu(date),\n };\n }\n\n private tryParseEuToIso(value: string): string | null {\n const val = value.trim();\n if (!val) return null;\n\n const m = /^(\\d{2})-(\\d{2})-(\\d{4})$/.exec(val);\n if (!m) return null;\n\n const d = Number(m[1]);\n const mo = Number(m[2]);\n const y = Number(m[3]);\n\n if (!this.isValidYmd(y, mo, d)) return null;\n\n return `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`;\n }\n\n private formatEu(date: Date): string {\n const y = date.getFullYear();\n const m = date.getMonth() + 1;\n const d = date.getDate();\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n }\n\n private toIsoDate(date: Date): string {\n return `${this.pad(date.getFullYear(), 4)}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())}`;\n }\n\n private isValidYmd(y: number, m: number, d: number): boolean {\n if (y < 1000 || y > 9999) return false;\n if (m < 1 || m > 12) return false;\n if (d < 1 || d > 31) return false;\n const test = new Date(y, m - 1, d);\n return test.getFullYear() === y && test.getMonth() === m - 1 && test.getDate() === d;\n }\n\n private pad(n: number, len = 2): string {\n return String(n).padStart(len, '0');\n }\n}","import { EclDatePickerDirective } from './ecl-date-picker.directive';\nimport { EclDatePickerDuetDirective } from './ecl-date-picker-duet.directive';\n\nexport * from './ecl-date-picker.directive';\nexport * from './ecl-date-picker-duet.directive';\nexport * from './events/ecl-date-picker-date-picked.event';\nexport * from './ecl-date-picker-adapter';\n\nexport const EUI_ECL_DATE_PICKER = [\n EclDatePickerDirective,\n EclDatePickerDuetDirective,\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-date-picker.mjs","sources":["../../components/ecl-date-picker/duet-localization.ts","../../components/ecl-date-picker/events/ecl-date-picker-date-picked.event.ts","../../components/ecl-date-picker/ecl-date-picker.directive.ts","../../components/ecl-date-picker/ecl-date-picker-duet.directive.ts","../../components/ecl-date-picker/index.ts","../../components/ecl-date-picker/eui-ecl-components-ecl-date-picker.ts"],"sourcesContent":["export type DuetLocalization = {\n buttonLabel: string;\n selectedDateMessage: string;\n prevMonthLabel: string;\n nextMonthLabel: string;\n monthSelectLabel: string;\n yearSelectLabel: string;\n closeLabel: string;\n calendarHeading: string;\n placeholder: string;\n dayNames: string[];\n monthNames: string[];\n monthNamesShort: string[];\n locale?: string;\n};\n\nexport function buildDuetLocalization(\n translate: (key: string) => string,\n translateObject: <T>(key: string) => T,\n placeholder: string,\n locale: string\n): DuetLocalization {\n return {\n buttonLabel: translate('ecl.date-picker.buttonLabel'),\n selectedDateMessage: translate('ecl.date-picker.selectedDateMessage'),\n prevMonthLabel: translate('ecl.date-picker.prevMonthLabel'),\n nextMonthLabel: translate('ecl.date-picker.nextMonthLabel'),\n monthSelectLabel: translate('ecl.date-picker.monthSelectLabel'),\n yearSelectLabel: translate('ecl.date-picker.yearSelectLabel'),\n closeLabel: translate('ecl.date-picker.closeLabel'),\n calendarHeading: translate('ecl.date-picker.calendarHeading'),\n placeholder,\n\n dayNames: translateObject<string[]>('ecl.date-picker.weekdays'),\n monthNames: translateObject<string[]>('ecl.date-picker.months'),\n monthNamesShort: translateObject<string[]>('ecl.date-picker.monthsShort'),\n locale,\n };\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Custom event emitted by the ECL date picker when a date is selected.\n */\nexport class EclDatePickerDatePickedEvent extends EclBaseEvent {\n\tconstructor(public date: Date) {\n\t\tsuper();\n\t}\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n afterNextRender,\n booleanAttribute,\n effect,\n forwardRef,\n DOCUMENT,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { LocaleService, uniqueId } from '@eui/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { buildDuetLocalization } from './duet-localization';\nimport { EclDuetDateAdapter } from './ecl-date-picker-adapter';\nimport { EclDatePickerDatePickedEvent } from './events/ecl-date-picker-date-picked.event';\n\ntype DuetChangeDetail = { value: string; valueAsDate: Date };\ntype DuetChangeEvent = CustomEvent<DuetChangeDetail>;\n// Value type matches existing usage\ntype ModelValue = Date | null;\n\n/**\n * @deprecated This directive is deprecated. Please use '<duet-date-picker eclDatePicker>' instead.\n * Will be removed in v23.\n */\n@Directive({\n selector: 'input[eclDatePicker]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n },\n ],\n})\nexport class EclDatePickerDirective implements ControlValueAccessor, Validator {\n\n yearRange = input<number>(40);\n format = input<string>('DD-MM-YYYY');\n isInvalid = input(false, { transform: booleanAttribute });\n firstDayOfWeek = input<number>(1);\n eclSize = input<'s' | 'm' | 'l'>('m');\n placeholder = input<string>('DD-MM-YYYY');\n datePicked = output<EclDatePickerDatePickedEvent>();\n dateAdapter = input<EclDuetDateAdapter | null>(null);\n\n private control?: AbstractControl;\n private hasForms = false;\n private readonly host = inject(ElementRef<HTMLInputElement>);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translateService = inject(TranslateService);\n private readonly localeService = inject(LocaleService);\n private readonly eclRtlService = inject(EclRtlService);\n\n private duet?: (HTMLElement & {\n value: string;\n min: string;\n max: string;\n disabled: boolean;\n required: boolean;\n show: () => Promise<void>;\n dateAdapter: any;\n });\n\n private unlistenDuetChange?: () => void;\n\n private onChange: (value: ModelValue) => void = () => { };\n private onTouched: () => void = () => { };\n private unlistenDuetClose?: () => void;\n private unlistenDuetBlur?: () => void;\n private isDisabled = false;\n private wrapper?: HTMLDivElement;\n private parentReady = signal(false);\n\n constructor() {\n console.warn('\"eclDatePicker\" selector is deprecated; use \"duet-date-picker[eclDatePicker]\" instead.');\n afterNextRender(() => this.mount());\n effect(() => {\n // read the signal so the effect reruns on change\n const manualInvalid = this.isInvalid();\n\n if (!this.parentReady()) return;\n // Only apply manual invalid when NOT in forms mode\n if (!this.hasForms) {\n this.applyInvalidToWrapper(manualInvalid);\n }\n });\n }\n\n // ---- ControlValueAccessor ----\n writeValue(value: unknown): void {\n const inputEl = this.host.nativeElement;\n const fmt = this.format();\n\n // Normalize incoming value (Date | string | null -> { date, iso, display })\n const norm = this.normalizeIncoming(value, fmt);\n\n // Update input display (what the user sees)\n inputEl.value = norm.display;\n\n // Update Duet internal value (ISO)\n if (this.duet) {\n this.duet.value = norm.iso;\n }\n this.syncSoon();\n }\n\n registerOnChange(fn: (value: ModelValue) => void): void {\n this.onChange = fn;\n this.hasForms = true;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n this.hasForms = true;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.duet) this.duet.disabled = isDisabled;\n this.host.nativeElement.disabled = isDisabled;\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.control = control;\n\n const required = this.host.nativeElement.required;\n const val = control.value;\n\n if (required && (val == null || val === '')) return { required: true };\n if (val == null || val === '') return null;\n\n if (val instanceof Date) return isNaN(val.getTime()) ? { eclDateInvalid: true } : null;\n\n if (typeof val === 'string') {\n return this.tryParseToIso(val, this.format()) ? null : { eclDateInvalid: true };\n }\n\n return { eclDateInvalid: true };\n }\n\n private applyInvalidState(): void {\n if (!this.wrapper) return;\n\n const invalid = this.computeInvalid();\n\n this.applyInvalidToWrapper(invalid);\n }\n\n private applyInvalidToWrapper(invalid: boolean): void {\n if (!this.wrapper) return;\n\n if (invalid) {\n this.renderer.addClass(this.wrapper, 'ecl-datepicker--invalid');\n this.renderer.setAttribute(this.wrapper, 'invalid', '');\n this.renderer.setAttribute(this.wrapper, 'aria-invalid', 'true');\n } else {\n this.renderer.removeClass(this.wrapper, 'ecl-datepicker--invalid');\n this.renderer.removeAttribute(this.wrapper, 'invalid');\n this.renderer.removeAttribute(this.wrapper, 'aria-invalid');\n }\n }\n\n private computeInvalid(): boolean {\n if (this.hasForms && this.control) {\n return this.control.invalid && (this.control.touched || this.control.dirty);\n }\n return this.isInvalid();\n }\n\n private syncSoon(): void {\n queueMicrotask(() => this.applyInvalidState());\n }\n\n private mount(): void {\n const inputEl = this.host.nativeElement as HTMLInputElement;\n const fmt = this.format();\n\n // Create wrapper (optional ECL classes)\n this.wrapper = this.renderer.createElement('div') as HTMLDivElement;\n if (this.wrapper) {\n this.renderer.addClass(this.wrapper, 'ecl-datepicker');\n this.renderer.addClass(this.wrapper, `ecl-datepicker--${this.eclSize()}`);\n this.parentReady.set(!!this.wrapper);\n }\n // Create duet-date-picker (visible)\n const duet = this.renderer.createElement('duet-date-picker') as any;\n\n const id = inputEl.id || `ecl-duet-${uniqueId()}`;\n if (!inputEl.id) inputEl.id = id;\n this.renderer.setAttribute(duet, 'identifier', id);\n\n // Pass required/disabled state\n duet.disabled = this.isDisabled || inputEl.disabled;\n duet.required = inputEl.required;\n\n this.renderer.setAttribute(duet, 'first-day-of-week', String(this.firstDayOfWeek()));\n\n // min/max\n const { minIso, maxIso } = this.computeMinMax(this.yearRange());\n duet.min = minIso;\n duet.max = maxIso;\n\n duet.dateAdapter = this.dateAdapter() ?? this.makeAdapter(fmt);\n\n duet.localization = buildDuetLocalization(\n (k) => this.translateService.instant(k) as string,\n <T>(k: string) => this.translateService.instant(k) as T,\n this.placeholder(),\n this.localeService.currentLocale,\n );\n\n // Insert Duet after input (or replace input if desired)\n this.renderer.insertBefore(inputEl.parentNode, this.wrapper, inputEl.nextSibling);\n this.renderer.appendChild(this.wrapper, duet);\n\n this.hideButKeep(inputEl);\n\n this.eclRtlService.currentRtlState$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((rtlState) => {\n duet.direction = rtlState ? 'left' : 'right';\n });\n\n // duetChange => update form + input display + emit\n this.unlistenDuetChange = this.renderer.listen(duet, 'duetChange', (e: DuetChangeEvent) => {\n const iso = e.detail?.value ?? '';\n const date = e.detail?.valueAsDate ?? null;\n\n if (!iso || !date) {\n inputEl.value = '';\n this.onChange(null);\n this.syncSoon();\n return;\n }\n\n const adapter = this.dateAdapter() ?? this.makeAdapter(fmt);\n inputEl.value = adapter.format(date);\n this.onChange(date);\n this.syncSoon();\n this.datePicked.emit(new EclDatePickerDatePickedEvent(date));\n });\n\n this.unlistenDuetClose = this.renderer.listen(duet, 'duetClose', () => {\n this.onTouched();\n this.syncSoon();\n });\n this.unlistenDuetBlur = this.renderer.listen(duet, 'duetBlur', () => {\n this.onTouched();\n this.syncSoon();\n });\n\n this.duet = duet;\n\n this.destroyRef.onDestroy(() => {\n this.unlistenDuetChange?.();\n this.unlistenDuetClose?.();\n this.unlistenDuetBlur?.();\n if (this.wrapper?.parentNode) this.wrapper.parentNode.removeChild(this.wrapper);\n });\n }\n\n // ---- helpers ----\n private computeMinMax(rangeYears: number): { minIso: string; maxIso: string } {\n const now = new Date();\n const min = new Date(now);\n const max = new Date(now);\n min.setFullYear(now.getFullYear() - rangeYears);\n max.setFullYear(now.getFullYear() + rangeYears);\n return { minIso: this.toIsoDate(min), maxIso: this.toIsoDate(max) };\n }\n\n private makeAdapter(fmt: string) {\n return {\n parse: (value = '', createDate: (y: number, m: number, d: number) => Date) => {\n const iso = this.tryParseToIso(value, fmt);\n if (!iso) return undefined;\n const [y, m, d] = iso.split('-').map(Number);\n return createDate(y, m, d);\n },\n format: (date: Date) => this.formatDate(date, fmt),\n };\n }\n\n private tryParseToIso(value: string, fmt: string): string | null {\n const val = value.trim();\n if (!val) return null;\n\n switch (fmt) {\n case 'YYYY-MM-DD': {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) return null;\n const [y, m, d] = val.split('-').map(Number);\n return this.isValidYmd(y, m, d) ? val : null;\n }\n\n case 'DD-MM-YYYY': {\n const m = /^(\\d{2})-(\\d{2})-(\\d{4})$/.exec(val);\n if (!m) return null;\n const d = Number(m[1]), mo = Number(m[2]), y = Number(m[3]);\n return this.isValidYmd(y, mo, d)\n ? `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`\n : null;\n }\n\n case 'DD/MM/YYYY': {\n const m = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/.exec(val);\n if (!m) return null;\n const d = Number(m[1]), mo = Number(m[2]), y = Number(m[3]);\n return this.isValidYmd(y, mo, d)\n ? `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`\n : null;\n }\n\n default:\n return null;\n }\n }\n\n private formatDate(date: Date, fmt: string): string {\n const y = date.getFullYear();\n const m = date.getMonth() + 1;\n const d = date.getDate();\n\n switch (fmt) {\n case 'YYYY-MM-DD':\n return `${this.pad(y, 4)}-${this.pad(m)}-${this.pad(d)}`;\n case 'DD/MM/YYYY':\n return `${this.pad(d)}/${this.pad(m)}/${this.pad(y, 4)}`;\n case 'DD-MM-YYYY':\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n default:\n // safe fallback\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n }\n }\n\n private toIsoDate(date: Date): string {\n return `${this.pad(date.getFullYear(), 4)}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())}`;\n }\n\n private isValidYmd(y: number, m: number, d: number): boolean {\n if (y < 1000 || y > 9999) return false;\n if (m < 1 || m > 12) return false;\n if (d < 1 || d > 31) return false;\n const test = new Date(y, m - 1, d);\n return test.getFullYear() === y && test.getMonth() === m - 1 && test.getDate() === d;\n }\n\n private pad(n: number, len = 2): string {\n return String(n).padStart(len, '0');\n }\n\n private hideButKeep(inputEl: HTMLInputElement) {\n // Offscreen but still in DOM (doesn’t interfere with layout)\n this.renderer.setStyle(inputEl, 'position', 'fixed');\n this.renderer.setStyle(inputEl, 'left', '-10000px');\n this.renderer.setStyle(inputEl, 'top', '0');\n this.renderer.setStyle(inputEl, 'width', '1px');\n this.renderer.setStyle(inputEl, 'height', '1px');\n this.renderer.setStyle(inputEl, 'opacity', '0');\n this.renderer.setStyle(inputEl, 'pointerEvents', 'none');\n }\n\n // Convert incoming values to { date, iso, display } for consistency\n private normalizeIncoming(value: unknown, fmt: string): { date: ModelValue; iso: string; display: string } {\n if (value == null) return { date: null, iso: '', display: '' };\n\n // If the model is already a Date (your current app)\n if (value instanceof Date) {\n if (isNaN(value.getTime())) return { date: null, iso: '', display: '' };\n return { date: value, iso: this.toIsoDate(value), display: this.formatDate(value, fmt) };\n }\n\n // If someone passes ISO string or display string (extra compatibility)\n if (typeof value === 'string') {\n const val = value.trim();\n if (!val) return { date: null, iso: '', display: '' };\n\n // ISO string\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(val)) {\n const date = this.isoToDate(val);\n return date\n ? { date, iso: val, display: this.formatDate(date, fmt) }\n : { date: null, iso: '', display: '' };\n }\n\n // Display string -> ISO -> Date\n const iso = this.tryParseToIso(val, fmt);\n if (!iso) return { date: null, iso: '', display: val }; // show typed value but treat as invalid model\n const date = this.isoToDate(iso);\n return date\n ? { date, iso, display: val }\n : { date: null, iso: '', display: '' };\n }\n\n // Anything else: clear\n return { date: null, iso: '', display: '' };\n }\n\n private isoToDate(iso: string): Date | null {\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(iso)) return null;\n const [y, m, d] = iso.split('-').map(Number);\n const dt = new Date(y, m - 1, d);\n if (dt.getFullYear() !== y || dt.getMonth() !== m - 1 || dt.getDate() !== d) return null;\n return dt;\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { LocaleService } from '@eui/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { buildDuetLocalization } from './duet-localization';\nimport { EclDuetDateAdapter } from './ecl-date-picker-adapter';\n\ntype ModelValue = Date | null;\n\ntype DuetEl = HTMLElement & {\n value: string; // ISO: YYYY-MM-DD\n disabled: boolean;\n required: boolean;\n dateAdapter: EclDuetDateAdapter;\n};\n\ntype DuetChangeDetail = { value: string; valueAsDate: Date };\ntype DuetChangeEvent = CustomEvent<DuetChangeDetail>;\n\n/**\n * ECL DatePicker directive for Duet Date Picker Web Component.\n *\n * Use this on a <duet-date-picker> element to integrate it with Angular forms\n * (ControlValueAccessor). This is the recommended approach.\n *\n * Example:\n * <duet-date-picker eclDatePicker ...></duet-date-picker>\n *\n * Note: The legacy <input eclDatePicker> directive is deprecated and will be removed\n * in the next major release.\n */\n@Directive({\n selector: 'duet-date-picker[eclDatePicker]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDuetDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EclDatePickerDuetDirective),\n multi: true,\n },\n ],\n})\nexport class EclDatePickerDuetDirective implements ControlValueAccessor, Validator {\n\n eclSize = input<'s' | 'm' | 'l'>('m');\n isInvalid = input(false, { transform: booleanAttribute });\n placeholder = input<string>('DD-MM-YYYY');\n dateAdapter = input<EclDuetDateAdapter | null>(null);\n\n private readonly host = inject(ElementRef<DuetEl>);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly translateService = inject(TranslateService);\n private readonly localeService = inject(LocaleService);\n private readonly eclRtlService = inject(EclRtlService);\n\n private onChange: (value: ModelValue) => void = () => { };\n private onTouched: () => void = () => { };\n private isDisabled = false;\n\n private unlistenChange?: () => void;\n private unlistenClose?: () => void;\n private unlistenDuetBlur?: () => void;\n private parent?: HTMLElement | null;\n private parentReady = signal(false);\n\n // keep a stable adapter instance after mount\n private adapter!: EclDuetDateAdapter;\n\n constructor() {\n afterNextRender(() => this.mount());\n\n effect(() => {\n if (!this.parentReady() || !this.parent) return;\n\n if (this.isInvalid()) {\n this.renderer.addClass(this.parent, 'ecl-datepicker--invalid');\n this.renderer.setAttribute(this.parent, 'invalid', '');\n }\n else {\n this.renderer.removeClass(this.parent, 'ecl-datepicker--invalid');\n this.renderer.removeAttribute(this.parent, 'invalid');\n }\n });\n }\n\n // ---- CVA ----\n writeValue(value: ModelValue): void {\n const duet = this.host.nativeElement;\n duet.value = value ? this.toIsoDate(value) : '';\n }\n\n registerOnChange(fn: (value: ModelValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.host.nativeElement.disabled = isDisabled;\n }\n\n // ---- Validator ----\n validate(control: AbstractControl): ValidationErrors | null {\n const duet = this.host.nativeElement;\n\n const required = !!duet.required; // or duet.hasAttribute('required')\n const val = control.value as unknown;\n\n // required\n if (required && (val == null || val === '')) return { required: true };\n if (val == null || val === '') return null;\n\n // normalize to ISO for range checks\n let iso: string | null = null;\n\n if (val instanceof Date) {\n if (isNaN(val.getTime())) return { eclDateInvalid: true };\n iso = this.toIsoDate(val);\n } else if (typeof val === 'string') {\n // accept ISO, or try parse EU input (if someone binds strings)\n iso = this.isIso(val) ? val : this.tryParseEuToIso(val);\n if (!iso) return { eclDateInvalid: true };\n } else {\n return { eclDateInvalid: true };\n }\n\n // min/max from duet (typically ISO)\n const min = duet.getAttribute('min') || (duet as any).min || null;\n const max = duet.getAttribute('max') || (duet as any).max || null;\n\n // ISO \"YYYY-MM-DD\" compares lexicographically correctly\n if (min && iso < min) return { min: { min, actual: iso } };\n if (max && iso > max) return { max: { max, actual: iso } };\n\n return null;\n }\n\n private isIso(v: string): boolean {\n return /^\\d{4}-\\d{2}-\\d{2}$/.test(v);\n }\n\n private mount(): void {\n const duet = this.host.nativeElement;\n\n // 1) Parent wrapper classes (ECL)\n this.parent = duet.parentElement ?? undefined;\n this.parentReady.set(!!this.parent);\n if (this.parent) {\n this.renderer.addClass(this.parent, 'ecl-datepicker');\n this.renderer.addClass(this.parent, `ecl-datepicker--${this.eclSize()}`);\n }\n\n // 2) Adapter: user override or default EU\n this.adapter = this.dateAdapter() ?? this.makeDefaultEuAdapter();\n duet.dateAdapter = this.adapter;\n\n // 3) Localization\n duet.localization = buildDuetLocalization(\n (k) => this.translateService.instant(k) as string,\n <T>(k: string) => this.translateService.instant(k) as T,\n this.placeholder(),\n this.localeService.currentLocale,\n );\n\n // 4) Apply disabled state\n duet.disabled = this.isDisabled;\n\n // 5) CVA from duet events\n this.unlistenChange = this.renderer.listen(duet, 'duetChange', (e: DuetChangeEvent) => {\n const date = e.detail?.valueAsDate;\n if (!(date instanceof Date) || isNaN(date.getTime())) return;\n this.onChange(date);\n });\n\n this.eclRtlService.currentRtlState$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((rtlState) => {\n duet.direction = rtlState ? 'left' : 'right';\n });\n\n this.unlistenClose = this.renderer.listen(duet, 'duetClose', () => {\n this.onTouched();\n });\n this.unlistenDuetBlur = this.renderer.listen(duet, 'duetBlur', () => this.onTouched());\n\n this.destroyRef.onDestroy(() => {\n this.unlistenChange?.();\n this.unlistenClose?.();\n this.unlistenDuetBlur?.();\n });\n }\n\n // ---- Default EU adapter (DD-MM-YYYY) ----\n private makeDefaultEuAdapter(): EclDuetDateAdapter {\n return {\n parse: (value = '', createDate: (y: number, m: number, d: number) => Date) => {\n const iso = this.tryParseEuToIso(value);\n if (!iso) return undefined;\n const [y, m, d] = iso.split('-').map(Number);\n return createDate(y, m, d); // duet expects m 1-12\n },\n format: (date: Date) => this.formatEu(date),\n };\n }\n\n private tryParseEuToIso(value: string): string | null {\n const val = value.trim();\n if (!val) return null;\n\n const m = /^(\\d{2})-(\\d{2})-(\\d{4})$/.exec(val);\n if (!m) return null;\n\n const d = Number(m[1]);\n const mo = Number(m[2]);\n const y = Number(m[3]);\n\n if (!this.isValidYmd(y, mo, d)) return null;\n\n return `${this.pad(y, 4)}-${this.pad(mo)}-${this.pad(d)}`;\n }\n\n private formatEu(date: Date): string {\n const y = date.getFullYear();\n const m = date.getMonth() + 1;\n const d = date.getDate();\n return `${this.pad(d)}-${this.pad(m)}-${this.pad(y, 4)}`;\n }\n\n private toIsoDate(date: Date): string {\n return `${this.pad(date.getFullYear(), 4)}-${this.pad(date.getMonth() + 1)}-${this.pad(date.getDate())}`;\n }\n\n private isValidYmd(y: number, m: number, d: number): boolean {\n if (y < 1000 || y > 9999) return false;\n if (m < 1 || m > 12) return false;\n if (d < 1 || d > 31) return false;\n const test = new Date(y, m - 1, d);\n return test.getFullYear() === y && test.getMonth() === m - 1 && test.getDate() === d;\n }\n\n private pad(n: number, len = 2): string {\n return String(n).padStart(len, '0');\n }\n}","import { EclDatePickerDirective } from './ecl-date-picker.directive';\nimport { EclDatePickerDuetDirective } from './ecl-date-picker-duet.directive';\n\nexport * from './ecl-date-picker.directive';\nexport * from './ecl-date-picker-duet.directive';\nexport * from './events/ecl-date-picker-date-picked.event';\nexport * from './ecl-date-picker-adapter';\n\nexport const EUI_ECL_DATE_PICKER = [\n EclDatePickerDirective,\n EclDatePickerDuetDirective,\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 { input, ContentChildren, Component, Directive, contentChildren, ElementRef, contentChild, computed, booleanAttribute, inject, Renderer2, effect, ContentChild } from '@angular/core';
2
+ import { input, contentChildren, Component, Directive, ElementRef, contentChild, computed, booleanAttribute, inject, Renderer2, effect } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclIconComponent } from '@eui/ecl/components/ecl-icon';
5
5
  import { EclLinkDirective } from '@eui/ecl/components/ecl-link';
@@ -15,6 +15,12 @@ class EclFactFiguresItemComponent extends ECLBaseDirective {
15
15
  ...(ngDevMode ? [undefined, { debugName: "eclValue" }] : /* istanbul ignore next */ []));
16
16
  this.eclTitle = input(/* @ts-ignore */
17
17
  ...(ngDevMode ? [undefined, { debugName: "eclTitle" }] : /* istanbul ignore next */ []));
18
+ /**
19
+ * Query for any EclIconComponent children projected into the component.
20
+ * These icons will receive an additional CSS class.
21
+ */
22
+ this.eclIconComponents = contentChildren(EclIconComponent, /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "eclIconComponents" }] : /* istanbul ignore next */ []));
18
24
  }
19
25
  /**
20
26
  * Applies the base class `ecl-fact-figures__item` to the host element.
@@ -27,24 +33,21 @@ class EclFactFiguresItemComponent extends ECLBaseDirective {
27
33
  * found within the projected content.
28
34
  */
29
35
  ngAfterContentInit() {
30
- if (this.eclIconComponents) {
31
- this.eclIconComponents.forEach((eclIcon) => {
36
+ if (this.eclIconComponents()) {
37
+ this.eclIconComponents().forEach((eclIcon) => {
32
38
  eclIcon.baseDirective.class = [eclIcon.baseDirective.class, 'ecl-fact-figures__icon'].join(' ');
33
39
  });
34
40
  }
35
41
  }
36
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFactFiguresItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclFactFiguresItemComponent, isStandalone: true, selector: "div[eclFactFiguresItem],ecl-fact-figures-item", inputs: { eclValue: { classPropertyName: "eclValue", publicName: "eclValue", isSignal: true, isRequired: false, transformFunction: null }, eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclIconComponents", predicate: EclIconComponent }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ecl-icon\"></ng-content>\n<div class=\"ecl-fact-figures__value\">{{ eclValue() }} <span class=\"ecl-fact-figures__title\">{{ eclTitle() }}</span></div>\n<ng-content select=\"ecl-icon\"></ng-content>\n<ng-content select=\"[eclFactFiguresDescription]\"></ng-content>" }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclFactFiguresItemComponent, isStandalone: true, selector: "div[eclFactFiguresItem],ecl-fact-figures-item", inputs: { eclValue: { classPropertyName: "eclValue", publicName: "eclValue", isSignal: true, isRequired: false, transformFunction: null }, eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclIconComponents", predicate: EclIconComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ecl-icon\"></ng-content>\n<div class=\"ecl-fact-figures__value\">{{ eclValue() }} <span class=\"ecl-fact-figures__title\">{{ eclTitle() }}</span></div>\n<ng-content select=\"ecl-icon\"></ng-content>\n<ng-content select=\"[eclFactFiguresDescription]\"></ng-content>" }); }
38
44
  }
39
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFactFiguresItemComponent, decorators: [{
40
46
  type: Component,
41
47
  args: [{ selector: 'div[eclFactFiguresItem],ecl-fact-figures-item', host: {
42
48
  '[class]': 'cssClasses',
43
49
  }, template: "<ng-content select=\"ecl-icon\"></ng-content>\n<div class=\"ecl-fact-figures__value\">{{ eclValue() }} <span class=\"ecl-fact-figures__title\">{{ eclTitle() }}</span></div>\n<ng-content select=\"ecl-icon\"></ng-content>\n<ng-content select=\"[eclFactFiguresDescription]\"></ng-content>" }]
44
- }], propDecorators: { eclValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclValue", required: false }] }], eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclIconComponents: [{
45
- type: ContentChildren,
46
- args: [EclIconComponent]
47
- }] } });
50
+ }], propDecorators: { eclValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclValue", required: false }] }], eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclIconComponents: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclIconComponent), { isSignal: true }] }] } });
48
51
 
49
52
  /**
50
53
  * Wraps the list of source links in the Fact & Figures component.
@@ -199,6 +202,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
199
202
  * Used to display a link that allows users to view additional content.
200
203
  */
201
204
  class EclFactFiguresViewAllComponent extends ECLBaseDirective {
205
+ constructor() {
206
+ super(...arguments);
207
+ /**
208
+ * Reference to the projected link directive inside the component.
209
+ * Automatically decorated with a specific class upon initialization.
210
+ */
211
+ this.eclLink = contentChild(EclLinkDirective, /* @ts-ignore */
212
+ ...(ngDevMode ? [{ debugName: "eclLink" }] : /* istanbul ignore next */ []));
213
+ }
202
214
  /**
203
215
  * Applies the base class `ecl-fact-figures__view-all` to the host element.
204
216
  */
@@ -210,22 +222,20 @@ class EclFactFiguresViewAllComponent extends ECLBaseDirective {
210
222
  * This ensures consistent styling within the view-all section.
211
223
  */
212
224
  ngAfterContentInit() {
213
- if (this.eclLink) {
214
- this.eclLink.class = [this.eclLink.class, 'ecl-fact-figures__view-all-link'].join(' ');
225
+ const eclLink = this.eclLink();
226
+ if (eclLink) {
227
+ eclLink.class = [eclLink.class, 'ecl-fact-figures__view-all-link'].join(' ');
215
228
  }
216
229
  }
217
230
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFactFiguresViewAllComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: EclFactFiguresViewAllComponent, isStandalone: true, selector: "ecl-fact-figures-view-all", host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclFactFiguresViewAllComponent, isStandalone: true, selector: "ecl-fact-figures-view-all", host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
219
232
  }
220
233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFactFiguresViewAllComponent, decorators: [{
221
234
  type: Component,
222
235
  args: [{ selector: 'ecl-fact-figures-view-all', host: {
223
236
  '[class]': 'cssClasses',
224
237
  }, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
225
- }], propDecorators: { eclLink: [{
226
- type: ContentChild,
227
- args: [EclLinkDirective]
228
- }] } });
238
+ }], propDecorators: { eclLink: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclLinkDirective), { isSignal: true }] }] } });
229
239
 
230
240
  /**
231
241
  * Directive, representing the description text of a fact or figures section.
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-fact-figures.mjs","sources":["../../components/ecl-fact-figures/ecl-fact-figures-item.component.ts","../../components/ecl-fact-figures/ecl-fact-figures-item.component.html","../../components/ecl-fact-figures/ecl-fact-figures-sources.directive.ts","../../components/ecl-fact-figures/ecl-fact-figures.component.ts","../../components/ecl-fact-figures/ecl-fact-figures.component.html","../../components/ecl-fact-figures/ecl-fact-figures-view-all.component.ts","../../components/ecl-fact-figures/ecl-fact-figures-view-all.component.html","../../components/ecl-fact-figures/ecl-fact-figures-description.directive.ts","../../components/ecl-fact-figures/index.ts","../../components/ecl-fact-figures/eui-ecl-components-ecl-fact-figures.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChildren, input, QueryList } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing a single item within the Fact & Figures block.\n * Optionally handles embedded icons and applies appropriate styling.\n */\n@Component({\n selector: 'div[eclFactFiguresItem],ecl-fact-figures-item',\n templateUrl: './ecl-fact-figures-item.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n eclValue = input<string>();\n\n eclTitle = input<string>();\n\n /**\n * Applies the base class `ecl-fact-figures__item` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__item')].join(' ').trim();\n }\n\n /**\n * Query for any EclIconComponent children projected into the component.\n * These icons will receive an additional CSS class.\n */\n @ContentChildren(EclIconComponent) eclIconComponents: QueryList<EclIconComponent>;\n\n /**\n * Lifecycle hook that adds a CSS class to any EclIconComponent\n * found within the projected content.\n */\n ngAfterContentInit(): void {\n if (this.eclIconComponents) {\n this.eclIconComponents.forEach((eclIcon) => {\n eclIcon.baseDirective.class = [eclIcon.baseDirective.class, 'ecl-fact-figures__icon'].join(' ');\n });\n }\n }\n}\n","<ng-content select=\"ecl-icon\"></ng-content>\n<div class=\"ecl-fact-figures__value\">{{ eclValue() }} <span class=\"ecl-fact-figures__title\">{{ eclTitle() }}</span></div>\n<ng-content select=\"ecl-icon\"></ng-content>\n<ng-content select=\"[eclFactFiguresDescription]\"></ng-content>","import { Directive } from '@angular/core';\n\n/**\n * Wraps the list of source links in the Fact & Figures component.\n * Applies the `ecl-fact-figures__sources-list` class.\n *\n * @example\n * ```html\n * <ul eclFactFiguresSourcesList>\n * <li eclFactFiguresSourcesItem>...</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: 'ul[eclFactFiguresSourcesList]',\n host: {\n class: 'ecl-fact-figures__sources-list',\n },\n})\nexport class EclFactFiguresSourcesListDirective {}\n\n/**\n * Marks a list item as a source entry within the Fact & Figures component.\n * Applies the `ecl-fact-figures__sources-item` class.\n *\n * @example\n * ```html\n * <li eclFactFiguresSourcesItem>\n * <a eclLink eclFactFiguresSource href=\"/example\">Eurostat</a>\n * </li>\n * ```\n */\n@Directive({\n selector: 'li[eclFactFiguresSourcesItem]',\n host: {\n class: 'ecl-fact-figures__sources-item',\n },\n})\nexport class EclFactFiguresSourcesItemDirective {}\n\n/**\n * Marks a link as a source reference within the Fact & Figures component.\n * Applies the `ecl-link` and `ecl-fact-figures__source` styling classes.\n *\n * @example\n * ```html\n * <a eclLink eclFactFiguresSource href=\"/example\">Eurostat</a>\n * ```\n */\n@Directive({\n selector: 'a[eclFactFiguresSource]',\n host: {\n class: 'ecl-link ecl-fact-figures__source',\n },\n})\nexport class EclFactFiguresSourceDirective {}\n","import {\n Component,\n ElementRef,\n Renderer2,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFactFiguresItemComponent } from './ecl-fact-figures-item.component';\nimport { EclFactFiguresSourcesListDirective } from './ecl-fact-figures-sources.directive';\n\n/**\n * Main component for displaying a collection of fact and figure items\n * in a responsive, styled grid layout.\n */\n@Component({\n selector: 'div[eclFactFigures], ecl-fact-figures',\n templateUrl: './ecl-fact-figures.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses',\n '[class.ecl-fact-figures--centered]': 'isCentered()',\n },\n})\nexport class EclFactFiguresComponent extends ECLBaseDirective {\n\n items = contentChildren(EclFactFiguresItemComponent, { read: ElementRef<HTMLElement> });\n\n sourcesList = contentChild(EclFactFiguresSourcesListDirective);\n\n hasSourcesList = computed(() => !!this.sourcesList());\n\n /**\n * Number of columns in the layout (as string).\n * Default is `'3'`.\n */\n columns = input('3');\n\n /**\n * Font size variant. Can be:\n * - `'m'` – medium (smaller text)\n * - `'l'` – large (default)\n */\n fontSize = input<'m' | 'l'>('l');\n\n /**\n * Whether the content should be centered.\n * Adds `ecl-fact-figures--centered` class when true.\n */\n isCentered = input(false, { transform: booleanAttribute });\n\n /**\n * Label displayed before the sources list.\n * Default is `'Sources:'`.\n */\n sourcesLabel = input<string>('Sources:');\n\n /**\n * Sets the CSS classes for the component, including layout and font size modifiers.\n * Automatically adds:\n * - `ecl-fact-figures--col-{n}` depending on the `columns` value\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures'),\n `ecl-fact-figures--col-${this.columns()}`].join(' ').trim();\n }\n\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n effect(() => {\n const els = this.items();\n const size = this.fontSize();\n\n // clear + set first\n els.forEach(el =>\n this.renderer.removeClass(el.nativeElement, 'is-first')\n );\n if (els.length) {\n this.renderer.addClass(els[0].nativeElement, 'is-first');\n }\n\n // font-size class\n const cls = 'ecl-fact-figures__item--font-m';\n els.forEach(el => {\n if (size === 'm') {\n this.renderer.addClass(el.nativeElement, cls);\n } else {\n this.renderer.removeClass(el.nativeElement, cls);\n }\n });\n });\n }\n}\n","<div class=\"ecl-fact-figures__items\">\n <ng-content></ng-content>\n</div>\n\n@if (hasSourcesList()) {\n <div class=\"ecl-fact-figures__sources\">\n <span class=\"ecl-fact-figures__sources-label\">{{ sourcesLabel() }}</span>\n <ng-content select=\"[eclFactFiguresSourcesList]\"></ng-content>\n </div>\n}\n<ng-content select=\"ecl-fact-figures-view-all\"></ng-content>","import { AfterContentInit, Component, ContentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\n/**\n * Component representing the \"View all\" section in a Fact & Figures block.\n * Used to display a link that allows users to view additional content.\n */\n@Component({\n selector: 'ecl-fact-figures-view-all',\n templateUrl: './ecl-fact-figures-view-all.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresViewAllComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Applies the base class `ecl-fact-figures__view-all` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__view-all')].join(' ').trim();\n }\n\n /**\n * Reference to the projected link directive inside the component.\n * Automatically decorated with a specific class upon initialization.\n */\n @ContentChild(EclLinkDirective) eclLink: EclLinkDirective;\n\n /**\n * Adds the `ecl-fact-figures__view-all-link` class to the projected link.\n * This ensures consistent styling within the view-all section.\n */\n ngAfterContentInit(): void {\n if (this.eclLink) {\n this.eclLink.class = [this.eclLink.class, 'ecl-fact-figures__view-all-link'].join(' ');\n }\n }\n}\n","<ng-content></ng-content>\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive, representing the description text of a fact or figures section.\n * Typically used to provide contextual or supporting information.\n */\n@Directive({\n selector: 'div[eclFactFiguresDescription]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresDescriptionDirective extends ECLBaseDirective {\n /**\n * Applies the base class `ecl-fact-figures__description` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__description')].join(' ').trim();\n }\n}\n","import { EclFactFiguresComponent } from './ecl-fact-figures.component';\nimport { EclFactFiguresItemComponent } from './ecl-fact-figures-item.component';\nimport { EclFactFiguresViewAllComponent } from './ecl-fact-figures-view-all.component';\nimport { EclFactFiguresDescriptionDirective } from './ecl-fact-figures-description.directive';\nimport { EclFactFiguresSourcesListDirective, EclFactFiguresSourcesItemDirective, EclFactFiguresSourceDirective } from './ecl-fact-figures-sources.directive';\n\nexport * from './ecl-fact-figures.component';\nexport * from './ecl-fact-figures-description.directive';\nexport * from './ecl-fact-figures-item.component';\nexport * from './ecl-fact-figures-view-all.component';\nexport * from './ecl-fact-figures-sources.directive';\n\nexport const EUI_ECL_FACT_FIGURES = [\n EclFactFiguresComponent,\n EclFactFiguresItemComponent,\n EclFactFiguresViewAllComponent,\n EclFactFiguresDescriptionDirective,\n EclFactFiguresSourcesListDirective,\n EclFactFiguresSourcesItemDirective,\n EclFactFiguresSourceDirective,\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-fact-figures.mjs","sources":["../../components/ecl-fact-figures/ecl-fact-figures-item.component.ts","../../components/ecl-fact-figures/ecl-fact-figures-item.component.html","../../components/ecl-fact-figures/ecl-fact-figures-sources.directive.ts","../../components/ecl-fact-figures/ecl-fact-figures.component.ts","../../components/ecl-fact-figures/ecl-fact-figures.component.html","../../components/ecl-fact-figures/ecl-fact-figures-view-all.component.ts","../../components/ecl-fact-figures/ecl-fact-figures-view-all.component.html","../../components/ecl-fact-figures/ecl-fact-figures-description.directive.ts","../../components/ecl-fact-figures/index.ts","../../components/ecl-fact-figures/eui-ecl-components-ecl-fact-figures.ts"],"sourcesContent":["import { AfterContentInit, Component, contentChildren, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component representing a single item within the Fact & Figures block.\n * Optionally handles embedded icons and applies appropriate styling.\n */\n@Component({\n selector: 'div[eclFactFiguresItem],ecl-fact-figures-item',\n templateUrl: './ecl-fact-figures-item.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n eclValue = input<string>();\n\n eclTitle = input<string>();\n\n /**\n * Applies the base class `ecl-fact-figures__item` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__item')].join(' ').trim();\n }\n\n /**\n * Query for any EclIconComponent children projected into the component.\n * These icons will receive an additional CSS class.\n */\n readonly eclIconComponents = contentChildren(EclIconComponent);\n\n /**\n * Lifecycle hook that adds a CSS class to any EclIconComponent\n * found within the projected content.\n */\n ngAfterContentInit(): void {\n if (this.eclIconComponents()) {\n this.eclIconComponents().forEach((eclIcon) => {\n eclIcon.baseDirective.class = [eclIcon.baseDirective.class, 'ecl-fact-figures__icon'].join(' ');\n });\n }\n}\n}\n","<ng-content select=\"ecl-icon\"></ng-content>\n<div class=\"ecl-fact-figures__value\">{{ eclValue() }} <span class=\"ecl-fact-figures__title\">{{ eclTitle() }}</span></div>\n<ng-content select=\"ecl-icon\"></ng-content>\n<ng-content select=\"[eclFactFiguresDescription]\"></ng-content>","import { Directive } from '@angular/core';\n\n/**\n * Wraps the list of source links in the Fact & Figures component.\n * Applies the `ecl-fact-figures__sources-list` class.\n *\n * @example\n * ```html\n * <ul eclFactFiguresSourcesList>\n * <li eclFactFiguresSourcesItem>...</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: 'ul[eclFactFiguresSourcesList]',\n host: {\n class: 'ecl-fact-figures__sources-list',\n },\n})\nexport class EclFactFiguresSourcesListDirective {}\n\n/**\n * Marks a list item as a source entry within the Fact & Figures component.\n * Applies the `ecl-fact-figures__sources-item` class.\n *\n * @example\n * ```html\n * <li eclFactFiguresSourcesItem>\n * <a eclLink eclFactFiguresSource href=\"/example\">Eurostat</a>\n * </li>\n * ```\n */\n@Directive({\n selector: 'li[eclFactFiguresSourcesItem]',\n host: {\n class: 'ecl-fact-figures__sources-item',\n },\n})\nexport class EclFactFiguresSourcesItemDirective {}\n\n/**\n * Marks a link as a source reference within the Fact & Figures component.\n * Applies the `ecl-link` and `ecl-fact-figures__source` styling classes.\n *\n * @example\n * ```html\n * <a eclLink eclFactFiguresSource href=\"/example\">Eurostat</a>\n * ```\n */\n@Directive({\n selector: 'a[eclFactFiguresSource]',\n host: {\n class: 'ecl-link ecl-fact-figures__source',\n },\n})\nexport class EclFactFiguresSourceDirective {}\n","import {\n Component,\n ElementRef,\n Renderer2,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFactFiguresItemComponent } from './ecl-fact-figures-item.component';\nimport { EclFactFiguresSourcesListDirective } from './ecl-fact-figures-sources.directive';\n\n/**\n * Main component for displaying a collection of fact and figure items\n * in a responsive, styled grid layout.\n */\n@Component({\n selector: 'div[eclFactFigures], ecl-fact-figures',\n templateUrl: './ecl-fact-figures.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses',\n '[class.ecl-fact-figures--centered]': 'isCentered()',\n },\n})\nexport class EclFactFiguresComponent extends ECLBaseDirective {\n\n items = contentChildren(EclFactFiguresItemComponent, { read: ElementRef<HTMLElement> });\n\n sourcesList = contentChild(EclFactFiguresSourcesListDirective);\n\n hasSourcesList = computed(() => !!this.sourcesList());\n\n /**\n * Number of columns in the layout (as string).\n * Default is `'3'`.\n */\n columns = input('3');\n\n /**\n * Font size variant. Can be:\n * - `'m'` – medium (smaller text)\n * - `'l'` – large (default)\n */\n fontSize = input<'m' | 'l'>('l');\n\n /**\n * Whether the content should be centered.\n * Adds `ecl-fact-figures--centered` class when true.\n */\n isCentered = input(false, { transform: booleanAttribute });\n\n /**\n * Label displayed before the sources list.\n * Default is `'Sources:'`.\n */\n sourcesLabel = input<string>('Sources:');\n\n /**\n * Sets the CSS classes for the component, including layout and font size modifiers.\n * Automatically adds:\n * - `ecl-fact-figures--col-{n}` depending on the `columns` value\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures'),\n `ecl-fact-figures--col-${this.columns()}`].join(' ').trim();\n }\n\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n effect(() => {\n const els = this.items();\n const size = this.fontSize();\n\n // clear + set first\n els.forEach(el =>\n this.renderer.removeClass(el.nativeElement, 'is-first')\n );\n if (els.length) {\n this.renderer.addClass(els[0].nativeElement, 'is-first');\n }\n\n // font-size class\n const cls = 'ecl-fact-figures__item--font-m';\n els.forEach(el => {\n if (size === 'm') {\n this.renderer.addClass(el.nativeElement, cls);\n } else {\n this.renderer.removeClass(el.nativeElement, cls);\n }\n });\n });\n }\n}\n","<div class=\"ecl-fact-figures__items\">\n <ng-content></ng-content>\n</div>\n\n@if (hasSourcesList()) {\n <div class=\"ecl-fact-figures__sources\">\n <span class=\"ecl-fact-figures__sources-label\">{{ sourcesLabel() }}</span>\n <ng-content select=\"[eclFactFiguresSourcesList]\"></ng-content>\n </div>\n}\n<ng-content select=\"ecl-fact-figures-view-all\"></ng-content>","import { AfterContentInit, Component, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\n/**\n * Component representing the \"View all\" section in a Fact & Figures block.\n * Used to display a link that allows users to view additional content.\n */\n@Component({\n selector: 'ecl-fact-figures-view-all',\n templateUrl: './ecl-fact-figures-view-all.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresViewAllComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Applies the base class `ecl-fact-figures__view-all` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__view-all')].join(' ').trim();\n }\n\n /**\n * Reference to the projected link directive inside the component.\n * Automatically decorated with a specific class upon initialization.\n */\n readonly eclLink = contentChild(EclLinkDirective);\n\n /**\n * Adds the `ecl-fact-figures__view-all-link` class to the projected link.\n * This ensures consistent styling within the view-all section.\n */\n ngAfterContentInit(): void {\n const eclLink = this.eclLink();\n if (eclLink) {\n eclLink.class = [eclLink.class, 'ecl-fact-figures__view-all-link'].join(' ');\n }\n }\n}\n","<ng-content></ng-content>\n","import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive, representing the description text of a fact or figures section.\n * Typically used to provide contextual or supporting information.\n */\n@Directive({\n selector: 'div[eclFactFiguresDescription]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclFactFiguresDescriptionDirective extends ECLBaseDirective {\n /**\n * Applies the base class `ecl-fact-figures__description` to the host element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-fact-figures__description')].join(' ').trim();\n }\n}\n","import { EclFactFiguresComponent } from './ecl-fact-figures.component';\nimport { EclFactFiguresItemComponent } from './ecl-fact-figures-item.component';\nimport { EclFactFiguresViewAllComponent } from './ecl-fact-figures-view-all.component';\nimport { EclFactFiguresDescriptionDirective } from './ecl-fact-figures-description.directive';\nimport { EclFactFiguresSourcesListDirective, EclFactFiguresSourcesItemDirective, EclFactFiguresSourceDirective } from './ecl-fact-figures-sources.directive';\n\nexport * from './ecl-fact-figures.component';\nexport * from './ecl-fact-figures-description.directive';\nexport * from './ecl-fact-figures-item.component';\nexport * from './ecl-fact-figures-view-all.component';\nexport * from './ecl-fact-figures-sources.directive';\n\nexport const EUI_ECL_FACT_FIGURES = [\n EclFactFiguresComponent,\n EclFactFiguresItemComponent,\n EclFactFiguresViewAllComponent,\n EclFactFiguresDescriptionDirective,\n EclFactFiguresSourcesListDirective,\n EclFactFiguresSourcesItemDirective,\n EclFactFiguresSourceDirective,\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 { input, booleanAttribute, HostBinding, Component, inject, ElementRef, Renderer2, Input, Directive, computed, contentChild, ContentChildren } from '@angular/core';
2
+ import { input, booleanAttribute, HostBinding, Component, inject, ElementRef, Renderer2, Input, Directive, computed, contentChild, contentChildren } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';
5
5
  import { uniqueId } from '@eui/core';
@@ -132,8 +132,11 @@ class EclFeaturedItemComponent extends ECLBaseDirective {
132
132
  ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
133
133
  this.mediaContainer = contentChild(EclMediaContainerComponent, /* @ts-ignore */
134
134
  ...(ngDevMode ? [{ debugName: "mediaContainer" }] : /* istanbul ignore next */ []));
135
+ this.links = contentChildren(EclFeaturedItemLinkDirective, { ...(ngDevMode ? { debugName: "links" } : /* istanbul ignore next */ {}), descendants: true });
135
136
  this.className = true;
136
- this.hasMedia = computed(() => { return !!this.mediaContainer(); }, /* @ts-ignore */
137
+ this.hasMedia = computed(() => {
138
+ return !!this.mediaContainer();
139
+ }, /* @ts-ignore */
137
140
  ...(ngDevMode ? [{ debugName: "hasMedia" }] : /* istanbul ignore next */ []));
138
141
  this.hasTitle = computed(() => this.eclTitle() !== '', /* @ts-ignore */
139
142
  ...(ngDevMode ? [{ debugName: "hasTitle" }] : /* istanbul ignore next */ []));
@@ -145,22 +148,20 @@ class EclFeaturedItemComponent extends ECLBaseDirective {
145
148
  this.mediaContainer().class = 'ecl-featured-item__media_container';
146
149
  }
147
150
  const describedBy = this.hasTitle() ? `${this.id()}-title` : null;
148
- if (describedBy && this.links) {
149
- this.links.forEach(link => {
151
+ const links = this.links();
152
+ if (describedBy && links) {
153
+ links.forEach(link => {
150
154
  link.ariaDescribedBy = describedBy;
151
155
  });
152
156
  }
153
157
  }
154
158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFeaturedItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclFeaturedItemComponent, isStandalone: true, selector: "ecl-featured-item, div[eclFeaturedItem]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclMicroTitle: { classPropertyName: "eclMicroTitle", publicName: "eclMicroTitle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-featured-item__item": "this.className" } }, queries: [{ propertyName: "mediaContainer", first: true, predicate: EclMediaContainerComponent, descendants: true, isSignal: true }, { propertyName: "links", predicate: EclFeaturedItemLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "@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>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclFeaturedItemComponent, isStandalone: true, selector: "ecl-featured-item, div[eclFeaturedItem]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclMicroTitle: { classPropertyName: "eclMicroTitle", publicName: "eclMicroTitle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-featured-item__item": "this.className" } }, queries: [{ propertyName: "mediaContainer", first: true, predicate: EclMediaContainerComponent, descendants: true, isSignal: true }, { propertyName: "links", predicate: EclFeaturedItemLinkDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@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>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
156
160
  }
157
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclFeaturedItemComponent, decorators: [{
158
162
  type: Component,
159
163
  args: [{ selector: 'ecl-featured-item, div[eclFeaturedItem]', imports: [NgTemplateOutlet], template: "@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>", styles: [":host{display:block}\n"] }]
160
- }], propDecorators: { eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclMicroTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclMicroTitle", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], mediaContainer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMediaContainerComponent), { isSignal: true }] }], links: [{
161
- type: ContentChildren,
162
- args: [EclFeaturedItemLinkDirective, { descendants: true }]
163
- }], className: [{
164
+ }], propDecorators: { eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclMicroTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclMicroTitle", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], mediaContainer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMediaContainerComponent), { isSignal: true }] }], links: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclFeaturedItemLinkDirective), { ...{ descendants: true }, isSignal: true }] }], className: [{
164
165
  type: HostBinding,
165
166
  args: ['class.ecl-featured-item__item']
166
167
  }] } });
@@ -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 } 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 host: {\n '[class.ecl-featured-item--link-highlighted]': 'isLinkHighlighted()',\n },\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 readonly position = input<'left' | 'right'>('left');\n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n readonly variant = input<'highlight'>(undefined);\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 readonly isLinkHighlighted = input(false, { transform: booleanAttribute });\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 const variant = this.variant();\n return [\n super.getCssClasses('ecl-featured-item'),\n variant ? `ecl-featured-item--${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
+ {"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 } 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 host: {\n '[class.ecl-featured-item--link-highlighted]': 'isLinkHighlighted()',\n },\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 readonly position = input<'left' | 'right'>('left');\n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n readonly variant = input<'highlight'>(undefined);\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 readonly isLinkHighlighted = input(false, { transform: booleanAttribute });\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 const variant = this.variant();\n return [\n super.getCssClasses('ecl-featured-item'),\n variant ? `ecl-featured-item--${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, HostBinding, contentChild, computed, input, contentChildren } 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 readonly links = contentChildren(EclFeaturedItemLinkDirective, { descendants: true });\n\n @HostBinding('class.ecl-featured-item__item') className = true;\n\n protected readonly hasMedia = computed(() => {\n return !!this.mediaContainer() \n });\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 const links = this.links();\n if (describedBy && links) {\n 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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"}