@tilde-nlp/ngx-menu 4.1.3 → 5.0.1

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 (71) hide show
  1. package/esm2022/lib/assets/menu-logo.svg.mjs +1 -1
  2. package/esm2022/lib/components/menu-columns/menu-columns.component.mjs +66 -66
  3. package/esm2022/lib/components/menu-icon/menu-icon.component.mjs +23 -23
  4. package/esm2022/lib/components/menu-item-icon/menu-item-icon.component.mjs +74 -74
  5. package/esm2022/lib/components/menu-item-icon/menu.model.mjs +3 -3
  6. package/esm2022/lib/components/menu-item-icon/models/menu-dialog-settings.model.mjs +1 -1
  7. package/esm2022/lib/components/menu-item-icon/models/menu-item-settings.model.mjs +1 -1
  8. package/esm2022/lib/components/menu-item-icon/models/menu-title-placement.model.mjs +6 -6
  9. package/esm2022/lib/components/menu-item-link/menu-item-link.component.mjs +52 -52
  10. package/esm2022/lib/components/menu-item-list/menu-item-list.component.mjs +62 -62
  11. package/esm2022/lib/components/modal-nav-menu/modal-nav-menu.component.mjs +39 -39
  12. package/esm2022/lib/components/nav-base/models/index.mjs +1 -1
  13. package/esm2022/lib/components/nav-base/models/strapi-data-location.enum.mjs +6 -6
  14. package/esm2022/lib/components/nav-base/nav-base.component.mjs +32 -32
  15. package/esm2022/lib/components/side-nav-menu/index.mjs +2 -2
  16. package/esm2022/lib/components/side-nav-menu/models/index.mjs +1 -1
  17. package/esm2022/lib/components/side-nav-menu/models/side-nav-settings.model.mjs +1 -1
  18. package/esm2022/lib/components/side-nav-menu/side-nav-menu.component.mjs +93 -93
  19. package/esm2022/lib/injection-tokens/index.mjs +1 -1
  20. package/esm2022/lib/injection-tokens/menu-shared-config.token.mjs +1 -1
  21. package/esm2022/lib/menu.module.mjs +113 -113
  22. package/esm2022/lib/models/active-menu-item-config.model.mjs +1 -1
  23. package/esm2022/lib/models/active-menu-items.model.mjs +1 -1
  24. package/esm2022/lib/models/custom-menu-item.mjs +1 -1
  25. package/esm2022/lib/models/index.mjs +7 -7
  26. package/esm2022/lib/models/menu-icon-strapi-extension.const.mjs +1 -1
  27. package/esm2022/lib/models/menu-item-group.model.mjs +1 -1
  28. package/esm2022/lib/models/menu-layout-direction.model.mjs +5 -5
  29. package/esm2022/lib/models/menu-shared-config.model.mjs +1 -1
  30. package/esm2022/lib/services/index.mjs +2 -2
  31. package/esm2022/lib/services/menu-items.service.mjs +125 -125
  32. package/esm2022/lib/services/strapi.service.mjs +93 -93
  33. package/esm2022/public-api.mjs +15 -15
  34. package/esm2022/tilde-nlp-ngx-menu.mjs +4 -4
  35. package/fesm2022/tilde-nlp-ngx-menu.mjs +659 -659
  36. package/fesm2022/tilde-nlp-ngx-menu.mjs.map +1 -1
  37. package/index.d.ts +5 -5
  38. package/lib/assets/menu-logo.svg.d.ts +1 -1
  39. package/lib/components/menu-columns/menu-columns.component.d.ts +28 -28
  40. package/lib/components/menu-icon/menu-icon.component.d.ts +10 -10
  41. package/lib/components/menu-item-icon/menu-item-icon.component.d.ts +29 -29
  42. package/lib/components/menu-item-icon/menu.model.d.ts +3 -3
  43. package/lib/components/menu-item-icon/models/menu-dialog-settings.model.d.ts +8 -8
  44. package/lib/components/menu-item-icon/models/menu-item-settings.model.d.ts +6 -6
  45. package/lib/components/menu-item-icon/models/menu-title-placement.model.d.ts +5 -5
  46. package/lib/components/menu-item-link/menu-item-link.component.d.ts +25 -25
  47. package/lib/components/menu-item-list/menu-item-list.component.d.ts +22 -22
  48. package/lib/components/modal-nav-menu/modal-nav-menu.component.d.ts +15 -15
  49. package/lib/components/nav-base/models/index.d.ts +1 -1
  50. package/lib/components/nav-base/models/strapi-data-location.enum.d.ts +5 -5
  51. package/lib/components/nav-base/nav-base.component.d.ts +19 -19
  52. package/lib/components/side-nav-menu/index.d.ts +2 -2
  53. package/lib/components/side-nav-menu/models/index.d.ts +1 -1
  54. package/lib/components/side-nav-menu/models/side-nav-settings.model.d.ts +7 -7
  55. package/lib/components/side-nav-menu/side-nav-menu.component.d.ts +33 -33
  56. package/lib/injection-tokens/index.d.ts +1 -1
  57. package/lib/injection-tokens/menu-shared-config.token.d.ts +1 -1
  58. package/lib/menu.module.d.ts +29 -29
  59. package/lib/models/active-menu-item-config.model.d.ts +4 -4
  60. package/lib/models/active-menu-items.model.d.ts +6 -6
  61. package/lib/models/custom-menu-item.d.ts +20 -20
  62. package/lib/models/index.d.ts +7 -7
  63. package/lib/models/menu-icon-strapi-extension.const.d.ts +1 -1
  64. package/lib/models/menu-item-group.model.d.ts +9 -9
  65. package/lib/models/menu-layout-direction.model.d.ts +4 -4
  66. package/lib/models/menu-shared-config.model.d.ts +21 -21
  67. package/lib/services/index.d.ts +2 -2
  68. package/lib/services/menu-items.service.d.ts +38 -38
  69. package/lib/services/strapi.service.d.ts +20 -20
  70. package/package.json +8 -8
  71. package/public-api.d.ts +12 -12
@@ -8,7 +8,7 @@ import { STRAPI_API_CONFIG_TOKEN } from '@tilde-nlp/ngx-strapi';
8
8
  import { CollectionTypes } from '@tilde-nlp/strapi-models';
9
9
  import * as i2 from '@tilde-nlp/ngx-common';
10
10
  import { PlausibleModule } from '@tilde-nlp/ngx-common';
11
- import * as i2$2 from '@angular/flex-layout/flex';
11
+ import * as i2$2 from '@ngbracket/ngx-layout/flex';
12
12
  import * as i3 from '@angular/common';
13
13
  import { CommonModule } from '@angular/common';
14
14
  import * as i2$1 from '@angular/material/icon';
@@ -16,12 +16,12 @@ import { MatIconModule } from '@angular/material/icon';
16
16
  import * as i7$1 from '@angular/material/button';
17
17
  import { MatButtonModule } from '@angular/material/button';
18
18
  import * as i4$1 from '@angular/material/divider';
19
- import * as i2$3 from '@angular/flex-layout/extended';
19
+ import * as i2$3 from '@ngbracket/ngx-layout/extended';
20
20
  import * as i4 from '@angular/material/tooltip';
21
21
  import { MatTooltipModule } from '@angular/material/tooltip';
22
22
  import * as i7 from '@ngx-translate/core';
23
23
  import { TranslateModule } from '@ngx-translate/core';
24
- import { FlexLayoutModule } from '@angular/flex-layout';
24
+ import { FlexLayoutModule } from '@ngbracket/ngx-layout';
25
25
  import { MatDialogModule } from '@angular/material/dialog';
26
26
  import { MatListModule } from '@angular/material/list';
27
27
  import * as i7$2 from '@angular/material/menu';
@@ -30,528 +30,528 @@ import { HttpClientModule } from '@angular/common/http';
30
30
 
31
31
  const MENU_SHARED_CONFIG = "menu-shared-config";
32
32
 
33
- /** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */
34
- var StrapiDataLocation;
35
- (function (StrapiDataLocation) {
36
- StrapiDataLocation[StrapiDataLocation["START"] = 0] = "START";
37
- StrapiDataLocation[StrapiDataLocation["END"] = 1] = "END";
33
+ /** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */
34
+ var StrapiDataLocation;
35
+ (function (StrapiDataLocation) {
36
+ StrapiDataLocation[StrapiDataLocation["START"] = 0] = "START";
37
+ StrapiDataLocation[StrapiDataLocation["END"] = 1] = "END";
38
38
  })(StrapiDataLocation || (StrapiDataLocation = {}));
39
39
 
40
40
  const MENU_ICON_STRAPI_EXTENSION = ".svg";
41
41
 
42
- class StarpiMenuService {
43
- constructor(strapiSubscription, menuConfig, strapiConfig, iconService) {
44
- this.strapiSubscription = strapiSubscription;
45
- this.menuConfig = menuConfig;
46
- this.iconService = iconService;
47
- this.svgIconNamePrefix = "strapi-menu-icon-";
48
- this.imgBaseUrl = '';
49
- this.imgBaseUrl = strapiConfig.apiUrl;
50
- }
51
- getMenuItems() {
52
- const responseObs = this.strapiSubscription.subscribeCollectionType(CollectionTypes.MENU_ITEMS)
53
- .pipe(map((items) => {
54
- // Remove disabled items so they are not processed later.
55
- const convertedItems = [];
56
- if (!items || items.length === 0) {
57
- return convertedItems;
58
- }
59
- items = items.filter(item => !item.disabled);
60
- items.forEach((menu) => {
61
- menu.link = this.addBaseUrlIfNecessary(menu.link);
62
- const originalMenuIcon = menu.icon.data.attributes;
63
- if (originalMenuIcon.url.startsWith('/')) {
64
- originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;
65
- }
66
- if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {
67
- // add custom prefix so that it is not easy to mix with other icons in registry
68
- menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;
69
- this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);
70
- }
71
- convertedItems.push(this.convertToCustomMenuItem(menu));
72
- });
73
- return convertedItems;
74
- }));
75
- return responseObs;
76
- }
77
- unsubscribe() {
78
- this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);
79
- }
80
- addBaseUrlIfNecessary(link) {
81
- if (!this.menuConfig?.baseUrl) {
82
- return link;
83
- }
84
- try {
85
- new URL(link);
86
- // eslint-disable-next-line no-empty
87
- }
88
- catch { }
89
- try {
90
- return new URL(link, this.menuConfig.baseUrl).href;
91
- }
92
- catch {
93
- return link;
94
- }
95
- }
96
- convertToCustomMenuItem(item) {
97
- return {
98
- icon: item.icon.data.attributes.name,
99
- link: item.link,
100
- title: item.title,
101
- externalLink: item.externalLink,
102
- // Material icons should not come from strapi
103
- materialIcon: false,
104
- plausibleEvent: item.plausibleEvent,
105
- customId: item.customId
106
- };
107
- }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, deps: [{ token: i1.StrapiSubscriptionService }, { token: MENU_SHARED_CONFIG, optional: true }, { token: STRAPI_API_CONFIG_TOKEN }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, providedIn: 'root' }); }
110
- }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, decorators: [{
112
- type: Injectable,
113
- args: [{
114
- providedIn: 'root'
115
- }]
116
- }], ctorParameters: function () { return [{ type: i1.StrapiSubscriptionService }, { type: undefined, decorators: [{
117
- type: Optional
118
- }, {
119
- type: Inject,
120
- args: [MENU_SHARED_CONFIG]
121
- }] }, { type: undefined, decorators: [{
122
- type: Inject,
123
- args: [STRAPI_API_CONFIG_TOKEN]
124
- }] }, { type: i2.IconService }]; } });
42
+ class StarpiMenuService {
43
+ constructor(strapiSubscription, menuConfig, strapiConfig, iconService) {
44
+ this.strapiSubscription = strapiSubscription;
45
+ this.menuConfig = menuConfig;
46
+ this.iconService = iconService;
47
+ this.svgIconNamePrefix = "strapi-menu-icon-";
48
+ this.imgBaseUrl = '';
49
+ this.imgBaseUrl = strapiConfig.apiUrl;
50
+ }
51
+ getMenuItems() {
52
+ const responseObs = this.strapiSubscription.subscribeCollectionType(CollectionTypes.MENU_ITEMS)
53
+ .pipe(map((items) => {
54
+ // Remove disabled items so they are not processed later.
55
+ const convertedItems = [];
56
+ if (!items || items.length === 0) {
57
+ return convertedItems;
58
+ }
59
+ items = items.filter(item => !item.disabled);
60
+ items.forEach((menu) => {
61
+ menu.link = this.addBaseUrlIfNecessary(menu.link);
62
+ const originalMenuIcon = menu.icon.data.attributes;
63
+ if (originalMenuIcon.url.startsWith('/')) {
64
+ originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;
65
+ }
66
+ if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {
67
+ // add custom prefix so that it is not easy to mix with other icons in registry
68
+ menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;
69
+ this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);
70
+ }
71
+ convertedItems.push(this.convertToCustomMenuItem(menu));
72
+ });
73
+ return convertedItems;
74
+ }));
75
+ return responseObs;
76
+ }
77
+ unsubscribe() {
78
+ this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);
79
+ }
80
+ addBaseUrlIfNecessary(link) {
81
+ if (!this.menuConfig?.baseUrl) {
82
+ return link;
83
+ }
84
+ try {
85
+ new URL(link);
86
+ // eslint-disable-next-line no-empty
87
+ }
88
+ catch { }
89
+ try {
90
+ return new URL(link, this.menuConfig.baseUrl).href;
91
+ }
92
+ catch {
93
+ return link;
94
+ }
95
+ }
96
+ convertToCustomMenuItem(item) {
97
+ return {
98
+ icon: item.icon.data.attributes.name,
99
+ link: item.link,
100
+ title: item.title,
101
+ externalLink: item.externalLink,
102
+ // Material icons should not come from strapi
103
+ materialIcon: false,
104
+ plausibleEvent: item.plausibleEvent,
105
+ customId: item.customId
106
+ };
107
+ }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StarpiMenuService, deps: [{ token: i1.StrapiSubscriptionService }, { token: MENU_SHARED_CONFIG, optional: true }, { token: STRAPI_API_CONFIG_TOKEN }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Injectable }); }
109
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StarpiMenuService, providedIn: 'root' }); }
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: StarpiMenuService, decorators: [{
112
+ type: Injectable,
113
+ args: [{
114
+ providedIn: 'root'
115
+ }]
116
+ }], ctorParameters: () => [{ type: i1.StrapiSubscriptionService }, { type: undefined, decorators: [{
117
+ type: Optional
118
+ }, {
119
+ type: Inject,
120
+ args: [MENU_SHARED_CONFIG]
121
+ }] }, { type: undefined, decorators: [{
122
+ type: Inject,
123
+ args: [STRAPI_API_CONFIG_TOKEN]
124
+ }] }, { type: i2.IconService }] });
125
125
 
126
- class MenuItemsService {
127
- get activeElements() { return this._activeElements.asObservable(); }
128
- get allRootItems() { return this._allRootItems; }
129
- get strapiGroup() { return this._strapiGroup; }
130
- get customId() { return this.menuSharedConfig?.customId; }
131
- get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }
132
- get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }
133
- get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END; }
134
- get mergedGroups() { return this._mergedGroups; }
135
- get menuItemGroups() { return this.menuSharedConfig.itemGroups; }
136
- constructor(router, menuSharedConfig, strapiService) {
137
- this.router = router;
138
- this.menuSharedConfig = menuSharedConfig;
139
- this.strapiService = strapiService;
140
- this._activeElements = new BehaviorSubject({});
141
- this.strapiItems = [];
142
- this.isActiveMatchOptions = {
143
- matrixParams: 'exact',
144
- queryParams: 'exact',
145
- paths: 'exact',
146
- fragment: 'exact'
147
- };
148
- this._mergedGroups = [];
149
- this.getStrapiData();
150
- this.subscribeToRouteChanges();
151
- }
152
- subscribeToRouteChanges() {
153
- this.router.events
154
- .pipe(filter(e => e instanceof NavigationEnd))
155
- .subscribe(() => { this.updateActive(); });
156
- }
157
- updateActive() {
158
- const items = this.allRootItems;
159
- const root = this.findActiveElement(items, false);
160
- const child = this.findActiveElement(items, true);
161
- this._activeElements.next({ root, child });
162
- }
163
- /** Finds active element from whole list. RouterLink has priority over custom Id. */
164
- // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure
165
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
166
- findActiveElement(items, includeChildren) {
167
- if (!items?.length) {
168
- return undefined;
169
- }
170
- let customIdElement;
171
- for (const item of items) {
172
- // Child element has priority over parent, so need to check if any child is active
173
- if (this.isElementRouterLinkActive(item)) {
174
- // If has children and they are visible, return active child or current item
175
- return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;
176
- }
177
- // if selected custom id element is hidden, no need to look for it and set it to active;
178
- else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {
179
- customIdElement = item;
180
- }
181
- else if (includeChildren && item.children?.length) {
182
- const activeChild = this.findActiveElement(item.children, includeChildren);
183
- if (activeChild) {
184
- return activeChild;
185
- }
186
- }
187
- }
188
- return customIdElement;
189
- }
190
- getStrapiData() {
191
- if (!this.menuSharedConfig?.disableStrapi) {
192
- this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));
193
- }
194
- else {
195
- this.loadData([]);
196
- }
197
- }
198
- loadData(data) {
199
- // hide custom id based on input param
200
- this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;
201
- this._strapiGroup = {
202
- ...this.strapiGroupBase,
203
- items: this.strapiItems
204
- };
205
- if (this.strapiDataLocation === StrapiDataLocation.START) {
206
- this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];
207
- }
208
- else if (this.strapiDataLocation === StrapiDataLocation.END) {
209
- this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];
210
- }
211
- const allItems = this.mergedGroups.map(map => map.items);
212
- let newArray = [];
213
- allItems.forEach((array) => { newArray = newArray.concat(array); });
214
- this._allRootItems = newArray;
215
- this.updateActive();
216
- }
217
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
218
- // private isMenuItem(item: any): item is MenuItems {
219
- // return item.customId;
220
- // }
221
- isElementCustomIdActive(element) {
222
- return this.customId && element.customId === this.customId;
223
- }
224
- isElementRouterLinkActive(element) {
225
- const routerLinkActiveOptions = element.routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;
226
- return this.router.isActive(element.link, routerLinkActiveOptions);
227
- }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, deps: [{ token: i1$1.Router }, { token: MENU_SHARED_CONFIG, optional: true }, { token: StarpiMenuService }], target: i0.ɵɵFactoryTarget.Injectable }); }
229
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, providedIn: 'root' }); }
230
- }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, decorators: [{
232
- type: Injectable,
233
- args: [{
234
- providedIn: 'root'
235
- }]
236
- }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: undefined, decorators: [{
237
- type: Optional
238
- }, {
239
- type: Inject,
240
- args: [MENU_SHARED_CONFIG]
241
- }] }, { type: StarpiMenuService }]; } });
126
+ class MenuItemsService {
127
+ get activeElements() { return this._activeElements.asObservable(); }
128
+ get allRootItems() { return this._allRootItems; }
129
+ get strapiGroup() { return this._strapiGroup; }
130
+ get customId() { return this.menuSharedConfig?.customId; }
131
+ get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }
132
+ get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }
133
+ get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END; }
134
+ get mergedGroups() { return this._mergedGroups; }
135
+ get menuItemGroups() { return this.menuSharedConfig.itemGroups; }
136
+ constructor(router, menuSharedConfig, strapiService) {
137
+ this.router = router;
138
+ this.menuSharedConfig = menuSharedConfig;
139
+ this.strapiService = strapiService;
140
+ this._activeElements = new BehaviorSubject({});
141
+ this.strapiItems = [];
142
+ this.isActiveMatchOptions = {
143
+ matrixParams: 'exact',
144
+ queryParams: 'exact',
145
+ paths: 'exact',
146
+ fragment: 'exact'
147
+ };
148
+ this._mergedGroups = [];
149
+ this.getStrapiData();
150
+ this.subscribeToRouteChanges();
151
+ }
152
+ subscribeToRouteChanges() {
153
+ this.router.events
154
+ .pipe(filter(e => e instanceof NavigationEnd))
155
+ .subscribe(() => { this.updateActive(); });
156
+ }
157
+ updateActive() {
158
+ const items = this.allRootItems;
159
+ const root = this.findActiveElement(items, false);
160
+ const child = this.findActiveElement(items, true);
161
+ this._activeElements.next({ root, child });
162
+ }
163
+ /** Finds active element from whole list. RouterLink has priority over custom Id. */
164
+ // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure
165
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
166
+ findActiveElement(items, includeChildren) {
167
+ if (!items?.length) {
168
+ return undefined;
169
+ }
170
+ let customIdElement;
171
+ for (const item of items) {
172
+ // Child element has priority over parent, so need to check if any child is active
173
+ if (this.isElementRouterLinkActive(item)) {
174
+ // If has children and they are visible, return active child or current item
175
+ return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;
176
+ }
177
+ // if selected custom id element is hidden, no need to look for it and set it to active;
178
+ else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {
179
+ customIdElement = item;
180
+ }
181
+ else if (includeChildren && item.children?.length) {
182
+ const activeChild = this.findActiveElement(item.children, includeChildren);
183
+ if (activeChild) {
184
+ return activeChild;
185
+ }
186
+ }
187
+ }
188
+ return customIdElement;
189
+ }
190
+ getStrapiData() {
191
+ if (!this.menuSharedConfig?.disableStrapi) {
192
+ this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));
193
+ }
194
+ else {
195
+ this.loadData([]);
196
+ }
197
+ }
198
+ loadData(data) {
199
+ // hide custom id based on input param
200
+ this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;
201
+ this._strapiGroup = {
202
+ ...this.strapiGroupBase,
203
+ items: this.strapiItems
204
+ };
205
+ if (this.strapiDataLocation === StrapiDataLocation.START) {
206
+ this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];
207
+ }
208
+ else if (this.strapiDataLocation === StrapiDataLocation.END) {
209
+ this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];
210
+ }
211
+ const allItems = this.mergedGroups.map(map => map.items);
212
+ let newArray = [];
213
+ allItems.forEach((array) => { newArray = newArray.concat(array); });
214
+ this._allRootItems = newArray;
215
+ this.updateActive();
216
+ }
217
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
218
+ // private isMenuItem(item: any): item is MenuItems {
219
+ // return item.customId;
220
+ // }
221
+ isElementCustomIdActive(element) {
222
+ return this.customId && element.customId === this.customId;
223
+ }
224
+ isElementRouterLinkActive(element) {
225
+ const routerLinkActiveOptions = element.routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;
226
+ return this.router.isActive(element.link, routerLinkActiveOptions);
227
+ }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemsService, deps: [{ token: i1$1.Router }, { token: MENU_SHARED_CONFIG, optional: true }, { token: StarpiMenuService }], target: i0.ɵɵFactoryTarget.Injectable }); }
229
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemsService, providedIn: 'root' }); }
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemsService, decorators: [{
232
+ type: Injectable,
233
+ args: [{
234
+ providedIn: 'root'
235
+ }]
236
+ }], ctorParameters: () => [{ type: i1$1.Router }, { type: undefined, decorators: [{
237
+ type: Optional
238
+ }, {
239
+ type: Inject,
240
+ args: [MENU_SHARED_CONFIG]
241
+ }] }, { type: StarpiMenuService }] });
242
242
 
243
- /** This component is created to help nest some common input params through nav components. */
244
- class NavBaseComponent {
245
- constructor(menuItemsService) {
246
- this.menuItemsService = menuItemsService;
247
- }
248
- ngOnInit() {
249
- this.initBase();
250
- }
251
- initBase() {
252
- this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {
253
- this.active = active;
254
- });
255
- }
256
- ngOnDestroy() {
257
- this.destroyBase();
258
- }
259
- destroyBase() {
260
- this.activeItemSubscription?.unsubscribe();
261
- }
262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavBaseComponent, deps: [{ token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
263
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavBaseComponent, selector: "nav-base", inputs: { direction: "direction" }, ngImport: i0, template: "<p>nav-base works!</p>\r\n", styles: [""] }); }
264
- }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavBaseComponent, decorators: [{
266
- type: Component,
267
- args: [{ selector: 'nav-base', template: "<p>nav-base works!</p>\r\n" }]
268
- }], ctorParameters: function () { return [{ type: MenuItemsService }]; }, propDecorators: { direction: [{
269
- type: Input
243
+ /** This component is created to help nest some common input params through nav components. */
244
+ class NavBaseComponent {
245
+ constructor(menuItemsService) {
246
+ this.menuItemsService = menuItemsService;
247
+ }
248
+ ngOnInit() {
249
+ this.initBase();
250
+ }
251
+ initBase() {
252
+ this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {
253
+ this.active = active;
254
+ });
255
+ }
256
+ ngOnDestroy() {
257
+ this.destroyBase();
258
+ }
259
+ destroyBase() {
260
+ this.activeItemSubscription?.unsubscribe();
261
+ }
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: NavBaseComponent, deps: [{ token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: NavBaseComponent, selector: "nav-base", inputs: { direction: "direction" }, ngImport: i0, template: "<p>nav-base works!</p>\r\n", styles: [""] }); }
264
+ }
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: NavBaseComponent, decorators: [{
266
+ type: Component,
267
+ args: [{ selector: 'nav-base', template: "<p>nav-base works!</p>\r\n" }]
268
+ }], ctorParameters: () => [{ type: MenuItemsService }], propDecorators: { direction: [{
269
+ type: Input
270
270
  }] } });
271
271
 
272
- var MenuLayoutDirection;
273
- (function (MenuLayoutDirection) {
274
- MenuLayoutDirection["column"] = "column";
275
- MenuLayoutDirection["row"] = "row";
272
+ var MenuLayoutDirection;
273
+ (function (MenuLayoutDirection) {
274
+ MenuLayoutDirection["column"] = "column";
275
+ MenuLayoutDirection["row"] = "row";
276
276
  })(MenuLayoutDirection || (MenuLayoutDirection = {}));
277
277
 
278
- class MenuIconComponent {
279
- constructor() {
280
- this.svgExtension = MENU_ICON_STRAPI_EXTENSION;
281
- }
282
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
283
- isIconMediaType(icon) {
284
- return typeof icon !== "string";
285
- }
286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
287
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuIconComponent, selector: "tld-menu-icon", inputs: { menuItem: "menuItem" }, ngImport: i0, template: "<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".menu-icon{color:var(--base-40);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
288
- }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuIconComponent, decorators: [{
290
- type: Component,
291
- args: [{ selector: 'tld-menu-icon', template: "<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".menu-icon{color:var(--base-40);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}\n"] }]
292
- }], propDecorators: { menuItem: [{
293
- type: Input
278
+ class MenuIconComponent {
279
+ constructor() {
280
+ this.svgExtension = MENU_ICON_STRAPI_EXTENSION;
281
+ }
282
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
283
+ isIconMediaType(icon) {
284
+ return typeof icon !== "string";
285
+ }
286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
287
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MenuIconComponent, selector: "tld-menu-icon", inputs: { menuItem: "menuItem" }, ngImport: i0, template: "<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".menu-icon{color:var(--base-40);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuIconComponent, decorators: [{
290
+ type: Component,
291
+ args: [{ selector: 'tld-menu-icon', template: "<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".menu-icon{color:var(--base-40);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}\n"] }]
292
+ }], propDecorators: { menuItem: [{
293
+ type: Input
294
294
  }] } });
295
295
 
296
- class MenuItemLinkComponent {
297
- get menuItemLayout() {
298
- return this.direction === MenuLayoutDirection.column ? 'column' : 'row';
299
- }
300
- get menuLayoutDirection() {
301
- return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)
302
- ? 'start center' : 'start start';
303
- }
304
- constructor(strapiLinkService, placeholderService) {
305
- this.strapiLinkService = strapiLinkService;
306
- this.placeholderService = placeholderService;
307
- this.showIcons = true;
308
- this.updateTextWithPlaceholders = (textWithReplacedPlaceholders) => this.href = textWithReplacedPlaceholders;
309
- }
310
- ngOnInit() {
311
- this.textWithPlaceholders = this.menuItem.link;
312
- this.placeholderServiceId = this.placeholderService.register(this);
313
- }
314
- linkClick(event, item) {
315
- this.strapiLinkService.strapiLinkClick(event, item.externalLink);
316
- }
317
- ngOnDestroy() {
318
- this.placeholderService.unregister(this.placeholderServiceId);
319
- }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemLinkComponent, deps: [{ token: i1.StrapiLinkService }, { token: i1.StrapiVariablesService }], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuItemLinkComponent, selector: "tld-menu-item-link", inputs: { direction: "direction", labelsVisible: "labelsVisible", activeItem: "activeItem", showIcons: "showIcons", menuItem: "menuItem" }, ngImport: i0, template: "<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: MenuIconComponent, selector: "tld-menu-icon", inputs: ["menuItem"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
322
- }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemLinkComponent, decorators: [{
324
- type: Component,
325
- args: [{ selector: 'tld-menu-item-link', template: "<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n" }]
326
- }], ctorParameters: function () { return [{ type: i1.StrapiLinkService }, { type: i1.StrapiVariablesService }]; }, propDecorators: { direction: [{
327
- type: Input
328
- }], labelsVisible: [{
329
- type: Input
330
- }], activeItem: [{
331
- type: Input
332
- }], showIcons: [{
333
- type: Input
334
- }], menuItem: [{
335
- type: Input
296
+ class MenuItemLinkComponent {
297
+ get menuItemLayout() {
298
+ return this.direction === MenuLayoutDirection.column ? 'column' : 'row';
299
+ }
300
+ get menuLayoutDirection() {
301
+ return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)
302
+ ? 'start center' : 'start start';
303
+ }
304
+ constructor(strapiLinkService, placeholderService) {
305
+ this.strapiLinkService = strapiLinkService;
306
+ this.placeholderService = placeholderService;
307
+ this.showIcons = true;
308
+ this.updateTextWithPlaceholders = (textWithReplacedPlaceholders) => this.href = textWithReplacedPlaceholders;
309
+ }
310
+ ngOnInit() {
311
+ this.textWithPlaceholders = this.menuItem.link;
312
+ this.placeholderServiceId = this.placeholderService.register(this);
313
+ }
314
+ linkClick(event, item) {
315
+ this.strapiLinkService.strapiLinkClick(event, item.externalLink);
316
+ }
317
+ ngOnDestroy() {
318
+ this.placeholderService.unregister(this.placeholderServiceId);
319
+ }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemLinkComponent, deps: [{ token: i1.StrapiLinkService }, { token: i1.StrapiVariablesService }], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MenuItemLinkComponent, selector: "tld-menu-item-link", inputs: { direction: "direction", labelsVisible: "labelsVisible", activeItem: "activeItem", showIcons: "showIcons", menuItem: "menuItem" }, ngImport: i0, template: "<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: MenuIconComponent, selector: "tld-menu-icon", inputs: ["menuItem"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
322
+ }
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemLinkComponent, decorators: [{
324
+ type: Component,
325
+ args: [{ selector: 'tld-menu-item-link', template: "<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n" }]
326
+ }], ctorParameters: () => [{ type: i1.StrapiLinkService }, { type: i1.StrapiVariablesService }], propDecorators: { direction: [{
327
+ type: Input
328
+ }], labelsVisible: [{
329
+ type: Input
330
+ }], activeItem: [{
331
+ type: Input
332
+ }], showIcons: [{
333
+ type: Input
334
+ }], menuItem: [{
335
+ type: Input
336
336
  }] } });
337
337
 
338
- class MenuItemListComponent {
339
- constructor() {
340
- this.direction = MenuLayoutDirection.column;
341
- this.labelsVisible = true;
342
- this.showIcons = true;
343
- this.showChildren = true;
344
- this.items = [];
345
- this.toggleExpand = new EventEmitter();
346
- }
347
- get titleKey() {
348
- return this.menuItemGroup?.title;
349
- }
350
- get showTitle() {
351
- return this.menuItemGroup?.showTitle;
352
- }
353
- get menuLayoutDirection() {
354
- return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)
355
- ? 'start center' : 'start start';
356
- }
357
- get menuItemLayout() {
358
- return this.direction === MenuLayoutDirection.column ? 'column' : 'row';
359
- }
360
- toggleItemExpand(event, menuItem) {
361
- // so menu doesnt get closed.
362
- event.stopPropagation();
363
- menuItem.expanded = !menuItem.expanded;
364
- this.toggleExpand.next(menuItem);
365
- }
366
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
367
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuItemListComponent, selector: "menu-item-list", inputs: { direction: "direction", labelsVisible: "labelsVisible", activeItem: "activeItem", showIcons: "showIcons", showChildren: "showChildren", items: "items", menuItemGroup: "menuItemGroup" }, outputs: { toggleExpand: "toggleExpand" }, ngImport: i0, template: "<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [fxLayout]=\"menuItemLayout\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"showChildren && menuItem.children\">\r\n {{menuItem.expanded? 'expand_more' : 'navigate_next'}}\r\n </span>\r\n </button>\r\n <ng-container *ngIf=\"showChildren && menuItem.expanded\">\r\n <menu-item-list class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\" [showIcons]=\"false\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>", styles: [":host{margin:1em 0;display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item-list-title{margin-bottom:1em;font-size:1rem;font-weight:500;line-height:1.5rem}:host::ng-deep .menu-list-wrapper .text-center{text-align:center}:host::ng-deep .menu-list-wrapper tld-menu-item-link+tld-menu-item-link,:host::ng-deep .menu-list-wrapper tld-menu-item-link+.menu-item,:host::ng-deep .menu-list-wrapper .menu-item+tld-menu-item-link,:host::ng-deep .menu-list-wrapper .menu-item+.menu-item{margin-top:1.5625em}:host::ng-deep .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}:host::ng-deep .menu-list-wrapper .menu-item:focus-visible{outline:black solid 2px}:host::ng-deep .menu-list-wrapper .menu-item:not(button):hover{font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item mat-icon,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item:hover{color:var(--primary-accent)!important;font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item span{display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;flex-grow:100;align-items:start}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}:host.child-list{margin-top:1rem;margin-bottom:1rem}:host.child-list .menu-item+.menu-item{margin-top:.5rem}::ng-deep .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative}::ng-deep .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}menu-item-list{padding-left:3rem;margin:0}.mob-menu-item{width:100%}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: MenuItemListComponent, selector: "menu-item-list", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "showChildren", "items", "menuItemGroup"], outputs: ["toggleExpand"] }, { kind: "component", type: MenuIconComponent, selector: "tld-menu-icon", inputs: ["menuItem"] }, { kind: "component", type: MenuItemLinkComponent, selector: "tld-menu-item-link", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "menuItem"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
368
- }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemListComponent, decorators: [{
370
- type: Component,
371
- args: [{ selector: 'menu-item-list', template: "<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [fxLayout]=\"menuItemLayout\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"showChildren && menuItem.children\">\r\n {{menuItem.expanded? 'expand_more' : 'navigate_next'}}\r\n </span>\r\n </button>\r\n <ng-container *ngIf=\"showChildren && menuItem.expanded\">\r\n <menu-item-list class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\" [showIcons]=\"false\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>", styles: [":host{margin:1em 0;display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item-list-title{margin-bottom:1em;font-size:1rem;font-weight:500;line-height:1.5rem}:host::ng-deep .menu-list-wrapper .text-center{text-align:center}:host::ng-deep .menu-list-wrapper tld-menu-item-link+tld-menu-item-link,:host::ng-deep .menu-list-wrapper tld-menu-item-link+.menu-item,:host::ng-deep .menu-list-wrapper .menu-item+tld-menu-item-link,:host::ng-deep .menu-list-wrapper .menu-item+.menu-item{margin-top:1.5625em}:host::ng-deep .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}:host::ng-deep .menu-list-wrapper .menu-item:focus-visible{outline:black solid 2px}:host::ng-deep .menu-list-wrapper .menu-item:not(button):hover{font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item mat-icon,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item:hover{color:var(--primary-accent)!important;font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item span{display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;flex-grow:100;align-items:start}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}:host.child-list{margin-top:1rem;margin-bottom:1rem}:host.child-list .menu-item+.menu-item{margin-top:.5rem}::ng-deep .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative}::ng-deep .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}menu-item-list{padding-left:3rem;margin:0}.mob-menu-item{width:100%}\n"] }]
372
- }], propDecorators: { direction: [{
373
- type: Input
374
- }], labelsVisible: [{
375
- type: Input
376
- }], activeItem: [{
377
- type: Input
378
- }], showIcons: [{
379
- type: Input
380
- }], showChildren: [{
381
- type: Input
382
- }], items: [{
383
- type: Input
384
- }], menuItemGroup: [{
385
- type: Input
386
- }], toggleExpand: [{
387
- type: Output
338
+ class MenuItemListComponent {
339
+ constructor() {
340
+ this.direction = MenuLayoutDirection.column;
341
+ this.labelsVisible = true;
342
+ this.showIcons = true;
343
+ this.showChildren = true;
344
+ this.items = [];
345
+ this.toggleExpand = new EventEmitter();
346
+ }
347
+ get titleKey() {
348
+ return this.menuItemGroup?.title;
349
+ }
350
+ get showTitle() {
351
+ return this.menuItemGroup?.showTitle;
352
+ }
353
+ get menuLayoutDirection() {
354
+ return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)
355
+ ? 'start center' : 'start start';
356
+ }
357
+ get menuItemLayout() {
358
+ return this.direction === MenuLayoutDirection.column ? 'column' : 'row';
359
+ }
360
+ toggleItemExpand(event, menuItem) {
361
+ // so menu doesnt get closed.
362
+ event.stopPropagation();
363
+ menuItem.expanded = !menuItem.expanded;
364
+ this.toggleExpand.next(menuItem);
365
+ }
366
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
367
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MenuItemListComponent, selector: "menu-item-list", inputs: { direction: "direction", labelsVisible: "labelsVisible", activeItem: "activeItem", showIcons: "showIcons", showChildren: "showChildren", items: "items", menuItemGroup: "menuItemGroup" }, outputs: { toggleExpand: "toggleExpand" }, ngImport: i0, template: "<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [fxLayout]=\"menuItemLayout\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"showChildren && menuItem.children\">\r\n {{menuItem.expanded? 'expand_more' : 'navigate_next'}}\r\n </span>\r\n </button>\r\n <ng-container *ngIf=\"showChildren && menuItem.expanded\">\r\n <menu-item-list class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\" [showIcons]=\"false\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>", styles: [":host{margin:1em 0;display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item-list-title{margin-bottom:1em;font-size:1rem;font-weight:500;line-height:1.5rem}:host::ng-deep .menu-list-wrapper .text-center{text-align:center}:host::ng-deep .menu-list-wrapper tld-menu-item-link+tld-menu-item-link,:host::ng-deep .menu-list-wrapper tld-menu-item-link+.menu-item,:host::ng-deep .menu-list-wrapper .menu-item+tld-menu-item-link,:host::ng-deep .menu-list-wrapper .menu-item+.menu-item{margin-top:1.5625em}:host::ng-deep .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}:host::ng-deep .menu-list-wrapper .menu-item:focus-visible{outline:black solid 2px}:host::ng-deep .menu-list-wrapper .menu-item:not(button):hover{font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item mat-icon,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item:hover{color:var(--primary-accent)!important;font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item span{display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;flex-grow:100;align-items:start}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}:host.child-list{margin-top:1rem;margin-bottom:1rem}:host.child-list .menu-item+.menu-item{margin-top:.5rem}::ng-deep .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative}::ng-deep .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}menu-item-list{padding-left:3rem;margin:0}.mob-menu-item{width:100%}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MenuItemListComponent, selector: "menu-item-list", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "showChildren", "items", "menuItemGroup"], outputs: ["toggleExpand"] }, { kind: "component", type: MenuIconComponent, selector: "tld-menu-icon", inputs: ["menuItem"] }, { kind: "component", type: MenuItemLinkComponent, selector: "tld-menu-item-link", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "menuItem"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
368
+ }
369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemListComponent, decorators: [{
370
+ type: Component,
371
+ args: [{ selector: 'menu-item-list', template: "<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [fxLayout]=\"menuItemLayout\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"showChildren && menuItem.children\">\r\n {{menuItem.expanded? 'expand_more' : 'navigate_next'}}\r\n </span>\r\n </button>\r\n <ng-container *ngIf=\"showChildren && menuItem.expanded\">\r\n <menu-item-list class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\" [showIcons]=\"false\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>", styles: [":host{margin:1em 0;display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item-list-title{margin-bottom:1em;font-size:1rem;font-weight:500;line-height:1.5rem}:host::ng-deep .menu-list-wrapper .text-center{text-align:center}:host::ng-deep .menu-list-wrapper tld-menu-item-link+tld-menu-item-link,:host::ng-deep .menu-list-wrapper tld-menu-item-link+.menu-item,:host::ng-deep .menu-list-wrapper .menu-item+tld-menu-item-link,:host::ng-deep .menu-list-wrapper .menu-item+.menu-item{margin-top:1.5625em}:host::ng-deep .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}:host::ng-deep .menu-list-wrapper .menu-item:focus-visible{outline:black solid 2px}:host::ng-deep .menu-list-wrapper .menu-item:not(button):hover{font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item mat-icon,:host::ng-deep .menu-list-wrapper .menu-item.active-menu-item:hover{color:var(--primary-accent)!important;font-weight:600}:host::ng-deep .menu-list-wrapper .menu-item span{display:inline-block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;flex-grow:100;align-items:start}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}:host::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}:host.child-list{margin-top:1rem;margin-bottom:1rem}:host.child-list .menu-item+.menu-item{margin-top:.5rem}::ng-deep .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative}::ng-deep .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}menu-item-list{padding-left:3rem;margin:0}.mob-menu-item{width:100%}\n"] }]
372
+ }], propDecorators: { direction: [{
373
+ type: Input
374
+ }], labelsVisible: [{
375
+ type: Input
376
+ }], activeItem: [{
377
+ type: Input
378
+ }], showIcons: [{
379
+ type: Input
380
+ }], showChildren: [{
381
+ type: Input
382
+ }], items: [{
383
+ type: Input
384
+ }], menuItemGroup: [{
385
+ type: Input
386
+ }], toggleExpand: [{
387
+ type: Output
388
388
  }] } });
389
389
 
390
- class MenuColumnsComponent {
391
- get active() { return this._active; }
392
- set active(value) {
393
- this._active = value;
394
- if (!value) {
395
- this.activeItem = undefined;
396
- return;
397
- }
398
- this.elementExpanded(this.active?.root);
399
- }
400
- get mergedGroups() { return this.menuItemsService.mergedGroups; }
401
- constructor(router, menuSharedConfig, menuItemsService) {
402
- this.router = router;
403
- this.menuSharedConfig = menuSharedConfig;
404
- this.menuItemsService = menuItemsService;
405
- this.direction = MenuLayoutDirection.column;
406
- this.labelsVisible = true;
407
- this.subscriptions = [];
408
- }
409
- ngOnInit() {
410
- this.activeItem = this.active.root;
411
- }
412
- ngOnDestroy() {
413
- this.subscriptions.forEach(sub => sub.unsubscribe());
414
- }
415
- elementExpanded(element) {
416
- if (!this.active || !element) {
417
- return;
418
- }
419
- if (this.showChildren && element.expanded && element === this.active.root) {
420
- this.activeItem = this.active.child;
421
- }
422
- else {
423
- this.activeItem = this.active.root;
424
- }
425
- }
426
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuColumnsComponent, deps: [{ token: i1$1.Router }, { token: MENU_SHARED_CONFIG, optional: true }, { token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
427
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuColumnsComponent, selector: "menu-columns", inputs: { direction: "direction", labelsVisible: "labelsVisible", showChildren: "showChildren", active: "active" }, ngImport: i0, template: "<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\" [showChildren]=\"showChildren\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>", styles: [":host{display:inline-block}:host menu-item-list{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MenuItemListComponent, selector: "menu-item-list", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "showChildren", "items", "menuItemGroup"], outputs: ["toggleExpand"] }] }); }
428
- }
429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuColumnsComponent, decorators: [{
430
- type: Component,
431
- args: [{ selector: 'menu-columns', template: "<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\" [showChildren]=\"showChildren\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>", styles: [":host{display:inline-block}:host menu-item-list{display:block}\n"] }]
432
- }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: undefined, decorators: [{
433
- type: Optional
434
- }, {
435
- type: Inject,
436
- args: [MENU_SHARED_CONFIG]
437
- }] }, { type: MenuItemsService }]; }, propDecorators: { direction: [{
438
- type: Input
439
- }], labelsVisible: [{
440
- type: Input
441
- }], showChildren: [{
442
- type: Input
443
- }], active: [{
444
- type: Input
390
+ class MenuColumnsComponent {
391
+ get active() { return this._active; }
392
+ set active(value) {
393
+ this._active = value;
394
+ if (!value) {
395
+ this.activeItem = undefined;
396
+ return;
397
+ }
398
+ this.elementExpanded(this.active?.root);
399
+ }
400
+ get mergedGroups() { return this.menuItemsService.mergedGroups; }
401
+ constructor(router, menuSharedConfig, menuItemsService) {
402
+ this.router = router;
403
+ this.menuSharedConfig = menuSharedConfig;
404
+ this.menuItemsService = menuItemsService;
405
+ this.direction = MenuLayoutDirection.column;
406
+ this.labelsVisible = true;
407
+ this.subscriptions = [];
408
+ }
409
+ ngOnInit() {
410
+ this.activeItem = this.active.root;
411
+ }
412
+ ngOnDestroy() {
413
+ this.subscriptions.forEach(sub => sub.unsubscribe());
414
+ }
415
+ elementExpanded(element) {
416
+ if (!this.active || !element) {
417
+ return;
418
+ }
419
+ if (this.showChildren && element.expanded && element === this.active.root) {
420
+ this.activeItem = this.active.child;
421
+ }
422
+ else {
423
+ this.activeItem = this.active.root;
424
+ }
425
+ }
426
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuColumnsComponent, deps: [{ token: i1$1.Router }, { token: MENU_SHARED_CONFIG, optional: true }, { token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
427
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MenuColumnsComponent, selector: "menu-columns", inputs: { direction: "direction", labelsVisible: "labelsVisible", showChildren: "showChildren", active: "active" }, ngImport: i0, template: "<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\" [showChildren]=\"showChildren\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>", styles: [":host{display:inline-block}:host menu-item-list{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MenuItemListComponent, selector: "menu-item-list", inputs: ["direction", "labelsVisible", "activeItem", "showIcons", "showChildren", "items", "menuItemGroup"], outputs: ["toggleExpand"] }] }); }
428
+ }
429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuColumnsComponent, decorators: [{
430
+ type: Component,
431
+ args: [{ selector: 'menu-columns', template: "<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\" [showChildren]=\"showChildren\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>", styles: [":host{display:inline-block}:host menu-item-list{display:block}\n"] }]
432
+ }], ctorParameters: () => [{ type: i1$1.Router }, { type: undefined, decorators: [{
433
+ type: Optional
434
+ }, {
435
+ type: Inject,
436
+ args: [MENU_SHARED_CONFIG]
437
+ }] }, { type: MenuItemsService }], propDecorators: { direction: [{
438
+ type: Input
439
+ }], labelsVisible: [{
440
+ type: Input
441
+ }], showChildren: [{
442
+ type: Input
443
+ }], active: [{
444
+ type: Input
445
445
  }] } });
446
446
 
447
- class SideNavMenuComponent extends NavBaseComponent {
448
- get menuLogoImage() {
449
- return this.collapsed
450
- ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo
451
- : this.menuSettings.menuLogo;
452
- }
453
- get sideNavWidth() {
454
- return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;
455
- }
456
- constructor(strapiLinkService, domService, menuItems, menuSharedConfig) {
457
- super(menuItems);
458
- this.strapiLinkService = strapiLinkService;
459
- this.domService = domService;
460
- this.menuItems = menuItems;
461
- this.COLLAPSED_LOCAL_STORAGE_KEY = "TLD_MENU_SIDE_NAV_COLLAPSED";
462
- //#region Plausible event variables for collapse button
463
- this.COLLAPSE_PLAUSIBLE_EVENT_ID = "collapseMenu";
464
- this.COLLAPSE_PLAUSIBLE_ACTION_KEY = "action";
465
- this.LOGOCLICK_PLAUSIBLE_ACTION_ID = "tilde_logo_click";
466
- this.LOGOCLICK_PLAUSIBLE_EVENT = {
467
- eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,
468
- properties: []
469
- };
470
- this.EXPAND_PLAUSIBLE_EVENT = {
471
- eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
472
- properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "expand" }]
473
- };
474
- this.COLLAPSE_PLAUSIBLE_EVENT = {
475
- eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
476
- properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "collapse" }]
477
- };
478
- //#endregion
479
- this.menuSettings = {
480
- expandedWidth: '9.375em',
481
- collapsedWidth: '5em',
482
- menuLogo: '',
483
- menuLogoCollapsed: '',
484
- disableStrapi: false
485
- };
486
- this.collapsed = false;
487
- this.baseUrl = menuSharedConfig.baseUrl || '';
488
- }
489
- ngOnInit() {
490
- super.ngOnInit();
491
- this.getColapsedFromLocalStorage();
492
- }
493
- logoClick(event) {
494
- this.strapiLinkService.strapiLinkClick(event);
495
- }
496
- toggleCollapse() {
497
- this.collapsed = !this.collapsed;
498
- this.setColapsedFromLocalStorage();
499
- }
500
- getColapsedFromLocalStorage() {
501
- if (!this.domService.localStorage) {
502
- return;
503
- }
504
- this.collapsed = this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' ? true : false;
505
- }
506
- setColapsedFromLocalStorage() {
507
- if (!this.domService.localStorage) {
508
- return;
509
- }
510
- this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());
511
- }
512
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideNavMenuComponent, deps: [{ token: i1.StrapiLinkService }, { token: i2.DOMService }, { token: MenuItemsService }, { token: MENU_SHARED_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
513
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SideNavMenuComponent, selector: "lib-side-nav-menu", inputs: { menuSettings: "menuSettings" }, usesInheritance: true, ngImport: i0, template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"center center\"\r\n fxFlexOffset=\"1em\">\r\n <img class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"\" />\r\n </a>\r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\" [showChildren]=\"false\"\r\n [active]=\"active\"></menu-columns>\r\n <div fxLayoutAlign=\"center center\">\r\n <button [libPlausibleEvent]=\"COLLAPSE_PLAUSIBLE_EVENT\" class=\"collapse-btn\" [disableRipple]=\"true\"\r\n *ngIf=\"!collapsed; else expandButton\" (click)=\"toggleCollapse()\" mat-button>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n <span> {{ \"MENU.COLLAPSE\" | translate }} </span>\r\n </button>\r\n <ng-template #expandButton>\r\n <button class=\"toggler\" [libPlausibleEvent]=\"EXPAND_PLAUSIBLE_EVENT\" mat-icon-button\r\n (click)=\"toggleCollapse()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>", styles: [".menu-container{height:100%;overflow:auto;background:var(--base-100);border-right:1px solid var(--base-70)}.menu-container .content{padding:0 .8em}.menu-container .content .menu-logo{margin:auto;max-width:100%}.menu-container .divider{width:100%;margin:0}:host ::ng-deep .collapsed .menu-item{padding:calc(.125em + 1px)}:host ::ng-deep .collapsed .menu-item.active-menu-item{padding:.125em;border:1px solid var(--primary-accent);border-radius:var(--default-border-radius)}:host ::ng-deep button.collapse-btn{background-color:transparent;font-size:.8125rem;font-weight:400;line-height:1.25rem;letter-spacing:0px;text-align:left;padding:0!important}:host::ng-deep button.collapse-btn,:host::ng-deep button.toggler{margin-bottom:1em}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "directive", type: i2$2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2$2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: MenuColumnsComponent, selector: "menu-columns", inputs: ["direction", "labelsVisible", "showChildren", "active"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
514
- }
515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SideNavMenuComponent, decorators: [{
516
- type: Component,
517
- args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"center center\"\r\n fxFlexOffset=\"1em\">\r\n <img class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"\" />\r\n </a>\r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\" [showChildren]=\"false\"\r\n [active]=\"active\"></menu-columns>\r\n <div fxLayoutAlign=\"center center\">\r\n <button [libPlausibleEvent]=\"COLLAPSE_PLAUSIBLE_EVENT\" class=\"collapse-btn\" [disableRipple]=\"true\"\r\n *ngIf=\"!collapsed; else expandButton\" (click)=\"toggleCollapse()\" mat-button>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n <span> {{ \"MENU.COLLAPSE\" | translate }} </span>\r\n </button>\r\n <ng-template #expandButton>\r\n <button class=\"toggler\" [libPlausibleEvent]=\"EXPAND_PLAUSIBLE_EVENT\" mat-icon-button\r\n (click)=\"toggleCollapse()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>", styles: [".menu-container{height:100%;overflow:auto;background:var(--base-100);border-right:1px solid var(--base-70)}.menu-container .content{padding:0 .8em}.menu-container .content .menu-logo{margin:auto;max-width:100%}.menu-container .divider{width:100%;margin:0}:host ::ng-deep .collapsed .menu-item{padding:calc(.125em + 1px)}:host ::ng-deep .collapsed .menu-item.active-menu-item{padding:.125em;border:1px solid var(--primary-accent);border-radius:var(--default-border-radius)}:host ::ng-deep button.collapse-btn{background-color:transparent;font-size:.8125rem;font-weight:400;line-height:1.25rem;letter-spacing:0px;text-align:left;padding:0!important}:host::ng-deep button.collapse-btn,:host::ng-deep button.toggler{margin-bottom:1em}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}\n"] }]
518
- }], ctorParameters: function () { return [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: MenuItemsService }, { type: undefined, decorators: [{
519
- type: Optional
520
- }, {
521
- type: Inject,
522
- args: [MENU_SHARED_CONFIG]
523
- }] }]; }, propDecorators: { menuSettings: [{
524
- type: Input
447
+ class SideNavMenuComponent extends NavBaseComponent {
448
+ get menuLogoImage() {
449
+ return this.collapsed
450
+ ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo
451
+ : this.menuSettings.menuLogo;
452
+ }
453
+ get sideNavWidth() {
454
+ return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;
455
+ }
456
+ constructor(strapiLinkService, domService, menuItems, menuSharedConfig) {
457
+ super(menuItems);
458
+ this.strapiLinkService = strapiLinkService;
459
+ this.domService = domService;
460
+ this.menuItems = menuItems;
461
+ this.COLLAPSED_LOCAL_STORAGE_KEY = "TLD_MENU_SIDE_NAV_COLLAPSED";
462
+ //#region Plausible event variables for collapse button
463
+ this.COLLAPSE_PLAUSIBLE_EVENT_ID = "collapseMenu";
464
+ this.COLLAPSE_PLAUSIBLE_ACTION_KEY = "action";
465
+ this.LOGOCLICK_PLAUSIBLE_ACTION_ID = "tilde_logo_click";
466
+ this.LOGOCLICK_PLAUSIBLE_EVENT = {
467
+ eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,
468
+ properties: []
469
+ };
470
+ this.EXPAND_PLAUSIBLE_EVENT = {
471
+ eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
472
+ properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "expand" }]
473
+ };
474
+ this.COLLAPSE_PLAUSIBLE_EVENT = {
475
+ eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
476
+ properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "collapse" }]
477
+ };
478
+ //#endregion
479
+ this.menuSettings = {
480
+ expandedWidth: '9.375em',
481
+ collapsedWidth: '5em',
482
+ menuLogo: '',
483
+ menuLogoCollapsed: '',
484
+ disableStrapi: false
485
+ };
486
+ this.collapsed = false;
487
+ this.baseUrl = menuSharedConfig.baseUrl || '';
488
+ }
489
+ ngOnInit() {
490
+ super.ngOnInit();
491
+ this.getColapsedFromLocalStorage();
492
+ }
493
+ logoClick(event) {
494
+ this.strapiLinkService.strapiLinkClick(event);
495
+ }
496
+ toggleCollapse() {
497
+ this.collapsed = !this.collapsed;
498
+ this.setColapsedFromLocalStorage();
499
+ }
500
+ getColapsedFromLocalStorage() {
501
+ if (!this.domService.localStorage) {
502
+ return;
503
+ }
504
+ this.collapsed = this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' ? true : false;
505
+ }
506
+ setColapsedFromLocalStorage() {
507
+ if (!this.domService.localStorage) {
508
+ return;
509
+ }
510
+ this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());
511
+ }
512
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SideNavMenuComponent, deps: [{ token: i1.StrapiLinkService }, { token: i2.DOMService }, { token: MenuItemsService }, { token: MENU_SHARED_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
513
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SideNavMenuComponent, selector: "lib-side-nav-menu", inputs: { menuSettings: "menuSettings" }, usesInheritance: true, ngImport: i0, template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"center center\"\r\n fxFlexOffset=\"1em\">\r\n <img class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"\" />\r\n </a>\r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\" [showChildren]=\"false\"\r\n [active]=\"active\"></menu-columns>\r\n <div fxLayoutAlign=\"center center\">\r\n <button [libPlausibleEvent]=\"COLLAPSE_PLAUSIBLE_EVENT\" class=\"collapse-btn\" [disableRipple]=\"true\"\r\n *ngIf=\"!collapsed; else expandButton\" (click)=\"toggleCollapse()\" mat-button>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n <span> {{ \"MENU.COLLAPSE\" | translate }} </span>\r\n </button>\r\n <ng-template #expandButton>\r\n <button class=\"toggler\" [libPlausibleEvent]=\"EXPAND_PLAUSIBLE_EVENT\" mat-icon-button\r\n (click)=\"toggleCollapse()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>", styles: [".menu-container{height:100%;overflow:auto;background:var(--base-100);border-right:1px solid var(--base-70)}.menu-container .content{padding:0 .8em}.menu-container .content .menu-logo{margin:auto;max-width:100%}.menu-container .divider{width:100%;margin:0}:host ::ng-deep .collapsed .menu-item{padding:calc(.125em + 1px)}:host ::ng-deep .collapsed .menu-item.active-menu-item{padding:.125em;border:1px solid var(--primary-accent);border-radius:var(--default-border-radius)}:host ::ng-deep button.collapse-btn{background-color:transparent;font-size:.8125rem;font-weight:400;line-height:1.25rem;letter-spacing:0px;text-align:left;padding:0!important}:host::ng-deep button.collapse-btn,:host::ng-deep button.toggler{margin-bottom:1em}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "directive", type: i2$2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2$2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: MenuColumnsComponent, selector: "menu-columns", inputs: ["direction", "labelsVisible", "showChildren", "active"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
514
+ }
515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SideNavMenuComponent, decorators: [{
516
+ type: Component,
517
+ args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"center center\"\r\n fxFlexOffset=\"1em\">\r\n <img class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"\" />\r\n </a>\r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\" [showChildren]=\"false\"\r\n [active]=\"active\"></menu-columns>\r\n <div fxLayoutAlign=\"center center\">\r\n <button [libPlausibleEvent]=\"COLLAPSE_PLAUSIBLE_EVENT\" class=\"collapse-btn\" [disableRipple]=\"true\"\r\n *ngIf=\"!collapsed; else expandButton\" (click)=\"toggleCollapse()\" mat-button>\r\n <mat-icon>keyboard_arrow_left</mat-icon>\r\n <span> {{ \"MENU.COLLAPSE\" | translate }} </span>\r\n </button>\r\n <ng-template #expandButton>\r\n <button class=\"toggler\" [libPlausibleEvent]=\"EXPAND_PLAUSIBLE_EVENT\" mat-icon-button\r\n (click)=\"toggleCollapse()\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>", styles: [".menu-container{height:100%;overflow:auto;background:var(--base-100);border-right:1px solid var(--base-70)}.menu-container .content{padding:0 .8em}.menu-container .content .menu-logo{margin:auto;max-width:100%}.menu-container .divider{width:100%;margin:0}:host ::ng-deep .collapsed .menu-item{padding:calc(.125em + 1px)}:host ::ng-deep .collapsed .menu-item.active-menu-item{padding:.125em;border:1px solid var(--primary-accent);border-radius:var(--default-border-radius)}:host ::ng-deep button.collapse-btn{background-color:transparent;font-size:.8125rem;font-weight:400;line-height:1.25rem;letter-spacing:0px;text-align:left;padding:0!important}:host::ng-deep button.collapse-btn,:host::ng-deep button.toggler{margin-bottom:1em}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}\n"] }]
518
+ }], ctorParameters: () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: MenuItemsService }, { type: undefined, decorators: [{
519
+ type: Optional
520
+ }, {
521
+ type: Inject,
522
+ args: [MENU_SHARED_CONFIG]
523
+ }] }], propDecorators: { menuSettings: [{
524
+ type: Input
525
525
  }] } });
526
526
 
527
- class ModalNavMenuComponent extends NavBaseComponent {
528
- constructor(menuItems) {
529
- super(menuItems);
530
- this.menuItems = menuItems;
531
- this.menuDialogSettings = {
532
- showMenuTitle: false,
533
- fullScreen: true
534
- };
535
- this.showChildren = true;
536
- // any type because emitter doesn't really need a value
537
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
538
- this.closeButtonClick = new EventEmitter();
539
- }
540
- close() {
541
- this.closeButtonClick.emit(null);
542
- }
543
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalNavMenuComponent, deps: [{ token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
544
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ModalNavMenuComponent, selector: "lib-modal-nav-menu", inputs: { menuDialogSettings: "menuDialogSettings", showChildren: "showChildren" }, outputs: { closeButtonClick: "closeButtonClick" }, usesInheritance: true, ngImport: i0, template: "<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [showChildren]=\"showChildren\" [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>", styles: [".menu-modal{background-color:var(--base-100);padding:1.375rem 1.5rem}.close-icon{cursor:pointer}.menu-header{font-style:normal;font-weight:500;font-size:1.3125rem;line-height:1.75rem;text-align:center;margin-bottom:1em;color:var(--menu-dark-color)}.close-icon>mat-icon{transform:scale(1.5)}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2$2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MenuColumnsComponent, selector: "menu-columns", inputs: ["direction", "labelsVisible", "showChildren", "active"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
545
- }
546
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalNavMenuComponent, decorators: [{
547
- type: Component,
548
- args: [{ selector: 'lib-modal-nav-menu', template: "<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [showChildren]=\"showChildren\" [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>", styles: [".menu-modal{background-color:var(--base-100);padding:1.375rem 1.5rem}.close-icon{cursor:pointer}.menu-header{font-style:normal;font-weight:500;font-size:1.3125rem;line-height:1.75rem;text-align:center;margin-bottom:1em;color:var(--menu-dark-color)}.close-icon>mat-icon{transform:scale(1.5)}\n"] }]
549
- }], ctorParameters: function () { return [{ type: MenuItemsService }]; }, propDecorators: { menuDialogSettings: [{
550
- type: Input
551
- }], showChildren: [{
552
- type: Input
553
- }], closeButtonClick: [{
554
- type: Output
527
+ class ModalNavMenuComponent extends NavBaseComponent {
528
+ constructor(menuItems) {
529
+ super(menuItems);
530
+ this.menuItems = menuItems;
531
+ this.menuDialogSettings = {
532
+ showMenuTitle: false,
533
+ fullScreen: true
534
+ };
535
+ this.showChildren = true;
536
+ // any type because emitter doesn't really need a value
537
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
538
+ this.closeButtonClick = new EventEmitter();
539
+ }
540
+ close() {
541
+ this.closeButtonClick.emit(null);
542
+ }
543
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ModalNavMenuComponent, deps: [{ token: MenuItemsService }], target: i0.ɵɵFactoryTarget.Component }); }
544
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ModalNavMenuComponent, selector: "lib-modal-nav-menu", inputs: { menuDialogSettings: "menuDialogSettings", showChildren: "showChildren" }, outputs: { closeButtonClick: "closeButtonClick" }, usesInheritance: true, ngImport: i0, template: "<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [showChildren]=\"showChildren\" [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>", styles: [".menu-modal{background-color:var(--base-100);padding:1.375rem 1.5rem}.close-icon{cursor:pointer}.menu-header{font-style:normal;font-weight:500;font-size:1.3125rem;line-height:1.75rem;text-align:center;margin-bottom:1em;color:var(--menu-dark-color)}.close-icon>mat-icon{transform:scale(1.5)}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i2$2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MenuColumnsComponent, selector: "menu-columns", inputs: ["direction", "labelsVisible", "showChildren", "active"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
545
+ }
546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ModalNavMenuComponent, decorators: [{
547
+ type: Component,
548
+ args: [{ selector: 'lib-modal-nav-menu', template: "<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [showChildren]=\"showChildren\" [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>", styles: [".menu-modal{background-color:var(--base-100);padding:1.375rem 1.5rem}.close-icon{cursor:pointer}.menu-header{font-style:normal;font-weight:500;font-size:1.3125rem;line-height:1.75rem;text-align:center;margin-bottom:1em;color:var(--menu-dark-color)}.close-icon>mat-icon{transform:scale(1.5)}\n"] }]
549
+ }], ctorParameters: () => [{ type: MenuItemsService }], propDecorators: { menuDialogSettings: [{
550
+ type: Input
551
+ }], showChildren: [{
552
+ type: Input
553
+ }], closeButtonClick: [{
554
+ type: Output
555
555
  }] } });
556
556
 
557
557
  const menuLogo = `
@@ -561,168 +561,168 @@ const menuLogo = `
561
561
 
562
562
  `;
563
563
 
564
- var TitlePlacement;
565
- (function (TitlePlacement) {
566
- TitlePlacement["none"] = "none";
567
- TitlePlacement["left"] = "left";
568
- TitlePlacement["right"] = "right";
564
+ var TitlePlacement;
565
+ (function (TitlePlacement) {
566
+ TitlePlacement["none"] = "none";
567
+ TitlePlacement["left"] = "left";
568
+ TitlePlacement["right"] = "right";
569
569
  })(TitlePlacement || (TitlePlacement = {}));
570
570
 
571
- class MenuItemIconComponent {
572
- constructor(iconService, router) {
573
- this.iconService = iconService;
574
- this.router = router;
575
- this.menuSettings = {
576
- titlePlacement: TitlePlacement.left
577
- };
578
- this.menuDialogSettings = {
579
- showMenuTitle: true,
580
- disableStrapi: true,
581
- fullScreen: true
582
- };
583
- this.showChildren = true;
584
- this.direction = MenuLayoutDirection.row;
585
- this.subscription = [];
586
- this.iconName = 'tld-menu-icon';
587
- this.TITLE_PLACEMENT_NONE = TitlePlacement.none;
588
- this.TITLE_PLACEMENT_LEFT = TitlePlacement.left;
589
- this.PLAUSIBLE_EVENT = {
590
- eventId: "burger_click"
591
- };
592
- }
593
- ngOnInit() {
594
- const routeChangeSub = this.router.events.subscribe(() => this.closeMenu());
595
- this.subscription.push(routeChangeSub);
596
- this.registerIcon();
597
- }
598
- closeMenu() {
599
- this.menuTrigger?.closeMenu();
600
- }
601
- ngOnDestroy() {
602
- this.subscription.forEach(e => e.unsubscribe());
603
- }
604
- registerIcon() {
605
- if (this.menuSettings.iconPath) {
606
- this.iconService.registerIconFromUrl(this.iconName, this.menuSettings.iconPath);
607
- }
608
- else {
609
- this.iconService.registerIcons({ [this.iconName]: menuLogo });
610
- }
611
- }
612
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemIconComponent, deps: [{ token: i2.IconService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
613
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MenuItemIconComponent, selector: "lib-menu-item-icon", inputs: { menuSettings: "menuSettings", menuDialogSettings: "menuDialogSettings", showChildren: "showChildren", direction: "direction" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], ngImport: i0, template: "<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\" [showChildren]=\"showChildren\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>", styles: [".content{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button{width:inherit}:host::ng-deep button span.mat-button-focus-overlay{opacity:0!important}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%}::ng-deep div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%}::ng-deep .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.DefaultFlexOrderDirective, selector: " [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md], [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md], [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm], [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]", inputs: ["fxFlexOrder", "fxFlexOrder.xs", "fxFlexOrder.sm", "fxFlexOrder.md", "fxFlexOrder.lg", "fxFlexOrder.xl", "fxFlexOrder.lt-sm", "fxFlexOrder.lt-md", "fxFlexOrder.lt-lg", "fxFlexOrder.lt-xl", "fxFlexOrder.gt-xs", "fxFlexOrder.gt-sm", "fxFlexOrder.gt-md", "fxFlexOrder.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i7$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: ModalNavMenuComponent, selector: "lib-modal-nav-menu", inputs: ["menuDialogSettings", "showChildren"], outputs: ["closeButtonClick"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
614
- }
615
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemIconComponent, decorators: [{
616
- type: Component,
617
- args: [{ selector: 'lib-menu-item-icon', template: "<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\" [showChildren]=\"showChildren\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>", styles: [".content{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button{width:inherit}:host::ng-deep button span.mat-button-focus-overlay{opacity:0!important}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%}::ng-deep div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%}::ng-deep .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}\n"] }]
618
- }], ctorParameters: function () { return [{ type: i2.IconService }, { type: i1$1.Router }]; }, propDecorators: { menuTrigger: [{
619
- type: ViewChild,
620
- args: ['menuTrigger']
621
- }], menuSettings: [{
622
- type: Input
623
- }], menuDialogSettings: [{
624
- type: Input
625
- }], showChildren: [{
626
- type: Input
627
- }], direction: [{
628
- type: Input
571
+ class MenuItemIconComponent {
572
+ constructor(iconService, router) {
573
+ this.iconService = iconService;
574
+ this.router = router;
575
+ this.menuSettings = {
576
+ titlePlacement: TitlePlacement.left
577
+ };
578
+ this.menuDialogSettings = {
579
+ showMenuTitle: true,
580
+ disableStrapi: true,
581
+ fullScreen: true
582
+ };
583
+ this.showChildren = true;
584
+ this.direction = MenuLayoutDirection.row;
585
+ this.subscription = [];
586
+ this.iconName = 'tld-menu-icon';
587
+ this.TITLE_PLACEMENT_NONE = TitlePlacement.none;
588
+ this.TITLE_PLACEMENT_LEFT = TitlePlacement.left;
589
+ this.PLAUSIBLE_EVENT = {
590
+ eventId: "burger_click"
591
+ };
592
+ }
593
+ ngOnInit() {
594
+ const routeChangeSub = this.router.events.subscribe(() => this.closeMenu());
595
+ this.subscription.push(routeChangeSub);
596
+ this.registerIcon();
597
+ }
598
+ closeMenu() {
599
+ this.menuTrigger?.closeMenu();
600
+ }
601
+ ngOnDestroy() {
602
+ this.subscription.forEach(e => e.unsubscribe());
603
+ }
604
+ registerIcon() {
605
+ if (this.menuSettings.iconPath) {
606
+ this.iconService.registerIconFromUrl(this.iconName, this.menuSettings.iconPath);
607
+ }
608
+ else {
609
+ this.iconService.registerIcons({ [this.iconName]: menuLogo });
610
+ }
611
+ }
612
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemIconComponent, deps: [{ token: i2.IconService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
613
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MenuItemIconComponent, selector: "lib-menu-item-icon", inputs: { menuSettings: "menuSettings", menuDialogSettings: "menuDialogSettings", showChildren: "showChildren", direction: "direction" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], ngImport: i0, template: "<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\" [showChildren]=\"showChildren\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>", styles: [".content{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button{width:inherit}:host::ng-deep button span.mat-button-focus-overlay{opacity:0!important}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%}::ng-deep div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%}::ng-deep .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}\n"], dependencies: [{ kind: "directive", type: i2$2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2$2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2$2.DefaultFlexOrderDirective, selector: " [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md], [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md], [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm], [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]", inputs: ["fxFlexOrder", "fxFlexOrder.xs", "fxFlexOrder.sm", "fxFlexOrder.md", "fxFlexOrder.lg", "fxFlexOrder.xl", "fxFlexOrder.lt-sm", "fxFlexOrder.lt-md", "fxFlexOrder.lt-lg", "fxFlexOrder.lt-xl", "fxFlexOrder.gt-xs", "fxFlexOrder.gt-sm", "fxFlexOrder.gt-md", "fxFlexOrder.gt-lg"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7$2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i7$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2.PlausibleEventDirective, selector: "[libPlausibleEvent]", inputs: ["libPlausibleEvent"] }, { kind: "component", type: ModalNavMenuComponent, selector: "lib-modal-nav-menu", inputs: ["menuDialogSettings", "showChildren"], outputs: ["closeButtonClick"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
614
+ }
615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuItemIconComponent, decorators: [{
616
+ type: Component,
617
+ args: [{ selector: 'lib-menu-item-icon', template: "<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\" [showChildren]=\"showChildren\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>", styles: [".content{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button{width:inherit}:host::ng-deep button span.mat-button-focus-overlay{opacity:0!important}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%}::ng-deep lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%}::ng-deep div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%}::ng-deep .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}\n"] }]
618
+ }], ctorParameters: () => [{ type: i2.IconService }, { type: i1$1.Router }], propDecorators: { menuTrigger: [{
619
+ type: ViewChild,
620
+ args: ['menuTrigger']
621
+ }], menuSettings: [{
622
+ type: Input
623
+ }], menuDialogSettings: [{
624
+ type: Input
625
+ }], showChildren: [{
626
+ type: Input
627
+ }], direction: [{
628
+ type: Input
629
629
  }] } });
630
630
 
631
- class MenuModule {
632
- static forRoot(config) {
633
- return {
634
- ngModule: MenuModule,
635
- providers: [
636
- { provide: MENU_SHARED_CONFIG, useValue: config }
637
- ]
638
- };
639
- }
640
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
641
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MenuModule, declarations: [SideNavMenuComponent,
642
- ModalNavMenuComponent,
643
- MenuItemIconComponent,
644
- NavBaseComponent,
645
- MenuItemListComponent,
646
- MenuColumnsComponent,
647
- MenuIconComponent,
648
- MenuItemLinkComponent], imports: [HttpClientModule,
649
- FlexLayoutModule,
650
- RouterModule,
651
- CommonModule,
652
- MatTooltipModule,
653
- MatDialogModule,
654
- MatIconModule,
655
- MatButtonModule,
656
- MatListModule,
657
- MatMenuModule,
658
- MatIconModule,
659
- TranslateModule,
660
- PlausibleModule], exports: [SideNavMenuComponent,
661
- ModalNavMenuComponent,
662
- MenuItemIconComponent,
663
- MenuColumnsComponent] }); }
664
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuModule, providers: [
665
- StarpiMenuService
666
- ], imports: [HttpClientModule,
667
- FlexLayoutModule,
668
- RouterModule,
669
- CommonModule,
670
- MatTooltipModule,
671
- MatDialogModule,
672
- MatIconModule,
673
- MatButtonModule,
674
- MatListModule,
675
- MatMenuModule,
676
- MatIconModule,
677
- TranslateModule,
678
- PlausibleModule] }); }
679
- }
680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuModule, decorators: [{
681
- type: NgModule,
682
- args: [{
683
- declarations: [
684
- SideNavMenuComponent,
685
- ModalNavMenuComponent,
686
- MenuItemIconComponent,
687
- NavBaseComponent,
688
- MenuItemListComponent,
689
- MenuColumnsComponent,
690
- MenuIconComponent,
691
- MenuItemLinkComponent
692
- ],
693
- providers: [
694
- StarpiMenuService
695
- ],
696
- imports: [
697
- HttpClientModule,
698
- FlexLayoutModule,
699
- RouterModule,
700
- CommonModule,
701
- MatTooltipModule,
702
- MatDialogModule,
703
- MatIconModule,
704
- MatButtonModule,
705
- MatListModule,
706
- MatMenuModule,
707
- MatIconModule,
708
- TranslateModule,
709
- PlausibleModule
710
- ],
711
- exports: [
712
- SideNavMenuComponent,
713
- ModalNavMenuComponent,
714
- MenuItemIconComponent,
715
- MenuColumnsComponent,
716
- ]
717
- }]
631
+ class MenuModule {
632
+ static forRoot(config) {
633
+ return {
634
+ ngModule: MenuModule,
635
+ providers: [
636
+ { provide: MENU_SHARED_CONFIG, useValue: config }
637
+ ]
638
+ };
639
+ }
640
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
641
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: MenuModule, declarations: [SideNavMenuComponent,
642
+ ModalNavMenuComponent,
643
+ MenuItemIconComponent,
644
+ NavBaseComponent,
645
+ MenuItemListComponent,
646
+ MenuColumnsComponent,
647
+ MenuIconComponent,
648
+ MenuItemLinkComponent], imports: [HttpClientModule,
649
+ FlexLayoutModule,
650
+ RouterModule,
651
+ CommonModule,
652
+ MatTooltipModule,
653
+ MatDialogModule,
654
+ MatIconModule,
655
+ MatButtonModule,
656
+ MatListModule,
657
+ MatMenuModule,
658
+ MatIconModule,
659
+ TranslateModule,
660
+ PlausibleModule], exports: [SideNavMenuComponent,
661
+ ModalNavMenuComponent,
662
+ MenuItemIconComponent,
663
+ MenuColumnsComponent] }); }
664
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuModule, providers: [
665
+ StarpiMenuService
666
+ ], imports: [HttpClientModule,
667
+ FlexLayoutModule,
668
+ RouterModule,
669
+ CommonModule,
670
+ MatTooltipModule,
671
+ MatDialogModule,
672
+ MatIconModule,
673
+ MatButtonModule,
674
+ MatListModule,
675
+ MatMenuModule,
676
+ MatIconModule,
677
+ TranslateModule,
678
+ PlausibleModule] }); }
679
+ }
680
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MenuModule, decorators: [{
681
+ type: NgModule,
682
+ args: [{
683
+ declarations: [
684
+ SideNavMenuComponent,
685
+ ModalNavMenuComponent,
686
+ MenuItemIconComponent,
687
+ NavBaseComponent,
688
+ MenuItemListComponent,
689
+ MenuColumnsComponent,
690
+ MenuIconComponent,
691
+ MenuItemLinkComponent
692
+ ],
693
+ providers: [
694
+ StarpiMenuService
695
+ ],
696
+ imports: [
697
+ HttpClientModule,
698
+ FlexLayoutModule,
699
+ RouterModule,
700
+ CommonModule,
701
+ MatTooltipModule,
702
+ MatDialogModule,
703
+ MatIconModule,
704
+ MatButtonModule,
705
+ MatListModule,
706
+ MatMenuModule,
707
+ MatIconModule,
708
+ TranslateModule,
709
+ PlausibleModule
710
+ ],
711
+ exports: [
712
+ SideNavMenuComponent,
713
+ ModalNavMenuComponent,
714
+ MenuItemIconComponent,
715
+ MenuColumnsComponent,
716
+ ]
717
+ }]
718
718
  }] });
719
719
 
720
- /*
721
- * Public API Surface of ngx-menu
720
+ /*
721
+ * Public API Surface of ngx-menu
722
722
  */
723
723
 
724
- /**
725
- * Generated bundle index. Do not edit.
724
+ /**
725
+ * Generated bundle index. Do not edit.
726
726
  */
727
727
 
728
728
  export { MENU_ICON_STRAPI_EXTENSION, MENU_SHARED_CONFIG, MenuColumnsComponent, MenuItemIconComponent, MenuItemsService, MenuLayoutDirection, MenuModule, ModalNavMenuComponent, NavBaseComponent, SideNavMenuComponent, StarpiMenuService, StrapiDataLocation, TitlePlacement };