@tilde-nlp/ngx-menu 6.1.52 → 7.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/fesm2022/tilde-nlp-ngx-menu.mjs +29 -29
  2. package/fesm2022/tilde-nlp-ngx-menu.mjs.map +1 -1
  3. package/package.json +10 -12
  4. package/esm2022/lib/components/menu-columns/menu-columns.component.mjs +0 -108
  5. package/esm2022/lib/components/menu-icon/menu-icon.component.mjs +0 -54
  6. package/esm2022/lib/components/menu-item-btn/menu-item-btn.component.mjs +0 -77
  7. package/esm2022/lib/components/menu-item-link/menu-item-link.component.mjs +0 -91
  8. package/esm2022/lib/components/menu-item-list/menu-item-list.component.mjs +0 -330
  9. package/esm2022/lib/components/menu-lang-switcher/menu-lang-switcher.component.mjs +0 -107
  10. package/esm2022/lib/components/menu-profile/menu-profile.component.mjs +0 -201
  11. package/esm2022/lib/components/nav-base/models/index.mjs +0 -2
  12. package/esm2022/lib/components/nav-base/models/strapi-data-location.enum.mjs +0 -7
  13. package/esm2022/lib/components/nav-base/nav-base.component.mjs +0 -37
  14. package/esm2022/lib/components/side-nav-menu/index.mjs +0 -3
  15. package/esm2022/lib/components/side-nav-menu/models/index.mjs +0 -3
  16. package/esm2022/lib/components/side-nav-menu/models/side-nav-settings.model.mjs +0 -2
  17. package/esm2022/lib/components/side-nav-menu/models/user-menu-option-button.model.mjs +0 -2
  18. package/esm2022/lib/components/side-nav-menu/models/user-menu-option-icon.model.mjs +0 -2
  19. package/esm2022/lib/components/side-nav-menu/models/user-menu-option-link.model.mjs +0 -2
  20. package/esm2022/lib/components/side-nav-menu/models/user-menu-option.model.mjs +0 -2
  21. package/esm2022/lib/components/side-nav-menu/side-nav-menu.component.mjs +0 -212
  22. package/esm2022/lib/constants/index.mjs +0 -2
  23. package/esm2022/lib/constants/user-menu-options.const.mjs +0 -56
  24. package/esm2022/lib/injection-tokens/index.mjs +0 -2
  25. package/esm2022/lib/injection-tokens/menu-shared-config.token.mjs +0 -2
  26. package/esm2022/lib/menu.module.mjs +0 -122
  27. package/esm2022/lib/models/active-menu-item-config.model.mjs +0 -2
  28. package/esm2022/lib/models/active-menu-items.model.mjs +0 -2
  29. package/esm2022/lib/models/custom-menu-item.model.mjs +0 -2
  30. package/esm2022/lib/models/index.mjs +0 -8
  31. package/esm2022/lib/models/menu-icon-strapi-extension.const.mjs +0 -2
  32. package/esm2022/lib/models/menu-item-group.model.mjs +0 -2
  33. package/esm2022/lib/models/menu-layout-direction.model.mjs +0 -6
  34. package/esm2022/lib/models/menu-shared-config.model.mjs +0 -2
  35. package/esm2022/lib/models/menu-title-navigation.model.mjs +0 -2
  36. package/esm2022/lib/services/index.mjs +0 -3
  37. package/esm2022/lib/services/menu-items.service.mjs +0 -126
  38. package/esm2022/lib/services/strapi.service.mjs +0 -95
  39. package/esm2022/public-api.mjs +0 -14
  40. package/esm2022/tilde-nlp-ngx-menu.mjs +0 -5
@@ -1,330 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { MenuLayoutDirection } from '../../models/menu-layout-direction.model';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngbracket/ngx-layout/flex";
5
- import * as i2 from "@ngbracket/ngx-layout/extended";
6
- import * as i3 from "@angular/router";
7
- import * as i4 from "@angular/common";
8
- import * as i5 from "@angular/material/tooltip";
9
- import * as i6 from "@angular/material/icon";
10
- import * as i7 from "@angular/material/button";
11
- import * as i8 from "@angular/material/menu";
12
- import * as i9 from "../menu-icon/menu-icon.component";
13
- import * as i10 from "../menu-item-link/menu-item-link.component";
14
- import * as i11 from "../menu-item-btn/menu-item-btn.component";
15
- import * as i12 from "@ngx-translate/core";
16
- const _c0 = a0 => ({ menuItem: a0 });
17
- const _c1 = a0 => ({ menuItem: a0, isChild: true });
18
- function MenuItemListComponent_Conditional_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "mat-icon", 13);
20
- i0.ɵɵtext(1);
21
- i0.ɵɵelementEnd();
22
- } if (rf & 2) {
23
- const ctx_r0 = i0.ɵɵnextContext(2);
24
- i0.ɵɵadvance();
25
- i0.ɵɵtextInterpolate1(" ", ctx_r0.menuItemGroup.titleIcon, " ");
26
- } }
27
- function MenuItemListComponent_Conditional_1_button_2_Template(rf, ctx) { if (rf & 1) {
28
- i0.ɵɵelementStart(0, "button", 14);
29
- i0.ɵɵpipe(1, "translate");
30
- i0.ɵɵelementStart(2, "mat-icon");
31
- i0.ɵɵtext(3);
32
- i0.ɵɵelementEnd()();
33
- } if (rf & 2) {
34
- let tmp_7_0;
35
- const ctx_r0 = i0.ɵɵnextContext(2);
36
- i0.ɵɵproperty("routerLink", ctx_r0.menuItemGroup.titleNavigation.path)("matTooltip", i0.ɵɵpipeBind1(1, 3, (tmp_7_0 = ctx_r0.menuItemGroup.titleNavigation == null ? null : ctx_r0.menuItemGroup.titleNavigation.tooltip) !== null && tmp_7_0 !== undefined ? tmp_7_0 : ""));
37
- i0.ɵɵadvance(3);
38
- i0.ɵɵtextInterpolate(ctx_r0.menuItemGroup.titleNavigation.icon);
39
- } }
40
- function MenuItemListComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "div", 8);
42
- i0.ɵɵtemplate(1, MenuItemListComponent_Conditional_1_mat_icon_1_Template, 2, 1, "mat-icon", 11)(2, MenuItemListComponent_Conditional_1_button_2_Template, 4, 5, "button", 12);
43
- i0.ɵɵtext(3);
44
- i0.ɵɵpipe(4, "translate");
45
- i0.ɵɵelementEnd();
46
- } if (rf & 2) {
47
- const ctx_r0 = i0.ɵɵnextContext();
48
- i0.ɵɵadvance();
49
- i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup.titleIcon);
50
- i0.ɵɵadvance();
51
- i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup.titleNavigation);
52
- i0.ɵɵadvance();
53
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, ctx_r0.titleKey), " ");
54
- } }
55
- function MenuItemListComponent_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelementContainer(0);
57
- } }
58
- function MenuItemListComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵtemplate(0, MenuItemListComponent_Conditional_2_ng_container_0_Template, 1, 0, "ng-container", 15);
60
- } if (rf & 2) {
61
- i0.ɵɵnextContext();
62
- const itemGroupButton_r2 = i0.ɵɵreference(12);
63
- i0.ɵɵproperty("ngTemplateOutlet", itemGroupButton_r2);
64
- } }
65
- function MenuItemListComponent_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelementContainer(0);
67
- } }
68
- function MenuItemListComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
69
- i0.ɵɵelementContainerStart(0);
70
- i0.ɵɵtemplate(1, MenuItemListComponent_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 16);
71
- i0.ɵɵelementContainerEnd();
72
- } if (rf & 2) {
73
- const menuItem_r3 = ctx.$implicit;
74
- i0.ɵɵnextContext();
75
- const itemWithChildren_r4 = i0.ɵɵreference(6);
76
- const menuItemLink_r5 = i0.ɵɵreference(8);
77
- const menuItemBtn_r6 = i0.ɵɵreference(10);
78
- i0.ɵɵadvance();
79
- i0.ɵɵproperty("ngTemplateOutlet", !menuItem_r3.showChildren || !menuItem_r3.children || (menuItem_r3 == null ? null : menuItem_r3.children == null ? null : menuItem_r3.children.length) === 0 ? menuItem_r3.clickAction ? menuItemBtn_r6 : menuItemLink_r5 : itemWithChildren_r4)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, menuItem_r3));
80
- } }
81
- function MenuItemListComponent_ng_template_5_ng_container_3_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelementContainerStart(0);
83
- i0.ɵɵelement(1, "tld-menu-icon", 21);
84
- i0.ɵɵelementContainerEnd();
85
- } if (rf & 2) {
86
- const menuItem_r8 = i0.ɵɵnextContext().menuItem;
87
- i0.ɵɵadvance();
88
- i0.ɵɵproperty("menuItem", menuItem_r8);
89
- } }
90
- function MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_span_1_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "span", 25);
92
- i0.ɵɵtext(1, "keyboard_arrow_down");
93
- i0.ɵɵelementEnd();
94
- } }
95
- function MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵelementStart(0, "span", 25);
97
- i0.ɵɵtext(1, " keyboard_arrow_up ");
98
- i0.ɵɵelementEnd();
99
- } }
100
- function MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {
101
- i0.ɵɵelementContainerStart(0);
102
- i0.ɵɵtemplate(1, MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_span_1_Template, 2, 0, "span", 24)(2, MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_ng_template_2_Template, 2, 0, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor);
103
- i0.ɵɵelementContainerEnd();
104
- } if (rf & 2) {
105
- const iconDown_r9 = i0.ɵɵreference(3);
106
- i0.ɵɵnextContext(2);
107
- const state_r10 = i0.ɵɵreference(1);
108
- i0.ɵɵadvance();
109
- i0.ɵɵproperty("ngIf", state_r10.menuOpen)("ngIfElse", iconDown_r9);
110
- } }
111
- function MenuItemListComponent_ng_template_5_ng_container_4_Template(rf, ctx) { if (rf & 1) {
112
- i0.ɵɵelementContainerStart(0);
113
- i0.ɵɵelementStart(1, "span", 22)(2, "span", 23);
114
- i0.ɵɵtext(3);
115
- i0.ɵɵpipe(4, "translate");
116
- i0.ɵɵelementEnd()();
117
- i0.ɵɵtemplate(5, MenuItemListComponent_ng_template_5_ng_container_4_ng_container_5_Template, 4, 2, "ng-container", 18);
118
- i0.ɵɵelementContainerEnd();
119
- } if (rf & 2) {
120
- const menuItem_r8 = i0.ɵɵnextContext().menuItem;
121
- i0.ɵɵadvance(3);
122
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 2, menuItem_r8.title));
123
- i0.ɵɵadvance(2);
124
- i0.ɵɵproperty("ngIf", menuItem_r8.showChildren && menuItem_r8.children);
125
- } }
126
- function MenuItemListComponent_ng_template_5_For_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵelementContainer(0);
128
- } }
129
- function MenuItemListComponent_ng_template_5_For_8_Template(rf, ctx) { if (rf & 1) {
130
- i0.ɵɵelementStart(0, "div", 20);
131
- i0.ɵɵtemplate(1, MenuItemListComponent_ng_template_5_For_8_ng_container_1_Template, 1, 0, "ng-container", 16);
132
- i0.ɵɵelementEnd();
133
- } if (rf & 2) {
134
- const child_r11 = ctx.$implicit;
135
- const menuItem_r8 = i0.ɵɵnextContext().menuItem;
136
- i0.ɵɵnextContext();
137
- const menuItemLink_r5 = i0.ɵɵreference(8);
138
- const menuItemBtn_r6 = i0.ɵɵreference(10);
139
- i0.ɵɵadvance();
140
- i0.ɵɵproperty("ngTemplateOutlet", menuItem_r8.clickAction ? menuItemBtn_r6 : menuItemLink_r5)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c1, child_r11));
141
- } }
142
- function MenuItemListComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
143
- const _r7 = i0.ɵɵgetCurrentView();
144
- i0.ɵɵelementStart(0, "button", 17, 4);
145
- i0.ɵɵpipe(2, "translate");
146
- i0.ɵɵlistener("click", function MenuItemListComponent_ng_template_5_Template_button_click_0_listener($event) { const menuItem_r8 = i0.ɵɵrestoreView(_r7).menuItem; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.toggleItemExpand($event, menuItem_r8)); });
147
- i0.ɵɵtemplate(3, MenuItemListComponent_ng_template_5_ng_container_3_Template, 2, 1, "ng-container", 18)(4, MenuItemListComponent_ng_template_5_ng_container_4_Template, 6, 4, "ng-container", 18);
148
- i0.ɵɵelementEnd();
149
- i0.ɵɵelementStart(5, "mat-menu", 19, 5);
150
- i0.ɵɵrepeaterCreate(7, MenuItemListComponent_ng_template_5_For_8_Template, 2, 4, "div", 20, i0.ɵɵrepeaterTrackByIndex);
151
- i0.ɵɵelementEnd();
152
- } if (rf & 2) {
153
- const menuItem_r8 = ctx.menuItem;
154
- const state_r10 = i0.ɵɵreference(1);
155
- const menu_r12 = i0.ɵɵreference(6);
156
- const ctx_r0 = i0.ɵɵnextContext();
157
- i0.ɵɵclassProp("menu-labels-visible", ctx_r0.labelsVisible)("active-menu-item", (ctx_r0.activeItem == null ? null : ctx_r0.activeItem.link) && menuItem_r8 === ctx_r0.activeItem || state_r10.menuOpen);
158
- i0.ɵɵproperty("matTooltip", !ctx_r0.labelsVisible ? i0.ɵɵpipeBind1(2, 12, menuItem_r8.title) : "")("fxLayout", ctx_r0.menuItemLayout)("fxLayoutAlign", ctx_r0.menuLayoutDirection)("matMenuTriggerFor", menu_r12)("ngClass.lt-md", "mob-menu-item");
159
- i0.ɵɵattribute("id", menuItem_r8.customId);
160
- i0.ɵɵadvance(3);
161
- i0.ɵɵproperty("ngIf", ctx_r0.showIcons && menuItem_r8.icon);
162
- i0.ɵɵadvance();
163
- i0.ɵɵproperty("ngIf", ctx_r0.labelsVisible);
164
- i0.ɵɵadvance(3);
165
- i0.ɵɵrepeater(menuItem_r8.children);
166
- } }
167
- function MenuItemListComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵelement(0, "tld-menu-item-link", 26);
169
- } if (rf & 2) {
170
- const menuItem_r13 = ctx.menuItem;
171
- const isChild_r14 = ctx.isChild;
172
- const ctx_r0 = i0.ɵɵnextContext();
173
- i0.ɵɵproperty("ngClass.lt-md", "mob-menu-item")("menuItem", menuItem_r13)("direction", ctx_r0.direction)("labelsVisible", ctx_r0.labelsVisible || isChild_r14)("activeItem", ctx_r0.activeItem)("showIcons", ctx_r0.showIcons);
174
- } }
175
- function MenuItemListComponent_ng_template_9_lib_menu_item_btn_0_Template(rf, ctx) { if (rf & 1) {
176
- i0.ɵɵelement(0, "lib-menu-item-btn", 28);
177
- } if (rf & 2) {
178
- const menuItem_r15 = i0.ɵɵnextContext().menuItem;
179
- const ctx_r0 = i0.ɵɵnextContext();
180
- i0.ɵɵproperty("ngClass.lt-md", "mob-menu-item")("menuItem", menuItem_r15)("direction", ctx_r0.direction)("activeItem", ctx_r0.activeItem);
181
- } }
182
- function MenuItemListComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
183
- i0.ɵɵtemplate(0, MenuItemListComponent_ng_template_9_lib_menu_item_btn_0_Template, 1, 4, "lib-menu-item-btn", 27);
184
- } if (rf & 2) {
185
- const ctx_r0 = i0.ɵɵnextContext();
186
- i0.ɵɵproperty("ngIf", ctx_r0.labelsVisible);
187
- } }
188
- function MenuItemListComponent_ng_template_11_button_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelement(0, "mat-icon", 32);
190
- } if (rf & 2) {
191
- let tmp_7_0;
192
- const ctx_r0 = i0.ɵɵnextContext(3);
193
- i0.ɵɵproperty("svgIcon", (tmp_7_0 = ctx_r0.menuItemGroup.itemGroupIcon) !== null && tmp_7_0 !== undefined ? tmp_7_0 : "");
194
- } }
195
- function MenuItemListComponent_ng_template_11_button_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
196
- i0.ɵɵelementStart(0, "mat-icon");
197
- i0.ɵɵtext(1);
198
- i0.ɵɵelementEnd();
199
- } if (rf & 2) {
200
- const ctx_r0 = i0.ɵɵnextContext(3);
201
- i0.ɵɵadvance();
202
- i0.ɵɵtextInterpolate(ctx_r0.menuItemGroup.itemGroupIcon);
203
- } }
204
- function MenuItemListComponent_ng_template_11_button_0_span_3_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "span", 34);
206
- i0.ɵɵtext(1);
207
- i0.ɵɵpipe(2, "translate");
208
- i0.ɵɵelementEnd();
209
- } if (rf & 2) {
210
- const ctx_r0 = i0.ɵɵnextContext(3);
211
- i0.ɵɵadvance();
212
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r0.titleKey), " ");
213
- } }
214
- function MenuItemListComponent_ng_template_11_button_0_Template(rf, ctx) { if (rf & 1) {
215
- const _r16 = i0.ɵɵgetCurrentView();
216
- i0.ɵɵelementStart(0, "button", 31);
217
- i0.ɵɵlistener("click", function MenuItemListComponent_ng_template_11_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.menuItemGroup == null ? null : ctx_r0.menuItemGroup.itemGroupClick()); });
218
- i0.ɵɵtemplate(1, MenuItemListComponent_ng_template_11_button_0_Conditional_1_Template, 1, 1, "mat-icon", 32)(2, MenuItemListComponent_ng_template_11_button_0_Conditional_2_Template, 2, 1, "mat-icon")(3, MenuItemListComponent_ng_template_11_button_0_span_3_Template, 3, 3, "span", 33);
219
- i0.ɵɵelementEnd();
220
- } if (rf & 2) {
221
- const ctx_r0 = i0.ɵɵnextContext(2);
222
- i0.ɵɵclassProp("active-menu-item-group", ctx_r0.menuItemGroup.isItemGroupActive && ctx_r0.menuItemGroup.isItemGroupActive());
223
- i0.ɵɵadvance();
224
- i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 1 : 2);
225
- i0.ɵɵadvance(2);
226
- i0.ɵɵproperty("ngIf", ctx_r0.titleKey);
227
- } }
228
- function MenuItemListComponent_ng_template_11_button_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
229
- i0.ɵɵelement(0, "mat-icon", 32);
230
- } if (rf & 2) {
231
- let tmp_7_0;
232
- const ctx_r0 = i0.ɵɵnextContext(3);
233
- i0.ɵɵproperty("svgIcon", (tmp_7_0 = ctx_r0.menuItemGroup.itemGroupIcon) !== null && tmp_7_0 !== undefined ? tmp_7_0 : "");
234
- } }
235
- function MenuItemListComponent_ng_template_11_button_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
236
- i0.ɵɵelementStart(0, "mat-icon");
237
- i0.ɵɵtext(1);
238
- i0.ɵɵelementEnd();
239
- } if (rf & 2) {
240
- const ctx_r0 = i0.ɵɵnextContext(3);
241
- i0.ɵɵadvance();
242
- i0.ɵɵtextInterpolate(ctx_r0.menuItemGroup.itemGroupIcon);
243
- } }
244
- function MenuItemListComponent_ng_template_11_button_1_Template(rf, ctx) { if (rf & 1) {
245
- const _r17 = i0.ɵɵgetCurrentView();
246
- i0.ɵɵelementStart(0, "button", 35);
247
- i0.ɵɵpipe(1, "translate");
248
- i0.ɵɵlistener("click", function MenuItemListComponent_ng_template_11_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.menuItemGroup == null ? null : ctx_r0.menuItemGroup.itemGroupClick()); });
249
- i0.ɵɵtemplate(2, MenuItemListComponent_ng_template_11_button_1_Conditional_2_Template, 1, 1, "mat-icon", 32)(3, MenuItemListComponent_ng_template_11_button_1_Conditional_3_Template, 2, 1, "mat-icon");
250
- i0.ɵɵelementEnd();
251
- } if (rf & 2) {
252
- const ctx_r0 = i0.ɵɵnextContext(2);
253
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, ctx_r0.titleKey));
254
- i0.ɵɵadvance(2);
255
- i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 2 : 3);
256
- } }
257
- function MenuItemListComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵtemplate(0, MenuItemListComponent_ng_template_11_button_0_Template, 4, 4, "button", 29)(1, MenuItemListComponent_ng_template_11_button_1_Template, 4, 4, "button", 30);
259
- } if (rf & 2) {
260
- const ctx_r0 = i0.ɵɵnextContext();
261
- i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup && ctx_r0.labelsVisible);
262
- i0.ɵɵadvance();
263
- i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup && !ctx_r0.labelsVisible && ctx_r0.titleKey && ctx_r0.menuItemGroup.itemGroupIcon);
264
- } }
265
- export class MenuItemListComponent {
266
- constructor() {
267
- this.direction = MenuLayoutDirection.column;
268
- this.labelsVisible = true;
269
- this.showIcons = true;
270
- this.items = [];
271
- this.toggleExpand = new EventEmitter();
272
- }
273
- get titleKey() {
274
- return this.menuItemGroup?.title;
275
- }
276
- get showTitle() {
277
- return this.menuItemGroup?.showTitle;
278
- }
279
- get menuLayoutDirection() {
280
- return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)
281
- ? 'start center' : 'start start';
282
- }
283
- get menuItemLayout() {
284
- return this.direction === MenuLayoutDirection.column ? 'column' : 'row';
285
- }
286
- toggleItemExpand(event, menuItem) {
287
- // so menu doesnt get closed.
288
- event.stopPropagation();
289
- if (this.labelsVisible || !menuItem.expanded) {
290
- menuItem.expanded = !menuItem.expanded;
291
- }
292
- this.toggleExpand.next(menuItem);
293
- }
294
- static { this.ɵfac = function MenuItemListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuItemListComponent)(); }; }
295
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuItemListComponent, selectors: [["menu-item-list"]], inputs: { direction: "direction", labelsVisible: "labelsVisible", activeItem: "activeItem", showIcons: "showIcons", items: "items", menuItemGroup: "menuItemGroup" }, outputs: { toggleExpand: "toggleExpand" }, decls: 13, vars: 3, consts: [["itemWithChildren", ""], ["menuItemLink", ""], ["menuItemBtn", ""], ["itemGroupButton", ""], ["state", "matMenuTrigger"], ["menu", "matMenu"], ["iconDown", ""], [1, "menu-list-wrapper"], ["fxLayoutAlign", "start center", 1, "menu-item-list-title"], ["fxLayout", "column", 1, "menu-item-list", 3, "fxLayoutAlign"], [4, "ngFor", "ngForOf"], ["class", "menu-title-btn", 4, "ngIf"], ["mat-icon-button", "", "class", "menu-title-btn", 3, "routerLink", "matTooltip", 4, "ngIf"], [1, "menu-title-btn"], ["mat-icon-button", "", 1, "menu-title-btn", 3, "routerLink", "matTooltip"], [4, "ngTemplateOutlet"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["matTooltipClass", "menu-tooltip", "matTooltipPosition", "after", 1, "text-m", "menu-item", "menu-parent-item", 3, "click", "matTooltip", "fxLayout", "fxLayoutAlign", "matMenuTriggerFor", "ngClass.lt-md"], [4, "ngIf"], [1, "child-menu"], ["mat-menu-item", ""], [3, "menuItem"], [1, "menu-item-title"], [1, "title-content"], ["class", "material-icons spin arrow-icon", 4, "ngIf", "ngIfElse"], [1, "material-icons", "spin", "arrow-icon"], [3, "ngClass.lt-md", "menuItem", "direction", "labelsVisible", "activeItem", "showIcons"], [3, "ngClass.lt-md", "menuItem", "direction", "activeItem", 4, "ngIf"], [3, "ngClass.lt-md", "menuItem", "direction", "activeItem"], ["mat-button", "", "class", "menu-title-btn menu-action-button", 3, "active-menu-item-group", "click", 4, "ngIf"], ["mat-icon-button", "", "matTooltipPosition", "after", 3, "matTooltip", "click", 4, "ngIf"], ["mat-button", "", 1, "menu-title-btn", "menu-action-button", 3, "click"], [3, "svgIcon"], ["class", "btn-label", 4, "ngIf"], [1, "btn-label"], ["mat-icon-button", "", "matTooltipPosition", "after", 3, "click", "matTooltip"]], template: function MenuItemListComponent_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelementStart(0, "div", 7);
297
- i0.ɵɵtemplate(1, MenuItemListComponent_Conditional_1_Template, 5, 5, "div", 8)(2, MenuItemListComponent_Conditional_2_Template, 1, 1, "ng-container");
298
- i0.ɵɵelementStart(3, "div", 9);
299
- i0.ɵɵtemplate(4, MenuItemListComponent_ng_container_4_Template, 2, 4, "ng-container", 10);
300
- i0.ɵɵelementEnd()();
301
- i0.ɵɵtemplate(5, MenuItemListComponent_ng_template_5_Template, 9, 14, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(7, MenuItemListComponent_ng_template_7_Template, 1, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(9, MenuItemListComponent_ng_template_9_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(11, MenuItemListComponent_ng_template_11_Template, 2, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
302
- } if (rf & 2) {
303
- i0.ɵɵadvance();
304
- i0.ɵɵconditional(ctx.titleKey && ctx.showTitle && ctx.labelsVisible && !ctx.menuItemGroup.itemGroupClick ? 1 : (ctx.menuItemGroup == null ? null : ctx.menuItemGroup.itemGroupClick) ? 2 : -1);
305
- i0.ɵɵadvance(2);
306
- i0.ɵɵproperty("fxLayoutAlign", ctx.menuLayoutDirection);
307
- i0.ɵɵadvance();
308
- i0.ɵɵproperty("ngForOf", ctx.items);
309
- } }, dependencies: [i1.DefaultLayoutDirective, i1.DefaultLayoutAlignDirective, i2.DefaultClassDirective, i3.RouterLink, i4.NgForOf, i4.NgIf, i4.NgTemplateOutlet, i5.MatTooltip, i6.MatIcon, i7.MatButton, i7.MatIconButton, i8.MatMenu, i8.MatMenuItem, i8.MatMenuTrigger, i9.MenuIconComponent, i10.MenuItemLinkComponent, i11.MenuItemBtnComponent, i12.TranslatePipe], styles: [".spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}[_nghost-%COMP%]{display:inline-block}.menu-item[_ngcontent-%COMP%]{width:100%} a, a:hover{text-decoration:none} .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important} .collapsed .menu-list-wrapper, .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important} .collapsed .menu-item{display:flex!important;place-content:center center!important} .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button[_ngcontent-%COMP%]{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}.menu-action-button.active-menu-item-group[_ngcontent-%COMP%]{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}[_nghost-%COMP%] .menu-list-wrapper .menu-item:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}[_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item mat-icon, [_nghost-%COMP%] .menu-list-wrapper .menu-item.active-menu-item:hover{font-weight:600}[_nghost-%COMP%] .menu-list-wrapper .menu-item span{display:inline-block}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;align-items:start;width:100%}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title .title-content{width:100%;text-align:start;display:block}[_nghost-%COMP%] .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}[_nghost-%COMP%] .menu-list-wrapper .menu-parent-item.active-menu-item, [_nghost-%COMP%] .menu-list-wrapper .menu-parent-item:hover{font-weight:400!important;background-color:var(--base-70)!important} .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative} .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}.menu-item-list-title[_ngcontent-%COMP%]{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title[_ngcontent-%COMP%]:has(.menu-title-btn){margin-left:0} lib-menu-lang-switcher, .menu-item-list[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s forwards} lib-menu-lang-switcher, .menu-title-btn[_ngcontent-%COMP%]{margin-right:2px;transition:opacity .3s}.arrow-icon[_ngcontent-%COMP%]{margin-right:-6px}@keyframes _ngcontent-%COMP%_slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}"] }); }
310
- }
311
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemListComponent, [{
312
- type: Component,
313
- args: [{ selector: 'menu-item-list', template: "<div class=\"menu-list-wrapper\">\r\n\t@if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n\t<div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n\t\t<mat-icon *ngIf=\"menuItemGroup.titleIcon\" class=\"menu-title-btn\">\r\n\t\t\t{{ menuItemGroup.titleIcon }}\r\n\t\t</mat-icon>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"menuItemGroup.titleNavigation\"\r\n\t\t\tmat-icon-button\r\n\t\t\tclass=\"menu-title-btn\"\r\n\t\t\t[routerLink]=\"menuItemGroup.titleNavigation.path\"\r\n\t\t\t[matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>{{ menuItemGroup.titleNavigation.icon }}</mat-icon>\r\n\t\t</button>\r\n\r\n\t\t{{ titleKey | translate }}\r\n\t</div>\r\n\t} @else if (menuItemGroup?.itemGroupClick) {\r\n\t<ng-container *ngTemplateOutlet=\"itemGroupButton\"> </ng-container>\r\n\t}\r\n\t<div class=\"menu-item-list\" fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\">\r\n\t\t<ng-container *ngFor=\"let menuItem of items\">\r\n\t\t\t<ng-container\r\n\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : menuItemLink) : itemWithChildren;\r\n\t\t\t\t\tcontext: { menuItem: menuItem }\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n\t<button\r\n\t\tmatTooltipClass=\"menu-tooltip\"\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n\t\t[fxLayout]=\"menuItemLayout\"\r\n\t\t[fxLayoutAlign]=\"menuLayoutDirection\"\r\n\t\t#state=\"matMenuTrigger\"\r\n\t\t[matMenuTriggerFor]=\"menu\"\r\n\t\t[attr.id]=\"menuItem.customId\"\r\n\t\tclass=\"text-m menu-item menu-parent-item\"\r\n\t\t[class.menu-labels-visible]=\"labelsVisible\"\r\n\t\t[class.active-menu-item]=\"(activeItem?.link && menuItem === activeItem) || state.menuOpen\"\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t(click)=\"toggleItemExpand($event, menuItem)\"\r\n\t>\r\n\t\t<ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n\t\t\t<tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"labelsVisible\">\r\n\t\t\t<span class=\"menu-item-title\">\r\n\t\t\t\t<span class=\"title-content\">{{ menuItem.title | translate }}</span></span\r\n\t\t\t>\r\n\t\t\t<ng-container *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n\t\t\t\t<span *ngIf=\"state.menuOpen; else iconDown\" class=\"material-icons spin arrow-icon\">keyboard_arrow_down</span>\r\n\r\n\t\t\t\t<ng-template #iconDown>\r\n\t\t\t\t\t<span class=\"material-icons spin arrow-icon\"> keyboard_arrow_up </span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</button>\r\n\t<mat-menu #menu=\"matMenu\" class=\"child-menu\">\r\n\t\t@for (child of menuItem.children; track $index) {\r\n\t\t<div mat-menu-item>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"menuItem.clickAction ? menuItemBtn : menuItemLink; context: { menuItem: child, isChild: true }\"> </ng-container>\r\n\t\t</div>\r\n\t\t}\r\n\t</mat-menu>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\" let-isChild=\"isChild\">\r\n\t<tld-menu-item-link\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t[menuItem]=\"menuItem\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[labelsVisible]=\"labelsVisible || isChild\"\r\n\t\t[activeItem]=\"activeItem\"\r\n\t\t[showIcons]=\"showIcons\"\r\n\t></tld-menu-item-link>\r\n</ng-template>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n\t<lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && labelsVisible\"\r\n\t\tmat-button\r\n\t\tclass=\"menu-title-btn menu-action-button\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t\t[class.active-menu-item-group]=\"menuItemGroup.isItemGroupActive && menuItemGroup.isItemGroupActive()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t\t<span class=\"btn-label\" *ngIf=\"titleKey\">\r\n\t\t\t{{ titleKey | translate }}\r\n\t\t</span>\r\n\t</button>\r\n\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n\t\tmat-icon-button\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"titleKey | translate\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t</button>\r\n</ng-template>\r\n", styles: [".spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}:host{display:inline-block}.menu-item{width:100%}::ng-deep a,::ng-deep a:hover{text-decoration:none}::ng-deep .collapsed .menu-item-list{display:flex!important;justify-content:center!important;align-items:center!important}::ng-deep .collapsed .menu-list-wrapper,::ng-deep .collapsed tld-menu-item-link{display:flex!important;justify-content:center!important}::ng-deep .collapsed .menu-item{display:flex!important;place-content:center center!important}::ng-deep .collapsed tld-menu-item-link:not(:first-child){margin-top:16px!important}.menu-action-button{justify-content:flex-start;align-items:center;max-width:100%;width:-webkit-fill-available}.menu-action-button.active-menu-item-group{background-color:var(--base-95)!important}:host ::ng-deep .menu-list-wrapper .menu-item{cursor:pointer;font-style:normal;color:var(--base-30);text-decoration:none;align-items:center!important;font-weight:400;background:none;border:none}:host ::ng-deep .menu-list-wrapper .menu-item:not(button):not(.active-menu-item):hover{background-color:var(--base-70)!important}:host ::ng-deep .menu-list-wrapper .menu-item.active-menu-item,:host ::ng-deep .menu-list-wrapper .menu-item.active-menu-item mat-icon,:host ::ng-deep .menu-list-wrapper .menu-item.active-menu-item:hover{font-weight:600}:host ::ng-deep .menu-list-wrapper .menu-item span{display:inline-block}:host ::ng-deep .menu-list-wrapper .menu-item .menu-item-title{display:flex;flex-direction:row;align-items:start;width:100%}:host ::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content{width:100%;text-align:start;display:block}:host ::ng-deep .menu-list-wrapper .menu-item .menu-item-title .title-content:before{display:block;content:attr(content);font-weight:600;height:0;overflow:hidden;visibility:hidden}:host ::ng-deep .menu-list-wrapper .menu-parent-item.active-menu-item,:host ::ng-deep .menu-list-wrapper .menu-parent-item:hover{font-weight:400!important;background-color:var(--base-70)!important}::ng-deep .menu-tooltip{left:.625rem;font-family:Roboto;font-style:normal;font-weight:400;font-size:.75rem;line-height:1.25rem;color:var(--base-70);border-radius:.25rem;position:relative}::ng-deep .menu-tooltip:after{width:0;height:0;content:\"\";position:absolute;border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid var(--menu-border-dark-color);left:-.75rem;top:calc(50% - .25rem);transform:rotate(270deg);overflow:initial}.menu-item-list-title{padding:8px 0 24px;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;margin-left:20px;height:56px}.menu-item-list-title:has(.menu-title-btn){margin-left:0}::ng-deep lib-menu-lang-switcher,.menu-item-list{animation:slide-in .3s forwards}::ng-deep lib-menu-lang-switcher,.menu-title-btn{margin-right:2px;transition:opacity .3s}.arrow-icon{margin-right:-6px}@keyframes slide-in{0%{opacity:0;margin-left:-100px}to{opacity:1;margin-left:0}}\n"] }]
314
- }], null, { direction: [{
315
- type: Input
316
- }], labelsVisible: [{
317
- type: Input
318
- }], activeItem: [{
319
- type: Input
320
- }], showIcons: [{
321
- type: Input
322
- }], items: [{
323
- type: Input
324
- }], menuItemGroup: [{
325
- type: Input
326
- }], toggleExpand: [{
327
- type: Output
328
- }] }); })();
329
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuItemListComponent, { className: "MenuItemListComponent", filePath: "lib\\components\\menu-item-list\\menu-item-list.component.ts", lineNumber: 11 }); })();
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtaXRlbS1saXN0L21lbnUtaXRlbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0tbGlzdC9tZW51LWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ0E3RSxvQ0FBaUU7SUFDaEUsWUFDRDtJQUFBLGlCQUFXOzs7SUFEVixjQUNEO0lBREMsK0RBQ0Q7OztJQUVBLGtDQU1DOztJQUNBLGdDQUFVO0lBQUEsWUFBd0M7SUFDbkQsQUFEbUQsaUJBQVcsRUFDckQ7Ozs7SUFIUixBQURBLHNFQUFpRCxxTUFDc0I7SUFFN0QsZUFBd0M7SUFBeEMsK0RBQXdDOzs7SUFacEQsOEJBQStEO0lBSzlELEFBSkEsK0ZBQWlFLDhFQVVoRTtJQUlELFlBQ0Q7O0lBQUEsaUJBQU07OztJQWZNLGNBQTZCO0lBQTdCLHFEQUE2QjtJQUt0QyxjQUFtQztJQUFuQywyREFBbUM7SUFTckMsY0FDRDtJQURDLHNFQUNEOzs7SUFFQSx3QkFBa0U7OztJQUFsRSx1R0FBa0Q7Ozs7SUFBbkMscURBQWlDOzs7SUFJOUMsd0JBTWU7OztJQVBoQiw2QkFBNkM7SUFDNUMsd0dBS0M7Ozs7Ozs7O0lBSkMsY0FFSztJQUFBLEFBRkwsa1JBRUssb0VBQ1A7OztJQXVCRCw2QkFBaUQ7SUFDaEQsb0NBQXFEOzs7O0lBQXRD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O1lBRUksWUFBWTtrQkFBckIsTUFBTTs7a0ZBVEkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvY3VzdG9tLW1lbnUtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtR3JvdXBCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lbnUtaXRlbS1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVMYXlvdXREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVudS1sYXlvdXQtZGlyZWN0aW9uLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVudS1pdGVtLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS1pdGVtLWxpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUl0ZW1MaXN0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBkaXJlY3Rpb246IE1lbnVMYXlvdXREaXJlY3Rpb24gPSBNZW51TGF5b3V0RGlyZWN0aW9uLmNvbHVtbjtcclxuICBASW5wdXQoKSBsYWJlbHNWaXNpYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhY3RpdmVJdGVtITogQ3VzdG9tTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2hvd0ljb25zID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgaXRlbXM6IEN1c3RvbU1lbnVJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBtZW51SXRlbUdyb3VwITogTWVudUl0ZW1Hcm91cEJhc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0b2dnbGVFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21NZW51SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbU1lbnVJdGVtPigpO1xyXG5cclxuICBnZXQgdGl0bGVLZXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbUdyb3VwPy50aXRsZTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93VGl0bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbUdyb3VwPy5zaG93VGl0bGU7XHJcbiAgfVxyXG5cclxuICBnZXQgbWVudUxheW91dERpcmVjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLmRpcmVjdGlvbiA9PT0gTWVudUxheW91dERpcmVjdGlvbi5jb2x1bW4gfHwgIXRoaXMubGFiZWxzVmlzaWJsZSlcclxuICAgICAgPyAnc3RhcnQgY2VudGVyJyA6ICdzdGFydCBzdGFydCc7XHJcbiAgfVxyXG5cclxuICBnZXQgbWVudUl0ZW1MYXlvdXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gTWVudUxheW91dERpcmVjdGlvbi5jb2x1bW4gPyAnY29sdW1uJyA6ICdyb3cnO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSXRlbUV4cGFuZChldmVudDogTW91c2VFdmVudCwgbWVudUl0ZW06IEN1c3RvbU1lbnVJdGVtKSB7XHJcbiAgICAvLyBzbyBtZW51IGRvZXNudCBnZXQgY2xvc2VkLlxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGFiZWxzVmlzaWJsZSB8fCAhbWVudUl0ZW0uZXhwYW5kZWQpIHtcclxuICAgICAgbWVudUl0ZW0uZXhwYW5kZWQgPSAhbWVudUl0ZW0uZXhwYW5kZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50b2dnbGVFeHBhbmQubmV4dChtZW51SXRlbSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtZW51LWxpc3Qtd3JhcHBlclwiPlxyXG5cdEBpZiAodGl0bGVLZXkgJiYgc2hvd1RpdGxlICYmIGxhYmVsc1Zpc2libGUgJiYgIW1lbnVJdGVtR3JvdXAuaXRlbUdyb3VwQ2xpY2spIHtcclxuXHQ8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBjbGFzcz1cIm1lbnUtaXRlbS1saXN0LXRpdGxlXCI+XHJcblx0XHQ8bWF0LWljb24gKm5nSWY9XCJtZW51SXRlbUdyb3VwLnRpdGxlSWNvblwiIGNsYXNzPVwibWVudS10aXRsZS1idG5cIj5cclxuXHRcdFx0e3sgbWVudUl0ZW1Hcm91cC50aXRsZUljb24gfX1cclxuXHRcdDwvbWF0LWljb24+XHJcblxyXG5cdFx0PGJ1dHRvblxyXG5cdFx0XHQqbmdJZj1cIm1lbnVJdGVtR3JvdXAudGl0bGVOYXZpZ2F0aW9uXCJcclxuXHRcdFx0bWF0LWljb24tYnV0dG9uXHJcblx0XHRcdGNsYXNzPVwibWVudS10aXRsZS1idG5cIlxyXG5cdFx0XHRbcm91dGVyTGlua109XCJtZW51SXRlbUdyb3VwLnRpdGxlTmF2aWdhdGlvbi5wYXRoXCJcclxuXHRcdFx0W21hdFRvb2x0aXBdPVwibWVudUl0ZW1Hcm91cC50aXRsZU5hdmlnYXRpb24/LnRvb2x0aXAgPz8gJycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bWF0LWljb24+e3sgbWVudUl0ZW1Hcm91cC50aXRsZU5hdmlnYXRpb24uaWNvbiB9fTwvbWF0LWljb24+XHJcblx0XHQ8L2J1dHRvbj5cclxuXHJcblx0XHR7eyB0aXRsZUtleSB8IHRyYW5zbGF0ZSB9fVxyXG5cdDwvZGl2PlxyXG5cdH0gQGVsc2UgaWYgKG1lbnVJdGVtR3JvdXA/Lml0ZW1Hcm91cENsaWNrKSB7XHJcblx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Hcm91cEJ1dHRvblwiPiA8L25nLWNvbnRhaW5lcj5cclxuXHR9XHJcblx0PGRpdiBjbGFzcz1cIm1lbnUtaXRlbS1saXN0XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBbZnhMYXlvdXRBbGlnbl09XCJtZW51TGF5b3V0RGlyZWN0aW9uXCI+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBpdGVtc1wiPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJcclxuXHRcdFx0XHRcdCFtZW51SXRlbS5zaG93Q2hpbGRyZW4gfHwgIW1lbnVJdGVtLmNoaWxkcmVuIHx8IG1lbnVJdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID09PSAwID8gKG1lbnVJdGVtLmNsaWNrQWN0aW9uID8gbWVudUl0ZW1CdG4gOiBtZW51SXRlbUxpbmspIDogaXRlbVdpdGhDaGlsZHJlbjtcclxuXHRcdFx0XHRcdGNvbnRleHQ6IHsgbWVudUl0ZW06IG1lbnVJdGVtIH1cclxuXHRcdFx0XHRcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtV2l0aENoaWxkcmVuIGxldC1tZW51SXRlbT1cIm1lbnVJdGVtXCI+XHJcblx0PGJ1dHRvblxyXG5cdFx0bWF0VG9vbHRpcENsYXNzPVwibWVudS10b29sdGlwXCJcclxuXHRcdG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCJcclxuXHRcdFttYXRUb29sdGlwXT1cIiFsYWJlbHNWaXNpYmxlID8gKG1lbnVJdGVtLnRpdGxlIHwgdHJhbnNsYXRlKSA6ICcnXCJcclxuXHRcdFtmeExheW91dF09XCJtZW51SXRlbUxheW91dFwiXHJcblx0XHRbZnhMYXlvdXRBbGlnbl09XCJtZW51TGF5b3V0RGlyZWN0aW9uXCJcclxuXHRcdCNzdGF0ZT1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuXHRcdFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuXHRcdFthdHRyLmlkXT1cIm1lbnVJdGVtLmN1c3RvbUlkXCJcclxuXHRcdGNsYXNzPVwidGV4dC1tIG1lbnUtaXRlbSBtZW51LXBhcmVudC1pdGVtXCJcclxuXHRcdFtjbGFzcy5tZW51LWxhYmVscy12aXNpYmxlXT1cImxhYmVsc1Zpc2libGVcIlxyXG5cdFx0W2NsYXNzLmFjdGl2ZS1tZW51LWl0ZW1dPVwiKGFjdGl2ZUl0ZW0/LmxpbmsgJiYgbWVudUl0ZW0gPT09IGFjdGl2ZUl0ZW0pIHx8IHN0YXRlLm1lbnVPcGVuXCJcclxuXHRcdFtuZ0NsYXNzLmx0LW1kXT1cIidtb2ItbWVudS1pdGVtJ1wiXHJcblx0XHQoY2xpY2spPVwidG9nZ2xlSXRlbUV4cGFuZCgkZXZlbnQsIG1lbnVJdGVtKVwiXHJcblx0PlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dJY29ucyAmJiBtZW51SXRlbS5pY29uXCI+XHJcblx0XHRcdDx0bGQtbWVudS1pY29uIFttZW51SXRlbV09XCJtZW51SXRlbVwiPjwvdGxkLW1lbnUtaWNvbj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsc1Zpc2libGVcIj5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJtZW51LWl0ZW0tdGl0bGVcIj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRpdGxlLWNvbnRlbnRcIj57eyBtZW51SXRlbS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L3NwYW5cclxuXHRcdFx0PlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0uc2hvd0NoaWxkcmVuICYmIG1lbnVJdGVtLmNoaWxkcmVuXCI+XHJcblx0XHRcdFx0PHNwYW4gKm5nSWY9XCJzdGF0ZS5tZW51T3BlbjsgZWxzZSBpY29uRG93blwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BpbiBhcnJvdy1pY29uXCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvc3Bhbj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNpY29uRG93bj5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgc3BpbiBhcnJvdy1pY29uXCI+IGtleWJvYXJkX2Fycm93X3VwIDwvc3Bhbj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvYnV0dG9uPlxyXG5cdDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImNoaWxkLW1lbnVcIj5cclxuXHRcdEBmb3IgKGNoaWxkIG9mIG1lbnVJdGVtLmNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcclxuXHRcdDxkaXYgbWF0LW1lbnUtaXRlbT5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVJdGVtLmNsaWNrQWN0aW9uID8gbWVudUl0ZW1CdG4gOiBtZW51SXRlbUxpbms7IGNvbnRleHQ6IHsgbWVudUl0ZW06IGNoaWxkLCBpc0NoaWxkOiB0cnVlIH1cIj4gPC9uZy1jb250YWluZXI+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L21hdC1tZW51PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtZW51SXRlbUxpbmsgbGV0LW1lbnVJdGVtPVwibWVudUl0ZW1cIiBsZXQtaXNDaGlsZD1cImlzQ2hpbGRcIj5cclxuXHQ8dGxkLW1lbnUtaXRlbS1saW5rXHJcblx0XHRbbmdDbGFzcy5sdC1tZF09XCInbW9iLW1lbnUtaXRlbSdcIlxyXG5cdFx0W21lbnVJdGVtXT1cIm1lbnVJdGVtXCJcclxuXHRcdFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuXHRcdFtsYWJlbHNWaXNpYmxlXT1cImxhYmVsc1Zpc2libGUgfHwgaXNDaGlsZFwiXHJcblx0XHRbYWN0aXZlSXRlbV09XCJhY3RpdmVJdGVtXCJcclxuXHRcdFtzaG93SWNvbnNdPVwic2hvd0ljb25zXCJcclxuXHQ+PC90bGQtbWVudS1pdGVtLWxpbms+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI21lbnVJdGVtQnRuIGxldC1tZW51SXRlbT1cIm1lbnVJdGVtXCI+XHJcblx0PGxpYi1tZW51LWl0ZW0tYnRuICpuZ0lmPVwibGFiZWxzVmlzaWJsZVwiIFtuZ0NsYXNzLmx0LW1kXT1cIidtb2ItbWVudS1pdGVtJ1wiIFttZW51SXRlbV09XCJtZW51SXRlbVwiIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCIgW2FjdGl2ZUl0ZW1dPVwiYWN0aXZlSXRlbVwiPjwvbGliLW1lbnUtaXRlbS1idG4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2l0ZW1Hcm91cEJ1dHRvbj5cclxuXHQ8YnV0dG9uXHJcblx0XHQqbmdJZj1cIm1lbnVJdGVtR3JvdXAgJiYgbGFiZWxzVmlzaWJsZVwiXHJcblx0XHRtYXQtYnV0dG9uXHJcblx0XHRjbGFzcz1cIm1lbnUtdGl0bGUtYnRuIG1lbnUtYWN0aW9uLWJ1dHRvblwiXHJcblx0XHQoY2xpY2spPVwibWVudUl0ZW1Hcm91cD8uaXRlbUdyb3VwQ2xpY2soKVwiXHJcblx0XHRbY2xhc3MuYWN0aXZlLW1lbnUtaXRlbS1ncm91cF09XCJtZW51SXRlbUdyb3VwLmlzSXRlbUdyb3VwQWN0aXZlICYmIG1lbnVJdGVtR3JvdXAuaXNJdGVtR3JvdXBBY3RpdmUoKVwiXHJcblx0PlxyXG5cdFx0QGlmKG1lbnVJdGVtR3JvdXAuaXNDdXN0b21JdGVtR3JvdXBJY29uKXtcclxuXHRcdDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJtZW51SXRlbUdyb3VwLml0ZW1Hcm91cEljb24gPz8gJydcIj48L21hdC1pY29uPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHQ8bWF0LWljb24+e3sgbWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uIH19PC9tYXQtaWNvbj5cclxuXHRcdH1cclxuXHRcdDxzcGFuIGNsYXNzPVwiYnRuLWxhYmVsXCIgKm5nSWY9XCJ0aXRsZUtleVwiPlxyXG5cdFx0XHR7eyB0aXRsZUtleSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9zcGFuPlxyXG5cdDwvYnV0dG9uPlxyXG5cclxuXHQ8YnV0dG9uXHJcblx0XHQqbmdJZj1cIm1lbnVJdGVtR3JvdXAgJiYgIWxhYmVsc1Zpc2libGUgJiYgdGl0bGVLZXkgJiYgbWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uXCJcclxuXHRcdG1hdC1pY29uLWJ1dHRvblxyXG5cdFx0bWF0VG9vbHRpcFBvc2l0aW9uPVwiYWZ0ZXJcIlxyXG5cdFx0W21hdFRvb2x0aXBdPVwidGl0bGVLZXkgfCB0cmFuc2xhdGVcIlxyXG5cdFx0KGNsaWNrKT1cIm1lbnVJdGVtR3JvdXA/Lml0ZW1Hcm91cENsaWNrKClcIlxyXG5cdD5cclxuXHRcdEBpZihtZW51SXRlbUdyb3VwLmlzQ3VzdG9tSXRlbUdyb3VwSWNvbil7XHJcblx0XHQ8bWF0LWljb24gW3N2Z0ljb25dPVwibWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uID8/ICcnXCI+PC9tYXQtaWNvbj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0PG1hdC1pY29uPnt7IG1lbnVJdGVtR3JvdXAuaXRlbUdyb3VwSWNvbiB9fTwvbWF0LWljb24+XHJcblx0XHR9XHJcblx0PC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,107 +0,0 @@
1
- import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/tooltip";
5
- import * as i2 from "@angular/material/icon";
6
- import * as i3 from "@angular/material/menu";
7
- import * as i4 from "@ngx-translate/core";
8
- import * as i5 from "@tilde-nlp/ngx-common";
9
- function MenuLangSwitcherComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
10
- i0.ɵɵelementStart(0, "span");
11
- i0.ɵɵtext(1);
12
- i0.ɵɵpipe(2, "languageTranslate");
13
- i0.ɵɵelementEnd();
14
- } if (rf & 2) {
15
- const ctx_r0 = i0.ɵɵnextContext();
16
- i0.ɵɵadvance();
17
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r0.currentLanguageCode), " ");
18
- } }
19
- function MenuLangSwitcherComponent_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "mat-icon", 6);
21
- i0.ɵɵtext(1, "keyboard_arrow_down");
22
- i0.ɵɵelementEnd();
23
- } }
24
- function MenuLangSwitcherComponent_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelementStart(0, "mat-icon", 6);
26
- i0.ɵɵtext(1, "keyboard_arrow_up");
27
- i0.ɵɵelementEnd();
28
- } }
29
- function MenuLangSwitcherComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵtemplate(0, MenuLangSwitcherComponent_Conditional_7_Conditional_0_Template, 2, 0, "mat-icon", 6)(1, MenuLangSwitcherComponent_Conditional_7_Conditional_1_Template, 2, 0, "mat-icon", 6);
31
- } if (rf & 2) {
32
- i0.ɵɵnextContext();
33
- const state_r2 = i0.ɵɵreference(1);
34
- i0.ɵɵconditional(state_r2.menuOpen ? 0 : 1);
35
- } }
36
- function MenuLangSwitcherComponent_For_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
37
- const _r3 = i0.ɵɵgetCurrentView();
38
- i0.ɵɵelementStart(0, "button", 8);
39
- i0.ɵɵlistener("click", function MenuLangSwitcherComponent_For_11_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const lang_r4 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.changeLanguage(lang_r4)); });
40
- i0.ɵɵtext(1);
41
- i0.ɵɵpipe(2, "languageTranslate");
42
- i0.ɵɵelementEnd();
43
- } if (rf & 2) {
44
- const lang_r4 = i0.ɵɵnextContext().$implicit;
45
- i0.ɵɵadvance();
46
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, lang_r4), " ");
47
- } }
48
- function MenuLangSwitcherComponent_For_11_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵtemplate(0, MenuLangSwitcherComponent_For_11_Conditional_0_Template, 3, 3, "button", 7);
50
- } if (rf & 2) {
51
- const lang_r4 = ctx.$implicit;
52
- const ctx_r0 = i0.ɵɵnextContext();
53
- i0.ɵɵconditional(lang_r4 !== ctx_r0.currentLanguageCode ? 0 : -1);
54
- } }
55
- export class MenuLangSwitcherComponent {
56
- constructor() {
57
- this.changeLanguageEvent = new EventEmitter();
58
- this.#translate = inject(TranslateService);
59
- }
60
- #translate;
61
- ngOnInit() {
62
- this.currentLanguageCode = this.#translate.currentLang;
63
- }
64
- changeLanguage(lang) {
65
- this.#translate.use(lang);
66
- this.currentLanguageCode = lang;
67
- this.changeLanguageEvent.emit(lang);
68
- }
69
- static { this.ɵfac = function MenuLangSwitcherComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuLangSwitcherComponent)(); }; }
70
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuLangSwitcherComponent, selectors: [["lib-menu-lang-switcher"]], inputs: { isCollapsed: "isCollapsed", languages: "languages" }, outputs: { changeLanguageEvent: "changeLanguageEvent" }, decls: 12, vars: 10, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["matTooltipPosition", "after", "matTooltipClass", "menu-tooltip", 1, "lang-switcher", 3, "matMenuTriggerFor", "matTooltip"], [1, "current-lang"], [1, "lang-icon"], [1, "lang-menu"], [1, "menu-arrow", "spin"], ["mat-menu-item", ""], ["mat-menu-item", "", 3, "click"]], template: function MenuLangSwitcherComponent_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵelementStart(0, "button", 2, 0);
72
- i0.ɵɵpipe(2, "translate");
73
- i0.ɵɵelementStart(3, "div", 3)(4, "mat-icon", 4);
74
- i0.ɵɵtext(5, "language");
75
- i0.ɵɵelementEnd();
76
- i0.ɵɵtemplate(6, MenuLangSwitcherComponent_Conditional_6_Template, 3, 3, "span");
77
- i0.ɵɵelementEnd();
78
- i0.ɵɵtemplate(7, MenuLangSwitcherComponent_Conditional_7_Template, 2, 1);
79
- i0.ɵɵelementEnd();
80
- i0.ɵɵelementStart(8, "mat-menu", 5, 1);
81
- i0.ɵɵrepeaterCreate(10, MenuLangSwitcherComponent_For_11_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
82
- i0.ɵɵelementEnd();
83
- } if (rf & 2) {
84
- const state_r2 = i0.ɵɵreference(1);
85
- const menu_r5 = i0.ɵɵreference(9);
86
- i0.ɵɵclassProp("collapsed", ctx.isCollapsed)("active", state_r2.menuOpen);
87
- i0.ɵɵproperty("matMenuTriggerFor", menu_r5)("matTooltip", ctx.isCollapsed ? i0.ɵɵpipeBind1(2, 8, "MENU.CHANGE_LANGUAGE") : "");
88
- i0.ɵɵadvance(6);
89
- i0.ɵɵconditional(!ctx.isCollapsed ? 6 : -1);
90
- i0.ɵɵadvance();
91
- i0.ɵɵconditional(!ctx.isCollapsed ? 7 : -1);
92
- i0.ɵɵadvance(3);
93
- i0.ɵɵrepeater(ctx.languages);
94
- } }, dependencies: [i1.MatTooltip, i2.MatIcon, i3.MatMenu, i3.MatMenuItem, i3.MatMenuTrigger, i4.TranslatePipe, i5.LanguageTranslatePipe], styles: [".spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}span[_ngcontent-%COMP%]{font-size:14px}.lang-switcher[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-30);background:none;width:100%;padding:16px 8px 16px 18px;border-radius:5px}.lang-switcher.active[_ngcontent-%COMP%], .lang-switcher[_ngcontent-%COMP%]:hover{background-color:var(--base-70)}.collapsed[_ngcontent-%COMP%]{padding:0;min-width:40px;height:40px;border-radius:50%;margin-top:10px;justify-content:center;width:100%;margin-left:-6px}.current-lang[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;gap:12px}.collapsed[_ngcontent-%COMP%] .current-lang[_ngcontent-%COMP%]{justify-content:center;width:100%}"] }); }
95
- }
96
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuLangSwitcherComponent, [{
97
- type: Component,
98
- args: [{ selector: 'lib-menu-lang-switcher', template: "<button\r\n [class.collapsed]=\"isCollapsed\"\r\n #state=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [matTooltip]=\"isCollapsed ? ('MENU.CHANGE_LANGUAGE' | translate) : ''\"\r\n matTooltipPosition=\"after\"\r\n matTooltipClass=\"menu-tooltip\" \r\n class=\"lang-switcher\"\r\n [class.active]=\"state.menuOpen\"\r\n>\r\n<div class=\"current-lang\">\r\n <mat-icon class=\"lang-icon\">language</mat-icon>\r\n\r\n @if (!isCollapsed) {\r\n <span>\r\n {{ currentLanguageCode | languageTranslate }}\r\n </span>\r\n }\r\n</div>\r\n\r\n @if (!isCollapsed) {\r\n @if (state.menuOpen) {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_down</mat-icon>\r\n } @else {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_up</mat-icon>\r\n }\r\n }\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"lang-menu\">\r\n @for (lang of languages; track lang) {\r\n @if (lang !== currentLanguageCode) {\r\n <button mat-menu-item (click)=\"changeLanguage(lang)\">\r\n {{ lang | languageTranslate }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n", styles: [".spin{animation:spinArrow .3s forwards}@keyframes spinArrow{to{transform:rotate(180deg)}}span{font-size:14px}.lang-switcher{white-space:nowrap;overflow:hidden;display:flex;align-items:center;color:var(--base-30);background:none;width:100%;padding:16px 8px 16px 18px;border-radius:5px}.lang-switcher.active,.lang-switcher:hover{background-color:var(--base-70)}.collapsed{padding:0;min-width:40px;height:40px;border-radius:50%;margin-top:10px;justify-content:center;width:100%;margin-left:-6px}.current-lang{display:flex;align-items:center;width:100%;gap:12px}.collapsed .current-lang{justify-content:center;width:100%}\n"] }]
99
- }], null, { isCollapsed: [{
100
- type: Input
101
- }], languages: [{
102
- type: Input
103
- }], changeLanguageEvent: [{
104
- type: Output
105
- }] }); })();
106
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuLangSwitcherComponent, { className: "MenuLangSwitcherComponent", filePath: "lib\\components\\menu-lang-switcher\\menu-lang-switcher.component.ts", lineNumber: 9 }); })();
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1sYW5nLXN3aXRjaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9tZW51LWxhbmctc3dpdGNoZXIvbWVudS1sYW5nLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9tZW51LWxhbmctc3dpdGNoZXIvbWVudS1sYW5nLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztJQ2FuRCw0QkFBTTtJQUNKLFlBQ0Y7O0lBQUEsaUJBQU87OztJQURMLGNBQ0Y7SUFERSxpRkFDRjs7O0lBTUUsbUNBQWtDO0lBQUEsbUNBQW1CO0lBQUEsaUJBQVc7OztJQUVoRSxtQ0FBa0M7SUFBQSxpQ0FBaUI7SUFBQSxpQkFBVzs7O0lBRDVELEFBRkoscUdBQXNCLHdGQUVYOzs7O0lBRlgsMkNBSUc7Ozs7SUFPRCxpQ0FBcUQ7SUFBL0Isa1BBQVMsOEJBQW9CLEtBQUM7SUFDbEQsWUFDRjs7SUFBQSxpQkFBUzs7O0lBRFAsY0FDRjtJQURFLDhEQUNGOzs7SUFIRiw0RkFBb0M7Ozs7SUFBcEMsaUVBSUM7O0FEM0JMLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFRWSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTNELGVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQWF2QztJQWJDLFVBQVUsQ0FBNEI7SUFJdEMsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUN6RCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7MEhBakJVLHlCQUF5QjtvRUFBekIseUJBQXlCO1lDUnRDLG9DQVNDOztZQUVDLEFBREYsOEJBQTBCLGtCQUNJO1lBQUEsd0JBQVE7WUFBQSxpQkFBVztZQUUvQyxnRkFBb0I7WUFLdEIsaUJBQU07WUFFSix3RUFBb0I7WUFPdEIsaUJBQVM7WUFFVCxzQ0FBNEM7WUFDMUMsa0hBTUM7WUFDSCxpQkFBVzs7OztZQTdCVCxBQVBBLDRDQUErQiw2QkFPQTtZQUovQixBQURBLDJDQUEwQixtRkFDNEM7WUFTdEUsZUFJQztZQUpELDJDQUlDO1lBR0QsY0FNQztZQU5ELDJDQU1DO1lBSUQsZUFNQztZQU5ELDRCQU1DOzs7aUZENUJVLHlCQUF5QjtjQUxyQyxTQUFTOzJCQUNFLHdCQUF3QjtnQkFLekIsV0FBVztrQkFBbkIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07O2tGQUhJLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tZW51LWxhbmctc3dpdGNoZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWxhbmctc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9tZW51LWxhbmctc3dpdGNoZXIuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51TGFuZ1N3aXRjaGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpc0NvbGxhcHNlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbGFuZ3VhZ2VzITogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIGNoYW5nZUxhbmd1YWdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgY3VycmVudExhbmd1YWdlQ29kZSE6IHN0cmluZztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGUgPSB0aGlzLiN0cmFuc2xhdGUuY3VycmVudExhbmc7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuI3RyYW5zbGF0ZS51c2UobGFuZyk7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGUgPSBsYW5nO1xyXG4gICAgdGhpcy5jaGFuZ2VMYW5ndWFnZUV2ZW50LmVtaXQobGFuZyk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCJcclxuICAjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiXHJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gIFttYXRUb29sdGlwXT1cImlzQ29sbGFwc2VkID8gKCdNRU5VLkNIQU5HRV9MQU5HVUFHRScgfCB0cmFuc2xhdGUpIDogJydcIlxyXG4gIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFmdGVyXCJcclxuICBtYXRUb29sdGlwQ2xhc3M9XCJtZW51LXRvb2x0aXBcIiBcclxuICBjbGFzcz1cImxhbmctc3dpdGNoZXJcIlxyXG4gIFtjbGFzcy5hY3RpdmVdPVwic3RhdGUubWVudU9wZW5cIlxyXG4+XHJcbjxkaXYgY2xhc3M9XCJjdXJyZW50LWxhbmdcIj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJsYW5nLWljb25cIj5sYW5ndWFnZTwvbWF0LWljb24+XHJcblxyXG4gIEBpZiAoIWlzQ29sbGFwc2VkKSB7XHJcbiAgICA8c3Bhbj5cclxuICAgICAge3sgY3VycmVudExhbmd1YWdlQ29kZSB8IGxhbmd1YWdlVHJhbnNsYXRlIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbiAgQGlmICghaXNDb2xsYXBzZWQpIHtcclxuICAgIEBpZiAoc3RhdGUubWVudU9wZW4pIHtcclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWVudS1hcnJvdyBzcGluXCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtZW51LWFycm93IHNwaW5cIj5rZXlib2FyZF9hcnJvd191cDwvbWF0LWljb24+XHJcbiAgICAgIH1cclxuICB9XHJcbjwvYnV0dG9uPlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwibGFuZy1tZW51XCI+XHJcbiAgQGZvciAobGFuZyBvZiBsYW5ndWFnZXM7IHRyYWNrIGxhbmcpIHtcclxuICAgIEBpZiAobGFuZyAhPT0gY3VycmVudExhbmd1YWdlQ29kZSkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZUxhbmd1YWdlKGxhbmcpXCI+XHJcbiAgICAgICAge3sgbGFuZyB8IGxhbmd1YWdlVHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG4gIH1cclxuPC9tYXQtbWVudT5cclxuIl19