@eui/ecl 21.0.0-alpha.15 → 21.0.0-alpha.16

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 (91) hide show
  1. package/components/ecl-banner/index.d.ts +8 -4
  2. package/components/ecl-banner/index.d.ts.map +1 -1
  3. package/components/ecl-gallery/index.d.ts +1 -1
  4. package/components/ecl-mega-menu/index.d.ts +1 -1
  5. package/components/ecl-mega-menu/index.d.ts.map +1 -1
  6. package/components/ecl-multiselect/index.d.ts +2 -2
  7. package/components/ecl-popover/index.d.ts +1 -1
  8. package/components/ecl-popover/index.d.ts.map +1 -1
  9. package/components/ecl-site-header/index.d.ts +1 -1
  10. package/docs/changelog.html +55 -0
  11. package/docs/components/EclBannerComponent.html +1 -1
  12. package/docs/components/EclBreadcrumbComponent.html +1 -6
  13. package/docs/components/EclGalleryComponent.html +4 -44
  14. package/docs/components/EclMultiselectDropdownComponent.html +3 -38
  15. package/docs/components/EclPopoverComponent.html +5 -50
  16. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +1 -6
  17. package/docs/directives/EclRangeDirective.html +2 -2
  18. package/docs/js/search/search_index.js +2 -2
  19. package/docs/properties.html +1 -1
  20. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +10 -10
  21. package/fesm2022/eui-ecl-components-ecl-app.mjs +7 -7
  22. package/fesm2022/eui-ecl-components-ecl-banner.mjs +85 -72
  23. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  24. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +13 -13
  25. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +14 -14
  26. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  27. package/fesm2022/eui-ecl-components-ecl-button.mjs +16 -16
  28. package/fesm2022/eui-ecl-components-ecl-card.mjs +16 -16
  29. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +10 -10
  30. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +13 -13
  31. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +16 -16
  32. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +58 -58
  33. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +13 -13
  34. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +7 -7
  35. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +7 -7
  36. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +7 -7
  37. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +22 -22
  38. package/fesm2022/eui-ecl-components-ecl-featured.mjs +25 -25
  39. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +7 -7
  40. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +7 -7
  41. package/fesm2022/eui-ecl-components-ecl-file.mjs +34 -34
  42. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +7 -7
  43. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +10 -10
  44. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +25 -25
  45. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  46. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +7 -7
  47. package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -7
  48. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +16 -16
  49. package/fesm2022/eui-ecl-components-ecl-label.mjs +7 -7
  50. package/fesm2022/eui-ecl-components-ecl-link.mjs +16 -16
  51. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -19
  52. package/fesm2022/eui-ecl-components-ecl-list.mjs +31 -31
  53. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -13
  54. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +19 -19
  55. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +50 -50
  56. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  57. package/fesm2022/eui-ecl-components-ecl-menu.mjs +16 -16
  58. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -25
  59. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +27 -27
  60. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  61. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -16
  62. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +13 -13
  63. package/fesm2022/eui-ecl-components-ecl-notification.mjs +10 -10
  64. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +37 -37
  65. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +13 -13
  66. package/fesm2022/eui-ecl-components-ecl-popover.mjs +17 -17
  67. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  68. package/fesm2022/eui-ecl-components-ecl-radio.mjs +16 -16
  69. package/fesm2022/eui-ecl-components-ecl-range.mjs +14 -14
  70. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  71. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +7 -7
  72. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +7 -7
  73. package/fesm2022/eui-ecl-components-ecl-select.mjs +10 -10
  74. package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -7
  75. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +61 -61
  76. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +65 -65
  77. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  78. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +13 -13
  79. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +13 -13
  80. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +31 -31
  81. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +7 -7
  82. package/fesm2022/eui-ecl-components-ecl-table.mjs +34 -34
  83. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +16 -16
  84. package/fesm2022/eui-ecl-components-ecl-tag.mjs +16 -16
  85. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +7 -7
  86. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +7 -7
  87. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +19 -19
  88. package/fesm2022/eui-ecl-core.mjs +25 -25
  89. package/fesm2022/eui-ecl-shared.mjs +3 -3
  90. package/fesm2022/eui-ecl.mjs +4 -4
  91. package/package.json +9 -9
@@ -121,7 +121,7 @@
121
121
  </ol>
122
122
  <ul class="properties-list">
123
123
  <li>
124
- <b>Version</b> : 21.0.0-alpha.15</li>
124
+ <b>Version</b> : 21.0.0-alpha.16</li>
125
125
  </ul>
126
126
 
127
127
 
@@ -33,10 +33,10 @@ class EclAccordionComponent {
33
33
  get cssClasses() {
34
34
  return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclAccordionComponent, isStandalone: true, selector: "ecl-accordion", host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclAccordionComponent, isStandalone: true, selector: "ecl-accordion", host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ selector: 'ecl-accordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule], hostDirectives: [
42
42
  {
@@ -100,10 +100,10 @@ class EclAccordionItemComponent {
100
100
  this.isExpanded = nextExpandedState;
101
101
  }
102
102
  }
103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-next.1", type: EclAccordionItemComponent, isStandalone: true, selector: "ecl-accordion-item", inputs: { label: "label", isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<h3 class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</h3>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-next.3", type: EclAccordionItemComponent, isStandalone: true, selector: "ecl-accordion-item", inputs: { label: "label", isExpanded: ["isExpanded", "isExpanded", booleanAttribute] }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.ECLBaseDirective }], ngImport: i0, template: "<h3 class=\"ecl-accordion__title\" [id]=\"titleId\">\n <button\n type=\"button\"\n (click)=\"onItemClick($event)\"\n [attr.aria-expanded]=\"isExpanded\"\n class=\"ecl-accordion__toggle\"\n [attr.aria-controls]=\"contentId\">\n <span class=\"ecl-accordion__toggle-flex\">\n <span class=\"ecl-accordion__toggle-title\">{{ label }}</span>\n <span class=\"ecl-accordion__toggle-indicator\">\n <ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n <ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n </ecl-icon>\n </span>\n </span>\n </button>\n</h3>\n<div class=\"ecl-accordion__content\" [hidden]=\"!isExpanded\" role=\"region\" [attr.aria-labelledby]=\"titleId\" [id]=\"contentId\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "ngmodule", type: TranslateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
105
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionItemComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionItemComponent, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: 'ecl-accordion-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, ...EUI_ECL_ICON, TranslateModule], hostDirectives: [
109
109
  {
@@ -129,11 +129,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1",
129
129
  * @deprecated Use {@link EUI_ECL_ACCORDION} instead.
130
130
  */
131
131
  class EclAccordionModule {
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
133
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionModule, imports: [EclAccordionComponent, EclAccordionItemComponent], exports: [EclAccordionComponent, EclAccordionItemComponent] }); }
134
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionModule, imports: [EclAccordionComponent, EclAccordionItemComponent] }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
133
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionModule, imports: [EclAccordionComponent, EclAccordionItemComponent], exports: [EclAccordionComponent, EclAccordionItemComponent] }); }
134
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionModule, imports: [EclAccordionComponent, EclAccordionItemComponent] }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAccordionModule, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAccordionModule, decorators: [{
137
137
  type: NgModule,
138
138
  args: [{
139
139
  imports: [EclAccordionComponent, EclAccordionItemComponent],
@@ -59,10 +59,10 @@ class EclAppComponent extends ECLBaseDirective {
59
59
  this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));
60
60
  });
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclAppComponent, isStandalone: true, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "this.textDirection" } }, queries: [{ propertyName: "eclSiteHeaderLanguage", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclAppComponent, isStandalone: true, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "this.textDirection" } }, queries: [{ propertyName: "eclSiteHeaderLanguage", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'ecl-app', template: "<ng-content></ng-content>\n" }]
68
68
  }], propDecorators: { textDirection: [{
@@ -81,11 +81,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1",
81
81
  * @deprecated Use {@link EUI_ECL_APP} instead.
82
82
  */
83
83
  class EclAppModule {
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
85
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppModule, imports: [EclAppComponent], exports: [EclAppComponent] }); }
86
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppModule }); }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
85
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppModule, imports: [EclAppComponent], exports: [EclAppComponent] }); }
86
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppModule }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclAppModule, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclAppModule, decorators: [{
89
89
  type: NgModule,
90
90
  args: [{
91
91
  imports: [EclAppComponent],
@@ -18,10 +18,10 @@ class EclBannerPictureDirective extends ECLBaseDirective {
18
18
  get cssClasses() {
19
19
  return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerPictureDirective, isStandalone: true, selector: "picture[eclBannerPicture]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerPictureDirective, isStandalone: true, selector: "picture[eclBannerPicture]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerPictureDirective, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerPictureDirective, decorators: [{
25
25
  type: Directive,
26
26
  args: [{
27
27
  selector: 'picture[eclBannerPicture]',
@@ -40,10 +40,10 @@ class EclBannerImageDirective extends ECLBaseDirective {
40
40
  this.el = inject(ElementRef);
41
41
  this.className = true;
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerImageDirective, isStandalone: true, selector: "img[eclBannerImage]", host: { properties: { "class.ecl-banner__image": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerImageDirective, isStandalone: true, selector: "img[eclBannerImage]", host: { properties: { "class.ecl-banner__image": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerImageDirective, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerImageDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{
49
49
  selector: 'img[eclBannerImage]',
@@ -66,10 +66,10 @@ class EclBannerVideoDirective extends ECLBaseDirective {
66
66
  */
67
67
  this.videoClasses = 'ecl-video ecl-banner__video';
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerVideoDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerVideoDirective, isStandalone: true, selector: "video[eclBannerVideo]", host: { properties: { "class": "this.videoClasses" } }, usesInheritance: true, ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerVideoDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerVideoDirective, isStandalone: true, selector: "video[eclBannerVideo]", host: { properties: { "class": "this.videoClasses" } }, usesInheritance: true, ngImport: i0 }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerVideoDirective, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerVideoDirective, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: 'video[eclBannerVideo]',
@@ -150,11 +150,13 @@ class EclBannerComponent extends ECLBaseDirective {
150
150
  this.isPlaying = false;
151
151
  this.BANNER_PADDING = 16;
152
152
  this.destroy$ = new Subject();
153
- this.bannerWidth = 0;
153
+ this.breakpoint = 996;
154
+ this.bannerVPadding = 8;
154
155
  this.isTabletBreakpoint = true;
155
156
  this.TIMEOUT_INTERVAL = 200;
156
157
  this.renderer = inject(Renderer2);
157
158
  this.cdkBreakpointObserver = inject(BreakpointObserver);
159
+ this.maxIterations = 10;
158
160
  afterNextRender(() => {
159
161
  this.observeBreakpointChanges();
160
162
  this.observeElementSizeChanges();
@@ -237,55 +239,66 @@ class EclBannerComponent extends ECLBaseDirective {
237
239
  observeElementSizeChanges() {
238
240
  new ResizeObserver(() => {
239
241
  setTimeout(() => {
240
- if (this.bannerWidth !== this.bannerContainer.nativeElement.offsetWidth) {
241
- this.bannerWidth = this.bannerContainer.nativeElement.offsetWidth;
242
- if (this.eclBannerImage || this.eclBannerVideo) {
243
- this.setBannerHeight();
244
- }
245
- }
242
+ this.checkViewport();
246
243
  }, this.TIMEOUT_INTERVAL);
247
244
  }).observe(this.bannerContainer.nativeElement);
248
245
  }
249
- setBannerHeight() {
250
- if (!this.bannerContainer) {
251
- return;
252
- }
253
- const bannerContainerHeight = this.bannerContainer.nativeElement.offsetHeight + this.BANNER_PADDING;
254
- const ratioArray = this.getRatioArray();
255
- const elHeight = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10) * ratioArray[1] / ratioArray[0];
256
- if (this.isTabletBreakpoint && bannerContainerHeight > elHeight) {
257
- if (this.eclBannerImage) {
258
- this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', 'auto');
259
- }
260
- else if (this.eclBannerVideo) {
261
- this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', 'auto');
262
- }
263
- this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerContainerHeight}px`);
246
+ checkViewport() {
247
+ if (window.innerWidth > this.breakpoint) {
248
+ this.setBannerHeight();
264
249
  }
265
250
  else {
266
- this.resetHeight();
267
- }
268
- if (this.bannerFooter) {
269
- this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;
251
+ this.resetBannerHeight();
270
252
  }
271
253
  }
272
- resetHeight() {
273
- this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');
274
- if (this.eclBannerImage) {
275
- const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');
276
- this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', aspectRatio);
254
+ waitForAspectRatioToBeDefined(attemptCounter) {
255
+ attemptCounter = attemptCounter + 1;
256
+ const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');
257
+ if ((typeof aspectRatio === 'undefined' || aspectRatio === '') &&
258
+ this.maxIterations > attemptCounter) {
259
+ setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);
277
260
  }
278
- if (this.eclBannerVideo) {
279
- this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', this.getDefaultRatio());
261
+ else {
262
+ this.setHeight(aspectRatio);
280
263
  }
281
264
  }
282
- getRatioArray() {
283
- if (this.eclBannerImage) {
284
- const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');
285
- return aspectRatio.split('/').map(Number);
265
+ setBannerHeight() {
266
+ if (this.eclBannerImage || this.eclBannerVideo) {
267
+ this.waitForAspectRatioToBeDefined(0);
286
268
  }
287
269
  else {
288
- return this.getDefaultRatio().split('/').map(Number);
270
+ this.setHeight(this.getDefaultRatio());
271
+ }
272
+ }
273
+ setHeight(ratio) {
274
+ if (this.bannerContainer) {
275
+ const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2 * this.bannerVPadding;
276
+ const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);
277
+ const [denominator, numerator] = ratio.split('/').map(Number);
278
+ const currentHeight = (bannerWidth * numerator) / denominator;
279
+ if (bannerHeight > currentHeight) {
280
+ this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');
281
+ this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);
282
+ }
283
+ else {
284
+ this.resetBannerHeight();
285
+ }
286
+ }
287
+ // Add margin to the banner container when there is a footer
288
+ // This is needed to keep the vertical alignment
289
+ if (this.bannerFooter) {
290
+ this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);
291
+ }
292
+ }
293
+ resetBannerHeight() {
294
+ // remove aspect-ratio
295
+ this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');
296
+ // set height to auto
297
+ this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');
298
+ // update footer height if bannerFooter exists
299
+ if (this.bannerFooter) {
300
+ const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;
301
+ this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);
289
302
  }
290
303
  }
291
304
  getDefaultRatio() {
@@ -317,10 +330,10 @@ class EclBannerComponent extends ECLBaseDirective {
317
330
  }
318
331
  });
319
332
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-next.1", type: EclBannerComponent, isStandalone: true, selector: "ecl-banner", inputs: { eclSize: "eclSize", fontColor: "fontColor", fontSize: "fontSize", boxBackground: "boxBackground", horizontalAlignment: "horizontalAlignment", verticalAlignment: "verticalAlignment", copyright: "copyright", isFullWidth: ["isFullWidth", "isFullWidth", booleanAttribute] }, host: { properties: { "style.--banner-footer-height.px": "this.bannerFooterHeight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBannerImage", first: true, predicate: EclBannerImageDirective, descendants: true }, { propertyName: "eclBannerVideo", first: true, predicate: EclBannerVideoDirective, descendants: true }, { propertyName: "eclLinkComponents", predicate: i0.forwardRef(() => EclLinkDirective) }], viewQueries: [{ propertyName: "bannerFooter", first: true, predicate: ["bannerFooter"], descendants: true }, { propertyName: "bannerContainer", first: true, predicate: ["bannerContainer"], descendants: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></div>\n</ng-template>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
333
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
334
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-next.3", type: EclBannerComponent, isStandalone: true, selector: "ecl-banner", inputs: { eclSize: "eclSize", fontColor: "fontColor", fontSize: "fontSize", boxBackground: "boxBackground", horizontalAlignment: "horizontalAlignment", verticalAlignment: "verticalAlignment", copyright: "copyright", isFullWidth: ["isFullWidth", "isFullWidth", booleanAttribute] }, host: { properties: { "style.--banner-footer-height.px": "this.bannerFooterHeight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBannerImage", first: true, predicate: EclBannerImageDirective, descendants: true }, { propertyName: "eclBannerVideo", first: true, predicate: EclBannerVideoDirective, descendants: true }, { propertyName: "eclLinkComponents", predicate: i0.forwardRef(() => EclLinkDirective) }], viewQueries: [{ propertyName: "bannerFooter", first: true, predicate: ["bannerFooter"], descendants: true }, { propertyName: "bannerContainer", first: true, predicate: ["bannerContainer"], descendants: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></div>\n</ng-template>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
322
335
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerComponent, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerComponent, decorators: [{
324
337
  type: Component,
325
338
  args: [{ selector: 'ecl-banner', imports: [
326
339
  ...EUI_ECL_ICON,
@@ -382,10 +395,10 @@ class EclBannerTitleDirective extends ECLBaseDirective {
382
395
  super(...arguments);
383
396
  this.className = 'ecl-banner__title';
384
397
  }
385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
386
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerTitleDirective, isStandalone: true, selector: "[eclBannerTitle]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
399
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerTitleDirective, isStandalone: true, selector: "[eclBannerTitle]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
387
400
  }
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleDirective, decorators: [{
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleDirective, decorators: [{
389
402
  type: Directive,
390
403
  args: [{
391
404
  selector: '[eclBannerTitle]',
@@ -403,10 +416,10 @@ class EclBannerTitleTextDirective extends ECLBaseDirective {
403
416
  super(...arguments);
404
417
  this.className = 'ecl-banner__title-text';
405
418
  }
406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
407
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerTitleTextDirective, isStandalone: true, selector: "[eclBannerTitleText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
420
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerTitleTextDirective, isStandalone: true, selector: "[eclBannerTitleText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
408
421
  }
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleTextDirective, decorators: [{
422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleTextDirective, decorators: [{
410
423
  type: Directive,
411
424
  args: [{
412
425
  selector: '[eclBannerTitleText]',
@@ -424,10 +437,10 @@ class EclBannerTitleLinkDirective extends ECLBaseDirective {
424
437
  super(...arguments);
425
438
  this.className = 'ecl-link ecl-banner__title-link';
426
439
  }
427
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
428
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
441
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
429
442
  }
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerTitleLinkDirective, decorators: [{
443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerTitleLinkDirective, decorators: [{
431
444
  type: Directive,
432
445
  args: [{
433
446
  selector: '[eclBannerTitleLink]',
@@ -445,10 +458,10 @@ class EclBannerDescriptionDirective extends ECLBaseDirective {
445
458
  super(...arguments);
446
459
  this.className = 'ecl-banner__description';
447
460
  }
448
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
449
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerDescriptionDirective, isStandalone: true, selector: "[eclBannerDescription]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
462
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerDescriptionDirective, isStandalone: true, selector: "[eclBannerDescription]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
450
463
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionDirective, decorators: [{
464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionDirective, decorators: [{
452
465
  type: Directive,
453
466
  args: [{
454
467
  selector: '[eclBannerDescription]',
@@ -465,10 +478,10 @@ class EclBannerDescriptionTextDirective extends ECLBaseDirective {
465
478
  super(...arguments);
466
479
  this.className = 'ecl-banner__description-text';
467
480
  }
468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
469
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerDescriptionTextDirective, isStandalone: true, selector: "[eclBannerDescriptionText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
482
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerDescriptionTextDirective, isStandalone: true, selector: "[eclBannerDescriptionText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
470
483
  }
471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionTextDirective, decorators: [{
484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionTextDirective, decorators: [{
472
485
  type: Directive,
473
486
  args: [{
474
487
  selector: '[eclBannerDescriptionText]',
@@ -485,10 +498,10 @@ class EclBannerDescriptionLinkDirective extends ECLBaseDirective {
485
498
  super(...arguments);
486
499
  this.className = 'ecl-link ecl-banner__description-link';
487
500
  }
488
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
489
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.1", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
502
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
490
503
  }
491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerDescriptionLinkDirective, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerDescriptionLinkDirective, decorators: [{
492
505
  type: Directive,
493
506
  args: [{
494
507
  selector: '[eclBannerDescriptionLink]',
@@ -517,8 +530,8 @@ const COMPONENTS = [
517
530
  * @deprecated Use {@link EUI_ECL_BANNER} instead.
518
531
  */
519
532
  class EclBannerModule {
520
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
521
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent,
533
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
534
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent,
522
535
  EclBannerTitleDirective,
523
536
  EclBannerTitleTextDirective,
524
537
  EclBannerDescriptionDirective,
@@ -537,9 +550,9 @@ class EclBannerModule {
537
550
  EclBannerTitleLinkDirective,
538
551
  EclBannerVideoDirective,
539
552
  EclBannerDescriptionLinkDirective] }); }
540
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent] }); }
553
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent] }); }
541
554
  }
542
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.1", ngImport: i0, type: EclBannerModule, decorators: [{
555
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclBannerModule, decorators: [{
543
556
  type: NgModule,
544
557
  args: [{
545
558
  imports: [...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_BUTTON,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private bannerWidth = 0;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n if (this.bannerWidth !== this.bannerContainer.nativeElement.offsetWidth) {\n this.bannerWidth = this.bannerContainer.nativeElement.offsetWidth;\n if (this.eclBannerImage || this.eclBannerVideo) {\n this.setBannerHeight();\n }\n }\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.bannerContainer.nativeElement);\n }\n\n private setBannerHeight(): void {\n if (!this.bannerContainer) {\n return;\n }\n\n const bannerContainerHeight = this.bannerContainer.nativeElement.offsetHeight + this.BANNER_PADDING;\n const ratioArray = this.getRatioArray();\n const elHeight = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10) * ratioArray[1] / ratioArray[0];\n if (this.isTabletBreakpoint && bannerContainerHeight > elHeight) {\n if (this.eclBannerImage) {\n this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', 'auto');\n } else if (this.eclBannerVideo) {\n this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', 'auto');\n }\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerContainerHeight}px`);\n } else {\n this.resetHeight();\n }\n\n if (this.bannerFooter) {\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n }\n }\n\n private resetHeight(): void {\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n if (this.eclBannerImage) {\n const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', aspectRatio);\n }\n if (this.eclBannerVideo) {\n this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', this.getDefaultRatio());\n }\n }\n\n private getRatioArray(): number[] {\n if (this.eclBannerImage) {\n const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n return aspectRatio.split('/').map(Number);\n } else {\n return this.getDefaultRatio().split('/').map(Number);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 997px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></div>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds appropriate link styling classes to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_BUTTON,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private breakpoint = 996;\n private bannerVPadding = 8;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private maxIterations = 10;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n this.checkViewport();\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.bannerContainer.nativeElement);\n }\n\n private checkViewport() {\n if (window.innerWidth > this.breakpoint) {\n this.setBannerHeight();\n } else {\n this.resetBannerHeight();\n }\n }\n\n private waitForAspectRatioToBeDefined(attemptCounter: number) {\n attemptCounter = attemptCounter + 1;\n const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n\n if (\n (typeof aspectRatio === 'undefined' || aspectRatio === '') &&\n this.maxIterations > attemptCounter\n ) {\n setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);\n } else {\n this.setHeight(aspectRatio);\n }\n }\n\n private setBannerHeight(): void {\n if (this.eclBannerImage || this.eclBannerVideo) {\n this.waitForAspectRatioToBeDefined(0);\n } else {\n this.setHeight(this.getDefaultRatio());\n }\n }\n\n private setHeight(ratio) {\n if (this.bannerContainer) {\n const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2*this.bannerVPadding;\n const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);\n const [denominator, numerator] = ratio.split('/').map(Number);\n const currentHeight = (bannerWidth * numerator) / denominator;\n if (bannerHeight > currentHeight) {\n this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);\n } else {\n this.resetBannerHeight();\n }\n }\n\n // Add margin to the banner container when there is a footer\n // This is needed to keep the vertical alignment\n if (this.bannerFooter) {\n this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);\n }\n }\n\n private resetBannerHeight(): void {\n // remove aspect-ratio\n this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');\n\n // set height to auto\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n\n // update footer height if bannerFooter exists\n if (this.bannerFooter) {\n const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;\n this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 997px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></div>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds appropriate link styling classes to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}