@eui/ecl 22.0.0-alpha.45 → 22.0.0-alpha.47

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 (159) hide show
  1. package/docs/changelog.html +60 -0
  2. package/docs/components/EclMenuItemComponent.html +203 -161
  3. package/docs/components/EclMenuMegaItemComponent.html +3 -3
  4. package/docs/interfaces/EclMenuItem.html +4 -4
  5. package/docs/js/search/search_index.js +2 -2
  6. package/docs/json/documentation.json +152 -124
  7. package/docs/llms.txt +13 -7
  8. package/docs/properties.html +1 -1
  9. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  10. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
  11. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
  12. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  13. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  14. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  15. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  16. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  17. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  18. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  19. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  20. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  21. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  22. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  23. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  24. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  25. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  26. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  27. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  28. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  29. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  30. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  31. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  32. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  33. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  34. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  35. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  36. package/fesm2022/eui-ecl-components-ecl-highlight-box.mjs.map +1 -1
  37. package/fesm2022/eui-ecl-components-ecl-highlighted-search.mjs.map +1 -1
  38. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  39. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  40. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  41. package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
  42. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  43. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  44. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  45. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  46. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  47. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  48. package/fesm2022/eui-ecl-components-ecl-menu.mjs +67 -49
  49. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  50. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  51. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  52. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  53. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  54. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  55. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  56. package/fesm2022/eui-ecl-components-ecl-page-information.mjs.map +1 -1
  57. package/fesm2022/eui-ecl-components-ecl-page-summary.mjs.map +1 -1
  58. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  59. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  60. package/fesm2022/eui-ecl-components-ecl-quiz.mjs.map +1 -1
  61. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  62. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  63. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  64. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  65. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  66. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  67. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  68. package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
  69. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  70. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  71. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
  72. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  73. package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
  74. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  75. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  76. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  77. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  78. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  79. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  80. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  81. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
  82. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  83. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  84. package/package.json +1 -1
  85. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  86. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
  87. package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
  88. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  89. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  90. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  91. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  92. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  93. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  94. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  95. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  96. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  97. package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
  98. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  99. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  100. package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
  101. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  102. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  103. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  104. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  105. package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
  106. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  107. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  108. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  109. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  110. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  111. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  112. package/types/eui-ecl-components-ecl-highlight-box.d.ts.map +1 -1
  113. package/types/eui-ecl-components-ecl-highlighted-search.d.ts.map +1 -1
  114. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  115. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  116. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  117. package/types/eui-ecl-components-ecl-layout-wrapper.d.ts.map +1 -1
  118. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  119. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  120. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  121. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  122. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  123. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  124. package/types/eui-ecl-components-ecl-menu.d.ts +16 -11
  125. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  126. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  127. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  128. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  129. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  130. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  131. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  132. package/types/eui-ecl-components-ecl-page-information.d.ts.map +1 -1
  133. package/types/eui-ecl-components-ecl-page-summary.d.ts.map +1 -1
  134. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  135. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  136. package/types/eui-ecl-components-ecl-quiz.d.ts.map +1 -1
  137. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  138. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  139. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  140. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  141. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  142. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  143. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  144. package/types/eui-ecl-components-ecl-slogan-ticker.d.ts.map +1 -1
  145. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  146. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  147. package/types/eui-ecl-components-ecl-spotlight.d.ts.map +1 -1
  148. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  149. package/types/eui-ecl-components-ecl-story-card.d.ts.map +1 -1
  150. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  151. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  152. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  153. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  154. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  155. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  156. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  157. package/types/eui-ecl-components-ecl-tooltip.d.ts.map +1 -1
  158. package/types/eui-ecl-core.d.ts.map +1 -1
  159. package/types/eui-ecl-shared.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 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-divider.mjs","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts","../../components/ecl-divider/eui-ecl-components-ecl-divider.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that applies ECL styling for horizontal separators (`<hr>` elements).\n * Adds the `ecl-separator` CSS class to the host element.\n */\n@Directive({\n selector: 'hr[eclDivider]',\n host: {\n 'class': 'ecl-separator',\n },\n})\nexport class EclDividerDirective extends ECLBaseDirective {}\n","import { EclDividerDirective } from './ecl-divider.directive';\n\nexport * from './ecl-divider.directive';\n\nexport const EUI_ECL_DIVIDER = [\n EclDividerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;AAOG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;8GAA5C,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,OAAO,EAAE,eAAe;AAC3B,qBAAA;AACJ,iBAAA;;;ACRM,MAAM,eAAe,GAAG;IAC3B,mBAAmB;;;ACLvB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-divider.mjs","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts","../../components/ecl-divider/eui-ecl-components-ecl-divider.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that applies ECL styling for horizontal separators (`<hr>` elements).\n * Adds the `ecl-separator` CSS class to the host element.\n */\n@Directive({\n selector: 'hr[eclDivider]',\n host: {\n 'class': 'ecl-separator',\n },\n})\nexport class EclDividerDirective extends ECLBaseDirective {}\n","import { EclDividerDirective } from './ecl-divider.directive';\n\nexport * from './ecl-divider.directive';\n\nexport const EUI_ECL_DIVIDER = [\n EclDividerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;AAOG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;8GAA5C,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,OAAO,EAAE,eAAe;AAC3B,qBAAA;AACJ,iBAAA;;;ACRM,MAAM,eAAe,GAAG;IAC3B,mBAAmB;;;ACLvB;;AAEG;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-expandable.mjs","sources":["../../components/ecl-expandable/ecl-expandable.component.ts","../../components/ecl-expandable/ecl-expandable.component.html","../../components/ecl-expandable/index.ts","../../components/ecl-expandable/eui-ecl-components-ecl-expandable.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, linkedSignal, output, input } from '@angular/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Event emitted when the expandable is toggled.\n * Contains the next expanded state.\n */\nexport class EclExpandableToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}\n\n/**\n * Expandable component used to toggle visibility of additional content.\n * It displays a toggle button with configurable labels and emits an event on toggle.\n */\n@Component({\n selector: 'ecl-expandable',\n templateUrl: './ecl-expandable.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON, TranslatePipe],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclExpandableComponent extends ECLBaseDirective {\n /**\n * Applies the expandable base CSS class to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-expandable'));\n\n /**\n * Whether the expandable content should start expanded.\n * One-way input; the live expanded state is tracked internally and toggled by the user.\n * Default is `false`.\n */\n readonly isExpanded = input(false, { transform: booleanAttribute });\n\n /**\n * The label to display when the content is collapsed.\n */\n readonly collapsedLabel = input<string>(undefined);\n\n /**\n * The label to display when the content is expanded.\n * If not set, `collapsedLabel` is used as fallback.\n */\n readonly expandedLabel = input<string>(undefined);\n\n /**\n * Event emitted when the expandable is toggled.\n * Consumers can prevent default behavior by calling `event.preventDefault()`.\n */\n // eslint-disable-next-line\n readonly toggle = output<EclExpandableToggleEvent>();\n\n /**\n * Live expanded state. Seeded from the `isExpanded` input and updated when the user\n * toggles the control, so consumer-provided changes re-sync while internal toggles persist.\n */\n protected readonly isExpandedState = linkedSignal(() => this.isExpanded());\n\n /**\n * Effective label shown when expanded, falling back to `collapsedLabel` when not provided.\n */\n protected readonly resolvedExpandedLabel = computed(() => this.expandedLabel() || this.collapsedLabel());\n\n /**\n * Handles click on the toggle button.\n * Emits a toggle event and updates the expanded state unless prevented.\n */\n onButtonClick(): void {\n const nextExpandedState = !this.isExpandedState();\n const event = new EclExpandableToggleEvent(nextExpandedState);\n\n this.toggle.emit(event);\n\n if (!event.defaultPrevented) {\n this.isExpandedState.set(nextExpandedState);\n }\n }\n}\n","<button\n eclButton\n variant=\"tertiary\"\n type=\"button\"\n class=\"ecl-expandable__toggle\"\n [attr.aria-expanded]=\"isExpandedState()\"\n (click)=\"onButtonClick()\">\n <span eclButtonLabel>\n @if (isExpandedState()) {\n {{ resolvedExpandedLabel() || 'ecl.common.COLLAPSE' | translate }}\n } @else {\n {{ collapsedLabel() || 'ecl.common.EXPAND' | translate }}\n }\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" transform=\"rotate-180\"></ecl-icon>\n</button>\n<div class=\"ecl-expandable__content\" [hidden]=\"!isExpandedState()\">\n <ng-content></ng-content>\n</div>\n","import { EclExpandableComponent } from './ecl-expandable.component';\n\nexport * from './ecl-expandable.component';\n\nexport const EUI_ECL_EXPANDABLE = [\n EclExpandableComponent,\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-expandable.mjs","sources":["../../components/ecl-expandable/ecl-expandable.component.ts","../../components/ecl-expandable/ecl-expandable.component.html","../../components/ecl-expandable/index.ts","../../components/ecl-expandable/eui-ecl-components-ecl-expandable.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, linkedSignal, output, input } from '@angular/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n/**\n * Event emitted when the expandable is toggled.\n * Contains the next expanded state.\n */\nexport class EclExpandableToggleEvent extends EclBaseEvent {\n constructor(public isExpanded: boolean) {\n super();\n }\n}\n\n/**\n * Expandable component used to toggle visibility of additional content.\n * It displays a toggle button with configurable labels and emits an event on toggle.\n */\n@Component({\n selector: 'ecl-expandable',\n templateUrl: './ecl-expandable.component.html',\n imports: [...EUI_ECL_BUTTON, ...EUI_ECL_ICON, TranslatePipe],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclExpandableComponent extends ECLBaseDirective {\n /**\n * Applies the expandable base CSS class to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-expandable'));\n\n /**\n * Whether the expandable content should start expanded.\n * One-way input; the live expanded state is tracked internally and toggled by the user.\n * Default is `false`.\n */\n readonly isExpanded = input(false, { transform: booleanAttribute });\n\n /**\n * The label to display when the content is collapsed.\n */\n readonly collapsedLabel = input<string>(undefined);\n\n /**\n * The label to display when the content is expanded.\n * If not set, `collapsedLabel` is used as fallback.\n */\n readonly expandedLabel = input<string>(undefined);\n\n /**\n * Event emitted when the expandable is toggled.\n * Consumers can prevent default behavior by calling `event.preventDefault()`.\n */\n // eslint-disable-next-line\n readonly toggle = output<EclExpandableToggleEvent>();\n\n /**\n * Live expanded state. Seeded from the `isExpanded` input and updated when the user\n * toggles the control, so consumer-provided changes re-sync while internal toggles persist.\n */\n protected readonly isExpandedState = linkedSignal(() => this.isExpanded());\n\n /**\n * Effective label shown when expanded, falling back to `collapsedLabel` when not provided.\n */\n protected readonly resolvedExpandedLabel = computed(() => this.expandedLabel() || this.collapsedLabel());\n\n /**\n * Handles click on the toggle button.\n * Emits a toggle event and updates the expanded state unless prevented.\n */\n onButtonClick(): void {\n const nextExpandedState = !this.isExpandedState();\n const event = new EclExpandableToggleEvent(nextExpandedState);\n\n this.toggle.emit(event);\n\n if (!event.defaultPrevented) {\n this.isExpandedState.set(nextExpandedState);\n }\n }\n}\n","<button\n eclButton\n variant=\"tertiary\"\n type=\"button\"\n class=\"ecl-expandable__toggle\"\n [attr.aria-expanded]=\"isExpandedState()\"\n (click)=\"onButtonClick()\">\n <span eclButtonLabel>\n @if (isExpandedState()) {\n {{ resolvedExpandedLabel() || 'ecl.common.COLLAPSE' | translate }}\n } @else {\n {{ collapsedLabel() || 'ecl.common.EXPAND' | translate }}\n }\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" transform=\"rotate-180\"></ecl-icon>\n</button>\n<div class=\"ecl-expandable__content\" [hidden]=\"!isExpandedState()\">\n <ng-content></ng-content>\n</div>\n","import { EclExpandableComponent } from './ecl-expandable.component';\n\nexport * from './ecl-expandable.component';\n\nexport const EUI_ECL_EXPANDABLE = [\n EclExpandableComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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, computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__item'));\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.set([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 protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-fact-figures'),\n `ecl-fact-figures--col-${this.columns()}`].join(' ').trim());\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, computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__view-all'));\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.set([eclLink.class(), 'ecl-fact-figures__view-all-link'].join(' '));\n }\n }\n}\n","<ng-content></ng-content>\n","import { computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__description'));\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, computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__item'));\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.set([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 protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-fact-figures'),\n `ecl-fact-figures--col-${this.columns()}`].join(' ').trim());\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, computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__view-all'));\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.set([eclLink.class(), 'ecl-fact-figures__view-all-link'].join(' '));\n }\n }\n}\n","<ng-content></ng-content>\n","import { computed, 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 protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-fact-figures__description'));\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 +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, computed, 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 'role': 'article',\n '[class]': 'cssClasses()',\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 /**\n * Adds specific classes to the component.\n */\n readonly cssClasses = computed(() => {\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, computed, input, signal } 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 host: {\n 'class': 'ecl-featured-item__link',\n '[attr.aria-describedby]': 'ariaDescribedBy()',\n },\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n /**\n * The id of the element describing this link. Set imperatively by the parent\n * featured item once the title id is known.\n */\n readonly ariaDescribedBy = signal<string | null>(null);\n}\n\n@Directive({\n selector: '[eclFeaturedMediaAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'cssAnchor()',\n },\n})\nexport class EclFeaturedMediaAnchorDirective extends ECLBaseDirective {\n eclFeaturedMediaAnchor = input<'left' | 'right' | '20%' | 'center' | undefined>();\n\n readonly cssAnchor = computed(() => {\n const value = this.eclFeaturedMediaAnchor();\n\n if (!value || value === 'center') {\n return null;\n }\n\n return value;\n });\n}\n","import { AfterContentInit, Component, contentChild, 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 host: {\n 'class': 'ecl-featured-item__item',\n },\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 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.set('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.set(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 } 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 host: {\n 'class': 'ecl-featured-item__description',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {}\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, computed, 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 'role': 'article',\n '[class]': 'cssClasses()',\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 /**\n * Adds specific classes to the component.\n */\n readonly cssClasses = computed(() => {\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, computed, input, signal } 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 host: {\n 'class': 'ecl-featured-item__link',\n '[attr.aria-describedby]': 'ariaDescribedBy()',\n },\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n /**\n * The id of the element describing this link. Set imperatively by the parent\n * featured item once the title id is known.\n */\n readonly ariaDescribedBy = signal<string | null>(null);\n}\n\n@Directive({\n selector: '[eclFeaturedMediaAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'cssAnchor()',\n },\n})\nexport class EclFeaturedMediaAnchorDirective extends ECLBaseDirective {\n eclFeaturedMediaAnchor = input<'left' | 'right' | '20%' | 'center' | undefined>();\n\n readonly cssAnchor = computed(() => {\n const value = this.eclFeaturedMediaAnchor();\n\n if (!value || value === 'center') {\n return null;\n }\n\n return value;\n });\n}\n","import { AfterContentInit, Component, contentChild, 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 host: {\n 'class': 'ecl-featured-item__item',\n },\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 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.set('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.set(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 } 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 host: {\n 'class': 'ecl-featured-item__description',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {}\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 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-feedback-message.mjs","sources":["../../components/ecl-feedback-message/ecl-feedback-message.directive.ts","../../components/ecl-feedback-message/index.ts","../../components/ecl-feedback-message/eui-ecl-components-ecl-feedback-message.ts"],"sourcesContent":["import { AfterContentInit, computed, contentChildren, Directive, forwardRef } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n// TODO: check the look of this component after icons update.\n\n/**\n * Directive that renders a feedback message following the ECL design system.\n * It automatically styles its content and nested icon components accordingly.\n *\n * Should be applied to a container element that wraps a feedback message.\n */\n@Directive({\n selector: '[eclFeedbackMessage]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclFeedbackMessageDirective extends ECLBaseDirective implements AfterContentInit {\n /**\n * Applies the appropriate ECL feedback message CSS class to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-feedback-message'));\n\n /**\n * Queries all nested `EclIconComponent` instances inside the host element.\n * These icons will receive the `ecl-feedback-message__icon` styling class.\n */\n // @ContentChildren(forwardRef(() => EclIconComponent)) eclIconComponents: QueryList<EclIconComponent>;\n eclIconComponents = contentChildren<EclIconComponent>(forwardRef(() => EclIconComponent));\n\n /**\n * Lifecycle hook that runs after content (e.g. projected icons) is initialized.\n * Adds the `ecl-feedback-message__icon` CSS class to each nested icon component.\n */\n ngAfterContentInit(): void {\n if (this.eclIconComponents) {\n setTimeout(() => {\n this.eclIconComponents().forEach((icn) => {\n icn.addExtraClass('ecl-feedback-message__icon');\n });\n });\n }\n }\n}\n","import { EclFeedbackMessageDirective } from './ecl-feedback-message.directive';\n\nexport * from './ecl-feedback-message.directive';\n\nexport const EUI_ECL_FEEDBACK_MESSAGE = [\n EclFeedbackMessageDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;AAEA;;;;;AAKG;AAOG,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AANjE,IAAA,WAAA,GAAA;;AAOI;;AAEG;QACgB,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAS,MAC7C,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC;uFAAC;AAEhD;;;AAGG;;QAEH,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAmB,UAAU,CAAC,MAAM,gBAAgB,CAAC;8FAAC;AAe5F,IAAA;AAbG;;;AAGG;IACH,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrC,oBAAA,GAAG,CAAC,aAAa,CAAC,4BAA4B,CAAC;AACnD,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;IACJ;8GA1BS,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,yLAYmC,gBAAgB,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAZ9E,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA;AACJ,iBAAA;AAayD,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC1BrF,MAAM,wBAAwB,GAAG;IACpC,2BAA2B;;;ACL/B;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-feedback-message.mjs","sources":["../../components/ecl-feedback-message/ecl-feedback-message.directive.ts","../../components/ecl-feedback-message/index.ts","../../components/ecl-feedback-message/eui-ecl-components-ecl-feedback-message.ts"],"sourcesContent":["import { AfterContentInit, computed, contentChildren, Directive, forwardRef } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n// TODO: check the look of this component after icons update.\n\n/**\n * Directive that renders a feedback message following the ECL design system.\n * It automatically styles its content and nested icon components accordingly.\n *\n * Should be applied to a container element that wraps a feedback message.\n */\n@Directive({\n selector: '[eclFeedbackMessage]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclFeedbackMessageDirective extends ECLBaseDirective implements AfterContentInit {\n /**\n * Applies the appropriate ECL feedback message CSS class to the host element.\n */\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-feedback-message'));\n\n /**\n * Queries all nested `EclIconComponent` instances inside the host element.\n * These icons will receive the `ecl-feedback-message__icon` styling class.\n */\n // @ContentChildren(forwardRef(() => EclIconComponent)) eclIconComponents: QueryList<EclIconComponent>;\n eclIconComponents = contentChildren<EclIconComponent>(forwardRef(() => EclIconComponent));\n\n /**\n * Lifecycle hook that runs after content (e.g. projected icons) is initialized.\n * Adds the `ecl-feedback-message__icon` CSS class to each nested icon component.\n */\n ngAfterContentInit(): void {\n if (this.eclIconComponents) {\n setTimeout(() => {\n this.eclIconComponents().forEach((icn) => {\n icn.addExtraClass('ecl-feedback-message__icon');\n });\n });\n }\n }\n}\n","import { EclFeedbackMessageDirective } from './ecl-feedback-message.directive';\n\nexport * from './ecl-feedback-message.directive';\n\nexport const EUI_ECL_FEEDBACK_MESSAGE = [\n EclFeedbackMessageDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;AAEA;;;;;AAKG;AAOG,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AANjE,IAAA,WAAA,GAAA;;AAOI;;AAEG;QACgB,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAS,MAC7C,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC;uFAAC;AAEhD;;;AAGG;;QAEH,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAmB,UAAU,CAAC,MAAM,gBAAgB,CAAC;8FAAC;AAe5F,IAAA;AAbG;;;AAGG;IACH,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrC,oBAAA,GAAG,CAAC,aAAa,CAAC,4BAA4B,CAAC;AACnD,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;IACJ;8GA1BS,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,yLAYmC,gBAAgB,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAZ9E,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA;AACJ,iBAAA;AAayD,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC1BrF,MAAM,wBAAwB,GAAG;IACpC,2BAA2B;;;ACL/B;;AAEG;;"}