@eui/ecl 19.3.1-snapshot-1750853544438 → 19.3.1-snapshot-1750923072435
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.
- package/components/ecl-link/ecl-link.directive.d.ts +3 -0
- package/components/ecl-link/ecl-link.directive.d.ts.map +1 -1
- package/components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.d.ts +3 -0
- package/components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.d.ts.map +1 -1
- package/components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.d.ts +7 -0
- package/components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.d.ts.map +1 -1
- package/components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.d.ts +6 -0
- package/components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.d.ts.map +1 -1
- package/components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.d.ts +13 -0
- package/components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.d.ts.map +1 -1
- package/components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.d.ts +7 -0
- package/components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.d.ts.map +1 -1
- package/components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.d.ts +22 -0
- package/components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.d.ts.map +1 -1
- package/components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.d.ts +43 -0
- package/components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.d.ts.map +1 -1
- package/components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.d.ts +45 -0
- package/components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.d.ts.map +1 -1
- package/components/ecl-mega-menu/ecl-mega-menu.component.d.ts +39 -0
- package/components/ecl-mega-menu/ecl-mega-menu.component.d.ts.map +1 -1
- package/components/ecl-mega-menu/services/ecl-mega-menu-data.service.d.ts +3 -0
- package/components/ecl-mega-menu/services/ecl-mega-menu-data.service.d.ts.map +1 -1
- package/docs/components/EclMegaMenuComponent.html +81 -0
- package/docs/components/EclMegaMenuFeaturedComponent.html +13 -0
- package/docs/components/EclMegaMenuInfoComponent.html +60 -0
- package/docs/components/EclMegaMenuItemComponent.html +88 -0
- package/docs/components/EclMegaMenuSubitemComponent.html +79 -0
- package/docs/dependencies.html +2 -2
- package/docs/directives/EclLinkDirective.html +1 -1
- package/docs/directives/EclMegaMenuContainerDirective.html +7 -0
- package/docs/directives/EclMegaMenuFeaturedImageDirective.html +7 -0
- package/docs/directives/EclMegaMenuFeaturedListDirective.html +7 -0
- package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +8 -0
- package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +7 -0
- package/docs/directives/EclMegaMenuListDirective.html +7 -0
- package/docs/directives/EclMegaMenuSpacerDirective.html +7 -0
- package/docs/directives/EclMegaMenuSublistDirective.html +16 -0
- package/docs/injectables/EclMegaMenuDataService.html +2 -0
- package/docs/js/search/search_index.js +2 -2
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +139 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-link.mjs","sources":["../../components/ecl-link/ecl-link.directive.ts","../../components/ecl-link/ecl-link-label.directive.ts","../../components/ecl-link/ecl-link.module.ts","../../components/ecl-link/eui-ecl-components-ecl-link.ts"],"sourcesContent":["import { Directive, HostBinding, Input, forwardRef, ContentChildren, QueryList, booleanAttribute, ElementRef, AfterContentInit } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n/**\n * 'eclLink' directive is used to add some styling to the defalt HTML anchor component. In order to comply with ECL standards.\n */\n@Directive({\n selector: '[eclLink]',\n standalone: false,\n})\nexport class EclLinkDirective extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * Adds speific ECL classes to the <a> component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link'), this.variant ? `ecl-link--${this.variant}` : ''].join(' ').trim();\n }\n /**\n * Adds class for styling if the link has icon.\n */\n @HostBinding('class.ecl-link--icon')\n get hasIcon(): boolean {\n return this.eclIconComponents && this.eclIconComponents.length > 0;\n }\n\n @HostBinding('class.ecl-link--no-visited')\n get isLinkNoVisited(): boolean {\n return this.isNoVisited;\n }\n\n /**\n * Property to style the component as 'inverted' (with dark background).\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-link--inverted') isInverted = false;\n /**\n * Property to style the component if it consist only of an icon.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-link--icon-only') isIconOnly = false;\n @Input({ transform: booleanAttribute }) isNoVisited: boolean;\n /**\n * With 'varian' property user can add some more specific styling to the <a> component.\n */\n @Input() variant: 'standalone' | 'cta' | 'primary' | 'secondary';\n\n @ContentChildren(forwardRef(() => EclIconComponent), { descendants: true }) eclIconComponents: QueryList<EclIconComponent>;\n\n constructor(public el: ElementRef) {\n super();\n }\n\n ngAfterContentInit(): void {\n // Add additional class to the child icon, if any.\n if (this.eclIconComponents) {\n setTimeout(() => {\n this.eclIconComponents.forEach((icn) => {\n icn.baseDirective.class = icn.baseDirective.class ? icn.baseDirective.class + ' ecl-link__icon' : 'ecl-link__icon';\n });\n });\n }\n }\n\n /**\n * Calls the native focus() method of the default HTML element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n\n /**\n * Calls the native click() method of the default HTML element.\n */\n onClick(): void {\n this.el.nativeElement.click();\n }\n\n /**\n * Calls the native blur() method of the default HTML element.\n */\n onBlur(): void {\n this.el.nativeElement.blur();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclLinkLabel]',\n standalone: false,\n})\nexport class EclLinkLabelDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link__label')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclIndicator]',\n standalone: false,\n})\nexport class EclIndicatorDirective {\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n\n@Directive({\n selector: '[eclLinkIconContainer]',\n standalone: false,\n})\nexport class EclLinkIconContainerDirective {\n @HostBinding('class.ecl-link__icon-container') hasClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EclLinkDirective } from './ecl-link.directive';\nimport { EclIndicatorDirective, EclLinkIconContainerDirective, EclLinkLabelDirective } from './ecl-link-label.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [EclLinkDirective, EclLinkLabelDirective, EclIndicatorDirective, EclLinkIconContainerDirective],\n declarations: [EclLinkDirective, EclLinkLabelDirective, EclIndicatorDirective, EclLinkIconContainerDirective],\n})\nexport class EclLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;;AAEG;AAKG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAElD;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAA,UAAA,EAAa,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;;AAE9G;;AAEG;AACH,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;;AAGtE,IAAA,IACI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,WAAW;;
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-link.mjs","sources":["../../components/ecl-link/ecl-link.directive.ts","../../components/ecl-link/ecl-link-label.directive.ts","../../components/ecl-link/ecl-link.module.ts","../../components/ecl-link/eui-ecl-components-ecl-link.ts"],"sourcesContent":["import { Directive, HostBinding, Input, forwardRef, ContentChildren, QueryList, booleanAttribute, ElementRef, AfterContentInit } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\n\n/**\n * 'eclLink' directive is used to add some styling to the defalt HTML anchor component. In order to comply with ECL standards.\n */\n@Directive({\n selector: '[eclLink]',\n standalone: false,\n})\nexport class EclLinkDirective extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * Adds speific ECL classes to the <a> component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link'), this.variant ? `ecl-link--${this.variant}` : ''].join(' ').trim();\n }\n /**\n * Adds class for styling if the link has icon.\n */\n @HostBinding('class.ecl-link--icon')\n get hasIcon(): boolean {\n return this.eclIconComponents && this.eclIconComponents.length > 0;\n }\n\n @HostBinding('class.ecl-link--no-visited')\n get isLinkNoVisited(): boolean {\n return this.isNoVisited;\n }\n\n /**\n * Property to style the component as 'inverted' (with dark background).\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-link--inverted') isInverted = false;\n /**\n * Property to style the component if it consist only of an icon.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-link--icon-only') isIconOnly = false;\n /**\n * @deprecated - will be removed in v20. Deprecated on ECL side.\n */\n @Input({ transform: booleanAttribute }) isNoVisited: boolean;\n /**\n * With 'varian' property user can add some more specific styling to the <a> component.\n */\n @Input() variant: 'standalone' | 'cta' | 'primary' | 'secondary';\n\n @ContentChildren(forwardRef(() => EclIconComponent), { descendants: true }) eclIconComponents: QueryList<EclIconComponent>;\n\n constructor(public el: ElementRef) {\n super();\n }\n\n ngAfterContentInit(): void {\n // Add additional class to the child icon, if any.\n if (this.eclIconComponents) {\n setTimeout(() => {\n this.eclIconComponents.forEach((icn) => {\n icn.baseDirective.class = icn.baseDirective.class ? icn.baseDirective.class + ' ecl-link__icon' : 'ecl-link__icon';\n });\n });\n }\n }\n\n /**\n * Calls the native focus() method of the default HTML element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n\n /**\n * Calls the native click() method of the default HTML element.\n */\n onClick(): void {\n this.el.nativeElement.click();\n }\n\n /**\n * Calls the native blur() method of the default HTML element.\n */\n onBlur(): void {\n this.el.nativeElement.blur();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclLinkLabel]',\n standalone: false,\n})\nexport class EclLinkLabelDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link__label')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclIndicator]',\n standalone: false,\n})\nexport class EclIndicatorDirective {\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n\n@Directive({\n selector: '[eclLinkIconContainer]',\n standalone: false,\n})\nexport class EclLinkIconContainerDirective {\n @HostBinding('class.ecl-link__icon-container') hasClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EclLinkDirective } from './ecl-link.directive';\nimport { EclIndicatorDirective, EclLinkIconContainerDirective, EclLinkLabelDirective } from './ecl-link-label.directive';\n\n@NgModule({\n imports: [CommonModule],\n exports: [EclLinkDirective, EclLinkLabelDirective, EclIndicatorDirective, EclLinkIconContainerDirective],\n declarations: [EclLinkDirective, EclLinkLabelDirective, EclIndicatorDirective, EclLinkIconContainerDirective],\n})\nexport class EclLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ import { ECLBaseDirective, KeyCode, ECLClickOutsideDirective } from '@eui/ecl/co
|
|
|
19
19
|
import { Subject, takeUntil } from 'rxjs';
|
|
20
20
|
import * as i3$1 from '@eui/ecl/shared';
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Directive that adds specific class to the mega-menu container.
|
|
24
|
+
*/
|
|
22
25
|
class EclMegaMenuContainerDirective extends ECLBaseDirective {
|
|
23
26
|
constructor() {
|
|
24
27
|
super(...arguments);
|
|
@@ -39,6 +42,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
39
42
|
args: ['class.ecl']
|
|
40
43
|
}] } });
|
|
41
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Directive that adds specific class to the mega-menu featured list.
|
|
47
|
+
*/
|
|
42
48
|
class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {
|
|
43
49
|
constructor() {
|
|
44
50
|
super(...arguments);
|
|
@@ -57,6 +63,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
57
63
|
type: HostBinding,
|
|
58
64
|
args: ['class.ecl-mega-menu__featured-list']
|
|
59
65
|
}] } });
|
|
66
|
+
/**
|
|
67
|
+
* Directive that adds specific class to a mega-menu featured list item.
|
|
68
|
+
* Also has method that returns item height.
|
|
69
|
+
*/
|
|
60
70
|
class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {
|
|
61
71
|
constructor(el) {
|
|
62
72
|
super();
|
|
@@ -80,6 +90,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
80
90
|
args: ['class.ecl-mega-menu__featured-list__item']
|
|
81
91
|
}] } });
|
|
82
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Directive that adds specific class to the mega-menu featured picture.
|
|
95
|
+
*/
|
|
83
96
|
class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {
|
|
84
97
|
get cssClasses() {
|
|
85
98
|
return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();
|
|
@@ -97,6 +110,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
97
110
|
type: HostBinding,
|
|
98
111
|
args: ['class']
|
|
99
112
|
}] } });
|
|
113
|
+
/**
|
|
114
|
+
* Directive that adds specific class to the mega-menu featured image.
|
|
115
|
+
*/
|
|
100
116
|
class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {
|
|
101
117
|
constructor() {
|
|
102
118
|
super(...arguments);
|
|
@@ -116,6 +132,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
116
132
|
args: ['class.ecl-mega-menu__featured-image']
|
|
117
133
|
}] } });
|
|
118
134
|
|
|
135
|
+
/**
|
|
136
|
+
* This component represents the featured items panel.
|
|
137
|
+
*/
|
|
119
138
|
class EclMegaMenuFeaturedComponent extends ECLBaseDirective {
|
|
120
139
|
constructor(el) {
|
|
121
140
|
super();
|
|
@@ -123,6 +142,10 @@ class EclMegaMenuFeaturedComponent extends ECLBaseDirective {
|
|
|
123
142
|
this.cmpClass = true;
|
|
124
143
|
this.eclMegaMenuFeaturedStyleHeight = null;
|
|
125
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Calculates and returns the height of the component. The total height of all the list items.
|
|
147
|
+
* @returns the height of the component
|
|
148
|
+
*/
|
|
126
149
|
getEclMegaMenuFeaturedHeight() {
|
|
127
150
|
let result = 0;
|
|
128
151
|
this.listItems.forEach(it => result += it.getEclMegaMenuFeaturedItemHeight());
|
|
@@ -160,6 +183,9 @@ class EclMegaMenuDataService {
|
|
|
160
183
|
this.eclSubItemClicked$ = this.eclSubItemClicked.asObservable();
|
|
161
184
|
this.eclSubItemEscape$ = this.eclSubItemEscape.asObservable();
|
|
162
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Used to synchronize size of the info panel and sublist.
|
|
188
|
+
*/
|
|
163
189
|
updateEclMegaMenuInfoSize(value) {
|
|
164
190
|
this.eclMegaMenuInfoBottomYSubject.next(value);
|
|
165
191
|
}
|
|
@@ -201,6 +227,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
201
227
|
args: [{ providedIn: 'root' }]
|
|
202
228
|
}], ctorParameters: () => [{ type: i0.RendererFactory2 }] });
|
|
203
229
|
|
|
230
|
+
/**
|
|
231
|
+
* This component represents a sub-item in the mega-menu component. Applies styling and functionality.
|
|
232
|
+
*/
|
|
204
233
|
class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
205
234
|
get cssClasses() {
|
|
206
235
|
return [
|
|
@@ -221,6 +250,9 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
|
221
250
|
this.eclMegaMenuService = eclMegaMenuService;
|
|
222
251
|
this.isExpanded = false;
|
|
223
252
|
this.label = '';
|
|
253
|
+
/**
|
|
254
|
+
* If the link redirects to external page. Adds an 'external' icon.
|
|
255
|
+
*/
|
|
224
256
|
this.isExternal = false;
|
|
225
257
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
226
258
|
this.routerLink = null;
|
|
@@ -228,11 +260,17 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
|
228
260
|
this.queryParamsHandling = null;
|
|
229
261
|
this.href = '';
|
|
230
262
|
this.target = '';
|
|
263
|
+
/**
|
|
264
|
+
* Used for the 'View all' link.
|
|
265
|
+
*/
|
|
231
266
|
this.isSeeAll = false;
|
|
232
267
|
this.megaMenuSubItemClicked = new EventEmitter();
|
|
233
268
|
this.megaMenuSubItemKeydown = new EventEmitter();
|
|
234
269
|
this.isCurrent = false;
|
|
235
270
|
this.isMobileBreakpoint = false;
|
|
271
|
+
/**
|
|
272
|
+
* Used to set the height of the second level subitems container.
|
|
273
|
+
*/
|
|
236
274
|
this.level2StyleHeight = null;
|
|
237
275
|
this.destroy$ = new Subject();
|
|
238
276
|
this.isParentLink = false;
|
|
@@ -247,6 +285,9 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
|
247
285
|
get hasChildren() {
|
|
248
286
|
return !!this.submenu;
|
|
249
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Sets focus on either link or button element.
|
|
290
|
+
*/
|
|
250
291
|
onFocus() {
|
|
251
292
|
if (this.subMenuItemLink) {
|
|
252
293
|
this.subMenuItemLink.onFocus();
|
|
@@ -264,6 +305,9 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
|
264
305
|
getMegaMenuSubItemHeight() {
|
|
265
306
|
return this.el.nativeElement.getBoundingClientRect().height;
|
|
266
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* Show or hide the subitems.
|
|
310
|
+
*/
|
|
267
311
|
onButtonClick() {
|
|
268
312
|
this.isCurrent = !this.isCurrent;
|
|
269
313
|
this.isExpanded = !this.isExpanded;
|
|
@@ -275,6 +319,9 @@ class EclMegaMenuSubitemComponent extends ECLBaseDirective {
|
|
|
275
319
|
}
|
|
276
320
|
this.megaMenuSubItemClicked.emit();
|
|
277
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* If link is clicked -> emit event and close all opened menus and submenus.
|
|
324
|
+
*/
|
|
278
325
|
onLinkClick() {
|
|
279
326
|
this.eclMegaMenuDataService.eclSubItemClick(this);
|
|
280
327
|
this.megaMenuSubItemClicked.emit();
|
|
@@ -380,6 +427,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
380
427
|
args: ['style.display']
|
|
381
428
|
}] } });
|
|
382
429
|
|
|
430
|
+
/**
|
|
431
|
+
* Directive that adds specific class to the mega-menu list.
|
|
432
|
+
*/
|
|
383
433
|
class EclMegaMenuListDirective extends ECLBaseDirective {
|
|
384
434
|
constructor() {
|
|
385
435
|
super(...arguments);
|
|
@@ -398,6 +448,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
398
448
|
type: HostBinding,
|
|
399
449
|
args: ['class.ecl-mega-menu__list']
|
|
400
450
|
}] } });
|
|
451
|
+
/**
|
|
452
|
+
* Directive that adds specific class to the mega-menu spacer.
|
|
453
|
+
*/
|
|
401
454
|
class EclMegaMenuSpacerDirective extends ECLBaseDirective {
|
|
402
455
|
constructor() {
|
|
403
456
|
super(...arguments);
|
|
@@ -416,6 +469,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
416
469
|
type: HostBinding,
|
|
417
470
|
args: ['class.ecl-mega-menu__spacer']
|
|
418
471
|
}] } });
|
|
472
|
+
/**
|
|
473
|
+
* Directive that adds specific classes and functionality to the mega-menu sublist.
|
|
474
|
+
*/
|
|
419
475
|
class EclMegaMenuSublistDirective extends ECLBaseDirective {
|
|
420
476
|
constructor(el, cdkBreakpointObserver, differs) {
|
|
421
477
|
super();
|
|
@@ -433,6 +489,7 @@ class EclMegaMenuSublistDirective extends ECLBaseDirective {
|
|
|
433
489
|
});
|
|
434
490
|
}
|
|
435
491
|
ngDoCheck() {
|
|
492
|
+
// When a new item is added -> subscribe to item's events.
|
|
436
493
|
const diff = this.differ.diff(this.submenuItems);
|
|
437
494
|
if (diff) {
|
|
438
495
|
diff.forEachItem((item) => {
|
|
@@ -444,8 +501,13 @@ class EclMegaMenuSublistDirective extends ECLBaseDirective {
|
|
|
444
501
|
this.destroy$.next(true);
|
|
445
502
|
this.destroy$.unsubscribe();
|
|
446
503
|
}
|
|
504
|
+
/**
|
|
505
|
+
* When parent mega-menu item is clicked.
|
|
506
|
+
* @param isExpanded - 'true', if parent item is expanded, 'false' if item is collapsed.
|
|
507
|
+
*/
|
|
447
508
|
onParentMegaMenuItemClick(isExpanded) {
|
|
448
509
|
if (isExpanded) {
|
|
510
|
+
// If mega-menu item is expanded -> find the first mega-menu list child (i.e. sub item) and expand it's children.
|
|
449
511
|
if (!this.isMobileBreakpoint) {
|
|
450
512
|
const itemWithChildren = this.submenuItems.find(item => item.hasChildren);
|
|
451
513
|
itemWithChildren?.onSubMenuItemExpand();
|
|
@@ -543,7 +605,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
543
605
|
args: [forwardRef(() => EclMegaMenuSubitemComponent)]
|
|
544
606
|
}] } });
|
|
545
607
|
|
|
608
|
+
/**
|
|
609
|
+
* Component for displaying some custom information for the current menu item.
|
|
610
|
+
*/
|
|
546
611
|
class EclMegaMenuInfoComponent extends ECLBaseDirective {
|
|
612
|
+
/**
|
|
613
|
+
* Applies custom styles for info component.
|
|
614
|
+
*/
|
|
547
615
|
get cssClasses() {
|
|
548
616
|
return [
|
|
549
617
|
super.getCssClasses('ecl-mega-menu__info'),
|
|
@@ -556,18 +624,33 @@ class EclMegaMenuInfoComponent extends ECLBaseDirective {
|
|
|
556
624
|
super();
|
|
557
625
|
this.el = el;
|
|
558
626
|
this.eclMegaMenuDataService = eclMegaMenuDataService;
|
|
627
|
+
/**
|
|
628
|
+
* Sets the height of the component.
|
|
629
|
+
*/
|
|
559
630
|
this.eclMegaMenuInfoStyleHeight = null;
|
|
631
|
+
/**
|
|
632
|
+
* Sets the opacity of the component.
|
|
633
|
+
*/
|
|
560
634
|
this.eclMegaMenuInfoStyleOpacity = null;
|
|
561
635
|
}
|
|
562
636
|
ngAfterViewInit() {
|
|
637
|
+
// Sets class of the sub link, if any.
|
|
563
638
|
if (this.linkItem) {
|
|
564
639
|
setTimeout(() => this.linkItem.class = 'ecl-mega-menu__info-link');
|
|
565
640
|
}
|
|
641
|
+
// Emits the bottom value of the element. Needed to calculate the size of the sublist. (for the same parent menu item)
|
|
566
642
|
this.publishSize();
|
|
567
643
|
}
|
|
644
|
+
/**
|
|
645
|
+
* Used to calculate the height of the parent element.
|
|
646
|
+
* @returns the height of the component.
|
|
647
|
+
*/
|
|
568
648
|
getInfoPanelScrollHeight() {
|
|
569
649
|
return this.el.nativeElement.scrollHeight;
|
|
570
650
|
}
|
|
651
|
+
/**
|
|
652
|
+
* Used to calulate the size of the info panel.
|
|
653
|
+
*/
|
|
571
654
|
publishSize() {
|
|
572
655
|
const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;
|
|
573
656
|
this.eclMegaMenuDataService.updateEclMegaMenuInfoSize(bottomY);
|
|
@@ -594,7 +677,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
594
677
|
args: [forwardRef(() => EclLinkDirective)]
|
|
595
678
|
}] } });
|
|
596
679
|
|
|
680
|
+
/**
|
|
681
|
+
* This component represents a mega menu item. Adds functionality and styling, according to ECL standards.
|
|
682
|
+
*/
|
|
597
683
|
class EclMegaMenuItemComponent extends ECLBaseDirective {
|
|
684
|
+
/**
|
|
685
|
+
* Returns current menu item classes, depending on item's state (it's properties' values).
|
|
686
|
+
*/
|
|
598
687
|
get cssClasses() {
|
|
599
688
|
return [
|
|
600
689
|
super.getCssClasses('ecl-mega-menu__item'),
|
|
@@ -656,6 +745,9 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
|
|
|
656
745
|
get hasContainer() {
|
|
657
746
|
return !!this.eclMegaMenuContainer;
|
|
658
747
|
}
|
|
748
|
+
/**
|
|
749
|
+
* Set the focus on the sub element - link or button.
|
|
750
|
+
*/
|
|
659
751
|
onFocus() {
|
|
660
752
|
if (this.menuLink) {
|
|
661
753
|
this.menuLink.onFocus();
|
|
@@ -664,6 +756,9 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
|
|
|
664
756
|
this.menuBtn.onFocus();
|
|
665
757
|
}
|
|
666
758
|
}
|
|
759
|
+
/**
|
|
760
|
+
* On resize - calculate the size of the dropdown and wrapper (if item is expanded).
|
|
761
|
+
*/
|
|
667
762
|
onResize() {
|
|
668
763
|
setTimeout(() => {
|
|
669
764
|
if (this.isExpanded) {
|
|
@@ -672,6 +767,9 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
|
|
|
672
767
|
}
|
|
673
768
|
});
|
|
674
769
|
}
|
|
770
|
+
/**
|
|
771
|
+
* Manage styling and functionality for children and siblings, when item is clicked.
|
|
772
|
+
*/
|
|
675
773
|
onMegaMenuItemClick() {
|
|
676
774
|
if (this.hasChildren) {
|
|
677
775
|
this.isCurrent = !this.isCurrent;
|
|
@@ -695,6 +793,9 @@ class EclMegaMenuItemComponent extends ECLBaseDirective {
|
|
|
695
793
|
}
|
|
696
794
|
this.megaMenuItemClicked.emit();
|
|
697
795
|
}
|
|
796
|
+
/**
|
|
797
|
+
* Manage styling and functionality when item is collapsed.
|
|
798
|
+
*/
|
|
698
799
|
onMegaMenuItemCollapse() {
|
|
699
800
|
this.isCurrent = false;
|
|
700
801
|
this.isExpanded = false;
|
|
@@ -896,6 +997,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
896
997
|
args: ['window:resize']
|
|
897
998
|
}] } });
|
|
898
999
|
|
|
1000
|
+
/**
|
|
1001
|
+
* The 'eclMegaMenu' is an advanced navigation component designed for complex sites with deep hierarchies.
|
|
1002
|
+
* It can provide descriptive text for first level items, accommodate up to three levels of navigation,
|
|
1003
|
+
* and additionally allows a featured column that can be used to either promote parent-page specific or site-wide pages,
|
|
1004
|
+
* hidden deep into the lower levels of the hierarchy.
|
|
1005
|
+
*/
|
|
899
1006
|
class EclMegaMenuComponent extends ECLBaseDirective {
|
|
900
1007
|
get cssClasses() {
|
|
901
1008
|
return [
|
|
@@ -918,13 +1025,37 @@ class EclMegaMenuComponent extends ECLBaseDirective {
|
|
|
918
1025
|
this.el = el;
|
|
919
1026
|
this.renderer = renderer;
|
|
920
1027
|
this.isExpanded = false;
|
|
1028
|
+
/**
|
|
1029
|
+
* The 'role' attribute of the component is set to 'navigation'. should not be changed.
|
|
1030
|
+
*/
|
|
921
1031
|
this.role = 'navigation';
|
|
1032
|
+
/**
|
|
1033
|
+
* The event that is emitted, when a menu item is selected.
|
|
1034
|
+
*/
|
|
922
1035
|
this.megaMenuItemSelect = new EventEmitter();
|
|
1036
|
+
/**
|
|
1037
|
+
* If the menu is in mobile mode.
|
|
1038
|
+
*/
|
|
923
1039
|
this.isMobileBreakpoint = false;
|
|
1040
|
+
/**
|
|
1041
|
+
* If the menu is expanded in mobile mode.
|
|
1042
|
+
*/
|
|
924
1043
|
this.isMobileExpanded = false;
|
|
1044
|
+
/**
|
|
1045
|
+
* When a menu item is expanded and has only one panel (one sub-level).
|
|
1046
|
+
*/
|
|
925
1047
|
this.isOnePanel = false;
|
|
926
|
-
|
|
1048
|
+
/**
|
|
1049
|
+
* If the menu is open, when in mobile mode.
|
|
1050
|
+
*/
|
|
1051
|
+
this.isOpenMobile = false; // used for mobile only
|
|
1052
|
+
/**
|
|
1053
|
+
* Used in mobile mode - when the start panel is open (i.e. the hamburger button is clicked).
|
|
1054
|
+
*/
|
|
927
1055
|
this.isStartPanel = false;
|
|
1056
|
+
/**
|
|
1057
|
+
* If a menu item is expanded and has two panels/levels displayed.
|
|
1058
|
+
*/
|
|
928
1059
|
this.isTwoPanels = false;
|
|
929
1060
|
this.destroy$ = new Subject();
|
|
930
1061
|
this.isRtl = false;
|
|
@@ -938,6 +1069,7 @@ class EclMegaMenuComponent extends ECLBaseDirective {
|
|
|
938
1069
|
});
|
|
939
1070
|
}
|
|
940
1071
|
ngDoCheck() {
|
|
1072
|
+
// For each added menu item - subscribe to item events.
|
|
941
1073
|
const diff = this.differ.diff(this.menuItems);
|
|
942
1074
|
if (diff) {
|
|
943
1075
|
diff.forEachItem((item) => {
|
|
@@ -949,6 +1081,9 @@ class EclMegaMenuComponent extends ECLBaseDirective {
|
|
|
949
1081
|
this.destroy$.next(true);
|
|
950
1082
|
this.destroy$.unsubscribe();
|
|
951
1083
|
}
|
|
1084
|
+
/**
|
|
1085
|
+
* When clicking outside the menu - close any expanded item.
|
|
1086
|
+
*/
|
|
952
1087
|
onClickOutsideMegaMenu() {
|
|
953
1088
|
if (this.isExpanded) {
|
|
954
1089
|
this.closeMenuAndAnyOpenSubMenu();
|
|
@@ -984,6 +1119,9 @@ class EclMegaMenuComponent extends ECLBaseDirective {
|
|
|
984
1119
|
}
|
|
985
1120
|
this.isOpenMobile = false;
|
|
986
1121
|
}
|
|
1122
|
+
/**
|
|
1123
|
+
* Used for mobile menu - when user clicks on 'Back' button. Returns to the previous state.
|
|
1124
|
+
*/
|
|
987
1125
|
onMegaMenuBack() {
|
|
988
1126
|
if (this.isOnePanel) {
|
|
989
1127
|
this.onMegaMenuBackToStartPanel();
|