@eui/ecl 21.0.0-next.15 → 21.0.0-next.17

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 (184) hide show
  1. package/docs/changelog.html +28 -0
  2. package/docs/components/EclAccordionComponent.html +2 -2
  3. package/docs/components/EclAccordionItemComponent.html +2 -2
  4. package/docs/components/EclAppComponent.html +2 -2
  5. package/docs/components/EclBannerComponent.html +2 -2
  6. package/docs/components/EclBlockquoteComponent.html +2 -2
  7. package/docs/components/EclBreadcrumbComponent.html +5 -45
  8. package/docs/components/EclBreadcrumbSegmentComponent.html +3 -3
  9. package/docs/components/EclButtonComponent.html +2 -2
  10. package/docs/components/EclCardBodyComponent.html +2 -2
  11. package/docs/components/EclCardComponent.html +2 -2
  12. package/docs/components/EclCarouselComponent.html +2 -2
  13. package/docs/components/EclCarouselItemComponent.html +2 -2
  14. package/docs/components/EclCategoryFilterComponent.html +2 -2
  15. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  16. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  17. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  18. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  19. package/docs/components/EclContentBlockComponent.html +2 -2
  20. package/docs/components/EclContentItemComponent.html +2 -2
  21. package/docs/components/EclDateBlockComponent.html +2 -2
  22. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  23. package/docs/components/EclExpandableComponent.html +2 -2
  24. package/docs/components/EclFactFiguresComponent.html +2 -2
  25. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  26. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  27. package/docs/components/EclFeaturedComponent.html +2 -2
  28. package/docs/components/EclFeaturedItemComponent.html +2 -2
  29. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  30. package/docs/components/EclFileComponent.html +2 -2
  31. package/docs/components/EclFileItemComponent.html +2 -2
  32. package/docs/components/EclFileItemsComponent.html +2 -2
  33. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  34. package/docs/components/EclFormGroupComponent.html +2 -2
  35. package/docs/components/EclFormLabelComponent.html +2 -2
  36. package/docs/components/EclGalleryComponent.html +2 -2
  37. package/docs/components/EclGalleryFooterComponent.html +2 -2
  38. package/docs/components/EclGalleryItemComponent.html +3 -70
  39. package/docs/components/EclIconComponent.html +2 -2
  40. package/docs/components/EclInpageNavigationComponent.html +3 -43
  41. package/docs/components/EclInpageNavigationItemComponent.html +3 -3
  42. package/docs/components/EclListIllustrationComponent.html +2 -2
  43. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  44. package/docs/components/EclLoadingIndicatorComponent.html +2 -2
  45. package/docs/components/EclMediaContainerComponent.html +2 -2
  46. package/docs/components/EclMegaMenuComponent.html +2 -2
  47. package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
  48. package/docs/components/EclMegaMenuInfoComponent.html +2 -2
  49. package/docs/components/EclMegaMenuItemComponent.html +2 -2
  50. package/docs/components/EclMegaMenuSubitemComponent.html +2 -26
  51. package/docs/components/EclMenuComponent.html +2 -2
  52. package/docs/components/EclMenuItemComponent.html +2 -2
  53. package/docs/components/EclMenuMegaComponent.html +2 -2
  54. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  55. package/docs/components/EclModalBodyComponent.html +3 -33
  56. package/docs/components/EclModalComponent.html +2 -2
  57. package/docs/components/EclModalFooterComponent.html +2 -2
  58. package/docs/components/EclModalHeaderComponent.html +2 -2
  59. package/docs/components/EclMultiselectComponent.html +2 -2
  60. package/docs/components/EclMultiselectDropdownComponent.html +2 -2
  61. package/docs/components/EclMultiselectInputComponent.html +2 -2
  62. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  63. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  64. package/docs/components/EclNavigationListComponent.html +2 -2
  65. package/docs/components/EclNavigationListItemComponent.html +2 -2
  66. package/docs/components/EclNewsTickerComponent.html +2 -2
  67. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  68. package/docs/components/EclNotificationComponent.html +2 -2
  69. package/docs/components/EclPageHeaderComponent.html +2 -2
  70. package/docs/components/EclPageHeaderExpandableComponent.html +2 -2
  71. package/docs/components/EclPaginationComponent.html +2 -2
  72. package/docs/components/EclPaginationItemComponent.html +3 -3
  73. package/docs/components/EclPopoverComponent.html +8 -37
  74. package/docs/components/EclRadioHelpComponent.html +2 -2
  75. package/docs/components/EclRadioLabelComponent.html +2 -2
  76. package/docs/components/EclRangeBubbleComponent.html +2 -2
  77. package/docs/components/EclRangeValueComponent.html +2 -2
  78. package/docs/components/EclRatingFieldComponent.html +2 -2
  79. package/docs/components/EclSearchFormComponent.html +5 -5
  80. package/docs/components/EclSelectContainerComponent.html +2 -2
  81. package/docs/components/EclSiteFooterComponent.html +2 -2
  82. package/docs/components/EclSiteFooterCoownerComponent.html +2 -2
  83. package/docs/components/EclSiteFooterCoreComponent.html +2 -2
  84. package/docs/components/EclSiteFooterFixedContentEUComponent.html +3 -3
  85. package/docs/components/EclSiteFooterRowCommonComponent.html +2 -2
  86. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  87. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  88. package/docs/components/EclSiteHeaderComponent.html +2 -21
  89. package/docs/components/EclSiteHeaderCustomActionComponent.html +2 -2
  90. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  91. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  92. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  93. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  94. package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
  95. package/docs/components/EclSiteHeaderSearchComponent.html +6 -6
  96. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  97. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  98. package/docs/components/EclSplashPageComponent.html +2 -2
  99. package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
  100. package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
  101. package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
  102. package/docs/components/EclSpotlightComponent.html +2 -2
  103. package/docs/components/EclSpotlightLinkComponent.html +2 -2
  104. package/docs/components/EclStickyContainerComponent.html +2 -2
  105. package/docs/components/EclTabComponent.html +3 -5
  106. package/docs/components/EclTabLabelComponent.html +2 -2
  107. package/docs/components/EclTableSortButtonComponent.html +2 -2
  108. package/docs/components/EclTabsComponent.html +3 -5
  109. package/docs/components/EclTagComponent.html +2 -2
  110. package/docs/components/EclTimelineComponent.html +2 -2
  111. package/docs/components/EclTimelineItemComponent.html +2 -2
  112. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  113. package/docs/directives/EclBreadcrumbContainerDirective.html +0 -23
  114. package/docs/directives/EclSiteFooterListDirective.html +0 -19
  115. package/docs/directives/EclSiteFooterSectionDirective.html +0 -96
  116. package/docs/js/menu-wc.js +0 -12
  117. package/docs/js/menu-wc_es5.js +1 -1
  118. package/docs/js/search/search_index.js +2 -2
  119. package/docs/miscellaneous/variables.html +1 -4
  120. package/docs/overview.html +2 -2
  121. package/docs/properties.html +1 -1
  122. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +6 -14
  123. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  124. package/fesm2022/eui-ecl-components-ecl-button.mjs +0 -1
  125. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  126. package/fesm2022/eui-ecl-components-ecl-divider.mjs +1 -1
  127. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  128. package/fesm2022/eui-ecl-components-ecl-featured.mjs +0 -2
  129. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  130. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +2 -18
  131. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  132. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +6 -13
  133. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  134. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  135. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +1 -1
  136. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  137. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  138. package/fesm2022/eui-ecl-components-ecl-modal.mjs +4 -15
  139. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  140. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +3 -4
  141. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  142. package/fesm2022/eui-ecl-components-ecl-popover.mjs +6 -6
  143. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  144. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +5 -7
  145. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  146. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +6 -115
  147. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  148. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +7 -11
  149. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  150. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +0 -1
  151. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  152. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +7 -51
  153. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  154. package/package.json +1 -1
  155. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +14 -19
  156. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  157. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  158. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  159. package/types/eui-ecl-components-ecl-gallery.d.ts +2 -8
  160. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  161. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +1 -5
  162. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  163. package/types/eui-ecl-components-ecl-link.d.ts +1 -1
  164. package/types/eui-ecl-components-ecl-mega-menu.d.ts +0 -1
  165. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  166. package/types/eui-ecl-components-ecl-modal.d.ts +1 -6
  167. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  168. package/types/eui-ecl-components-ecl-pagination.d.ts +1 -1
  169. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  170. package/types/eui-ecl-components-ecl-popover.d.ts +4 -4
  171. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  172. package/types/eui-ecl-components-ecl-search-form.d.ts +2 -2
  173. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  174. package/types/eui-ecl-components-ecl-site-footer.d.ts +4 -50
  175. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  176. package/types/eui-ecl-components-ecl-site-header.d.ts +3 -7
  177. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  178. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  179. package/types/eui-ecl-components-ecl-tabs.d.ts +4 -31
  180. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  181. package/docs/components/EclTabMoreComponent.html +0 -598
  182. package/docs/directives/EclSiteFooterLogoDirective.html +0 -523
  183. package/docs/directives/EclSiteFooterLogoItemDirective.html +0 -523
  184. package/docs/directives/EclSiteFooterLogoListDirective.html +0 -523
@@ -2027,9 +2027,6 @@
2027
2027
  EclSiteFooterDescriptionDirective,
2028
2028
  EclSiteFooterListDirective,
2029
2029
  EclSiteFooterLinkDirective,
2030
- EclSiteFooterLogoListDirective,
2031
- EclSiteFooterLogoItemDirective,
2032
- EclSiteFooterLogoDirective,
2033
2030
  EclSiteFooterListItemDirective,
2034
2031
  EclSiteFooterListDirective,
2035
2032
  EclSiteFooterRowDirective,
@@ -2256,7 +2253,7 @@
2256
2253
  <tr>
2257
2254
  <td class="col-md-4">
2258
2255
  <i>Default value : </i><code>[
2259
- EclTabsComponent, EclTabComponent, EclTabLabelComponent, EclTabMoreComponent,
2256
+ EclTabsComponent, EclTabComponent, EclTabLabelComponent,
2260
2257
  ] as const</code>
2261
2258
  </td>
2262
2259
  </tr>
@@ -122,7 +122,7 @@
122
122
  <div class="card text-center">
123
123
  <div class="card-block">
124
124
  <h4 class="card-title"><span class="icon ion-md-cog"></span></h4>
125
- <p class="card-text">112 Components</p>
125
+ <p class="card-text">111 Components</p>
126
126
  </div>
127
127
  </div>
128
128
  </div>
@@ -130,7 +130,7 @@
130
130
  <div class="card text-center">
131
131
  <div class="card-block">
132
132
  <h4 class="card-title"><span class="icon ion-md-code-working"></span></h4>
133
- <p class="card-text">173 Directives</p>
133
+ <p class="card-text">170 Directives</p>
134
134
  </div>
135
135
  </div>
136
136
  </div>
@@ -121,7 +121,7 @@
121
121
  </ol>
122
122
  <ul class="properties-list">
123
123
  <li>
124
- <b>Version</b> : 21.0.0-next.15</li>
124
+ <b>Version</b> : 21.0.0-next.17</li>
125
125
  </ul>
126
126
 
127
127
 
@@ -19,7 +19,6 @@ import { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';
19
19
  class EclBreadcrumbSegmentClickEvent extends EclBaseEvent {
20
20
  }
21
21
 
22
- // TODO: ecl-breadcrumb-segment selector is deprecated and should be removed in v20
23
22
  /**
24
23
  * Displays a single breadcrumb segment with optional navigation or ellipsis.
25
24
  */
@@ -93,11 +92,11 @@ class EclBreadcrumbSegmentComponent extends ECLBaseDirective {
93
92
  }
94
93
  }
95
94
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclBreadcrumbSegmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclBreadcrumbSegmentComponent, isStandalone: true, selector: "ecl-breadcrumb-segment, li[eclBreadcrumbSegment]", inputs: { routerLink: "routerLink", queryParams: "queryParams", href: "href", queryParamsHandling: "queryParamsHandling", isEllipsis: ["isEllipsis", "isEllipsis", booleanAttribute], isCurrentPage: ["isCurrentPage", "isCurrentPage", booleanAttribute], isHidden: ["isHidden", "isHidden", booleanAttribute] }, outputs: { segmentClick: "segmentClick" }, host: { properties: { "attr.tabindex": "this.tabIndex", "attr.role": "this.role", "attr.aria-hidden": "this.isHidden", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i2.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclBreadcrumbSegmentComponent, isStandalone: true, selector: "li[eclBreadcrumbSegment], ecl-breadcrumb-segment", inputs: { routerLink: "routerLink", queryParams: "queryParams", href: "href", queryParamsHandling: "queryParamsHandling", isEllipsis: ["isEllipsis", "isEllipsis", booleanAttribute], isCurrentPage: ["isCurrentPage", "isCurrentPage", booleanAttribute], isHidden: ["isHidden", "isHidden", booleanAttribute] }, outputs: { segmentClick: "segmentClick" }, host: { properties: { "attr.tabindex": "this.tabIndex", "attr.role": "this.role", "attr.aria-hidden": "this.isHidden", "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i2.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }], encapsulation: i0.ViewEncapsulation.None }); }
97
96
  }
98
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclBreadcrumbSegmentComponent, decorators: [{
99
98
  type: Component,
100
- args: [{ selector: 'ecl-breadcrumb-segment, li[eclBreadcrumbSegment]', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_ICON, ...EUI_ECL_LINK], encapsulation: ViewEncapsulation.None, template: "@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>" }]
99
+ args: [{ selector: 'li[eclBreadcrumbSegment], ecl-breadcrumb-segment', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_ICON, ...EUI_ECL_LINK], encapsulation: ViewEncapsulation.None, template: "@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>" }]
101
100
  }], ctorParameters: () => [], propDecorators: { tabIndex: [{
102
101
  type: HostBinding,
103
102
  args: ['attr.tabindex']
@@ -137,7 +136,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
137
136
  class EclBreadcrumbContainerDirective extends ECLBaseDirective {
138
137
  constructor() {
139
138
  super(...arguments);
140
- this.el = inject(ElementRef);
141
139
  /**
142
140
  * Adds breadcrumb container CSS class to the host element.
143
141
  */
@@ -246,10 +244,7 @@ class EclBreadcrumbComponent extends ECLBaseDirective {
246
244
  const secondEclSegmentEl = this.eclSegments.get(1).el.nativeElement;
247
245
  const ellipsisSegmentEl = this.eclEllipsisSegment.el.nativeElement;
248
246
  if (this.hasContainer) {
249
- this.renderer.insertBefore(this.eclBreadcrumbContainer.el.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);
250
- }
251
- else {
252
- this.renderer.insertBefore(this.breadcrumbContainer.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);
247
+ this.renderer.insertBefore(this.eclBreadcrumbContainer.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);
253
248
  }
254
249
  }
255
250
  }
@@ -312,11 +307,11 @@ class EclBreadcrumbComponent extends ECLBaseDirective {
312
307
  return this.eclSegments.reduce((width, segmentComponent) => width + segmentComponent.el.nativeElement.offsetWidth, 0);
313
308
  }
314
309
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclBreadcrumbComponent, isStandalone: true, selector: "ecl-breadcrumb", inputs: { isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "attr.role": "this.role", "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses", "attr.data-ecl-auto-initialized": "this.autoInitialized" } }, queries: [{ propertyName: "eclBreadcrumbContainer", first: true, predicate: EclBreadcrumbContainerDirective, descendants: true }, { propertyName: "eclSegments", predicate: i0.forwardRef(() => EclBreadcrumbSegmentComponent), descendants: true }], viewQueries: [{ propertyName: "eclEllipsisSegment", first: true, predicate: ["ellipsisSegment"], descendants: true }, { propertyName: "breadcrumbContainer", first: true, predicate: ["breadcrumbContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (!hasContainer) {\n<ol class=\"ecl-breadcrumb__container\" #breadcrumbContainer>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ol>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: i1$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: EclBreadcrumbSegmentComponent, selector: "ecl-breadcrumb-segment, li[eclBreadcrumbSegment]", inputs: ["routerLink", "queryParams", "href", "queryParamsHandling", "isEllipsis", "isCurrentPage", "isHidden"], outputs: ["segmentClick"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
310
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0", type: EclBreadcrumbComponent, isStandalone: true, selector: "ecl-breadcrumb", inputs: { isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "attr.role": "this.role", "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses", "attr.data-ecl-auto-initialized": "this.autoInitialized" } }, queries: [{ propertyName: "eclBreadcrumbContainer", first: true, predicate: EclBreadcrumbContainerDirective, descendants: true, read: ElementRef }, { propertyName: "eclSegments", predicate: i0.forwardRef(() => EclBreadcrumbSegmentComponent), descendants: true }], viewQueries: [{ propertyName: "eclEllipsisSegment", first: true, predicate: ["ellipsisSegment"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: i1$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: EclBreadcrumbSegmentComponent, selector: "li[eclBreadcrumbSegment], ecl-breadcrumb-segment", inputs: ["routerLink", "queryParams", "href", "queryParamsHandling", "isEllipsis", "isCurrentPage", "isHidden"], outputs: ["segmentClick"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
316
311
  }
317
312
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclBreadcrumbComponent, decorators: [{
318
313
  type: Component,
319
- args: [{ selector: 'ecl-breadcrumb', imports: [NgTemplateOutlet, TranslateModule, ...EUI_ECL_BUTTON, EclBreadcrumbSegmentComponent], template: "@if (!hasContainer) {\n<ol class=\"ecl-breadcrumb__container\" #breadcrumbContainer>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ol>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"] }]
314
+ args: [{ selector: 'ecl-breadcrumb', imports: [NgTemplateOutlet, TranslateModule, ...EUI_ECL_BUTTON, EclBreadcrumbSegmentComponent], template: "<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"] }]
320
315
  }], ctorParameters: () => [], propDecorators: { isExpanded: [{
321
316
  type: Input,
322
317
  args: [{ transform: booleanAttribute }]
@@ -329,12 +324,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
329
324
  }], eclEllipsisSegment: [{
330
325
  type: ViewChild,
331
326
  args: ['ellipsisSegment']
332
- }], breadcrumbContainer: [{
333
- type: ViewChild,
334
- args: ['breadcrumbContainer']
335
327
  }], eclBreadcrumbContainer: [{
336
328
  type: ContentChild,
337
- args: [EclBreadcrumbContainerDirective]
329
+ args: [EclBreadcrumbContainerDirective, { read: ElementRef }]
338
330
  }], eclSegments: [{
339
331
  type: ContentChildren,
340
332
  args: [forwardRef(() => EclBreadcrumbSegmentComponent), { descendants: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-breadcrumb.mjs","sources":["../../components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.ts","../../components/ecl-breadcrumb/ecl-breadcrumb-segment.component.ts","../../components/ecl-breadcrumb/ecl-breadcrumb-segment.component.html","../../components/ecl-breadcrumb/ecl-breadcrumb-container.directive.ts","../../components/ecl-breadcrumb/ecl-breadcrumb.component.ts","../../components/ecl-breadcrumb/ecl-breadcrumb.component.html","../../components/ecl-breadcrumb/index.ts","../../components/ecl-breadcrumb/eui-ecl-components-ecl-breadcrumb.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted when a breadcrumb segment is clicked.\n */\nexport class EclBreadcrumbSegmentClickEvent extends EclBaseEvent {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBreadcrumbSegmentClickEvent } from './events/ecl-breadcrumb-segment-click.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n// TODO: ecl-breadcrumb-segment selector is deprecated and should be removed in v20\n\n/**\n * Displays a single breadcrumb segment with optional navigation or ellipsis.\n */\n@Component({\n selector: 'ecl-breadcrumb-segment, li[eclBreadcrumbSegment]',\n templateUrl: './ecl-breadcrumb-segment.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclBreadcrumbSegmentComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * Defines the tabindex attribute for accessibility.\n */\n @HostBinding('attr.tabindex') tabIndex = '-1';\n\n /**\n * Defines the ARIA role for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Router link for navigation.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters used with routerLink.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Href used for standard navigation.\n */\n @Input() href = '';\n\n /**\n * Strategy for handling existing query parameters during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Displays the segment as an ellipsis instead of a link.\n */\n @Input({ transform: booleanAttribute }) isEllipsis = false;\n\n /**\n * Highlights the segment as the current page.\n */\n @Input({ transform: booleanAttribute }) isCurrentPage = false;\n\n /**\n * Hides the segment visually and from assistive technologies.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.aria-hidden')\n isHidden = false;\n\n /**\n * Emits when the segment is clicked.\n */\n @Output() segmentClick = new EventEmitter<EclBreadcrumbSegmentClickEvent>();\n\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-breadcrumb-segment') {\n console.warn('\"ecl-breadcrumb-segment\" selector is deprecated; use \"li[eclBreadcrumbSegment]\" instead.');\n }\n }\n\n /**\n * Computes the CSS classes applied to the segment.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-breadcrumb__segment'),\n this.isCurrentPage ? 'ecl-breadcrumb__current-page' : '',\n this.isEllipsis ? 'ecl-breadcrumb__segment--ellipsis' : '',\n ].join(' ').trim();\n }\n\n /**\n * Handles the click event on the segment.\n */\n onSegmentClick(evt: MouseEvent): void {\n this.segmentClick.next(new EclBreadcrumbSegmentClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n}\n","@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Used to wrap breadcrumb segments inside the breadcrumb component.\n */\n@Directive({\n selector: '[eclBreadcrumbContainer]',\n})\nexport class EclBreadcrumbContainerDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * Adds breadcrumb container CSS class to the host element.\n */\n @HostBinding('class.ecl-breadcrumb__container') hasClass = true;\n}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n HostListener,\n afterNextRender,\n ContentChild,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBreadcrumbSegmentComponent } from './ecl-breadcrumb-segment.component';\nimport { EclBreadcrumbContainerDirective } from './ecl-breadcrumb-container.directive';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Displays navigation segments and handles overflow with ellipsis.\n */\n@Component({\n selector: 'ecl-breadcrumb',\n templateUrl: './ecl-breadcrumb.component.html',\n imports: [NgTemplateOutlet, TranslateModule, ...EUI_ECL_BUTTON, EclBreadcrumbSegmentComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclBreadcrumbComponent extends ECLBaseDirective implements OnInit, OnDestroy {\n /**\n * Expands all breadcrumb segments instead of collapsing them.\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * ARIA role attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * ARIA label describing the breadcrumb purpose.\n */\n @HostBinding('attr.aria-label') ariaLabel;\n\n /**\n * Reference to the ellipsis segment element.\n */\n @ViewChild('ellipsisSegment') eclEllipsisSegment: EclBreadcrumbSegmentComponent;\n\n /**\n * @deprecated To be removed in v20. Not needed, replaced by 'eclBreadcrumbContainer'\n */\n @ViewChild('breadcrumbContainer') breadcrumbContainer: ElementRef;\n\n /**\n * Reference to the breadcrumb container directive inside this component.\n */\n @ContentChild(EclBreadcrumbContainerDirective) eclBreadcrumbContainer: EclBreadcrumbContainerDirective;\n\n /**\n * List of breadcrumb segment components.\n */\n @ContentChildren(forwardRef(() => EclBreadcrumbSegmentComponent), { descendants: true })\n eclSegments: QueryList<EclBreadcrumbSegmentComponent>;\n private el = inject(ElementRef);\n private translate = inject(TranslateService);\n private renderer = inject(Renderer2);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private nonStaticSegments: EclBreadcrumbSegmentComponent[] = [];\n\n constructor() {\n super();\n afterNextRender(() => {\n this.init();\n this.handleOverflownSegments();\n });\n }\n\n /**\n * CSS classes applied to the breadcrumb element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-breadcrumb'),\n this.isExpanded ? 'ecl-breadcrumb--wrap' : 'ecl-breadcrumb--collapsed',\n ].join(' ').trim();\n }\n\n /**\n * Returns true if breadcrumb was auto-initialized.\n */\n @HostBinding('attr.data-ecl-auto-initialized')\n get autoInitialized(): boolean | null {\n return this.isExpanded || null;\n }\n\n /**\n * Initializes translations for ARIA label.\n */\n ngOnInit(): void {\n this.translate\n .stream('ecl.breadcrumb.YOU-ARE-HERE')\n .pipe(takeUntil(this.destroy$))\n .subscribe((text) => {\n this.ariaLabel = text;\n });\n }\n\n /**\n * Cleans up subscriptions on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Handles window resize and recalculates overflown segments.\n */\n @HostListener('window:resize')\n onWindowResize(): void {\n this.handleOverflownSegments();\n }\n\n /**\n * Returns true if breadcrumb container directive exists.\n */\n get hasContainer(): boolean {\n return !!this.eclBreadcrumbContainer;\n }\n\n /**\n * Expands hidden breadcrumb segments after clicking ellipsis.\n */\n onEllipsisSegmentClick(evt: MouseEvent): void {\n this.eclSegments.forEach((segment) => {\n segment.isHidden = false;\n });\n this.hideEllipsis();\n this.isExpanded = true;\n }\n\n private init(): void {\n setTimeout(() => {\n this.insertEllipsisSegmentIntoPosition();\n this.handleStaticAndNonStaticSegments();\n });\n }\n\n private insertEllipsisSegmentIntoPosition(): void {\n if (this.hasEnoughSegments()) {\n const secondEclSegmentEl: HTMLElement = this.eclSegments.get(1).el.nativeElement;\n const ellipsisSegmentEl: HTMLElement = this.eclEllipsisSegment.el.nativeElement;\n if (this.hasContainer) {\n this.renderer.insertBefore(this.eclBreadcrumbContainer.el.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);\n } else {\n this.renderer.insertBefore(this.breadcrumbContainer.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);\n }\n }\n }\n\n private handleOverflownSegments(): void {\n if (this.hasEnoughSegments()) {\n setTimeout(() => {\n if (this.isBreadcrumbOverflowed()) {\n this.hideNonStaticSegments();\n this.showEllipsis();\n this.collapse();\n } else {\n this.hideEllipsis();\n this.showNonStaticSegments()\n this.expand();\n }\n });\n }\n }\n\n private hideNonStaticSegments(): void {\n this.nonStaticSegments.forEach((segment) => {\n segment.isHidden = true;\n });\n }\n\n private showNonStaticSegments(): void {\n this.nonStaticSegments.forEach((segment) => {\n segment.isHidden = false;\n });\n }\n\n private collapse(): void {\n this.isExpanded = false;\n }\n\n private expand(): void {\n this.isExpanded = true;\n }\n\n private hideEllipsis(): void {\n this.eclEllipsisSegment.isHidden = true;\n }\n\n private showEllipsis(): void {\n this.eclEllipsisSegment.isHidden = false;\n }\n\n private hasEnoughSegments(): boolean {\n return this.eclSegments && this.eclSegments.length > 3;\n }\n\n private handleStaticAndNonStaticSegments(): void {\n if (this.hasEnoughSegments()) {\n this.nonStaticSegments = this.eclSegments.toArray().slice(1, this.eclSegments.length - 2);\n }\n }\n\n private isBreadcrumbOverflowed(): boolean {\n const breadcrumbTotalWidth = this.getBreadcrumbTotalWidth();\n const segmentsTotalWidth = this.getSegmentsTotalWidth();\n const marginOfError = 1.1;\n\n return segmentsTotalWidth * marginOfError >= breadcrumbTotalWidth;\n }\n\n private getBreadcrumbTotalWidth(): number {\n return this.el.nativeElement.offsetWidth;\n }\n\n private getSegmentsTotalWidth(): number {\n return this.eclSegments.reduce((width: number, segmentComponent) => width + segmentComponent.el.nativeElement.offsetWidth, 0);\n }\n}\n","@if (!hasContainer) {\n<ol class=\"ecl-breadcrumb__container\" #breadcrumbContainer>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ol>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>","import { EclBreadcrumbComponent } from './ecl-breadcrumb.component';\nimport { EclBreadcrumbSegmentComponent } from './ecl-breadcrumb-segment.component';\nimport { EclBreadcrumbContainerDirective } from './ecl-breadcrumb-container.directive';\n\nexport * from './ecl-breadcrumb.component';\nexport * from './ecl-breadcrumb-segment.component';\nexport * from './models/ecl-breadcrumb.model';\nexport * from './events/ecl-breadcrumb-segment-click.event';\nexport * from './ecl-breadcrumb-container.directive';\n\nexport const EUI_ECL_BREADCRUMB = [\n EclBreadcrumbComponent, EclBreadcrumbSegmentComponent, EclBreadcrumbContainerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-breadcrumb.mjs","sources":["../../components/ecl-breadcrumb/events/ecl-breadcrumb-segment-click.event.ts","../../components/ecl-breadcrumb/ecl-breadcrumb-segment.component.ts","../../components/ecl-breadcrumb/ecl-breadcrumb-segment.component.html","../../components/ecl-breadcrumb/ecl-breadcrumb-container.directive.ts","../../components/ecl-breadcrumb/ecl-breadcrumb.component.ts","../../components/ecl-breadcrumb/ecl-breadcrumb.component.html","../../components/ecl-breadcrumb/index.ts","../../components/ecl-breadcrumb/eui-ecl-components-ecl-breadcrumb.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted when a breadcrumb segment is clicked.\n */\nexport class EclBreadcrumbSegmentClickEvent extends EclBaseEvent {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBreadcrumbSegmentClickEvent } from './events/ecl-breadcrumb-segment-click.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * Displays a single breadcrumb segment with optional navigation or ellipsis.\n */\n@Component({\n selector: 'li[eclBreadcrumbSegment], ecl-breadcrumb-segment',\n templateUrl: './ecl-breadcrumb-segment.component.html',\n imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclBreadcrumbSegmentComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * Defines the tabindex attribute for accessibility.\n */\n @HostBinding('attr.tabindex') tabIndex = '-1';\n\n /**\n * Defines the ARIA role for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Router link for navigation.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters used with routerLink.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Href used for standard navigation.\n */\n @Input() href = '';\n\n /**\n * Strategy for handling existing query parameters during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Displays the segment as an ellipsis instead of a link.\n */\n @Input({ transform: booleanAttribute }) isEllipsis = false;\n\n /**\n * Highlights the segment as the current page.\n */\n @Input({ transform: booleanAttribute }) isCurrentPage = false;\n\n /**\n * Hides the segment visually and from assistive technologies.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.aria-hidden')\n isHidden = false;\n\n /**\n * Emits when the segment is clicked.\n */\n @Output() segmentClick = new EventEmitter<EclBreadcrumbSegmentClickEvent>();\n\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-breadcrumb-segment') {\n console.warn('\"ecl-breadcrumb-segment\" selector is deprecated; use \"li[eclBreadcrumbSegment]\" instead.');\n }\n }\n\n /**\n * Computes the CSS classes applied to the segment.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-breadcrumb__segment'),\n this.isCurrentPage ? 'ecl-breadcrumb__current-page' : '',\n this.isEllipsis ? 'ecl-breadcrumb__segment--ellipsis' : '',\n ].join(' ').trim();\n }\n\n /**\n * Handles the click event on the segment.\n */\n onSegmentClick(evt: MouseEvent): void {\n this.segmentClick.next(new EclBreadcrumbSegmentClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n}\n","@if (!isEllipsis) {\n@if (!isCurrentPage && href) {\n<a eclLink variant=\"standalone\" [isNoVisited]=\"true\" [href]=\"href\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n@if (!isCurrentPage && !href) {\n<a eclLink [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n variant=\"standalone\" [isNoVisited]=\"true\" tabindex=\"0\" (click)=\"onSegmentClick($event)\"\n class=\"ecl-breadcrumb__link ecl-link ecl-link--standalone ecl-link--no-visited\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n}\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n@if (isCurrentPage) {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n<ecl-icon role=\"presentation\" icon=\"corner-arrow\" ariaHidden=\"true\" focusable=\"false\" size=\"fluid\"\n class=\"ecl-breadcrumb__icon\">\n</ecl-icon>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Used to wrap breadcrumb segments inside the breadcrumb component.\n */\n@Directive({\n selector: '[eclBreadcrumbContainer]',\n})\nexport class EclBreadcrumbContainerDirective extends ECLBaseDirective {\n\n /**\n * Adds breadcrumb container CSS class to the host element.\n */\n @HostBinding('class.ecl-breadcrumb__container') hasClass = true;\n}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChild,\n booleanAttribute,\n forwardRef,\n HostListener,\n afterNextRender,\n ContentChild,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBreadcrumbSegmentComponent } from './ecl-breadcrumb-segment.component';\nimport { EclBreadcrumbContainerDirective } from './ecl-breadcrumb-container.directive';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Displays navigation segments and handles overflow with ellipsis.\n */\n@Component({\n selector: 'ecl-breadcrumb',\n templateUrl: './ecl-breadcrumb.component.html',\n imports: [NgTemplateOutlet, TranslateModule, ...EUI_ECL_BUTTON, EclBreadcrumbSegmentComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclBreadcrumbComponent extends ECLBaseDirective implements OnInit, OnDestroy {\n /**\n * Expands all breadcrumb segments instead of collapsing them.\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n\n /**\n * ARIA role attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * ARIA label describing the breadcrumb purpose.\n */\n @HostBinding('attr.aria-label') ariaLabel;\n\n /**\n * Reference to the ellipsis segment element.\n */\n @ViewChild('ellipsisSegment') eclEllipsisSegment: EclBreadcrumbSegmentComponent;\n\n /**\n * Reference to the breadcrumb container directive inside this component.\n */\n @ContentChild(EclBreadcrumbContainerDirective, { read: ElementRef }) eclBreadcrumbContainer: ElementRef;\n\n /**\n * List of breadcrumb segment components.\n */\n @ContentChildren(forwardRef(() => EclBreadcrumbSegmentComponent), { descendants: true })\n eclSegments: QueryList<EclBreadcrumbSegmentComponent>;\n private el = inject(ElementRef);\n private translate = inject(TranslateService);\n private renderer = inject(Renderer2);\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private nonStaticSegments: EclBreadcrumbSegmentComponent[] = [];\n\n constructor() {\n super();\n afterNextRender(() => {\n this.init();\n this.handleOverflownSegments();\n });\n }\n\n /**\n * CSS classes applied to the breadcrumb element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-breadcrumb'),\n this.isExpanded ? 'ecl-breadcrumb--wrap' : 'ecl-breadcrumb--collapsed',\n ].join(' ').trim();\n }\n\n /**\n * Returns true if breadcrumb was auto-initialized.\n */\n @HostBinding('attr.data-ecl-auto-initialized')\n get autoInitialized(): boolean | null {\n return this.isExpanded || null;\n }\n\n /**\n * Initializes translations for ARIA label.\n */\n ngOnInit(): void {\n this.translate\n .stream('ecl.breadcrumb.YOU-ARE-HERE')\n .pipe(takeUntil(this.destroy$))\n .subscribe((text) => {\n this.ariaLabel = text;\n });\n }\n\n /**\n * Cleans up subscriptions on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Handles window resize and recalculates overflown segments.\n */\n @HostListener('window:resize')\n onWindowResize(): void {\n this.handleOverflownSegments();\n }\n\n /**\n * Returns true if breadcrumb container directive exists.\n */\n get hasContainer(): boolean {\n return !!this.eclBreadcrumbContainer;\n }\n\n /**\n * Expands hidden breadcrumb segments after clicking ellipsis.\n */\n onEllipsisSegmentClick(evt: MouseEvent): void {\n this.eclSegments.forEach((segment) => {\n segment.isHidden = false;\n });\n this.hideEllipsis();\n this.isExpanded = true;\n }\n\n private init(): void {\n setTimeout(() => {\n this.insertEllipsisSegmentIntoPosition();\n this.handleStaticAndNonStaticSegments();\n });\n }\n\n private insertEllipsisSegmentIntoPosition(): void {\n if (this.hasEnoughSegments()) {\n const secondEclSegmentEl: HTMLElement = this.eclSegments.get(1).el.nativeElement;\n const ellipsisSegmentEl: HTMLElement = this.eclEllipsisSegment.el.nativeElement;\n if (this.hasContainer) {\n this.renderer.insertBefore(this.eclBreadcrumbContainer.nativeElement, ellipsisSegmentEl, secondEclSegmentEl);\n }\n }\n }\n\n private handleOverflownSegments(): void {\n if (this.hasEnoughSegments()) {\n setTimeout(() => {\n if (this.isBreadcrumbOverflowed()) {\n this.hideNonStaticSegments();\n this.showEllipsis();\n this.collapse();\n } else {\n this.hideEllipsis();\n this.showNonStaticSegments()\n this.expand();\n }\n });\n }\n }\n\n private hideNonStaticSegments(): void {\n this.nonStaticSegments.forEach((segment) => {\n segment.isHidden = true;\n });\n }\n\n private showNonStaticSegments(): void {\n this.nonStaticSegments.forEach((segment) => {\n segment.isHidden = false;\n });\n }\n\n private collapse(): void {\n this.isExpanded = false;\n }\n\n private expand(): void {\n this.isExpanded = true;\n }\n\n private hideEllipsis(): void {\n this.eclEllipsisSegment.isHidden = true;\n }\n\n private showEllipsis(): void {\n this.eclEllipsisSegment.isHidden = false;\n }\n\n private hasEnoughSegments(): boolean {\n return this.eclSegments && this.eclSegments.length > 3;\n }\n\n private handleStaticAndNonStaticSegments(): void {\n if (this.hasEnoughSegments()) {\n this.nonStaticSegments = this.eclSegments.toArray().slice(1, this.eclSegments.length - 2);\n }\n }\n\n private isBreadcrumbOverflowed(): boolean {\n const breadcrumbTotalWidth = this.getBreadcrumbTotalWidth();\n const segmentsTotalWidth = this.getSegmentsTotalWidth();\n const marginOfError = 1.1;\n\n return segmentsTotalWidth * marginOfError >= breadcrumbTotalWidth;\n }\n\n private getBreadcrumbTotalWidth(): number {\n return this.el.nativeElement.offsetWidth;\n }\n\n private getSegmentsTotalWidth(): number {\n return this.eclSegments.reduce((width: number, segmentComponent) => width + segmentComponent.el.nativeElement.offsetWidth, 0);\n }\n}\n","<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n<ng-template #content>\n <li eclBreadcrumbSegment #ellipsisSegment [isHidden]=\"true\" isEllipsis>\n <button tabindex=\"0\" eclButton variant=\"tertiary\" size=\"m\" eclStyle=\"neutral\" class=\"ecl-breadcrumb__ellipsis\"\n [attr.aria-label]=\"'ecl.breadcrumb.SHOW-MORE-ITEMS' | translate\" (click)=\"onEllipsisSegmentClick($event)\">\n ...\n </button>\n </li>\n <ng-content></ng-content>\n</ng-template>","import { EclBreadcrumbComponent } from './ecl-breadcrumb.component';\nimport { EclBreadcrumbSegmentComponent } from './ecl-breadcrumb-segment.component';\nimport { EclBreadcrumbContainerDirective } from './ecl-breadcrumb-container.directive';\n\nexport * from './ecl-breadcrumb.component';\nexport * from './ecl-breadcrumb-segment.component';\nexport * from './models/ecl-breadcrumb.model';\nexport * from './events/ecl-breadcrumb-segment-click.event';\nexport * from './ecl-breadcrumb-container.directive';\n\nexport const EUI_ECL_BREADCRUMB = [\n EclBreadcrumbComponent, EclBreadcrumbSegmentComponent, EclBreadcrumbContainerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAEG;AACG,MAAO,8BAA+B,SAAQ,YAAY,CAAA;AAAG;;ACanE;;AAEG;AAOG,MAAO,6BAA8B,SAAQ,gBAAgB,CAAA;AAwD/D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAxDX,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB;;AAEG;QAC2B,IAAA,CAAA,QAAQ,GAAG,IAAI;AAE7C;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;AAE3C;;AAEG;;QAEM,IAAA,CAAA,UAAU,GAAmB,IAAI;AAE1C;;AAEG;QACM,IAAA,CAAA,WAAW,GAAkB,IAAI;AAE1C;;AAEG;QACM,IAAA,CAAA,IAAI,GAAG,EAAE;AAElB;;AAEG;QACM,IAAA,CAAA,mBAAmB,GAAwB,IAAI;AAExD;;AAEG;QACqC,IAAA,CAAA,UAAU,GAAG,KAAK;AAE1D;;AAEG;QACqC,IAAA,CAAA,aAAa,GAAG,KAAK;AAE7D;;AAEG;QAGH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAkC;AAIvE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAElB,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,wBAAwB,EAAE;AACrE,YAAA,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC;QAC5G;IACJ;AAEA;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC;YAC9C,IAAI,CAAC,aAAa,GAAG,8BAA8B,GAAG,EAAE;YACxD,IAAI,CAAC,UAAU,GAAG,mCAAmC,GAAG,EAAE;AAC7D,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAEA;;AAEG;AACH,IAAA,cAAc,CAAC,GAAe,EAAA;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,GAAG,CAAC,eAAe,EAAE;QACzB;IACJ;8GArFS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAqClB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAKhB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAKhB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1ExC,qoCA2Bc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHA,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAG7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kDAAkD,WAEnD,CAAC,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,EAAA,aAAA,EAC9E,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qoCAAA,EAAA;;sBAQpC,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,WAAW;;sBAMvB;;sBAKA;;sBAKA;;sBAKA;;sBAKA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAKrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAKrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC,WAAW;uBAAC,kBAAkB;;sBAM9B;;sBAcA,WAAW;uBAAC,OAAO;;;AE5FxB;;AAEG;AAIG,MAAO,+BAAgC,SAAQ,gBAAgB,CAAA;AAHrE,IAAA,WAAA,GAAA;;AAKI;;AAEG;QAC6C,IAAA,CAAA,QAAQ,GAAG,IAAI;AAClE,IAAA;8GANY,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACvC,iBAAA;;sBAMI,WAAW;uBAAC,iCAAiC;;;ACYlD;;AAEG;AAaG,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAqCxD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AArCX;;AAEG;QACqC,IAAA,CAAA,UAAU,GAAG,KAAK;AAE1D;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,YAAY;AAsBrC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QACnD,IAAA,CAAA,iBAAiB,GAAoC,EAAE;QAI3D,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,uBAAuB,EAAE;AAClC,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,sBAAsB,GAAG,2BAA2B;AACzE,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAEA;;AAEG;AACH,IAAA,IACI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI;IAClC;AAEA;;AAEG;IACH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC;aACA,MAAM,CAAC,6BAA6B;AACpC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACzB,QAAA,CAAC,CAAC;IACV;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;;AAEG;IAEH,cAAc,GAAA;QACV,IAAI,CAAC,uBAAuB,EAAE;IAClC;AAEA;;AAEG;AACH,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB;IACxC;AAEA;;AAEG;AACH,IAAA,sBAAsB,CAAC,GAAe,EAAA;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACjC,YAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;AAC5B,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;IAEQ,IAAI,GAAA;QACR,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,iCAAiC,EAAE;YACxC,IAAI,CAAC,gCAAgC,EAAE;AAC3C,QAAA,CAAC,CAAC;IACN;IAEQ,iCAAiC,GAAA;AACrC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC1B,YAAA,MAAM,kBAAkB,GAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa;YAChF,MAAM,iBAAiB,GAAgB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa;AAC/E,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;YAChH;QACJ;IACJ;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC1B,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,EAAE;oBAC5B,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,QAAQ,EAAE;gBACvB;qBAAO;oBACH,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,qBAAqB,EAAE;oBAC5B,IAAI,CAAC,MAAM,EAAE;gBACjB;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;IAEQ,qBAAqB,GAAA;QACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvC,YAAA,OAAO,CAAC,QAAQ,GAAG,IAAI;AAC3B,QAAA,CAAC,CAAC;IACN;IAEQ,qBAAqB,GAAA;QACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACvC,YAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;AAC5B,QAAA,CAAC,CAAC;IACN;IAEQ,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;IAC3B;IAEQ,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI;IAC3C;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK;IAC5C;IAEQ,iBAAiB,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;IAC1D;IAEQ,gCAAgC,GAAA;AACpC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7F;IACJ;IAEQ,sBAAsB,GAAA;AAC1B,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE;AAC3D,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE;QACvD,MAAM,aAAa,GAAG,GAAG;AAEzB,QAAA,OAAO,kBAAkB,GAAG,aAAa,IAAI,oBAAoB;IACrE;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;IAC5C;IAEQ,qBAAqB,GAAA;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,gBAAgB,KAAK,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACjI;8GAnMS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAIX,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoBtB,+BAA+B,2BAAU,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAK/B,6BAA6B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEnE,kgBAUc,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDsBA,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,oOAAqB,6BAA6B,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FASpF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;+BACI,gBAAgB,EAAA,OAAA,EAEjB,CAAC,gBAAgB,EAAE,eAAe,EAAE,GAAG,cAAc,EAAE,6BAA6B,CAAC,EAAA,QAAA,EAAA,kgBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAa7F,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAKrC,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,iBAAiB;;sBAK7B,SAAS;uBAAC,iBAAiB;;sBAK3B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,+BAA+B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAKlE,eAAe;uBAAC,UAAU,CAAC,MAAM,6BAA6B,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;sBAmBtF,WAAW;uBAAC,OAAO;;sBAWnB,WAAW;uBAAC,gCAAgC;;sBA4B5C,YAAY;uBAAC,eAAe;;;AEtH1B,MAAM,kBAAkB,GAAG;IAC9B,sBAAsB,EAAE,6BAA6B,EAAE,+BAA+B;;;ACX1F;;AAEG;;;;"}
@@ -94,7 +94,6 @@ class EclButtonComponent extends ECLBaseDirective {
94
94
  * Defaults to 'primary'.
95
95
  */
96
96
  this.variant = 'primary';
97
- // TODO 'cta' | 'ghost' | 'ghost-inverted' are deprecated and will be removed in v21 - breaking change
98
97
  this.eclStyle = 'default';
99
98
  this.size = 'l';
100
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-button.mjs","sources":["../../components/ecl-button/ecl-button-label.directive.ts","../../components/ecl-button/ecl-button.component.ts","../../components/ecl-button/ecl-button.component.html","../../components/ecl-button/index.ts","../../components/ecl-button/eui-ecl-components-ecl-button.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for labeling content inside the ECL Button.\n * Automatically applies the `ecl-button__label` CSS class.\n */\n@Directive({\n selector: '[eclButtonLabel]',\n})\nexport class EclButtonLabelDirective extends ECLBaseDirective {\n /**\n * Returns the CSS classes to apply for the button label.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-button__label')].join(' ').trim();\n }\n}\n\n/**\n * Directive for indicating special content inside the ECL Button.\n * Automatically applies the `ecl-indicator` CSS class.\n */\n@Directive({\n selector: '[eclIndicator]',\n})\nexport class EclIndicatorDirective {\n /**\n * Applies the `ecl-indicator` CSS class.\n */\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n\n/**\n * Directive for the icon container inside the ECL Button.\n * Automatically applies the `ecl-button__icon-container` CSS class.\n */\n@Directive({\n selector: '[eclButtonIconContainer]',\n})\nexport class EclButtonIconContainerDirective {\n /**\n * Applies the `ecl-button__icon-container` CSS class.\n */\n @HostBinding('class.ecl-button__icon-container') hasClass = true;\n}\n","import {\n booleanAttribute,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n QueryList,\n AfterViewInit,\n ContentChild,\n inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent, EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclIndicatorDirective } from './ecl-button-label.directive';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Button component based on ECL design system.\n * Can render as a `<button>` or `<a>` element depending on usage.\n * Supports multiple visual variants and optional icon/indicator content.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[eclButton], button[ecl-button], a[eclButton]',\n templateUrl: './ecl-button.component.html',\n imports: [\n NgTemplateOutlet,\n ...EUI_ECL_ICON,\n ],\n})\nexport class EclButtonComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Whether the button should be styled as icon-only.\n * When true, the `ecl-button--icon-only` class is applied.\n */\n @Input({ transform: booleanAttribute }) isIconOnly = false;\n\n /**\n * Visual variant of the button.\n * Can be 'primary', 'secondary', 'tertiary', 'cta', 'ghost', or 'ghost-inverted'.\n * Defaults to 'primary'.\n */\n @Input() variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n // TODO 'cta' | 'ghost' | 'ghost-inverted' are deprecated and will be removed in v21 - breaking change\n\n @Input() eclStyle: 'highlight' | 'inverted' | 'neutral' | 'default' = 'default';\n\n @Input() size: 's' | 'm' | 'l' = 'l';\n\n /**\n * Optional additional class to apply to the button container.\n */\n @Input() containerStyleClass: string;\n\n /**\n * List of projected icon components inside the button.\n * Used internally to detect presence of icons.\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n\n /**\n * Projected indicator element inside the button (e.g., for loading or notification).\n * Used internally to detect its presence.\n */\n @ContentChild(forwardRef(() => EclIndicatorDirective)) indicator: EclIndicatorDirective;\n\n /**\n * Computes the full set of CSS classes to apply to the button element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-button'), `ecl-button--${this.variant}`,\n this.isIconOnly ? 'ecl-button--icon-only' : '',\n this.eclStyle !== 'default' ? `ecl-button--${this.eclStyle}` : '',\n this.size !== 'l' ? `ecl-button--${this.size}` : '',\n ].join(' ').trim();\n }\n\n /**\n * Indicates whether the button contains an icon.\n * Used internally for styling logic.\n */\n get hasIcon(): boolean {\n return this.iconComponents.length > 0;\n }\n\n /**\n * Indicates whether the button contains an indicator element.\n * Used internally for styling logic.\n */\n get hasIndicator(): boolean {\n return !!this.indicator;\n }\n\n /**\n * Lifecycle hook triggered after content is projected.\n * Assigns a button-specific class to projected icon components.\n */\n ngAfterViewInit(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-button__icon';\n });\n });\n }\n }\n\n /**\n * Manually focuses the button element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n}\n","@if (hasIcon) {\n<span class=\"ecl-button__container {{ containerStyleClass }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n@else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { EclButtonComponent } from './ecl-button.component';\nimport { EclButtonLabelDirective, EclIndicatorDirective, EclButtonIconContainerDirective } from './ecl-button-label.directive';\n\nexport * from './ecl-button.component';\nexport * from './ecl-button-label.directive';\n\nexport const EUI_ECL_BUTTON = [\n EclButtonComponent,\n EclButtonLabelDirective,\n EclIndicatorDirective,\n EclButtonIconContainerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAGA;;;AAGG;AAIG,MAAO,uBAAwB,SAAQ,gBAAgB,CAAA;AACzD;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtE;8GAPS,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC/B,iBAAA;;sBAKI,WAAW;uBAAC,OAAO;;AAMxB;;;AAGG;MAIU,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;AAII;;AAEG;QACiC,IAAA,CAAA,QAAQ,GAAG,IAAI;AACtD,IAAA;8GALY,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,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;sBAKI,WAAW;uBAAC,qBAAqB;;AAGtC;;;AAGG;MAIU,+BAA+B,CAAA;AAH5C,IAAA,WAAA,GAAA;AAII;;AAEG;QAC8C,IAAA,CAAA,QAAQ,GAAG,IAAI;AACnE,IAAA;8GALY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACvC,iBAAA;;sBAKI,WAAW;uBAAC,kCAAkC;;;AC3BnD;;;;AAIG;AAUG,MAAO,kBAAmB,SAAQ,gBAAgB,CAAA;AATxD,IAAA,WAAA,GAAA;;AAUI,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB;;;AAGG;QACqC,IAAA,CAAA,UAAU,GAAG,KAAK;AAE1D;;;;AAIG;QACM,IAAA,CAAA,OAAO,GAAyC,SAAS;;QAGzD,IAAA,CAAA,QAAQ,GAAqD,SAAS;QAEtE,IAAA,CAAA,IAAI,GAAoB,GAAG;AAmEvC,IAAA;AAhDG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAA,YAAA,EAAe,IAAI,CAAC,OAAO,CAAA,CAAE;YACpE,IAAI,CAAC,UAAU,GAAG,uBAAuB,GAAG,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,KAAK,SAAS,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,QAAQ,CAAA,CAAE,GAAG,EAAE;AACjE,YAAA,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,EAAE;AACtD,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAEA;;;AAGG;AACH,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;IACzC;AAEA;;;AAGG;AACH,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;IAC3B;AAEA;;;AAGG;IACH,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAChC,oBAAA,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,kBAAkB;AAChD,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;QACN;IACJ;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IACjC;8GArFS,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,qDAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAOP,gBAAgB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MA6BL,qBAAqB,yFANlB,gBAAgB,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9DtD,gTAUc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDkBR,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIT,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qDAAqD,EAAA,OAAA,EAEtD;wBACP,gBAAgB;AAChB,wBAAA,GAAG,YAAY;AAChB,qBAAA,EAAA,QAAA,EAAA,gTAAA,EAAA;;sBASA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAOrC;;sBAGA;;sBAEA;;sBAKA;;sBAMA,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC;;sBAMlD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,qBAAqB,CAAC;;sBAKpD,WAAW;uBAAC,OAAO;;;AEnEjB,MAAM,cAAc,GAAG;IAC5B,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,+BAA+B;;;ACVjC;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-button.mjs","sources":["../../components/ecl-button/ecl-button-label.directive.ts","../../components/ecl-button/ecl-button.component.ts","../../components/ecl-button/ecl-button.component.html","../../components/ecl-button/index.ts","../../components/ecl-button/eui-ecl-components-ecl-button.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for labeling content inside the ECL Button.\n * Automatically applies the `ecl-button__label` CSS class.\n */\n@Directive({\n selector: '[eclButtonLabel]',\n})\nexport class EclButtonLabelDirective extends ECLBaseDirective {\n /**\n * Returns the CSS classes to apply for the button label.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-button__label')].join(' ').trim();\n }\n}\n\n/**\n * Directive for indicating special content inside the ECL Button.\n * Automatically applies the `ecl-indicator` CSS class.\n */\n@Directive({\n selector: '[eclIndicator]',\n})\nexport class EclIndicatorDirective {\n /**\n * Applies the `ecl-indicator` CSS class.\n */\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n\n/**\n * Directive for the icon container inside the ECL Button.\n * Automatically applies the `ecl-button__icon-container` CSS class.\n */\n@Directive({\n selector: '[eclButtonIconContainer]',\n})\nexport class EclButtonIconContainerDirective {\n /**\n * Applies the `ecl-button__icon-container` CSS class.\n */\n @HostBinding('class.ecl-button__icon-container') hasClass = true;\n}\n","import {\n booleanAttribute,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Input,\n QueryList,\n AfterViewInit,\n ContentChild,\n inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent, EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclIndicatorDirective } from './ecl-button-label.directive';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Button component based on ECL design system.\n * Can render as a `<button>` or `<a>` element depending on usage.\n * Supports multiple visual variants and optional icon/indicator content.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[eclButton], button[ecl-button], a[eclButton]',\n templateUrl: './ecl-button.component.html',\n imports: [\n NgTemplateOutlet,\n ...EUI_ECL_ICON,\n ],\n})\nexport class EclButtonComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Whether the button should be styled as icon-only.\n * When true, the `ecl-button--icon-only` class is applied.\n */\n @Input({ transform: booleanAttribute }) isIconOnly = false;\n\n /**\n * Visual variant of the button.\n * Can be 'primary', 'secondary', 'tertiary', 'cta', 'ghost', or 'ghost-inverted'.\n * Defaults to 'primary'.\n */\n @Input() variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n @Input() eclStyle: 'highlight' | 'inverted' | 'neutral' | 'default' = 'default';\n\n @Input() size: 's' | 'm' | 'l' = 'l';\n\n /**\n * Optional additional class to apply to the button container.\n */\n @Input() containerStyleClass: string;\n\n /**\n * List of projected icon components inside the button.\n * Used internally to detect presence of icons.\n */\n @ContentChildren(forwardRef(() => EclIconComponent)) iconComponents: QueryList<EclIconComponent>;\n\n /**\n * Projected indicator element inside the button (e.g., for loading or notification).\n * Used internally to detect its presence.\n */\n @ContentChild(forwardRef(() => EclIndicatorDirective)) indicator: EclIndicatorDirective;\n\n /**\n * Computes the full set of CSS classes to apply to the button element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-button'), `ecl-button--${this.variant}`,\n this.isIconOnly ? 'ecl-button--icon-only' : '',\n this.eclStyle !== 'default' ? `ecl-button--${this.eclStyle}` : '',\n this.size !== 'l' ? `ecl-button--${this.size}` : '',\n ].join(' ').trim();\n }\n\n /**\n * Indicates whether the button contains an icon.\n * Used internally for styling logic.\n */\n get hasIcon(): boolean {\n return this.iconComponents.length > 0;\n }\n\n /**\n * Indicates whether the button contains an indicator element.\n * Used internally for styling logic.\n */\n get hasIndicator(): boolean {\n return !!this.indicator;\n }\n\n /**\n * Lifecycle hook triggered after content is projected.\n * Assigns a button-specific class to projected icon components.\n */\n ngAfterViewInit(): void {\n if (this.iconComponents) {\n setTimeout(() => {\n this.iconComponents.forEach((icn) => {\n icn.baseDirective.class = 'ecl-button__icon';\n });\n });\n }\n }\n\n /**\n * Manually focuses the button element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n}\n","@if (hasIcon) {\n<span class=\"ecl-button__container {{ containerStyleClass }}\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</span>\n}\n@else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { EclButtonComponent } from './ecl-button.component';\nimport { EclButtonLabelDirective, EclIndicatorDirective, EclButtonIconContainerDirective } from './ecl-button-label.directive';\n\nexport * from './ecl-button.component';\nexport * from './ecl-button-label.directive';\n\nexport const EUI_ECL_BUTTON = [\n EclButtonComponent,\n EclButtonLabelDirective,\n EclIndicatorDirective,\n EclButtonIconContainerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ class EclDividerDirective extends ECLBaseDirective {
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclDividerDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
- selector: 'hr[eclDivider]', // TODO: breaking change, separator renamed to divider in v21
23
+ selector: 'hr[eclDivider]',
24
24
  }]
25
25
  }], propDecorators: { hasClass: [{
26
26
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-divider.mjs","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts","../../components/ecl-divider/eui-ecl-components-ecl-divider.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that applies ECL styling for horizontal separators (`<hr>` elements).\n * Adds the `ecl-separator` CSS class to the host element.\n */\n@Directive({\n selector: 'hr[eclDivider]', // TODO: breaking change, separator renamed to divider in v21\n})\nexport class EclDividerDirective extends ECLBaseDirective {\n /**\n * Binds the `ecl-separator` CSS class to the host `<hr>` element.\n */\n @HostBinding('class.ecl-separator') hasClass = true;\n}\n","import { EclDividerDirective } from './ecl-divider.directive';\n\nexport * from './ecl-divider.directive';\n\nexport const EUI_ECL_DIVIDER = [\n EclDividerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;AAIG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AAHzD,IAAA,WAAA,GAAA;;AAII;;AAEG;QACiC,IAAA,CAAA,QAAQ,GAAG,IAAI;AACtD,IAAA;8GALY,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;sBAKI,WAAW;uBAAC,qBAAqB;;;ACV/B,MAAM,eAAe,GAAG;IAC3B,mBAAmB;;;ACLvB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-divider.mjs","sources":["../../components/ecl-divider/ecl-divider.directive.ts","../../components/ecl-divider/index.ts","../../components/ecl-divider/eui-ecl-components-ecl-divider.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that applies ECL styling for horizontal separators (`<hr>` elements).\n * Adds the `ecl-separator` CSS class to the host element.\n */\n@Directive({\n selector: 'hr[eclDivider]',\n})\nexport class EclDividerDirective extends ECLBaseDirective {\n /**\n * Binds the `ecl-separator` CSS class to the host `<hr>` element.\n */\n @HostBinding('class.ecl-separator') hasClass = true;\n}\n","import { EclDividerDirective } from './ecl-divider.directive';\n\nexport * from './ecl-divider.directive';\n\nexport const EUI_ECL_DIVIDER = [\n EclDividerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;AAIG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;AAHzD,IAAA,WAAA,GAAA;;AAII;;AAEG;QACiC,IAAA,CAAA,QAAQ,GAAG,IAAI;AACtD,IAAA;8GALY,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;sBAKI,WAAW;uBAAC,qBAAqB;;;ACV/B,MAAM,eAAe,GAAG;IAC3B,mBAAmB;;;ACLvB;;AAEG;;;;"}
@@ -4,7 +4,6 @@ import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';
5
5
  import { uniqueId } from '@eui/core';
6
6
 
7
- // TODO: ecl-featured-item-footer and the associated directives are removed. Not used anymore. breaking change v21.
8
7
  /**
9
8
  * Custom ECL component, that adds visual support to a piece of content. Uses <ecl-media-container>.
10
9
  */
@@ -15,7 +14,6 @@ class EclFeaturedComponent extends ECLBaseDirective {
15
14
  * The position of the image in the component. Can be 'left' or 'right'. The default value is 'left'.
16
15
  */
17
16
  this.position = 'left';
18
- // TODO: new parameter for v21 - for EC variant only
19
17
  /** Gives a different display for the link in highlighted mode */
20
18
  this.isLinkHighlighted = false;
21
19
  this.role = 'article';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-featured.mjs","sources":["../../components/ecl-featured/ecl-featured.component.ts","../../components/ecl-featured/ecl-featured.component.html","../../components/ecl-featured/ecl-featured-item-link.directive.ts","../../components/ecl-featured/ecl-featured-item.component.ts","../../components/ecl-featured/ecl-featured-item.component.html","../../components/ecl-featured/ecl-featured-item-description.component.ts","../../components/ecl-featured/ecl-featured-item-description.component.html","../../components/ecl-featured/index.ts","../../components/ecl-featured/eui-ecl-components-ecl-featured.ts"],"sourcesContent":["import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n// TODO: ecl-featured-item-footer and the associated directives are removed. Not used anymore. breaking change v21.\n/**\n * Custom ECL component, that adds visual support to a piece of content. Uses <ecl-media-container>.\n */\n@Component({\n selector: 'ecl-featured',\n templateUrl: './ecl-featured.component.html',\n})\nexport class EclFeaturedComponent extends ECLBaseDirective {\n /**\n * The position of the image in the component. Can be 'left' or 'right'. The default value is 'left'.\n */\n @Input() position: 'left' | 'right' = 'left';\n \n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n @Input() variant: 'highlight'; // TODO: variant 'simple' is removed in v21 - breaking change\n\n // TODO: new parameter for v21 - for EC variant only\n /** Gives a different display for the link in highlighted mode */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-featured-item--link-highlighted') isLinkHighlighted = false;\n\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Adds specific classes to the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-featured-item'),\n this.variant ?`ecl-featured-item--${this.variant}`: '',\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-featured-item__container\" [class.ecl-featured-item__container--right]=\"position === 'right'\">\n <ng-content></ng-content>\n</div>","import { Directive, ElementRef, Input, Renderer2, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class for the eclLink directive, used in <ecl-featured-item> construction.\n */\n@Directive({\n selector: '[eclFeaturedItemLink]',\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__link') className = true;\n\n @Input()\n set ariaDescribedBy(value: string | null) {\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-describedby', value);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-describedby');\n }\n }\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n super();\n }\n}\n","import { AfterContentInit, Component, ContentChild, ContentChildren, HostBinding, Input, QueryList, Renderer2, ElementRef } from '@angular/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { uniqueId } from '@eui/core';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\n\n/**\n * Container for the text part - title and description of the <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item',\n templateUrl: './ecl-featured-item.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemComponent extends ECLBaseDirective implements AfterContentInit {\n @Input() eclTitle = '';\n @Input() id: string = `ecl-featured-item-${uniqueId()}`;\n @ContentChild(EclMediaContainerComponent) mediaContainer: EclMediaContainerComponent;\n @ContentChildren(EclFeaturedItemLinkDirective, { descendants: true })\n links?: QueryList<EclFeaturedItemLinkDirective>;\n\n @HostBinding('class.ecl-featured-item__item') className = true;\n\n constructor(private renderer: Renderer2) {\n super();\n }\n\n get hasTitle(): boolean {\n return this.eclTitle !== '';\n }\n\n ngAfterContentInit(): void {\n if (this.mediaContainer) {\n this.mediaContainer.class = 'ecl-featured-item__media_container';\n }\n\n const describedBy = this.hasTitle ? `${this.id}-title` : null;\n if (describedBy && this.links) {\n this.links.forEach(link => {\n link.ariaDescribedBy = describedBy;\n });\n }\n }\n}\n","@if(hasTitle) {\n <div class=\"ecl-featured-item__title\" [attr.id]=\"id + '-title'\">\n {{ eclTitle }}\n </div>\n}\n<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class to style <ecl-featured-item-description> component, as a part of the\n * <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item-description',\n templateUrl: './ecl-featured-item-description.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__description') className = true;\n}\n","<ng-content></ng-content>\n","import { EclFeaturedComponent } from './ecl-featured.component';\nimport { EclFeaturedItemComponent } from './ecl-featured-item.component';\nimport { EclFeaturedItemDescriptionComponent } from './ecl-featured-item-description.component';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\n\nexport * from './ecl-featured.component';\nexport * from './ecl-featured-item.component';\nexport * from './ecl-featured-item-description.component';\nexport * from './ecl-featured-item-link.directive';\n\nexport const EUI_ECL_FEATURED = [\n EclFeaturedComponent,\n EclFeaturedItemComponent,\n EclFeaturedItemLinkDirective,\n EclFeaturedItemDescriptionComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-featured.mjs","sources":["../../components/ecl-featured/ecl-featured.component.ts","../../components/ecl-featured/ecl-featured.component.html","../../components/ecl-featured/ecl-featured-item-link.directive.ts","../../components/ecl-featured/ecl-featured-item.component.ts","../../components/ecl-featured/ecl-featured-item.component.html","../../components/ecl-featured/ecl-featured-item-description.component.ts","../../components/ecl-featured/ecl-featured-item-description.component.html","../../components/ecl-featured/index.ts","../../components/ecl-featured/eui-ecl-components-ecl-featured.ts"],"sourcesContent":["import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Custom ECL component, that adds visual support to a piece of content. Uses <ecl-media-container>.\n */\n@Component({\n selector: 'ecl-featured',\n templateUrl: './ecl-featured.component.html',\n})\nexport class EclFeaturedComponent extends ECLBaseDirective {\n /**\n * The position of the image in the component. Can be 'left' or 'right'. The default value is 'left'.\n */\n @Input() position: 'left' | 'right' = 'left';\n \n /**\n * 'highligh' varian, applies class to make more stand out appearance of the component.\n */\n @Input() variant: 'highlight';\n\n /** Gives a different display for the link in highlighted mode */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-featured-item--link-highlighted') isLinkHighlighted = false;\n\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Adds specific classes to the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-featured-item'),\n this.variant ?`ecl-featured-item--${this.variant}`: '',\n ].join(' ').trim();\n }\n}\n","<div class=\"ecl-featured-item__container\" [class.ecl-featured-item__container--right]=\"position === 'right'\">\n <ng-content></ng-content>\n</div>","import { Directive, ElementRef, Input, Renderer2, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class for the eclLink directive, used in <ecl-featured-item> construction.\n */\n@Directive({\n selector: '[eclFeaturedItemLink]',\n})\nexport class EclFeaturedItemLinkDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__link') className = true;\n\n @Input()\n set ariaDescribedBy(value: string | null) {\n if (value) {\n this.renderer.setAttribute(this.el.nativeElement, 'aria-describedby', value);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'aria-describedby');\n }\n }\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n super();\n }\n}\n","import { AfterContentInit, Component, ContentChild, ContentChildren, HostBinding, Input, QueryList, Renderer2, ElementRef } from '@angular/core';\nimport { EclMediaContainerComponent } from '@eui/ecl/components/ecl-media-container';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { uniqueId } from '@eui/core';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\n\n/**\n * Container for the text part - title and description of the <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item',\n templateUrl: './ecl-featured-item.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemComponent extends ECLBaseDirective implements AfterContentInit {\n @Input() eclTitle = '';\n @Input() id: string = `ecl-featured-item-${uniqueId()}`;\n @ContentChild(EclMediaContainerComponent) mediaContainer: EclMediaContainerComponent;\n @ContentChildren(EclFeaturedItemLinkDirective, { descendants: true })\n links?: QueryList<EclFeaturedItemLinkDirective>;\n\n @HostBinding('class.ecl-featured-item__item') className = true;\n\n constructor(private renderer: Renderer2) {\n super();\n }\n\n get hasTitle(): boolean {\n return this.eclTitle !== '';\n }\n\n ngAfterContentInit(): void {\n if (this.mediaContainer) {\n this.mediaContainer.class = 'ecl-featured-item__media_container';\n }\n\n const describedBy = this.hasTitle ? `${this.id}-title` : null;\n if (describedBy && this.links) {\n this.links.forEach(link => {\n link.ariaDescribedBy = describedBy;\n });\n }\n }\n}\n","@if(hasTitle) {\n <div class=\"ecl-featured-item__title\" [attr.id]=\"id + '-title'\">\n {{ eclTitle }}\n </div>\n}\n<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Applies specific additional class to style <ecl-featured-item-description> component, as a part of the\n * <ecl-featured> component.\n */\n@Component({\n selector: 'ecl-featured-item-description',\n templateUrl: './ecl-featured-item-description.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclFeaturedItemDescriptionComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-featured-item__description') className = true;\n}\n","<ng-content></ng-content>\n","import { EclFeaturedComponent } from './ecl-featured.component';\nimport { EclFeaturedItemComponent } from './ecl-featured-item.component';\nimport { EclFeaturedItemDescriptionComponent } from './ecl-featured-item-description.component';\nimport { EclFeaturedItemLinkDirective } from './ecl-featured-item-link.directive';\n\nexport * from './ecl-featured.component';\nexport * from './ecl-featured-item.component';\nexport * from './ecl-featured-item-description.component';\nexport * from './ecl-featured-item-link.directive';\n\nexport const EUI_ECL_FEATURED = [\n EclFeaturedComponent,\n EclFeaturedItemComponent,\n EclFeaturedItemLinkDirective,\n EclFeaturedItemDescriptionComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -319,12 +319,6 @@ class EclGalleryItemComponent extends ECLBaseDirective {
319
319
  this.itemId = crypto.randomUUID();
320
320
  }
321
321
  }
322
- // TODO: to be removed in v19. Thumbnail should be added by user.
323
- ngAfterContentInit() {
324
- if (this.galleryPicture && !this.galleryThumbnail && !this.isImage) {
325
- this.galleryPicture.isThumbnail = true;
326
- }
327
- }
328
322
  /**
329
323
  * Set if the item should be shown in the gallery by default.
330
324
  */
@@ -365,21 +359,15 @@ class EclGalleryItemComponent extends ECLBaseDirective {
365
359
  get titleId() {
366
360
  return `${this.itemId}-title`;
367
361
  }
368
- /**
369
- * If the thimbnail was added by user. If not -> we are adding it in the view.
370
- */
371
- get hasGalleryThumbnail() {
372
- return !this.galleryThumbnail && this.isImage;
373
- }
374
362
  onFocus() {
375
363
  this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();
376
364
  }
377
365
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclGalleryItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclGalleryItemComponent, isStandalone: true, selector: "ecl-gallery-item", inputs: { isShareable: ["isShareable", "isShareable", booleanAttribute], mediaType: "mediaType", src: "src", meta: "meta", description: "description", srVideoAudioDescription: "srVideoAudioDescription", icon: "icon", title: "title", itemId: "itemId" }, outputs: { itemClick: "itemClick" }, host: { listeners: { "click": "onItemClick($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "mediaChild", first: true, predicate: EclGalleryMediaDirective, descendants: true }, { propertyName: "galleryThumbnail", first: true, predicate: EclGalleryThumbnailDirective, descendants: true }, { propertyName: "galleryPicture", first: true, predicate: EclGalleryPictureDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n @if(hasGalleryThumbnail) { <!-- TODO: to be removed in v21. Thumbnail should be added by user. -->\n <picture class=\"ecl-picture ecl-gallery__thumbnail\">\n @for(el of galleryPicture?.sources; track el.srcset ) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img class=\"ecl-gallery__image\"\n [attr.src]=\"galleryPicture?.img.src\"\n [attr.alt]=\"galleryPicture?.img.alt\" />\n </picture>\n }\n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>", dependencies: [{ kind: "component", type: i1$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
366
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclGalleryItemComponent, isStandalone: true, selector: "ecl-gallery-item", inputs: { isShareable: ["isShareable", "isShareable", booleanAttribute], mediaType: "mediaType", src: "src", meta: "meta", description: "description", srVideoAudioDescription: "srVideoAudioDescription", icon: "icon", title: "title", itemId: "itemId" }, outputs: { itemClick: "itemClick" }, host: { listeners: { "click": "onItemClick($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "mediaChild", first: true, predicate: EclGalleryMediaDirective, descendants: true }, { propertyName: "galleryPicture", first: true, predicate: EclGalleryPictureDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>", dependencies: [{ kind: "component", type: i1$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
379
367
  }
380
368
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclGalleryItemComponent, decorators: [{
381
369
  type: Component,
382
- args: [{ selector: 'ecl-gallery-item', imports: [...EUI_ECL_ICON], template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n @if(hasGalleryThumbnail) { <!-- TODO: to be removed in v21. Thumbnail should be added by user. -->\n <picture class=\"ecl-picture ecl-gallery__thumbnail\">\n @for(el of galleryPicture?.sources; track el.srcset ) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img class=\"ecl-gallery__image\"\n [attr.src]=\"galleryPicture?.img.src\"\n [attr.alt]=\"galleryPicture?.img.alt\" />\n </picture>\n }\n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>" }]
370
+ args: [{ selector: 'ecl-gallery-item', imports: [...EUI_ECL_ICON], template: "<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId\">{{title}}</span>\n }\n @if(description) {\n <span class=\"ecl-gallery__caption\">{{ description }}</span>\n }\n @if(icon) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta }}\n </span>\n </figcaption>\n </figure>\n</a>" }]
383
371
  }], propDecorators: { isShareable: [{
384
372
  type: Input,
385
373
  args: [{ transform: booleanAttribute }]
@@ -404,9 +392,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
404
392
  }], mediaChild: [{
405
393
  type: ContentChild,
406
394
  args: [EclGalleryMediaDirective]
407
- }], galleryThumbnail: [{
408
- type: ContentChild,
409
- args: [EclGalleryThumbnailDirective]
410
395
  }], galleryPicture: [{
411
396
  type: ContentChild,
412
397
  args: [EclGalleryPictureDirective]
@@ -449,7 +434,6 @@ class EclGalleryComponent extends ECLBaseDirective {
449
434
  * If set to true, a specific class will be applied, so the gallery thumbnails are displayed as a grid, all with same size.
450
435
  */
451
436
  this.isGrid = false;
452
- // TODO: not used, to be removed in v20.
453
437
  this.columns = 3;
454
438
  /**
455
439
  * This property can be used with 'isGrid' property set to true. By default gridTemplate is 0 and all the thimbnails have same size.