@tilde-nlp/ngx-menu 4.1.10 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/assets/menu-logo.svg.mjs +1 -1
- package/esm2022/lib/components/menu-columns/menu-columns.component.mjs +103 -72
- package/esm2022/lib/components/menu-icon/menu-icon.component.mjs +53 -23
- package/esm2022/lib/components/menu-item-icon/menu-item-icon.component.mjs +115 -71
- package/esm2022/lib/components/menu-item-icon/menu.model.mjs +3 -3
- package/esm2022/lib/components/menu-item-icon/models/menu-dialog-settings.model.mjs +1 -1
- package/esm2022/lib/components/menu-item-icon/models/menu-item-settings.model.mjs +1 -1
- package/esm2022/lib/components/menu-item-icon/models/menu-title-placement.model.mjs +6 -6
- package/esm2022/lib/components/menu-item-link/menu-item-link.component.mjs +91 -53
- package/esm2022/lib/components/menu-item-list/menu-item-list.component.mjs +178 -61
- package/esm2022/lib/components/modal-nav-menu/modal-nav-menu.component.mjs +82 -36
- package/esm2022/lib/components/nav-base/models/index.mjs +1 -1
- package/esm2022/lib/components/nav-base/models/strapi-data-location.enum.mjs +6 -6
- package/esm2022/lib/components/nav-base/nav-base.component.mjs +37 -32
- package/esm2022/lib/components/side-nav-menu/index.mjs +2 -2
- package/esm2022/lib/components/side-nav-menu/models/index.mjs +1 -1
- package/esm2022/lib/components/side-nav-menu/models/side-nav-settings.model.mjs +1 -1
- package/esm2022/lib/components/side-nav-menu/side-nav-menu.component.mjs +130 -93
- package/esm2022/lib/injection-tokens/index.mjs +1 -1
- package/esm2022/lib/injection-tokens/menu-shared-config.token.mjs +1 -1
- package/esm2022/lib/menu.module.mjs +114 -113
- package/esm2022/lib/models/active-menu-item-config.model.mjs +1 -1
- package/esm2022/lib/models/active-menu-items.model.mjs +1 -1
- package/esm2022/lib/models/custom-menu-item.mjs +1 -1
- package/esm2022/lib/models/index.mjs +7 -7
- package/esm2022/lib/models/menu-icon-strapi-extension.const.mjs +1 -1
- package/esm2022/lib/models/menu-item-group.model.mjs +1 -1
- package/esm2022/lib/models/menu-layout-direction.model.mjs +5 -5
- package/esm2022/lib/models/menu-shared-config.model.mjs +1 -1
- package/esm2022/lib/services/index.mjs +2 -2
- package/esm2022/lib/services/menu-items.service.mjs +125 -125
- package/esm2022/lib/services/strapi.service.mjs +93 -93
- package/esm2022/public-api.mjs +15 -15
- package/esm2022/tilde-nlp-ngx-menu.mjs +4 -4
- package/fesm2022/tilde-nlp-ngx-menu.mjs +1016 -667
- package/fesm2022/tilde-nlp-ngx-menu.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/assets/menu-logo.svg.d.ts +1 -1
- package/lib/components/menu-columns/menu-columns.component.d.ts +28 -28
- package/lib/components/menu-icon/menu-icon.component.d.ts +10 -10
- package/lib/components/menu-item-icon/menu-item-icon.component.d.ts +28 -28
- package/lib/components/menu-item-icon/menu.model.d.ts +3 -3
- package/lib/components/menu-item-icon/models/menu-dialog-settings.model.d.ts +8 -8
- package/lib/components/menu-item-icon/models/menu-item-settings.model.d.ts +6 -6
- package/lib/components/menu-item-icon/models/menu-title-placement.model.d.ts +5 -5
- package/lib/components/menu-item-link/menu-item-link.component.d.ts +25 -25
- package/lib/components/menu-item-list/menu-item-list.component.d.ts +21 -21
- package/lib/components/modal-nav-menu/modal-nav-menu.component.d.ts +14 -14
- package/lib/components/nav-base/models/index.d.ts +1 -1
- package/lib/components/nav-base/models/strapi-data-location.enum.d.ts +5 -5
- package/lib/components/nav-base/nav-base.component.d.ts +19 -19
- package/lib/components/side-nav-menu/index.d.ts +2 -2
- package/lib/components/side-nav-menu/models/index.d.ts +1 -1
- package/lib/components/side-nav-menu/models/side-nav-settings.model.d.ts +7 -7
- package/lib/components/side-nav-menu/side-nav-menu.component.d.ts +33 -33
- package/lib/injection-tokens/index.d.ts +1 -1
- package/lib/injection-tokens/menu-shared-config.token.d.ts +1 -1
- package/lib/menu.module.d.ts +29 -29
- package/lib/models/active-menu-item-config.model.d.ts +4 -4
- package/lib/models/active-menu-items.model.d.ts +6 -6
- package/lib/models/custom-menu-item.d.ts +21 -21
- package/lib/models/index.d.ts +7 -7
- package/lib/models/menu-icon-strapi-extension.const.d.ts +1 -1
- package/lib/models/menu-item-group.model.d.ts +9 -9
- package/lib/models/menu-layout-direction.model.d.ts +4 -4
- package/lib/models/menu-shared-config.model.d.ts +21 -21
- package/lib/services/index.d.ts +2 -2
- package/lib/services/menu-items.service.d.ts +38 -38
- package/lib/services/strapi.service.d.ts +20 -20
- package/package.json +12 -9
- package/public-api.d.ts +12 -12
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { NavigationEnd } from '@angular/router';
|
|
3
|
-
import { BehaviorSubject, filter } from 'rxjs';
|
|
4
|
-
import { StrapiDataLocation } from '../components/nav-base/models';
|
|
5
|
-
import { MENU_SHARED_CONFIG } from '../injection-tokens';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
import * as i2 from "./strapi.service";
|
|
9
|
-
export class MenuItemsService {
|
|
10
|
-
get activeElements() { return this._activeElements.asObservable(); }
|
|
11
|
-
get allRootItems() { return this._allRootItems; }
|
|
12
|
-
get strapiGroup() { return this._strapiGroup; }
|
|
13
|
-
get customId() { return this.menuSharedConfig?.customId; }
|
|
14
|
-
get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }
|
|
15
|
-
get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }
|
|
16
|
-
get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END; }
|
|
17
|
-
get mergedGroups() { return this._mergedGroups; }
|
|
18
|
-
get menuItemGroups() { return this.menuSharedConfig.itemGroups; }
|
|
19
|
-
constructor(router, menuSharedConfig, strapiService) {
|
|
20
|
-
this.router = router;
|
|
21
|
-
this.menuSharedConfig = menuSharedConfig;
|
|
22
|
-
this.strapiService = strapiService;
|
|
23
|
-
this._activeElements = new BehaviorSubject({});
|
|
24
|
-
this.strapiItems = [];
|
|
25
|
-
this.isActiveMatchOptions = {
|
|
26
|
-
matrixParams: 'exact',
|
|
27
|
-
queryParams: 'exact',
|
|
28
|
-
paths: 'exact',
|
|
29
|
-
fragment: 'exact'
|
|
30
|
-
};
|
|
31
|
-
this._mergedGroups = [];
|
|
32
|
-
this.getStrapiData();
|
|
33
|
-
this.subscribeToRouteChanges();
|
|
34
|
-
}
|
|
35
|
-
subscribeToRouteChanges() {
|
|
36
|
-
this.router.events
|
|
37
|
-
.pipe(filter(e => e instanceof NavigationEnd))
|
|
38
|
-
.subscribe(() => { this.updateActive(); });
|
|
39
|
-
}
|
|
40
|
-
updateActive() {
|
|
41
|
-
const items = this.allRootItems;
|
|
42
|
-
const root = this.findActiveElement(items, false);
|
|
43
|
-
const child = this.findActiveElement(items, true);
|
|
44
|
-
this._activeElements.next({ root, child });
|
|
45
|
-
}
|
|
46
|
-
/** Finds active element from whole list. RouterLink has priority over custom Id. */
|
|
47
|
-
// at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
49
|
-
findActiveElement(items, includeChildren) {
|
|
50
|
-
if (!items?.length) {
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
let customIdElement;
|
|
54
|
-
for (const item of items) {
|
|
55
|
-
// Child element has priority over parent, so need to check if any child is active
|
|
56
|
-
if (this.isElementRouterLinkActive(item)) {
|
|
57
|
-
// If has children and they are visible, return active child or current item
|
|
58
|
-
return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;
|
|
59
|
-
}
|
|
60
|
-
// if selected custom id element is hidden, no need to look for it and set it to active;
|
|
61
|
-
else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {
|
|
62
|
-
customIdElement = item;
|
|
63
|
-
}
|
|
64
|
-
else if (includeChildren && item.children?.length) {
|
|
65
|
-
const activeChild = this.findActiveElement(item.children, includeChildren);
|
|
66
|
-
if (activeChild) {
|
|
67
|
-
return activeChild;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return customIdElement;
|
|
72
|
-
}
|
|
73
|
-
getStrapiData() {
|
|
74
|
-
if (!this.menuSharedConfig?.disableStrapi) {
|
|
75
|
-
this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.loadData([]);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
loadData(data) {
|
|
82
|
-
// hide custom id based on input param
|
|
83
|
-
this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;
|
|
84
|
-
this._strapiGroup = {
|
|
85
|
-
...this.strapiGroupBase,
|
|
86
|
-
items: this.strapiItems
|
|
87
|
-
};
|
|
88
|
-
if (this.strapiDataLocation === StrapiDataLocation.START) {
|
|
89
|
-
this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];
|
|
90
|
-
}
|
|
91
|
-
else if (this.strapiDataLocation === StrapiDataLocation.END) {
|
|
92
|
-
this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];
|
|
93
|
-
}
|
|
94
|
-
const allItems = this.mergedGroups.map(map => map.items);
|
|
95
|
-
let newArray = [];
|
|
96
|
-
allItems.forEach((array) => { newArray = newArray.concat(array); });
|
|
97
|
-
this._allRootItems = newArray;
|
|
98
|
-
this.updateActive();
|
|
99
|
-
}
|
|
100
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
-
// private isMenuItem(item: any): item is MenuItems {
|
|
102
|
-
// return item.customId;
|
|
103
|
-
// }
|
|
104
|
-
isElementCustomIdActive(element) {
|
|
105
|
-
return this.customId && element.customId === this.customId;
|
|
106
|
-
}
|
|
107
|
-
isElementRouterLinkActive(element) {
|
|
108
|
-
const routerLinkActiveOptions = element.routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;
|
|
109
|
-
return this.router.isActive(element.link, routerLinkActiveOptions);
|
|
110
|
-
}
|
|
111
|
-
static { this.ɵfac =
|
|
112
|
-
static { this.ɵprov = i0.ɵɵ
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9zZXJ2aWNlcy9tZW51LWl0ZW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBd0IsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFVekQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBT3BFLElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQVMvQyxJQUFZLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQVksb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQzFGLElBQVksZUFBZSxLQUFLLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDaEYsSUFBWSxrQkFBa0IsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsSUFBSSxrQkFBa0Is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QyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLFFBQVEsR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFFOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQscURBQXFEO0lBQ3JELDBCQUEwQjtJQUMxQixJQUFJO0lBRUksdUJBQXVCLENBQUMsT0FBdUI7UUFDckQsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM3RCxDQUFDO0lBRU8seUJBQXlCLENBQUMsT0FBdUI7UUFDdkQsTUFBTSx1QkFBdUIsR0FBMEIsT0FBMEIsQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBRW5MLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7K0dBN0hVLGdCQUFnQix3Q0ErQkwsa0JBQWtCO21IQS9CN0IsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBZ0NJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJc0FjdGl2ZU1hdGNoT3B0aW9ucywgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RyYXBpRGF0YUxvY2F0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9uYXYtYmFzZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNRU5VX1NIQVJFRF9DT05GSUcgfSBmcm9tICcuLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgU3RhcnBpTWVudVNlcnZpY2UgfSBmcm9tICcuL3N0cmFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZlTWVudUl0ZW1zIH0gZnJvbSAnLi4vbW9kZWxzL2FjdGl2ZS1tZW51LWl0ZW1zLm1vZGVsJztcclxuaW1wb3J0IHsgQ3VzdG9tTWVudUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLW1lbnUtaXRlbSc7XHJcbmltcG9ydCB7IE1lbnVTaGFyZWRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvbWVudS1zaGFyZWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudUl0ZW1Hcm91cCB9IGZyb20gJy4uL21vZGVscy9tZW51LWl0ZW0tZ3JvdXAubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUl0ZW1zU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUVsZW1lbnRzOiBCZWhhdmlvclN1YmplY3Q8QWN0aXZlTWVudUl0ZW1zPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gIGdldCBhY3RpdmVFbGVtZW50cygpIHsgcmV0dXJuIHRoaXMuX2FjdGl2ZUVsZW1lbnRzLmFzT2JzZXJ2YWJsZSgpOyB9XHJcblxyXG4gIHByaXZhdGUgc3RyYXBpSXRlbXM6IEN1c3RvbU1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RyYXBpR3JvdXAhOiBNZW51SXRlbUdyb3VwO1xyXG5cclxuICBwcml2YXRlIF9hbGxSb290SXRlbXMhOiBDdXN0b21NZW51SXRlbVtdO1xyXG4gIGdldCBhbGxSb290SXRlbXMoKSB7IHJldHVybiB0aGlzLl9hbGxSb290SXRlbXM7IH1cclxuXHJcbiAgZ2V0IHN0cmFwaUdyb3VwKCkgeyByZXR1cm4gdGhpcy5fc3RyYXBpR3JvdXA7IH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0FjdGl2ZU1hdGNoT3B0aW9uczogSXNBY3RpdmVNYXRjaE9wdGlvbnMgPSB7XHJcbiAgICBtYXRyaXhQYXJhbXM6ICdleGFjdCcsXHJcbiAgICBxdWVyeVBhcmFtczogJ2V4YWN0JyxcclxuICAgIHBhdGhzOiAnZXhhY3QnLFxyXG4gICAgZnJhZ21lbnQ6ICdleGFjdCdcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldCBjdXN0b21JZCgpIHsgcmV0dXJuIHRoaXMubWVudVNoYXJlZENvbmZpZz8uY3VzdG9tSWQ7IH1cclxuICBwcml2YXRlIGdldCBoaWRlU2VsZWN0ZWRDdXN0b21JZCgpIHsgcmV0dXJuIHRoaXMubWVudVNoYXJlZENvbmZpZz8uaGlkZVNlbGVjdGVkQ3VzdG9tSWQ7IH1cclxuICBwcml2YXRlIGdldCBzdHJhcGlHcm91cEJhc2UoKSB7IHJldHVybiB0aGlzLm1lbnVTaGFyZWRDb25maWc/LnN0cmFwaUdyb3VwQmFzZTsgfVxyXG4gIHByaXZhdGUgZ2V0IHN0cmFwaURhdGFMb2NhdGlvbigpIHsgcmV0dXJuIHRoaXMubWVudVNoYXJlZENvbmZpZz8uc3RyYXBpRGF0YUxvY2F0aW9uID8/IFN0cmFwaURhdGFMb2NhdGlvbi5FTkQgfVxyXG4gIHByaXZhdGUgX21lcmdlZEdyb3VwczogTWVudUl0ZW1Hcm91cFtdID0gW107XHJcbiAgZ2V0IG1lcmdlZEdyb3VwcygpIHsgcmV0dXJuIHRoaXMuX21lcmdlZEdyb3VwczsgfVxyXG5cclxuICBwcml2YXRlIGdldCBtZW51SXRlbUdyb3VwcygpIHsgcmV0dXJuIHRoaXMubWVudVNoYXJlZENvbmZpZy5pdGVtR3JvdXBzIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUVOVV9TSEFSRURfQ09ORklHKSBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVudVNoYXJlZENvbmZpZzogTWVudVNoYXJlZENvbmZpZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyYXBpU2VydmljZTogU3RhcnBpTWVudVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ2V0U3RyYXBpRGF0YSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb1JvdXRlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1JvdXRlQ2hhbmdlcygpIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB0aGlzLnVwZGF0ZUFjdGl2ZSgpOyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQWN0aXZlKCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmFsbFJvb3RJdGVtcztcclxuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmZpbmRBY3RpdmVFbGVtZW50KGl0ZW1zLCBmYWxzZSk7XHJcbiAgICBjb25zdCBjaGlsZCA9IHRoaXMuZmluZEFjdGl2ZUVsZW1lbnQoaXRlbXMsIHRydWUpO1xyXG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudHMubmV4dCh7IHJvb3QsIGNoaWxkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZpbmRzIGFjdGl2ZSBlbGVtZW50IGZyb20gd2hvbGUgbGlzdC4gUm91dGVyTGluayBoYXMgcHJpb3JpdHkgb3ZlciBjdXN0b20gSWQuICovXHJcbiAgLy8gYXQgdGhpcyB2ZXJzaW9uLCBjaGlsZCBlbGVtZW50cyBzaG91bGQgbm90IGhhdmUgY3VzdG9tSWQsIHNpbmNlIHRoYXQgcHJvcGVydHkgY29tZXMgZnJvbSBzdHJhcGkgYW5kIHN0cmFwaSBwcm92aWRlcyBvbmx5IG9uZSBsZXZlbCBzdHJ1Y3R1cmVcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgcHJpdmF0ZSBmaW5kQWN0aXZlRWxlbWVudChpdGVtczogQ3VzdG9tTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCwgaW5jbHVkZUNoaWxkcmVuOiBib29sZWFuKTogQ3VzdG9tTWVudUl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCFpdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGN1c3RvbUlkRWxlbWVudDogQ3VzdG9tTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIC8vIENoaWxkIGVsZW1lbnQgaGFzIHByaW9yaXR5IG92ZXIgcGFyZW50LCBzbyBuZWVkIHRvIGNoZWNrIGlmIGFueSBjaGlsZCBpcyBhY3RpdmVcclxuICAgICAgaWYgKHRoaXMuaXNFbGVtZW50Um91dGVyTGlua0FjdGl2ZShpdGVtKSkge1xyXG4gICAgICAgIC8vIElmIGhhcyBjaGlsZHJlbiBhbmQgdGhleSBhcmUgdmlzaWJsZSwgcmV0dXJuIGFjdGl2ZSBjaGlsZCBvciBjdXJyZW50IGl0ZW1cclxuICAgICAgICByZXR1cm4gaW5jbHVkZUNoaWxkcmVuID8gdGhpcy5maW5kQWN0aXZlRWxlbWVudChpdGVtLmNoaWxkcmVuLCBpbmNsdWRlQ2hpbGRyZW4pID8/IGl0ZW0gOiBpdGVtO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmIHNlbGVjdGVkIGN1c3RvbSBpZCBlbGVtZW50IGlzIGhpZGRlbiwgbm8gbmVlZCB0byBsb29rIGZvciBpdCBhbmQgc2V0IGl0IHRvIGFjdGl2ZTtcclxuICAgICAgZWxzZSBpZiAoIXRoaXMuaGlkZVNlbGVjdGVkQ3VzdG9tSWQgJiYgdGhpcy5pc0VsZW1lbnRDdXN0b21JZEFjdGl2ZShpdGVtKSkge1xyXG4gICAgICAgIGN1c3RvbUlkRWxlbWVudCA9IGl0ZW07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaW5jbHVkZUNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUNoaWxkID0gdGhpcy5maW5kQWN0aXZlRWxlbWVudChpdGVtLmNoaWxkcmVuLCBpbmNsdWRlQ2hpbGRyZW4pO1xyXG4gICAgICAgIGlmIChhY3RpdmVDaGlsZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFjdGl2ZUNoaWxkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1c3RvbUlkRWxlbWVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RyYXBpRGF0YSgpIHtcclxuICAgIGlmICghdGhpcy5tZW51U2hhcmVkQ29uZmlnPy5kaXNhYmxlU3RyYXBpKSB7XHJcbiAgICAgIHRoaXMuc3RyYXBpU2VydmljZS5nZXRNZW51SXRlbXMoKS5zdWJzY3JpYmUodGhpcy5sb2FkRGF0YS5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWREYXRhKFtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZERhdGEoZGF0YTogQ3VzdG9tTWVudUl0ZW1bXSkge1xyXG4gICAgLy8gaGlkZSBjdXN0b20gaWQgYmFzZWQgb24gaW5wdXQgcGFyYW1cclxuICAgIHRoaXMuc3RyYXBpSXRlbXMgPSAodGhpcy5oaWRlU2VsZWN0ZWRDdXN0b21JZCAmJiB0aGlzLmN1c3RvbUlkKSA/IGRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jdXN0b21JZCAhPT0gdGhpcy5jdXN0b21JZCkgOiBkYXRhO1xyXG4gICAgdGhpcy5fc3RyYXBpR3JvdXAgPSB7XHJcbiAgICAgIC4uLnRoaXMuc3RyYXBpR3JvdXBCYXNlLFxyXG4gICAgICBpdGVtczogdGhpcy5zdHJhcGlJdGVtc1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0cmFwaURhdGFMb2NhdGlvbiA9PT0gU3RyYXBpRGF0YUxvY2F0aW9uLlNUQVJUKSB7XHJcbiAgICAgIHRoaXMuX21lcmdlZEdyb3VwcyA9IFt0aGlzLnN0cmFwaUdyb3VwLCAuLi50aGlzLm1lbnVJdGVtR3JvdXBzID8/IFtdXTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc3RyYXBpRGF0YUxvY2F0aW9uID09PSBTdHJhcGlEYXRhTG9jYXRpb24uRU5EKSB7XHJcbiAgICAgIHRoaXMuX21lcmdlZEdyb3VwcyA9IFsuLi50aGlzLm1lbnVJdGVtR3JvdXBzID8/IFtdLCB0aGlzLnN0cmFwaUdyb3VwXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhbGxJdGVtcyA9IHRoaXMubWVyZ2VkR3JvdXBzLm1hcChtYXAgPT4gbWFwLml0ZW1zKTtcclxuICAgIGxldCBuZXdBcnJheTogQ3VzdG9tTWVudUl0ZW1bXSA9IFtdO1xyXG4gICAgYWxsSXRlbXMuZm9yRWFjaCgoYXJyYXkpID0+IHsgbmV3QXJyYXkgPSBuZXdBcnJheS5jb25jYXQoYXJyYXkpIH0pO1xyXG4gICAgdGhpcy5fYWxsUm9vdEl0ZW1zID0gbmV3QXJyYXk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVBY3RpdmUoKTtcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgLy8gcHJpdmF0ZSBpc01lbnVJdGVtKGl0ZW06IGFueSk6IGl0ZW0gaXMgTWVudUl0ZW1zIHtcclxuICAvLyAgIHJldHVybiBpdGVtLmN1c3RvbUlkO1xyXG4gIC8vIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0VsZW1lbnRDdXN0b21JZEFjdGl2ZShlbGVtZW50OiBDdXN0b21NZW51SXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tSWQgJiYgZWxlbWVudC5jdXN0b21JZCA9PT0gdGhpcy5jdXN0b21JZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFbGVtZW50Um91dGVyTGlua0FjdGl2ZShlbGVtZW50OiBDdXN0b21NZW51SXRlbSkge1xyXG4gICAgY29uc3Qgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnM6IElzQWN0aXZlTWF0Y2hPcHRpb25zID0gKGVsZW1lbnQgYXMgQ3VzdG9tTWVudUl0ZW0pLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zID8/IHRoaXMubWVudVNoYXJlZENvbmZpZy5hY3RpdmVNYXRjaE9wdGlvbnMgPz8gdGhpcy5pc0FjdGl2ZU1hdGNoT3B0aW9ucztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUoZWxlbWVudC5saW5rLCByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import { BehaviorSubject, filter } from 'rxjs';
|
|
4
|
+
import { StrapiDataLocation } from '../components/nav-base/models';
|
|
5
|
+
import { MENU_SHARED_CONFIG } from '../injection-tokens';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "./strapi.service";
|
|
9
|
+
export class MenuItemsService {
|
|
10
|
+
get activeElements() { return this._activeElements.asObservable(); }
|
|
11
|
+
get allRootItems() { return this._allRootItems; }
|
|
12
|
+
get strapiGroup() { return this._strapiGroup; }
|
|
13
|
+
get customId() { return this.menuSharedConfig?.customId; }
|
|
14
|
+
get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }
|
|
15
|
+
get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }
|
|
16
|
+
get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END; }
|
|
17
|
+
get mergedGroups() { return this._mergedGroups; }
|
|
18
|
+
get menuItemGroups() { return this.menuSharedConfig.itemGroups; }
|
|
19
|
+
constructor(router, menuSharedConfig, strapiService) {
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.menuSharedConfig = menuSharedConfig;
|
|
22
|
+
this.strapiService = strapiService;
|
|
23
|
+
this._activeElements = new BehaviorSubject({});
|
|
24
|
+
this.strapiItems = [];
|
|
25
|
+
this.isActiveMatchOptions = {
|
|
26
|
+
matrixParams: 'exact',
|
|
27
|
+
queryParams: 'exact',
|
|
28
|
+
paths: 'exact',
|
|
29
|
+
fragment: 'exact'
|
|
30
|
+
};
|
|
31
|
+
this._mergedGroups = [];
|
|
32
|
+
this.getStrapiData();
|
|
33
|
+
this.subscribeToRouteChanges();
|
|
34
|
+
}
|
|
35
|
+
subscribeToRouteChanges() {
|
|
36
|
+
this.router.events
|
|
37
|
+
.pipe(filter(e => e instanceof NavigationEnd))
|
|
38
|
+
.subscribe(() => { this.updateActive(); });
|
|
39
|
+
}
|
|
40
|
+
updateActive() {
|
|
41
|
+
const items = this.allRootItems;
|
|
42
|
+
const root = this.findActiveElement(items, false);
|
|
43
|
+
const child = this.findActiveElement(items, true);
|
|
44
|
+
this._activeElements.next({ root, child });
|
|
45
|
+
}
|
|
46
|
+
/** Finds active element from whole list. RouterLink has priority over custom Id. */
|
|
47
|
+
// at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
49
|
+
findActiveElement(items, includeChildren) {
|
|
50
|
+
if (!items?.length) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
let customIdElement;
|
|
54
|
+
for (const item of items) {
|
|
55
|
+
// Child element has priority over parent, so need to check if any child is active
|
|
56
|
+
if (this.isElementRouterLinkActive(item)) {
|
|
57
|
+
// If has children and they are visible, return active child or current item
|
|
58
|
+
return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;
|
|
59
|
+
}
|
|
60
|
+
// if selected custom id element is hidden, no need to look for it and set it to active;
|
|
61
|
+
else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {
|
|
62
|
+
customIdElement = item;
|
|
63
|
+
}
|
|
64
|
+
else if (includeChildren && item.children?.length) {
|
|
65
|
+
const activeChild = this.findActiveElement(item.children, includeChildren);
|
|
66
|
+
if (activeChild) {
|
|
67
|
+
return activeChild;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return customIdElement;
|
|
72
|
+
}
|
|
73
|
+
getStrapiData() {
|
|
74
|
+
if (!this.menuSharedConfig?.disableStrapi) {
|
|
75
|
+
this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.loadData([]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
loadData(data) {
|
|
82
|
+
// hide custom id based on input param
|
|
83
|
+
this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;
|
|
84
|
+
this._strapiGroup = {
|
|
85
|
+
...this.strapiGroupBase,
|
|
86
|
+
items: this.strapiItems
|
|
87
|
+
};
|
|
88
|
+
if (this.strapiDataLocation === StrapiDataLocation.START) {
|
|
89
|
+
this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];
|
|
90
|
+
}
|
|
91
|
+
else if (this.strapiDataLocation === StrapiDataLocation.END) {
|
|
92
|
+
this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];
|
|
93
|
+
}
|
|
94
|
+
const allItems = this.mergedGroups.map(map => map.items);
|
|
95
|
+
let newArray = [];
|
|
96
|
+
allItems.forEach((array) => { newArray = newArray.concat(array); });
|
|
97
|
+
this._allRootItems = newArray;
|
|
98
|
+
this.updateActive();
|
|
99
|
+
}
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
+
// private isMenuItem(item: any): item is MenuItems {
|
|
102
|
+
// return item.customId;
|
|
103
|
+
// }
|
|
104
|
+
isElementCustomIdActive(element) {
|
|
105
|
+
return this.customId && element.customId === this.customId;
|
|
106
|
+
}
|
|
107
|
+
isElementRouterLinkActive(element) {
|
|
108
|
+
const routerLinkActiveOptions = element.routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;
|
|
109
|
+
return this.router.isActive(element.link, routerLinkActiveOptions);
|
|
110
|
+
}
|
|
111
|
+
static { this.ɵfac = function MenuItemsService_Factory(t) { return new (t || MenuItemsService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(MENU_SHARED_CONFIG, 8), i0.ɵɵinject(i2.StarpiMenuService)); }; }
|
|
112
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MenuItemsService, factory: MenuItemsService.ɵfac, providedIn: 'root' }); }
|
|
113
|
+
}
|
|
114
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemsService, [{
|
|
115
|
+
type: Injectable,
|
|
116
|
+
args: [{
|
|
117
|
+
providedIn: 'root'
|
|
118
|
+
}]
|
|
119
|
+
}], () => [{ type: i1.Router }, { type: undefined, decorators: [{
|
|
120
|
+
type: Optional
|
|
121
|
+
}, {
|
|
122
|
+
type: Inject,
|
|
123
|
+
args: [MENU_SHARED_CONFIG]
|
|
124
|
+
}] }, { type: i2.StarpiMenuService }], null); })();
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9zZXJ2aWNlcy9tZW51LWl0ZW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBd0IsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFVekQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBT3BFLElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQVMvQyxJQUFZLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQVksb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQzFGLElBQVksZUFBZSxLQUFLLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDaEYsSUFBWSxrQkFBa0IsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsSUFBSSxrQkFBa0Is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dCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSXNBY3RpdmVNYXRjaE9wdGlvbnMsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0cmFwaURhdGFMb2NhdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvbmF2LWJhc2UvbW9kZWxzJztcclxuaW1wb3J0IHsgTUVOVV9TSEFSRURfQ09ORklHIH0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFN0YXJwaU1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zdHJhcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2ZU1lbnVJdGVtcyB9IGZyb20gJy4uL21vZGVscy9hY3RpdmUtbWVudS1pdGVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IEN1c3RvbU1lbnVJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2N1c3RvbS1tZW51LWl0ZW0nO1xyXG5pbXBvcnQgeyBNZW51U2hhcmVkQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL21lbnUtc2hhcmVkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtR3JvdXAgfSBmcm9tICcuLi9tb2RlbHMvbWVudS1pdGVtLWdyb3VwLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtc1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVFbGVtZW50czogQmVoYXZpb3JTdWJqZWN0PEFjdGl2ZU1lbnVJdGVtcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcclxuICBnZXQgYWN0aXZlRWxlbWVudHMoKSB7IHJldHVybiB0aGlzLl9hY3RpdmVFbGVtZW50cy5hc09ic2VydmFibGUoKTsgfVxyXG5cclxuICBwcml2YXRlIHN0cmFwaUl0ZW1zOiBDdXN0b21NZW51SXRlbVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3N0cmFwaUdyb3VwITogTWVudUl0ZW1Hcm91cDtcclxuXHJcbiAgcHJpdmF0ZSBfYWxsUm9vdEl0ZW1zITogQ3VzdG9tTWVudUl0ZW1bXTtcclxuICBnZXQgYWxsUm9vdEl0ZW1zKCkgeyByZXR1cm4gdGhpcy5fYWxsUm9vdEl0ZW1zOyB9XHJcblxyXG4gIGdldCBzdHJhcGlHcm91cCgpIHsgcmV0dXJuIHRoaXMuX3N0cmFwaUdyb3VwOyB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBY3RpdmVNYXRjaE9wdGlvbnM6IElzQWN0aXZlTWF0Y2hPcHRpb25zID0ge1xyXG4gICAgbWF0cml4UGFyYW1zOiAnZXhhY3QnLFxyXG4gICAgcXVlcnlQYXJhbXM6ICdleGFjdCcsXHJcbiAgICBwYXRoczogJ2V4YWN0JyxcclxuICAgIGZyYWdtZW50OiAnZXhhY3QnXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgY3VzdG9tSWQoKSB7IHJldHVybiB0aGlzLm1lbnVTaGFyZWRDb25maWc/LmN1c3RvbUlkOyB9XHJcbiAgcHJpdmF0ZSBnZXQgaGlkZVNlbGVjdGVkQ3VzdG9tSWQoKSB7IHJldHVybiB0aGlzLm1lbnVTaGFyZWRDb25maWc/LmhpZGVTZWxlY3RlZEN1c3RvbUlkOyB9XHJcbiAgcHJpdmF0ZSBnZXQgc3RyYXBpR3JvdXBCYXNlKCkgeyByZXR1cm4gdGhpcy5tZW51U2hhcmVkQ29uZmlnPy5zdHJhcGlHcm91cEJhc2U7IH1cclxuICBwcml2YXRlIGdldCBzdHJhcGlEYXRhTG9jYXRpb24oKSB7IHJldHVybiB0aGlzLm1lbnVTaGFyZWRDb25maWc/LnN0cmFwaURhdGFMb2NhdGlvbiA/PyBTdHJhcGlEYXRhTG9jYXRpb24uRU5EIH1cclxuICBwcml2YXRlIF9tZXJnZWRHcm91cHM6IE1lbnVJdGVtR3JvdXBbXSA9IFtdO1xyXG4gIGdldCBtZXJnZWRHcm91cHMoKSB7IHJldHVybiB0aGlzLl9tZXJnZWRHcm91cHM7IH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgbWVudUl0ZW1Hcm91cHMoKSB7IHJldHVybiB0aGlzLm1lbnVTaGFyZWRDb25maWcuaXRlbUdyb3VwcyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1FTlVfU0hBUkVEX0NPTkZJRykgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVTaGFyZWRDb25maWc6IE1lbnVTaGFyZWRDb25maWcsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmFwaVNlcnZpY2U6IFN0YXJwaU1lbnVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdldFN0cmFwaURhdGEoKTtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHsgdGhpcy51cGRhdGVBY3RpdmUoKTsgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5hbGxSb290SXRlbXM7XHJcbiAgICBjb25zdCByb290ID0gdGhpcy5maW5kQWN0aXZlRWxlbWVudChpdGVtcywgZmFsc2UpO1xyXG4gICAgY29uc3QgY2hpbGQgPSB0aGlzLmZpbmRBY3RpdmVFbGVtZW50KGl0ZW1zLCB0cnVlKTtcclxuICAgIHRoaXMuX2FjdGl2ZUVsZW1lbnRzLm5leHQoeyByb290LCBjaGlsZCB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBGaW5kcyBhY3RpdmUgZWxlbWVudCBmcm9tIHdob2xlIGxpc3QuIFJvdXRlckxpbmsgaGFzIHByaW9yaXR5IG92ZXIgY3VzdG9tIElkLiAqL1xyXG4gIC8vIGF0IHRoaXMgdmVyc2lvbiwgY2hpbGQgZWxlbWVudHMgc2hvdWxkIG5vdCBoYXZlIGN1c3RvbUlkLCBzaW5jZSB0aGF0IHByb3BlcnR5IGNvbWVzIGZyb20gc3RyYXBpIGFuZCBzdHJhcGkgcHJvdmlkZXMgb25seSBvbmUgbGV2ZWwgc3RydWN0dXJlXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gIHByaXZhdGUgZmluZEFjdGl2ZUVsZW1lbnQoaXRlbXM6IEN1c3RvbU1lbnVJdGVtW10gfCB1bmRlZmluZWQsIGluY2x1ZGVDaGlsZHJlbjogYm9vbGVhbik6IEN1c3RvbU1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjdXN0b21JZEVsZW1lbnQ6IEN1c3RvbU1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xyXG4gICAgICAvLyBDaGlsZCBlbGVtZW50IGhhcyBwcmlvcml0eSBvdmVyIHBhcmVudCwgc28gbmVlZCB0byBjaGVjayBpZiBhbnkgY2hpbGQgaXMgYWN0aXZlXHJcbiAgICAgIGlmICh0aGlzLmlzRWxlbWVudFJvdXRlckxpbmtBY3RpdmUoaXRlbSkpIHtcclxuICAgICAgICAvLyBJZiBoYXMgY2hpbGRyZW4gYW5kIHRoZXkgYXJlIHZpc2libGUsIHJldHVybiBhY3RpdmUgY2hpbGQgb3IgY3VycmVudCBpdGVtXHJcbiAgICAgICAgcmV0dXJuIGluY2x1ZGVDaGlsZHJlbiA/IHRoaXMuZmluZEFjdGl2ZUVsZW1lbnQoaXRlbS5jaGlsZHJlbiwgaW5jbHVkZUNoaWxkcmVuKSA/PyBpdGVtIDogaXRlbTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiBzZWxlY3RlZCBjdXN0b20gaWQgZWxlbWVudCBpcyBoaWRkZW4sIG5vIG5lZWQgdG8gbG9vayBmb3IgaXQgYW5kIHNldCBpdCB0byBhY3RpdmU7XHJcbiAgICAgIGVsc2UgaWYgKCF0aGlzLmhpZGVTZWxlY3RlZEN1c3RvbUlkICYmIHRoaXMuaXNFbGVtZW50Q3VzdG9tSWRBY3RpdmUoaXRlbSkpIHtcclxuICAgICAgICBjdXN0b21JZEVsZW1lbnQgPSBpdGVtO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGluY2x1ZGVDaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVDaGlsZCA9IHRoaXMuZmluZEFjdGl2ZUVsZW1lbnQoaXRlbS5jaGlsZHJlbiwgaW5jbHVkZUNoaWxkcmVuKTtcclxuICAgICAgICBpZiAoYWN0aXZlQ2hpbGQpIHtcclxuICAgICAgICAgIHJldHVybiBhY3RpdmVDaGlsZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXN0b21JZEVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0cmFwaURhdGEoKSB7XHJcbiAgICBpZiAoIXRoaXMubWVudVNoYXJlZENvbmZpZz8uZGlzYWJsZVN0cmFwaSkge1xyXG4gICAgICB0aGlzLnN0cmFwaVNlcnZpY2UuZ2V0TWVudUl0ZW1zKCkuc3Vic2NyaWJlKHRoaXMubG9hZERhdGEuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkRGF0YShbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWREYXRhKGRhdGE6IEN1c3RvbU1lbnVJdGVtW10pIHtcclxuICAgIC8vIGhpZGUgY3VzdG9tIGlkIGJhc2VkIG9uIGlucHV0IHBhcmFtXHJcbiAgICB0aGlzLnN0cmFwaUl0ZW1zID0gKHRoaXMuaGlkZVNlbGVjdGVkQ3VzdG9tSWQgJiYgdGhpcy5jdXN0b21JZCkgPyBkYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uY3VzdG9tSWQgIT09IHRoaXMuY3VzdG9tSWQpIDogZGF0YTtcclxuICAgIHRoaXMuX3N0cmFwaUdyb3VwID0ge1xyXG4gICAgICAuLi50aGlzLnN0cmFwaUdyb3VwQmFzZSxcclxuICAgICAgaXRlbXM6IHRoaXMuc3RyYXBpSXRlbXNcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zdHJhcGlEYXRhTG9jYXRpb24gPT09IFN0cmFwaURhdGFMb2NhdGlvbi5TVEFSVCkge1xyXG4gICAgICB0aGlzLl9tZXJnZWRHcm91cHMgPSBbdGhpcy5zdHJhcGlHcm91cCwgLi4udGhpcy5tZW51SXRlbUdyb3VwcyA/PyBbXV07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnN0cmFwaURhdGFMb2NhdGlvbiA9PT0gU3RyYXBpRGF0YUxvY2F0aW9uLkVORCkge1xyXG4gICAgICB0aGlzLl9tZXJnZWRHcm91cHMgPSBbLi4udGhpcy5tZW51SXRlbUdyb3VwcyA/PyBbXSwgdGhpcy5zdHJhcGlHcm91cF07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYWxsSXRlbXMgPSB0aGlzLm1lcmdlZEdyb3Vwcy5tYXAobWFwID0+IG1hcC5pdGVtcyk7XHJcbiAgICBsZXQgbmV3QXJyYXk6IEN1c3RvbU1lbnVJdGVtW10gPSBbXTtcclxuICAgIGFsbEl0ZW1zLmZvckVhY2goKGFycmF5KSA9PiB7IG5ld0FycmF5ID0gbmV3QXJyYXkuY29uY2F0KGFycmF5KSB9KTtcclxuICAgIHRoaXMuX2FsbFJvb3RJdGVtcyA9IG5ld0FycmF5O1xyXG5cclxuICAgIHRoaXMudXBkYXRlQWN0aXZlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIC8vIHByaXZhdGUgaXNNZW51SXRlbShpdGVtOiBhbnkpOiBpdGVtIGlzIE1lbnVJdGVtcyB7XHJcbiAgLy8gICByZXR1cm4gaXRlbS5jdXN0b21JZDtcclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgaXNFbGVtZW50Q3VzdG9tSWRBY3RpdmUoZWxlbWVudDogQ3VzdG9tTWVudUl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUlkICYmIGVsZW1lbnQuY3VzdG9tSWQgPT09IHRoaXMuY3VzdG9tSWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRWxlbWVudFJvdXRlckxpbmtBY3RpdmUoZWxlbWVudDogQ3VzdG9tTWVudUl0ZW0pIHtcclxuICAgIGNvbnN0IHJvdXRlckxpbmtBY3RpdmVPcHRpb25zOiBJc0FjdGl2ZU1hdGNoT3B0aW9ucyA9IChlbGVtZW50IGFzIEN1c3RvbU1lbnVJdGVtKS5yb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyA/PyB0aGlzLm1lbnVTaGFyZWRDb25maWcuYWN0aXZlTWF0Y2hPcHRpb25zID8/IHRoaXMuaXNBY3RpdmVNYXRjaE9wdGlvbnM7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmlzQWN0aXZlKGVsZW1lbnQubGluaywgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from "@angular/core";
|
|
2
|
-
import { STRAPI_API_CONFIG_TOKEN } from "@tilde-nlp/ngx-strapi";
|
|
3
|
-
import { map } from "rxjs";
|
|
4
|
-
import { CollectionTypes } from "@tilde-nlp/strapi-models";
|
|
5
|
-
import { MENU_ICON_STRAPI_EXTENSION } from "../models/menu-icon-strapi-extension.const";
|
|
6
|
-
import { MENU_SHARED_CONFIG } from "../injection-tokens/menu-shared-config.token";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@tilde-nlp/ngx-strapi";
|
|
9
|
-
import * as i2 from "@tilde-nlp/ngx-common";
|
|
10
|
-
export class StarpiMenuService {
|
|
11
|
-
constructor(strapiSubscription, menuConfig, strapiConfig, iconService) {
|
|
12
|
-
this.strapiSubscription = strapiSubscription;
|
|
13
|
-
this.menuConfig = menuConfig;
|
|
14
|
-
this.iconService = iconService;
|
|
15
|
-
this.svgIconNamePrefix = "strapi-menu-icon-";
|
|
16
|
-
this.imgBaseUrl = '';
|
|
17
|
-
this.imgBaseUrl = strapiConfig.apiUrl;
|
|
18
|
-
}
|
|
19
|
-
getMenuItems() {
|
|
20
|
-
const responseObs = this.strapiSubscription.subscribeCollectionType(CollectionTypes.MENU_ITEMS)
|
|
21
|
-
.pipe(map((items) => {
|
|
22
|
-
// Remove disabled items so they are not processed later.
|
|
23
|
-
const convertedItems = [];
|
|
24
|
-
if (!items || items.length === 0) {
|
|
25
|
-
return convertedItems;
|
|
26
|
-
}
|
|
27
|
-
items = items.filter(item => !item.disabled);
|
|
28
|
-
items.forEach((menu) => {
|
|
29
|
-
menu.link = this.addBaseUrlIfNecessary(menu.link);
|
|
30
|
-
const originalMenuIcon = menu.icon.data.attributes;
|
|
31
|
-
if (originalMenuIcon.url.startsWith('/')) {
|
|
32
|
-
originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;
|
|
33
|
-
}
|
|
34
|
-
if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {
|
|
35
|
-
// add custom prefix so that it is not easy to mix with other icons in registry
|
|
36
|
-
menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;
|
|
37
|
-
this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);
|
|
38
|
-
}
|
|
39
|
-
convertedItems.push(this.convertToCustomMenuItem(menu));
|
|
40
|
-
});
|
|
41
|
-
return convertedItems;
|
|
42
|
-
}));
|
|
43
|
-
return responseObs;
|
|
44
|
-
}
|
|
45
|
-
unsubscribe() {
|
|
46
|
-
this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);
|
|
47
|
-
}
|
|
48
|
-
addBaseUrlIfNecessary(link) {
|
|
49
|
-
if (!this.menuConfig?.baseUrl) {
|
|
50
|
-
return link;
|
|
51
|
-
}
|
|
52
|
-
try {
|
|
53
|
-
new URL(link);
|
|
54
|
-
// eslint-disable-next-line no-empty
|
|
55
|
-
}
|
|
56
|
-
catch { }
|
|
57
|
-
try {
|
|
58
|
-
return new URL(link, this.menuConfig.baseUrl).href;
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return link;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
convertToCustomMenuItem(item) {
|
|
65
|
-
return {
|
|
66
|
-
icon: item.icon.data.attributes.name,
|
|
67
|
-
link: item.link,
|
|
68
|
-
title: item.title,
|
|
69
|
-
externalLink: item.externalLink,
|
|
70
|
-
// Material icons should not come from strapi
|
|
71
|
-
materialIcon: false,
|
|
72
|
-
plausibleEvent: item.plausibleEvent,
|
|
73
|
-
customId: item.customId
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
static { this.ɵfac =
|
|
77
|
-
static { this.ɵprov = i0.ɵɵ
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable, Optional } from "@angular/core";
|
|
2
|
+
import { STRAPI_API_CONFIG_TOKEN } from "@tilde-nlp/ngx-strapi";
|
|
3
|
+
import { map } from "rxjs";
|
|
4
|
+
import { CollectionTypes } from "@tilde-nlp/strapi-models";
|
|
5
|
+
import { MENU_ICON_STRAPI_EXTENSION } from "../models/menu-icon-strapi-extension.const";
|
|
6
|
+
import { MENU_SHARED_CONFIG } from "../injection-tokens/menu-shared-config.token";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@tilde-nlp/ngx-strapi";
|
|
9
|
+
import * as i2 from "@tilde-nlp/ngx-common";
|
|
10
|
+
export class StarpiMenuService {
|
|
11
|
+
constructor(strapiSubscription, menuConfig, strapiConfig, iconService) {
|
|
12
|
+
this.strapiSubscription = strapiSubscription;
|
|
13
|
+
this.menuConfig = menuConfig;
|
|
14
|
+
this.iconService = iconService;
|
|
15
|
+
this.svgIconNamePrefix = "strapi-menu-icon-";
|
|
16
|
+
this.imgBaseUrl = '';
|
|
17
|
+
this.imgBaseUrl = strapiConfig.apiUrl;
|
|
18
|
+
}
|
|
19
|
+
getMenuItems() {
|
|
20
|
+
const responseObs = this.strapiSubscription.subscribeCollectionType(CollectionTypes.MENU_ITEMS)
|
|
21
|
+
.pipe(map((items) => {
|
|
22
|
+
// Remove disabled items so they are not processed later.
|
|
23
|
+
const convertedItems = [];
|
|
24
|
+
if (!items || items.length === 0) {
|
|
25
|
+
return convertedItems;
|
|
26
|
+
}
|
|
27
|
+
items = items.filter(item => !item.disabled);
|
|
28
|
+
items.forEach((menu) => {
|
|
29
|
+
menu.link = this.addBaseUrlIfNecessary(menu.link);
|
|
30
|
+
const originalMenuIcon = menu.icon.data.attributes;
|
|
31
|
+
if (originalMenuIcon.url.startsWith('/')) {
|
|
32
|
+
originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;
|
|
33
|
+
}
|
|
34
|
+
if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {
|
|
35
|
+
// add custom prefix so that it is not easy to mix with other icons in registry
|
|
36
|
+
menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;
|
|
37
|
+
this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);
|
|
38
|
+
}
|
|
39
|
+
convertedItems.push(this.convertToCustomMenuItem(menu));
|
|
40
|
+
});
|
|
41
|
+
return convertedItems;
|
|
42
|
+
}));
|
|
43
|
+
return responseObs;
|
|
44
|
+
}
|
|
45
|
+
unsubscribe() {
|
|
46
|
+
this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);
|
|
47
|
+
}
|
|
48
|
+
addBaseUrlIfNecessary(link) {
|
|
49
|
+
if (!this.menuConfig?.baseUrl) {
|
|
50
|
+
return link;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
new URL(link);
|
|
54
|
+
// eslint-disable-next-line no-empty
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
try {
|
|
58
|
+
return new URL(link, this.menuConfig.baseUrl).href;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return link;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
convertToCustomMenuItem(item) {
|
|
65
|
+
return {
|
|
66
|
+
icon: item.icon.data.attributes.name,
|
|
67
|
+
link: item.link,
|
|
68
|
+
title: item.title,
|
|
69
|
+
externalLink: item.externalLink,
|
|
70
|
+
// Material icons should not come from strapi
|
|
71
|
+
materialIcon: false,
|
|
72
|
+
plausibleEvent: item.plausibleEvent,
|
|
73
|
+
customId: item.customId
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = function StarpiMenuService_Factory(t) { return new (t || StarpiMenuService)(i0.ɵɵinject(i1.StrapiSubscriptionService), i0.ɵɵinject(MENU_SHARED_CONFIG, 8), i0.ɵɵinject(STRAPI_API_CONFIG_TOKEN), i0.ɵɵinject(i2.IconService)); }; }
|
|
77
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StarpiMenuService, factory: StarpiMenuService.ɵfac, providedIn: 'root' }); }
|
|
78
|
+
}
|
|
79
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StarpiMenuService, [{
|
|
80
|
+
type: Injectable,
|
|
81
|
+
args: [{
|
|
82
|
+
providedIn: 'root'
|
|
83
|
+
}]
|
|
84
|
+
}], () => [{ type: i1.StrapiSubscriptionService }, { type: undefined, decorators: [{
|
|
85
|
+
type: Optional
|
|
86
|
+
}, {
|
|
87
|
+
type: Inject,
|
|
88
|
+
args: [MENU_SHARED_CONFIG]
|
|
89
|
+
}] }, { type: undefined, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: [STRAPI_API_CONFIG_TOKEN]
|
|
92
|
+
}] }, { type: i2.IconService }], null); })();
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL3NlcnZpY2VzL3N0cmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQThDLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFLbEYsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUE2QixrQkFBNkMsRUFDZixVQUE0QixFQUNwRCxZQUE2QixFQUM3QyxXQUF3QjtRQUhkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUVwRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU5sQyxzQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUNqRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBTWQsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFZLGVBQWUsQ0FBQyxVQUFVLENBQUM7YUFDdkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtZQUN0Qyx5REFBeUQ7WUFFekQsTUFBTSxjQUFjLEdBQXFCLEVBQUUsQ0FBQztZQUM1QyxJ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QVUsRUFBRSxNQUFNO2FBQ25COztzQkFNSSxRQUFROztzQkFBSSxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQ3JDLE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSBcIkB0aWxkZS1ubHAvbmd4LWNvbW1vblwiO1xyXG5pbXBvcnQgeyBTdHJhcGlBcGlDb25maWcsIFN0cmFwaVN1YnNjcmlwdGlvblNlcnZpY2UsIFNUUkFQSV9BUElfQ09ORklHX1RPS0VOIH0gZnJvbSBcIkB0aWxkZS1ubHAvbmd4LXN0cmFwaVwiO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHlwZXMsIE1lbnVJdGVtcyB9IGZyb20gXCJAdGlsZGUtbmxwL3N0cmFwaS1tb2RlbHNcIjtcclxuaW1wb3J0IHsgQ3VzdG9tTWVudUl0ZW0gfSBmcm9tIFwiLi4vbW9kZWxzL2N1c3RvbS1tZW51LWl0ZW1cIjtcclxuaW1wb3J0IHsgTUVOVV9JQ09OX1NUUkFQSV9FWFRFTlNJT04gfSBmcm9tIFwiLi4vbW9kZWxzL21lbnUtaWNvbi1zdHJhcGktZXh0ZW5zaW9uLmNvbnN0XCI7XHJcbmltcG9ydCB7IE1lbnVTaGFyZWRDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL21lbnUtc2hhcmVkLWNvbmZpZy5tb2RlbFwiO1xyXG5pbXBvcnQgeyBNRU5VX1NIQVJFRF9DT05GSUcgfSBmcm9tIFwiLi4vaW5qZWN0aW9uLXRva2Vucy9tZW51LXNoYXJlZC1jb25maWcudG9rZW5cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXJwaU1lbnVTZXJ2aWNlIHtcclxuICByZWFkb25seSBzdmdJY29uTmFtZVByZWZpeCA9IFwic3RyYXBpLW1lbnUtaWNvbi1cIjtcclxuICBpbWdCYXNlVXJsID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RyYXBpU3Vic2NyaXB0aW9uOiBTdHJhcGlTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNRU5VX1NIQVJFRF9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgbWVudUNvbmZpZzogTWVudVNoYXJlZENvbmZpZyxcclxuICAgIEBJbmplY3QoU1RSQVBJX0FQSV9DT05GSUdfVE9LRU4pIHN0cmFwaUNvbmZpZzogU3RyYXBpQXBpQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UpIHtcclxuICAgIHRoaXMuaW1nQmFzZVVybCA9IHN0cmFwaUNvbmZpZy5hcGlVcmw7XHJcbiAgfVxyXG5cclxuICBnZXRNZW51SXRlbXMoKTogT2JzZXJ2YWJsZTxDdXN0b21NZW51SXRlbVtdPiB7XHJcbiAgICBjb25zdCByZXNwb25zZU9icyA9IHRoaXMuc3RyYXBpU3Vic2NyaXB0aW9uLnN1YnNjcmliZUNvbGxlY3Rpb25UeXBlPE1lbnVJdGVtcz4oQ29sbGVjdGlvblR5cGVzLk1FTlVfSVRFTVMpXHJcbiAgICAgIC5waXBlKG1hcCgoaXRlbXM6IE1lbnVJdGVtc1tdIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIC8vIFJlbW92ZSBkaXNhYmxlZCBpdGVtcyBzbyB0aGV5IGFyZSBub3QgcHJvY2Vzc2VkIGxhdGVyLlxyXG5cclxuICAgICAgICBjb25zdCBjb252ZXJ0ZWRJdGVtczogQ3VzdG9tTWVudUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gY29udmVydGVkSXRlbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xyXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKG1lbnU6IE1lbnVJdGVtcykgPT4ge1xyXG4gICAgICAgICAgbWVudS5saW5rID0gdGhpcy5hZGRCYXNlVXJsSWZOZWNlc3NhcnkobWVudS5saW5rKTtcclxuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTWVudUljb24gPSBtZW51Lmljb24uZGF0YS5hdHRyaWJ1dGVzO1xyXG4gICAgICAgICAgaWYgKG9yaWdpbmFsTWVudUljb24udXJsLnN0YXJ0c1dpdGgoJy8nKSkge1xyXG4gICAgICAgICAgICBvcmlnaW5hbE1lbnVJY29uLnVybCA9IHRoaXMuaW1nQmFzZVVybCArIG9yaWdpbmFsTWVudUljb24udXJsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChvcmlnaW5hbE1lbnVJY29uLmV4dCA9PT0gTUVOVV9JQ09OX1NUUkFQSV9FWFRFTlNJT04pIHtcclxuICAgICAgICAgICAgLy8gYWRkIGN1c3RvbSBwcmVmaXggc28gdGhhdCBpdCBpcyBub3QgZWFzeSB0byBtaXggd2l0aCBvdGhlciBpY29ucyBpbiByZWdpc3RyeVxyXG4gICAgICAgICAgICBtZW51Lmljb24uZGF0YS5hdHRyaWJ1dGVzLm5hbWUgPSB0aGlzLnN2Z0ljb25OYW1lUHJlZml4ICsgb3JpZ2luYWxNZW51SWNvbi5uYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbkZyb21Vcmwob3JpZ2luYWxNZW51SWNvbi5uYW1lLCBvcmlnaW5hbE1lbnVJY29uLnVybCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29udmVydGVkSXRlbXMucHVzaCh0aGlzLmNvbnZlcnRUb0N1c3RvbU1lbnVJdGVtKG1lbnUpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gY29udmVydGVkSXRlbXM7XHJcbiAgICAgIH0pKTtcclxuICAgIHJldHVybiByZXNwb25zZU9icztcclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHJhcGlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoQ29sbGVjdGlvblR5cGVzLk1FTlVfSVRFTVMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRCYXNlVXJsSWZOZWNlc3NhcnkobGluazogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5tZW51Q29uZmlnPy5iYXNlVXJsKSB7XHJcbiAgICAgIHJldHVybiBsaW5rO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgbmV3IFVSTChsaW5rKTtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XHJcbiAgICB9IGNhdGNoIHsgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIG5ldyBVUkwobGluaywgdGhpcy5tZW51Q29uZmlnLmJhc2VVcmwpLmhyZWY7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuIGxpbms7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRUb0N1c3RvbU1lbnVJdGVtKGl0ZW06IE1lbnVJdGVtcyk6IEN1c3RvbU1lbnVJdGVtIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGljb246IGl0ZW0uaWNvbi5kYXRhLmF0dHJpYnV0ZXMubmFtZSxcclxuICAgICAgbGluazogaXRlbS5saW5rLFxyXG4gICAgICB0aXRsZTogaXRlbS50aXRsZSxcclxuICAgICAgZXh0ZXJuYWxMaW5rOiBpdGVtLmV4dGVybmFsTGluayxcclxuICAgICAgLy8gTWF0ZXJpYWwgaWNvbnMgc2hvdWxkIG5vdCBjb21lIGZyb20gc3RyYXBpXHJcbiAgICAgIG1hdGVyaWFsSWNvbjogZmFsc2UsXHJcbiAgICAgIHBsYXVzaWJsZUV2ZW50OiBpdGVtLnBsYXVzaWJsZUV2ZW50LFxyXG4gICAgICBjdXN0b21JZDogaXRlbS5jdXN0b21JZFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of ngx-menu
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/components/side-nav-menu';
|
|
5
|
-
export * from './lib/injection-tokens';
|
|
6
|
-
export * from './lib/models';
|
|
7
|
-
export * from './lib/menu.module';
|
|
8
|
-
export * from './lib/components/menu-item-icon/menu.model';
|
|
9
|
-
export * from './lib/components/side-nav-menu/side-nav-menu.component';
|
|
10
|
-
export * from './lib/components/modal-nav-menu/modal-nav-menu.component';
|
|
11
|
-
export * from './lib/components/menu-item-icon/menu-item-icon.component';
|
|
12
|
-
export * from './lib/components/menu-columns/menu-columns.component';
|
|
13
|
-
export * from './lib/components/nav-base/nav-base.component';
|
|
14
|
-
export * from './lib/components/nav-base/models';
|
|
15
|
-
export * from "./lib/services";
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-menu
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/components/side-nav-menu';
|
|
5
|
+
export * from './lib/injection-tokens';
|
|
6
|
+
export * from './lib/models';
|
|
7
|
+
export * from './lib/menu.module';
|
|
8
|
+
export * from './lib/components/menu-item-icon/menu.model';
|
|
9
|
+
export * from './lib/components/side-nav-menu/side-nav-menu.component';
|
|
10
|
+
export * from './lib/components/modal-nav-menu/modal-nav-menu.component';
|
|
11
|
+
export * from './lib/components/menu-item-icon/menu-item-icon.component';
|
|
12
|
+
export * from './lib/components/menu-columns/menu-columns.component';
|
|
13
|
+
export * from './lib/components/nav-base/nav-base.component';
|
|
14
|
+
export * from './lib/components/nav-base/models';
|
|
15
|
+
export * from "./lib/services";
|
|
16
16
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1tZW51XHJcbiAqL1xyXG5cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luamVjdGlvbi10b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWVudS1pdGVtLWljb24vbWVudS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9kYWwtbmF2LW1lbnUvbW9kYWwtbmF2LW1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0taWNvbi9tZW51LWl0ZW0taWNvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21lbnUtY29sdW1ucy9tZW51LWNvbHVtbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uYXYtYmFzZS9uYXYtYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdi1iYXNlL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlc1wiO1xyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZGUtbmxwLW5neC1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL3RpbGRlLW5scC1uZ3gtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|