@tilde-nlp/ngx-menu 8.0.2 → 8.0.3
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,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Optional, Inject, Component, Input, EventEmitter, Output, input, output, inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@tilde-nlp/ngx-common';
|
|
4
|
-
import { ResolutionHelper, PlausibleModule,
|
|
4
|
+
import { ResolutionHelper, PlausibleModule, SelectLanguageDialogComponent } 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';
|
|
@@ -1291,15 +1291,25 @@ class MenuProfileComponent {
|
|
|
1291
1291
|
}], null, null); })();
|
|
1292
1292
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuProfileComponent, { className: "MenuProfileComponent", filePath: "lib/components/menu-profile/menu-profile.component.ts", lineNumber: 11 }); })();
|
|
1293
1293
|
|
|
1294
|
+
const MENU_LANGUAGE_TRANSLATIONS = {
|
|
1295
|
+
en: 'English',
|
|
1296
|
+
lv: 'Latviešu',
|
|
1297
|
+
et: 'Eesti',
|
|
1298
|
+
lt: 'Lietuvių',
|
|
1299
|
+
fi: 'Suomi',
|
|
1300
|
+
pl: 'Polski',
|
|
1301
|
+
hr: 'Hrvatski',
|
|
1302
|
+
de: 'Deutsch',
|
|
1303
|
+
};
|
|
1304
|
+
|
|
1294
1305
|
function MenuLangSwitcherComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1295
1306
|
i0.ɵɵelementStart(0, "span");
|
|
1296
1307
|
i0.ɵɵtext(1);
|
|
1297
|
-
i0.ɵɵpipe(2, "languageTranslate");
|
|
1298
1308
|
i0.ɵɵelementEnd();
|
|
1299
1309
|
} if (rf & 2) {
|
|
1300
1310
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
1301
1311
|
i0.ɵɵadvance();
|
|
1302
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
1312
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.languageCodeTranslations[ctx_r0.currentLanguageCode], " ");
|
|
1303
1313
|
} }
|
|
1304
1314
|
function MenuLangSwitcherComponent_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
1305
1315
|
i0.ɵɵelementStart(0, "mat-icon", 6);
|
|
@@ -1323,15 +1333,15 @@ function MenuLangSwitcherComponent_For_11_Conditional_0_Template(rf, ctx) { if (
|
|
|
1323
1333
|
i0.ɵɵelementStart(0, "button", 8);
|
|
1324
1334
|
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)); });
|
|
1325
1335
|
i0.ɵɵtext(1);
|
|
1326
|
-
i0.ɵɵpipe(2, "languageTranslate");
|
|
1327
1336
|
i0.ɵɵelementEnd();
|
|
1328
1337
|
} if (rf & 2) {
|
|
1329
1338
|
const lang_r4 = i0.ɵɵnextContext().$implicit;
|
|
1339
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
1330
1340
|
i0.ɵɵadvance();
|
|
1331
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
1341
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.languageCodeTranslations[lang_r4], " ");
|
|
1332
1342
|
} }
|
|
1333
1343
|
function MenuLangSwitcherComponent_For_11_Template(rf, ctx) { if (rf & 1) {
|
|
1334
|
-
i0.ɵɵconditionalCreate(0, MenuLangSwitcherComponent_For_11_Conditional_0_Template,
|
|
1344
|
+
i0.ɵɵconditionalCreate(0, MenuLangSwitcherComponent_For_11_Conditional_0_Template, 2, 1, "button", 7);
|
|
1335
1345
|
} if (rf & 2) {
|
|
1336
1346
|
const lang_r4 = ctx.$implicit;
|
|
1337
1347
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -1340,11 +1350,12 @@ function MenuLangSwitcherComponent_For_11_Template(rf, ctx) { if (rf & 1) {
|
|
|
1340
1350
|
class MenuLangSwitcherComponent {
|
|
1341
1351
|
constructor() {
|
|
1342
1352
|
this.changeLanguageEvent = new EventEmitter();
|
|
1353
|
+
this.languageCodeTranslations = MENU_LANGUAGE_TRANSLATIONS;
|
|
1343
1354
|
this.#translate = inject(TranslateService);
|
|
1344
1355
|
}
|
|
1345
1356
|
#translate;
|
|
1346
1357
|
ngOnInit() {
|
|
1347
|
-
this.currentLanguageCode = this.#translate.
|
|
1358
|
+
this.currentLanguageCode = this.#translate.getCurrentLang();
|
|
1348
1359
|
}
|
|
1349
1360
|
changeLanguage(lang) {
|
|
1350
1361
|
this.#translate.use(lang);
|
|
@@ -1358,7 +1369,7 @@ class MenuLangSwitcherComponent {
|
|
|
1358
1369
|
i0.ɵɵelementStart(3, "div", 3)(4, "mat-icon", 4);
|
|
1359
1370
|
i0.ɵɵtext(5, "language");
|
|
1360
1371
|
i0.ɵɵelementEnd();
|
|
1361
|
-
i0.ɵɵconditionalCreate(6, MenuLangSwitcherComponent_Conditional_6_Template,
|
|
1372
|
+
i0.ɵɵconditionalCreate(6, MenuLangSwitcherComponent_Conditional_6_Template, 2, 1, "span");
|
|
1362
1373
|
i0.ɵɵelementEnd();
|
|
1363
1374
|
i0.ɵɵconditionalCreate(7, MenuLangSwitcherComponent_Conditional_7_Template, 2, 1);
|
|
1364
1375
|
i0.ɵɵelementEnd();
|
|
@@ -1376,11 +1387,11 @@ class MenuLangSwitcherComponent {
|
|
|
1376
1387
|
i0.ɵɵconditional(!ctx.isCollapsed ? 7 : -1);
|
|
1377
1388
|
i0.ɵɵadvance(3);
|
|
1378
1389
|
i0.ɵɵrepeater(ctx.languages);
|
|
1379
|
-
} }, dependencies: [i5.MatTooltip, i2$1.MatIcon, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe
|
|
1390
|
+
} }, dependencies: [i5.MatTooltip, i2$1.MatIcon, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, i8.TranslatePipe], styles: [".spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}span[_ngcontent-%COMP%]{font-size:14px}.lang-switcher[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-30);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%}"] }); }
|
|
1380
1391
|
}
|
|
1381
1392
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuLangSwitcherComponent, [{
|
|
1382
1393
|
type: Component,
|
|
1383
|
-
args: [{ selector: 'lib-menu-lang-switcher', standalone: false, 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
|
|
1394
|
+
args: [{ selector: 'lib-menu-lang-switcher', standalone: false, 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 {{ languageCodeTranslations[currentLanguageCode] }}\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 (click)=\"changeLanguage(lang)\">\r\n {{ languageCodeTranslations[lang] }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n", styles: [".spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}span{font-size:14px}.lang-switcher{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-30);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%}\n"] }]
|
|
1384
1395
|
}], null, { isCollapsed: [{
|
|
1385
1396
|
type: Input
|
|
1386
1397
|
}], languages: [{
|
|
@@ -1388,7 +1399,7 @@ class MenuLangSwitcherComponent {
|
|
|
1388
1399
|
}], changeLanguageEvent: [{
|
|
1389
1400
|
type: Output
|
|
1390
1401
|
}] }); })();
|
|
1391
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuLangSwitcherComponent, { className: "MenuLangSwitcherComponent", filePath: "lib/components/menu-lang-switcher/menu-lang-switcher.component.ts", lineNumber:
|
|
1402
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuLangSwitcherComponent, { className: "MenuLangSwitcherComponent", filePath: "lib/components/menu-lang-switcher/menu-lang-switcher.component.ts", lineNumber: 11 }); })();
|
|
1392
1403
|
|
|
1393
1404
|
class MenuModule {
|
|
1394
1405
|
static forRoot(config) {
|
|
@@ -1411,7 +1422,6 @@ class MenuModule {
|
|
|
1411
1422
|
MatIconModule,
|
|
1412
1423
|
TranslateModule,
|
|
1413
1424
|
PlausibleModule,
|
|
1414
|
-
LanguageTranslateModule,
|
|
1415
1425
|
MatProgressSpinnerModule] }); }
|
|
1416
1426
|
}
|
|
1417
1427
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuModule, [{
|
|
@@ -1445,7 +1455,6 @@ class MenuModule {
|
|
|
1445
1455
|
MatIconModule,
|
|
1446
1456
|
TranslateModule,
|
|
1447
1457
|
PlausibleModule,
|
|
1448
|
-
LanguageTranslateModule,
|
|
1449
1458
|
MatProgressSpinnerModule
|
|
1450
1459
|
],
|
|
1451
1460
|
providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],
|
|
@@ -1471,7 +1480,6 @@ class MenuModule {
|
|
|
1471
1480
|
MatIconModule,
|
|
1472
1481
|
TranslateModule,
|
|
1473
1482
|
PlausibleModule,
|
|
1474
|
-
LanguageTranslateModule,
|
|
1475
1483
|
MatProgressSpinnerModule], exports: [SideNavMenuComponent,
|
|
1476
1484
|
MenuColumnsComponent] }); })();
|
|
1477
1485
|
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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.html","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.ts","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.html","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/lib/constants/user-menu-options.const.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item.model\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item.model';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n menuSharedConfig!: MenuSharedConfig;\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly config: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n setMenuItems(config: MenuSharedConfig): void {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private initData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss'],\r\n standalone: false\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","<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 (useDefaultLanguageSwitcher && 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","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { DOMService, PlausibleEvent, ResolutionHelper } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { UserMenuOptionLink } from './models/user-menu-option-link.model';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss'],\r\n standalone: false\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.\r\n this.#username = value?.trim();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false,\r\n disableLogoNavigation: false,\r\n userOptions: []\r\n }\r\n\r\n @Input() productName!: string;\r\n @Input() supportedLanguages!: string[];\r\n @Input() useDefaultLanguageSwitcher = true;\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink) {\r\n if (link.callback) {\r\n link.callback();\r\n }\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n}\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <span class=\"material-icons menu-icon\" [class.material-icons-outlined]=\"menuItem?.isIconOutlined\">{{menuItem.icon}}</span>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a\r\n class=\"text-m menu-item\"\r\n matTooltipClass=\"menu-tooltip\"\r\n matTooltipPosition=\"after\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n [fxLayout]=\"menuItemLayout\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\"\r\n [libPlausibleEvent]=\"menuItem.plausibleEvent\"\r\n [href]=\"href | translate\"\r\n [attr.target]=\"menuItem.externalLink ? '_blank' : '_self'\"\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [class.text-center]=\"menuItemLayout === 'column'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\"\r\n (click)=\"linkClick($event, menuItem)\"\r\n>\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<button\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [attr.id]=\"menuItem.customId\"\r\n class=\"menu-item w-full flex justify-center items-center\"\r\n fxLayoutAlign=\"space-between start\"\r\n [class.active-menu-item]=\"menuItem.isItemActive ? menuItem.isItemActive(menuItem.customId) : menuItem === activeItem\"\r\n (click)=\"menuItem.clickAction && menuItem.clickAction()\"\r\n>\r\n <span class=\"btn-label\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n <ng-container *ngIf=\"menuItem.subMenu?.length\">\r\n <div [class.open]=\"menuTrigger?.menuOpen\">\r\n <button\r\n class=\"sub-menu-btn\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let item of menuItem.subMenu\"\r\n mat-menu-item\r\n (click)=\"item.onOptionClick()\"\r\n >\r\n {{ item.title | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n</button>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-menu-item-btn',\r\n standalone: false,\r\n templateUrl: './menu-item-btn.component.html',\r\n styleUrl: './menu-item-btn.component.scss',\r\n})\r\nexport class MenuItemBtnComponent {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() menuItem!: CustomMenuItem;\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n\t@if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n\t<div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n\t\t<mat-icon *ngIf=\"menuItemGroup.titleIcon\" class=\"menu-title-btn\">\r\n\t\t\t{{ menuItemGroup.titleIcon }}\r\n\t\t</mat-icon>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"menuItemGroup.titleNavigation\"\r\n\t\t\tmat-icon-button\r\n\t\t\tclass=\"menu-title-btn\"\r\n\t\t\t[routerLink]=\"menuItemGroup.titleNavigation.path\"\r\n\t\t\t[matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>{{ menuItemGroup.titleNavigation.icon }}</mat-icon>\r\n\t\t</button>\r\n\r\n\t\t{{ titleKey | translate }}\r\n\t</div>\r\n\t} @else if (menuItemGroup?.itemGroupClick) {\r\n\t<ng-container *ngTemplateOutlet=\"itemGroupButton\"> </ng-container>\r\n\t}\r\n\t<div class=\"menu-item-list\" fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\">\r\n\t\t<ng-container *ngFor=\"let menuItem of items\">\r\n\t\t\t<ng-container\r\n\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : menuItemLink) : itemWithChildren;\r\n\t\t\t\t\tcontext: { menuItem: menuItem }\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n\t<button\r\n\t\tmatTooltipClass=\"menu-tooltip\"\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n\t\t[fxLayout]=\"menuItemLayout\"\r\n\t\t[fxLayoutAlign]=\"menuLayoutDirection\"\r\n\t\t#state=\"matMenuTrigger\"\r\n\t\t[matMenuTriggerFor]=\"menu\"\r\n\t\t[attr.id]=\"menuItem.customId\"\r\n\t\tclass=\"text-m menu-item menu-parent-item\"\r\n\t\t[class.menu-labels-visible]=\"labelsVisible\"\r\n\t\t[class.active-menu-item]=\"(activeItem?.link && menuItem === activeItem) || state.menuOpen\"\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t(click)=\"toggleItemExpand($event, menuItem)\"\r\n\t>\r\n\t\t<ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n\t\t\t<tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"labelsVisible\">\r\n\t\t\t<span class=\"menu-item-title\">\r\n\t\t\t\t<span class=\"title-content\">{{ menuItem.title | translate }}</span></span\r\n\t\t\t>\r\n\t\t\t<ng-container *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n\t\t\t\t<span *ngIf=\"state.menuOpen; else iconDown\" class=\"material-icons spin arrow-icon\">keyboard_arrow_down</span>\r\n\r\n\t\t\t\t<ng-template #iconDown>\r\n\t\t\t\t\t<span class=\"material-icons spin arrow-icon\"> keyboard_arrow_up </span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</button>\r\n\t<mat-menu #menu=\"matMenu\" class=\"child-menu\">\r\n\t\t@for (child of menuItem.children; track $index) {\r\n\t\t<div mat-menu-item>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"menuItem.clickAction ? menuItemBtn : menuItemLink; context: { menuItem: child, isChild: true }\"> </ng-container>\r\n\t\t</div>\r\n\t\t}\r\n\t</mat-menu>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\" let-isChild=\"isChild\">\r\n\t<tld-menu-item-link\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t[menuItem]=\"menuItem\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[labelsVisible]=\"labelsVisible || isChild\"\r\n\t\t[activeItem]=\"activeItem\"\r\n\t\t[showIcons]=\"showIcons\"\r\n\t></tld-menu-item-link>\r\n</ng-template>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n\t<lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && labelsVisible\"\r\n\t\tmat-button\r\n\t\tclass=\"menu-title-btn menu-action-button\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t\t[class.active-menu-item-group]=\"menuItemGroup.isItemGroupActive && menuItemGroup.isItemGroupActive()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t\t<span class=\"btn-label\" *ngIf=\"titleKey\">\r\n\t\t\t{{ titleKey | translate }}\r\n\t\t</span>\r\n\t</button>\r\n\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n\t\tmat-icon-button\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"titleKey | translate\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t</button>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length || group.showEmpty\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"isOpen\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"loader-container\" *ngIf=\"group.isItemsLoading && isOpen\">\r\n <mat-spinner [diameter]=\"24\" class=\"loader\"></mat-spinner>\r\n </div>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { ResolutionHelper } from '@tilde-nlp/ngx-common';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuColumnsComponent implements OnInit {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() isOpen = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n if (this.toggleOnMobileSelect()) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n \r\n this.activeItem = this.active.root;\r\n }\r\n\r\n private toggleOnMobileSelect(): boolean {\r\n return this.isOpen && ResolutionHelper.isMobileRes() && (this.active && Object.values(this.active)?.length > 0);\r\n }\r\n}\r\n","<div class=\"profile\">\r\n\t<button #state=\"matMenuTrigger\" [class.collapsed]=\"collapsed()\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\" [class.active]=\"state.menuOpen\">\r\n\t\t<div class=\"profile-icon\">\r\n\t\t\t@if (userInitials) {\r\n\t\t\t{{ userInitials }}\r\n\t\t\t} @else {\r\n\t\t\t<mat-icon>person</mat-icon>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<ng-container *ngIf=\"!collapsed()\">\r\n\t\t\t<span class=\"profile-name\">\r\n\t\t\t\t{{ username() ?? \"MENU.ANONYMOUS\" | translate }}\r\n\t\t\t</span>\r\n\r\n\t\t\t<mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">keyboard_arrow_down</mat-icon>\r\n\r\n\t\t\t<ng-template #iconDown>\r\n\t\t\t\t<mat-icon class=\"profile-arrow spin\">keyboard_arrow_up</mat-icon>\r\n\t\t\t</ng-template>\r\n\t\t</ng-container>\r\n\t</button>\r\n\r\n\t<mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n\t\t@for (item of userOptions(); track item.label) { @if (item.link) { @if (item.link.isExternal) {\r\n\t\t<a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} @else {\r\n\t\t<a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} } @else {\r\n\t\t<button mat-menu-item class=\"profile-option\" (click)=\"item.button?.callback()\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</button>\r\n\t\t} }\r\n\t</mat-menu>\r\n</div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n\t@if (icon) { @if (!icon?.isCustom) {\r\n\t<span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n\t\t{{ icon?.name }}\r\n\t</span>\r\n\t} @else {\r\n\t<mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n\t} }\r\n\t{{ label | translate }}\r\n</ng-template>\r\n","import { Component, input, OnInit, output } from '@angular/core';\r\nimport { UserMenuOption } from '../side-nav-menu';\r\nimport { UserMenuOptionLink } from '../side-nav-menu/models/user-menu-option-link.model';\r\n\r\n@Component({\r\n selector: 'lib-menu-profile',\r\n templateUrl: './menu-profile.component.html',\r\n styleUrl: './menu-profile.component.scss',\r\n standalone: false\r\n})\r\nexport class MenuProfileComponent implements OnInit {\r\n collapsed = input<boolean>();\r\n username = input<string>();\r\n userOptions = input<UserMenuOption[]>();\r\n linkCallbackEvent = output<UserMenuOptionLink>();\r\n\r\n userInitials!: string;\r\n\r\n ngOnInit(): void {\r\n this.setUserInitials();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink): void {\r\n this.linkCallbackEvent.emit(link);\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username()) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username()!.split(' ');\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","<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 (click)=\"changeLanguage(lang)\">\r\n {{ lang | languageTranslate }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'lib-menu-lang-switcher',\r\n templateUrl: './menu-lang-switcher.component.html',\r\n styleUrl: './menu-lang-switcher.component.scss',\r\n standalone: false\r\n})\r\nexport class MenuLangSwitcherComponent implements OnInit {\r\n @Input() isCollapsed!: boolean;\r\n @Input() languages!: string[];\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n #translate = inject(TranslateService);\r\n\r\n currentLanguageCode!: string;\r\n\r\n ngOnInit(): void {\r\n this.currentLanguageCode = this.#translate.currentLang;\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.#translate.use(lang);\r\n this.currentLanguageCode = lang;\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule, LanguageTranslateModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\nimport { MenuItemBtnComponent } from './components/menu-item-btn/menu-item-btn.component';\r\nimport { MenuProfileComponent } from './components/menu-profile/menu-profile.component';\r\nimport { MenuLangSwitcherComponent } from './components/menu-lang-switcher/menu-lang-switcher.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n MenuItemBtnComponent,\r\n MenuProfileComponent,\r\n MenuLangSwitcherComponent\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n LanguageTranslateModule,\r\n MatProgressSpinnerModule\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","import { UserMenuOption } from '../components/side-nav-menu/models/user-menu-option.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectLanguageDialogComponent } from '@tilde-nlp/ngx-common';\r\n\r\n/**\r\n * Prefefined user menu options, so that same style of items are used across all products. Use this by passing necessary configuration.\r\n */\r\nexport const USER_MENU_OPTIONS = {\r\n subscription: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'credit_card' },\r\n label: 'MENU.SUBSCRIPTION',\r\n link: { href: href, callback },\r\n }),\r\n termsOfUse: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'text_snippet' },\r\n label: 'MENU.TERMS_OF_USE',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n privacy: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'gpp_maybe' },\r\n label: 'MENU.PRIVACY',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n help: (href: string, icon?: { name: string, isCustom: boolean }, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.HELP_CENTER',\r\n icon: { name: icon ? icon.name : `help`, isCustom: icon ? icon.isCustom : false },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n contactUs: (href: string, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.CONTACT_US',\r\n icon: { name: `mail` },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n /** use language update callback to save in localstorage */\r\n changeLanguage: (\r\n dialog: MatDialog,\r\n languages: string[],\r\n languageChangeCallback?: (language: string) => void\r\n ): UserMenuOption => ({\r\n label: 'MENU.CHANGE_LANGUAGE',\r\n icon: { name: 'language' },\r\n button: {\r\n callback: () => {\r\n dialog\r\n .open(SelectLanguageDialogComponent, {\r\n data: { languages: languages },\r\n })\r\n .afterClosed()\r\n .subscribe((language: string) => {\r\n if (language && languageChangeCallback) {\r\n languageChangeCallback(language);\r\n }\r\n });\r\n },\r\n },\r\n }),\r\n logout: (callback: () => void): UserMenuOption => ({\r\n icon: { name: 'logout' },\r\n label: 'MENU.LOG_OUT',\r\n button: { callback: () => callback() },\r\n }),\r\n};\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/constants\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","i3.MenuItemsService","_c0","i2.MenuItemsService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.html","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.ts","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/models/menu-language-translations.const.ts","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.html","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/lib/constants/user-menu-options.const.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item.model\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item.model';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n menuSharedConfig!: MenuSharedConfig;\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly config: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n setMenuItems(config: MenuSharedConfig): void {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private initData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss'],\r\n standalone: false\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","<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 (useDefaultLanguageSwitcher && 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","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { DOMService, PlausibleEvent, ResolutionHelper } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { UserMenuOptionLink } from './models/user-menu-option-link.model';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss'],\r\n standalone: false\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.\r\n this.#username = value?.trim();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false,\r\n disableLogoNavigation: false,\r\n userOptions: []\r\n }\r\n\r\n @Input() productName!: string;\r\n @Input() supportedLanguages!: string[];\r\n @Input() useDefaultLanguageSwitcher = true;\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink) {\r\n if (link.callback) {\r\n link.callback();\r\n }\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n}\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <span class=\"material-icons menu-icon\" [class.material-icons-outlined]=\"menuItem?.isIconOutlined\">{{menuItem.icon}}</span>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a\r\n class=\"text-m menu-item\"\r\n matTooltipClass=\"menu-tooltip\"\r\n matTooltipPosition=\"after\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n [fxLayout]=\"menuItemLayout\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\"\r\n [libPlausibleEvent]=\"menuItem.plausibleEvent\"\r\n [href]=\"href | translate\"\r\n [attr.target]=\"menuItem.externalLink ? '_blank' : '_self'\"\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [class.text-center]=\"menuItemLayout === 'column'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\"\r\n (click)=\"linkClick($event, menuItem)\"\r\n>\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<button\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [attr.id]=\"menuItem.customId\"\r\n class=\"menu-item w-full flex justify-center items-center\"\r\n fxLayoutAlign=\"space-between start\"\r\n [class.active-menu-item]=\"menuItem.isItemActive ? menuItem.isItemActive(menuItem.customId) : menuItem === activeItem\"\r\n (click)=\"menuItem.clickAction && menuItem.clickAction()\"\r\n>\r\n <span class=\"btn-label\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n <ng-container *ngIf=\"menuItem.subMenu?.length\">\r\n <div [class.open]=\"menuTrigger?.menuOpen\">\r\n <button\r\n class=\"sub-menu-btn\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let item of menuItem.subMenu\"\r\n mat-menu-item\r\n (click)=\"item.onOptionClick()\"\r\n >\r\n {{ item.title | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n</button>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-menu-item-btn',\r\n standalone: false,\r\n templateUrl: './menu-item-btn.component.html',\r\n styleUrl: './menu-item-btn.component.scss',\r\n})\r\nexport class MenuItemBtnComponent {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() menuItem!: CustomMenuItem;\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n\t@if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n\t<div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n\t\t<mat-icon *ngIf=\"menuItemGroup.titleIcon\" class=\"menu-title-btn\">\r\n\t\t\t{{ menuItemGroup.titleIcon }}\r\n\t\t</mat-icon>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"menuItemGroup.titleNavigation\"\r\n\t\t\tmat-icon-button\r\n\t\t\tclass=\"menu-title-btn\"\r\n\t\t\t[routerLink]=\"menuItemGroup.titleNavigation.path\"\r\n\t\t\t[matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>{{ menuItemGroup.titleNavigation.icon }}</mat-icon>\r\n\t\t</button>\r\n\r\n\t\t{{ titleKey | translate }}\r\n\t</div>\r\n\t} @else if (menuItemGroup?.itemGroupClick) {\r\n\t<ng-container *ngTemplateOutlet=\"itemGroupButton\"> </ng-container>\r\n\t}\r\n\t<div class=\"menu-item-list\" fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\">\r\n\t\t<ng-container *ngFor=\"let menuItem of items\">\r\n\t\t\t<ng-container\r\n\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : menuItemLink) : itemWithChildren;\r\n\t\t\t\t\tcontext: { menuItem: menuItem }\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n\t<button\r\n\t\tmatTooltipClass=\"menu-tooltip\"\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n\t\t[fxLayout]=\"menuItemLayout\"\r\n\t\t[fxLayoutAlign]=\"menuLayoutDirection\"\r\n\t\t#state=\"matMenuTrigger\"\r\n\t\t[matMenuTriggerFor]=\"menu\"\r\n\t\t[attr.id]=\"menuItem.customId\"\r\n\t\tclass=\"text-m menu-item menu-parent-item\"\r\n\t\t[class.menu-labels-visible]=\"labelsVisible\"\r\n\t\t[class.active-menu-item]=\"(activeItem?.link && menuItem === activeItem) || state.menuOpen\"\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t(click)=\"toggleItemExpand($event, menuItem)\"\r\n\t>\r\n\t\t<ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n\t\t\t<tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"labelsVisible\">\r\n\t\t\t<span class=\"menu-item-title\">\r\n\t\t\t\t<span class=\"title-content\">{{ menuItem.title | translate }}</span></span\r\n\t\t\t>\r\n\t\t\t<ng-container *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n\t\t\t\t<span *ngIf=\"state.menuOpen; else iconDown\" class=\"material-icons spin arrow-icon\">keyboard_arrow_down</span>\r\n\r\n\t\t\t\t<ng-template #iconDown>\r\n\t\t\t\t\t<span class=\"material-icons spin arrow-icon\"> keyboard_arrow_up </span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</button>\r\n\t<mat-menu #menu=\"matMenu\" class=\"child-menu\">\r\n\t\t@for (child of menuItem.children; track $index) {\r\n\t\t<div mat-menu-item>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"menuItem.clickAction ? menuItemBtn : menuItemLink; context: { menuItem: child, isChild: true }\"> </ng-container>\r\n\t\t</div>\r\n\t\t}\r\n\t</mat-menu>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\" let-isChild=\"isChild\">\r\n\t<tld-menu-item-link\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t[menuItem]=\"menuItem\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[labelsVisible]=\"labelsVisible || isChild\"\r\n\t\t[activeItem]=\"activeItem\"\r\n\t\t[showIcons]=\"showIcons\"\r\n\t></tld-menu-item-link>\r\n</ng-template>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n\t<lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && labelsVisible\"\r\n\t\tmat-button\r\n\t\tclass=\"menu-title-btn menu-action-button\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t\t[class.active-menu-item-group]=\"menuItemGroup.isItemGroupActive && menuItemGroup.isItemGroupActive()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t\t<span class=\"btn-label\" *ngIf=\"titleKey\">\r\n\t\t\t{{ titleKey | translate }}\r\n\t\t</span>\r\n\t</button>\r\n\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n\t\tmat-icon-button\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"titleKey | translate\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t</button>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length || group.showEmpty\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"isOpen\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"loader-container\" *ngIf=\"group.isItemsLoading && isOpen\">\r\n <mat-spinner [diameter]=\"24\" class=\"loader\"></mat-spinner>\r\n </div>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { ResolutionHelper } from '@tilde-nlp/ngx-common';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss'],\r\n standalone: false\r\n})\r\nexport class MenuColumnsComponent implements OnInit {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() isOpen = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n if (this.toggleOnMobileSelect()) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n \r\n this.activeItem = this.active.root;\r\n }\r\n\r\n private toggleOnMobileSelect(): boolean {\r\n return this.isOpen && ResolutionHelper.isMobileRes() && (this.active && Object.values(this.active)?.length > 0);\r\n }\r\n}\r\n","<div class=\"profile\">\r\n\t<button #state=\"matMenuTrigger\" [class.collapsed]=\"collapsed()\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\" [class.active]=\"state.menuOpen\">\r\n\t\t<div class=\"profile-icon\">\r\n\t\t\t@if (userInitials) {\r\n\t\t\t{{ userInitials }}\r\n\t\t\t} @else {\r\n\t\t\t<mat-icon>person</mat-icon>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<ng-container *ngIf=\"!collapsed()\">\r\n\t\t\t<span class=\"profile-name\">\r\n\t\t\t\t{{ username() ?? \"MENU.ANONYMOUS\" | translate }}\r\n\t\t\t</span>\r\n\r\n\t\t\t<mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">keyboard_arrow_down</mat-icon>\r\n\r\n\t\t\t<ng-template #iconDown>\r\n\t\t\t\t<mat-icon class=\"profile-arrow spin\">keyboard_arrow_up</mat-icon>\r\n\t\t\t</ng-template>\r\n\t\t</ng-container>\r\n\t</button>\r\n\r\n\t<mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n\t\t@for (item of userOptions(); track item.label) { @if (item.link) { @if (item.link.isExternal) {\r\n\t\t<a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} @else {\r\n\t\t<a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} } @else {\r\n\t\t<button mat-menu-item class=\"profile-option\" (click)=\"item.button?.callback()\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</button>\r\n\t\t} }\r\n\t</mat-menu>\r\n</div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n\t@if (icon) { @if (!icon?.isCustom) {\r\n\t<span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n\t\t{{ icon?.name }}\r\n\t</span>\r\n\t} @else {\r\n\t<mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n\t} }\r\n\t{{ label | translate }}\r\n</ng-template>\r\n","import { Component, input, OnInit, output } from '@angular/core';\r\nimport { UserMenuOption } from '../side-nav-menu';\r\nimport { UserMenuOptionLink } from '../side-nav-menu/models/user-menu-option-link.model';\r\n\r\n@Component({\r\n selector: 'lib-menu-profile',\r\n templateUrl: './menu-profile.component.html',\r\n styleUrl: './menu-profile.component.scss',\r\n standalone: false\r\n})\r\nexport class MenuProfileComponent implements OnInit {\r\n collapsed = input<boolean>();\r\n username = input<string>();\r\n userOptions = input<UserMenuOption[]>();\r\n linkCallbackEvent = output<UserMenuOptionLink>();\r\n\r\n userInitials!: string;\r\n\r\n ngOnInit(): void {\r\n this.setUserInitials();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink): void {\r\n this.linkCallbackEvent.emit(link);\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username()) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username()!.split(' ');\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","export const MENU_LANGUAGE_TRANSLATIONS: { [key: string]: string } = {\r\n\ten: 'English',\r\n\tlv: 'Latviešu',\r\n\tet: 'Eesti',\r\n\tlt: 'Lietuvių',\r\n\tfi: 'Suomi',\r\n\tpl: 'Polski',\r\n\thr: 'Hrvatski',\r\n\tde: 'Deutsch',\r\n};\r\n","<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 {{ languageCodeTranslations[currentLanguageCode] }}\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 (click)=\"changeLanguage(lang)\">\r\n {{ languageCodeTranslations[lang] }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MENU_LANGUAGE_TRANSLATIONS } from './models/menu-language-translations.const';\r\n\r\n@Component({\r\n\tselector: 'lib-menu-lang-switcher',\r\n\ttemplateUrl: './menu-lang-switcher.component.html',\r\n\tstyleUrl: './menu-lang-switcher.component.scss',\r\n\tstandalone: false,\r\n})\r\nexport class MenuLangSwitcherComponent implements OnInit {\r\n\t@Input() isCollapsed!: boolean;\r\n\t@Input() languages!: string[];\r\n\t@Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n\tlanguageCodeTranslations = MENU_LANGUAGE_TRANSLATIONS;\r\n\r\n\t#translate = inject(TranslateService);\r\n\r\n\tcurrentLanguageCode!: string;\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.currentLanguageCode = this.#translate.getCurrentLang();\r\n\t}\r\n\r\n\tchangeLanguage(lang: string): void {\r\n\t\tthis.#translate.use(lang);\r\n\t\tthis.currentLanguageCode = lang;\r\n\t\tthis.changeLanguageEvent.emit(lang);\r\n\t}\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\nimport { MenuItemBtnComponent } from './components/menu-item-btn/menu-item-btn.component';\r\nimport { MenuProfileComponent } from './components/menu-profile/menu-profile.component';\r\nimport { MenuLangSwitcherComponent } from './components/menu-lang-switcher/menu-lang-switcher.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n MenuItemBtnComponent,\r\n MenuProfileComponent,\r\n MenuLangSwitcherComponent\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n MatProgressSpinnerModule\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","import { UserMenuOption } from '../components/side-nav-menu/models/user-menu-option.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectLanguageDialogComponent } from '@tilde-nlp/ngx-common';\r\n\r\n/**\r\n * Prefefined user menu options, so that same style of items are used across all products. Use this by passing necessary configuration.\r\n */\r\nexport const USER_MENU_OPTIONS = {\r\n subscription: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'credit_card' },\r\n label: 'MENU.SUBSCRIPTION',\r\n link: { href: href, callback },\r\n }),\r\n termsOfUse: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'text_snippet' },\r\n label: 'MENU.TERMS_OF_USE',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n privacy: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'gpp_maybe' },\r\n label: 'MENU.PRIVACY',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n help: (href: string, icon?: { name: string, isCustom: boolean }, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.HELP_CENTER',\r\n icon: { name: icon ? icon.name : `help`, isCustom: icon ? icon.isCustom : false },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n contactUs: (href: string, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.CONTACT_US',\r\n icon: { name: `mail` },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n /** use language update callback to save in localstorage */\r\n changeLanguage: (\r\n dialog: MatDialog,\r\n languages: string[],\r\n languageChangeCallback?: (language: string) => void\r\n ): UserMenuOption => ({\r\n label: 'MENU.CHANGE_LANGUAGE',\r\n icon: { name: 'language' },\r\n button: {\r\n callback: () => {\r\n dialog\r\n .open(SelectLanguageDialogComponent, {\r\n data: { languages: languages },\r\n })\r\n .afterClosed()\r\n .subscribe((language: string) => {\r\n if (language && languageChangeCallback) {\r\n languageChangeCallback(language);\r\n }\r\n });\r\n },\r\n },\r\n }),\r\n logout: (callback: () => void): UserMenuOption => ({\r\n icon: { name: 'logout' },\r\n label: 'MENU.LOG_OUT',\r\n button: { callback: () => callback() },\r\n }),\r\n};\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/constants\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","i3.MenuItemsService","_c0","i2.MenuItemsService"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -349,6 +349,9 @@ declare class MenuLangSwitcherComponent implements OnInit {
|
|
|
349
349
|
isCollapsed: boolean;
|
|
350
350
|
languages: string[];
|
|
351
351
|
changeLanguageEvent: EventEmitter<string>;
|
|
352
|
+
languageCodeTranslations: {
|
|
353
|
+
[key: string]: string;
|
|
354
|
+
};
|
|
352
355
|
currentLanguageCode: string;
|
|
353
356
|
ngOnInit(): void;
|
|
354
357
|
changeLanguage(lang: string): void;
|
|
@@ -359,7 +362,7 @@ declare class MenuLangSwitcherComponent implements OnInit {
|
|
|
359
362
|
declare class MenuModule {
|
|
360
363
|
static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule>;
|
|
361
364
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuModule, never>;
|
|
362
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MenuModule, [typeof SideNavMenuComponent, typeof NavBaseComponent, typeof MenuItemListComponent, typeof MenuColumnsComponent, typeof MenuIconComponent, typeof MenuItemLinkComponent, typeof MenuItemBtnComponent, typeof MenuProfileComponent, typeof MenuLangSwitcherComponent], [typeof i10.FlexLayoutModule, typeof i11.RouterModule, typeof i12.CommonModule, typeof i13.MatTooltipModule, typeof i14.MatDialogModule, typeof i15.MatIconModule, typeof i16.MatButtonModule, typeof i17.MatListModule, typeof i18.MatMenuModule, typeof i15.MatIconModule, typeof i19.TranslateModule, typeof i20.PlausibleModule, typeof
|
|
365
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MenuModule, [typeof SideNavMenuComponent, typeof NavBaseComponent, typeof MenuItemListComponent, typeof MenuColumnsComponent, typeof MenuIconComponent, typeof MenuItemLinkComponent, typeof MenuItemBtnComponent, typeof MenuProfileComponent, typeof MenuLangSwitcherComponent], [typeof i10.FlexLayoutModule, typeof i11.RouterModule, typeof i12.CommonModule, typeof i13.MatTooltipModule, typeof i14.MatDialogModule, typeof i15.MatIconModule, typeof i16.MatButtonModule, typeof i17.MatListModule, typeof i18.MatMenuModule, typeof i15.MatIconModule, typeof i19.TranslateModule, typeof i20.PlausibleModule, typeof i21.MatProgressSpinnerModule], [typeof SideNavMenuComponent, typeof MenuColumnsComponent]>;
|
|
363
366
|
static ɵinj: i0.ɵɵInjectorDeclaration<MenuModule>;
|
|
364
367
|
}
|
|
365
368
|
|