@eui/ecl 22.0.0-alpha.7 → 22.0.0-alpha.9

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 (27) hide show
  1. package/docs/changelog.html +35 -0
  2. package/docs/components/EclMegaMenuComponent.html +5 -203
  3. package/docs/components/EclMegaMenuFeaturedComponent.html +10 -126
  4. package/docs/components/EclMegaMenuInfoComponent.html +0 -91
  5. package/docs/components/EclMegaMenuItemComponent.html +38 -115
  6. package/docs/components/EclMegaMenuSubitemComponent.html +4 -68
  7. package/docs/directives/EclMegaMenuContainerDirective.html +0 -104
  8. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +0 -104
  9. package/docs/directives/EclMegaMenuFeaturedListDirective.html +0 -104
  10. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +0 -104
  11. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +0 -104
  12. package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +0 -39
  13. package/docs/directives/EclMegaMenuListDirective.html +0 -104
  14. package/docs/directives/EclMegaMenuSpacerDirective.html +0 -104
  15. package/docs/directives/EclMegaMenuSublistDirective.html +0 -165
  16. package/docs/js/search/search_index.js +2 -2
  17. package/docs/json/documentation.json +273 -851
  18. package/docs/llms.txt +2 -27
  19. package/docs/properties.html +1 -1
  20. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +4 -2
  21. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  22. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +100 -159
  23. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  26. package/types/eui-ecl-components-ecl-mega-menu.d.ts +12 -22
  27. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, inject, ElementRef, booleanAttribute, Input, viewChild, input, contentChildren, forwardRef, Component, Injectable, RendererFactory2, contentChild, EventEmitter, DOCUMENT, afterNextRender, Output, signal, IterableDiffers, PLATFORM_ID, Renderer2, output, HostListener } from '@angular/core';
2
+ import { Directive, input, booleanAttribute, inject, ElementRef, viewChild, contentChildren, forwardRef, Component, Injectable, RendererFactory2, contentChild, EventEmitter, DOCUMENT, afterNextRender, Output, Input, signal, IterableDiffers, PLATFORM_ID, Renderer2, output } from '@angular/core';
3
3
  import * as i1$1 from '@eui/ecl/core';
4
4
  import { ECLBaseDirective, KeyCode, EclRtlService, ECLClickOutsideDirective } from '@eui/ecl/core';
5
5
  import { EuiAppShellService } from '@eui/core';
@@ -19,43 +19,35 @@ import { TranslatePipe } from '@ngx-translate/core';
19
19
  * Directive that adds specific class to the mega-menu container.
20
20
  */
21
21
  class EclMegaMenuContainerDirective extends ECLBaseDirective {
22
- constructor() {
23
- super(...arguments);
24
- this.hasClass = true;
25
- }
26
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuContainerDirective, isStandalone: true, selector: "div[eclMegaMenuContainer]", host: { properties: { "class.ecl": "this.hasClass" } }, usesInheritance: true, ngImport: i0 }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuContainerDirective, isStandalone: true, selector: "div[eclMegaMenuContainer]", host: { classAttribute: "ecl" }, usesInheritance: true, ngImport: i0 }); }
28
24
  }
29
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuContainerDirective, decorators: [{
30
26
  type: Directive,
31
27
  args: [{
32
28
  selector: 'div[eclMegaMenuContainer]',
29
+ host: {
30
+ class: 'ecl',
31
+ },
33
32
  }]
34
- }], propDecorators: { hasClass: [{
35
- type: HostBinding,
36
- args: ['class.ecl']
37
- }] } });
33
+ }] });
38
34
 
39
35
  /**
40
36
  * Directive that adds specific class to the mega-menu featured list.
41
37
  */
42
38
  class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {
43
- constructor() {
44
- super(...arguments);
45
- this.cmpClass = true;
46
- }
47
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedListDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedList]", host: { properties: { "class.ecl-mega-menu__featured-list": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedListDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedList]", host: { classAttribute: "ecl-mega-menu__featured-list" }, usesInheritance: true, ngImport: i0 }); }
49
41
  }
50
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListDirective, decorators: [{
51
43
  type: Directive,
52
44
  args: [{
53
45
  selector: '[eclMegaMenuFeaturedList]',
46
+ host: {
47
+ class: 'ecl-mega-menu__featured-list',
48
+ },
54
49
  }]
55
- }], propDecorators: { cmpClass: [{
56
- type: HostBinding,
57
- args: ['class.ecl-mega-menu__featured-list']
58
- }] } });
50
+ }] });
59
51
  /**
60
52
  * Directive that adds specific class to a mega-menu featured list item.
61
53
  * Also has method that returns item height.
@@ -63,9 +55,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
63
55
  class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {
64
56
  constructor() {
65
57
  super(...arguments);
66
- this.cmpClass = true;
67
- this.isImageOnly = false;
68
- this.isCombo = false;
58
+ this.isImageOnly = input(false, { ...(ngDevMode ? { debugName: "isImageOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
59
+ this.isCombo = input(false, { ...(ngDevMode ? { debugName: "isCombo" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
69
60
  this.el = inject(ElementRef);
70
61
  }
71
62
  getEclMegaMenuFeaturedItemHeight() {
@@ -73,46 +64,32 @@ class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {
73
64
  return this.el.nativeElement.scrollHeight + parseFloat(computedStyle.marginBottom) + parseFloat(computedStyle.marginTop);
74
65
  }
75
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
76
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.1.2", type: EclMegaMenuFeaturedListItemDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedListItem]", inputs: { isImageOnly: ["isImageOnly", "isImageOnly", booleanAttribute], isCombo: ["isCombo", "isCombo", booleanAttribute] }, host: { properties: { "class.ecl-mega-menu__featured-list__item": "this.cmpClass", "class.ecl-mega-menu__featured-list__item--image-only": "this.isImageOnly", "class.ecl-mega-menu__featured-list__item--combo": "this.isCombo" } }, usesInheritance: true, ngImport: i0 }); }
67
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclMegaMenuFeaturedListItemDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedListItem]", inputs: { isImageOnly: { classPropertyName: "isImageOnly", publicName: "isImageOnly", isSignal: true, isRequired: false, transformFunction: null }, isCombo: { classPropertyName: "isCombo", publicName: "isCombo", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-mega-menu__featured-list__item--image-only": "isImageOnly()", "class.ecl-mega-menu__featured-list__item--combo": "isCombo()" }, classAttribute: "ecl-mega-menu__featured-list__item" }, usesInheritance: true, ngImport: i0 }); }
77
68
  }
78
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListItemDirective, decorators: [{
79
70
  type: Directive,
80
71
  args: [{
81
72
  selector: '[eclMegaMenuFeaturedListItem]',
73
+ host: {
74
+ class: 'ecl-mega-menu__featured-list__item',
75
+ '[class.ecl-mega-menu__featured-list__item--image-only]': 'isImageOnly()',
76
+ '[class.ecl-mega-menu__featured-list__item--combo]': 'isCombo()',
77
+ },
82
78
  }]
83
- }], propDecorators: { cmpClass: [{
84
- type: HostBinding,
85
- args: ['class.ecl-mega-menu__featured-list__item']
86
- }], isImageOnly: [{
87
- type: HostBinding,
88
- args: ['class.ecl-mega-menu__featured-list__item--image-only']
89
- }, {
90
- type: Input,
91
- args: [{ transform: booleanAttribute }]
92
- }], isCombo: [{
93
- type: HostBinding,
94
- args: ['class.ecl-mega-menu__featured-list__item--combo']
95
- }, {
96
- type: Input,
97
- args: [{ transform: booleanAttribute }]
98
- }] } });
79
+ }], propDecorators: { isImageOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isImageOnly", required: false }] }], isCombo: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCombo", required: false }] }] } });
99
80
  class EclMegaMenuFeaturedListItemDescriptionDirective extends ECLBaseDirective {
100
- constructor() {
101
- super(...arguments);
102
- this.cmpClass = true;
103
- }
104
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListItemDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
105
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedListItemDescriptionDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedListItemDescription]", host: { properties: { "class.ecl-mega-menu__featured-list__item-description": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedListItemDescriptionDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedListItemDescription]", host: { classAttribute: "ecl-mega-menu__featured-list__item-description" }, usesInheritance: true, ngImport: i0 }); }
106
83
  }
107
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedListItemDescriptionDirective, decorators: [{
108
85
  type: Directive,
109
86
  args: [{
110
87
  selector: '[eclMegaMenuFeaturedListItemDescription]',
88
+ host: {
89
+ class: 'ecl-mega-menu__featured-list__item-description',
90
+ },
111
91
  }]
112
- }], propDecorators: { cmpClass: [{
113
- type: HostBinding,
114
- args: ['class.ecl-mega-menu__featured-list__item-description']
115
- }] } });
92
+ }] });
116
93
 
117
94
  /**
118
95
  * Directive that adds specific class to the mega-menu featured picture.
@@ -122,37 +99,33 @@ class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {
122
99
  return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();
123
100
  }
124
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
125
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedPictureDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedPicture]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
102
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedPictureDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedPicture]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
126
103
  }
127
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedPictureDirective, decorators: [{
128
105
  type: Directive,
129
106
  args: [{
130
107
  selector: '[eclMegaMenuFeaturedPicture]',
108
+ host: {
109
+ '[class]': 'cssClasses',
110
+ },
131
111
  }]
132
- }], propDecorators: { cssClasses: [{
133
- type: HostBinding,
134
- args: ['class']
135
- }] } });
112
+ }] });
136
113
  /**
137
114
  * Directive that adds specific class to the mega-menu featured image.
138
115
  */
139
116
  class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {
140
- constructor() {
141
- super(...arguments);
142
- this.cmpClass = true;
143
- }
144
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
145
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedImageDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedImage]", host: { properties: { "class.ecl-mega-menu__featured-image": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 }); }
118
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuFeaturedImageDirective, isStandalone: true, selector: "[eclMegaMenuFeaturedImage]", host: { classAttribute: "ecl-mega-menu__featured-image" }, usesInheritance: true, ngImport: i0 }); }
146
119
  }
147
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedImageDirective, decorators: [{
148
121
  type: Directive,
149
122
  args: [{
150
123
  selector: '[eclMegaMenuFeaturedImage]',
124
+ host: {
125
+ class: 'ecl-mega-menu__featured-image',
126
+ },
151
127
  }]
152
- }], propDecorators: { cmpClass: [{
153
- type: HostBinding,
154
- args: ['class.ecl-mega-menu__featured-image']
155
- }] } });
128
+ }] });
156
129
 
157
130
  /**
158
131
  * This component represents the featured items panel.
@@ -162,8 +135,9 @@ class EclMegaMenuFeaturedComponent extends ECLBaseDirective {
162
135
  super(...arguments);
163
136
  this.megaMenuFeaturedScrollable = viewChild('megaMenuFeaturedScrollable', /* @ts-ignore */
164
137
  ...(ngDevMode ? [{ debugName: "megaMenuFeaturedScrollable" }] : /* istanbul ignore next */ []));
165
- this.cmpClass = true;
166
138
  this.eclMegaMenuFeaturedStyleHeight = null;
139
+ this.title = input(undefined, /* @ts-ignore */
140
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
167
141
  this.titleId = input(undefined, /* @ts-ignore */
168
142
  ...(ngDevMode ? [{ debugName: "titleId" }] : /* istanbul ignore next */ []));
169
143
  this.links = contentChildren(forwardRef(() => EclLinkDirective), { ...(ngDevMode ? { debugName: "links" } : /* istanbul ignore next */ {}), descendants: true });
@@ -182,20 +156,15 @@ class EclMegaMenuFeaturedComponent extends ECLBaseDirective {
182
156
  return result;
183
157
  }
184
158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuFeaturedComponent, isStandalone: true, selector: "div[eclMegaMenuFeatured]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-mega-menu__featured": "this.cmpClass", "style.height.px": "this.eclMegaMenuFeaturedStyleHeight" } }, queries: [{ propertyName: "links", predicate: i0.forwardRef(() => EclLinkDirective), descendants: true, isSignal: true }, { propertyName: "featuredItems", predicate: i0.forwardRef(() => EclMegaMenuFeaturedListItemDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "megaMenuFeaturedScrollable", first: true, predicate: ["megaMenuFeaturedScrollable"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId()}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>" }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuFeaturedComponent, isStandalone: true, selector: "div[eclMegaMenuFeatured]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.height.px": "eclMegaMenuFeaturedStyleHeight" }, classAttribute: "ecl-mega-menu__featured" }, queries: [{ propertyName: "links", predicate: i0.forwardRef(() => EclLinkDirective), descendants: true, isSignal: true }, { propertyName: "featuredItems", predicate: i0.forwardRef(() => EclMegaMenuFeaturedListItemDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "megaMenuFeaturedScrollable", first: true, predicate: ["megaMenuFeaturedScrollable"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title()) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId()}}\">{{ title() }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>" }); }
186
160
  }
187
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuFeaturedComponent, decorators: [{
188
162
  type: Component,
189
- args: [{ selector: 'div[eclMegaMenuFeatured]', template: "<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId()}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>" }]
190
- }], propDecorators: { megaMenuFeaturedScrollable: [{ type: i0.ViewChild, args: ['megaMenuFeaturedScrollable', { isSignal: true }] }], cmpClass: [{
191
- type: HostBinding,
192
- args: ['class.ecl-mega-menu__featured']
193
- }], eclMegaMenuFeaturedStyleHeight: [{
194
- type: HostBinding,
195
- args: ['style.height.px']
196
- }], title: [{
197
- type: Input
198
- }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], links: [{ type: i0.ContentChildren, args: [forwardRef(() => EclLinkDirective), { ...{ descendants: true }, isSignal: true }] }], featuredItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuFeaturedListItemDirective), { ...{ descendants: true }, isSignal: true }] }] } });
163
+ args: [{ selector: 'div[eclMegaMenuFeatured]', host: {
164
+ class: 'ecl-mega-menu__featured',
165
+ '[style.height.px]': 'eclMegaMenuFeaturedStyleHeight',
166
+ }, template: "<div class=\"ecl-mega-menu__featured-scrollable\" #megaMenuFeaturedScrollable>\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title()) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId()}}\">{{ title() }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>" }]
167
+ }], propDecorators: { megaMenuFeaturedScrollable: [{ type: i0.ViewChild, args: ['megaMenuFeaturedScrollable', { isSignal: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], links: [{ type: i0.ContentChildren, args: [forwardRef(() => EclLinkDirective), { ...{ descendants: true }, isSignal: true }] }], featuredItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuFeaturedListItemDirective), { ...{ descendants: true }, isSignal: true }] }] } });
199
168
 
200
169
  class EclMegaMenuDataService {
201
170
  constructor() {
@@ -445,15 +414,15 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
445
414
  });
446
415
  }
447
416
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSubitemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
448
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuSubitemComponent, isStandalone: true, selector: "li[eclMegaMenuSubitem]", inputs: { buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, isExternal: { classPropertyName: "isExternal", publicName: "isExternal", isSignal: true, isRequired: false, transformFunction: null }, externalIconTitle: { classPropertyName: "externalIconTitle", publicName: "externalIconTitle", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, isSeeAll: { classPropertyName: "isSeeAll", publicName: "isSeeAll", isSignal: true, isRequired: false, transformFunction: null }, linkExtraAttributes: { classPropertyName: "linkExtraAttributes", publicName: "linkExtraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { megaMenuSubItemClicked: "megaMenuSubItemClicked", megaMenuSubItemKeydown: "megaMenuSubItemKeydown" }, host: { properties: { "class": "this.cssClasses", "style.display": "this.display" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuFeatured", first: true, predicate: i0.forwardRef(() => EclMegaMenuFeaturedComponent), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "megaMenuLevel2", first: true, predicate: ["megaMenuLevel2"], descendants: true, isSignal: true }, { propertyName: "subMenuItemLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }, { propertyName: "subMenuItemBtn", first: true, predicate: ["subMenuItemBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (!isSeeAll()) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId()}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal()) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></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", "browserUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: i3.EclLinkLabelDirective, selector: "[eclLinkLabel]" }] }); }
417
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuSubitemComponent, isStandalone: true, selector: "li[eclMegaMenuSubitem]", inputs: { buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, isExternal: { classPropertyName: "isExternal", publicName: "isExternal", isSignal: true, isRequired: false, transformFunction: null }, externalIconTitle: { classPropertyName: "externalIconTitle", publicName: "externalIconTitle", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, isSeeAll: { classPropertyName: "isSeeAll", publicName: "isSeeAll", isSignal: true, isRequired: false, transformFunction: null }, linkExtraAttributes: { classPropertyName: "linkExtraAttributes", publicName: "linkExtraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { megaMenuSubItemClicked: "megaMenuSubItemClicked", megaMenuSubItemKeydown: "megaMenuSubItemKeydown" }, host: { properties: { "class": "cssClasses", "style.display": "display" } }, queries: [{ propertyName: "submenu", first: true, predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuFeatured", first: true, predicate: i0.forwardRef(() => EclMegaMenuFeaturedComponent), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "megaMenuLevel2", first: true, predicate: ["megaMenuLevel2"], descendants: true, isSignal: true }, { propertyName: "subMenuItemLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }, { propertyName: "subMenuItemBtn", first: true, predicate: ["subMenuItemBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (!isSeeAll()) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId()}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal()) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></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", "browserUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: i3.EclLinkLabelDirective, selector: "[eclLinkLabel]" }] }); }
449
418
  }
450
419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSubitemComponent, decorators: [{
451
420
  type: Component,
452
- args: [{ selector: 'li[eclMegaMenuSubitem]', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], template: "@if (!isSeeAll()) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId()}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal()) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>" }]
453
- }], ctorParameters: () => [], propDecorators: { cssClasses: [{
454
- type: HostBinding,
455
- args: ['class']
456
- }], buttonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonId", required: false }] }], label: [{
421
+ args: [{ selector: 'li[eclMegaMenuSubitem]', imports: [NgTemplateOutlet, RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], host: {
422
+ '[class]': 'cssClasses',
423
+ '[style.display]': 'display',
424
+ }, template: "@if (!isSeeAll()) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId()}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal()) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>" }]
425
+ }], ctorParameters: () => [], propDecorators: { buttonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonId", required: false }] }], label: [{
457
426
  type: Input
458
427
  }], isExternal: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExternal", required: false }] }], externalIconTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "externalIconTitle", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], href: [{
459
428
  type: Input
@@ -461,51 +430,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
461
430
  type: Output
462
431
  }], megaMenuSubItemKeydown: [{
463
432
  type: Output
464
- }], display: [{
465
- type: HostBinding,
466
- args: ['style.display']
467
433
  }] } });
468
434
 
469
435
  /**
470
436
  * Directive that adds specific class to the mega-menu list.
471
437
  */
472
438
  class EclMegaMenuListDirective extends ECLBaseDirective {
473
- constructor() {
474
- super(...arguments);
475
- this.cmpClass = true;
476
- }
477
439
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
478
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuListDirective, isStandalone: true, selector: "ul[eclMegaMenuList]", host: { properties: { "class.ecl-mega-menu__list": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 }); }
440
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuListDirective, isStandalone: true, selector: "ul[eclMegaMenuList]", host: { classAttribute: "ecl-mega-menu__list" }, usesInheritance: true, ngImport: i0 }); }
479
441
  }
480
442
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuListDirective, decorators: [{
481
443
  type: Directive,
482
444
  args: [{
483
445
  selector: 'ul[eclMegaMenuList]',
446
+ host: {
447
+ class: 'ecl-mega-menu__list',
448
+ },
484
449
  }]
485
- }], propDecorators: { cmpClass: [{
486
- type: HostBinding,
487
- args: ['class.ecl-mega-menu__list']
488
- }] } });
450
+ }] });
489
451
  /**
490
452
  * Directive that adds specific class to the mega-menu spacer.
491
453
  */
492
454
  class EclMegaMenuSpacerDirective extends ECLBaseDirective {
493
- constructor() {
494
- super(...arguments);
495
- this.cmpClass = true;
496
- }
497
455
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSpacerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
498
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuSpacerDirective, isStandalone: true, selector: "li[eclMegaMenuSpacer]", host: { properties: { "class.ecl-mega-menu__spacer": "this.cmpClass" } }, usesInheritance: true, ngImport: i0 }); }
456
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclMegaMenuSpacerDirective, isStandalone: true, selector: "li[eclMegaMenuSpacer]", host: { classAttribute: "ecl-mega-menu__spacer" }, usesInheritance: true, ngImport: i0 }); }
499
457
  }
500
458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSpacerDirective, decorators: [{
501
459
  type: Directive,
502
460
  args: [{
503
461
  selector: 'li[eclMegaMenuSpacer]',
462
+ host: {
463
+ class: 'ecl-mega-menu__spacer',
464
+ },
504
465
  }]
505
- }], propDecorators: { cmpClass: [{
506
- type: HostBinding,
507
- args: ['class.ecl-mega-menu__spacer']
508
- }] } });
466
+ }] });
509
467
  /**
510
468
  * Directive that adds specific classes and functionality to the mega-menu sublist.
511
469
  */
@@ -513,7 +471,6 @@ class EclMegaMenuSublistDirective extends ECLBaseDirective {
513
471
  constructor() {
514
472
  super();
515
473
  this.el = inject(ElementRef);
516
- this.cmpClass = true;
517
474
  this.isScrollable = false;
518
475
  this.styleTop = null;
519
476
  this.styleHeight = signal(null, /* @ts-ignore */
@@ -620,26 +577,20 @@ class EclMegaMenuSublistDirective extends ECLBaseDirective {
620
577
  });
621
578
  }
622
579
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSublistDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
623
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuSublistDirective, isStandalone: true, selector: "ul[eclMegaMenuSublist]", outputs: { megaMenuSubItemClicked: "megaMenuSubItemClicked" }, host: { properties: { "style.height.px": "styleHeight()", "class.ecl-mega-menu__sublist": "this.cmpClass", "class.ecl-mega-menu__sublist--scrollable": "this.isScrollable", "style.top.px": "this.styleTop" } }, queries: [{ propertyName: "submenuItems", predicate: i0.forwardRef(() => EclMegaMenuSubitemComponent), isSignal: true }, { propertyName: "spacer", first: true, predicate: i0.forwardRef(() => EclMegaMenuSpacerDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
580
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuSublistDirective, isStandalone: true, selector: "ul[eclMegaMenuSublist]", outputs: { megaMenuSubItemClicked: "megaMenuSubItemClicked" }, host: { properties: { "class.ecl-mega-menu__sublist--scrollable": "isScrollable", "style.top.px": "styleTop", "style.height.px": "styleHeight()" }, classAttribute: "ecl-mega-menu__sublist" }, queries: [{ propertyName: "submenuItems", predicate: i0.forwardRef(() => EclMegaMenuSubitemComponent), isSignal: true }, { propertyName: "spacer", first: true, predicate: i0.forwardRef(() => EclMegaMenuSpacerDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
624
581
  }
625
582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuSublistDirective, decorators: [{
626
583
  type: Directive,
627
584
  args: [{
628
585
  selector: 'ul[eclMegaMenuSublist]',
629
586
  host: {
587
+ class: 'ecl-mega-menu__sublist',
588
+ '[class.ecl-mega-menu__sublist--scrollable]': 'isScrollable',
589
+ '[style.top.px]': 'styleTop',
630
590
  '[style.height.px]': 'styleHeight()',
631
591
  },
632
592
  }]
633
- }], ctorParameters: () => [], propDecorators: { cmpClass: [{
634
- type: HostBinding,
635
- args: ['class.ecl-mega-menu__sublist']
636
- }], isScrollable: [{
637
- type: HostBinding,
638
- args: ['class.ecl-mega-menu__sublist--scrollable']
639
- }], styleTop: [{
640
- type: HostBinding,
641
- args: ['style.top.px']
642
- }], submenuItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuSubitemComponent), { isSignal: true }] }], spacer: [{ type: i0.ContentChild, args: [forwardRef(() => EclMegaMenuSpacerDirective), { isSignal: true }] }], megaMenuSubItemClicked: [{
593
+ }], ctorParameters: () => [], propDecorators: { submenuItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuSubitemComponent), { isSignal: true }] }], spacer: [{ type: i0.ContentChild, args: [forwardRef(() => EclMegaMenuSpacerDirective), { isSignal: true }] }], megaMenuSubItemClicked: [{
643
594
  type: Output
644
595
  }] } });
645
596
 
@@ -726,20 +677,16 @@ class EclMegaMenuInfoComponent extends ECLBaseDirective {
726
677
  }
727
678
  }
728
679
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
729
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuInfoComponent, isStandalone: true, selector: "div[eclMegaMenuInfo]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.opacity": "eclMegaMenuInfoStyleOpacity()", "class": "this.cssClasses", "style.height.px": "this.eclMegaMenuInfoStyleHeight" } }, queries: [{ propertyName: "linkItem", first: true, predicate: i0.forwardRef(() => EclLinkDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-mega-menu__info-title\" [attr.id]=\"titleId() || null\">{{ title() }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>" }); }
680
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuInfoComponent, isStandalone: true, selector: "div[eclMegaMenuInfo]", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleId: { classPropertyName: "titleId", publicName: "titleId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses", "style.height.px": "eclMegaMenuInfoStyleHeight", "style.opacity": "eclMegaMenuInfoStyleOpacity()" } }, queries: [{ propertyName: "linkItem", first: true, predicate: i0.forwardRef(() => EclLinkDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-mega-menu__info-title\" [attr.id]=\"titleId() || null\">{{ title() }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>" }); }
730
681
  }
731
682
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuInfoComponent, decorators: [{
732
683
  type: Component,
733
684
  args: [{ selector: 'div[eclMegaMenuInfo]', host: {
685
+ '[class]': 'cssClasses',
686
+ '[style.height.px]': 'eclMegaMenuInfoStyleHeight',
734
687
  '[style.opacity]': 'eclMegaMenuInfoStyleOpacity()',
735
688
  }, template: "<span class=\"ecl-mega-menu__info-title\" [attr.id]=\"titleId() || null\">{{ title() }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>" }]
736
- }], propDecorators: { cssClasses: [{
737
- type: HostBinding,
738
- args: ['class']
739
- }], eclMegaMenuInfoStyleHeight: [{
740
- type: HostBinding,
741
- args: ['style.height.px']
742
- }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], linkItem: [{ type: i0.ContentChild, args: [forwardRef(() => EclLinkDirective), { isSignal: true }] }] } });
689
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleId", required: false }] }], linkItem: [{ type: i0.ContentChild, args: [forwardRef(() => EclLinkDirective), { isSignal: true }] }] } });
743
690
 
744
691
  /**
745
692
  * This component represents a mega menu item. Adds functionality and styling, according to ECL standards.
@@ -761,12 +708,19 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
761
708
  .join(' ')
762
709
  .trim();
763
710
  }
711
+ /**
712
+ * Reflects whether this item has a submenu/container. Evaluated lazily during
713
+ * change detection (not at construction) so the content-query signals are
714
+ * resolved before it is read.
715
+ */
716
+ get hasPopup() {
717
+ return this.hasChildren ? true : null;
718
+ }
764
719
  constructor() {
765
720
  super();
766
721
  this.el = inject(ElementRef);
767
722
  this.renderer = inject(Renderer2);
768
723
  this.isExpanded = false;
769
- this.hasPopup = this.hasChildren ? true : null;
770
724
  this.isPromotional = input(false, { ...(ngDevMode ? { debugName: "isPromotional" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
771
725
  this.label = input(undefined, /* @ts-ignore */
772
726
  ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
@@ -869,7 +823,7 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
869
823
  if (!this.isMobileBreakpoint) {
870
824
  // Only hide/show the level-2 panel when switching sub-items
871
825
  const expandedSubItem = this.eclMegaMenuSublist().submenuItems().find(item => item.hasChildren && item.isExpanded);
872
- const megaMenuLevel2 = expandedSubItem.megaMenuLevel2();
826
+ const megaMenuLevel2 = expandedSubItem?.megaMenuLevel2();
873
827
  if (expandedSubItem && megaMenuLevel2) {
874
828
  megaMenuLevel2.nativeElement.style.opacity = '0';
875
829
  }
@@ -1076,7 +1030,7 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
1076
1030
  this.megaMenuMegaStyleHeight.set(null);
1077
1031
  // Check if a sub-item with children is expanded (panel 2)
1078
1032
  const expandedSubItem = eclMegaMenuSublistValue.submenuItems().find(item => item.hasChildren && item.isExpanded);
1079
- const megaMenuLevel2 = expandedSubItem.megaMenuLevel2();
1033
+ const megaMenuLevel2 = expandedSubItem?.megaMenuLevel2();
1080
1034
  if (expandedSubItem && megaMenuLevel2) {
1081
1035
  // No featured, panel 2 → set height on the level-2 div
1082
1036
  const subMegaRect = megaMenuLevel2.nativeElement.getBoundingClientRect();
@@ -1152,8 +1106,8 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
1152
1106
  heights.push(itemsHeight);
1153
1107
  }
1154
1108
  const expandedSubItem = eclMegaMenuSublist.submenuItems().find(item => item.hasChildren && item.isExpanded);
1155
- const eclMegaMenuFeatured = expandedSubItem.eclMegaMenuFeatured();
1156
1109
  if (expandedSubItem !== undefined) {
1110
+ const eclMegaMenuFeatured = expandedSubItem.eclMegaMenuFeatured();
1157
1111
  expandedSubItem.submenu().submenuItems().forEach(item => {
1158
1112
  subItemsHeight += item.getMegaMenuSubItemHeight();
1159
1113
  });
@@ -1204,12 +1158,13 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
1204
1158
  if (megaMenuLevel2) {
1205
1159
  megaMenuLevel2.nativeElement.style.opacity = '1';
1206
1160
  }
1207
- if (eclMegaMenuFeatured) {
1161
+ const expandedSubItemFeatured = expandedSubItem.eclMegaMenuFeatured();
1162
+ if (expandedSubItemFeatured) {
1208
1163
  if (this.isLarge) {
1209
- eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;
1164
+ expandedSubItemFeatured.eclMegaMenuFeaturedStyleHeight = height;
1210
1165
  }
1211
1166
  else {
1212
- eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;
1167
+ expandedSubItemFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;
1213
1168
  }
1214
1169
  }
1215
1170
  }
@@ -1259,18 +1214,15 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
1259
1214
  });
1260
1215
  }
1261
1216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuItemComponent, isStandalone: true, selector: "li[eclMegaMenuItem]", inputs: { isPromotional: { classPropertyName: "isPromotional", publicName: "isPromotional", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, isOneLevelOnly: { classPropertyName: "isOneLevelOnly", publicName: "isOneLevelOnly", isSignal: true, isRequired: false, transformFunction: null }, linkExtraAttributes: { classPropertyName: "linkExtraAttributes", publicName: "linkExtraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { megaMenuItemClicked: "megaMenuItemClicked", megaMenuItemKeydown: "megaMenuItemKeydown" }, host: { properties: { "class": "this.cssClasses", "attr.aria-haspopup": "this.hasPopup" } }, queries: [{ propertyName: "eclMegaMenuInfo", first: true, predicate: i0.forwardRef(() => EclMegaMenuInfoComponent), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuSublist", first: true, predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuSublists", predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuFeatured", first: true, predicate: i0.forwardRef(() => EclMegaMenuFeaturedComponent), isSignal: true }, { propertyName: "eclMegaMenuContainer", first: true, predicate: i0.forwardRef(() => EclMegaMenuContainerDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "eclMegaMenuMega", first: true, predicate: ["eclMegaMenuMega"], descendants: true, isSignal: true }, { propertyName: "mainPanel", first: true, predicate: ["mainPanel"], descendants: true, isSignal: true }, { propertyName: "menuLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }, { propertyName: "menuBtn", first: true, predicate: ["menuBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label()}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [style.opacity]=\"megaMenuMegaStyleOpacity()\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: i3.EclLinkLabelDirective, selector: "[eclLinkLabel]" }] }); }
1217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclMegaMenuItemComponent, isStandalone: true, selector: "li[eclMegaMenuItem]", inputs: { isPromotional: { classPropertyName: "isPromotional", publicName: "isPromotional", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, isOneLevelOnly: { classPropertyName: "isOneLevelOnly", publicName: "isOneLevelOnly", isSignal: true, isRequired: false, transformFunction: null }, linkExtraAttributes: { classPropertyName: "linkExtraAttributes", publicName: "linkExtraAttributes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { megaMenuItemClicked: "megaMenuItemClicked", megaMenuItemKeydown: "megaMenuItemKeydown" }, host: { properties: { "class": "cssClasses", "attr.aria-haspopup": "hasPopup" } }, queries: [{ propertyName: "eclMegaMenuInfo", first: true, predicate: i0.forwardRef(() => EclMegaMenuInfoComponent), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuSublist", first: true, predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuSublists", predicate: i0.forwardRef(() => EclMegaMenuSublistDirective), descendants: true, isSignal: true }, { propertyName: "eclMegaMenuFeatured", first: true, predicate: i0.forwardRef(() => EclMegaMenuFeaturedComponent), isSignal: true }, { propertyName: "eclMegaMenuContainer", first: true, predicate: i0.forwardRef(() => EclMegaMenuContainerDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "eclMegaMenuMega", first: true, predicate: ["eclMegaMenuMega"], descendants: true, isSignal: true }, { propertyName: "mainPanel", first: true, predicate: ["mainPanel"], descendants: true, isSignal: true }, { propertyName: "menuLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }, { propertyName: "menuBtn", first: true, predicate: ["menuBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label()}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [style.opacity]=\"megaMenuMegaStyleOpacity()\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: i3.EclLinkLabelDirective, selector: "[eclLinkLabel]" }] }); }
1263
1218
  }
1264
1219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuItemComponent, decorators: [{
1265
1220
  type: Component,
1266
- args: [{ selector: 'li[eclMegaMenuItem]', imports: [RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], template: "@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label()}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [style.opacity]=\"megaMenuMegaStyleOpacity()\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}" }]
1267
- }], ctorParameters: () => [], propDecorators: { cssClasses: [{
1268
- type: HostBinding,
1269
- args: ['class']
1270
- }], hasPopup: [{
1271
- type: HostBinding,
1272
- args: ['attr.aria-haspopup']
1273
- }], isPromotional: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPromotional", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], href: [{
1221
+ args: [{ selector: 'li[eclMegaMenuItem]', imports: [RouterLink, RouterLinkWithHref, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], host: {
1222
+ '[class]': 'cssClasses',
1223
+ '[attr.aria-haspopup]': 'hasPopup',
1224
+ }, template: "@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label()}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink()\"\n [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label()}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [class.ecl-mega-menu__mega--no-info]=\"hasNoInfo\"\n [class.ecl-mega-menu__mega--has-featured]=\"hasFeatured\" [style.height.px]=\"megaMenuMegaStyleHeight()\"\n [style.opacity]=\"megaMenuMegaStyleOpacity()\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}" }]
1225
+ }], ctorParameters: () => [], propDecorators: { isPromotional: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPromotional", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], href: [{
1274
1226
  type: Input
1275
1227
  }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], isOneLevelOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOneLevelOnly", required: false }] }], linkExtraAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkExtraAttributes", required: false }] }], megaMenuItemClicked: [{
1276
1228
  type: Output
@@ -1310,11 +1262,6 @@ class EclMegaMenuComponent extends ECLBaseDirective {
1310
1262
  constructor() {
1311
1263
  super();
1312
1264
  this.isExpanded = false;
1313
- this.document = inject(DOCUMENT);
1314
- /**
1315
- * The 'role' attribute of the component is set to 'navigation'. should not be changed.
1316
- */
1317
- this.role = 'navigation';
1318
1265
  /**
1319
1266
  * The event that is emitted, when a menu item is selected.
1320
1267
  */
@@ -1367,6 +1314,7 @@ class EclMegaMenuComponent extends ECLBaseDirective {
1367
1314
  this.eclMegaMenuDataService = inject(EclMegaMenuDataService);
1368
1315
  this.el = inject(ElementRef);
1369
1316
  this.renderer = inject(Renderer2);
1317
+ this.document = inject(DOCUMENT);
1370
1318
  this.window = this.document.defaultView;
1371
1319
  this.differ = this.differs.find([]).create();
1372
1320
  afterNextRender(() => {
@@ -1544,12 +1492,12 @@ class EclMegaMenuComponent extends ECLBaseDirective {
1544
1492
  switch (evt.key) {
1545
1493
  case KeyCode.ARROW_DOWN: {
1546
1494
  evt.preventDefault();
1547
- this.focusOnPrevSibling(itemIndex);
1495
+ this.focusOnNextSibling(itemIndex);
1548
1496
  break;
1549
1497
  }
1550
1498
  case KeyCode.ARROW_UP: {
1551
1499
  evt.preventDefault();
1552
- this.focusOnNextSibling(itemIndex);
1500
+ this.focusOnPrevSibling(itemIndex);
1553
1501
  break;
1554
1502
  }
1555
1503
  case KeyCode.ARROW_LEFT: {
@@ -1661,11 +1609,16 @@ class EclMegaMenuComponent extends ECLBaseDirective {
1661
1609
  }
1662
1610
  }
1663
1611
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1664
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuComponent, isStandalone: true, selector: "nav[eclMegaMenu]", outputs: { megaMenuItemSelect: "megaMenuItemSelect" }, host: { listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "this.cssClasses", "attr.data-expanded": "this.expandedAttr", "attr.role": "this.role" } }, queries: [{ propertyName: "menuItems", predicate: i0.forwardRef(() => EclMegaMenuItemComponent), descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1$1.ECLBaseDirective }, { directive: i1$1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" [attr.aria-expanded]=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n <span class=\"ecl-button__label\">{{ (isOpenMobile ? 'ecl.common.CLOSE' : 'ecl.menu.MENU') | translate }}</span>\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1612
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclMegaMenuComponent, isStandalone: true, selector: "nav[eclMegaMenu]", outputs: { megaMenuItemSelect: "megaMenuItemSelect" }, host: { attributes: { "role": "navigation" }, listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "cssClasses", "attr.data-expanded": "expandedAttr" } }, queries: [{ propertyName: "menuItems", predicate: i0.forwardRef(() => EclMegaMenuItemComponent), descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1$1.ECLBaseDirective }, { directive: i1$1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" [attr.aria-expanded]=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n <span class=\"ecl-button__label\">{{ (isOpenMobile ? 'ecl.common.CLOSE' : 'ecl.menu.MENU') | translate }}</span>\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1665
1613
  }
1666
1614
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclMegaMenuComponent, decorators: [{
1667
1615
  type: Component,
1668
- args: [{ selector: 'nav[eclMegaMenu]', imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON], hostDirectives: [
1616
+ args: [{ selector: 'nav[eclMegaMenu]', imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON], host: {
1617
+ role: 'navigation',
1618
+ '[class]': 'cssClasses',
1619
+ '[attr.data-expanded]': 'expandedAttr',
1620
+ '(eclClickOutside)': 'onClickOutsideMegaMenu()',
1621
+ }, hostDirectives: [
1669
1622
  {
1670
1623
  directive: ECLBaseDirective,
1671
1624
  },
@@ -1674,19 +1627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
1674
1627
  outputs: ['eclClickOutside'],
1675
1628
  },
1676
1629
  ], template: "<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" [attr.aria-expanded]=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n <span class=\"ecl-button__label\">{{ (isOpenMobile ? 'ecl.common.CLOSE' : 'ecl.menu.MENU') | translate }}</span>\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>" }]
1677
- }], ctorParameters: () => [], propDecorators: { cssClasses: [{
1678
- type: HostBinding,
1679
- args: ['class']
1680
- }], expandedAttr: [{
1681
- type: HostBinding,
1682
- args: ['attr.data-expanded']
1683
- }], role: [{
1684
- type: HostBinding,
1685
- args: ['attr.role']
1686
- }], megaMenuItemSelect: [{ type: i0.Output, args: ["megaMenuItemSelect"] }], menuItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuItemComponent), { ...{ descendants: true }, isSignal: true }] }], onClickOutsideMegaMenu: [{
1687
- type: HostListener,
1688
- args: ['eclClickOutside']
1689
- }] } });
1630
+ }], ctorParameters: () => [], propDecorators: { megaMenuItemSelect: [{ type: i0.Output, args: ["megaMenuItemSelect"] }], menuItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclMegaMenuItemComponent), { ...{ descendants: true }, isSignal: true }] }] } });
1690
1631
 
1691
1632
  const EUI_ECL_MEGA_MENU = [
1692
1633
  EclMegaMenuComponent,