@tilde-nlp/ngx-menu 6.1.5 → 6.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9jb21wb25lbnRzL3NpZGUtbmF2LW1lbnUvbW9kZWxzL3VzZXItb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBjYWxsYmFjazogKCkgPT4gdm9pZDtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGlzSWNvbkN1c3RvbT86IGJvb2xlYW47XHJcbiAgaXNJY29uT3V0bGluZWQ/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9jb21wb25lbnRzL3NpZGUtbmF2LW1lbnUvbW9kZWxzL3VzZXItb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyT3B0aW9ucyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBjYWxsYmFjaz86ICgpID0+IHZvaWQ7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBocmVmPzogc3RyaW5nO1xyXG4gIGlzTGluaz86IGJvb2xlYW47XHJcbiAgb3BlbkluTmV3VGFiPzogYm9vbGVhbjtcclxuICBpc0ljb25DdXN0b20/OiBib29sZWFuO1xyXG4gIGlzSWNvbk91dGxpbmVkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -6,12 +6,15 @@ import * as i1 from "@tilde-nlp/ngx-strapi";
6
6
  import * as i2 from "@tilde-nlp/ngx-common";
7
7
  import * as i3 from "../../services/menu-items.service";
8
8
  import * as i4 from "@ngbracket/ngx-layout/flex";
9
- import * as i5 from "@angular/common";
10
- import * as i6 from "@angular/material/icon";
11
- import * as i7 from "@angular/material/button";
12
- import * as i8 from "@angular/material/menu";
13
- import * as i9 from "../menu-columns/menu-columns.component";
14
- import * as i10 from "@ngx-translate/core";
9
+ import * as i5 from "@angular/router";
10
+ import * as i6 from "@angular/common";
11
+ import * as i7 from "@angular/material/icon";
12
+ import * as i8 from "@angular/material/button";
13
+ import * as i9 from "@angular/material/menu";
14
+ import * as i10 from "../menu-columns/menu-columns.component";
15
+ import * as i11 from "@ngx-translate/core";
16
+ const _forTrack0 = ($index, $item) => $item.label;
17
+ const _c0 = (a0, a1, a2, a3) => ({ icon: a0, isIconCustom: a1, isIconOutlined: a2, label: a3 });
15
18
  function SideNavMenuComponent_a_3_Template(rf, ctx) { if (rf & 1) {
16
19
  const _r2 = i0.ɵɵgetCurrentView();
17
20
  i0.ɵɵelementStart(0, "a", 13);
@@ -47,7 +50,7 @@ function SideNavMenuComponent_button_10_ng_container_4_Template(rf, ctx) { if (r
47
50
  i0.ɵɵelementStart(1, "span", 18);
48
51
  i0.ɵɵtext(2);
49
52
  i0.ɵɵelementEnd();
50
- i0.ɵɵtemplate(3, SideNavMenuComponent_button_10_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 19)(4, SideNavMenuComponent_button_10_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
53
+ i0.ɵɵtemplate(3, SideNavMenuComponent_button_10_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 19)(4, SideNavMenuComponent_button_10_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
51
54
  i0.ɵɵelementContainerEnd();
52
55
  } if (rf & 2) {
53
56
  const iconDown_r4 = i0.ɵɵreference(5);
@@ -60,7 +63,7 @@ function SideNavMenuComponent_button_10_ng_container_4_Template(rf, ctx) { if (r
60
63
  i0.ɵɵproperty("ngIf", state_r5.menuOpen)("ngIfElse", iconDown_r4);
61
64
  } }
62
65
  function SideNavMenuComponent_button_10_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementStart(0, "button", 15, 1)(2, "div", 16);
66
+ i0.ɵɵelementStart(0, "button", 15, 2)(2, "div", 16);
64
67
  i0.ɵɵtext(3);
65
68
  i0.ɵɵelementEnd();
66
69
  i0.ɵɵtemplate(4, SideNavMenuComponent_button_10_ng_container_4_Template, 6, 3, "ng-container", 17);
@@ -74,42 +77,98 @@ function SideNavMenuComponent_button_10_Template(rf, ctx) { if (rf & 1) {
74
77
  i0.ɵɵadvance();
75
78
  i0.ɵɵproperty("ngIf", !ctx_r2.collapsed);
76
79
  } }
77
- function SideNavMenuComponent_button_13_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "span", 24);
79
- i0.ɵɵtext(1);
80
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementContainer(0);
82
+ } }
83
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵelementStart(0, "a", 22);
85
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 24);
80
86
  i0.ɵɵelementEnd();
81
87
  } if (rf & 2) {
82
- const item_r8 = i0.ɵɵnextContext(2).$implicit;
83
- i0.ɵɵclassProp("material-icons-outlined", item_r8.isIconOutlined);
88
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
89
+ i0.ɵɵnextContext();
90
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
91
+ i0.ɵɵproperty("href", item_r7.href, i0.ɵɵsanitizeUrl);
84
92
  i0.ɵɵadvance();
85
- i0.ɵɵtextInterpolate(item_r8.icon);
93
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(3, _c0, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
94
+ } }
95
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementContainer(0);
86
97
  } }
87
- function SideNavMenuComponent_button_13_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
88
- i0.ɵɵelement(0, "mat-icon", 23);
98
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
99
+ i0.ɵɵelementStart(0, "a", 23);
100
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 24);
101
+ i0.ɵɵelementEnd();
89
102
  } if (rf & 2) {
90
- const item_r8 = i0.ɵɵnextContext(2).$implicit;
91
- i0.ɵɵproperty("svgIcon", item_r8.icon);
103
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
104
+ i0.ɵɵnextContext();
105
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
106
+ i0.ɵɵproperty("routerLink", item_r7.href);
107
+ i0.ɵɵadvance();
108
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(3, _c0, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
92
109
  } }
93
- function SideNavMenuComponent_button_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵtemplate(0, SideNavMenuComponent_button_13_Conditional_1_Conditional_0_Template, 2, 3, "span", 22)(1, SideNavMenuComponent_button_13_Conditional_1_Conditional_1_Template, 1, 1, "mat-icon", 23);
110
+ function SideNavMenuComponent_For_14_Conditional_0_Template(rf, ctx) { if (rf & 1) {
111
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_14_Conditional_0_Conditional_0_Template, 2, 8, "a", 22)(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_1_Template, 2, 8, "a", 23);
95
112
  } if (rf & 2) {
96
- const item_r8 = i0.ɵɵnextContext().$implicit;
97
- i0.ɵɵconditional(!item_r8.isIconCustom ? 0 : 1);
98
- } }
99
- function SideNavMenuComponent_button_13_Template(rf, ctx) { if (rf & 1) {
100
- const _r7 = i0.ɵɵgetCurrentView();
101
- i0.ɵɵelementStart(0, "button", 21);
102
- i0.ɵɵlistener("click", function SideNavMenuComponent_button_13_Template_button_click_0_listener() { const item_r8 = i0.ɵɵrestoreView(_r7).$implicit; return i0.ɵɵresetView(item_r8.callback()); });
103
- i0.ɵɵtemplate(1, SideNavMenuComponent_button_13_Conditional_1_Template, 2, 1);
104
- i0.ɵɵtext(2);
105
- i0.ɵɵpipe(3, "translate");
113
+ const item_r7 = i0.ɵɵnextContext().$implicit;
114
+ i0.ɵɵconditional(item_r7.openInNewTab ? 0 : 1);
115
+ } }
116
+ function SideNavMenuComponent_For_14_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementContainer(0);
118
+ } }
119
+ function SideNavMenuComponent_For_14_Conditional_1_Template(rf, ctx) { if (rf & 1) {
120
+ const _r9 = i0.ɵɵgetCurrentView();
121
+ i0.ɵɵelementStart(0, "button", 25);
122
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_14_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7 == null ? null : item_r7.callback()); });
123
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 24);
106
124
  i0.ɵɵelementEnd();
107
125
  } if (rf & 2) {
108
- const item_r8 = ctx.$implicit;
126
+ const item_r7 = i0.ɵɵnextContext().$implicit;
127
+ i0.ɵɵnextContext();
128
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
109
129
  i0.ɵɵadvance();
110
- i0.ɵɵconditional(item_r8.icon ? 1 : -1);
130
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c0, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
131
+ } }
132
+ function SideNavMenuComponent_For_14_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_14_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_14_Conditional_1_Template, 2, 7, "button", 21);
134
+ } if (rf & 2) {
135
+ const item_r7 = ctx.$implicit;
136
+ i0.ɵɵconditional(item_r7.isLink ? 0 : 1);
137
+ } }
138
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
139
+ i0.ɵɵelementStart(0, "span", 28);
140
+ i0.ɵɵtext(1);
141
+ i0.ɵɵelementEnd();
142
+ } if (rf & 2) {
143
+ const ctx_r9 = i0.ɵɵnextContext(2);
144
+ const icon_r11 = ctx_r9.icon;
145
+ const isIconOutlined_r12 = ctx_r9.isIconOutlined;
146
+ i0.ɵɵclassProp("material-icons-outlined", isIconOutlined_r12);
111
147
  i0.ɵɵadvance();
112
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, item_r8.label), " ");
148
+ i0.ɵɵtextInterpolate1(" ", icon_r11, " ");
149
+ } }
150
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵelement(0, "mat-icon", 27);
152
+ } if (rf & 2) {
153
+ const icon_r11 = i0.ɵɵnextContext(2).icon;
154
+ i0.ɵɵproperty("svgIcon", icon_r11);
155
+ } }
156
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_0_Template, 2, 3, "span", 26)(1, SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 27);
158
+ } if (rf & 2) {
159
+ const isIconCustom_r13 = i0.ɵɵnextContext().isIconCustom;
160
+ i0.ɵɵconditional(!isIconCustom_r13 ? 0 : 1);
161
+ } }
162
+ function SideNavMenuComponent_ng_template_15_Template(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_15_Conditional_0_Template, 2, 1);
164
+ i0.ɵɵtext(1);
165
+ i0.ɵɵpipe(2, "translate");
166
+ } if (rf & 2) {
167
+ const icon_r11 = ctx.icon;
168
+ const label_r14 = ctx.label;
169
+ i0.ɵɵconditional(icon_r11 ? 0 : -1);
170
+ i0.ɵɵadvance();
171
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, label_r14), "\n");
113
172
  } }
114
173
  export class SideNavMenuComponent extends NavBaseComponent {
115
174
  #username;
@@ -197,23 +256,25 @@ export class SideNavMenuComponent extends NavBaseComponent {
197
256
  this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];
198
257
  }
199
258
  static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(i3.MenuItemsService), i0.ɵɵdirectiveInject(MENU_SHARED_CONFIG, 8)); }; }
200
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 14, vars: 16, consts: [["menu", "matMenu"], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxLayout", "column", 1, "menu-container"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", "fxFlex", "", 1, "menu-wrapper"], ["role", "navigation", "fxFlex", "", 3, "toggleCollapseEvent", "direction", "labelsVisible", "active"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], ["mat-menu-item", "", "class", "profile-option", 3, "click", 4, "ngFor", "ngForOf"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "spin", 4, "ngIf", "ngIfElse"], [1, "spin"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
259
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 15, consts: [["menu", "matMenu"], ["profileMenuItem", ""], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxLayout", "column", 1, "menu-container"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", "fxFlex", "", 1, "menu-wrapper"], ["role", "navigation", "fxFlex", "", 3, "toggleCollapseEvent", "direction", "labelsVisible", "active"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "spin", 4, "ngIf", "ngIfElse"], [1, "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
201
260
  const _r1 = i0.ɵɵgetCurrentView();
202
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "div", 5);
203
- i0.ɵɵtemplate(3, SideNavMenuComponent_a_3_Template, 3, 6, "a", 6);
204
- i0.ɵɵelementStart(4, "button", 7);
261
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "div", 6);
262
+ i0.ɵɵtemplate(3, SideNavMenuComponent_a_3_Template, 3, 6, "a", 7);
263
+ i0.ɵɵelementStart(4, "button", 8);
205
264
  i0.ɵɵpipe(5, "translate");
206
265
  i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
207
266
  i0.ɵɵelementStart(6, "mat-icon");
208
267
  i0.ɵɵtext(7);
209
268
  i0.ɵɵelementEnd()()();
210
- i0.ɵɵelementStart(8, "div", 8)(9, "menu-columns", 9);
269
+ i0.ɵɵelementStart(8, "div", 9)(9, "menu-columns", 10);
211
270
  i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
212
271
  i0.ɵɵelementEnd()();
213
- i0.ɵɵtemplate(10, SideNavMenuComponent_button_10_Template, 5, 3, "button", 10);
214
- i0.ɵɵelementStart(11, "mat-menu", 11, 0);
215
- i0.ɵɵtemplate(13, SideNavMenuComponent_button_13_Template, 4, 4, "button", 12);
216
- i0.ɵɵelementEnd()()();
272
+ i0.ɵɵtemplate(10, SideNavMenuComponent_button_10_Template, 5, 3, "button", 11);
273
+ i0.ɵɵelementStart(11, "mat-menu", 12, 0);
274
+ i0.ɵɵrepeaterCreate(13, SideNavMenuComponent_For_14_Template, 2, 1, null, null, _forTrack0);
275
+ i0.ɵɵelementEnd()();
276
+ i0.ɵɵtemplate(15, SideNavMenuComponent_ng_template_15_Template, 3, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
277
+ i0.ɵɵelementEnd();
217
278
  } if (rf & 2) {
218
279
  i0.ɵɵstyleProp("width", ctx.sideNavWidth);
219
280
  i0.ɵɵclassProp("collapsed", ctx.collapsed);
@@ -223,7 +284,7 @@ export class SideNavMenuComponent extends NavBaseComponent {
223
284
  i0.ɵɵproperty("ngIf", !ctx.collapsed);
224
285
  i0.ɵɵadvance();
225
286
  i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
226
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(5, 14, "ARIA_LABELS.MENU_TOGGLER"));
287
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(5, 13, "ARIA_LABELS.MENU_TOGGLER"));
227
288
  i0.ɵɵadvance(3);
228
289
  i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
229
290
  i0.ɵɵadvance(2);
@@ -231,12 +292,12 @@ export class SideNavMenuComponent extends NavBaseComponent {
231
292
  i0.ɵɵadvance();
232
293
  i0.ɵɵproperty("ngIf", ctx.userInitials);
233
294
  i0.ɵɵadvance(3);
234
- i0.ɵɵproperty("ngForOf", ctx.menuSettings.userOptions);
235
- } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.NgForOf, i5.NgIf, i6.MatIcon, i7.MatIconButton, i8.MatMenu, i8.MatMenuItem, i8.MatMenuTrigger, i2.PlausibleEventDirective, i9.MenuColumnsComponent, i10.TranslatePipe], styles: [".menu-container[_ngcontent-%COMP%]{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .collapsed .profile-wrapper{left:8px!important}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none} .mobile-child-list{margin-left:25px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
295
+ i0.ɵɵrepeater(ctx.menuSettings.userOptions);
296
+ } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.RouterLink, i6.NgIf, i6.NgTemplateOutlet, i7.MatIcon, i8.MatIconButton, i9.MatMenu, i9.MatMenuItem, i9.MatMenuTrigger, i2.PlausibleEventDirective, i10.MenuColumnsComponent, i11.TranslatePipe], styles: [".menu-container[_ngcontent-%COMP%]{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .collapsed .profile-wrapper{left:8px!important}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none} .mobile-child-list{margin-left:25px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
236
297
  }
237
298
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
238
299
  type: Component,
239
- args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n *ngFor=\"let item of menuSettings.userOptions\"\r\n (click)=\"item.callback()\"\r\n >\r\n @if (item.icon) {\r\n @if (!item.isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"item.isIconOutlined\">{{item.icon}}</span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"item.icon\"></mat-icon>\r\n }\r\n }\r\n {{ item.label | translate }}\r\n \r\n </button>\r\n </mat-menu>\r\n </div>", styles: [".menu-container{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .collapsed .profile-wrapper{left:8px!important}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}::ng-deep .mobile-child-list{margin-left:25px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
300
+ args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.isLink) {\r\n @if (item.openInNewTab) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.href\" target=\"_blank\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.href\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-isIconCustom=\"isIconCustom\" let-isIconOutlined=\"isIconOutlined\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"isIconOutlined\">\r\n {{icon}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n</ng-template>", styles: [".menu-container{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .collapsed .profile-wrapper{left:8px!important}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}::ng-deep .mobile-child-list{margin-left:25px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
240
301
  }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: i3.MenuItemsService }, { type: undefined, decorators: [{
241
302
  type: Optional
242
303
  }, {
@@ -248,4 +309,4 @@ export class SideNavMenuComponent extends NavBaseComponent {
248
309
  type: Input
249
310
  }] }); })();
250
311
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SideNavMenuComponent, { className: "SideNavMenuComponent", filePath: "lib\\components\\side-nav-menu\\side-nav-menu.component.ts", lineNumber: 16 }); })();
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDRjVELDZCQUVDOztJQUR5RCwrS0FBUyx3QkFBaUIsS0FBQztJQUVuRiwwQkFBc0U7SUFDeEUsaUJBQUk7OztJQUptRixBQUFqRSxvRUFBK0MsMENBQWtDOztJQUdsRSxlQUFxQjtJQUFyQiw0REFBcUI7OztJQThCeEQsb0NBQTZEO0lBQUEsWUFBeUI7SUFBQSxpQkFBVzs7SUFBcEMsY0FBeUI7SUFBekIsMkNBQXlCOzs7SUFHcEYsb0NBQXVCO0lBQUEsWUFBd0I7SUFBQSxpQkFBVzs7SUFBbkMsY0FBd0I7SUFBeEIseUNBQXdCOzs7SUFSbkQsNkJBQWlDO0lBQy9CLGdDQUEyQjtJQUN6QixZQUNGO0lBQUEsaUJBQU87SUFJUCxBQUZBLHlHQUE2RCxrSUFFdEM7Ozs7Ozs7SUFMckIsZUFDRjtJQURFLGdEQUNGO0lBRVcsY0FBc0I7SUFBQSxBQUF0Qix3Q0FBc0IseUJBQWE7OztJQVRoRCxBQURGLHFDQUF3RyxjQUM1RTtJQUN4QixZQUNGO0lBQUEsaUJBQU07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LFlBQVk7a0JBQXBCLEtBQUs7O2tGQVJLLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPTVNlcnZpY2UsIFBsYXVzaWJsZUV2ZW50IH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgU3RyYXBpTGlua1NlcnZpY2UgfSBmcm9tICdAdGlsZGUtbmxwL25neC1zdHJhcGknO1xyXG5pbXBvcnQgeyBNRU5VX1NIQVJFRF9DT05GSUcgfSBmcm9tICcuLi8uLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgTWVudVNoYXJlZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51LXNoYXJlZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBOYXZCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LWJhc2UvbmF2LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2lkZU5hdlNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbHMvc2lkZS1uYXYtc2V0dGluZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51SXRlbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVudS1pdGVtcy5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaWRlLW5hdi1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1uYXYtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYtbWVudS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlTmF2TWVudUNvbXBvbmVudCBleHRlbmRzIE5hdkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgI3VzZXJuYW1lITogc3RyaW5nO1xyXG4gIGdldCB1c2VybmFtZSgpIHsgcmV0dXJuIHRoaXMuI3VzZXJuYW1lOyB9XHJcbiAgQElucHV0KCkgc2V0IHVzZXJuYW1lKHZhbHVlKSB7XHJcbiAgICB0aGlzLiN1c2VybmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVTZXR0aW5nczogU2lkZU5hdlNldHRpbmdzID0ge1xyXG4gICAgZXhwYW5kZWRXaWR0aDogJzI0MXB4JyxcclxuICAgIGNvbGxhcHNlZFdpZHRoOiAnNTZweCcsXHJcbiAgICBtZW51TG9nbzogJycsXHJcbiAgICBtZW51TG9nb0NvbGxhcHNlZDogJycsXHJcbiAgICBkaXNhYmxlU3RyYXBpOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgdXNlckluaXRpYWxzITogc3RyaW5nO1xyXG4gIGNvbGxhcHNlZCA9IGZhbHNlO1xyXG5cclxuICByZWFkb25seSBDT0xMQVBTRURfTE9DQUxfU1RPUkFHRV9LRVkgPSBcIlRMRF9NRU5VX1NJREVfTkFWX0NPTExBUFNFRFwiO1xyXG5cclxuICAvLyNyZWdpb24gUGxhdXNpYmxlIGV2ZW50IHZhcmlhYmxlcyBmb3IgY29sbGFwc2UgYnV0dG9uXHJcbiAgcHJpdmF0ZSByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRfSUQgPSBcImNvbGxhcHNlTWVudVwiO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0FDVElPTl9LRVkgPSBcImFjdGlvblwiO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9HT0NMSUNLX1BMQVVTSUJMRV9BQ1RJT05fSUQgPSBcInRpbGRlX2xvZ29fY2xpY2tcIlxyXG5cclxuICByZWFkb25seSBMT0dPQ0xJQ0tfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuTE9HT0NMSUNLX1BMQVVTSUJMRV9BQ1RJT05fSUQsXHJcbiAgICBwcm9wZXJ0aWVzOiBbXVxyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgRVhQQU5EX1BMQVVTSUJMRV9FVkVOVDogUGxhdXNpYmxlRXZlbnQgPSB7XHJcbiAgICBldmVudElkOiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9FVkVOVF9JRCxcclxuICAgIHByb3BlcnRpZXM6IFt7IGtleTogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfQUNUSU9OX0tFWSwgdmFsdWU6IFwiZXhwYW5kXCIgfV1cclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVDogUGxhdXNpYmxlRXZlbnQgPSB7XHJcbiAgICBldmVudElkOiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9FVkVOVF9JRCxcclxuICAgIHByb3BlcnRpZXM6IFt7IGtleTogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfQUNUSU9OX0tFWSwgdmFsdWU6IFwiY29sbGFwc2VcIiB9XVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgbWVudUxvZ29JbWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkXHJcbiAgICAgID8gdGhpcy5tZW51U2V0dGluZ3MubWVudUxvZ29Db2xsYXBzZWQgPz8gdGhpcy5tZW51U2V0dGluZ3MubWVudUxvZ29cclxuICAgICAgOiB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nbztcclxuICB9XHJcblxyXG4gIGdldCBzaWRlTmF2V2lkdGgoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZCA/IHRoaXMubWVudVNldHRpbmdzLmNvbGxhcHNlZFdpZHRoIDogdGhpcy5tZW51U2V0dGluZ3MuZXhwYW5kZWRXaWR0aDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHN0cmFwaUxpbmtTZXJ2aWNlOiBTdHJhcGlMaW5rU2VydmljZSxcclxuICAgIHJlYWRvbmx5IGRvbVNlcnZpY2U6IERPTVNlcnZpY2UsXHJcbiAgICByZWFkb25seSBtZW51SXRlbXM6IE1lbnVJdGVtc1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1FTlVfU0hBUkVEX0NPTkZJRykgbWVudVNoYXJlZENvbmZpZzogTWVudVNoYXJlZENvbmZpZ1xyXG4gICkge1xyXG4gICAgc3VwZXIobWVudUl0ZW1zKTtcclxuICAgIHRoaXMuYmFzZVVybCA9IG1lbnVTaGFyZWRDb25maWcuYmFzZVVybCB8fCAnJztcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuZ2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCk7XHJcbiAgICB0aGlzLnNldFVzZXJJbml0aWFscygpO1xyXG4gIH1cclxuXHJcbiAgbG9nb0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0cmFwaUxpbmtTZXJ2aWNlLnN0cmFwaUxpbmtDbGljayhldmVudCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZSgpIHtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xyXG4gICAgdGhpcy5zZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbGxhcHNlZCA9IHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSkgPT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuQ09MTEFQU0VEX0xPQ0FMX1NUT1JBR0VfS0VZLCB0aGlzLmNvbGxhcHNlZC50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXNlckluaXRpYWxzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnVzZXJuYW1lKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBkaXNwbGF5aW5nIGZpcnN0IGxldHRlcnMgb2YgbmFtZSBhbmQgc3VybmFtZVxyXG4gICAgY29uc3Qgc3BsaXR0ZWRVc2VybmFtZSA9IHRoaXMudXNlcm5hbWUuc3BsaXQoJyAnKTtcclxuXHJcbiAgICBpZiAoc3BsaXR0ZWRVc2VybmFtZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgLy8gSWYgdGhlcmUncyBvbmx5IG9uZSB3b3JkLCB1c2UgdGhlIGZpcnN0IGxldHRlclxyXG4gICAgICB0aGlzLnVzZXJJbml0aWFscyA9IHNwbGl0dGVkVXNlcm5hbWVbMF1bMF07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIElmIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHdvcmQsIHVzZSB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBmaXJzdCB0d28gbmFtZXNcclxuICAgIHRoaXMudXNlckluaXRpYWxzID0gc3BsaXR0ZWRVc2VybmFtZVswXVswXSArIHNwbGl0dGVkVXNlcm5hbWVbMV1bMF07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiIFtzdHlsZS53aWR0aF09XCJzaWRlTmF2V2lkdGhcIiBmeExheW91dD1cImNvbHVtblwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleEZpbGw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXItaGVhZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBbZnhMYXlvdXRBbGlnbl09XCJjb2xsYXBzZWQgPyAnY2VudGVyIGNlbnRlcicgOiAnc3BhY2UtYmV0d2VlbiBjZW50ZXInXCI+XHJcbiAgICAgIDxhICpuZ0lmPVwiIWNvbGxhcHNlZFwiIFtsaWJQbGF1c2libGVFdmVudF09XCJMT0dPQ0xJQ0tfUExBVVNJQkxFX0VWRU5UXCIgZnhGbGV4PVwiMy4xMjVlbVwiIFtocmVmXT1cImJhc2VVcmxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01FTlUuQVJJQV9MQUJFTFMuTE9HTycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibG9nb0NsaWNrKCRldmVudClcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWcgaGVpZ2h0PVwiNDBcIiBjbGFzcz1cIm1lbnUtbG9nb1wiIFtzcmNdPVwibWVudUxvZ29JbWFnZVwiIGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICA8L2E+XHJcbiAgICAgIFxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGVyXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5NRU5VX1RPR0dMRVInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbbGliUGxhdXNpYmxlRXZlbnRdPVwiY29sbGFwc2VkID8gRVhQQU5EX1BMQVVTSUJMRV9FVkVOVCA6IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVFwiXHJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPnt7IGNvbGxhcHNlZCA/ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfcmlnaHQnIDogJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19sZWZ0JyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtd3JhcHBlclwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGbGV4PlxyXG4gICAgICA8bWVudS1jb2x1bW5zICh0b2dnbGVDb2xsYXBzZUV2ZW50KT1cInRvZ2dsZUNvbGxhcHNlKClcIiBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgZnhGbGV4IFtsYWJlbHNWaXNpYmxlXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgIFthY3RpdmVdPVwiYWN0aXZlXCI+PC9tZW51LWNvbHVtbnM+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cInVzZXJJbml0aWFsc1wiICNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cInByb2ZpbGUtd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1pY29uXCI+XHJcbiAgICAgICAge3t1c2VySW5pdGlhbHN9fVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sbGFwc2VkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLW5hbWVcIj5cclxuICAgICAgICAgIHt7IHVzZXJuYW1lIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInN0YXRlLm1lbnVPcGVuOyBlbHNlIGljb25Eb3duXCIgY2xhc3M9XCJzcGluXCI+e3tcImtleWJvYXJkX2Fycm93X2Rvd25cIn19PC9tYXQtaWNvbj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uRG93bj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNwaW5cIj57e1wia2V5Ym9hcmRfYXJyb3dfdXBcIiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJwcm9maWxlLW1lbnVcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBjbGFzcz1cInByb2ZpbGUtb3B0aW9uXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51U2V0dGluZ3MudXNlck9wdGlvbnNcIlxyXG4gICAgICAgIChjbGljayk9XCJpdGVtLmNhbGxiYWNrKClcIlxyXG4gICAgICA+XHJcbiAgICAgIEBpZiAoaXRlbS5pY29uKSB7XHJcbiAgICAgICAgQGlmICghaXRlbS5pc0ljb25DdXN0b20pIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgcHJvZmlsZS1vcHRpb24taWNvblwiIFtjbGFzcy5tYXRlcmlhbC1pY29ucy1vdXRsaW5lZF09XCJpdGVtLmlzSWNvbk91dGxpbmVkXCI+e3tpdGVtLmljb259fTwvc3Bhbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInByb2ZpbGUtb3B0aW9uLWljb25cIiBbc3ZnSWNvbl09XCJpdGVtLmljb25cIj48L21hdC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtbWVudT5cclxuICA8L2Rpdj4iXX0=
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDRjVELDZCQUVDOztJQUR5RCwrS0FBUyx3QkFBaUIsS0FBQztJQUVuRiwwQkFBc0U7SUFDeEUsaUJBQUk7OztJQUptRixBQUFqRSxvRUFBK0MsMENBQWtDOztJQUdsRSxlQUFxQjtJQUFyQiw0REFBcUI7OztJQThCeEQsb0NBQTZEO0lBQUEsWUFBeUI7SUFBQSxpQkFBVzs7SUFBcEMsY0FBeUI7SUFBekIsMkNBQXlCOzs7SUFHcEYsb0NBQXVCO0lBQUEsWUFBd0I7SUFBQSxpQkFBVzs7SUFBbkMsY0FBd0I7SUFBeEIseUNBQXdCOzs7SUFSbkQsNkJBQWlDO0lBQy9CLGdDQUEyQjtJQUN6QixZQUNGO0lBQUEsaUJBQU87SUFJUCxBQUZBLHlHQUE2RCxrSUFFdEM7Ozs7Ozs7SUFMckIsZUFDRjtJQURFLGdEQUNGO0lBRVcsY0FBc0I7SUFBQSxBQUF0Qix3Q0FBc0IseUJBQWE7OztJQVRoRCxBQURGLHFDQUF3RyxjQUM1RTtJQUN4QixZQUNGO0lBQUEsaUJB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QUNQO1lBRVIsd0hBQW9JO1lBM0VwSSxpQkFBeUc7O1lBQTdFLHlDQUE0QjtZQUFtQiwwQ0FBNkI7WUFFbEQsZUFBc0U7WUFBdEUsd0ZBQXNFO1lBQ2xILGNBQWdCO1lBQWhCLHFDQUFnQjtZQVVsQixjQUFtRjtZQUFuRiw2R0FBbUY7O1lBR3pFLGVBQThFO1lBQTlFLGtHQUE4RTtZQUtuQyxlQUF1QjtZQUM1RSxBQURzRyxBQUFqRCx5Q0FBdUIsaUNBQXNELHNCQUNqSDtZQUlaLGNBQWtCO1lBQWxCLHVDQUFrQjtZQW1CekIsZUEwQkM7WUExQkQsMkNBMEJDOzs7aUZEeERNLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLG1CQUFtQjs7c0JBOEQxQixRQUFROztzQkFBSSxNQUFNO3VCQUFDLGtCQUFrQjtxQkF2RDNCLFFBQVE7a0JBQXBCLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLOztrRkFSSyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET01TZXJ2aWNlLCBQbGF1c2libGVFdmVudCB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFN0cmFwaUxpbmtTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtc3RyYXBpJztcclxuaW1wb3J0IHsgTUVOVV9TSEFSRURfQ09ORklHIH0gZnJvbSAnLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IE1lbnVTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVudS1zaGFyZWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgTmF2QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL25hdi1iYXNlL25hdi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpZGVOYXZTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL3NpZGUtbmF2LXNldHRpbmdzLm1vZGVsJztcclxuaW1wb3J0IHsgTWVudUl0ZW1zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lbnUtaXRlbXMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2lkZS1uYXYtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbmF2LW1lbnUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZU5hdk1lbnVDb21wb25lbnQgZXh0ZW5kcyBOYXZCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICN1c2VybmFtZSE6IHN0cmluZztcclxuICBnZXQgdXNlcm5hbWUoKSB7IHJldHVybiB0aGlzLiN1c2VybmFtZTsgfVxyXG4gIEBJbnB1dCgpIHNldCB1c2VybmFtZSh2YWx1ZSkge1xyXG4gICAgdGhpcy4jdXNlcm5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0VXNlckluaXRpYWxzKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBtZW51U2V0dGluZ3M6IFNpZGVOYXZTZXR0aW5ncyA9IHtcclxuICAgIGV4cGFuZGVkV2lkdGg6ICcyNDFweCcsXHJcbiAgICBjb2xsYXBzZWRXaWR0aDogJzU2cHgnLFxyXG4gICAgbWVudUxvZ286ICcnLFxyXG4gICAgbWVudUxvZ29Db2xsYXBzZWQ6ICcnLFxyXG4gICAgZGlzYWJsZVN0cmFwaTogZmFsc2VcclxuICB9XHJcblxyXG4gIHVzZXJJbml0aWFscyE6IHN0cmluZztcclxuICBjb2xsYXBzZWQgPSBmYWxzZTtcclxuXHJcbiAgcmVhZG9ubHkgQ09MTEFQU0VEX0xPQ0FMX1NUT1JBR0VfS0VZID0gXCJUTERfTUVOVV9TSURFX05BVl9DT0xMQVBTRURcIjtcclxuXHJcbiAgLy8jcmVnaW9uIFBsYXVzaWJsZSBldmVudCB2YXJpYWJsZXMgZm9yIGNvbGxhcHNlIGJ1dHRvblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lEID0gXCJjb2xsYXBzZU1lbnVcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZID0gXCJhY3Rpb25cIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IExPR09DTElDS19QTEFVU0lCTEVfQUNUSU9OX0lEID0gXCJ0aWxkZV9sb2dvX2NsaWNrXCJcclxuXHJcbiAgcmVhZG9ubHkgTE9HT0NMSUNLX1BMQVVTSUJMRV9FVkVOVDogUGxhdXNpYmxlRXZlbnQgPSB7XHJcbiAgICBldmVudElkOiB0aGlzLkxPR09DTElDS19QTEFVU0lCTEVfQUNUSU9OX0lELFxyXG4gICAgcHJvcGVydGllczogW11cclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IEVYUEFORF9QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRfSUQsXHJcbiAgICBwcm9wZXJ0aWVzOiBbeyBrZXk6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0FDVElPTl9LRVksIHZhbHVlOiBcImV4cGFuZFwiIH1dXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5DT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRfSUQsXHJcbiAgICBwcm9wZXJ0aWVzOiBbeyBrZXk6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0FDVElPTl9LRVksIHZhbHVlOiBcImNvbGxhcHNlXCIgfV1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IG1lbnVMb2dvSW1hZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZFxyXG4gICAgICA/IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvQ29sbGFwc2VkID8/IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvXHJcbiAgICAgIDogdGhpcy5tZW51U2V0dGluZ3MubWVudUxvZ287XHJcbiAgfVxyXG5cclxuICBnZXQgc2lkZU5hdldpZHRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyB0aGlzLm1lbnVTZXR0aW5ncy5jb2xsYXBzZWRXaWR0aCA6IHRoaXMubWVudVNldHRpbmdzLmV4cGFuZGVkV2lkdGg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdHJhcGlMaW5rU2VydmljZTogU3RyYXBpTGlua1NlcnZpY2UsXHJcbiAgICByZWFkb25seSBkb21TZXJ2aWNlOiBET01TZXJ2aWNlLFxyXG4gICAgcmVhZG9ubHkgbWVudUl0ZW1zOiBNZW51SXRlbXNTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNRU5VX1NIQVJFRF9DT05GSUcpIG1lbnVTaGFyZWRDb25maWc6IE1lbnVTaGFyZWRDb25maWdcclxuICApIHtcclxuICAgIHN1cGVyKG1lbnVJdGVtcyk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBtZW51U2hhcmVkQ29uZmlnLmJhc2VVcmwgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmdldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIGxvZ29DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHJhcGlMaW5rU2VydmljZS5zdHJhcGlMaW5rQ2xpY2soZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ29sbGFwc2UoKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgIHRoaXMuc2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGlmICghdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5DT0xMQVBTRURfTE9DQUxfU1RPUkFHRV9LRVkpID09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q29sYXBzZWRGcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSwgdGhpcy5jb2xsYXBzZWQudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVzZXJJbml0aWFscygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy51c2VybmFtZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZGlzcGxheWluZyBmaXJzdCBsZXR0ZXJzIG9mIG5hbWUgYW5kIHN1cm5hbWVcclxuICAgIGNvbnN0IHNwbGl0dGVkVXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHNwbGl0dGVkVXNlcm5hbWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgd29yZCwgdXNlIHRoZSBmaXJzdCBsZXR0ZXJcclxuICAgICAgdGhpcy51c2VySW5pdGlhbHMgPSBzcGxpdHRlZFVzZXJuYW1lWzBdWzBdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB3b3JkLCB1c2UgdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgZmlyc3QgdHdvIG5hbWVzXHJcbiAgICB0aGlzLnVzZXJJbml0aWFscyA9IHNwbGl0dGVkVXNlcm5hbWVbMF1bMF0gKyBzcGxpdHRlZFVzZXJuYW1lWzFdWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbc3R5bGUud2lkdGhdPVwic2lkZU5hdldpZHRoXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBbY2xhc3MuY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXhGaWxsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyLWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCIgW2Z4TGF5b3V0QWxpZ25dPVwiY29sbGFwc2VkID8gJ2NlbnRlciBjZW50ZXInIDogJ3NwYWNlLWJldHdlZW4gY2VudGVyJ1wiPlxyXG4gICAgICA8YSAqbmdJZj1cIiFjb2xsYXBzZWRcIiBbbGliUGxhdXNpYmxlRXZlbnRdPVwiTE9HT0NMSUNLX1BMQVVTSUJMRV9FVkVOVFwiIGZ4RmxleD1cIjMuMTI1ZW1cIiBbaHJlZl09XCJiYXNlVXJsXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNRU5VLkFSSUFfTEFCRUxTLkxPR08nIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImxvZ29DbGljaygkZXZlbnQpXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW1nIGhlaWdodD1cIjQwXCIgY2xhc3M9XCJtZW51LWxvZ29cIiBbc3JjXT1cIm1lbnVMb2dvSW1hZ2VcIiBhbHQ9XCJsb2dvXCIgLz5cclxuICAgICAgPC9hPlxyXG4gICAgICBcclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlclwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVJJQV9MQUJFTFMuTUVOVV9UT0dHTEVSJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2xpYlBsYXVzaWJsZUV2ZW50XT1cImNvbGxhcHNlZCA/IEVYUEFORF9QTEFVU0lCTEVfRVZFTlQgOiBDT0xMQVBTRV9QTEFVU0lCTEVfRVZFTlRcIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbj57eyBjb2xsYXBzZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X3JpZ2h0JyA6ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfbGVmdCcgfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICBcclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleD5cclxuICAgICAgPG1lbnUtY29sdW1ucyAodG9nZ2xlQ29sbGFwc2VFdmVudCk9XCJ0b2dnbGVDb2xsYXBzZSgpXCIgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIiByb2xlPVwibmF2aWdhdGlvblwiIGZ4RmxleCBbbGFiZWxzVmlzaWJsZV09XCIhY29sbGFwc2VkXCJcclxuICAgICAgICBbYWN0aXZlXT1cImFjdGl2ZVwiPjwvbWVudS1jb2x1bW5zPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxidXR0b24gKm5nSWY9XCJ1c2VySW5pdGlhbHNcIiAjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJwcm9maWxlLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtaWNvblwiPlxyXG4gICAgICAgIHt7dXNlckluaXRpYWxzfX1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+XHJcbiAgICAgICAgICB7eyB1c2VybmFtZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICBcclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdGF0ZS5tZW51T3BlbjsgZWxzZSBpY29uRG93blwiIGNsYXNzPVwic3BpblwiPnt7XCJrZXlib2FyZF9hcnJvd19kb3duXCJ9fTwvbWF0LWljb24+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkRvd24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzcGluXCI+e3tcImtleWJvYXJkX2Fycm93X3VwXCIgfX08L21hdC1pY29uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwicHJvZmlsZS1tZW51XCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudVNldHRpbmdzLnVzZXJPcHRpb25zOyB0cmFjayBpdGVtLmxhYmVsKSB7XHJcbiAgICAgICAgQGlmIChpdGVtLmlzTGluaykge1xyXG4gICAgICAgICAgQGlmIChpdGVtLm9wZW5Jbk5ld1RhYikge1xyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCIgW2hyZWZdPVwiaXRlbS5ocmVmXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9maWxlTWVudUl0ZW07IGNvbnRleHQ6IHsgaWNvbjogaXRlbS5pY29uLCBpc0ljb25DdXN0b206IGl0ZW0uaXNJY29uQ3VzdG9tLCBpc0ljb25PdXRsaW5lZDogaXRlbS5pc0ljb25PdXRsaW5lZCwgbGFiZWw6IGl0ZW0ubGFiZWwgfVwiPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXQtbWRjLW1lbnUtaXRlbVwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0uaHJlZlwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZmlsZU1lbnVJdGVtOyBjb250ZXh0OiB7IGljb246IGl0ZW0uaWNvbiwgaXNJY29uQ3VzdG9tOiBpdGVtLmlzSWNvbkN1c3RvbSwgaXNJY29uT3V0bGluZWQ6IGl0ZW0uaXNJY29uT3V0bGluZWQsIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgY2xhc3M9XCJwcm9maWxlLW9wdGlvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaXRlbT8uY2FsbGJhY2soKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGlzSWNvbkN1c3RvbTogaXRlbS5pc0ljb25DdXN0b20sIGlzSWNvbk91dGxpbmVkOiBpdGVtLmlzSWNvbk91dGxpbmVkLCBsYWJlbDogaXRlbS5sYWJlbCB9XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI3Byb2ZpbGVNZW51SXRlbSBsZXQtaWNvbj1cImljb25cIiBsZXQtaXNJY29uQ3VzdG9tPVwiaXNJY29uQ3VzdG9tXCIgbGV0LWlzSWNvbk91dGxpbmVkPVwiaXNJY29uT3V0bGluZWRcIiBsZXQtbGFiZWw9XCJsYWJlbFwiPlxyXG4gIEBpZiAoaWNvbikge1xyXG4gICAgQGlmICghaXNJY29uQ3VzdG9tKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgcHJvZmlsZS1vcHRpb24taWNvblwiIFtjbGFzcy5tYXRlcmlhbC1pY29ucy1vdXRsaW5lZF09XCJpc0ljb25PdXRsaW5lZFwiPlxyXG4gICAgICAgIHt7aWNvbn19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJwcm9maWxlLW9wdGlvbi1pY29uXCIgW3N2Z0ljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICB9XHJcbiAgfVxyXG4gIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -13,9 +13,9 @@ import * as i3 from '@angular/common';
13
13
  import { CommonModule } from '@angular/common';
14
14
  import * as i2$1 from '@angular/material/icon';
15
15
  import { MatIconModule } from '@angular/material/icon';
16
- import * as i7 from '@angular/material/button';
16
+ import * as i8$1 from '@angular/material/button';
17
17
  import { MatButtonModule } from '@angular/material/button';
18
- import * as i8$1 from '@angular/material/menu';
18
+ import * as i9 from '@angular/material/menu';
19
19
  import { MatMenuModule } from '@angular/material/menu';
20
20
  import * as i4 from '@angular/material/divider';
21
21
  import * as i3$1 from '@ngbracket/ngx-layout/extended';
@@ -406,7 +406,7 @@ class MenuItemLinkComponent {
406
406
  }] }); })();
407
407
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuItemLinkComponent, { className: "MenuItemLinkComponent", filePath: "lib\\components\\menu-item-link\\menu-item-link.component.ts", lineNumber: 10 }); })();
408
408
 
409
- const _c0$2 = a0 => ({ menuItem: a0 });
409
+ const _c0$3 = a0 => ({ menuItem: a0 });
410
410
  function MenuItemListComponent_div_1_Template(rf, ctx) { if (rf & 1) {
411
411
  i0.ɵɵelementStart(0, "div", 6);
412
412
  i0.ɵɵtext(1);
@@ -430,7 +430,7 @@ function MenuItemListComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
430
430
  const itemWithChildren_r3 = i0.ɵɵreference(5);
431
431
  const menuItemLink_r4 = i0.ɵɵreference(7);
432
432
  i0.ɵɵadvance();
433
- i0.ɵɵproperty("ngTemplateOutlet", !menuItem_r2.showChildren || !menuItem_r2.children || (menuItem_r2 == null ? null : menuItem_r2.children == null ? null : menuItem_r2.children.length) === 0 ? menuItemLink_r4 : itemWithChildren_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0$2, menuItem_r2));
433
+ i0.ɵɵproperty("ngTemplateOutlet", !menuItem_r2.showChildren || !menuItem_r2.children || (menuItem_r2 == null ? null : menuItem_r2.children == null ? null : menuItem_r2.children.length) === 0 ? menuItemLink_r4 : itemWithChildren_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0$3, menuItem_r2));
434
434
  } }
435
435
  function MenuItemListComponent_ng_template_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
436
436
  i0.ɵɵelementContainerStart(0);
@@ -669,6 +669,8 @@ class MenuColumnsComponent {
669
669
  }] }); })();
670
670
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuColumnsComponent, { className: "MenuColumnsComponent", filePath: "lib\\components\\menu-columns\\menu-columns.component.ts", lineNumber: 16 }); })();
671
671
 
672
+ const _forTrack0 = ($index, $item) => $item.label;
673
+ const _c0$2 = (a0, a1, a2, a3) => ({ icon: a0, isIconCustom: a1, isIconOutlined: a2, label: a3 });
672
674
  function SideNavMenuComponent_a_3_Template(rf, ctx) { if (rf & 1) {
673
675
  const _r2 = i0.ɵɵgetCurrentView();
674
676
  i0.ɵɵelementStart(0, "a", 13);
@@ -704,7 +706,7 @@ function SideNavMenuComponent_button_10_ng_container_4_Template(rf, ctx) { if (r
704
706
  i0.ɵɵelementStart(1, "span", 18);
705
707
  i0.ɵɵtext(2);
706
708
  i0.ɵɵelementEnd();
707
- i0.ɵɵtemplate(3, SideNavMenuComponent_button_10_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 19)(4, SideNavMenuComponent_button_10_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
709
+ i0.ɵɵtemplate(3, SideNavMenuComponent_button_10_ng_container_4_mat_icon_3_Template, 2, 1, "mat-icon", 19)(4, SideNavMenuComponent_button_10_ng_container_4_ng_template_4_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
708
710
  i0.ɵɵelementContainerEnd();
709
711
  } if (rf & 2) {
710
712
  const iconDown_r4 = i0.ɵɵreference(5);
@@ -717,7 +719,7 @@ function SideNavMenuComponent_button_10_ng_container_4_Template(rf, ctx) { if (r
717
719
  i0.ɵɵproperty("ngIf", state_r5.menuOpen)("ngIfElse", iconDown_r4);
718
720
  } }
719
721
  function SideNavMenuComponent_button_10_Template(rf, ctx) { if (rf & 1) {
720
- i0.ɵɵelementStart(0, "button", 15, 1)(2, "div", 16);
722
+ i0.ɵɵelementStart(0, "button", 15, 2)(2, "div", 16);
721
723
  i0.ɵɵtext(3);
722
724
  i0.ɵɵelementEnd();
723
725
  i0.ɵɵtemplate(4, SideNavMenuComponent_button_10_ng_container_4_Template, 6, 3, "ng-container", 17);
@@ -731,42 +733,98 @@ function SideNavMenuComponent_button_10_Template(rf, ctx) { if (rf & 1) {
731
733
  i0.ɵɵadvance();
732
734
  i0.ɵɵproperty("ngIf", !ctx_r2.collapsed);
733
735
  } }
734
- function SideNavMenuComponent_button_13_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
735
- i0.ɵɵelementStart(0, "span", 24);
736
- i0.ɵɵtext(1);
736
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
737
+ i0.ɵɵelementContainer(0);
738
+ } }
739
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
740
+ i0.ɵɵelementStart(0, "a", 22);
741
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 24);
737
742
  i0.ɵɵelementEnd();
738
743
  } if (rf & 2) {
739
- const item_r8 = i0.ɵɵnextContext(2).$implicit;
740
- i0.ɵɵclassProp("material-icons-outlined", item_r8.isIconOutlined);
744
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
745
+ i0.ɵɵnextContext();
746
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
747
+ i0.ɵɵproperty("href", item_r7.href, i0.ɵɵsanitizeUrl);
741
748
  i0.ɵɵadvance();
742
- i0.ɵɵtextInterpolate(item_r8.icon);
749
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(3, _c0$2, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
743
750
  } }
744
- function SideNavMenuComponent_button_13_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
745
- i0.ɵɵelement(0, "mat-icon", 23);
751
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
752
+ i0.ɵɵelementContainer(0);
753
+ } }
754
+ function SideNavMenuComponent_For_14_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
755
+ i0.ɵɵelementStart(0, "a", 23);
756
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 24);
757
+ i0.ɵɵelementEnd();
746
758
  } if (rf & 2) {
747
- const item_r8 = i0.ɵɵnextContext(2).$implicit;
748
- i0.ɵɵproperty("svgIcon", item_r8.icon);
759
+ const item_r7 = i0.ɵɵnextContext(2).$implicit;
760
+ i0.ɵɵnextContext();
761
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
762
+ i0.ɵɵproperty("routerLink", item_r7.href);
763
+ i0.ɵɵadvance();
764
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(3, _c0$2, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
749
765
  } }
750
- function SideNavMenuComponent_button_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
751
- i0.ɵɵtemplate(0, SideNavMenuComponent_button_13_Conditional_1_Conditional_0_Template, 2, 3, "span", 22)(1, SideNavMenuComponent_button_13_Conditional_1_Conditional_1_Template, 1, 1, "mat-icon", 23);
766
+ function SideNavMenuComponent_For_14_Conditional_0_Template(rf, ctx) { if (rf & 1) {
767
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_14_Conditional_0_Conditional_0_Template, 2, 8, "a", 22)(1, SideNavMenuComponent_For_14_Conditional_0_Conditional_1_Template, 2, 8, "a", 23);
752
768
  } if (rf & 2) {
753
- const item_r8 = i0.ɵɵnextContext().$implicit;
754
- i0.ɵɵconditional(!item_r8.isIconCustom ? 0 : 1);
769
+ const item_r7 = i0.ɵɵnextContext().$implicit;
770
+ i0.ɵɵconditional(item_r7.openInNewTab ? 0 : 1);
755
771
  } }
756
- function SideNavMenuComponent_button_13_Template(rf, ctx) { if (rf & 1) {
757
- const _r7 = i0.ɵɵgetCurrentView();
758
- i0.ɵɵelementStart(0, "button", 21);
759
- i0.ɵɵlistener("click", function SideNavMenuComponent_button_13_Template_button_click_0_listener() { const item_r8 = i0.ɵɵrestoreView(_r7).$implicit; return i0.ɵɵresetView(item_r8.callback()); });
760
- i0.ɵɵtemplate(1, SideNavMenuComponent_button_13_Conditional_1_Template, 2, 1);
761
- i0.ɵɵtext(2);
762
- i0.ɵɵpipe(3, "translate");
772
+ function SideNavMenuComponent_For_14_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
773
+ i0.ɵɵelementContainer(0);
774
+ } }
775
+ function SideNavMenuComponent_For_14_Conditional_1_Template(rf, ctx) { if (rf & 1) {
776
+ const _r9 = i0.ɵɵgetCurrentView();
777
+ i0.ɵɵelementStart(0, "button", 25);
778
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_14_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7 == null ? null : item_r7.callback()); });
779
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_14_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 24);
763
780
  i0.ɵɵelementEnd();
764
781
  } if (rf & 2) {
765
- const item_r8 = ctx.$implicit;
782
+ const item_r7 = i0.ɵɵnextContext().$implicit;
783
+ i0.ɵɵnextContext();
784
+ const profileMenuItem_r8 = i0.ɵɵreference(16);
766
785
  i0.ɵɵadvance();
767
- i0.ɵɵconditional(item_r8.icon ? 1 : -1);
786
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction4(2, _c0$2, item_r7.icon, item_r7.isIconCustom, item_r7.isIconOutlined, item_r7.label));
787
+ } }
788
+ function SideNavMenuComponent_For_14_Template(rf, ctx) { if (rf & 1) {
789
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_14_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_14_Conditional_1_Template, 2, 7, "button", 21);
790
+ } if (rf & 2) {
791
+ const item_r7 = ctx.$implicit;
792
+ i0.ɵɵconditional(item_r7.isLink ? 0 : 1);
793
+ } }
794
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
795
+ i0.ɵɵelementStart(0, "span", 28);
796
+ i0.ɵɵtext(1);
797
+ i0.ɵɵelementEnd();
798
+ } if (rf & 2) {
799
+ const ctx_r9 = i0.ɵɵnextContext(2);
800
+ const icon_r11 = ctx_r9.icon;
801
+ const isIconOutlined_r12 = ctx_r9.isIconOutlined;
802
+ i0.ɵɵclassProp("material-icons-outlined", isIconOutlined_r12);
768
803
  i0.ɵɵadvance();
769
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, item_r8.label), " ");
804
+ i0.ɵɵtextInterpolate1(" ", icon_r11, " ");
805
+ } }
806
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
807
+ i0.ɵɵelement(0, "mat-icon", 27);
808
+ } if (rf & 2) {
809
+ const icon_r11 = i0.ɵɵnextContext(2).icon;
810
+ i0.ɵɵproperty("svgIcon", icon_r11);
811
+ } }
812
+ function SideNavMenuComponent_ng_template_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
813
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_0_Template, 2, 3, "span", 26)(1, SideNavMenuComponent_ng_template_15_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 27);
814
+ } if (rf & 2) {
815
+ const isIconCustom_r13 = i0.ɵɵnextContext().isIconCustom;
816
+ i0.ɵɵconditional(!isIconCustom_r13 ? 0 : 1);
817
+ } }
818
+ function SideNavMenuComponent_ng_template_15_Template(rf, ctx) { if (rf & 1) {
819
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_15_Conditional_0_Template, 2, 1);
820
+ i0.ɵɵtext(1);
821
+ i0.ɵɵpipe(2, "translate");
822
+ } if (rf & 2) {
823
+ const icon_r11 = ctx.icon;
824
+ const label_r14 = ctx.label;
825
+ i0.ɵɵconditional(icon_r11 ? 0 : -1);
826
+ i0.ɵɵadvance();
827
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, label_r14), "\n");
770
828
  } }
771
829
  class SideNavMenuComponent extends NavBaseComponent {
772
830
  #username;
@@ -854,23 +912,25 @@ class SideNavMenuComponent extends NavBaseComponent {
854
912
  this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];
855
913
  }
856
914
  static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(MenuItemsService), i0.ɵɵdirectiveInject(MENU_SHARED_CONFIG, 8)); }; }
857
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 14, vars: 16, consts: [["menu", "matMenu"], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxLayout", "column", 1, "menu-container"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", "fxFlex", "", 1, "menu-wrapper"], ["role", "navigation", "fxFlex", "", 3, "toggleCollapseEvent", "direction", "labelsVisible", "active"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], ["mat-menu-item", "", "class", "profile-option", 3, "click", 4, "ngFor", "ngForOf"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "spin", 4, "ngIf", "ngIfElse"], [1, "spin"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
915
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 15, consts: [["menu", "matMenu"], ["profileMenuItem", ""], ["state", "matMenuTrigger"], ["iconDown", ""], ["fxLayout", "column", 1, "menu-container"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", "fxFlex", "", 1, "menu-wrapper"], ["role", "navigation", "fxFlex", "", 3, "toggleCollapseEvent", "direction", "labelsVisible", "active"], ["class", "profile-wrapper", 3, "matMenuTriggerFor", 4, "ngIf"], [1, "profile-menu"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-name"], ["class", "spin", 4, "ngIf", "ngIfElse"], [1, "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
858
916
  const _r1 = i0.ɵɵgetCurrentView();
859
- i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "div", 5);
860
- i0.ɵɵtemplate(3, SideNavMenuComponent_a_3_Template, 3, 6, "a", 6);
861
- i0.ɵɵelementStart(4, "button", 7);
917
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "div", 6);
918
+ i0.ɵɵtemplate(3, SideNavMenuComponent_a_3_Template, 3, 6, "a", 7);
919
+ i0.ɵɵelementStart(4, "button", 8);
862
920
  i0.ɵɵpipe(5, "translate");
863
921
  i0.ɵɵlistener("click", function SideNavMenuComponent_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
864
922
  i0.ɵɵelementStart(6, "mat-icon");
865
923
  i0.ɵɵtext(7);
866
924
  i0.ɵɵelementEnd()()();
867
- i0.ɵɵelementStart(8, "div", 8)(9, "menu-columns", 9);
925
+ i0.ɵɵelementStart(8, "div", 9)(9, "menu-columns", 10);
868
926
  i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
869
927
  i0.ɵɵelementEnd()();
870
- i0.ɵɵtemplate(10, SideNavMenuComponent_button_10_Template, 5, 3, "button", 10);
871
- i0.ɵɵelementStart(11, "mat-menu", 11, 0);
872
- i0.ɵɵtemplate(13, SideNavMenuComponent_button_13_Template, 4, 4, "button", 12);
873
- i0.ɵɵelementEnd()()();
928
+ i0.ɵɵtemplate(10, SideNavMenuComponent_button_10_Template, 5, 3, "button", 11);
929
+ i0.ɵɵelementStart(11, "mat-menu", 12, 0);
930
+ i0.ɵɵrepeaterCreate(13, SideNavMenuComponent_For_14_Template, 2, 1, null, null, _forTrack0);
931
+ i0.ɵɵelementEnd()();
932
+ i0.ɵɵtemplate(15, SideNavMenuComponent_ng_template_15_Template, 3, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
933
+ i0.ɵɵelementEnd();
874
934
  } if (rf & 2) {
875
935
  i0.ɵɵstyleProp("width", ctx.sideNavWidth);
876
936
  i0.ɵɵclassProp("collapsed", ctx.collapsed);
@@ -880,7 +940,7 @@ class SideNavMenuComponent extends NavBaseComponent {
880
940
  i0.ɵɵproperty("ngIf", !ctx.collapsed);
881
941
  i0.ɵɵadvance();
882
942
  i0.ɵɵproperty("libPlausibleEvent", ctx.collapsed ? ctx.EXPAND_PLAUSIBLE_EVENT : ctx.COLLAPSE_PLAUSIBLE_EVENT);
883
- i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(5, 14, "ARIA_LABELS.MENU_TOGGLER"));
943
+ i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(5, 13, "ARIA_LABELS.MENU_TOGGLER"));
884
944
  i0.ɵɵadvance(3);
885
945
  i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
886
946
  i0.ɵɵadvance(2);
@@ -888,12 +948,12 @@ class SideNavMenuComponent extends NavBaseComponent {
888
948
  i0.ɵɵadvance();
889
949
  i0.ɵɵproperty("ngIf", ctx.userInitials);
890
950
  i0.ɵɵadvance(3);
891
- i0.ɵɵproperty("ngForOf", ctx.menuSettings.userOptions);
892
- } }, dependencies: [i2$2.DefaultLayoutDirective, i2$2.DefaultLayoutAlignDirective, i2$2.FlexFillDirective, i2$2.DefaultFlexDirective, i3.NgForOf, i3.NgIf, i2$1.MatIcon, i7.MatIconButton, i8$1.MatMenu, i8$1.MatMenuItem, i8$1.MatMenuTrigger, i2.PlausibleEventDirective, MenuColumnsComponent, i8.TranslatePipe], styles: [".menu-container[_ngcontent-%COMP%]{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .collapsed .profile-wrapper{left:8px!important}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none} .mobile-child-list{margin-left:25px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
951
+ i0.ɵɵrepeater(ctx.menuSettings.userOptions);
952
+ } }, dependencies: [i2$2.DefaultLayoutDirective, i2$2.DefaultLayoutAlignDirective, i2$2.FlexFillDirective, i2$2.DefaultFlexDirective, i1$1.RouterLink, i3.NgIf, i3.NgTemplateOutlet, i2$1.MatIcon, i8$1.MatIconButton, i9.MatMenu, i9.MatMenuItem, i9.MatMenuTrigger, i2.PlausibleEventDirective, MenuColumnsComponent, i8.TranslatePipe], styles: [".menu-container[_ngcontent-%COMP%]{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .collapsed .profile-wrapper{left:8px!important}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none} .mobile-child-list{margin-left:25px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
893
953
  }
894
954
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
895
955
  type: Component,
896
- args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n *ngFor=\"let item of menuSettings.userOptions\"\r\n (click)=\"item.callback()\"\r\n >\r\n @if (item.icon) {\r\n @if (!item.isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"item.isIconOutlined\">{{item.icon}}</span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"item.icon\"></mat-icon>\r\n }\r\n }\r\n {{ item.label | translate }}\r\n \r\n </button>\r\n </mat-menu>\r\n </div>", styles: [".menu-container{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .collapsed .profile-wrapper{left:8px!important}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}::ng-deep .mobile-child-list{margin-left:25px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
956
+ args: [{ selector: 'lib-side-nav-menu', template: "<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.isLink) {\r\n @if (item.openInNewTab) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.href\" target=\"_blank\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.href\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-isIconCustom=\"isIconCustom\" let-isIconOutlined=\"isIconOutlined\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"isIconOutlined\">\r\n {{icon}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n</ng-template>", styles: [".menu-container{white-space:nowrap;height:100%;transition:width .2s ease;min-height:100vh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .collapsed .profile-wrapper{left:8px!important}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}::ng-deep .mobile-child-list{margin-left:25px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
897
957
  }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: MenuItemsService }, { type: undefined, decorators: [{
898
958
  type: Optional
899
959
  }, {
@@ -1077,7 +1137,7 @@ class MenuItemIconComponent {
1077
1137
  i0.ɵɵproperty("hasBackdrop", true);
1078
1138
  i0.ɵɵadvance(2);
1079
1139
  i0.ɵɵproperty("menuDialogSettings", ctx.menuDialogSettings)("direction", ctx.direction);
1080
- } }, dependencies: [i2$2.DefaultLayoutDirective, i2$2.DefaultLayoutGapDirective, i2$2.DefaultLayoutAlignDirective, i2$2.DefaultFlexOrderDirective, i3.NgIf, i2$1.MatIcon, i7.MatButton, i8$1.MatMenu, i8$1.MatMenuTrigger, i2.PlausibleEventDirective, ModalNavMenuComponent, i8.TranslatePipe], styles: [".content[_ngcontent-%COMP%]{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button[_ngcontent-%COMP%]{width:inherit} lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%} lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%} div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%} .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}"] }); }
1140
+ } }, dependencies: [i2$2.DefaultLayoutDirective, i2$2.DefaultLayoutGapDirective, i2$2.DefaultLayoutAlignDirective, i2$2.DefaultFlexOrderDirective, i3.NgIf, i2$1.MatIcon, i8$1.MatButton, i9.MatMenu, i9.MatMenuTrigger, i2.PlausibleEventDirective, ModalNavMenuComponent, i8.TranslatePipe], styles: [".content[_ngcontent-%COMP%]{gap:1.5em;cursor:pointer}button.mat-mdc-icon-button[_ngcontent-%COMP%]{width:inherit} lib-modal-nav-menu>.content.menu-modal>div.full-screen{width:100%} lib-modal-nav-menu>.content.menu-modal>div.full-screen .menu-list-wrapper .menu-item{width:100%} div:has(.mat-mdc-menu-panel.mobile-menu-dialog.full-screen){width:100%;max-width:100%} .mat-mdc-menu-panel.mobile-menu-dialog.full-screen{width:100vw;margin-top:-2.5em;max-width:none}"] }); }
1081
1141
  }
1082
1142
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemIconComponent, [{
1083
1143
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/components/modal-nav-menu/modal-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/modal-nav-menu/modal-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/assets/menu-logo.svg.ts","../../../projects/ngx-menu/src/lib/components/menu-item-icon/models/menu-title-placement.model.ts","../../../projects/ngx-menu/src/lib/components/menu-item-icon/menu-item-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-icon/menu-item-icon.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.getStrapiData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private getStrapiData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss']\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss']\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [ngClass.lt-md]=\"'mobile'\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss']\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [attr.id]=\"menuItem.customId\" [ngClass.lt-md]=\"'mob-menu-item'\" [fxLayout]=\"menuItemLayout\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\" [class.menu-labels-visible]=\"labelsVisible\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"activeItem?.link && menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"labelsVisible\">\r\n <span class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n {{ menuItem.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}\r\n </span>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"menuItem.showChildren && menuItem.expanded && labelsVisible\">\r\n <menu-item-list [ngClass.lt-md]=\"'mobile-child-list'\" class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss']\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss']\r\n})\r\nexport class MenuColumnsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n // if menu is collapsed and chilren are expandable, we should open menu\r\n if (element.showChildren && !this.labelsVisible) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n if (element.showChildren && element.expanded && element === this.active.root) {\r\n this.activeItem = this.active.child;\r\n }\r\n else {\r\n this.activeItem = this.active.root;\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n *ngFor=\"let item of menuSettings.userOptions\"\r\n (click)=\"item.callback()\"\r\n >\r\n @if (item.icon) {\r\n @if (!item.isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"item.isIconOutlined\">{{item.icon}}</span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"item.icon\"></mat-icon>\r\n }\r\n }\r\n {{ item.label | translate }}\r\n \r\n </button>\r\n </mat-menu>\r\n </div>","import { Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core';\r\nimport { DOMService, PlausibleEvent } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss']\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n this.#username = value;\r\n this.setUserInitials();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false\r\n }\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) menuSharedConfig: MenuSharedConfig\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n this.setUserInitials();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username.split(' ');\r\n\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" width=\"75\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { MenuDialogSettings } from '../menu-item-icon/models/menu-dialog-settings.model';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\n\r\n@Component({\r\n selector: 'lib-modal-nav-menu',\r\n templateUrl: './modal-nav-menu.component.html',\r\n styleUrls: ['./modal-nav-menu.component.scss']\r\n})\r\nexport class ModalNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() menuDialogSettings: MenuDialogSettings = {\r\n showMenuTitle: false,\r\n fullScreen: true\r\n }\r\n\r\n // any type because emitter doesn't really need a value\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() closeButtonClick = new EventEmitter<any>();\r\n\r\n constructor(readonly menuItems: MenuItemsService) {\r\n super(menuItems);\r\n }\r\n\r\n close() {\r\n this.closeButtonClick.emit(null);\r\n }\r\n}\r\n","export const menuLogo = `\r\n<svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3.3 6.6C2.36667 6.6 1.58333 6.28333 0.95 5.65C0.316666 5.01667 0 4.23333 0 3.3C0 2.36667 0.316666 1.58333 0.95 0.95C1.58333 0.316666 2.36667 0 3.3 0C4.23333 0 5.01667 0.316666 5.65 0.95C6.28333 1.58333 6.6 2.36667 6.6 3.3C6.6 4.23333 6.28333 5.01667 5.65 5.65C5.01667 6.28333 4.23333 6.6 3.3 6.6ZM16 32C15.0667 32 14.2833 31.6833 13.65 31.05C13.0167 30.4167 12.7 29.6333 12.7 28.7C12.7 27.7667 13.0167 26.9833 13.65 26.35C14.2833 25.7167 15.0667 25.4 16 25.4C16.9333 25.4 17.7167 25.7167 18.35 26.35C18.9833 26.9833 19.3 27.7667 19.3 28.7C19.3 29.6333 18.9833 30.4167 18.35 31.05C17.7167 31.6833 16.9333 32 16 32ZM3.3 32C2.36667 32 1.58333 31.6833 0.95 31.05C0.316666 30.4167 0 29.6333 0 28.7C0 27.7667 0.316666 26.9833 0.95 26.35C1.58333 25.7167 2.36667 25.4 3.3 25.4C4.23333 25.4 5.01667 25.7167 5.65 26.35C6.28333 26.9833 6.6 27.7667 6.6 28.7C6.6 29.6333 6.28333 30.4167 5.65 31.05C5.01667 31.6833 4.23333 32 3.3 32ZM3.3 19.3C2.36667 19.3 1.58333 18.9833 0.95 18.35C0.316666 17.7167 0 16.9333 0 16C0 15.0667 0.316666 14.2833 0.95 13.65C1.58333 13.0167 2.36667 12.7 3.3 12.7C4.23333 12.7 5.01667 13.0167 5.65 13.65C6.28333 14.2833 6.6 15.0667 6.6 16C6.6 16.9333 6.28333 17.7167 5.65 18.35C5.01667 18.9833 4.23333 19.3 3.3 19.3ZM16 19.3C15.0667 19.3 14.2833 18.9833 13.65 18.35C13.0167 17.7167 12.7 16.9333 12.7 16C12.7 15.0667 13.0167 14.2833 13.65 13.65C14.2833 13.0167 15.0667 12.7 16 12.7C16.9333 12.7 17.7167 13.0167 18.35 13.65C18.9833 14.2833 19.3 15.0667 19.3 16C19.3 16.9333 18.9833 17.7167 18.35 18.35C17.7167 18.9833 16.9333 19.3 16 19.3ZM28.7 6.6C27.7667 6.6 26.9833 6.28333 26.35 5.65C25.7167 5.01667 25.4 4.23333 25.4 3.3C25.4 2.36667 25.7167 1.58333 26.35 0.95C26.9833 0.316666 27.7667 0 28.7 0C29.6333 0 30.4167 0.316666 31.05 0.95C31.6833 1.58333 32 2.36667 32 3.3C32 4.23333 31.6833 5.01667 31.05 5.65C30.4167 6.28333 29.6333 6.6 28.7 6.6ZM16 6.6C15.0667 6.6 14.2833 6.28333 13.65 5.65C13.0167 5.01667 12.7 4.23333 12.7 3.3C12.7 2.36667 13.0167 1.58333 13.65 0.95C14.2833 0.316666 15.0667 0 16 0C16.9333 0 17.7167 0.316666 18.35 0.95C18.9833 1.58333 19.3 2.36667 19.3 3.3C19.3 4.23333 18.9833 5.01667 18.35 5.65C17.7167 6.28333 16.9333 6.6 16 6.6ZM28.7 19.3C27.7667 19.3 26.9833 18.9833 26.35 18.35C25.7167 17.7167 25.4 16.9333 25.4 16C25.4 15.0667 25.7167 14.2833 26.35 13.65C26.9833 13.0167 27.7667 12.7 28.7 12.7C29.6333 12.7 30.4167 13.0167 31.05 13.65C31.6833 14.2833 32 15.0667 32 16C32 16.9333 31.6833 17.7167 31.05 18.35C30.4167 18.9833 29.6333 19.3 28.7 19.3ZM28.7 32C27.7667 32 26.9833 31.6833 26.35 31.05C25.7167 30.4167 25.4 29.6333 25.4 28.7C25.4 27.7667 25.7167 26.9833 26.35 26.35C26.9833 25.7167 27.7667 25.4 28.7 25.4C29.6333 25.4 30.4167 25.7167 31.05 26.35C31.6833 26.9833 32 27.7667 32 28.7C32 29.6333 31.6833 30.4167 31.05 31.05C30.4167 31.6833 29.6333 32 28.7 32Z\" fill=\"#434C56\"/>\r\n</svg>\r\n\r\n`;\r\n","export enum TitlePlacement {\r\n none = 'none',\r\n left = 'left',\r\n right = 'right'\r\n}\r\n","<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { Router } from '@angular/router';\r\nimport { IconService, PlausibleEvent } from '@tilde-nlp/ngx-common';\r\nimport { Subscription } from 'rxjs';\r\nimport { menuLogo } from '../../assets/menu-logo.svg';\r\nimport { MenuLayoutDirection } from '../../models';\r\nimport { MenuDialogSettings, MenuItemSettings, TitlePlacement } from './menu.model';\r\n@Component({\r\n selector: 'lib-menu-item-icon',\r\n templateUrl: './menu-item-icon.component.html',\r\n styleUrls: ['./menu-item-icon.component.scss']\r\n})\r\nexport class MenuItemIconComponent implements OnInit, OnDestroy {\r\n @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger | undefined;\r\n @Input() menuSettings: MenuItemSettings = {\r\n titlePlacement: TitlePlacement.left\r\n }\r\n @Input() menuDialogSettings: MenuDialogSettings = {\r\n showMenuTitle: true,\r\n disableStrapi: true,\r\n fullScreen: true\r\n }\r\n\r\n @Input() direction = MenuLayoutDirection.row;\r\n\r\n subscription: Subscription[] = [];\r\n\r\n readonly iconName = 'tld-menu-icon';\r\n readonly TITLE_PLACEMENT_NONE = TitlePlacement.none;\r\n readonly TITLE_PLACEMENT_LEFT = TitlePlacement.left;\r\n readonly PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: \"burger_click\"\r\n };\r\n\r\n constructor(private readonly iconService: IconService,\r\n private readonly router: Router) {\r\n\r\n }\r\n ngOnInit(): void {\r\n const routeChangeSub = this.router.events.subscribe(() => this.closeMenu());\r\n this.subscription.push(routeChangeSub);\r\n this.registerIcon();\r\n }\r\n\r\n closeMenu(): void {\r\n this.menuTrigger?.closeMenu();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.forEach(e => e.unsubscribe());\r\n }\r\n\r\n private registerIcon() {\r\n if (this.menuSettings.iconPath) {\r\n this.iconService.registerIconFromUrl(this.iconName, this.menuSettings.iconPath);\r\n }\r\n else {\r\n this.iconService.registerIcons({ [this.iconName]: menuLogo });\r\n }\r\n }\r\n\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ModalNavMenuComponent } from './components/modal-nav-menu/modal-nav-menu.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MenuItemIconComponent } from './components/menu-item-icon/menu-item-icon.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n ModalNavMenuComponent,\r\n MenuItemIconComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n ModalNavMenuComponent,\r\n MenuItemIconComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/menu-item-icon/menu.model';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/modal-nav-menu/modal-nav-menu.component';\r\nexport * from './lib/components/menu-item-icon/menu-item-icon.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","_c0","i5.MenuIconComponent","i6.MenuItemLinkComponent","i7","i2.MenuItemsService","_c1","i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/components/modal-nav-menu/modal-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/modal-nav-menu/modal-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/assets/menu-logo.svg.ts","../../../projects/ngx-menu/src/lib/components/menu-item-icon/models/menu-title-placement.model.ts","../../../projects/ngx-menu/src/lib/components/menu-item-icon/menu-item-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-icon/menu-item-icon.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.getStrapiData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private getStrapiData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss']\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <mat-icon class=\"menu-icon\">{{menuItem.icon}}</mat-icon>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss']\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a [libPlausibleEvent]=\"menuItem.plausibleEvent\" [fxLayout]=\"menuItemLayout\"\r\n [ngClass.lt-md]=\"'mobile'\" [class.text-center]=\"menuItemLayout === 'column'\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" (click)=\"linkClick($event, menuItem)\"\r\n [href]=\"href | translate\" [attr.target]=\"menuItem.externalLink?'_blank': '_self'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate}}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss']\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n <div *ngIf=\"titleKey && showTitle && labelsVisible\" fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n {{ titleKey | translate }}\r\n </div>\r\n <div fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\" class=\"menu-item-list\">\r\n <ng-container *ngFor=\"let menuItem of items\">\r\n <ng-container\r\n *ngTemplateOutlet=\"!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? menuItemLink : itemWithChildren; context: {menuItem: menuItem}\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n <button [attr.id]=\"menuItem.customId\" [ngClass.lt-md]=\"'mob-menu-item'\" [fxLayout]=\"menuItemLayout\" class=\"text-m menu-item\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\" matTooltipPosition=\"after\" [class.menu-labels-visible]=\"labelsVisible\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\" matTooltipClass=\"menu-tooltip\" fxLayoutGap=\"0.375rem\"\r\n [class.active-menu-item]=\"activeItem?.link && menuItem === activeItem\" (click)=\"toggleItemExpand($event,menuItem)\">\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"labelsVisible\">\r\n <span class=\"menu-item-title\">\r\n <span class=\"title-content\">{{ menuItem.title | translate }}</span></span>\r\n <span class=\"material-icons\" *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n {{ menuItem.expanded ? 'arrow_drop_up' : 'arrow_drop_down' }}\r\n </span>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"menuItem.showChildren && menuItem.expanded && labelsVisible\">\r\n <menu-item-list [ngClass.lt-md]=\"'mobile-child-list'\" class=\"child-list\" *ngIf=\"menuItem.children && menuItem.children.length\" [items]=\"menuItem.children\"\r\n [direction]=\"direction\" [labelsVisible]=\"labelsVisible\" [activeItem]=\"activeItem\">\r\n </menu-item-list>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\">\r\n <tld-menu-item-link [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [labelsVisible]=\"labelsVisible\"\r\n [activeItem]=\"activeItem\" [showIcons]=\"showIcons\"></tld-menu-item-link>\r\n</ng-template>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss']\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"labelsVisible\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss']\r\n})\r\nexport class MenuColumnsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n // if menu is collapsed and chilren are expandable, we should open menu\r\n if (element.showChildren && !this.labelsVisible) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n if (element.showChildren && element.expanded && element === this.active.root) {\r\n this.activeItem = this.active.child;\r\n }\r\n else {\r\n this.activeItem = this.active.root;\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n </a>\r\n \r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <div class=\"menu-wrapper\" fxLayout=\"column\" fxFlex>\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" fxFlex [labelsVisible]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n\r\n <button *ngIf=\"userInitials\" #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n {{userInitials}}\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username }}\r\n </span>\r\n \r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.isLink) {\r\n @if (item.openInNewTab) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.href\" target=\"_blank\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.href\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, isIconCustom: item.isIconCustom, isIconOutlined: item.isIconOutlined, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-isIconCustom=\"isIconCustom\" let-isIconOutlined=\"isIconOutlined\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!isIconCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"isIconOutlined\">\r\n {{icon}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n</ng-template>","import { Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core';\r\nimport { DOMService, PlausibleEvent } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss']\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n this.#username = value;\r\n this.setUserInitials();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false\r\n }\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) menuSharedConfig: MenuSharedConfig\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n this.setUserInitials();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username.split(' ');\r\n\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","<div class=\"content menu-modal\" fxLayout=\"row\" fxFlexFill>\r\n <div fxLayout=\"column\" [class.full-screen]=\"menuDialogSettings.fullScreen\">\r\n <div fxLayout=\"row\" class=\"menu-header\">\r\n <img [src]=\"menuDialogSettings.logo\" *ngIf=\"menuDialogSettings.logo\" width=\"75\" alt=\"\">\r\n <span *ngIf=\"menuDialogSettings.showMenuTitle\" fxLayoutAlign=\"start center\" fxFlex>{{\r\n \"MENU.MENU\" | translate\r\n }}</span>\r\n <span *ngIf=\"menuDialogSettings.showCloseMenuButton\" (click)=\"close()\" class=\"close-icon\" fxFlex\r\n fxLayoutAlign=\"end center\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n </div>\r\n <ng-content select=\"[top]\"></ng-content>\r\n <menu-columns [direction]=\"direction\" [active]=\"active\">\r\n </menu-columns>\r\n <ng-content select=\"[bottom]\"></ng-content>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { MenuDialogSettings } from '../menu-item-icon/models/menu-dialog-settings.model';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\n\r\n@Component({\r\n selector: 'lib-modal-nav-menu',\r\n templateUrl: './modal-nav-menu.component.html',\r\n styleUrls: ['./modal-nav-menu.component.scss']\r\n})\r\nexport class ModalNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() menuDialogSettings: MenuDialogSettings = {\r\n showMenuTitle: false,\r\n fullScreen: true\r\n }\r\n\r\n // any type because emitter doesn't really need a value\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Output() closeButtonClick = new EventEmitter<any>();\r\n\r\n constructor(readonly menuItems: MenuItemsService) {\r\n super(menuItems);\r\n }\r\n\r\n close() {\r\n this.closeButtonClick.emit(null);\r\n }\r\n}\r\n","export const menuLogo = `\r\n<svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3.3 6.6C2.36667 6.6 1.58333 6.28333 0.95 5.65C0.316666 5.01667 0 4.23333 0 3.3C0 2.36667 0.316666 1.58333 0.95 0.95C1.58333 0.316666 2.36667 0 3.3 0C4.23333 0 5.01667 0.316666 5.65 0.95C6.28333 1.58333 6.6 2.36667 6.6 3.3C6.6 4.23333 6.28333 5.01667 5.65 5.65C5.01667 6.28333 4.23333 6.6 3.3 6.6ZM16 32C15.0667 32 14.2833 31.6833 13.65 31.05C13.0167 30.4167 12.7 29.6333 12.7 28.7C12.7 27.7667 13.0167 26.9833 13.65 26.35C14.2833 25.7167 15.0667 25.4 16 25.4C16.9333 25.4 17.7167 25.7167 18.35 26.35C18.9833 26.9833 19.3 27.7667 19.3 28.7C19.3 29.6333 18.9833 30.4167 18.35 31.05C17.7167 31.6833 16.9333 32 16 32ZM3.3 32C2.36667 32 1.58333 31.6833 0.95 31.05C0.316666 30.4167 0 29.6333 0 28.7C0 27.7667 0.316666 26.9833 0.95 26.35C1.58333 25.7167 2.36667 25.4 3.3 25.4C4.23333 25.4 5.01667 25.7167 5.65 26.35C6.28333 26.9833 6.6 27.7667 6.6 28.7C6.6 29.6333 6.28333 30.4167 5.65 31.05C5.01667 31.6833 4.23333 32 3.3 32ZM3.3 19.3C2.36667 19.3 1.58333 18.9833 0.95 18.35C0.316666 17.7167 0 16.9333 0 16C0 15.0667 0.316666 14.2833 0.95 13.65C1.58333 13.0167 2.36667 12.7 3.3 12.7C4.23333 12.7 5.01667 13.0167 5.65 13.65C6.28333 14.2833 6.6 15.0667 6.6 16C6.6 16.9333 6.28333 17.7167 5.65 18.35C5.01667 18.9833 4.23333 19.3 3.3 19.3ZM16 19.3C15.0667 19.3 14.2833 18.9833 13.65 18.35C13.0167 17.7167 12.7 16.9333 12.7 16C12.7 15.0667 13.0167 14.2833 13.65 13.65C14.2833 13.0167 15.0667 12.7 16 12.7C16.9333 12.7 17.7167 13.0167 18.35 13.65C18.9833 14.2833 19.3 15.0667 19.3 16C19.3 16.9333 18.9833 17.7167 18.35 18.35C17.7167 18.9833 16.9333 19.3 16 19.3ZM28.7 6.6C27.7667 6.6 26.9833 6.28333 26.35 5.65C25.7167 5.01667 25.4 4.23333 25.4 3.3C25.4 2.36667 25.7167 1.58333 26.35 0.95C26.9833 0.316666 27.7667 0 28.7 0C29.6333 0 30.4167 0.316666 31.05 0.95C31.6833 1.58333 32 2.36667 32 3.3C32 4.23333 31.6833 5.01667 31.05 5.65C30.4167 6.28333 29.6333 6.6 28.7 6.6ZM16 6.6C15.0667 6.6 14.2833 6.28333 13.65 5.65C13.0167 5.01667 12.7 4.23333 12.7 3.3C12.7 2.36667 13.0167 1.58333 13.65 0.95C14.2833 0.316666 15.0667 0 16 0C16.9333 0 17.7167 0.316666 18.35 0.95C18.9833 1.58333 19.3 2.36667 19.3 3.3C19.3 4.23333 18.9833 5.01667 18.35 5.65C17.7167 6.28333 16.9333 6.6 16 6.6ZM28.7 19.3C27.7667 19.3 26.9833 18.9833 26.35 18.35C25.7167 17.7167 25.4 16.9333 25.4 16C25.4 15.0667 25.7167 14.2833 26.35 13.65C26.9833 13.0167 27.7667 12.7 28.7 12.7C29.6333 12.7 30.4167 13.0167 31.05 13.65C31.6833 14.2833 32 15.0667 32 16C32 16.9333 31.6833 17.7167 31.05 18.35C30.4167 18.9833 29.6333 19.3 28.7 19.3ZM28.7 32C27.7667 32 26.9833 31.6833 26.35 31.05C25.7167 30.4167 25.4 29.6333 25.4 28.7C25.4 27.7667 25.7167 26.9833 26.35 26.35C26.9833 25.7167 27.7667 25.4 28.7 25.4C29.6333 25.4 30.4167 25.7167 31.05 26.35C31.6833 26.9833 32 27.7667 32 28.7C32 29.6333 31.6833 30.4167 31.05 31.05C30.4167 31.6833 29.6333 32 28.7 32Z\" fill=\"#434C56\"/>\r\n</svg>\r\n\r\n`;\r\n","export enum TitlePlacement {\r\n none = 'none',\r\n left = 'left',\r\n right = 'right'\r\n}\r\n","<button class=\"content text-l\" mat-button [disableRipple]=\"true\" #menuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\" [libPlausibleEvent]=\"PLAUSIBLE_EVENT\">\r\n <span fxLayout=\"row\" fxLayoutGap=\"1.5em\" fxLayoutAlign=\"center center\">\r\n <span *ngIf=\"menuSettings.titlePlacement !== TITLE_PLACEMENT_NONE\" [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 1 : 2\r\n \" class=\"menu-label\">{{ \"MENU.MENU\" | translate }}</span>\r\n <mat-icon [fxFlexOrder]=\"\r\n menuSettings.titlePlacement === TITLE_PLACEMENT_LEFT ? 2 : 1\r\n \" [svgIcon]=\"iconName\">\r\n </mat-icon>\r\n </span>\r\n</button>\r\n\r\n<mat-menu [hasBackdrop]=\"true\" #menu class=\"mobile-menu-dialog {{\r\n menuDialogSettings.fullScreen ? 'full-screen' : 'minimized-screen'\r\n }}\">\r\n <!-- Click method so that menu does not get closed when clicking outside of items-->\r\n <lib-modal-nav-menu (click)=\"$event.stopPropagation()\" (closeButtonClick)=\"closeMenu()\"\r\n [menuDialogSettings]=\"menuDialogSettings\" [direction]=\"direction\">\r\n <ng-content top select=\"[top]\"></ng-content>\r\n <ng-content bottom select=\"[bottom]\"></ng-content>\r\n </lib-modal-nav-menu>\r\n</mat-menu>","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { Router } from '@angular/router';\r\nimport { IconService, PlausibleEvent } from '@tilde-nlp/ngx-common';\r\nimport { Subscription } from 'rxjs';\r\nimport { menuLogo } from '../../assets/menu-logo.svg';\r\nimport { MenuLayoutDirection } from '../../models';\r\nimport { MenuDialogSettings, MenuItemSettings, TitlePlacement } from './menu.model';\r\n@Component({\r\n selector: 'lib-menu-item-icon',\r\n templateUrl: './menu-item-icon.component.html',\r\n styleUrls: ['./menu-item-icon.component.scss']\r\n})\r\nexport class MenuItemIconComponent implements OnInit, OnDestroy {\r\n @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger | undefined;\r\n @Input() menuSettings: MenuItemSettings = {\r\n titlePlacement: TitlePlacement.left\r\n }\r\n @Input() menuDialogSettings: MenuDialogSettings = {\r\n showMenuTitle: true,\r\n disableStrapi: true,\r\n fullScreen: true\r\n }\r\n\r\n @Input() direction = MenuLayoutDirection.row;\r\n\r\n subscription: Subscription[] = [];\r\n\r\n readonly iconName = 'tld-menu-icon';\r\n readonly TITLE_PLACEMENT_NONE = TitlePlacement.none;\r\n readonly TITLE_PLACEMENT_LEFT = TitlePlacement.left;\r\n readonly PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: \"burger_click\"\r\n };\r\n\r\n constructor(private readonly iconService: IconService,\r\n private readonly router: Router) {\r\n\r\n }\r\n ngOnInit(): void {\r\n const routeChangeSub = this.router.events.subscribe(() => this.closeMenu());\r\n this.subscription.push(routeChangeSub);\r\n this.registerIcon();\r\n }\r\n\r\n closeMenu(): void {\r\n this.menuTrigger?.closeMenu();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.forEach(e => e.unsubscribe());\r\n }\r\n\r\n private registerIcon() {\r\n if (this.menuSettings.iconPath) {\r\n this.iconService.registerIconFromUrl(this.iconName, this.menuSettings.iconPath);\r\n }\r\n else {\r\n this.iconService.registerIcons({ [this.iconName]: menuLogo });\r\n }\r\n }\r\n\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ModalNavMenuComponent } from './components/modal-nav-menu/modal-nav-menu.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MenuItemIconComponent } from './components/menu-item-icon/menu-item-icon.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n ModalNavMenuComponent,\r\n MenuItemIconComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n ModalNavMenuComponent,\r\n MenuItemIconComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/menu-item-icon/menu.model';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/modal-nav-menu/modal-nav-menu.component';\r\nexport * from './lib/components/menu-item-icon/menu-item-icon.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","_c0","i5.MenuIconComponent","i6.MenuItemLinkComponent","i7","i2.MenuItemsService","_c1","i1","i2"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  export interface UserOptions {
2
2
  label: string;
3
- callback: () => void;
3
+ callback?: () => void;
4
4
  icon?: string;
5
+ href?: string;
6
+ isLink?: boolean;
7
+ openInNewTab?: boolean;
5
8
  isIconCustom?: boolean;
6
9
  isIconOutlined?: boolean;
7
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tilde-nlp/ngx-menu",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.0",
6
6
  "@angular/core": "^18.0.0",