@tilde-nlp/ngx-menu 6.1.42 → 6.1.44

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.
@@ -1,32 +1,32 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Optional, Inject, Component, Input, EventEmitter, Output, NgModule } from '@angular/core';
2
+ import { Injectable, Optional, Inject, Component, Input, EventEmitter, Output, inject, NgModule } from '@angular/core';
3
3
  import * as i2 from '@tilde-nlp/ngx-common';
4
- import { ResolutionHelper, PlausibleModule, SelectLanguageDialogComponent } from '@tilde-nlp/ngx-common';
4
+ import { ResolutionHelper, PlausibleModule, LanguageTranslateModule } from '@tilde-nlp/ngx-common';
5
5
  import * as i1$1 from '@angular/router';
6
6
  import { NavigationEnd, RouterModule } from '@angular/router';
7
7
  import { map, BehaviorSubject, filter } from 'rxjs';
8
8
  import * as i1 from '@tilde-nlp/ngx-strapi';
9
9
  import { STRAPI_API_CONFIG_TOKEN } from '@tilde-nlp/ngx-strapi';
10
10
  import { CollectionTypes } from '@tilde-nlp/strapi-models';
11
- import * as i1$2 from '@ngbracket/ngx-layout/flex';
12
- import * as i2$2 from '@ngbracket/ngx-layout/extended';
13
- import * as i4 from '@angular/common';
11
+ import * as i3 from '@angular/common';
14
12
  import { CommonModule } from '@angular/common';
13
+ import { FlexLayoutModule } from '@ngbracket/ngx-layout';
15
14
  import * as i5 from '@angular/material/tooltip';
16
15
  import { MatTooltipModule } from '@angular/material/tooltip';
17
- import * as i2$1 from '@angular/material/icon';
18
- import { MatIconModule } from '@angular/material/icon';
16
+ import { MatDialogModule } from '@angular/material/dialog';
19
17
  import * as i7 from '@angular/material/button';
20
18
  import { MatButtonModule } from '@angular/material/button';
19
+ import { MatListModule } from '@angular/material/list';
21
20
  import * as i6 from '@angular/material/menu';
22
21
  import { MatMenuModule } from '@angular/material/menu';
23
- import * as i4$1 from '@angular/material/divider';
22
+ import * as i2$1 from '@angular/material/icon';
23
+ import { MatIconModule } from '@angular/material/icon';
24
24
  import * as i8 from '@ngx-translate/core';
25
- import { TranslateModule } from '@ngx-translate/core';
26
- import { FlexLayoutModule } from '@ngbracket/ngx-layout';
27
- import { MatDialogModule } from '@angular/material/dialog';
28
- import { MatListModule } from '@angular/material/list';
25
+ import { TranslateService, TranslateModule } from '@ngx-translate/core';
29
26
  import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
27
+ import * as i1$2 from '@ngbracket/ngx-layout/flex';
28
+ import * as i2$2 from '@ngbracket/ngx-layout/extended';
29
+ import * as i4 from '@angular/material/divider';
30
30
 
31
31
  /** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */
32
32
  var StrapiDataLocation;
@@ -277,6 +277,208 @@ class NavBaseComponent {
277
277
  }] }); })();
278
278
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NavBaseComponent, { className: "NavBaseComponent", filePath: "lib\\components\\nav-base\\nav-base.component.ts", lineNumber: 13 }); })();
279
279
 
280
+ const _c0$2 = ["*"];
281
+ function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
282
+ const _r1 = i0.ɵɵgetCurrentView();
283
+ i0.ɵɵelementStart(0, "a", 2);
284
+ i0.ɵɵpipe(1, "translate");
285
+ i0.ɵɵlistener("click", function SideNavMenuComponent_a_14_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.logoClick($event)); });
286
+ i0.ɵɵelement(2, "img", 3);
287
+ i0.ɵɵelementStart(3, "span", 4);
288
+ i0.ɵɵtext(4);
289
+ i0.ɵɵelementEnd()();
290
+ } if (rf & 2) {
291
+ const ctx_r1 = i0.ɵɵnextContext();
292
+ i0.ɵɵclassProp("no-click", ctx_r1.menuSettings == null ? null : ctx_r1.menuSettings.disableLogoNavigation);
293
+ i0.ɵɵproperty("libPlausibleEvent", ctx_r1.LOGOCLICK_PLAUSIBLE_EVENT)("href", ctx_r1.baseUrl, i0.ɵɵsanitizeUrl);
294
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 7, "MENU.ARIA_LABELS.LOGO"));
295
+ i0.ɵɵadvance(2);
296
+ i0.ɵɵproperty("src", ctx_r1.menuLogoImage, i0.ɵɵsanitizeUrl);
297
+ i0.ɵɵadvance(2);
298
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.productName, " ");
299
+ } }
300
+ function SideNavMenuComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
301
+ const _r3 = i0.ɵɵgetCurrentView();
302
+ i0.ɵɵelementStart(0, "lib-menu-lang-switcher", 18);
303
+ i0.ɵɵlistener("changeLanguageEvent", function SideNavMenuComponent_Conditional_24_Template_lib_menu_lang_switcher_changeLanguageEvent_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeLanguage($event)); });
304
+ i0.ɵɵelementEnd();
305
+ } if (rf & 2) {
306
+ const ctx_r1 = i0.ɵɵnextContext();
307
+ i0.ɵɵproperty("isCollapsed", ctx_r1.collapsed)("languages", ctx_r1.supportedLanguages);
308
+ } }
309
+ class SideNavMenuComponent extends NavBaseComponent {
310
+ #username;
311
+ get username() { return this.#username; }
312
+ set username(value) {
313
+ // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.
314
+ this.#username = value?.trim();
315
+ }
316
+ get menuLogoImage() {
317
+ return this.collapsed
318
+ ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo
319
+ : this.menuSettings.menuLogo;
320
+ }
321
+ get sideNavWidth() {
322
+ return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;
323
+ }
324
+ constructor(strapiLinkService, domService, menuItems) {
325
+ super(menuItems);
326
+ this.strapiLinkService = strapiLinkService;
327
+ this.domService = domService;
328
+ this.menuItems = menuItems;
329
+ this.menuSettings = {
330
+ expandedWidth: '241px',
331
+ collapsedWidth: '56px',
332
+ menuLogo: '',
333
+ menuLogoCollapsed: '',
334
+ disableStrapi: false,
335
+ disableLogoNavigation: false,
336
+ userOptions: []
337
+ };
338
+ this.changeLanguageEvent = new EventEmitter();
339
+ this.collapsed = false;
340
+ this.COLLAPSED_LOCAL_STORAGE_KEY = "TLD_MENU_SIDE_NAV_COLLAPSED";
341
+ //#region Plausible event variables for collapse button
342
+ this.COLLAPSE_PLAUSIBLE_EVENT_ID = "collapseMenu";
343
+ this.COLLAPSE_PLAUSIBLE_ACTION_KEY = "action";
344
+ this.LOGOCLICK_PLAUSIBLE_ACTION_ID = "tilde_logo_click";
345
+ this.LOGOCLICK_PLAUSIBLE_EVENT = {
346
+ eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,
347
+ properties: []
348
+ };
349
+ this.EXPAND_PLAUSIBLE_EVENT = {
350
+ eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
351
+ properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "expand" }]
352
+ };
353
+ this.COLLAPSE_PLAUSIBLE_EVENT = {
354
+ eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
355
+ properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "collapse" }]
356
+ };
357
+ this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';
358
+ }
359
+ ngOnInit() {
360
+ super.ngOnInit();
361
+ this.getColapsedFromLocalStorage();
362
+ }
363
+ logoClick(event) {
364
+ this.strapiLinkService.strapiLinkClick(event);
365
+ }
366
+ toggleCollapse() {
367
+ this.collapsed = !this.collapsed;
368
+ this.setColapsedFromLocalStorage();
369
+ }
370
+ linkCallback(link) {
371
+ if (link.callback) {
372
+ link.callback();
373
+ }
374
+ }
375
+ changeLanguage(lang) {
376
+ this.changeLanguageEvent.emit(lang);
377
+ }
378
+ getColapsedFromLocalStorage() {
379
+ if (!this.domService.localStorage) {
380
+ return;
381
+ }
382
+ this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;
383
+ }
384
+ setColapsedFromLocalStorage() {
385
+ if (!this.domService.localStorage) {
386
+ return;
387
+ }
388
+ this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());
389
+ }
390
+ static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(MenuItemsService)); }; }
391
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName", supportedLanguages: "supportedLanguages" }, outputs: { changeLanguageEvent: "changeLanguageEvent" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$2, decls: 28, vars: 37, consts: [["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "no-click", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent", "matTooltip"], ["fxHide.gt-xs", "", 3, "ngClass.lt-sm"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], [3, "isCollapsed", "languages"], ["fxFlex", "", "fxLayout", "column"], [3, "linkCallbackEvent", "userOptions", "username", "collapsed"], [3, "changeLanguageEvent", "isCollapsed", "languages"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
392
+ i0.ɵɵprojectionDef();
393
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "a", 2);
394
+ i0.ɵɵpipe(3, "translate");
395
+ i0.ɵɵlistener("click", function SideNavMenuComponent_Template_a_click_2_listener($event) { return ctx.logoClick($event); });
396
+ i0.ɵɵelement(4, "img", 3);
397
+ i0.ɵɵelementStart(5, "span", 4);
398
+ i0.ɵɵtext(6);
399
+ i0.ɵɵelementEnd()();
400
+ i0.ɵɵelementStart(7, "button", 5);
401
+ i0.ɵɵpipe(8, "translate");
402
+ i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_7_listener() { return ctx.toggleCollapse(); });
403
+ i0.ɵɵelementStart(9, "mat-icon");
404
+ i0.ɵɵtext(10, "menu");
405
+ i0.ɵɵelementEnd()()()();
406
+ i0.ɵɵelementStart(11, "div", 6)(12, "div", 7)(13, "div", 8);
407
+ i0.ɵɵtemplate(14, SideNavMenuComponent_a_14_Template, 5, 9, "a", 9);
408
+ i0.ɵɵelementStart(15, "button", 10);
409
+ i0.ɵɵpipe(16, "translate");
410
+ i0.ɵɵpipe(17, "translate");
411
+ i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_15_listener() { return ctx.toggleCollapse(); });
412
+ i0.ɵɵelementStart(18, "mat-icon", 11);
413
+ i0.ɵɵtext(19, "close");
414
+ i0.ɵɵelementEnd();
415
+ i0.ɵɵelementStart(20, "mat-icon", 12);
416
+ i0.ɵɵtext(21);
417
+ i0.ɵɵelementEnd()()();
418
+ i0.ɵɵelementStart(22, "div", 13)(23, "menu-columns", 14);
419
+ i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_23_listener() { return ctx.toggleCollapse(); });
420
+ i0.ɵɵelementEnd();
421
+ i0.ɵɵtemplate(24, SideNavMenuComponent_Conditional_24_Template, 1, 2, "lib-menu-lang-switcher", 15);
422
+ i0.ɵɵelementEnd();
423
+ i0.ɵɵelementStart(25, "div", 16);
424
+ i0.ɵɵprojection(26);
425
+ i0.ɵɵelementEnd();
426
+ i0.ɵɵelementStart(27, "lib-menu-profile", 17);
427
+ i0.ɵɵlistener("linkCallbackEvent", function SideNavMenuComponent_Template_lib_menu_profile_linkCallbackEvent_27_listener($event) { return ctx.linkCallback($event); });
428
+ i0.ɵɵelementEnd()()();
429
+ } if (rf & 2) {
430
+ i0.ɵɵadvance();
431
+ i0.ɵɵproperty("fxHide", !ctx.collapsed);
432
+ i0.ɵɵadvance();
433
+ i0.ɵɵclassProp("no-click", ctx.menuSettings == null ? null : ctx.menuSettings.disableLogoNavigation);
434
+ i0.ɵɵproperty("libPlausibleEvent", ctx.LOGOCLICK_PLAUSIBLE_EVENT)("href", ctx.baseUrl, i0.ɵɵsanitizeUrl);
435
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3, 29, "MENU.ARIA_LABELS.LOGO"));
436
+ i0.ɵɵadvance(2);
437
+ i0.ɵɵproperty("src", ctx.menuLogoImage, i0.ɵɵsanitizeUrl);
438
+ i0.ɵɵadvance(2);
439
+ i0.ɵɵtextInterpolate1(" ", ctx.productName, " ");
440
+ i0.ɵɵadvance();
441
+ i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
442
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(8, 31, "ARIA_LABELS.MENU_TOGGLER"));
443
+ i0.ɵɵadvance(4);
444
+ i0.ɵɵstyleProp("width", ctx.sideNavWidth);
445
+ i0.ɵɵclassProp("collapsed", ctx.collapsed);
446
+ i0.ɵɵproperty("ngClass.lt-sm", "mobile");
447
+ i0.ɵɵadvance(2);
448
+ i0.ɵɵproperty("fxLayoutAlign", ctx.collapsed ? "center center" : "space-between center");
449
+ i0.ɵɵadvance();
450
+ i0.ɵɵproperty("ngIf", !ctx.collapsed);
451
+ i0.ɵɵadvance();
452
+ i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT)("matTooltip", i0.ɵɵpipeBind1(16, 33, ctx.collapsed ? "MENU.EXPAND" : "MENU.COLLAPSE"));
453
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(17, 35, "ARIA_LABELS.MENU_TOGGLER"));
454
+ i0.ɵɵadvance(3);
455
+ i0.ɵɵproperty("ngClass.lt-sm", "mob-close-icon");
456
+ i0.ɵɵadvance(3);
457
+ i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
458
+ i0.ɵɵadvance(2);
459
+ i0.ɵɵproperty("direction", ctx.direction)("isOpen", !ctx.collapsed)("active", ctx.active);
460
+ i0.ɵɵadvance();
461
+ i0.ɵɵconditional(ctx.supportedLanguages.length > 1 ? 24 : -1);
462
+ i0.ɵɵadvance(3);
463
+ i0.ɵɵproperty("userOptions", ctx.menuSettings.userOptions)("username", ctx.username)("collapsed", ctx.collapsed);
464
+ } }, styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.no-click[_ngcontent-%COMP%]{pointer-events:none!important}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}button[_ngcontent-%COMP%]:has(.mob-close-icon){margin-right:14px}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar{width:5px}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-track{background:var(--base-100)}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container[_ngcontent-%COMP%]{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .collapsed .profile-wrapper{margin:36px 0!important}[_nghost-%COMP%] .mobile .profile-name{max-width:60vw}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu, .cdk-overlay-container .lang-menu{min-width:250px!important;margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important}"] }); }
465
+ }
466
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
467
+ type: Component,
468
+ args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs [ngClass.lt-sm]=\"'mob-close-icon'\">close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n\r\n @if (supportedLanguages.length > 1) {\r\n <lib-menu-lang-switcher [isCollapsed]=\"collapsed\" [languages]=\"supportedLanguages\" (changeLanguageEvent)=\"changeLanguage($event)\"></lib-menu-lang-switcher>\r\n }\r\n </div>\r\n <div fxFlex fxLayout=\"column\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <lib-menu-profile\r\n [userOptions]=\"menuSettings.userOptions\"\r\n [username]=\"username\"\r\n [collapsed]=\"collapsed\"\r\n (linkCallbackEvent)=\"linkCallback($event)\"\r\n ></lib-menu-profile>\r\n</div>\r\n", styles: ["a{text-decoration:none}.no-click{pointer-events:none!important}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}button:has(.mob-close-icon){margin-right:14px}.menu-container ::-webkit-scrollbar{width:5px}.menu-container ::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container ::-webkit-scrollbar-track{background:var(--base-100)}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}:host ::ng-deep .collapsed .profile-wrapper{margin:36px 0!important}:host ::ng-deep .mobile .profile-name{max-width:60vw}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu,::ng-deep .cdk-overlay-container .lang-menu{min-width:250px!important;margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}\n"] }]
469
+ }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: MenuItemsService }], { username: [{
470
+ type: Input
471
+ }], menuSettings: [{
472
+ type: Input
473
+ }], productName: [{
474
+ type: Input
475
+ }], supportedLanguages: [{
476
+ type: Input
477
+ }], changeLanguageEvent: [{
478
+ type: Output
479
+ }] }); })();
480
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SideNavMenuComponent, { className: "SideNavMenuComponent", filePath: "lib\\components\\side-nav-menu\\side-nav-menu.component.ts", lineNumber: 15 }); })();
481
+
280
482
  var MenuLayoutDirection;
281
483
  (function (MenuLayoutDirection) {
282
484
  MenuLayoutDirection["column"] = "column";
@@ -322,7 +524,7 @@ class MenuIconComponent {
322
524
  i0.ɵɵtemplate(0, MenuIconComponent_ng_container_0_Template, 4, 2, "ng-container", 1);
323
525
  } if (rf & 2) {
324
526
  i0.ɵɵproperty("ngIf", ctx.menuItem.icon);
325
- } }, dependencies: [i4.NgIf, i2$1.MatIcon], styles: [".menu-icon[_ngcontent-%COMP%]{color:var(--base-30);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}"] }); }
527
+ } }, dependencies: [i3.NgIf, i2$1.MatIcon], styles: [".menu-icon[_ngcontent-%COMP%]{color:var(--base-30);margin:auto;min-width:24px;min-height:24px;max-width:24px;max-height:24px;vertical-align:middle}"] }); }
326
528
  }
327
529
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuIconComponent, [{
328
530
  type: Component,
@@ -394,7 +596,7 @@ class MenuItemLinkComponent {
394
596
  i0.ɵɵproperty("ngIf", ctx.showIcons && ctx.menuItem.icon);
395
597
  i0.ɵɵadvance();
396
598
  i0.ɵɵproperty("ngIf", ctx.labelsVisible);
397
- } }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i4.NgIf, i5.MatTooltip, i2.PlausibleEventDirective, MenuIconComponent, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.mobile[_ngcontent-%COMP%] .menu-item-title[_ngcontent-%COMP%]{margin-left:5px}"] }); }
599
+ } }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i3.NgIf, i5.MatTooltip, i2.PlausibleEventDirective, MenuIconComponent, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.mobile[_ngcontent-%COMP%] .menu-item-title[_ngcontent-%COMP%]{margin-left:5px}"] }); }
398
600
  }
399
601
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemLinkComponent, [{
400
602
  type: Component,
@@ -466,7 +668,7 @@ class MenuItemBtnComponent {
466
668
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 6, ctx.menuItem.title), " ");
467
669
  i0.ɵɵadvance(2);
468
670
  i0.ɵɵproperty("ngIf", ctx.menuItem.subMenu == null ? null : ctx.menuItem.subMenu.length);
469
- } }, dependencies: [i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i4.NgForOf, i4.NgIf, i2$1.MatIcon, i7.MatIconButton, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.menu-item[_ngcontent-%COMP%]:not(:hover) .sub-menu-btn[_ngcontent-%COMP%]{display:none}.menu-item[_ngcontent-%COMP%]:has(.open){background-color:var(--base-95)!important}.open[_ngcontent-%COMP%] .sub-menu-btn[_ngcontent-%COMP%]{display:block!important}.mobile[_ngcontent-%COMP%] .btn-label[_ngcontent-%COMP%]{margin-left:5px}.btn-label[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px;letter-spacing:.1px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"] }); }
671
+ } }, dependencies: [i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i3.NgForOf, i3.NgIf, i2$1.MatIcon, i7.MatIconButton, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%}.menu-item[_ngcontent-%COMP%]:not(:hover) .sub-menu-btn[_ngcontent-%COMP%]{display:none}.menu-item[_ngcontent-%COMP%]:has(.open){background-color:var(--base-95)!important}.open[_ngcontent-%COMP%] .sub-menu-btn[_ngcontent-%COMP%]{display:block!important}.mobile[_ngcontent-%COMP%] .btn-label[_ngcontent-%COMP%]{margin-left:5px}.btn-label[_ngcontent-%COMP%]{font-size:14px;font-weight:500;line-height:20px;letter-spacing:.1px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"] }); }
470
672
  }
471
673
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemBtnComponent, [{
472
674
  type: Component,
@@ -726,11 +928,11 @@ class MenuItemListComponent {
726
928
  i0.ɵɵproperty("fxLayoutAlign", ctx.menuLayoutDirection);
727
929
  i0.ɵɵadvance();
728
930
  i0.ɵɵproperty("ngForOf", ctx.items);
729
- } }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutGapDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i1$1.RouterLink, i4.NgForOf, i4.NgIf, i4.NgTemplateOutlet, i5.MatTooltip, i2$1.MatIcon, i7.MatButton, i7.MatIconButton, MenuItemListComponent, MenuIconComponent, MenuItemLinkComponent, MenuItemBtnComponent, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{display:inline-block} .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important} .collapsed .menu-list-wrapper, .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important} .collapsed .menu-item{display:flex!important;place-content:center center!important} .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button[_ngcontent-%COMP%]{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}[_nghost-%COMP%] .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}[_nghost-%COMP%] .menu-list-wrapper .menu-item:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}[_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item mat-icon, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item:hover{font-weight:600}[_nghost-%COMP%] .menu-list-wrapper .menu-item span{display:inline-block}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;align-items:start;width:100%}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}[_nghost-%COMP%] .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}.child-list[_nghost-%COMP%]{margin-bottom:1rem}.child-list[_nghost-%COMP%] .menu-item[_ngcontent-%COMP%] + .menu-item[_ngcontent-%COMP%]{margin-top:.5rem} .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} .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-title[_ngcontent-%COMP%]{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title[_ngcontent-%COMP%]:has(.menu-title-btn){margin-left:0}.menu-item-list[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s forwards}.menu-title-btn[_ngcontent-%COMP%]{margin-right:2px;transition:opacity .3s}@keyframes _ngcontent-%COMP%_slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}"] }); }
931
+ } }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutGapDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i1$1.RouterLink, i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i5.MatTooltip, i2$1.MatIcon, i7.MatButton, i7.MatIconButton, MenuItemListComponent, MenuIconComponent, MenuItemLinkComponent, MenuItemBtnComponent, i8.TranslatePipe], styles: ["[_nghost-%COMP%]{display:inline-block} .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important} .collapsed .menu-list-wrapper, .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important} .collapsed .menu-item{display:flex!important;place-content:center center!important} .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button[_ngcontent-%COMP%]{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}[_nghost-%COMP%] .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}[_nghost-%COMP%] .menu-list-wrapper .menu-item:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}[_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item mat-icon, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item:hover{font-weight:600}[_nghost-%COMP%] .menu-list-wrapper .menu-item span{display:inline-block}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;align-items:start;width:100%}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title .title-content{display:block}[_nghost-%COMP%] .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}.child-list[_nghost-%COMP%]{margin-bottom:1rem}.child-list[_nghost-%COMP%] .menu-item[_ngcontent-%COMP%] + .menu-item[_ngcontent-%COMP%]{margin-top:.5rem} .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} .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-title[_ngcontent-%COMP%]{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title[_ngcontent-%COMP%]:has(.menu-title-btn){margin-left:0} lib-menu-lang-switcher, .menu-item-list[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s forwards} lib-menu-lang-switcher, .menu-title-btn[_ngcontent-%COMP%]{margin-right:2px;transition:opacity .3s}@keyframes _ngcontent-%COMP%_slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}"] }); }
730
932
  }
731
933
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemListComponent, [{
732
934
  type: Component,
733
- args: [{ selector: 'menu-item-list', template: "<div class=\"menu-list-wrapper\">\r\n @if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n <div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n <mat-icon class=\"menu-title-btn\" *ngIf=\"menuItemGroup.titleIcon\">{{menuItemGroup.titleIcon}}</mat-icon>\r\n \r\n <button class=\"menu-title-btn\" *ngIf=\"menuItemGroup.titleNavigation\" mat-icon-button [routerLink]=\"menuItemGroup.titleNavigation.path\" [matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\">\r\n <mat-icon>{{menuItemGroup.titleNavigation.icon}}</mat-icon>\r\n </button>\r\n \r\n {{ titleKey | translate }}\r\n </div>\r\n } @else if (menuItemGroup?.itemGroupClick) {\r\n <ng-container *ngTemplateOutlet=\"itemGroupButton\">\r\n </ng-container>\r\n }\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=\"!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : 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 [attr.id]=\"menuItem.customId\" [ngClass.lt-md]=\"'mob-menu-item'\" [fxLayout]=\"menuItemLayout\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\" [class.menu-labels-visible]=\"labelsVisible\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"activeItem?.link && 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 <ng-container *ngIf=\"labelsVisible\">\r\n <span class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n {{ menuItem.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}\r\n </span>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"menuItem.showChildren && menuItem.expanded && labelsVisible\">\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\">\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>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n <lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\"\r\n [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n <button \r\n class=\"menu-title-btn menu-action-button\"\r\n mat-button\r\n *ngIf=\"menuItemGroup && labelsVisible\"\r\n (click)=\"menuItemGroup?.itemGroupClick()\"\r\n >\r\n <mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n <span class=\"btn-label\" *ngIf=\"titleKey\">\r\n {{ titleKey | translate }}\r\n </span>\r\n </button>\r\n\r\n <button \r\n mat-icon-button\r\n *ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n (click)=\"menuItemGroup?.itemGroupClick()\"\r\n [matTooltip]=\"titleKey | translate\"\r\n matTooltipPosition=\"after\"\r\n >\r\n <mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n </button>\r\n</ng-template>", styles: [":host{display:inline-block}::ng-deep .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important}::ng-deep .collapsed .menu-list-wrapper,::ng-deep .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important}::ng-deep .collapsed .menu-item{display:flex!important;place-content:center center!important}::ng-deep .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}: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:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}: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{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;align-items:start;width:100%}: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-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-title{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title:has(.menu-title-btn){margin-left:0}.menu-item-list{animation:slide-in .3s forwards}.menu-title-btn{margin-right:2px;transition:opacity .3s}@keyframes slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}\n"] }]
935
+ args: [{ selector: 'menu-item-list', template: "<div class=\"menu-list-wrapper\">\r\n @if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n <div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n <mat-icon class=\"menu-title-btn\" *ngIf=\"menuItemGroup.titleIcon\">{{menuItemGroup.titleIcon}}</mat-icon>\r\n \r\n <button class=\"menu-title-btn\" *ngIf=\"menuItemGroup.titleNavigation\" mat-icon-button [routerLink]=\"menuItemGroup.titleNavigation.path\" [matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\">\r\n <mat-icon>{{menuItemGroup.titleNavigation.icon}}</mat-icon>\r\n </button>\r\n \r\n {{ titleKey | translate }}\r\n </div>\r\n } @else if (menuItemGroup?.itemGroupClick) {\r\n <ng-container *ngTemplateOutlet=\"itemGroupButton\">\r\n </ng-container>\r\n }\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=\"!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : 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 [attr.id]=\"menuItem.customId\" [ngClass.lt-md]=\"'mob-menu-item'\" [fxLayout]=\"menuItemLayout\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\" [class.menu-labels-visible]=\"labelsVisible\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"activeItem?.link && 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 <ng-container *ngIf=\"labelsVisible\">\r\n <span class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n {{ menuItem.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}\r\n </span>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"menuItem.showChildren && menuItem.expanded && labelsVisible\">\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\">\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>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n <lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\"\r\n [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n <button \r\n class=\"menu-title-btn menu-action-button\"\r\n mat-button\r\n *ngIf=\"menuItemGroup && labelsVisible\"\r\n (click)=\"menuItemGroup?.itemGroupClick()\"\r\n >\r\n <mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n <span class=\"btn-label\" *ngIf=\"titleKey\">\r\n {{ titleKey | translate }}\r\n </span>\r\n </button>\r\n\r\n <button \r\n mat-icon-button\r\n *ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n (click)=\"menuItemGroup?.itemGroupClick()\"\r\n [matTooltip]=\"titleKey | translate\"\r\n matTooltipPosition=\"after\"\r\n >\r\n <mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n </button>\r\n</ng-template>", styles: [":host{display:inline-block}::ng-deep .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important}::ng-deep .collapsed .menu-list-wrapper,::ng-deep .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important}::ng-deep .collapsed .menu-item{display:flex!important;place-content:center center!important}::ng-deep .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}: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:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}: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{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;align-items:start;width:100%}: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-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-title{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title:has(.menu-title-btn){margin-left:0}::ng-deep lib-menu-lang-switcher,.menu-item-list{animation:slide-in .3s forwards}::ng-deep lib-menu-lang-switcher,.menu-title-btn{margin-right:2px;transition:opacity .3s}@keyframes slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}\n"] }]
734
936
  }], null, { direction: [{
735
937
  type: Input
736
938
  }], labelsVisible: [{
@@ -823,7 +1025,7 @@ class MenuColumnsComponent {
823
1025
  i0.ɵɵtemplate(0, MenuColumnsComponent_ng_container_0_Template, 3, 2, "ng-container", 0);
824
1026
  } if (rf & 2) {
825
1027
  i0.ɵɵproperty("ngForOf", ctx.mergedGroups);
826
- } }, dependencies: [i4.NgForOf, i4.NgIf, i4$1.MatDivider, MenuItemListComponent], styles: ["[_nghost-%COMP%]{display:inline-block}[_nghost-%COMP%] menu-item-list[_ngcontent-%COMP%]{display:block}.divider[_ngcontent-%COMP%]{margin:10px 0}"] }); }
1028
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatDivider, MenuItemListComponent], styles: ["[_nghost-%COMP%]{display:inline-block}[_nghost-%COMP%] menu-item-list[_ngcontent-%COMP%]{display:block}.divider[_ngcontent-%COMP%]{margin:10px 0}"] }); }
827
1029
  }
828
1030
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuColumnsComponent, [{
829
1031
  type: Component,
@@ -844,245 +1046,151 @@ class MenuColumnsComponent {
844
1046
  }] }); })();
845
1047
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuColumnsComponent, { className: "MenuColumnsComponent", filePath: "lib\\components\\menu-columns\\menu-columns.component.ts", lineNumber: 16 }); })();
846
1048
 
847
- const _c0 = ["*"];
848
1049
  const _forTrack0 = ($index, $item) => $item.label;
849
- const _c1 = (a0, a1) => ({ icon: a0, label: a1 });
850
- function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
851
- const _r2 = i0.ɵɵgetCurrentView();
852
- i0.ɵɵelementStart(0, "a", 6);
853
- i0.ɵɵpipe(1, "translate");
854
- i0.ɵɵlistener("click", function SideNavMenuComponent_a_14_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.logoClick($event)); });
855
- i0.ɵɵelement(2, "img", 7);
856
- i0.ɵɵelementStart(3, "span", 8);
857
- i0.ɵɵtext(4);
858
- i0.ɵɵelementEnd()();
859
- } if (rf & 2) {
860
- const ctx_r2 = i0.ɵɵnextContext();
861
- i0.ɵɵclassProp("no-click", ctx_r2.menuSettings == null ? null : ctx_r2.menuSettings.disableLogoNavigation);
862
- i0.ɵɵproperty("libPlausibleEvent", ctx_r2.LOGOCLICK_PLAUSIBLE_EVENT)("href", ctx_r2.baseUrl, i0.ɵɵsanitizeUrl);
863
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(1, 7, "MENU.ARIA_LABELS.LOGO"));
864
- i0.ɵɵadvance(2);
865
- i0.ɵɵproperty("src", ctx_r2.menuLogoImage, i0.ɵɵsanitizeUrl);
866
- i0.ɵɵadvance(2);
867
- i0.ɵɵtextInterpolate1(" ", ctx_r2.productName, " ");
868
- } }
869
- function SideNavMenuComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1050
+ const _c0 = (a0, a1) => ({ icon: a0, label: a1 });
1051
+ function MenuProfileComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
870
1052
  i0.ɵɵtext(0);
871
1053
  } if (rf & 2) {
872
- const ctx_r2 = i0.ɵɵnextContext();
873
- i0.ɵɵtextInterpolate1(" ", ctx_r2.userInitials, " ");
1054
+ const ctx_r0 = i0.ɵɵnextContext();
1055
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.userInitials, " ");
874
1056
  } }
875
- function SideNavMenuComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
1057
+ function MenuProfileComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
876
1058
  i0.ɵɵelementStart(0, "mat-icon");
877
1059
  i0.ɵɵtext(1, "person");
878
1060
  i0.ɵɵelementEnd();
879
1061
  } }
880
- function SideNavMenuComponent_ng_container_32_mat_icon_4_Template(rf, ctx) { if (rf & 1) {
881
- i0.ɵɵelementStart(0, "mat-icon", 26);
882
- i0.ɵɵtext(1);
1062
+ function MenuProfileComponent_ng_container_6_mat_icon_4_Template(rf, ctx) { if (rf & 1) {
1063
+ i0.ɵɵelementStart(0, "mat-icon", 11);
1064
+ i0.ɵɵtext(1, "keyboard_arrow_down");
883
1065
  i0.ɵɵelementEnd();
884
- } if (rf & 2) {
885
- i0.ɵɵadvance();
886
- i0.ɵɵtextInterpolate("keyboard_arrow_down");
887
1066
  } }
888
- function SideNavMenuComponent_ng_container_32_ng_template_5_Template(rf, ctx) { if (rf & 1) {
889
- i0.ɵɵelementStart(0, "mat-icon", 26);
890
- i0.ɵɵtext(1);
1067
+ function MenuProfileComponent_ng_container_6_ng_template_5_Template(rf, ctx) { if (rf & 1) {
1068
+ i0.ɵɵelementStart(0, "mat-icon", 11);
1069
+ i0.ɵɵtext(1, "keyboard_arrow_up");
891
1070
  i0.ɵɵelementEnd();
892
- } if (rf & 2) {
893
- i0.ɵɵadvance();
894
- i0.ɵɵtextInterpolate("keyboard_arrow_up");
895
1071
  } }
896
- function SideNavMenuComponent_ng_container_32_Template(rf, ctx) { if (rf & 1) {
1072
+ function MenuProfileComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
897
1073
  i0.ɵɵelementContainerStart(0);
898
- i0.ɵɵelementStart(1, "span", 24);
1074
+ i0.ɵɵelementStart(1, "span", 9);
899
1075
  i0.ɵɵtext(2);
900
1076
  i0.ɵɵpipe(3, "translate");
901
1077
  i0.ɵɵelementEnd();
902
- i0.ɵɵtemplate(4, SideNavMenuComponent_ng_container_32_mat_icon_4_Template, 2, 1, "mat-icon", 25)(5, SideNavMenuComponent_ng_container_32_ng_template_5_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
1078
+ i0.ɵɵtemplate(4, MenuProfileComponent_ng_container_6_mat_icon_4_Template, 2, 0, "mat-icon", 10)(5, MenuProfileComponent_ng_container_6_ng_template_5_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
903
1079
  i0.ɵɵelementContainerEnd();
904
1080
  } if (rf & 2) {
905
1081
  let tmp_5_0;
906
- const iconDown_r4 = i0.ɵɵreference(6);
907
- const ctx_r2 = i0.ɵɵnextContext();
908
- const state_r5 = i0.ɵɵreference(28);
1082
+ const iconDown_r2 = i0.ɵɵreference(6);
1083
+ const ctx_r0 = i0.ɵɵnextContext();
1084
+ const state_r3 = i0.ɵɵreference(2);
909
1085
  i0.ɵɵadvance(2);
910
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, (tmp_5_0 = ctx_r2.username) !== null && tmp_5_0 !== undefined ? tmp_5_0 : "MENU.ANONYMOUS"), " ");
1086
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, (tmp_5_0 = ctx_r0.username) !== null && tmp_5_0 !== undefined ? tmp_5_0 : "MENU.ANONYMOUS"), " ");
911
1087
  i0.ɵɵadvance(2);
912
- i0.ɵɵproperty("ngIf", state_r5.menuOpen)("ngIfElse", iconDown_r4);
1088
+ i0.ɵɵproperty("ngIf", state_r3.menuOpen)("ngIfElse", iconDown_r2);
913
1089
  } }
914
- function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
1090
+ function MenuProfileComponent_For_10_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
915
1091
  i0.ɵɵelementContainer(0);
916
1092
  } }
917
- function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
918
- const _r6 = i0.ɵɵgetCurrentView();
919
- i0.ɵɵelementStart(0, "a", 30);
920
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r6); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
921
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 31);
1093
+ function MenuProfileComponent_For_10_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1094
+ const _r4 = i0.ɵɵgetCurrentView();
1095
+ i0.ɵɵelementStart(0, "a", 15);
1096
+ i0.ɵɵlistener("click", function MenuProfileComponent_For_10_Conditional_0_Conditional_0_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r4); const item_r5 = i0.ɵɵnextContext(2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.linkCallback(item_r5.link)); });
1097
+ i0.ɵɵtemplate(1, MenuProfileComponent_For_10_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 16);
922
1098
  i0.ɵɵelementEnd();
923
1099
  } if (rf & 2) {
924
- const item_r7 = i0.ɵɵnextContext(2).$implicit;
1100
+ const item_r5 = i0.ɵɵnextContext(2).$implicit;
925
1101
  i0.ɵɵnextContext();
926
- const profileMenuItem_r8 = i0.ɵɵreference(38);
927
- i0.ɵɵproperty("href", item_r7.link.href, i0.ɵɵsanitizeUrl);
1102
+ const profileMenuItem_r6 = i0.ɵɵreference(12);
1103
+ i0.ɵɵproperty("href", item_r5.link.href, i0.ɵɵsanitizeUrl);
928
1104
  i0.ɵɵadvance();
929
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c1, item_r7.icon, item_r7.label));
1105
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r5.icon, item_r5.label));
930
1106
  } }
931
- function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
1107
+ function MenuProfileComponent_For_10_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
932
1108
  i0.ɵɵelementContainer(0);
933
1109
  } }
934
- function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
935
- const _r9 = i0.ɵɵgetCurrentView();
936
- i0.ɵɵelementStart(0, "a", 32);
937
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
938
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 31);
1110
+ function MenuProfileComponent_For_10_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1111
+ const _r7 = i0.ɵɵgetCurrentView();
1112
+ i0.ɵɵelementStart(0, "a", 17);
1113
+ i0.ɵɵlistener("click", function MenuProfileComponent_For_10_Conditional_0_Conditional_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r7); const item_r5 = i0.ɵɵnextContext(2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.linkCallback(item_r5.link)); });
1114
+ i0.ɵɵtemplate(1, MenuProfileComponent_For_10_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 16);
939
1115
  i0.ɵɵelementEnd();
940
1116
  } if (rf & 2) {
941
- const item_r7 = i0.ɵɵnextContext(2).$implicit;
1117
+ const item_r5 = i0.ɵɵnextContext(2).$implicit;
942
1118
  i0.ɵɵnextContext();
943
- const profileMenuItem_r8 = i0.ɵɵreference(38);
944
- i0.ɵɵproperty("routerLink", item_r7.link.href);
1119
+ const profileMenuItem_r6 = i0.ɵɵreference(12);
1120
+ i0.ɵɵproperty("routerLink", item_r5.link.href);
945
1121
  i0.ɵɵadvance();
946
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c1, item_r7.icon, item_r7.label));
1122
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r5.icon, item_r5.label));
947
1123
  } }
948
- function SideNavMenuComponent_For_36_Conditional_0_Template(rf, ctx) { if (rf & 1) {
949
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template, 2, 6, "a", 28)(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template, 2, 6, "a", 29);
1124
+ function MenuProfileComponent_For_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1125
+ i0.ɵɵtemplate(0, MenuProfileComponent_For_10_Conditional_0_Conditional_0_Template, 2, 6, "a", 13)(1, MenuProfileComponent_For_10_Conditional_0_Conditional_1_Template, 2, 6, "a", 14);
950
1126
  } if (rf & 2) {
951
- const item_r7 = i0.ɵɵnextContext().$implicit;
952
- i0.ɵɵconditional(item_r7.link.isExternal ? 0 : 1);
1127
+ const item_r5 = i0.ɵɵnextContext().$implicit;
1128
+ i0.ɵɵconditional(item_r5.link.isExternal ? 0 : 1);
953
1129
  } }
954
- function SideNavMenuComponent_For_36_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
1130
+ function MenuProfileComponent_For_10_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
955
1131
  i0.ɵɵelementContainer(0);
956
1132
  } }
957
- function SideNavMenuComponent_For_36_Conditional_1_Template(rf, ctx) { if (rf & 1) {
958
- const _r10 = i0.ɵɵgetCurrentView();
959
- i0.ɵɵelementStart(0, "button", 33);
960
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7.button == null ? null : item_r7.button.callback()); });
961
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 31);
1133
+ function MenuProfileComponent_For_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1134
+ const _r8 = i0.ɵɵgetCurrentView();
1135
+ i0.ɵɵelementStart(0, "button", 18);
1136
+ i0.ɵɵlistener("click", function MenuProfileComponent_For_10_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const item_r5 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r5.button == null ? null : item_r5.button.callback()); });
1137
+ i0.ɵɵtemplate(1, MenuProfileComponent_For_10_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 16);
962
1138
  i0.ɵɵelementEnd();
963
1139
  } if (rf & 2) {
964
- const item_r7 = i0.ɵɵnextContext().$implicit;
1140
+ const item_r5 = i0.ɵɵnextContext().$implicit;
965
1141
  i0.ɵɵnextContext();
966
- const profileMenuItem_r8 = i0.ɵɵreference(38);
1142
+ const profileMenuItem_r6 = i0.ɵɵreference(12);
967
1143
  i0.ɵɵadvance();
968
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, item_r7.icon, item_r7.label));
1144
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c0, item_r5.icon, item_r5.label));
969
1145
  } }
970
- function SideNavMenuComponent_For_36_Template(rf, ctx) { if (rf & 1) {
971
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_36_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_36_Conditional_1_Template, 2, 5, "button", 27);
1146
+ function MenuProfileComponent_For_10_Template(rf, ctx) { if (rf & 1) {
1147
+ i0.ɵɵtemplate(0, MenuProfileComponent_For_10_Conditional_0_Template, 2, 1)(1, MenuProfileComponent_For_10_Conditional_1_Template, 2, 5, "button", 12);
972
1148
  } if (rf & 2) {
973
- const item_r7 = ctx.$implicit;
974
- i0.ɵɵconditional(item_r7.link ? 0 : 1);
1149
+ const item_r5 = ctx.$implicit;
1150
+ i0.ɵɵconditional(item_r5.link ? 0 : 1);
975
1151
  } }
976
- function SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
977
- i0.ɵɵelementStart(0, "span", 36);
1152
+ function MenuProfileComponent_ng_template_11_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1153
+ i0.ɵɵelementStart(0, "span", 21);
978
1154
  i0.ɵɵtext(1);
979
1155
  i0.ɵɵelementEnd();
980
1156
  } if (rf & 2) {
981
- const icon_r11 = i0.ɵɵnextContext(2).icon;
982
- i0.ɵɵclassProp("material-icons-outlined", icon_r11 == null ? null : icon_r11.isOutlined);
1157
+ const icon_r9 = i0.ɵɵnextContext(2).icon;
1158
+ i0.ɵɵclassProp("material-icons-outlined", icon_r9 == null ? null : icon_r9.isOutlined);
983
1159
  i0.ɵɵadvance();
984
- i0.ɵɵtextInterpolate1(" ", icon_r11 == null ? null : icon_r11.name, " ");
1160
+ i0.ɵɵtextInterpolate1(" ", icon_r9 == null ? null : icon_r9.name, " ");
985
1161
  } }
986
- function SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
987
- i0.ɵɵelement(0, "mat-icon", 35);
1162
+ function MenuProfileComponent_ng_template_11_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1163
+ i0.ɵɵelement(0, "mat-icon", 20);
988
1164
  } if (rf & 2) {
989
- const icon_r11 = i0.ɵɵnextContext(2).icon;
990
- i0.ɵɵproperty("svgIcon", icon_r11 == null ? null : icon_r11.name);
1165
+ const icon_r9 = i0.ɵɵnextContext(2).icon;
1166
+ i0.ɵɵproperty("svgIcon", icon_r9 == null ? null : icon_r9.name);
991
1167
  } }
992
- function SideNavMenuComponent_ng_template_37_Conditional_0_Template(rf, ctx) { if (rf & 1) {
993
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_0_Template, 2, 3, "span", 34)(1, SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 35);
1168
+ function MenuProfileComponent_ng_template_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1169
+ i0.ɵɵtemplate(0, MenuProfileComponent_ng_template_11_Conditional_0_Conditional_0_Template, 2, 3, "span", 19)(1, MenuProfileComponent_ng_template_11_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 20);
994
1170
  } if (rf & 2) {
995
- const icon_r11 = i0.ɵɵnextContext().icon;
996
- i0.ɵɵconditional(!(icon_r11 == null ? null : icon_r11.isCustom) ? 0 : 1);
1171
+ const icon_r9 = i0.ɵɵnextContext().icon;
1172
+ i0.ɵɵconditional(!(icon_r9 == null ? null : icon_r9.isCustom) ? 0 : 1);
997
1173
  } }
998
- function SideNavMenuComponent_ng_template_37_Template(rf, ctx) { if (rf & 1) {
999
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_37_Conditional_0_Template, 2, 1);
1174
+ function MenuProfileComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
1175
+ i0.ɵɵtemplate(0, MenuProfileComponent_ng_template_11_Conditional_0_Template, 2, 1);
1000
1176
  i0.ɵɵtext(1);
1001
1177
  i0.ɵɵpipe(2, "translate");
1002
1178
  } if (rf & 2) {
1003
- const icon_r11 = ctx.icon;
1004
- const label_r12 = ctx.label;
1005
- i0.ɵɵconditional(icon_r11 ? 0 : -1);
1179
+ const icon_r9 = ctx.icon;
1180
+ const label_r10 = ctx.label;
1181
+ i0.ɵɵconditional(icon_r9 ? 0 : -1);
1006
1182
  i0.ɵɵadvance();
1007
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, label_r12), " ");
1183
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, label_r10), "\n");
1008
1184
  } }
1009
- class SideNavMenuComponent extends NavBaseComponent {
1010
- #username;
1011
- get username() { return this.#username; }
1012
- set username(value) {
1013
- // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.
1014
- this.#username = value?.trim();
1015
- this.setUserInitials();
1016
- }
1017
- get menuLogoImage() {
1018
- return this.collapsed
1019
- ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo
1020
- : this.menuSettings.menuLogo;
1021
- }
1022
- get sideNavWidth() {
1023
- return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;
1024
- }
1025
- constructor(strapiLinkService, domService, menuItems) {
1026
- super(menuItems);
1027
- this.strapiLinkService = strapiLinkService;
1028
- this.domService = domService;
1029
- this.menuItems = menuItems;
1030
- this.menuSettings = {
1031
- expandedWidth: '241px',
1032
- collapsedWidth: '56px',
1033
- menuLogo: '',
1034
- menuLogoCollapsed: '',
1035
- disableStrapi: false,
1036
- disableLogoNavigation: false
1037
- };
1038
- this.collapsed = false;
1039
- this.COLLAPSED_LOCAL_STORAGE_KEY = "TLD_MENU_SIDE_NAV_COLLAPSED";
1040
- //#region Plausible event variables for collapse button
1041
- this.COLLAPSE_PLAUSIBLE_EVENT_ID = "collapseMenu";
1042
- this.COLLAPSE_PLAUSIBLE_ACTION_KEY = "action";
1043
- this.LOGOCLICK_PLAUSIBLE_ACTION_ID = "tilde_logo_click";
1044
- this.LOGOCLICK_PLAUSIBLE_EVENT = {
1045
- eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,
1046
- properties: []
1047
- };
1048
- this.EXPAND_PLAUSIBLE_EVENT = {
1049
- eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
1050
- properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "expand" }]
1051
- };
1052
- this.COLLAPSE_PLAUSIBLE_EVENT = {
1053
- eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,
1054
- properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: "collapse" }]
1055
- };
1056
- this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';
1185
+ class MenuProfileComponent {
1186
+ constructor() {
1187
+ this.linkCallbackEvent = new EventEmitter();
1057
1188
  }
1058
1189
  ngOnInit() {
1059
- super.ngOnInit();
1060
- this.getColapsedFromLocalStorage();
1061
1190
  this.setUserInitials();
1062
1191
  }
1063
- logoClick(event) {
1064
- this.strapiLinkService.strapiLinkClick(event);
1065
- }
1066
- toggleCollapse() {
1067
- this.collapsed = !this.collapsed;
1068
- this.setColapsedFromLocalStorage();
1069
- }
1070
1192
  linkCallback(link) {
1071
- if (link.callback) {
1072
- link.callback();
1073
- }
1074
- }
1075
- getColapsedFromLocalStorage() {
1076
- if (!this.domService.localStorage) {
1077
- return;
1078
- }
1079
- this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;
1080
- }
1081
- setColapsedFromLocalStorage() {
1082
- if (!this.domService.localStorage) {
1083
- return;
1084
- }
1085
- this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());
1193
+ this.linkCallbackEvent.emit(link);
1086
1194
  }
1087
1195
  setUserInitials() {
1088
1196
  if (!this.username) {
@@ -1098,102 +1206,141 @@ class SideNavMenuComponent extends NavBaseComponent {
1098
1206
  // If there are more than one word, use the first letter of the first two names
1099
1207
  this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];
1100
1208
  }
1101
- static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(MenuItemsService)); }; }
1102
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 39, vars: 35, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["profileMenuItem", ""], ["iconDown", ""], ["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "no-click", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent", "matTooltip"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], ["fxFlex", "", "fxLayout", "column"], [1, "profile"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-menu"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "click", "href"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-mdc-menu-item", 3, "click", "routerLink"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
1103
- const _r1 = i0.ɵɵgetCurrentView();
1104
- i0.ɵɵprojectionDef();
1105
- i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "a", 6);
1106
- i0.ɵɵpipe(3, "translate");
1107
- i0.ɵɵlistener("click", function SideNavMenuComponent_Template_a_click_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.logoClick($event)); });
1108
- i0.ɵɵelement(4, "img", 7);
1109
- i0.ɵɵelementStart(5, "span", 8);
1110
- i0.ɵɵtext(6);
1111
- i0.ɵɵelementEnd()();
1112
- i0.ɵɵelementStart(7, "button", 9);
1113
- i0.ɵɵpipe(8, "translate");
1114
- i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
1115
- i0.ɵɵelementStart(9, "mat-icon");
1116
- i0.ɵɵtext(10, "menu");
1117
- i0.ɵɵelementEnd()()()();
1118
- i0.ɵɵelementStart(11, "div", 10)(12, "div", 11)(13, "div", 12);
1119
- i0.ɵɵtemplate(14, SideNavMenuComponent_a_14_Template, 5, 9, "a", 13);
1120
- i0.ɵɵelementStart(15, "button", 14);
1121
- i0.ɵɵpipe(16, "translate");
1122
- i0.ɵɵpipe(17, "translate");
1123
- i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
1124
- i0.ɵɵelementStart(18, "mat-icon", 4);
1125
- i0.ɵɵtext(19, "close");
1126
- i0.ɵɵelementEnd();
1127
- i0.ɵɵelementStart(20, "mat-icon", 15);
1128
- i0.ɵɵtext(21);
1129
- i0.ɵɵelementEnd()()();
1130
- i0.ɵɵelementStart(22, "div", 16)(23, "menu-columns", 17);
1131
- i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_23_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
1132
- i0.ɵɵelementEnd()();
1133
- i0.ɵɵelementStart(24, "div", 18);
1134
- i0.ɵɵprojection(25);
1135
- i0.ɵɵelementEnd();
1136
- i0.ɵɵelementStart(26, "div", 19)(27, "button", 20, 0)(29, "div", 21);
1137
- i0.ɵɵtemplate(30, SideNavMenuComponent_Conditional_30_Template, 1, 1)(31, SideNavMenuComponent_Conditional_31_Template, 2, 0, "mat-icon");
1209
+ static { this.ɵfac = function MenuProfileComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuProfileComponent)(); }; }
1210
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuProfileComponent, selectors: [["lib-menu-profile"]], inputs: { collapsed: "collapsed", username: "username", userOptions: "userOptions" }, outputs: { linkCallbackEvent: "linkCallbackEvent" }, decls: 13, vars: 3, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["profileMenuItem", ""], ["iconDown", ""], [1, "profile"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-menu"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "click", "href"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-mdc-menu-item", 3, "click", "routerLink"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function MenuProfileComponent_Template(rf, ctx) { if (rf & 1) {
1211
+ i0.ɵɵelementStart(0, "div", 4)(1, "button", 5, 0)(3, "div", 6);
1212
+ i0.ɵɵtemplate(4, MenuProfileComponent_Conditional_4_Template, 1, 1)(5, MenuProfileComponent_Conditional_5_Template, 2, 0, "mat-icon");
1138
1213
  i0.ɵɵelementEnd();
1139
- i0.ɵɵtemplate(32, SideNavMenuComponent_ng_container_32_Template, 7, 5, "ng-container", 22);
1214
+ i0.ɵɵtemplate(6, MenuProfileComponent_ng_container_6_Template, 7, 5, "ng-container", 7);
1140
1215
  i0.ɵɵelementEnd();
1141
- i0.ɵɵelementStart(33, "mat-menu", 23, 1);
1142
- i0.ɵɵrepeaterCreate(35, SideNavMenuComponent_For_36_Template, 2, 1, null, null, _forTrack0);
1143
- i0.ɵɵelementEnd()();
1144
- i0.ɵɵtemplate(37, SideNavMenuComponent_ng_template_37_Template, 3, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
1216
+ i0.ɵɵelementStart(7, "mat-menu", 8, 1);
1217
+ i0.ɵɵrepeaterCreate(9, MenuProfileComponent_For_10_Template, 2, 1, null, null, _forTrack0);
1145
1218
  i0.ɵɵelementEnd()();
1219
+ i0.ɵɵtemplate(11, MenuProfileComponent_ng_template_11_Template, 3, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
1146
1220
  } if (rf & 2) {
1147
- const menu_r13 = i0.ɵɵreference(34);
1148
- i0.ɵɵadvance();
1149
- i0.ɵɵproperty("fxHide", !ctx.collapsed);
1150
- i0.ɵɵadvance();
1151
- i0.ɵɵclassProp("no-click", ctx.menuSettings == null ? null : ctx.menuSettings.disableLogoNavigation);
1152
- i0.ɵɵproperty("libPlausibleEvent", ctx.LOGOCLICK_PLAUSIBLE_EVENT)("href", ctx.baseUrl, i0.ɵɵsanitizeUrl);
1153
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(3, 27, "MENU.ARIA_LABELS.LOGO"));
1154
- i0.ɵɵadvance(2);
1155
- i0.ɵɵproperty("src", ctx.menuLogoImage, i0.ɵɵsanitizeUrl);
1156
- i0.ɵɵadvance(2);
1157
- i0.ɵɵtextInterpolate1(" ", ctx.productName, " ");
1158
- i0.ɵɵadvance();
1159
- i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
1160
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(8, 29, "ARIA_LABELS.MENU_TOGGLER"));
1161
- i0.ɵɵadvance(4);
1162
- i0.ɵɵstyleProp("width", ctx.sideNavWidth);
1163
- i0.ɵɵclassProp("collapsed", ctx.collapsed);
1164
- i0.ɵɵproperty("ngClass.lt-sm", "mobile");
1165
- i0.ɵɵadvance(2);
1166
- i0.ɵɵproperty("fxLayoutAlign", ctx.collapsed ? "center center" : "space-between center");
1167
- i0.ɵɵadvance();
1168
- i0.ɵɵproperty("ngIf", !ctx.collapsed);
1221
+ const menu_r11 = i0.ɵɵreference(8);
1169
1222
  i0.ɵɵadvance();
1170
- i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT)("matTooltip", i0.ɵɵpipeBind1(16, 31, ctx.collapsed ? "MENU.EXPAND" : "MENU.COLLAPSE"));
1171
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(17, 33, "ARIA_LABELS.MENU_TOGGLER"));
1172
- i0.ɵɵadvance(6);
1173
- i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
1174
- i0.ɵɵadvance(2);
1175
- i0.ɵɵproperty("direction", ctx.direction)("isOpen", !ctx.collapsed)("active", ctx.active);
1176
- i0.ɵɵadvance(4);
1177
- i0.ɵɵproperty("matMenuTriggerFor", menu_r13);
1223
+ i0.ɵɵproperty("matMenuTriggerFor", menu_r11);
1178
1224
  i0.ɵɵadvance(3);
1179
- i0.ɵɵconditional(ctx.userInitials ? 30 : 31);
1225
+ i0.ɵɵconditional(ctx.userInitials ? 4 : 5);
1180
1226
  i0.ɵɵadvance(2);
1181
1227
  i0.ɵɵproperty("ngIf", !ctx.collapsed);
1182
1228
  i0.ɵɵadvance(3);
1183
- i0.ɵɵrepeater(ctx.menuSettings.userOptions);
1184
- } }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i1$2.FlexFillDirective, i1$2.DefaultFlexDirective, i2$2.DefaultShowHideDirective, i2$2.DefaultClassDirective, i1$1.RouterLink, i4.NgIf, i4.NgTemplateOutlet, i5.MatTooltip, i2$1.MatIcon, i7.MatIconButton, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i2.PlausibleEventDirective, MenuColumnsComponent, i8.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.no-click[_ngcontent-%COMP%]{pointer-events:none!important}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar{width:5px}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-track{background:var(--base-100)}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{position:relative}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute!important;right:0}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container[_ngcontent-%COMP%]{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile[_ngcontent-%COMP%]{position:relative;margin-top:100px}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{margin:36px 0!important}.mobile[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:60vw}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.profile-arrow[_ngcontent-%COMP%]{position:absolute;right:3px;margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
1229
+ i0.ɵɵrepeater(ctx.userOptions);
1230
+ } }, dependencies: [i1$1.RouterLink, i3.NgIf, i3.NgTemplateOutlet, i2$1.MatIcon, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.profile[_ngcontent-%COMP%]{position:relative;margin-top:100px}.profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}.profile-arrow[_ngcontent-%COMP%]{position:absolute;right:0;margin-right:8px}.mobile[_ngcontent-%COMP%] .profile-arrow[_ngcontent-%COMP%]{margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
1185
1231
  }
1186
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
1232
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuProfileComponent, [{
1187
1233
  type: Component,
1188
- args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs>close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n <div fxFlex fxLayout=\"column\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"profile\">\r\n <button #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n @if (userInitials) {\r\n {{userInitials}}\r\n } @else {\r\n <mat-icon>person</mat-icon>\r\n }\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username ?? 'MENU.ANONYMOUS' | translate }}\r\n </span>\r\n\r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n <ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n </ng-template>\r\n</div>\r\n", styles: ["a{text-decoration:none}.no-click{pointer-events:none!important}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.menu-container ::-webkit-scrollbar{width:5px}.menu-container ::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container ::-webkit-scrollbar-track{background:var(--base-100)}.mobile .profile-wrapper{position:relative}.mobile .profile-wrapper mat-icon{position:absolute!important;right:0}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile{position:relative;margin-top:100px}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed .profile-wrapper{margin:36px 0!important}.mobile .profile-name{max-width:60vw}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.profile-arrow{position:absolute;right:3px;margin-right:20px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
1189
- }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: MenuItemsService }], { username: [{
1234
+ args: [{ selector: 'lib-menu-profile', template: "<div class=\"profile\">\r\n <button #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n @if (userInitials) {\r\n {{userInitials}}\r\n } @else {\r\n <mat-icon>person</mat-icon>\r\n }\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username ?? 'MENU.ANONYMOUS' | translate }}\r\n </span>\r\n\r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">keyboard_arrow_down</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">keyboard_arrow_up</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n</div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n</ng-template>", styles: ["a{text-decoration:none}.profile{position:relative;margin-top:100px}.profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.profile-name{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}.profile-arrow{position:absolute;right:0;margin-right:8px}.mobile .profile-arrow{margin-right:20px}.spin{animation:spinArrow .3s forwards}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
1235
+ }], null, { collapsed: [{
1190
1236
  type: Input
1191
- }], menuSettings: [{
1237
+ }], username: [{
1192
1238
  type: Input
1193
- }], productName: [{
1239
+ }], userOptions: [{
1194
1240
  type: Input
1241
+ }], linkCallbackEvent: [{
1242
+ type: Output
1195
1243
  }] }); })();
1196
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SideNavMenuComponent, { className: "SideNavMenuComponent", filePath: "lib\\components\\side-nav-menu\\side-nav-menu.component.ts", lineNumber: 15 }); })();
1244
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuProfileComponent, { className: "MenuProfileComponent", filePath: "lib\\components\\menu-profile\\menu-profile.component.ts", lineNumber: 10 }); })();
1245
+
1246
+ function MenuLangSwitcherComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1247
+ i0.ɵɵelementStart(0, "span");
1248
+ i0.ɵɵtext(1);
1249
+ i0.ɵɵpipe(2, "languageTranslate");
1250
+ i0.ɵɵelementEnd();
1251
+ } if (rf & 2) {
1252
+ const ctx_r0 = i0.ɵɵnextContext();
1253
+ i0.ɵɵadvance();
1254
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r0.currentLanguageCode), " ");
1255
+ } }
1256
+ function MenuLangSwitcherComponent_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1257
+ i0.ɵɵelementStart(0, "mat-icon", 6);
1258
+ i0.ɵɵtext(1, "keyboard_arrow_down");
1259
+ i0.ɵɵelementEnd();
1260
+ } }
1261
+ function MenuLangSwitcherComponent_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1262
+ i0.ɵɵelementStart(0, "mat-icon", 6);
1263
+ i0.ɵɵtext(1, "keyboard_arrow_up");
1264
+ i0.ɵɵelementEnd();
1265
+ } }
1266
+ function MenuLangSwitcherComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1267
+ i0.ɵɵtemplate(0, MenuLangSwitcherComponent_Conditional_7_Conditional_0_Template, 2, 0, "mat-icon", 6)(1, MenuLangSwitcherComponent_Conditional_7_Conditional_1_Template, 2, 0, "mat-icon", 6);
1268
+ } if (rf & 2) {
1269
+ i0.ɵɵnextContext();
1270
+ const state_r2 = i0.ɵɵreference(1);
1271
+ i0.ɵɵconditional(state_r2.menuOpen ? 0 : 1);
1272
+ } }
1273
+ function MenuLangSwitcherComponent_For_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1274
+ const _r3 = i0.ɵɵgetCurrentView();
1275
+ i0.ɵɵelementStart(0, "button", 8);
1276
+ i0.ɵɵlistener("click", function MenuLangSwitcherComponent_For_11_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const lang_r4 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.changeLanguage(lang_r4)); });
1277
+ i0.ɵɵtext(1);
1278
+ i0.ɵɵpipe(2, "languageTranslate");
1279
+ i0.ɵɵelementEnd();
1280
+ } if (rf & 2) {
1281
+ const lang_r4 = i0.ɵɵnextContext().$implicit;
1282
+ i0.ɵɵadvance();
1283
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, lang_r4), " ");
1284
+ } }
1285
+ function MenuLangSwitcherComponent_For_11_Template(rf, ctx) { if (rf & 1) {
1286
+ i0.ɵɵtemplate(0, MenuLangSwitcherComponent_For_11_Conditional_0_Template, 3, 3, "button", 7);
1287
+ } if (rf & 2) {
1288
+ const lang_r4 = ctx.$implicit;
1289
+ const ctx_r0 = i0.ɵɵnextContext();
1290
+ i0.ɵɵconditional(lang_r4 !== ctx_r0.currentLanguageCode ? 0 : -1);
1291
+ } }
1292
+ class MenuLangSwitcherComponent {
1293
+ constructor() {
1294
+ this.changeLanguageEvent = new EventEmitter();
1295
+ this.#translate = inject(TranslateService);
1296
+ }
1297
+ #translate;
1298
+ ngOnInit() {
1299
+ this.currentLanguageCode = this.#translate.currentLang;
1300
+ }
1301
+ changeLanguage(lang) {
1302
+ this.#translate.use(lang);
1303
+ this.currentLanguageCode = lang;
1304
+ this.changeLanguageEvent.emit(lang);
1305
+ }
1306
+ static { this.ɵfac = function MenuLangSwitcherComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuLangSwitcherComponent)(); }; }
1307
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuLangSwitcherComponent, selectors: [["lib-menu-lang-switcher"]], inputs: { isCollapsed: "isCollapsed", languages: "languages" }, outputs: { changeLanguageEvent: "changeLanguageEvent" }, decls: 12, vars: 10, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["matTooltipPosition", "after", "matTooltipClass", "menu-tooltip", 1, "lang-switcher", 3, "matMenuTriggerFor", "matTooltip"], [1, "current-lang"], [1, "lang-icon"], [1, "lang-menu"], [1, "menu-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["mat-menu-item", "", 1, "profile-option", 3, "click"]], template: function MenuLangSwitcherComponent_Template(rf, ctx) { if (rf & 1) {
1308
+ i0.ɵɵelementStart(0, "button", 2, 0);
1309
+ i0.ɵɵpipe(2, "translate");
1310
+ i0.ɵɵelementStart(3, "div", 3)(4, "mat-icon", 4);
1311
+ i0.ɵɵtext(5, "language");
1312
+ i0.ɵɵelementEnd();
1313
+ i0.ɵɵtemplate(6, MenuLangSwitcherComponent_Conditional_6_Template, 3, 3, "span");
1314
+ i0.ɵɵelementEnd();
1315
+ i0.ɵɵtemplate(7, MenuLangSwitcherComponent_Conditional_7_Template, 2, 1);
1316
+ i0.ɵɵelementEnd();
1317
+ i0.ɵɵelementStart(8, "mat-menu", 5, 1);
1318
+ i0.ɵɵrepeaterCreate(10, MenuLangSwitcherComponent_For_11_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
1319
+ i0.ɵɵelementEnd();
1320
+ } if (rf & 2) {
1321
+ const state_r2 = i0.ɵɵreference(1);
1322
+ const menu_r5 = i0.ɵɵreference(9);
1323
+ i0.ɵɵclassProp("collapsed", ctx.isCollapsed)("active", state_r2.menuOpen);
1324
+ i0.ɵɵproperty("matMenuTriggerFor", menu_r5)("matTooltip", ctx.isCollapsed ? i0.ɵɵpipeBind1(2, 8, "MENU.CHANGE_LANGUAGE") : "");
1325
+ i0.ɵɵadvance(6);
1326
+ i0.ɵɵconditional(!ctx.isCollapsed ? 6 : -1);
1327
+ i0.ɵɵadvance();
1328
+ i0.ɵɵconditional(!ctx.isCollapsed ? 7 : -1);
1329
+ i0.ɵɵadvance(3);
1330
+ i0.ɵɵrepeater(ctx.languages);
1331
+ } }, dependencies: [i5.MatTooltip, i2$1.MatIcon, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe, i2.LanguageTranslatePipe], styles: [".lang-switcher[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-40);background:none;width:100%;padding:16px 8px 16px 18px;border-radius:5px}.lang-switcher.active[_ngcontent-%COMP%], .lang-switcher[_ngcontent-%COMP%]:hover{background-color:var(--base-70)}.collapsed[_ngcontent-%COMP%]{padding:0;min-width:40px;height:40px;border-radius:50%;margin-top:10px;justify-content:center;width:100%;margin-left:-6px}.current-lang[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;gap:12px}.collapsed[_ngcontent-%COMP%] .current-lang[_ngcontent-%COMP%]{justify-content:center;width:100%}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
1332
+ }
1333
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuLangSwitcherComponent, [{
1334
+ type: Component,
1335
+ args: [{ selector: 'lib-menu-lang-switcher', template: "<button\r\n [class.collapsed]=\"isCollapsed\"\r\n #state=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [matTooltip]=\"isCollapsed ? ('MENU.CHANGE_LANGUAGE' | translate) : ''\"\r\n matTooltipPosition=\"after\"\r\n matTooltipClass=\"menu-tooltip\" \r\n class=\"lang-switcher\"\r\n [class.active]=\"state.menuOpen\"\r\n>\r\n<div class=\"current-lang\">\r\n <mat-icon class=\"lang-icon\">language</mat-icon>\r\n\r\n @if (!isCollapsed) {\r\n <span>\r\n {{ currentLanguageCode | languageTranslate }}\r\n </span>\r\n }\r\n</div>\r\n\r\n @if (!isCollapsed) {\r\n @if (state.menuOpen) {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_down</mat-icon>\r\n } @else {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_up</mat-icon>\r\n }\r\n }\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"lang-menu\">\r\n @for (lang of languages; track lang) {\r\n @if (lang !== currentLanguageCode) {\r\n <button mat-menu-item class=\"profile-option\" (click)=\"changeLanguage(lang)\">\r\n {{ lang | languageTranslate }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n", styles: [".lang-switcher{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-40);background:none;width:100%;padding:16px 8px 16px 18px;border-radius:5px}.lang-switcher.active,.lang-switcher:hover{background-color:var(--base-70)}.collapsed{padding:0;min-width:40px;height:40px;border-radius:50%;margin-top:10px;justify-content:center;width:100%;margin-left:-6px}.current-lang{display:flex;align-items:center;width:100%;gap:12px}.collapsed .current-lang{justify-content:center;width:100%}.spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
1336
+ }], null, { isCollapsed: [{
1337
+ type: Input
1338
+ }], languages: [{
1339
+ type: Input
1340
+ }], changeLanguageEvent: [{
1341
+ type: Output
1342
+ }] }); })();
1343
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuLangSwitcherComponent, { className: "MenuLangSwitcherComponent", filePath: "lib\\components\\menu-lang-switcher\\menu-lang-switcher.component.ts", lineNumber: 9 }); })();
1197
1344
 
1198
1345
  class MenuModule {
1199
1346
  static forRoot(config) {
@@ -1215,7 +1362,8 @@ class MenuModule {
1215
1362
  MatMenuModule,
1216
1363
  MatIconModule,
1217
1364
  TranslateModule,
1218
- PlausibleModule] }); }
1365
+ PlausibleModule,
1366
+ LanguageTranslateModule] }); }
1219
1367
  }
1220
1368
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuModule, [{
1221
1369
  type: NgModule,
@@ -1227,7 +1375,9 @@ class MenuModule {
1227
1375
  MenuColumnsComponent,
1228
1376
  MenuIconComponent,
1229
1377
  MenuItemLinkComponent,
1230
- MenuItemBtnComponent
1378
+ MenuItemBtnComponent,
1379
+ MenuProfileComponent,
1380
+ MenuLangSwitcherComponent
1231
1381
  ],
1232
1382
  exports: [
1233
1383
  SideNavMenuComponent,
@@ -1245,7 +1395,8 @@ class MenuModule {
1245
1395
  MatMenuModule,
1246
1396
  MatIconModule,
1247
1397
  TranslateModule,
1248
- PlausibleModule
1398
+ PlausibleModule,
1399
+ LanguageTranslateModule
1249
1400
  ],
1250
1401
  providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],
1251
1402
  }]
@@ -1256,7 +1407,9 @@ class MenuModule {
1256
1407
  MenuColumnsComponent,
1257
1408
  MenuIconComponent,
1258
1409
  MenuItemLinkComponent,
1259
- MenuItemBtnComponent], imports: [FlexLayoutModule,
1410
+ MenuItemBtnComponent,
1411
+ MenuProfileComponent,
1412
+ MenuLangSwitcherComponent], imports: [FlexLayoutModule,
1260
1413
  RouterModule,
1261
1414
  CommonModule,
1262
1415
  MatTooltipModule,
@@ -1267,8 +1420,12 @@ class MenuModule {
1267
1420
  MatMenuModule,
1268
1421
  MatIconModule,
1269
1422
  TranslateModule,
1270
- PlausibleModule], exports: [SideNavMenuComponent,
1423
+ PlausibleModule,
1424
+ LanguageTranslateModule], exports: [SideNavMenuComponent,
1271
1425
  MenuColumnsComponent] }); })();
1426
+ i0.ɵɵsetComponentScope(SideNavMenuComponent, [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i1$2.FlexFillDirective, i1$2.DefaultFlexDirective, i2$2.DefaultShowHideDirective, i2$2.DefaultClassDirective, i3.NgIf, i5.MatTooltip, i2$1.MatIcon, i7.MatIconButton, i2.PlausibleEventDirective, MenuColumnsComponent,
1427
+ MenuProfileComponent,
1428
+ MenuLangSwitcherComponent], [i8.TranslatePipe]);
1272
1429
 
1273
1430
  /**
1274
1431
  * Prefefined user menu options, so that same style of items are used across all products. Use this by passing necessary configuration.
@@ -1299,25 +1456,6 @@ const USER_MENU_OPTIONS = {
1299
1456
  icon: { name: `mail` },
1300
1457
  link: { href, isExternal: true, callback },
1301
1458
  }),
1302
- /** use language update callback to save in localstorage */
1303
- changeLanguage: (dialog, languages, languageChangeCallback) => ({
1304
- label: 'MENU.CHANGE_LANGUAGE',
1305
- icon: { name: 'language' },
1306
- button: {
1307
- callback: () => {
1308
- dialog
1309
- .open(SelectLanguageDialogComponent, {
1310
- data: { languages: languages },
1311
- })
1312
- .afterClosed()
1313
- .subscribe((language) => {
1314
- if (language && languageChangeCallback) {
1315
- languageChangeCallback(language);
1316
- }
1317
- });
1318
- },
1319
- },
1320
- }),
1321
1459
  logout: (callback) => ({
1322
1460
  icon: { name: 'logout' },
1323
1461
  label: 'MENU.LOG_OUT',