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

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 (171) hide show
  1. package/docs/changelog.html +74 -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 -1
  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 +1 -1
  16. package/docs/components/EclCategoryFilterComponent.html +1 -1
  17. package/docs/components/EclCategoryFilterItemComponent.html +1 -1
  18. package/docs/components/EclCategoryFilterListComponent.html +1 -1
  19. package/docs/components/EclCheckboxHelpComponent.html +1 -1
  20. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  21. package/docs/components/EclContentBlockComponent.html +1 -1
  22. package/docs/components/EclContentItemComponent.html +1 -1
  23. package/docs/components/EclDateBlockComponent.html +1 -1
  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 +1 -1
  30. package/docs/components/EclFeaturedItemComponent.html +1 -1
  31. package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
  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 +1 -1
  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/EclTextAreaDirective.html +53 -100
  133. package/docs/directives/EclTextInputDirective.html +47 -144
  134. package/docs/directives/EclTimelineItemLabelDirective.html +0 -46
  135. package/docs/directives/EclTimelineItemTitleDirective.html +0 -46
  136. package/docs/directives/EclTimelineSetDirective.html +0 -104
  137. package/docs/directives/EclTooltipDirective.html +4 -157
  138. package/docs/js/search/search_index.js +2 -2
  139. package/docs/json/EclTimelineComponent.md +1 -1
  140. package/docs/json/EclTimelineItemComponent.md +4 -4
  141. package/docs/json/EclTimelineItemTogglerComponent.md +2 -2
  142. package/docs/json/documentation.json +1673 -2083
  143. package/docs/llms.txt +21 -25
  144. package/docs/properties.html +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-tag.mjs +19 -22
  146. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +16 -17
  148. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +14 -17
  150. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  151. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +10 -9
  152. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  153. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +132 -133
  154. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  155. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs +8 -14
  156. package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
  157. package/fesm2022/eui-ecl-core.mjs +0 -1
  158. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  159. package/package.json +1 -1
  160. package/types/eui-ecl-components-ecl-tag.d.ts +2 -3
  161. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  162. package/types/eui-ecl-components-ecl-text-area.d.ts +2 -2
  163. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  164. package/types/eui-ecl-components-ecl-text-input.d.ts +3 -3
  165. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  166. package/types/eui-ecl-components-ecl-text-media.d.ts +1 -1
  167. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  168. package/types/eui-ecl-components-ecl-timeline.d.ts +65 -50
  169. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  170. package/types/eui-ecl-components-ecl-tooltip.d.ts.map +1 -1
  171. package/types/eui-ecl-core.d.ts.map +1 -1
package/docs/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # eui documentation
2
2
 
3
- > Generated by compodoc 2.0.0 at 2026-10-06T17:13:34.755Z, llm-md export.
3
+ > Generated by compodoc 2.0.0 at 2026-10-08T16:06:39.561Z, llm-md export.
4
4
 
5
5
  ## Modules
6
6
 
@@ -3359,7 +3359,8 @@ Outputs:
3359
3359
  - `class: string = ''`
3360
3360
 
3361
3361
  Properties:
3362
- - `isVisible: unknown = true`
3362
+ - ``cssClasses: unknown = computed(() => { const variant = this.variant(); return [ super.getCssClasses('ecl-tag'), variant ? `ecl-tag--${variant}` : '', this.isWrapped() ? '' : 'ecl-tag…``
3363
+ - `isVisible: unknown = signal(true)`
3363
3364
  - `title: string = 'dismiss'`
3364
3365
 
3365
3366
  Methods:
@@ -3383,13 +3384,16 @@ Inputs:
3383
3384
  Outputs:
3384
3385
  - `class: string = ''`
3385
3386
 
3387
+ Properties:
3388
+ - `cssClasses: unknown = computed(() => { return [super.getCssClasses('ecl-text-media'), this.variant() === 'primary' ? 'ecl-text-media--primary' : '', this.mediaPosition() === 'left' ?…`
3389
+
3386
3390
  Methods:
3387
3391
  - `getCssClasses(rootClass: string): string`
3388
3392
 
3389
3393
  ### EclTimelineComponent
3390
3394
 
3391
3395
  File: `packages/ecl/components/ecl-timeline/ecl-timeline.component.ts`
3392
- Selector: `ecl-timeline, ol[eclTimeline]`
3396
+ Selector: `ol[eclTimeline]`
3393
3397
 
3394
3398
  Inputs:
3395
3399
  - `class: string = ''`
@@ -3399,25 +3403,20 @@ Inputs:
3399
3403
  Outputs:
3400
3404
  - `class: string = ''`
3401
3405
 
3402
- Properties:
3403
- - `isExpanded: boolean | null = null`
3404
- - `timelineItems: unknown = contentChildren(forwardRef(() => EclTimelineItemComponent))` — List of projected EclTimelineItemComponent instances. Collected using @ContentChildren .
3405
-
3406
3406
  Methods:
3407
- - `onFocusFirstExpandedLink(item: EclTimelineItemComponent): void` — Focuses the first link in the expanded timeline item, ensuring it's only done once per toggle group interaction.
3408
3407
  - `getCssClasses(rootClass: string): string`
3409
3408
 
3410
3409
  ### EclTimelineItemComponent
3411
3410
 
3412
3411
  File: `packages/ecl/components/ecl-timeline/ecl-timeline-item.component.ts`
3413
- Selector: `ecl-timeline-item, li[eclTimelineItem]`
3412
+ Selector: `li[eclTimelineItem]`
3414
3413
 
3415
3414
  Inputs:
3416
3415
  - `collapseLabel: string = 'Collapse'` — Text label shown when the item is expanded and can be collapsed. Defaults to 'Collapse' .
3417
3416
  - `expandLabel: string = 'Expand'` — Text label shown when the item is collapsed and can be expanded. Defaults to 'Expand' .
3418
- - `isCollapsed: boolean = false` — Whether the item is collapsed. Adds the ecl-timeline\_\_item--collapsed CSS class when true.
3417
+ - `isCollapsed: boolean = false` — Whether the item is initially collapsed. Applies the ecl-timeline\_\_item--collapsed CSS class when true.
3419
3418
  - `isHeadline: boolean = false`
3420
- - `isToggler: boolean = false` — Whether the item is a toggler (e.g. expands/collapses related items). Adds the ecl-timeline\_\_item--toggle CSS class when true.
3419
+ - `isToggler: boolean = false` — Whether the item is a toggler (e.g. expands/collapses related items). Applies the ecl-timeline\_\_item--toggle CSS class when true.
3421
3420
  - `isTogglerExpanded: boolean = false` — Indicates whether the toggler is initially expanded. Used for toggler-type items.
3422
3421
  - `toggleGroup: string = undefined` — Name of the toggle group that this item belongs to. Used to coordinate collapsing/expanding related items.
3423
3422
  - `class: string = ''`
@@ -3425,25 +3424,21 @@ Inputs:
3425
3424
  - `tabindex = undefined`
3426
3425
 
3427
3426
  Outputs:
3428
- - `toggle: EventEmitter = new EventEmitter<EclTimelineItemToggleEvent>()` — Event emitted when the toggler is clicked. Consumers can call preventDefault() on the event to cancel toggle behavior.
3429
3427
  - `isTogglerExpanded: boolean = false` — Indicates whether the toggler is initially expanded. Used for toggler-type items.
3428
+ - `toggle: EclTimelineItemToggleEvent` — Event emitted when the toggler is clicked. Consumers can call preventDefault() on the event to cancel toggle behavior.
3430
3429
  - `class: string = ''`
3431
3430
 
3432
3431
  Properties:
3433
- - `eclLink: unknown = contentChild(forwardRef(() => EclLinkDirective))` — Reference to a projected ECL link, used for setting focus after toggle.
3434
- - `eclTimelineItemLabel: unknown = contentChild(forwardRef(() => EclTimelineItemLabelDirective), { read: ElementRef })` — Reference to a projected label for the item. Used to set height, when item has no content and title.
3435
- - `timelineItemToggler: unknown = contentChild(forwardRef(() => EclTimelineItemTogglerComponent))` — Reference to a projected custom toggler component.
3436
- - `timelineTitle: unknown = contentChild(forwardRef(() => EclTimelineItemTitleDirective))`
3432
+ - `eclLink: unknown = contentChild(forwardRef(() => EclLinkDirective))` — Reference to a projected ECL link, used for setting focus after toggle. Read by the parent EclTimelineComponent to move focus after a toggle.
3433
+ - `isCollapsedState: unknown = linkedSignal(() => this.isCollapsed())` — Live collapsed state of the item. Seeded from the isCollapsed input but writable at runtime, so the parent EclTimelineComponent can expand or collapse grouped items in response to a toggler interaction. Resets to the input value if the input changes.
3437
3434
 
3438
3435
  Methods:
3439
- - `hasDefaultToggler(): boolean` — Checks whether the default toggler UI should be used. Returns true if this is a toggler and no custom toggler component is projected.
3440
- - `onTogglerClick(evt: MouseEvent): void` — Handles click events from the default toggler element.
3441
3436
  - `getCssClasses(rootClass: string): string`
3442
3437
 
3443
3438
  ### EclTimelineItemTogglerComponent
3444
3439
 
3445
3440
  File: `packages/ecl/components/ecl-timeline/ecl-timeline-item-toggler.component.ts`
3446
- Selector: `ecl-timeline-item-toggler, li[eclTimelineItemToggler]`
3441
+ Selector: `li[eclTimelineItemToggler]`
3447
3442
 
3448
3443
  Description: Component representing a toggler inside a timeline item. Emits a toggle event when clicked.
3449
3444
 
@@ -3453,11 +3448,10 @@ Inputs:
3453
3448
  - `tabindex = undefined`
3454
3449
 
3455
3450
  Outputs:
3456
- - `toggle: EventEmitter<void> = new EventEmitter()` — Event emitted when the toggler is activated (clicked). Used to trigger expand/collapse behavior in the parent timeline item.
3451
+ - `toggle: void` — Event emitted when the toggler is activated (clicked). Used to trigger expand/collapse behavior in the parent timeline item.
3457
3452
  - `class: string = ''`
3458
3453
 
3459
3454
  Methods:
3460
- - `onTogglerClick(): void` — Handles click events on the toggler element and emits the toggle event.
3461
3455
  - `getCssClasses(rootClass: string): string`
3462
3456
 
3463
3457
  ## Directives
@@ -3729,7 +3723,6 @@ Methods:
3729
3723
 
3730
3724
  File: `packages/ecl/core/ecl-base.directive.ts`
3731
3725
  Selector: `[eclBase]`
3732
- Standalone: yes
3733
3726
 
3734
3727
  Inputs:
3735
3728
  - `class: string = ''`
@@ -6909,6 +6902,9 @@ Inputs:
6909
6902
  Outputs:
6910
6903
  - `class: string = ''`
6911
6904
 
6905
+ Properties:
6906
+ - ``cssClasses: unknown = computed(() => { const eclSize = this.eclSize(); return [super.getCssClasses('ecl-text-area'), eclSize ? `ecl-text-area--${eclSize}` : ''].join(' ').trim(); })`` — Adds specific classes for the component.
6907
+
6912
6908
  Methods:
6913
6909
  - `getCssClasses(rootClass: string): string`
6914
6910
 
@@ -6930,6 +6926,9 @@ Inputs:
6930
6926
  Outputs:
6931
6927
  - `class: string = ''`
6932
6928
 
6929
+ Properties:
6930
+ - ``cssClasses: unknown = computed(() => { const eclSize = this.eclSize(); return [super.getCssClasses('ecl-text-input'), eclSize ? `ecl-text-input--${eclSize}` : ''].join(' ').trim(); }…`` — Adds ECL classes for the component.
6931
+
6933
6932
  Methods:
6934
6933
  - `getCssClasses(rootClass: string): string`
6935
6934
 
@@ -7029,9 +7028,6 @@ Inputs:
7029
7028
  Outputs:
7030
7029
  - `class: string = ''`
7031
7030
 
7032
- Properties:
7033
- - `hasClass: unknown = true`
7034
-
7035
7031
  Methods:
7036
7032
  - `getCssClasses(rootClass: string): string`
7037
7033
 
@@ -128,7 +128,7 @@
128
128
  </ol>
129
129
  <ul class="properties-list">
130
130
  <li>
131
- <b>Version</b> : 22.0.0-alpha.40</li>
131
+ <b>Version</b> : 22.0.0-alpha.41</li>
132
132
  </ul>
133
133
 
134
134
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, output, inject, ElementRef, afterNextRender, HostBinding, Component, Directive } from '@angular/core';
2
+ import { input, booleanAttribute, output, signal, computed, inject, ElementRef, afterNextRender, Component, HostBinding, Directive } from '@angular/core';
3
3
  import { TitleCasePipe } from '@angular/common';
4
4
  import { EclBaseEvent, ECLBaseDirective, KeyCode } from '@eui/ecl/core';
5
5
  import { Subject, fromEvent, takeUntil } from 'rxjs';
@@ -13,16 +13,6 @@ class EclTagRemoveEvent extends EclBaseEvent {
13
13
  }
14
14
 
15
15
  class EclTagComponent extends ECLBaseDirective {
16
- get isHidden() {
17
- return this.isVisible ? null : 'none';
18
- }
19
- get cssClasses() {
20
- const variant = this.variant();
21
- return [super.getCssClasses('ecl-tag'),
22
- variant ? `ecl-tag--${variant}` : '',
23
- this.isWrapped() ? '' : 'ecl-tag--nowrap',
24
- ].join(' ').trim();
25
- }
26
16
  constructor() {
27
17
  super();
28
18
  /**
@@ -42,7 +32,17 @@ class EclTagComponent extends ECLBaseDirective {
42
32
  * Can be prevented by calling `preventDefault()` on the emitted event.
43
33
  */
44
34
  this.remove = output();
45
- this.isVisible = true;
35
+ this.isVisible = signal(true, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "isVisible" }] : /* istanbul ignore next */ []));
37
+ this.cssClasses = computed(() => {
38
+ const variant = this.variant();
39
+ return [
40
+ super.getCssClasses('ecl-tag'),
41
+ variant ? `ecl-tag--${variant}` : '',
42
+ this.isWrapped() ? '' : 'ecl-tag--nowrap',
43
+ ].join(' ').trim();
44
+ }, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
46
46
  this.title = 'dismiss';
47
47
  this.el = inject(ElementRef);
48
48
  this.destroy$ = new Subject();
@@ -71,7 +71,7 @@ class EclTagComponent extends ECLBaseDirective {
71
71
  const event = new EclTagRemoveEvent();
72
72
  this.remove.emit(event);
73
73
  if (!event.defaultPrevented) {
74
- this.isVisible = false;
74
+ this.isVisible.set(false);
75
75
  }
76
76
  }
77
77
  connectEvents() {
@@ -84,18 +84,15 @@ class EclTagComponent extends ECLBaseDirective {
84
84
  });
85
85
  }
86
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclTagComponent, isStandalone: true, selector: "ecl-tag, [eclTag]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isWrapped: { classPropertyName: "isWrapped", publicName: "isWrapped", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, host: { properties: { "style.display": "this.isHidden", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }] }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclTagComponent, isStandalone: true, selector: "ecl-tag, [eclTag]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, isWrapped: { classPropertyName: "isWrapped", publicName: "isWrapped", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, host: { properties: { "style.display": "isVisible() ? null : \"none\"", "class": "cssClasses()" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }] }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTagComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'ecl-tag, [eclTag]', imports: [...EUI_ECL_ICON, TitleCasePipe], template: "<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n" }]
92
- }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], isWrapped: [{ type: i0.Input, args: [{ isSignal: true, alias: "isWrapped", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }], isHidden: [{
93
- type: HostBinding,
94
- args: ['style.display']
95
- }], cssClasses: [{
96
- type: HostBinding,
97
- args: ['class']
98
- }] } });
91
+ args: [{ selector: 'ecl-tag, [eclTag]', imports: [...EUI_ECL_ICON, TitleCasePipe], host: {
92
+ '[style.display]': 'isVisible() ? null : "none"',
93
+ '[class]': 'cssClasses()',
94
+ }, template: "<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n" }]
95
+ }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], isWrapped: [{ type: i0.Input, args: [{ isSignal: true, alias: "isWrapped", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }] } });
99
96
 
100
97
  /**
101
98
  * Directive to style a container as a set of tags.
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-tag.mjs","sources":["../../components/ecl-tag/events/ecl-tag-remove.event.ts","../../components/ecl-tag/ecl-tag.component.ts","../../components/ecl-tag/ecl-tag.component.html","../../components/ecl-tag/ecl-tag-set.directive.ts","../../components/ecl-tag/ecl-tag-icon.directive.ts","../../components/ecl-tag/index.ts","../../components/ecl-tag/eui-ecl-components-ecl-tag.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted when a tag is removed.\n */\nexport class EclTagRemoveEvent extends EclBaseEvent {}\n","import {\n Component,\n HostBinding,\n booleanAttribute,\n ElementRef,\n afterNextRender,\n OnDestroy,\n inject,\n output,\n input,\n} from '@angular/core';\nimport { TitleCasePipe } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclTagRemoveEvent } from './events/ecl-tag-remove.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n@Component({\n selector: 'ecl-tag, [eclTag]',\n templateUrl: './ecl-tag.component.html',\n imports: [...EUI_ECL_ICON, TitleCasePipe],\n})\nexport class EclTagComponent extends ECLBaseDirective implements OnDestroy {\n /**\n * Defines the variant of the tag.\n * Currently only 'removable' is supported.\n */\n readonly variant = input<'removable'>(undefined);\n\n /**\n * Whether the tag content should be allowed to wrap onto multiple lines.\n * Set to false to force single-line display (adds `ecl-tag--nowrap` class).\n * Defaults to true.\n */\n readonly isWrapped = input(true, { transform: booleanAttribute });\n\n /**\n * Event emitted when the tag is removed.\n * Can be prevented by calling `preventDefault()` on the emitted event.\n */\n readonly remove = output<EclTagRemoveEvent>();\n\n @HostBinding('style.display')\n get isHidden(): string | null {\n return this.isVisible ? null : 'none';\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n const variant = this.variant();\n return [super.getCssClasses('ecl-tag'),\n variant ? `ecl-tag--${variant}` : '',\n this.isWrapped() ? '' : 'ecl-tag--nowrap',\n ].join(' ').trim();\n }\n\n isVisible = true;\n title = 'dismiss';\n private el = inject(ElementRef);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n super();\n afterNextRender(() => {\n this.connectEvents();\n });\n }\n\n /**\n * Whether the tag is removable (based on the `variant` input).\n */\n get isRemovable(): boolean {\n return this.variant() == 'removable';\n }\n\n /**\n * Lifecycle hook that cleans up subscriptions when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Called when the tag’s remove button is clicked (or enter key pressed).\n * Emits the `remove` event. If not prevented, the tag is hidden.\n */\n onRemoveClick(): void {\n const event = new EclTagRemoveEvent();\n this.remove.emit(event);\n\n if (!event.defaultPrevented) {\n this.isVisible = false;\n }\n }\n\n private connectEvents(): void {\n fromEvent(this.el.nativeElement, 'keydown')\n .pipe(takeUntil(this.destroy$))\n .subscribe((e: KeyboardEvent) => {\n if (this.isRemovable && e.key === KeyCode.ENTER) {\n this.onRemoveClick();\n }\n });\n }\n}\n","<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a container as a set of tags.\n * Adds the `ecl-tag-set` class to the host element.\n */\n@Directive({\n selector: '[eclTagSet]',\n})\nexport class EclTagSetDirective extends ECLBaseDirective {\n /**\n * CSS classes applied to the host element.\n * Adds `ecl-tag-set` to define the layout for a group of tags.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tag-set')].join(' ').trim();\n }\n}\n\n/**\n * Directive to mark an element as an individual item in a tag set.\n * Adds the `ecl-tag-set__item` class to the host element.\n */\n@Directive({\n selector: '[eclTagSetItem]',\n})\nexport class EclTagSetItemDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-tag-set__item` CSS class to the host element.\n */\n @HostBinding('class.ecl-tag-set__item') hasClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply external icon styling inside an ECL tag.\n * Adds specific CSS classes to render an \"external\" icon next to the tag content.\n */\n@Directive({\n selector: '[eclTagIconExternal]',\n})\nexport class EclTagIconExternalDirective extends ECLBaseDirective {\n /**\n * CSS classes applied to the host element.\n * Adds `ecl-tag__icon ecl-tag__icon--external` to display the icon correctly.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tag__icon ecl-tag__icon--external')].join(' ').trim();\n }\n}\n","import { EclTagComponent } from './ecl-tag.component';\nimport { EclTagSetDirective, EclTagSetItemDirective } from './ecl-tag-set.directive';\nimport { EclTagIconExternalDirective } from './ecl-tag-icon.directive';\n\nexport * from './ecl-tag.component';\nexport * from './ecl-tag-set.directive';\nexport * from './ecl-tag-icon.directive';\nexport * from './events/ecl-tag-remove.event';\n\nexport const EUI_ECL_TAG = [\n EclTagComponent, EclTagSetDirective, EclTagSetItemDirective, EclTagIconExternalDirective,\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-tag.mjs","sources":["../../components/ecl-tag/events/ecl-tag-remove.event.ts","../../components/ecl-tag/ecl-tag.component.ts","../../components/ecl-tag/ecl-tag.component.html","../../components/ecl-tag/ecl-tag-set.directive.ts","../../components/ecl-tag/ecl-tag-icon.directive.ts","../../components/ecl-tag/index.ts","../../components/ecl-tag/eui-ecl-components-ecl-tag.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted when a tag is removed.\n */\nexport class EclTagRemoveEvent extends EclBaseEvent {}\n","import {\n Component,\n booleanAttribute,\n ElementRef,\n afterNextRender,\n OnDestroy,\n inject,\n output,\n input,\n computed,\n signal,\n} from '@angular/core';\nimport { TitleCasePipe } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclTagRemoveEvent } from './events/ecl-tag-remove.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n@Component({\n selector: 'ecl-tag, [eclTag]',\n templateUrl: './ecl-tag.component.html',\n imports: [...EUI_ECL_ICON, TitleCasePipe],\n host: {\n '[style.display]': 'isVisible() ? null : \"none\"',\n '[class]': 'cssClasses()',\n },\n})\nexport class EclTagComponent extends ECLBaseDirective implements OnDestroy {\n /**\n * Defines the variant of the tag.\n * Currently only 'removable' is supported.\n */\n readonly variant = input<'removable'>(undefined);\n\n /**\n * Whether the tag content should be allowed to wrap onto multiple lines.\n * Set to false to force single-line display (adds `ecl-tag--nowrap` class).\n * Defaults to true.\n */\n readonly isWrapped = input(true, { transform: booleanAttribute });\n\n /**\n * Event emitted when the tag is removed.\n * Can be prevented by calling `preventDefault()` on the emitted event.\n */\n readonly remove = output<EclTagRemoveEvent>();\n\n readonly isVisible = signal(true);\n\n readonly cssClasses = computed(() => {\n const variant = this.variant();\n return [\n super.getCssClasses('ecl-tag'),\n variant ? `ecl-tag--${variant}` : '',\n this.isWrapped() ? '' : 'ecl-tag--nowrap',\n ].join(' ').trim();\n });\n title = 'dismiss';\n private el = inject(ElementRef);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n super();\n afterNextRender(() => {\n this.connectEvents();\n });\n }\n\n /**\n * Whether the tag is removable (based on the `variant` input).\n */\n get isRemovable(): boolean {\n return this.variant() == 'removable';\n }\n\n /**\n * Lifecycle hook that cleans up subscriptions when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Called when the tag’s remove button is clicked (or enter key pressed).\n * Emits the `remove` event. If not prevented, the tag is hidden.\n */\n onRemoveClick(): void {\n const event = new EclTagRemoveEvent();\n this.remove.emit(event);\n\n if (!event.defaultPrevented) {\n this.isVisible.set(false);\n }\n }\n\n private connectEvents(): void {\n fromEvent(this.el.nativeElement, 'keydown')\n .pipe(takeUntil(this.destroy$))\n .subscribe((e: KeyboardEvent) => {\n if (this.isRemovable && e.key === KeyCode.ENTER) {\n this.onRemoveClick();\n }\n });\n }\n}\n","<ng-content></ng-content>\n@if(isRemovable) {\n <span class=\"ecl-tag__icon\" (click)=\"onRemoveClick()\">\n <ecl-icon icon=\"close-outline\" class=\"ecl-tag__icon-close\" [title]=\"title | titlecase\"></ecl-icon>\n</span>\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to style a container as a set of tags.\n * Adds the `ecl-tag-set` class to the host element.\n */\n@Directive({\n selector: '[eclTagSet]',\n})\nexport class EclTagSetDirective extends ECLBaseDirective {\n /**\n * CSS classes applied to the host element.\n * Adds `ecl-tag-set` to define the layout for a group of tags.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tag-set')].join(' ').trim();\n }\n}\n\n/**\n * Directive to mark an element as an individual item in a tag set.\n * Adds the `ecl-tag-set__item` class to the host element.\n */\n@Directive({\n selector: '[eclTagSetItem]',\n})\nexport class EclTagSetItemDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-tag-set__item` CSS class to the host element.\n */\n @HostBinding('class.ecl-tag-set__item') hasClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply external icon styling inside an ECL tag.\n * Adds specific CSS classes to render an \"external\" icon next to the tag content.\n */\n@Directive({\n selector: '[eclTagIconExternal]',\n})\nexport class EclTagIconExternalDirective extends ECLBaseDirective {\n /**\n * CSS classes applied to the host element.\n * Adds `ecl-tag__icon ecl-tag__icon--external` to display the icon correctly.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-tag__icon ecl-tag__icon--external')].join(' ').trim();\n }\n}\n","import { EclTagComponent } from './ecl-tag.component';\nimport { EclTagSetDirective, EclTagSetItemDirective } from './ecl-tag-set.directive';\nimport { EclTagIconExternalDirective } from './ecl-tag-icon.directive';\n\nexport * from './ecl-tag.component';\nexport * from './ecl-tag-set.directive';\nexport * from './ecl-tag-icon.directive';\nexport * from './events/ecl-tag-remove.event';\n\nexport const EUI_ECL_TAG = [\n EclTagComponent, EclTagSetDirective, EclTagSetItemDirective, EclTagIconExternalDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAEA;;AAEG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAAG;;ACuBhD,MAAO,eAAgB,SAAQ,gBAAgB,CAAA;AAkCjD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAlCX;;;AAGG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAc,SAAS;oFAAC;AAEhD;;;;AAIG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEjE;;;AAGG;QACM,IAAA,CAAA,MAAM,GAAG,MAAM,EAAqB;QAEpC,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,IAAI;sFAAC;AAExB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;YAC9B,OAAO;AACH,gBAAA,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;gBAC9B,OAAO,GAAG,CAAA,SAAA,EAAY,OAAO,CAAA,CAAE,GAAG,EAAE;gBACpC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,iBAAiB;AAC5C,aAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QACtB,CAAC;uFAAC;QACF,IAAA,CAAA,KAAK,GAAG,SAAS;AACT,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAIvD,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,aAAa,EAAE;AACxB,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,WAAW;IACxC;AAEA;;AAEG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;;AAGG;IACH,aAAa,GAAA;AACT,QAAA,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B;IACJ;IAEQ,aAAa,GAAA;QACjB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,CAAgB,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,EAAE;gBAC7C,IAAI,CAAC,aAAa,EAAE;YACxB;AACJ,QAAA,CAAC,CAAC;IACV;8GA7ES,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B5B,2OAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDgB+B,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAM/B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WAEpB,CAAC,GAAG,YAAY,EAAE,aAAa,CAAC,EAAA,IAAA,EACnC;AACF,wBAAA,iBAAiB,EAAE,6BAA6B;AAChD,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA,EAAA,QAAA,EAAA,2OAAA,EAAA;;;AEvBL;;;AAGG;AAIG,MAAO,kBAAmB,SAAQ,gBAAgB,CAAA;AACpD;;;AAGG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAChE;8GARS,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AAC1B,iBAAA;;sBAMI,WAAW;uBAAC,OAAO;;AAMxB;;;AAGG;AAIG,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAH5D,IAAA,WAAA,GAAA;;AAII;;AAEG;QACqC,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC1D,IAAA;8GALY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC9B,iBAAA;;sBAKI,WAAW;uBAAC,yBAAyB;;;AC7B1C;;;AAGG;AAIG,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AAC7D;;;AAGG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC1F;8GARS,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AACnC,iBAAA;;sBAMI,WAAW;uBAAC,OAAO;;;ACNjB,MAAM,WAAW,GAAG;AACvB,IAAA,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,2BAA2B;;;ACV5F;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, inject, HostBinding, Directive } from '@angular/core';
2
+ import { inject, input, booleanAttribute, computed, Directive } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { ECLBaseDirective } from '@eui/ecl/core';
5
5
 
@@ -9,20 +9,21 @@ import { ECLBaseDirective } from '@eui/ecl/core';
9
9
  class EclTextAreaDirective extends ECLBaseDirective {
10
10
  constructor() {
11
11
  super(...arguments);
12
+ this.ngControl = inject(NgControl, { optional: true, self: true });
12
13
  /**
13
14
  * Width of the component, can be 's', 'm' or 'l'. Default value is 'm'.
14
15
  */
15
16
  this.eclSize = input('m', /* @ts-ignore */
16
17
  ...(ngDevMode ? [{ debugName: "eclSize" }] : /* istanbul ignore next */ []));
17
18
  this.isInvalid = input(false, { ...(ngDevMode ? { debugName: "isInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
18
- this.ngControl = inject(NgControl, { optional: true, self: true });
19
- }
20
- /**
21
- * Adds specific classes for the component.
22
- */
23
- get cssClasses() {
24
- const eclSize = this.eclSize();
25
- return [super.getCssClasses('ecl-text-area'), eclSize ? `ecl-text-area--${eclSize}` : ''].join(' ').trim();
19
+ /**
20
+ * Adds specific classes for the component.
21
+ */
22
+ this.cssClasses = computed(() => {
23
+ const eclSize = this.eclSize();
24
+ return [super.getCssClasses('ecl-text-area'), eclSize ? `ecl-text-area--${eclSize}` : ''].join(' ').trim();
25
+ }, /* @ts-ignore */
26
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
26
27
  }
27
28
  /**
28
29
  * Adds 'ecl-text-area--invalid' class, depending on the invalid status of the component.
@@ -36,20 +37,18 @@ class EclTextAreaDirective extends ECLBaseDirective {
36
37
  }
37
38
  }
38
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextAreaDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclTextAreaDirective, isStandalone: true, selector: "textarea[eclTextArea]", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses", "class.ecl-text-area--invalid": "this.invalidState" } }, usesInheritance: true, ngImport: i0 }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclTextAreaDirective, isStandalone: true, selector: "textarea[eclTextArea]", inputs: { eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()", "class.ecl-text-area--invalid": "invalidState" } }, usesInheritance: true, ngImport: i0 }); }
40
41
  }
41
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextAreaDirective, decorators: [{
42
43
  type: Directive,
43
44
  args: [{
44
45
  selector: 'textarea[eclTextArea]',
46
+ host: {
47
+ '[class]': 'cssClasses()',
48
+ '[class.ecl-text-area--invalid]': 'invalidState',
49
+ },
45
50
  }]
46
- }], propDecorators: { eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], cssClasses: [{
47
- type: HostBinding,
48
- args: ['class']
49
- }], invalidState: [{
50
- type: HostBinding,
51
- args: ['class.ecl-text-area--invalid']
52
- }] } });
51
+ }], propDecorators: { eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }] } });
53
52
 
54
53
  const EUI_ECL_TEXT_AREA = [
55
54
  EclTextAreaDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-text-area.mjs","sources":["../../components/ecl-text-area/ecl-text-area.directive.ts","../../components/ecl-text-area/index.ts","../../components/ecl-text-area/eui-ecl-components-ecl-text-area.ts"],"sourcesContent":["import { Directive, HostBinding, booleanAttribute, inject, input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to be used with <textarea> HTML component. Applies custom styles and formatting, that comply with the ECL standards.\n */\n@Directive({\n selector: 'textarea[eclTextArea]',\n})\nexport class EclTextAreaDirective extends ECLBaseDirective {\n /**\n * Width of the component, can be 's', 'm' or 'l'. Default value is 'm'.\n */\n readonly eclSize = input('m');\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Adds specific classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const eclSize = this.eclSize();\n return [super.getCssClasses('ecl-text-area'), eclSize ? `ecl-text-area--${eclSize}` : ''].join(' ').trim();\n }\n\n /**\n * Adds 'ecl-text-area--invalid' class, depending on the invalid status of the component.\n */\n @HostBinding('class.ecl-text-area--invalid')\n get invalidState(): boolean {\n if (this.ngControl) {\n return this.ngControl.status === 'INVALID' && this.ngControl.touched;\n } else {\n return this.isInvalid();\n }\n }\n private ngControl = inject(NgControl, { optional: true, self: true });\n}\n","import { EclTextAreaDirective } from './ecl-text-area.directive';\n\nexport * from './ecl-text-area.directive';\n\nexport const EUI_ECL_TEXT_AREA = [\n EclTextAreaDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;AAIG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAH1D,IAAA,WAAA,GAAA;;AAII;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,GAAG;oFAAC;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAsB1D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxE,IAAA;AArBG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,CAAA,eAAA,EAAkB,OAAO,CAAA,CAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC9G;AAEA;;AAEG;AACH,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO;QACxE;aAAO;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;QAC3B;IACJ;8GA1BS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACpC,iBAAA;;sBAWI,WAAW;uBAAC,OAAO;;sBASnB,WAAW;uBAAC,8BAA8B;;;ACzBxC,MAAM,iBAAiB,GAAG;IAC/B,oBAAoB;;;ACLtB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-text-area.mjs","sources":["../../components/ecl-text-area/ecl-text-area.directive.ts","../../components/ecl-text-area/index.ts","../../components/ecl-text-area/eui-ecl-components-ecl-text-area.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, inject, input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to be used with <textarea> HTML component. Applies custom styles and formatting, that comply with the ECL standards.\n */\n@Directive({\n selector: 'textarea[eclTextArea]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-text-area--invalid]': 'invalidState',\n },\n})\nexport class EclTextAreaDirective extends ECLBaseDirective {\n private readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Width of the component, can be 's', 'm' or 'l'. Default value is 'm'.\n */\n readonly eclSize = input('m');\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Adds specific classes for the component.\n */\n readonly cssClasses = computed(() => {\n const eclSize = this.eclSize();\n return [super.getCssClasses('ecl-text-area'), eclSize ? `ecl-text-area--${eclSize}` : ''].join(' ').trim();\n });\n\n /**\n * Adds 'ecl-text-area--invalid' class, depending on the invalid status of the component.\n */\n get invalidState(): boolean {\n if (this.ngControl) {\n return this.ngControl.status === 'INVALID' && this.ngControl.touched;\n } else {\n return this.isInvalid();\n }\n }\n}\n","import { EclTextAreaDirective } from './ecl-text-area.directive';\n\nexport * from './ecl-text-area.directive';\n\nexport const EUI_ECL_TEXT_AREA = [\n EclTextAreaDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;AAQG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAP1D,IAAA,WAAA,GAAA;;AAQqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAE9E;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,GAAG;oFAAC;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,CAAA,eAAA,EAAkB,OAAO,CAAA,CAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QAC9G,CAAC;uFAAC;AAYL,IAAA;AAVG;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO;QACxE;aAAO;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;QAC3B;IACJ;8GA1BS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,gCAAgC,EAAE,cAAc;AACnD,qBAAA;AACJ,iBAAA;;;ACTM,MAAM,iBAAiB,GAAG;IAC/B,oBAAoB;;;ACLtB;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, input, booleanAttribute, HostBinding, Directive } from '@angular/core';
2
+ import { input, booleanAttribute, computed, inject, Directive } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { ECLBaseDirective } from '@eui/ecl/core';
5
5
 
@@ -9,7 +9,6 @@ import { ECLBaseDirective } from '@eui/ecl/core';
9
9
  class EclTextInputDirective extends ECLBaseDirective {
10
10
  constructor() {
11
11
  super(...arguments);
12
- this.ngControl = inject(NgControl, { optional: true, self: true });
13
12
  /**
14
13
  * This directive should be used with the input type 'text'.
15
14
  */
@@ -21,13 +20,15 @@ class EclTextInputDirective extends ECLBaseDirective {
21
20
  this.eclSize = input('m', /* @ts-ignore */
22
21
  ...(ngDevMode ? [{ debugName: "eclSize" }] : /* istanbul ignore next */ []));
23
22
  this.isInvalid = input(false, { ...(ngDevMode ? { debugName: "isInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
24
- }
25
- /**
26
- * Adds ECL classes for the component.
27
- */
28
- get cssClasses() {
29
- const eclSize = this.eclSize();
30
- return [super.getCssClasses('ecl-text-input'), eclSize ? `ecl-text-input--${eclSize}` : ''].join(' ').trim();
23
+ /**
24
+ * Adds ECL classes for the component.
25
+ */
26
+ this.cssClasses = computed(() => {
27
+ const eclSize = this.eclSize();
28
+ return [super.getCssClasses('ecl-text-input'), eclSize ? `ecl-text-input--${eclSize}` : ''].join(' ').trim();
29
+ }, /* @ts-ignore */
30
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
31
+ this.ngControl = inject(NgControl, { optional: true, self: true });
31
32
  }
32
33
  /**
33
34
  * Adds 'ecl-text-input--invalid' class, depending on the invalid status of the component.
@@ -41,7 +42,7 @@ class EclTextInputDirective extends ECLBaseDirective {
41
42
  }
42
43
  }
43
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclTextInputDirective, isStandalone: true, selector: "input[eclTextInput]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.type": "type()", "class": "this.cssClasses", "class.ecl-text-input--invalid": "this.invalidState" } }, usesInheritance: true, ngImport: i0 }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclTextInputDirective, isStandalone: true, selector: "input[eclTextInput]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, eclSize: { classPropertyName: "eclSize", publicName: "eclSize", isSignal: true, isRequired: false, transformFunction: null }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.type": "type()", "class": "cssClasses()", "class.ecl-text-input--invalid": "invalidState" } }, usesInheritance: true, ngImport: i0 }); }
45
46
  }
46
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextInputDirective, decorators: [{
47
48
  type: Directive,
@@ -49,15 +50,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
49
50
  selector: 'input[eclTextInput]',
50
51
  host: {
51
52
  '[attr.type]': 'type()',
53
+ '[class]': 'cssClasses()',
54
+ '[class.ecl-text-input--invalid]': 'invalidState',
52
55
  },
53
56
  }]
54
- }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], cssClasses: [{
55
- type: HostBinding,
56
- args: ['class']
57
- }], invalidState: [{
58
- type: HostBinding,
59
- args: ['class.ecl-text-input--invalid']
60
- }] } });
57
+ }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], eclSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclSize", required: false }] }], isInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }] } });
61
58
 
62
59
  const EUI_ECL_TEXT_INPUT = [
63
60
  EclTextInputDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-text-input.mjs","sources":["../../components/ecl-text-input/ecl-text-input.directive.ts","../../components/ecl-text-input/index.ts","../../components/ecl-text-input/eui-ecl-components-ecl-text-input.ts"],"sourcesContent":["import { Directive, HostBinding, booleanAttribute, inject, input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive, to be used with the HTMl element text <input>. Adds ECL compliant styling.\n */\n@Directive({\n selector: 'input[eclTextInput]',\n host: {\n '[attr.type]': 'type()',\n },\n})\nexport class EclTextInputDirective extends ECLBaseDirective {\n protected ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * This directive should be used with the input type 'text'.\n */\n readonly type = input('text');\n\n /**\n * The size of the input width. Can be 's', 'm' or 'l'. Default value is 'm'.\n */\n readonly eclSize = input('m');\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Adds ECL classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const eclSize = this.eclSize();\n return [super.getCssClasses('ecl-text-input'), eclSize ? `ecl-text-input--${eclSize}` : ''].join(' ').trim();\n }\n\n /**\n * Adds 'ecl-text-input--invalid' class, depending on the invalid status of the component.\n */\n @HostBinding('class.ecl-text-input--invalid')\n get invalidState(): boolean {\n if (this.ngControl) {\n return Boolean(this.ngControl.status === 'INVALID' && this.ngControl.touched);\n } else {\n return this.isInvalid();\n }\n }\n}\n","import { EclTextInputDirective } from './ecl-text-input.directive';\n\nexport * from './ecl-text-input.directive';\n\nexport const EUI_ECL_TEXT_INPUT = [\n EclTextInputDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;AAOG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAN3D,IAAA,WAAA,GAAA;;AAOc,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEvE;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,MAAM;iFAAC;AAE7B;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,GAAG;oFAAC;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAsBrE,IAAA;AApBG;;AAEG;AACH,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;;AAEG;AACH,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACjF;aAAO;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;QAC3B;IACJ;8GAjCS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,QAAQ;AAC1B,qBAAA;AACJ,iBAAA;;sBAkBI,WAAW;uBAAC,OAAO;;sBASnB,WAAW;uBAAC,+BAA+B;;;ACnCzC,MAAM,kBAAkB,GAAG;IAChC,qBAAqB;;;ACLvB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-text-input.mjs","sources":["../../components/ecl-text-input/ecl-text-input.directive.ts","../../components/ecl-text-input/index.ts","../../components/ecl-text-input/eui-ecl-components-ecl-text-input.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, inject, input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive, to be used with the HTMl element text <input>. Adds ECL compliant styling.\n */\n@Directive({\n selector: 'input[eclTextInput]',\n host: {\n '[attr.type]': 'type()',\n '[class]': 'cssClasses()',\n '[class.ecl-text-input--invalid]': 'invalidState',\n },\n})\nexport class EclTextInputDirective extends ECLBaseDirective {\n /**\n * This directive should be used with the input type 'text'.\n */\n readonly type = input('text');\n\n /**\n * The size of the input width. Can be 's', 'm' or 'l'. Default value is 'm'.\n */\n readonly eclSize = input('m');\n readonly isInvalid = input(false, { transform: booleanAttribute });\n\n /**\n * Adds ECL classes for the component.\n */\n readonly cssClasses = computed(() => {\n const eclSize = this.eclSize();\n return [super.getCssClasses('ecl-text-input'), eclSize ? `ecl-text-input--${eclSize}` : ''].join(' ').trim();\n });\n\n protected readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Adds 'ecl-text-input--invalid' class, depending on the invalid status of the component.\n */\n protected get invalidState(): boolean {\n if (this.ngControl) {\n return Boolean(this.ngControl.status === 'INVALID' && this.ngControl.touched);\n } else {\n return this.isInvalid();\n }\n }\n}\n","import { EclTextInputDirective } from './ecl-text-input.directive';\n\nexport * from './ecl-text-input.directive';\n\nexport const EUI_ECL_TEXT_INPUT = [\n EclTextInputDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;AASG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAR3D,IAAA,WAAA,GAAA;;AASI;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,MAAM;iFAAC;AAE7B;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,GAAG;oFAAC;QACpB,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,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;QAChH,CAAC;uFAAC;AAEiB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAYnF,IAAA;AAVG;;AAEG;AACH,IAAA,IAAc,YAAY,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACjF;aAAO;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;QAC3B;IACJ;8GA/BS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,iCAAiC,EAAE,cAAc;AACpD,qBAAA;AACJ,iBAAA;;;ACVM,MAAM,kBAAkB,GAAG;IAChC,qBAAqB;;;ACLvB;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, contentChild, effect, Component, Directive } from '@angular/core';
2
+ import { input, contentChild, computed, effect, Component, Directive } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';
5
5
 
@@ -16,6 +16,13 @@ class EclTextMediaComponent extends ECLBaseDirective {
16
16
  ...(ngDevMode ? [{ debugName: "mediaPosition" }] : /* istanbul ignore next */ []));
17
17
  this.mediaContainer = contentChild(EclMediaContainerComponent, /* @ts-ignore */
18
18
  ...(ngDevMode ? [{ debugName: "mediaContainer" }] : /* istanbul ignore next */ []));
19
+ this.cssClasses = computed(() => {
20
+ return [super.getCssClasses('ecl-text-media'),
21
+ this.variant() === 'primary' ? 'ecl-text-media--primary' : '',
22
+ this.mediaPosition() === 'left' ? 'ecl-text-media--position-left' : '',
23
+ ].filter(Boolean).join(' ');
24
+ }, /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
19
26
  effect(() => {
20
27
  const mc = this.mediaContainer();
21
28
  if (mc?.hasVideo()) {
@@ -23,19 +30,13 @@ class EclTextMediaComponent extends ECLBaseDirective {
23
30
  }
24
31
  });
25
32
  }
26
- get cssClasses() {
27
- return [super.getCssClasses('ecl-text-media'),
28
- this.variant() === 'primary' ? 'ecl-text-media--primary' : '',
29
- this.mediaPosition() === 'left' ? 'ecl-text-media--position-left' : '',
30
- ].filter(Boolean).join(' ');
31
- }
32
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclTextMediaComponent, isStandalone: true, selector: "article[eclTextMedia]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, mediaPosition: { classPropertyName: "mediaPosition", publicName: "mediaPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "mediaContainer", first: true, predicate: EclMediaContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-text-media__content\">\n <ng-content select=\"div[eclTextMediaMicroTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaDescription]\"></ng-content>\n <ng-content select=\"a[eclTextMediaLink]\"></ng-content>\n</div>\n<div class=\"ecl-text-media__media\">\n <ng-content select=\"ecl-media-container\"></ng-content>\n</div>" }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclTextMediaComponent, isStandalone: true, selector: "article[eclTextMedia]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, mediaPosition: { classPropertyName: "mediaPosition", publicName: "mediaPosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()" } }, queries: [{ propertyName: "mediaContainer", first: true, predicate: EclMediaContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-text-media__content\">\n <ng-content select=\"div[eclTextMediaMicroTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaDescription]\"></ng-content>\n <ng-content select=\"a[eclTextMediaLink]\"></ng-content>\n</div>\n<div class=\"ecl-text-media__media\">\n <ng-content select=\"ecl-media-container\"></ng-content>\n</div>" }); }
34
35
  }
35
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclTextMediaComponent, decorators: [{
36
37
  type: Component,
37
38
  args: [{ selector: 'article[eclTextMedia]', host: {
38
- '[class]': 'cssClasses',
39
+ '[class]': 'cssClasses()',
39
40
  }, template: "<div class=\"ecl-text-media__content\">\n <ng-content select=\"div[eclTextMediaMicroTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaDescription]\"></ng-content>\n <ng-content select=\"a[eclTextMediaLink]\"></ng-content>\n</div>\n<div class=\"ecl-text-media__media\">\n <ng-content select=\"ecl-media-container\"></ng-content>\n</div>" }]
40
41
  }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], mediaPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "mediaPosition", required: false }] }], mediaContainer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMediaContainerComponent), { isSignal: true }] }] } });
41
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-text-media.mjs","sources":["../../components/ecl-text-media/ecl-text-media.component.ts","../../components/ecl-text-media/ecl-text-media.component.html","../../components/ecl-text-media/ecl-text-media-title.directive.ts","../../components/ecl-text-media/index.ts","../../components/ecl-text-media/eui-ecl-components-ecl-text-media.ts"],"sourcesContent":["import { Component, contentChild, effect, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\n\n/**\n * A media container is used to display media items (video, audio, image or other data)\n * with text and a caption.\n */\n@Component({\n selector: 'article[eclTextMedia]',\n templateUrl: './ecl-text-media.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclTextMediaComponent extends ECLBaseDirective {\n variant = input<'default' | 'primary'>('default');\n\n mediaPosition = input<'left' | 'right'>('right');\n\n private mediaContainer = contentChild(EclMediaContainerComponent);\n\n constructor() {\n super();\n effect(() => {\n const mc = this.mediaContainer();\n if (mc?.hasVideo()) {\n mc.captionPositionOverride.set('hidden');\n }\n });\n }\n\n get cssClasses(): string {\n return [super.getCssClasses('ecl-text-media'),\n this.variant() === 'primary' ? 'ecl-text-media--primary' : '',\n this.mediaPosition() === 'left' ? 'ecl-text-media--position-left' : '',\n ].filter(Boolean).join(' ');\n }\n}\n","<div class=\"ecl-text-media__content\">\n <ng-content select=\"div[eclTextMediaMicroTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaDescription]\"></ng-content>\n <ng-content select=\"a[eclTextMediaLink]\"></ng-content>\n</div>\n<div class=\"ecl-text-media__media\">\n <ng-content select=\"ecl-media-container\"></ng-content>\n</div>","import { Directive, input } from '@angular/core';\n\n/**\n * Applies styles for the micro title element.\n */\n@Directive({\n selector: 'div[eclTextMediaMicroTitle]',\n host: {\n class: 'ecl-text-media__micro-title',\n },\n})\nexport class EclTextMediaMicroTitleDirective {}\n\n/**\n * Applies styles for the title element.\n */\n@Directive({\n selector: 'div[eclTextMediaTitle]',\n host: {\n class: 'ecl-text-media__title',\n },\n})\nexport class EclTextMediaTitleDirective {}\n\n/**\n * Applies styles for the description element.\n */\n@Directive({\n selector: 'div[eclTextMediaDescription]',\n host: {\n class: 'ecl-text-media__description ecl-content-color',\n },\n})\nexport class EclTextMediaDescriptionDirective {}\n\n/**\n * Applies styles for the link element.\n */\n@Directive({\n selector: 'a[eclTextMediaLink]',\n host: {\n class: 'ecl-text-media__link',\n },\n})\nexport class EclTextMediaLinkDirective {}\n\n/**\n * Sets the `--ecl-image-anchor` CSS custom property for an image used\n * within the `ecl-text-media` component.\n *\n * Intended to be used together with `img[eclMediaContainerImage]`\n * from the `ecl-media-container` component.\n */\n@Directive({\n selector: 'img[eclTextMediaImgAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'anchor()',\n },\n})\nexport class EclTextMediaMediaAnchorDirective {\n readonly anchor = input<'center' | 'top left' | 'bottom right' | '20% 20%'>('center', { alias: \"eclTextMediaImgAnchor\" });\n}\n\n/**\n * Sets custom class for the `ecl-text-media` component, used within eclTextMedia component.\n */\n@Directive({\n selector: 'ecl-media-container[eclTextMediaContainer]',\n host: {\n class: 'ecl-text-media__media_container',\n },\n})\nexport class EclTextMediaContainerDirective {}\n","import { EclTextMediaComponent } from \"./ecl-text-media.component\";\nimport { EclTextMediaMicroTitleDirective, EclTextMediaTitleDirective, EclTextMediaDescriptionDirective, EclTextMediaLinkDirective, EclTextMediaMediaAnchorDirective, EclTextMediaContainerDirective } from \"./ecl-text-media-title.directive\";\n\nexport * from './ecl-text-media.component';\nexport * from './ecl-text-media-title.directive';\n\nexport const EUI_ECL_TEXT_MEDIA = [\n EclTextMediaComponent,\n EclTextMediaMicroTitleDirective,\n EclTextMediaTitleDirective,\n EclTextMediaDescriptionDirective,\n EclTextMediaLinkDirective,\n EclTextMediaMediaAnchorDirective,\n EclTextMediaContainerDirective,\n] as const;\n","/**\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-text-media.mjs","sources":["../../components/ecl-text-media/ecl-text-media.component.ts","../../components/ecl-text-media/ecl-text-media.component.html","../../components/ecl-text-media/ecl-text-media-title.directive.ts","../../components/ecl-text-media/index.ts","../../components/ecl-text-media/eui-ecl-components-ecl-text-media.ts"],"sourcesContent":["import { Component, computed, contentChild, effect, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\n\n/**\n * A media container is used to display media items (video, audio, image or other data)\n * with text and a caption.\n */\n@Component({\n selector: 'article[eclTextMedia]',\n templateUrl: './ecl-text-media.component.html',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclTextMediaComponent extends ECLBaseDirective {\n variant = input<'default' | 'primary'>('default');\n\n mediaPosition = input<'left' | 'right'>('right');\n\n private mediaContainer = contentChild(EclMediaContainerComponent);\n\n constructor() {\n super();\n effect(() => {\n const mc = this.mediaContainer();\n if (mc?.hasVideo()) {\n mc.captionPositionOverride.set('hidden');\n }\n });\n }\n\n cssClasses = computed(() => {\n return [super.getCssClasses('ecl-text-media'),\n this.variant() === 'primary' ? 'ecl-text-media--primary' : '',\n this.mediaPosition() === 'left' ? 'ecl-text-media--position-left' : '',\n ].filter(Boolean).join(' ');\n });\n}\n","<div class=\"ecl-text-media__content\">\n <ng-content select=\"div[eclTextMediaMicroTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaTitle]\"></ng-content>\n <ng-content select=\"div[eclTextMediaDescription]\"></ng-content>\n <ng-content select=\"a[eclTextMediaLink]\"></ng-content>\n</div>\n<div class=\"ecl-text-media__media\">\n <ng-content select=\"ecl-media-container\"></ng-content>\n</div>","import { Directive, input } from '@angular/core';\n\n/**\n * Applies styles for the micro title element.\n */\n@Directive({\n selector: 'div[eclTextMediaMicroTitle]',\n host: {\n class: 'ecl-text-media__micro-title',\n },\n})\nexport class EclTextMediaMicroTitleDirective {}\n\n/**\n * Applies styles for the title element.\n */\n@Directive({\n selector: 'div[eclTextMediaTitle]',\n host: {\n class: 'ecl-text-media__title',\n },\n})\nexport class EclTextMediaTitleDirective {}\n\n/**\n * Applies styles for the description element.\n */\n@Directive({\n selector: 'div[eclTextMediaDescription]',\n host: {\n class: 'ecl-text-media__description ecl-content-color',\n },\n})\nexport class EclTextMediaDescriptionDirective {}\n\n/**\n * Applies styles for the link element.\n */\n@Directive({\n selector: 'a[eclTextMediaLink]',\n host: {\n class: 'ecl-text-media__link',\n },\n})\nexport class EclTextMediaLinkDirective {}\n\n/**\n * Sets the `--ecl-image-anchor` CSS custom property for an image used\n * within the `ecl-text-media` component.\n *\n * Intended to be used together with `img[eclMediaContainerImage]`\n * from the `ecl-media-container` component.\n */\n@Directive({\n selector: 'img[eclTextMediaImgAnchor]',\n host: {\n '[style.--ecl-image-anchor]': 'anchor()',\n },\n})\nexport class EclTextMediaMediaAnchorDirective {\n readonly anchor = input<'center' | 'top left' | 'bottom right' | '20% 20%'>('center', { alias: \"eclTextMediaImgAnchor\" });\n}\n\n/**\n * Sets custom class for the `ecl-text-media` component, used within eclTextMedia component.\n */\n@Directive({\n selector: 'ecl-media-container[eclTextMediaContainer]',\n host: {\n class: 'ecl-text-media__media_container',\n },\n})\nexport class EclTextMediaContainerDirective {}\n","import { EclTextMediaComponent } from \"./ecl-text-media.component\";\nimport { EclTextMediaMicroTitleDirective, EclTextMediaTitleDirective, EclTextMediaDescriptionDirective, EclTextMediaLinkDirective, EclTextMediaMediaAnchorDirective, EclTextMediaContainerDirective } from \"./ecl-text-media-title.directive\";\n\nexport * from './ecl-text-media.component';\nexport * from './ecl-text-media-title.directive';\n\nexport const EUI_ECL_TEXT_MEDIA = [\n EclTextMediaComponent,\n EclTextMediaMicroTitleDirective,\n EclTextMediaTitleDirective,\n EclTextMediaDescriptionDirective,\n EclTextMediaLinkDirective,\n EclTextMediaMediaAnchorDirective,\n EclTextMediaContainerDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}