@eui/ecl 22.0.0-alpha.40 → 22.0.0-alpha.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/docs/changelog.html +140 -0
  2. package/docs/components/EclAccordionSummaryComponent.html +1 -1
  3. package/docs/components/EclAddToCalendarComponent.html +1 -1
  4. package/docs/components/EclAnimatedNumbersComponent.html +1 -1
  5. package/docs/components/EclAnimatedNumbersItemComponent.html +1 -1
  6. package/docs/components/EclAppComponent.html +1 -1
  7. package/docs/components/EclBannerComponent.html +1 -1
  8. package/docs/components/EclBlockquoteComponent.html +1 -1
  9. package/docs/components/EclBreadcrumbComponent.html +1 -1
  10. package/docs/components/EclBreadcrumbSegmentComponent.html +1 -14
  11. package/docs/components/EclButtonComponent.html +1 -1
  12. package/docs/components/EclCardBodyComponent.html +1 -1
  13. package/docs/components/EclCardComponent.html +1 -1
  14. package/docs/components/EclCarouselComponent.html +1 -1
  15. package/docs/components/EclCarouselItemComponent.html +59 -64
  16. package/docs/components/EclCategoryFilterComponent.html +1 -1
  17. package/docs/components/EclCategoryFilterItemComponent.html +179 -135
  18. package/docs/components/EclCategoryFilterListComponent.html +9 -2
  19. package/docs/components/EclCheckboxHelpComponent.html +90 -84
  20. package/docs/components/EclCheckboxLabelComponent.html +127 -143
  21. package/docs/components/EclContentBlockComponent.html +1 -1
  22. package/docs/components/EclContentItemComponent.html +1 -1
  23. package/docs/components/EclDateBlockComponent.html +68 -132
  24. package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
  25. package/docs/components/EclExpandableComponent.html +1 -1
  26. package/docs/components/EclFactFiguresComponent.html +1 -1
  27. package/docs/components/EclFactFiguresItemComponent.html +1 -1
  28. package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
  29. package/docs/components/EclFeaturedComponent.html +24 -142
  30. package/docs/components/EclFeaturedItemComponent.html +5 -86
  31. package/docs/components/EclFeaturedItemDescriptionComponent.html +5 -105
  32. package/docs/components/EclFileComponent.html +1 -1
  33. package/docs/components/EclFileItemComponent.html +1 -1
  34. package/docs/components/EclFileItemsComponent.html +1 -1
  35. package/docs/components/EclFileListsComponent.html +1 -1
  36. package/docs/components/EclFormGroupComponent.html +1 -1
  37. package/docs/components/EclFormLabelComponent.html +1 -1
  38. package/docs/components/EclGalleryComponent.html +1 -1
  39. package/docs/components/EclGalleryFooterComponent.html +1 -1
  40. package/docs/components/EclGalleryItemComponent.html +1 -1
  41. package/docs/components/EclHighlightBoxComponent.html +1 -1
  42. package/docs/components/EclHighlightedSearchComponent.html +1 -1
  43. package/docs/components/EclIconComponent.html +1 -1
  44. package/docs/components/EclIndicatorComponent.html +1 -1
  45. package/docs/components/EclInpageNavigationComponent.html +1 -1
  46. package/docs/components/EclInpageNavigationItemComponent.html +1 -1
  47. package/docs/components/EclLayoutWrapperComponent.html +3 -3
  48. package/docs/components/EclListIllustrationComponent.html +1 -1
  49. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  50. package/docs/components/EclLoadingIndicatorComponent.html +1 -1
  51. package/docs/components/EclMediaContainerComponent.html +1 -1
  52. package/docs/components/EclMegaMenuComponent.html +1 -1
  53. package/docs/components/EclMegaMenuFeaturedComponent.html +1 -1
  54. package/docs/components/EclMegaMenuInfoComponent.html +1 -1
  55. package/docs/components/EclMegaMenuItemComponent.html +1 -1
  56. package/docs/components/EclMegaMenuSubitemComponent.html +1 -1
  57. package/docs/components/EclMenuComponent.html +1 -1
  58. package/docs/components/EclMenuItemComponent.html +1 -1
  59. package/docs/components/EclMenuMegaComponent.html +1 -1
  60. package/docs/components/EclMenuMegaItemComponent.html +1 -1
  61. package/docs/components/EclModalBodyComponent.html +1 -1
  62. package/docs/components/EclModalComponent.html +1 -1
  63. package/docs/components/EclModalFooterComponent.html +1 -1
  64. package/docs/components/EclModalHeaderComponent.html +1 -1
  65. package/docs/components/EclMultiselectComponent.html +1 -1
  66. package/docs/components/EclMultiselectDropdownComponent.html +1 -1
  67. package/docs/components/EclMultiselectInputComponent.html +1 -1
  68. package/docs/components/EclMultiselectOptgroupComponent.html +1 -1
  69. package/docs/components/EclMultiselectOptionComponent.html +1 -1
  70. package/docs/components/EclNavigationListComponent.html +1 -1
  71. package/docs/components/EclNavigationListItemComponent.html +1 -1
  72. package/docs/components/EclNewsTickerComponent.html +1 -1
  73. package/docs/components/EclNewsTickerItemComponent.html +1 -1
  74. package/docs/components/EclNotificationComponent.html +1 -1
  75. package/docs/components/EclPageHeaderComponent.html +1 -1
  76. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +1 -1
  77. package/docs/components/EclPageHeaderExpandableComponent.html +1 -1
  78. package/docs/components/EclPageHeaderSectionComponent.html +1 -1
  79. package/docs/components/EclPageHeaderSectionInfoComponent.html +1 -1
  80. package/docs/components/EclPageSummaryComponent.html +1 -1
  81. package/docs/components/EclPaginationComponent.html +1 -1
  82. package/docs/components/EclPaginationItemComponent.html +1 -1
  83. package/docs/components/EclPopoverComponent.html +1 -1
  84. package/docs/components/EclQuizCardComponent.html +1 -1
  85. package/docs/components/EclQuizComponent.html +1 -1
  86. package/docs/components/EclRadioHelpComponent.html +1 -1
  87. package/docs/components/EclRadioLabelComponent.html +1 -1
  88. package/docs/components/EclRangeBubbleComponent.html +1 -1
  89. package/docs/components/EclRangeValueComponent.html +1 -1
  90. package/docs/components/EclRatingFieldComponent.html +1 -1
  91. package/docs/components/EclSearchFormComponent.html +1 -1
  92. package/docs/components/EclSelectContainerComponent.html +1 -1
  93. package/docs/components/EclSiteFooterComponent.html +1 -1
  94. package/docs/components/EclSiteFooterCoownerComponent.html +1 -1
  95. package/docs/components/EclSiteFooterCoreComponent.html +1 -1
  96. package/docs/components/EclSiteFooterFeedbackComponent.html +1 -1
  97. package/docs/components/EclSiteFooterFixedContentEUComponent.html +1 -1
  98. package/docs/components/EclSiteFooterRowCommonComponent.html +1 -1
  99. package/docs/components/EclSiteHeaderActionComponent.html +1 -1
  100. package/docs/components/EclSiteHeaderBannerTopComponent.html +1 -1
  101. package/docs/components/EclSiteHeaderComponent.html +1 -1
  102. package/docs/components/EclSiteHeaderCustomActionComponent.html +1 -1
  103. package/docs/components/EclSiteHeaderEnvironmentComponent.html +1 -1
  104. package/docs/components/EclSiteHeaderLanguageComponent.html +1 -1
  105. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +1 -1
  106. package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
  107. package/docs/components/EclSiteHeaderNotificationComponent.html +1 -1
  108. package/docs/components/EclSiteHeaderSearchComponent.html +1 -1
  109. package/docs/components/EclSloganTickerComponent.html +1 -1
  110. package/docs/components/EclSocialMediaFollowComponent.html +1 -1
  111. package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
  112. package/docs/components/EclSplashPageComponent.html +1 -1
  113. package/docs/components/EclSplashPageLanguageCategoryComponent.html +1 -1
  114. package/docs/components/EclSplashPageLanguageContainerComponent.html +1 -1
  115. package/docs/components/EclSplashPageLanguageLinkComponent.html +1 -1
  116. package/docs/components/EclSpotlightComponent.html +1 -1
  117. package/docs/components/EclSpotlightLinkComponent.html +1 -1
  118. package/docs/components/EclStickyContainerComponent.html +1 -1
  119. package/docs/components/EclStoryCardComponent.html +1 -1
  120. package/docs/components/EclStoryCardGridDetailsComponent.html +1 -1
  121. package/docs/components/EclStoryCardItemComponent.html +1 -1
  122. package/docs/components/EclTabComponent.html +1 -1
  123. package/docs/components/EclTabLabelComponent.html +1 -1
  124. package/docs/components/EclTableSortButtonComponent.html +1 -1
  125. package/docs/components/EclTabsComponent.html +1 -1
  126. package/docs/components/EclTagComponent.html +47 -107
  127. package/docs/components/EclTextMediaComponent.html +45 -30
  128. package/docs/components/EclTimelineComponent.html +2 -221
  129. package/docs/components/EclTimelineItemComponent.html +41 -443
  130. package/docs/components/EclTimelineItemTogglerComponent.html +7 -97
  131. package/docs/directives/ECLBaseDirective.html +0 -4
  132. package/docs/directives/EclCheckboxDirective.html +119 -94
  133. package/docs/directives/EclCheckboxInputDirective.html +33 -90
  134. package/docs/directives/EclFeaturedItemLinkDirective.html +14 -153
  135. package/docs/directives/EclLayoutWrapperViewAllDirective.html +2 -2
  136. package/docs/directives/EclTextAreaDirective.html +53 -100
  137. package/docs/directives/EclTextInputDirective.html +47 -144
  138. package/docs/directives/EclTimelineItemLabelDirective.html +0 -46
  139. package/docs/directives/EclTimelineItemTitleDirective.html +0 -46
  140. package/docs/directives/EclTimelineSetDirective.html +0 -104
  141. package/docs/directives/EclTooltipDirective.html +4 -157
  142. package/docs/interfaces/EclCarouselItem.html +6 -6
  143. package/docs/interfaces/EclCategoryFilterItem.html +6 -6
  144. package/docs/js/search/search_index.js +2 -2
  145. package/docs/json/EclCarouselItemComponent.md +1 -1
  146. package/docs/json/EclCategoryFilterItemComponent.md +2 -2
  147. package/docs/json/EclCheckboxDirective.md +2 -2
  148. package/docs/json/EclCheckboxHelpComponent.md +1 -1
  149. package/docs/json/EclCheckboxLabelComponent.md +0 -2
  150. package/docs/json/EclDateBlockComponent.md +1 -1
  151. package/docs/json/EclFeaturedItemLinkDirective.md +0 -1
  152. package/docs/json/EclLayoutWrapperComponent.md +1 -1
  153. package/docs/json/EclLayoutWrapperViewAllDirective.md +1 -1
  154. package/docs/json/EclTimelineComponent.md +1 -1
  155. package/docs/json/EclTimelineItemComponent.md +4 -4
  156. package/docs/json/EclTimelineItemTogglerComponent.md +2 -2
  157. package/docs/json/documentation.json +2468 -3078
  158. package/docs/llms.txt +60 -52
  159. package/docs/properties.html +1 -1
  160. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +7 -11
  161. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  162. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +39 -24
  163. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  164. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +68 -59
  165. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  166. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +92 -96
  167. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  168. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +18 -26
  169. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  170. package/fesm2022/eui-ecl-components-ecl-featured.mjs +42 -59
  171. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  172. package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs +2 -2
  173. package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
  174. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +2 -2
  175. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  176. package/fesm2022/eui-ecl-components-ecl-tag.mjs +19 -22
  177. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  178. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +16 -17
  179. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  180. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +14 -17
  181. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  182. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +10 -9
  183. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  184. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +132 -133
  185. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  186. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs +8 -14
  187. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
  188. package/fesm2022/eui-ecl-core.mjs +0 -1
  189. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  190. package/package.json +1 -1
  191. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +0 -1
  192. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  193. package/types/eui-ecl-components-ecl-carousel.d.ts +16 -11
  194. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  195. package/types/eui-ecl-components-ecl-category-filter.d.ts +28 -18
  196. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  197. package/types/eui-ecl-components-ecl-checkbox.d.ts +49 -34
  198. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  199. package/types/eui-ecl-components-ecl-date-block.d.ts +9 -7
  200. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  201. package/types/eui-ecl-components-ecl-featured.d.ts +7 -9
  202. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  203. package/types/eui-ecl-components-ecl-layout-wrapper.d.ts +2 -2
  204. package/types/eui-ecl-components-ecl-tag.d.ts +2 -3
  205. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  206. package/types/eui-ecl-components-ecl-text-area.d.ts +2 -2
  207. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  208. package/types/eui-ecl-components-ecl-text-input.d.ts +3 -3
  209. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  210. package/types/eui-ecl-components-ecl-text-media.d.ts +1 -1
  211. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  212. package/types/eui-ecl-components-ecl-timeline.d.ts +65 -50
  213. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  214. package/types/eui-ecl-components-ecl-tooltip.d.ts.map +1 -1
  215. package/types/eui-ecl-core.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { booleanAttribute, HostBinding, Input, Component, input, ViewEncapsulation, contentChild, forwardRef, Directive, inject } from '@angular/core';
2
+ import { input, booleanAttribute, linkedSignal, computed, Component, signal, ViewEncapsulation, contentChild, forwardRef, effect, Directive, inject } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';
5
5
  import { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';
@@ -13,33 +13,33 @@ import { NgControl } from '@angular/forms';
13
13
  class EclCheckboxHelpComponent extends ECLBaseDirective {
14
14
  constructor() {
15
15
  super(...arguments);
16
+ /**
17
+ * Input controlling whether the help text starts in a disabled (visually muted) state.
18
+ */
19
+ this.isDisabledInput = input(false, { ...(ngDevMode ? { debugName: "isDisabledInput" } : /* istanbul ignore next */ {}), alias: 'isDisabled', transform: booleanAttribute });
16
20
  /**
17
21
  * Indicates whether the help text is disabled (e.g. visually muted).
22
+ * Seeded from the `isDisabled` input but can be updated imperatively by the
23
+ * parent checkbox directive.
18
24
  */
19
- this.isDisabled = false;
20
- }
21
- /**
22
- * Applies base CSS classes for checkbox help.
23
- */
24
- get cssClasses() {
25
- return [super.getCssClasses('ecl-checkbox__help')].join(' ');
25
+ this.isDisabled = linkedSignal(() => this.isDisabledInput(), /* @ts-ignore */
26
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
27
+ /**
28
+ * Applies base CSS classes for checkbox help.
29
+ */
30
+ this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__help'), /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
26
32
  }
27
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxHelpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.1.2", type: EclCheckboxHelpComponent, isStandalone: true, selector: "[eclCheckboxHelp]", inputs: { isDisabled: ["isDisabled", "isDisabled", booleanAttribute] }, host: { properties: { "class.ecl-checkbox__help--disabled": "this.isDisabled", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclCheckboxHelpComponent, isStandalone: true, selector: "[eclCheckboxHelp]", inputs: { isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()", "class.ecl-checkbox__help--disabled": "isDisabled()" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
29
35
  }
30
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxHelpComponent, decorators: [{
31
37
  type: Component,
32
- args: [{ selector: '[eclCheckboxHelp]', template: "<ng-content></ng-content>\n" }]
33
- }], propDecorators: { isDisabled: [{
34
- type: Input,
35
- args: [{ transform: booleanAttribute }]
36
- }, {
37
- type: HostBinding,
38
- args: ['class.ecl-checkbox__help--disabled']
39
- }], cssClasses: [{
40
- type: HostBinding,
41
- args: ['class']
42
- }] } });
38
+ args: [{ selector: '[eclCheckboxHelp]', host: {
39
+ '[class]': 'cssClasses()',
40
+ '[class.ecl-checkbox__help--disabled]': 'isDisabled()',
41
+ }, template: "<ng-content></ng-content>\n" }]
42
+ }], propDecorators: { isDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }] } });
43
43
 
44
44
  /**
45
45
  * Label component for a checkbox, supporting state styles.
@@ -49,58 +49,70 @@ class EclCheckboxLabelComponent extends ECLBaseDirective {
49
49
  super(...arguments);
50
50
  /**
51
51
  * Indicates whether the checkbox is in an invalid state.
52
+ * Set imperatively by the parent checkbox directive.
52
53
  */
53
- this.isInvalid = false;
54
+ this.isInvalid = signal(false, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
54
56
  /**
55
57
  * Indicates whether the checkbox is disabled.
58
+ * Set imperatively by the parent checkbox directive.
56
59
  */
57
- this.isDisabled = false;
60
+ this.isDisabled = signal(false, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
58
62
  /**
59
63
  * Indicates whether the checkbox is required.
60
64
  */
61
65
  this.isRequired = input(false, { ...(ngDevMode ? { debugName: "isRequired" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
62
- }
63
- /**
64
- * Applies base CSS classes for checkbox label.
65
- */
66
- get cssClasses() {
67
- return [super.getCssClasses('ecl-checkbox__label')].join(' ');
66
+ /**
67
+ * Applies base CSS classes for checkbox label.
68
+ */
69
+ this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__label'), /* @ts-ignore */
70
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
68
71
  }
69
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclCheckboxLabelComponent, isStandalone: true, selector: "label[eclCheckboxLabel]", inputs: { isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isRequired: { classPropertyName: "isRequired", publicName: "isRequired", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled\" [class.ecl-checkbox__box--invalid]=\"isInvalid\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }], encapsulation: i0.ViewEncapsulation.None }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclCheckboxLabelComponent, isStandalone: true, selector: "label[eclCheckboxLabel]", inputs: { isRequired: { classPropertyName: "isRequired", publicName: "isRequired", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }], encapsulation: i0.ViewEncapsulation.None }); }
71
74
  }
72
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxLabelComponent, decorators: [{
73
76
  type: Component,
74
- args: [{ selector: 'label[eclCheckboxLabel]', imports: [...EUI_ECL_ICON], encapsulation: ViewEncapsulation.None, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled\" [class.ecl-checkbox__box--invalid]=\"isInvalid\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n" }]
75
- }], propDecorators: { isInvalid: [{
76
- type: Input,
77
- args: [{ transform: booleanAttribute }]
78
- }], isDisabled: [{
79
- type: Input,
80
- args: [{ transform: booleanAttribute }]
81
- }], isRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRequired", required: false }] }], cssClasses: [{
82
- type: HostBinding,
83
- args: ['class']
84
- }] } });
77
+ args: [{ selector: 'label[eclCheckboxLabel]', imports: [...EUI_ECL_ICON], encapsulation: ViewEncapsulation.None, host: {
78
+ '[class]': 'cssClasses()',
79
+ }, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n" }]
80
+ }], propDecorators: { isRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRequired", required: false }] }] } });
85
81
 
86
82
  /**
87
83
  * Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.
88
84
  */
89
85
  class EclCheckboxDirective extends ECLBaseDirective {
90
86
  constructor() {
91
- super(...arguments);
87
+ super();
88
+ /**
89
+ * Input controlling whether the checkbox starts disabled.
90
+ * Automatically coerced to a boolean value.
91
+ */
92
+ this.isDisabledInput = input(false, { ...(ngDevMode ? { debugName: "isDisabledInput" } : /* istanbul ignore next */ {}), alias: 'isDisabled', transform: booleanAttribute });
92
93
  /**
93
94
  * Indicates whether the checkbox is disabled.
95
+ * Seeded from the `isDisabled` input but can be updated imperatively by the
96
+ * checkbox input directive as the associated control's state changes.
94
97
  */
95
- this.isDisabled = false;
98
+ this.isDisabled = linkedSignal(() => this.isDisabledInput(), /* @ts-ignore */
99
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
100
+ /**
101
+ * Input controlling whether the checkbox starts in an invalid state.
102
+ * Automatically coerced to a boolean value.
103
+ */
104
+ this.isInvalidInput = input(false, { ...(ngDevMode ? { debugName: "isInvalidInput" } : /* istanbul ignore next */ {}), alias: 'isInvalid', transform: booleanAttribute });
96
105
  /**
97
106
  * Indicates whether the checkbox is in an invalid state.
107
+ * Seeded from the `isInvalid` input but can be updated imperatively by the
108
+ * checkbox input directive as the associated control's validity changes.
98
109
  */
99
- this.isInvalid = false;
110
+ this.isInvalid = linkedSignal(() => this.isInvalidInput(), /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
100
112
  /**
101
113
  * Indicates whether the checkbox is rendered as a single (standalone) item.
102
114
  */
103
- this.isSingle = false;
115
+ this.isSingle = input(false, { ...(ngDevMode ? { debugName: "isSingle" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
104
116
  /**
105
117
  * Child label component projected into the checkbox.
106
118
  */
@@ -121,60 +133,45 @@ class EclCheckboxDirective extends ECLBaseDirective {
121
133
  */
122
134
  this.eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective), /* @ts-ignore */
123
135
  ...(ngDevMode ? [{ debugName: "eclHelpBlockDirective" }] : /* istanbul ignore next */ []));
124
- }
125
- /**
126
- * Applies base CSS classes for the checkbox container.
127
- */
128
- get cssClasses() {
129
- return [super.getCssClasses('ecl-checkbox')].join(' ');
130
- }
131
- ngAfterContentInit() {
132
- this.updateChildElements();
133
- }
134
- ngOnChanges() {
135
- this.updateChildElements();
136
+ /**
137
+ * Applies base CSS classes for the checkbox container.
138
+ */
139
+ this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox'), /* @ts-ignore */
140
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
141
+ // Propagate disabled/invalid state to the projected child components
142
+ // whenever those states (or the queried children) change.
143
+ effect(() => {
144
+ this.updateChildElements();
145
+ });
136
146
  }
137
147
  updateChildElements() {
148
+ const isDisabled = this.isDisabled();
149
+ const isInvalid = this.isInvalid();
138
150
  const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();
139
151
  if (eclCheckboxLabelComponent) {
140
- eclCheckboxLabelComponent.isInvalid = this.isInvalid;
141
- eclCheckboxLabelComponent.isDisabled = this.isDisabled;
152
+ eclCheckboxLabelComponent.isInvalid.set(isInvalid);
153
+ eclCheckboxLabelComponent.isDisabled.set(isDisabled);
142
154
  }
143
155
  const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();
144
156
  if (eclCheckboxHelpComponent) {
145
- eclCheckboxHelpComponent.isDisabled = this.isDisabled;
157
+ eclCheckboxHelpComponent.isDisabled.set(isDisabled);
146
158
  }
147
159
  }
148
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
149
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclCheckboxDirective, isStandalone: true, selector: "[eclCheckbox]", inputs: { isDisabled: ["isDisabled", "isDisabled", booleanAttribute], isInvalid: ["isInvalid", "isInvalid", booleanAttribute], isSingle: ["isSingle", "isSingle", booleanAttribute] }, host: { properties: { "class.ecl-checkbox--disabled": "this.isDisabled", "class.ecl-checkbox--invalid": "this.isInvalid", "class.ecl-checkbox--single": "this.isSingle", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclCheckboxLabelComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclCheckboxHelpComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxHelpComponent), descendants: true, isSignal: true }, { propertyName: "eclFormLabelDirective", first: true, predicate: i0.forwardRef(() => EclFormLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclHelpBlockDirective", first: true, predicate: i0.forwardRef(() => EclHelpBlockDirective), descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
161
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclCheckboxDirective, isStandalone: true, selector: "[eclCheckbox]", inputs: { isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalidInput: { classPropertyName: "isInvalidInput", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, isSingle: { classPropertyName: "isSingle", publicName: "isSingle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()", "class.ecl-checkbox--disabled": "isDisabled()", "class.ecl-checkbox--invalid": "isInvalid()", "class.ecl-checkbox--single": "isSingle()" } }, queries: [{ propertyName: "eclCheckboxLabelComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclCheckboxHelpComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxHelpComponent), descendants: true, isSignal: true }, { propertyName: "eclFormLabelDirective", first: true, predicate: i0.forwardRef(() => EclFormLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclHelpBlockDirective", first: true, predicate: i0.forwardRef(() => EclHelpBlockDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
150
162
  }
151
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, decorators: [{
152
164
  type: Directive,
153
165
  args: [{
154
166
  selector: '[eclCheckbox]',
167
+ host: {
168
+ '[class]': 'cssClasses()',
169
+ '[class.ecl-checkbox--disabled]': 'isDisabled()',
170
+ '[class.ecl-checkbox--invalid]': 'isInvalid()',
171
+ '[class.ecl-checkbox--single]': 'isSingle()',
172
+ },
155
173
  }]
156
- }], propDecorators: { isDisabled: [{
157
- type: Input,
158
- args: [{ transform: booleanAttribute }]
159
- }, {
160
- type: HostBinding,
161
- args: ['class.ecl-checkbox--disabled']
162
- }], isInvalid: [{
163
- type: Input,
164
- args: [{ transform: booleanAttribute }]
165
- }, {
166
- type: HostBinding,
167
- args: ['class.ecl-checkbox--invalid']
168
- }], isSingle: [{
169
- type: Input,
170
- args: [{ transform: booleanAttribute }]
171
- }, {
172
- type: HostBinding,
173
- args: ['class.ecl-checkbox--single']
174
- }], eclCheckboxLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxLabelComponent), { isSignal: true }] }], eclCheckboxHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxHelpComponent), { isSignal: true }] }], eclFormLabelDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclFormLabelComponent), { isSignal: true }] }], eclHelpBlockDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclHelpBlockDirective), { isSignal: true }] }], cssClasses: [{
175
- type: HostBinding,
176
- args: ['class']
177
- }] } });
174
+ }], ctorParameters: () => [], propDecorators: { isDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }], isInvalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], isSingle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSingle", required: false }] }], eclCheckboxLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxLabelComponent), { isSignal: true }] }], eclCheckboxHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxHelpComponent), { isSignal: true }] }], eclFormLabelDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclFormLabelComponent), { isSignal: true }] }], eclHelpBlockDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclHelpBlockDirective), { isSignal: true }] }] } });
178
175
 
179
176
  /**
180
177
  * Directive that decorates the native checkbox input with ECL styles and syncs validation state.
@@ -184,33 +181,32 @@ class EclCheckboxInputDirective extends ECLBaseDirective {
184
181
  super(...arguments);
185
182
  this.eclCheckbox = inject(EclCheckboxDirective);
186
183
  this.ngControl = inject(NgControl, { optional: true, self: true });
187
- }
188
- /**
189
- * Applies base CSS classes for checkbox input.
190
- */
191
- get cssClasses() {
192
- return [super.getCssClasses('ecl-checkbox__input')].join(' ');
184
+ /**
185
+ * Applies base CSS classes for checkbox input.
186
+ */
187
+ this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__input'), /* @ts-ignore */
188
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
193
189
  }
194
190
  ngDoCheck() {
195
191
  if (this.ngControl) {
196
192
  if (this.eclCheckbox) {
197
- this.eclCheckbox.isInvalid = this.ngControl.invalid && this.ngControl.touched;
198
- this.eclCheckbox.isDisabled = this.ngControl.disabled;
193
+ this.eclCheckbox.isInvalid.set(!!this.ngControl.invalid && !!this.ngControl.touched);
194
+ this.eclCheckbox.isDisabled.set(!!this.ngControl.disabled);
199
195
  }
200
196
  }
201
197
  }
202
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
203
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclCheckboxInputDirective, isStandalone: true, selector: "input[eclCheckboxInput]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
199
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclCheckboxInputDirective, isStandalone: true, selector: "input[eclCheckboxInput]", host: { properties: { "class": "cssClasses()" } }, usesInheritance: true, ngImport: i0 }); }
204
200
  }
205
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxInputDirective, decorators: [{
206
202
  type: Directive,
207
203
  args: [{
208
204
  selector: 'input[eclCheckboxInput]',
205
+ host: {
206
+ '[class]': 'cssClasses()',
207
+ },
209
208
  }]
210
- }], propDecorators: { cssClasses: [{
211
- type: HostBinding,
212
- args: ['class']
213
- }] } });
209
+ }] });
214
210
 
215
211
  const EUI_ECL_CHECKBOX = [
216
212
  EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-checkbox.mjs","sources":["../../components/ecl-checkbox/ecl-checkbox-help.component.ts","../../components/ecl-checkbox/ecl-checkbox-help.component.html","../../components/ecl-checkbox/ecl-checkbox-label.component.ts","../../components/ecl-checkbox/ecl-checkbox-label.component.html","../../components/ecl-checkbox/ecl-checkbox.directive.ts","../../components/ecl-checkbox/ecl-checkbox-input.directive.ts","../../components/ecl-checkbox/index.ts","../../components/ecl-checkbox/eui-ecl-components-ecl-checkbox.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Displays help text associated with a checkbox.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclCheckboxHelp]',\n templateUrl: './ecl-checkbox-help.component.html',\n})\nexport class EclCheckboxHelpComponent extends ECLBaseDirective {\n /**\n * Indicates whether the help text is disabled (e.g. visually muted).\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox__help--disabled') isDisabled = false;\n\n /**\n * Applies base CSS classes for checkbox help.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__help')].join(' ');\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Input, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Label component for a checkbox, supporting state styles.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'label[eclCheckboxLabel]',\n templateUrl: './ecl-checkbox-label.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclCheckboxLabelComponent extends ECLBaseDirective {\n /**\n * Indicates whether the checkbox is in an invalid state.\n */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /**\n * Indicates whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n\n /**\n * Indicates whether the checkbox is required.\n */\n readonly isRequired = input(false, { transform: booleanAttribute });\n\n /**\n * Applies base CSS classes for checkbox label.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__label')].join(' ');\n }\n}\n","<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled\" [class.ecl-checkbox__box--invalid]=\"isInvalid\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n","import {\n AfterContentInit,\n Directive,\n HostBinding,\n Input,\n OnChanges,\n booleanAttribute,\n forwardRef,\n contentChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';\nimport { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\n\n/**\n * Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.\n */\n@Directive({\n selector: '[eclCheckbox]',\n})\nexport class EclCheckboxDirective extends ECLBaseDirective implements AfterContentInit, OnChanges {\n /**\n * Indicates whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--disabled') isDisabled = false;\n\n /**\n * Indicates whether the checkbox is in an invalid state.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--invalid') isInvalid = false;\n\n /**\n * Indicates whether the checkbox is rendered as a single (standalone) item.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--single') isSingle = false;\n\n /**\n * Child label component projected into the checkbox.\n */\n readonly eclCheckboxLabelComponent = contentChild(forwardRef(() => EclCheckboxLabelComponent));\n\n /**\n * Child help component projected into the checkbox.\n */\n readonly eclCheckboxHelpComponent = contentChild(forwardRef(() => EclCheckboxHelpComponent));\n\n /**\n * Optional form label component projected into the checkbox.\n */\n readonly eclFormLabelDirective = contentChild(forwardRef(() => EclFormLabelComponent));\n\n /**\n * Optional help block directive projected into the checkbox.\n */\n readonly eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective));\n\n /**\n * Applies base CSS classes for the checkbox container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ');\n }\n\n ngAfterContentInit(): void {\n this.updateChildElements();\n }\n\n ngOnChanges(): void {\n this.updateChildElements();\n }\n\n private updateChildElements(): void {\n const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();\n if (eclCheckboxLabelComponent) {\n eclCheckboxLabelComponent.isInvalid = this.isInvalid;\n eclCheckboxLabelComponent.isDisabled = this.isDisabled;\n }\n\n const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();\n if (eclCheckboxHelpComponent) {\n eclCheckboxHelpComponent.isDisabled = this.isDisabled;\n }\n }\n}\n","import { Directive, DoCheck, HostBinding, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCheckboxDirective } from './ecl-checkbox.directive';\n\n/**\n * Directive that decorates the native checkbox input with ECL styles and syncs validation state.\n */\n@Directive({\n selector: 'input[eclCheckboxInput]',\n})\nexport class EclCheckboxInputDirective extends ECLBaseDirective implements DoCheck {\n eclCheckbox = inject(EclCheckboxDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Applies base CSS classes for checkbox input.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__input')].join(' ');\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclCheckbox) {\n this.eclCheckbox.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n this.eclCheckbox.isDisabled = this.ngControl.disabled;\n }\n }\n }\n}\n","import { EclCheckboxDirective } from './ecl-checkbox.directive';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\nimport { EclCheckboxInputDirective } from './ecl-checkbox-input.directive';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\n\nexport * from './ecl-checkbox-input.directive';\nexport * from './ecl-checkbox.directive';\nexport * from './ecl-checkbox-label.component';\nexport * from './ecl-checkbox-help.component';\n\nexport const EUI_ECL_CHECKBOX = [\n EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,\n EclCheckboxDirective,\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-checkbox.mjs","sources":["../../components/ecl-checkbox/ecl-checkbox-help.component.ts","../../components/ecl-checkbox/ecl-checkbox-help.component.html","../../components/ecl-checkbox/ecl-checkbox-label.component.ts","../../components/ecl-checkbox/ecl-checkbox-label.component.html","../../components/ecl-checkbox/ecl-checkbox.directive.ts","../../components/ecl-checkbox/ecl-checkbox-input.directive.ts","../../components/ecl-checkbox/index.ts","../../components/ecl-checkbox/eui-ecl-components-ecl-checkbox.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, input, linkedSignal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Displays help text associated with a checkbox.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclCheckboxHelp]',\n templateUrl: './ecl-checkbox-help.component.html',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox__help--disabled]': 'isDisabled()',\n },\n})\nexport class EclCheckboxHelpComponent extends ECLBaseDirective {\n /**\n * Input controlling whether the help text starts in a disabled (visually muted) state.\n */\n readonly isDisabledInput = input(false, { alias: 'isDisabled', transform: booleanAttribute });\n\n /**\n * Indicates whether the help text is disabled (e.g. visually muted).\n * Seeded from the `isDisabled` input but can be updated imperatively by the\n * parent checkbox directive.\n */\n readonly isDisabled = linkedSignal(() => this.isDisabledInput());\n\n /**\n * Applies base CSS classes for checkbox help.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__help'));\n}\n","<ng-content></ng-content>\n","import { Component, ViewEncapsulation, booleanAttribute, computed, input, signal } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Label component for a checkbox, supporting state styles.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'label[eclCheckboxLabel]',\n templateUrl: './ecl-checkbox-label.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclCheckboxLabelComponent extends ECLBaseDirective {\n /**\n * Indicates whether the checkbox is in an invalid state.\n * Set imperatively by the parent checkbox directive.\n */\n readonly isInvalid = signal(false);\n\n /**\n * Indicates whether the checkbox is disabled.\n * Set imperatively by the parent checkbox directive.\n */\n readonly isDisabled = signal(false);\n\n /**\n * Indicates whether the checkbox is required.\n */\n readonly isRequired = input(false, { transform: booleanAttribute });\n\n /**\n * Applies base CSS classes for checkbox label.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__label'));\n}\n","<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n","import {\n Directive,\n booleanAttribute,\n computed,\n forwardRef,\n input,\n linkedSignal,\n effect,\n contentChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';\nimport { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\n\n/**\n * Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.\n */\n@Directive({\n selector: '[eclCheckbox]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox--disabled]': 'isDisabled()',\n '[class.ecl-checkbox--invalid]': 'isInvalid()',\n '[class.ecl-checkbox--single]': 'isSingle()',\n },\n})\nexport class EclCheckboxDirective extends ECLBaseDirective {\n /**\n * Input controlling whether the checkbox starts disabled.\n * Automatically coerced to a boolean value.\n */\n readonly isDisabledInput = input(false, { alias: 'isDisabled', transform: booleanAttribute });\n\n /**\n * Indicates whether the checkbox is disabled.\n * Seeded from the `isDisabled` input but can be updated imperatively by the\n * checkbox input directive as the associated control's state changes.\n */\n readonly isDisabled = linkedSignal(() => this.isDisabledInput());\n\n /**\n * Input controlling whether the checkbox starts in an invalid state.\n * Automatically coerced to a boolean value.\n */\n readonly isInvalidInput = input(false, { alias: 'isInvalid', transform: booleanAttribute });\n\n /**\n * Indicates whether the checkbox is in an invalid state.\n * Seeded from the `isInvalid` input but can be updated imperatively by the\n * checkbox input directive as the associated control's validity changes.\n */\n readonly isInvalid = linkedSignal(() => this.isInvalidInput());\n\n /**\n * Indicates whether the checkbox is rendered as a single (standalone) item.\n */\n readonly isSingle = input(false, { transform: booleanAttribute });\n\n /**\n * Child label component projected into the checkbox.\n */\n readonly eclCheckboxLabelComponent = contentChild(forwardRef(() => EclCheckboxLabelComponent));\n\n /**\n * Child help component projected into the checkbox.\n */\n readonly eclCheckboxHelpComponent = contentChild(forwardRef(() => EclCheckboxHelpComponent));\n\n /**\n * Optional form label component projected into the checkbox.\n */\n readonly eclFormLabelDirective = contentChild(forwardRef(() => EclFormLabelComponent));\n\n /**\n * Optional help block directive projected into the checkbox.\n */\n readonly eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective));\n\n /**\n * Applies base CSS classes for the checkbox container.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox'));\n\n constructor() {\n super();\n // Propagate disabled/invalid state to the projected child components\n // whenever those states (or the queried children) change.\n effect(() => {\n this.updateChildElements();\n });\n }\n\n private updateChildElements(): void {\n const isDisabled = this.isDisabled();\n const isInvalid = this.isInvalid();\n\n const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();\n if (eclCheckboxLabelComponent) {\n eclCheckboxLabelComponent.isInvalid.set(isInvalid);\n eclCheckboxLabelComponent.isDisabled.set(isDisabled);\n }\n\n const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();\n if (eclCheckboxHelpComponent) {\n eclCheckboxHelpComponent.isDisabled.set(isDisabled);\n }\n }\n}\n","import { Directive, DoCheck, computed, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCheckboxDirective } from './ecl-checkbox.directive';\n\n/**\n * Directive that decorates the native checkbox input with ECL styles and syncs validation state.\n */\n@Directive({\n selector: 'input[eclCheckboxInput]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclCheckboxInputDirective extends ECLBaseDirective implements DoCheck {\n eclCheckbox = inject(EclCheckboxDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Applies base CSS classes for checkbox input.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__input'));\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclCheckbox) {\n this.eclCheckbox.isInvalid.set(!!this.ngControl.invalid && !!this.ngControl.touched);\n this.eclCheckbox.isDisabled.set(!!this.ngControl.disabled);\n }\n }\n }\n}\n","import { EclCheckboxDirective } from './ecl-checkbox.directive';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\nimport { EclCheckboxInputDirective } from './ecl-checkbox-input.directive';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\n\nexport * from './ecl-checkbox-input.directive';\nexport * from './ecl-checkbox.directive';\nexport * from './ecl-checkbox-label.component';\nexport * from './ecl-checkbox-help.component';\n\nexport const EUI_ECL_CHECKBOX = [\n EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,\n EclCheckboxDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { formatDate, DatePipe } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, inject, Input, HostBinding, Component } from '@angular/core';
3
+ import { input, computed, inject, Component } from '@angular/core';
4
4
  import '@angular/common/locales/global/bg';
5
5
  import '@angular/common/locales/global/da';
6
6
  import '@angular/common/locales/global/en';
@@ -37,16 +37,6 @@ class EclDateBlockComponent extends ECLBaseDirective {
37
37
  const variant = this.variant();
38
38
  return [super.getCssClasses('ecl-date-block'), variant ? `ecl-date-block--${variant}` : ''].join(' ').trim();
39
39
  }
40
- /**
41
- * Sets the `datetime` attribute of the `<time>` element.
42
- * If not provided, it is derived from `date` and `dateFormat`.
43
- */
44
- get datetime() {
45
- return this.getDatetime();
46
- }
47
- set datetime(value) {
48
- this._datetime = value;
49
- }
50
40
  constructor() {
51
41
  super();
52
42
  /**
@@ -91,15 +81,22 @@ class EclDateBlockComponent extends ECLBaseDirective {
91
81
  */
92
82
  this.year = input(undefined, /* @ts-ignore */
93
83
  ...(ngDevMode ? [{ debugName: "year" }] : /* istanbul ignore next */ []));
84
+ /**
85
+ * Explicit value for the `datetime` attribute of the `<time>` element (optional).
86
+ * If not provided, it is derived from `date` and `dateFormat`.
87
+ */
88
+ this.datetimeInput = input(undefined, { ...(ngDevMode ? { debugName: "datetimeInput" } : /* istanbul ignore next */ {}), alias: 'datetime' });
94
89
  this.locale = 'en';
95
- this._datetime = null;
90
+ /**
91
+ * The resolved `datetime` attribute value. Uses the explicit `datetime` input
92
+ * when provided, otherwise derives it from `date` and `dateFormat`.
93
+ */
94
+ this.datetime = computed(() => this.datetimeInput() || this.getFormattedDate(this.date(), this.dateFormat()), /* @ts-ignore */
95
+ ...(ngDevMode ? [{ debugName: "datetime" }] : /* istanbul ignore next */ []));
96
96
  this.translateService = inject(TranslateService);
97
97
  const translateService = this.translateService;
98
98
  this.locale = translateService.currentLang();
99
99
  }
100
- getDatetime() {
101
- return this._datetime || this.getFormattedDate(this.date(), this.dateFormat());
102
- }
103
100
  getFormattedDate(date, dateFormat) {
104
101
  if (date) {
105
102
  return formatDate(date, dateFormat, this.translateService.currentLang());
@@ -109,20 +106,15 @@ class EclDateBlockComponent extends ECLBaseDirective {
109
106
  }
110
107
  }
111
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDateBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclDateBlockComponent, isStandalone: true, selector: "time[eclDateBlock]", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, day: { classPropertyName: "day", publicName: "day", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, monthTitle: { classPropertyName: "monthTitle", publicName: "monthTitle", isSignal: true, isRequired: false, transformFunction: null }, year: { classPropertyName: "year", publicName: "year", isSignal: true, isRequired: false, transformFunction: null }, datetime: { classPropertyName: "datetime", publicName: "datetime", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses", "attr.datetime": "this.datetime" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-date-block__daytime\">{{ datetime || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n", dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclDateBlockComponent, isStandalone: true, selector: "time[eclDateBlock]", inputs: { date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, day: { classPropertyName: "day", publicName: "day", isSignal: true, isRequired: false, transformFunction: null }, month: { classPropertyName: "month", publicName: "month", isSignal: true, isRequired: false, transformFunction: null }, monthTitle: { classPropertyName: "monthTitle", publicName: "monthTitle", isSignal: true, isRequired: false, transformFunction: null }, year: { classPropertyName: "year", publicName: "year", isSignal: true, isRequired: false, transformFunction: null }, datetimeInput: { classPropertyName: "datetimeInput", publicName: "datetime", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses", "attr.datetime": "datetime()" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-date-block__daytime\">{{ datetime() || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n", dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }] }); }
113
110
  }
114
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclDateBlockComponent, decorators: [{
115
112
  type: Component,
116
- args: [{ selector: 'time[eclDateBlock]', imports: [DatePipe], template: "<span class=\"ecl-date-block__daytime\">{{ datetime || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n" }]
117
- }], ctorParameters: () => [], propDecorators: { date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], day: [{ type: i0.Input, args: [{ isSignal: true, alias: "day", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], monthTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthTitle", required: false }] }], year: [{ type: i0.Input, args: [{ isSignal: true, alias: "year", required: false }] }], cssClasses: [{
118
- type: HostBinding,
119
- args: ['class']
120
- }], datetime: [{
121
- type: Input
122
- }, {
123
- type: HostBinding,
124
- args: ['attr.datetime']
125
- }] } });
113
+ args: [{ selector: 'time[eclDateBlock]', imports: [DatePipe], host: {
114
+ '[class]': 'cssClasses',
115
+ '[attr.datetime]': 'datetime()',
116
+ }, template: "<span class=\"ecl-date-block__daytime\">{{ datetime() || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n" }]
117
+ }], ctorParameters: () => [], propDecorators: { date: [{ type: i0.Input, args: [{ isSignal: true, alias: "date", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], day: [{ type: i0.Input, args: [{ isSignal: true, alias: "day", required: false }] }], month: [{ type: i0.Input, args: [{ isSignal: true, alias: "month", required: false }] }], monthTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "monthTitle", required: false }] }], year: [{ type: i0.Input, args: [{ isSignal: true, alias: "year", required: false }] }], datetimeInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "datetime", required: false }] }] } });
126
118
 
127
119
  const EUI_ECL_DATE_BLOCK = [
128
120
  EclDateBlockComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-date-block.mjs","sources":["../../components/ecl-date-block/ecl-date-block.component.ts","../../components/ecl-date-block/ecl-date-block.component.html","../../components/ecl-date-block/index.ts","../../components/ecl-date-block/eui-ecl-components-ecl-date-block.ts"],"sourcesContent":["import { formatDate, DatePipe } from '@angular/common';\nimport { Component, Input, HostBinding, inject, input } from '@angular/core';\nimport '@angular/common/locales/global/bg';\nimport '@angular/common/locales/global/da';\nimport '@angular/common/locales/global/en';\nimport '@angular/common/locales/global/et';\nimport '@angular/common/locales/global/fr';\nimport '@angular/common/locales/global/hr';\nimport '@angular/common/locales/global/lv';\nimport '@angular/common/locales/global/hu';\nimport '@angular/common/locales/global/nl';\nimport '@angular/common/locales/global/pt';\nimport '@angular/common/locales/global/sk';\nimport '@angular/common/locales/global/fi';\nimport '@angular/common/locales/global/cs';\nimport '@angular/common/locales/global/de';\nimport '@angular/common/locales/global/el';\nimport '@angular/common/locales/global/es';\nimport '@angular/common/locales/global/ga';\nimport '@angular/common/locales/global/it';\nimport '@angular/common/locales/global/lt';\nimport '@angular/common/locales/global/mt';\nimport '@angular/common/locales/global/pl';\nimport '@angular/common/locales/global/ro';\nimport '@angular/common/locales/global/sl';\nimport '@angular/common/locales/global/sv';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component used to display a formatted date in a styled time element.\n * Designed for use within content components such as content blocks or items.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'time[eclDateBlock]',\n templateUrl: './ecl-date-block.component.html',\n imports: [DatePipe],\n})\nexport class EclDateBlockComponent extends ECLBaseDirective {\n /**\n * The date to be displayed. If not null, it's used to generate the `datetime` attribute and visual output.\n */\n readonly date = input<Date>(undefined);\n\n /**\n * The format to be used when rendering the date string (Angular DatePipe format).\n * Default is `'dd/M/yyyy'`.\n */\n readonly dateFormat = input('dd/M/yyyy');\n\n /**\n * Optional visual variant of the date block. Can be:\n * - `'ongoing'`: for ongoing events\n * - `'past'`: for past events\n * This changes styling only.\n */\n readonly variant = input<'ongoing' | 'past'>(null);\n\n /**\n * Explicit string for day part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly day = input<string>(undefined);\n\n /**\n * Explicit string for month part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly month = input<string>(undefined);\n\n /**\n * Explicit string used as an accessible or verbose label for the month (optional).\n */\n readonly monthTitle = input<string>(undefined);\n\n /**\n * Explicit string for year part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly year = input<string>(undefined);\n\n locale = 'en';\n @HostBinding('class')\n get cssClasses(): string {\n const variant = this.variant();\n return [super.getCssClasses('ecl-date-block'), variant ? `ecl-date-block--${variant}` : ''].join(' ').trim();\n }\n\n /**\n * Sets the `datetime` attribute of the `<time>` element.\n * If not provided, it is derived from `date` and `dateFormat`.\n */\n @Input()\n @HostBinding('attr.datetime')\n get datetime(): string {\n return this.getDatetime();\n }\n set datetime(value) {\n this._datetime = value;\n }\n private _datetime: string = null;\n private translateService = inject(TranslateService);\n\n constructor() {\n super();\n const translateService = this.translateService;\n\n this.locale = translateService.currentLang();\n }\n\n private getDatetime(): string {\n return this._datetime || this.getFormattedDate(this.date(), this.dateFormat());\n }\n\n private getFormattedDate(date: Date, dateFormat: string): string {\n if (date) {\n return formatDate(date, dateFormat, this.translateService.currentLang());\n } else {\n return null;\n }\n }\n}\n","<span class=\"ecl-date-block__daytime\">{{ datetime || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n","import { EclDateBlockComponent } from './ecl-date-block.component';\n\nexport * from './ecl-date-block.component';\n\nexport const EUI_ECL_DATE_BLOCK = [\n EclDateBlockComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;;;AAGG;AAOG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AA4CvD,IAAA,IACI,UAAU,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,CAAA,gBAAA,EAAmB,OAAO,CAAA,CAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAChH;AAEA;;;AAGG;AACH,IAAA,IAEI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC7B;IACA,IAAI,QAAQ,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;AAIA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAjEX;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,SAAS;iFAAC;AAEtC;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,WAAW;uFAAC;AAExC;;;;;AAKG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,IAAI;oFAAC;AAElD;;;AAGG;QACM,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,SAAS;gFAAC;AAEvC;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS;kFAAC;AAEzC;;AAEG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,SAAS;uFAAC;AAE9C;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,SAAS;iFAAC;QAExC,IAAA,CAAA,MAAM,GAAG,IAAI;QAmBL,IAAA,CAAA,SAAS,GAAW,IAAI;AACxB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAI/C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAE9C,QAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE;IAChD;IAEQ,WAAW,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAClF;IAEQ,gBAAgB,CAAC,IAAU,EAAE,UAAkB,EAAA;QACnD,IAAI,IAAI,EAAE;AACN,YAAA,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAC5E;aAAO;AACH,YAAA,OAAO,IAAI;QACf;IACJ;8GAlFS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvClC,+fAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,ED+Bc,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAET,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BAEI,oBAAoB,EAAA,OAAA,EAErB,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,+fAAA,EAAA;;sBA8ClB,WAAW;uBAAC,OAAO;;sBAUnB;;sBACA,WAAW;uBAAC,eAAe;;;AE1FzB,MAAM,kBAAkB,GAAG;IAC9B,qBAAqB;;;ACLzB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-date-block.mjs","sources":["../../components/ecl-date-block/ecl-date-block.component.ts","../../components/ecl-date-block/ecl-date-block.component.html","../../components/ecl-date-block/index.ts","../../components/ecl-date-block/eui-ecl-components-ecl-date-block.ts"],"sourcesContent":["import { formatDate, DatePipe } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport '@angular/common/locales/global/bg';\nimport '@angular/common/locales/global/da';\nimport '@angular/common/locales/global/en';\nimport '@angular/common/locales/global/et';\nimport '@angular/common/locales/global/fr';\nimport '@angular/common/locales/global/hr';\nimport '@angular/common/locales/global/lv';\nimport '@angular/common/locales/global/hu';\nimport '@angular/common/locales/global/nl';\nimport '@angular/common/locales/global/pt';\nimport '@angular/common/locales/global/sk';\nimport '@angular/common/locales/global/fi';\nimport '@angular/common/locales/global/cs';\nimport '@angular/common/locales/global/de';\nimport '@angular/common/locales/global/el';\nimport '@angular/common/locales/global/es';\nimport '@angular/common/locales/global/ga';\nimport '@angular/common/locales/global/it';\nimport '@angular/common/locales/global/lt';\nimport '@angular/common/locales/global/mt';\nimport '@angular/common/locales/global/pl';\nimport '@angular/common/locales/global/ro';\nimport '@angular/common/locales/global/sl';\nimport '@angular/common/locales/global/sv';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component used to display a formatted date in a styled time element.\n * Designed for use within content components such as content blocks or items.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'time[eclDateBlock]',\n templateUrl: './ecl-date-block.component.html',\n imports: [DatePipe],\n host: {\n '[class]': 'cssClasses',\n '[attr.datetime]': 'datetime()',\n },\n})\nexport class EclDateBlockComponent extends ECLBaseDirective {\n /**\n * The date to be displayed. If not null, it's used to generate the `datetime` attribute and visual output.\n */\n readonly date = input<Date>(undefined);\n\n /**\n * The format to be used when rendering the date string (Angular DatePipe format).\n * Default is `'dd/M/yyyy'`.\n */\n readonly dateFormat = input('dd/M/yyyy');\n\n /**\n * Optional visual variant of the date block. Can be:\n * - `'ongoing'`: for ongoing events\n * - `'past'`: for past events\n * This changes styling only.\n */\n readonly variant = input<'ongoing' | 'past'>(null);\n\n /**\n * Explicit string for day part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly day = input<string>(undefined);\n\n /**\n * Explicit string for month part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly month = input<string>(undefined);\n\n /**\n * Explicit string used as an accessible or verbose label for the month (optional).\n */\n readonly monthTitle = input<string>(undefined);\n\n /**\n * Explicit string for year part of the date (optional).\n * Used when date is not set or overridden manually.\n */\n readonly year = input<string>(undefined);\n\n /**\n * Explicit value for the `datetime` attribute of the `<time>` element (optional).\n * If not provided, it is derived from `date` and `dateFormat`.\n */\n readonly datetimeInput = input<string>(undefined, { alias: 'datetime' });\n\n locale = 'en';\n\n get cssClasses(): string {\n const variant = this.variant();\n return [super.getCssClasses('ecl-date-block'), variant ? `ecl-date-block--${variant}` : ''].join(' ').trim();\n }\n\n /**\n * The resolved `datetime` attribute value. Uses the explicit `datetime` input\n * when provided, otherwise derives it from `date` and `dateFormat`.\n */\n readonly datetime = computed(() => this.datetimeInput() || this.getFormattedDate(this.date(), this.dateFormat()));\n\n private translateService = inject(TranslateService);\n\n constructor() {\n super();\n const translateService = this.translateService;\n\n this.locale = translateService.currentLang();\n }\n\n private getFormattedDate(date: Date, dateFormat: string): string {\n if (date) {\n return formatDate(date, dateFormat, this.translateService.currentLang());\n } else {\n return null;\n }\n }\n}\n","<span class=\"ecl-date-block__daytime\">{{ datetime() || (date() | date: dateFormat()) }}</span>\n<span class=\"ecl-date-block__day\" aria-hidden=\"true\">{{ day() || (date() | date: 'd') }}</span>\n<abbr [title]=\"monthTitle() || month() || (date() | date: 'MMMM' : '' : locale)\" class=\"ecl-date-block__month\" aria-hidden=\"true\">\n {{ month() || (date() | date: 'MMM' : '' : locale) }}\n</abbr>\n<span class=\"ecl-date-block__year\" aria-hidden=\"true\">{{ year() || (date() | date: 'yyyy') }}</span>\n","import { EclDateBlockComponent } from './ecl-date-block.component';\n\nexport * from './ecl-date-block.component';\n\nexport const EUI_ECL_DATE_BLOCK = [\n EclDateBlockComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}