@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.
Files changed (71) hide show
  1. package/esm2022/lib/assets/menu-logo.svg.mjs +1 -1
  2. package/esm2022/lib/components/menu-columns/menu-columns.component.mjs +103 -72
  3. package/esm2022/lib/components/menu-icon/menu-icon.component.mjs +53 -23
  4. package/esm2022/lib/components/menu-item-icon/menu-item-icon.component.mjs +115 -71
  5. package/esm2022/lib/components/menu-item-icon/menu.model.mjs +3 -3
  6. package/esm2022/lib/components/menu-item-icon/models/menu-dialog-settings.model.mjs +1 -1
  7. package/esm2022/lib/components/menu-item-icon/models/menu-item-settings.model.mjs +1 -1
  8. package/esm2022/lib/components/menu-item-icon/models/menu-title-placement.model.mjs +6 -6
  9. package/esm2022/lib/components/menu-item-link/menu-item-link.component.mjs +91 -53
  10. package/esm2022/lib/components/menu-item-list/menu-item-list.component.mjs +178 -61
  11. package/esm2022/lib/components/modal-nav-menu/modal-nav-menu.component.mjs +82 -36
  12. package/esm2022/lib/components/nav-base/models/index.mjs +1 -1
  13. package/esm2022/lib/components/nav-base/models/strapi-data-location.enum.mjs +6 -6
  14. package/esm2022/lib/components/nav-base/nav-base.component.mjs +37 -32
  15. package/esm2022/lib/components/side-nav-menu/index.mjs +2 -2
  16. package/esm2022/lib/components/side-nav-menu/models/index.mjs +1 -1
  17. package/esm2022/lib/components/side-nav-menu/models/side-nav-settings.model.mjs +1 -1
  18. package/esm2022/lib/components/side-nav-menu/side-nav-menu.component.mjs +130 -93
  19. package/esm2022/lib/injection-tokens/index.mjs +1 -1
  20. package/esm2022/lib/injection-tokens/menu-shared-config.token.mjs +1 -1
  21. package/esm2022/lib/menu.module.mjs +114 -113
  22. package/esm2022/lib/models/active-menu-item-config.model.mjs +1 -1
  23. package/esm2022/lib/models/active-menu-items.model.mjs +1 -1
  24. package/esm2022/lib/models/custom-menu-item.mjs +1 -1
  25. package/esm2022/lib/models/index.mjs +7 -7
  26. package/esm2022/lib/models/menu-icon-strapi-extension.const.mjs +1 -1
  27. package/esm2022/lib/models/menu-item-group.model.mjs +1 -1
  28. package/esm2022/lib/models/menu-layout-direction.model.mjs +5 -5
  29. package/esm2022/lib/models/menu-shared-config.model.mjs +1 -1
  30. package/esm2022/lib/services/index.mjs +2 -2
  31. package/esm2022/lib/services/menu-items.service.mjs +125 -125
  32. package/esm2022/lib/services/strapi.service.mjs +93 -93
  33. package/esm2022/public-api.mjs +15 -15
  34. package/esm2022/tilde-nlp-ngx-menu.mjs +4 -4
  35. package/fesm2022/tilde-nlp-ngx-menu.mjs +1016 -667
  36. package/fesm2022/tilde-nlp-ngx-menu.mjs.map +1 -1
  37. package/index.d.ts +5 -5
  38. package/lib/assets/menu-logo.svg.d.ts +1 -1
  39. package/lib/components/menu-columns/menu-columns.component.d.ts +28 -28
  40. package/lib/components/menu-icon/menu-icon.component.d.ts +10 -10
  41. package/lib/components/menu-item-icon/menu-item-icon.component.d.ts +28 -28
  42. package/lib/components/menu-item-icon/menu.model.d.ts +3 -3
  43. package/lib/components/menu-item-icon/models/menu-dialog-settings.model.d.ts +8 -8
  44. package/lib/components/menu-item-icon/models/menu-item-settings.model.d.ts +6 -6
  45. package/lib/components/menu-item-icon/models/menu-title-placement.model.d.ts +5 -5
  46. package/lib/components/menu-item-link/menu-item-link.component.d.ts +25 -25
  47. package/lib/components/menu-item-list/menu-item-list.component.d.ts +21 -21
  48. package/lib/components/modal-nav-menu/modal-nav-menu.component.d.ts +14 -14
  49. package/lib/components/nav-base/models/index.d.ts +1 -1
  50. package/lib/components/nav-base/models/strapi-data-location.enum.d.ts +5 -5
  51. package/lib/components/nav-base/nav-base.component.d.ts +19 -19
  52. package/lib/components/side-nav-menu/index.d.ts +2 -2
  53. package/lib/components/side-nav-menu/models/index.d.ts +1 -1
  54. package/lib/components/side-nav-menu/models/side-nav-settings.model.d.ts +7 -7
  55. package/lib/components/side-nav-menu/side-nav-menu.component.d.ts +33 -33
  56. package/lib/injection-tokens/index.d.ts +1 -1
  57. package/lib/injection-tokens/menu-shared-config.token.d.ts +1 -1
  58. package/lib/menu.module.d.ts +29 -29
  59. package/lib/models/active-menu-item-config.model.d.ts +4 -4
  60. package/lib/models/active-menu-items.model.d.ts +6 -6
  61. package/lib/models/custom-menu-item.d.ts +21 -21
  62. package/lib/models/index.d.ts +7 -7
  63. package/lib/models/menu-icon-strapi-extension.const.d.ts +1 -1
  64. package/lib/models/menu-item-group.model.d.ts +9 -9
  65. package/lib/models/menu-layout-direction.model.d.ts +4 -4
  66. package/lib/models/menu-shared-config.model.d.ts +21 -21
  67. package/lib/services/index.d.ts +2 -2
  68. package/lib/services/menu-items.service.d.ts +38 -38
  69. package/lib/services/strapi.service.d.ts +20 -20
  70. package/package.json +12 -9
  71. 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 = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, deps: [{ token: i1.Router }, { token: MENU_SHARED_CONFIG, optional: true }, { token: i2.StarpiMenuService }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, providedIn: 'root' }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuItemsService, decorators: [{
115
- type: Injectable,
116
- args: [{
117
- providedIn: 'root'
118
- }]
119
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
120
- type: Optional
121
- }, {
122
- type: Inject,
123
- args: [MENU_SHARED_CONFIG]
124
- }] }, { type: i2.StarpiMenuService }]; } });
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 = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, deps: [{ token: i1.StrapiSubscriptionService }, { token: MENU_SHARED_CONFIG, optional: true }, { token: STRAPI_API_CONFIG_TOKEN }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Injectable }); }
77
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, providedIn: 'root' }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StarpiMenuService, decorators: [{
80
- type: Injectable,
81
- args: [{
82
- providedIn: 'root'
83
- }]
84
- }], ctorParameters: function () { return [{ 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 }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL3NlcnZpY2VzL3N0cmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQThDLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFLbEYsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUE2QixrQkFBNkMsRUFDZixVQUE0QixFQUNwRCxZQUE2QixFQUM3QyxXQUF3QjtRQUhkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUVwRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU5sQyxzQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztRQUNqRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBTWQsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFZLGVBQWUsQ0FBQyxVQUFVLENBQUM7YUFDdkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtZQUN0Qyx5REFBeUQ7WUFFekQsTUFBTSxjQUFjLEdBQXFCLEVBQUUsQ0FBQztZQUM1QyxJ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Q29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tIFwiQHRpbGRlLW5scC9uZ3gtY29tbW9uXCI7XHJcbmltcG9ydCB7IFN0cmFwaUFwaUNvbmZpZywgU3RyYXBpU3Vic2NyaXB0aW9uU2VydmljZSwgU1RSQVBJX0FQSV9DT05GSUdfVE9LRU4gfSBmcm9tIFwiQHRpbGRlLW5scC9uZ3gtc3RyYXBpXCI7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UeXBlcywgTWVudUl0ZW1zIH0gZnJvbSBcIkB0aWxkZS1ubHAvc3RyYXBpLW1vZGVsc1wiO1xyXG5pbXBvcnQgeyBDdXN0b21NZW51SXRlbSB9IGZyb20gXCIuLi9tb2RlbHMvY3VzdG9tLW1lbnUtaXRlbVwiO1xyXG5pbXBvcnQgeyBNRU5VX0lDT05fU1RSQVBJX0VYVEVOU0lPTiB9IGZyb20gXCIuLi9tb2RlbHMvbWVudS1pY29uLXN0cmFwaS1leHRlbnNpb24uY29uc3RcIjtcclxuaW1wb3J0IHsgTWVudVNoYXJlZENvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvbWVudS1zaGFyZWQtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IE1FTlVfU0hBUkVEX0NPTkZJRyB9IGZyb20gXCIuLi9pbmplY3Rpb24tdG9rZW5zL21lbnUtc2hhcmVkLWNvbmZpZy50b2tlblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhcnBpTWVudVNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IHN2Z0ljb25OYW1lUHJlZml4ID0gXCJzdHJhcGktbWVudS1pY29uLVwiO1xyXG4gIGltZ0Jhc2VVcmwgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdHJhcGlTdWJzY3JpcHRpb246IFN0cmFwaVN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1FTlVfU0hBUkVEX0NPTkZJRykgcHJpdmF0ZSByZWFkb25seSBtZW51Q29uZmlnOiBNZW51U2hhcmVkQ29uZmlnLFxyXG4gICAgQEluamVjdChTVFJBUElfQVBJX0NPTkZJR19UT0tFTikgc3RyYXBpQ29uZmlnOiBTdHJhcGlBcGlDb25maWcsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSkge1xyXG4gICAgdGhpcy5pbWdCYXNlVXJsID0gc3RyYXBpQ29uZmlnLmFwaVVybDtcclxuICB9XHJcblxyXG4gIGdldE1lbnVJdGVtcygpOiBPYnNlcnZhYmxlPEN1c3RvbU1lbnVJdGVtW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlT2JzID0gdGhpcy5zdHJhcGlTdWJzY3JpcHRpb24uc3Vic2NyaWJlQ29sbGVjdGlvblR5cGU8TWVudUl0ZW1zPihDb2xsZWN0aW9uVHlwZXMuTUVOVV9JVEVNUylcclxuICAgICAgLnBpcGUobWFwKChpdGVtczogTWVudUl0ZW1zW10gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgLy8gUmVtb3ZlIGRpc2FibGVkIGl0ZW1zIHNvIHRoZXkgYXJlIG5vdCBwcm9jZXNzZWQgbGF0ZXIuXHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZEl0ZW1zOiBDdXN0b21NZW51SXRlbVtdID0gW107XHJcbiAgICAgICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRJdGVtcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XHJcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgobWVudTogTWVudUl0ZW1zKSA9PiB7XHJcbiAgICAgICAgICBtZW51LmxpbmsgPSB0aGlzLmFkZEJhc2VVcmxJZk5lY2Vzc2FyeShtZW51LmxpbmspO1xyXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxNZW51SWNvbiA9IG1lbnUuaWNvbi5kYXRhLmF0dHJpYnV0ZXM7XHJcbiAgICAgICAgICBpZiAob3JpZ2luYWxNZW51SWNvbi51cmwuc3RhcnRzV2l0aCgnLycpKSB7XHJcbiAgICAgICAgICAgIG9yaWdpbmFsTWVudUljb24udXJsID0gdGhpcy5pbWdCYXNlVXJsICsgb3JpZ2luYWxNZW51SWNvbi51cmw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKG9yaWdpbmFsTWVudUljb24uZXh0ID09PSBNRU5VX0lDT05fU1RSQVBJX0VYVEVOU0lPTikge1xyXG4gICAgICAgICAgICAvLyBhZGQgY3VzdG9tIHByZWZpeCBzbyB0aGF0IGl0IGlzIG5vdCBlYXN5IHRvIG1peCB3aXRoIG90aGVyIGljb25zIGluIHJlZ2lzdHJ5XHJcbiAgICAgICAgICAgIG1lbnUuaWNvbi5kYXRhLmF0dHJpYnV0ZXMubmFtZSA9IHRoaXMuc3ZnSWNvbk5hbWVQcmVmaXggKyBvcmlnaW5hbE1lbnVJY29uLm5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJJY29uRnJvbVVybChvcmlnaW5hbE1lbnVJY29uLm5hbWUsIG9yaWdpbmFsTWVudUljb24udXJsKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb252ZXJ0ZWRJdGVtcy5wdXNoKHRoaXMuY29udmVydFRvQ3VzdG9tTWVudUl0ZW0obWVudSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBjb252ZXJ0ZWRJdGVtcztcclxuICAgICAgfSkpO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlT2JzO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0cmFwaVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZShDb2xsZWN0aW9uVHlwZXMuTUVOVV9JVEVNUyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEJhc2VVcmxJZk5lY2Vzc2FyeShsaW5rOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm1lbnVDb25maWc/LmJhc2VVcmwpIHtcclxuICAgICAgcmV0dXJuIGxpbms7XHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICBuZXcgVVJMKGxpbmspO1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcclxuICAgIH0gY2F0Y2ggeyB9XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gbmV3IFVSTChsaW5rLCB0aGlzLm1lbnVDb25maWcuYmFzZVVybCkuaHJlZjtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbGluaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFRvQ3VzdG9tTWVudUl0ZW0oaXRlbTogTWVudUl0ZW1zKTogQ3VzdG9tTWVudUl0ZW0ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWNvbjogaXRlbS5pY29uLmRhdGEuYXR0cmlidXRlcy5uYW1lLFxyXG4gICAgICBsaW5rOiBpdGVtLmxpbmssXHJcbiAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxyXG4gICAgICBleHRlcm5hbExpbms6IGl0ZW0uZXh0ZXJuYWxMaW5rLFxyXG4gICAgICAvLyBNYXRlcmlhbCBpY29ucyBzaG91bGQgbm90IGNvbWUgZnJvbSBzdHJhcGlcclxuICAgICAgbWF0ZXJpYWxJY29uOiBmYWxzZSxcclxuICAgICAgcGxhdXNpYmxlRXZlbnQ6IGl0ZW0ucGxhdXNpYmxlRXZlbnQsXHJcbiAgICAgIGN1c3RvbUlkOiBpdGVtLmN1c3RvbUlkXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
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=
@@ -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