@tilde-nlp/ngx-menu 6.1.51 → 6.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/menu-item-list/menu-item-list.component.mjs +6 -5
- package/esm2022/lib/models/menu-item-group.model.mjs +1 -1
- package/fesm2022/tilde-nlp-ngx-menu.mjs +5 -4
- package/fesm2022/tilde-nlp-ngx-menu.mjs.map +1 -1
- package/lib/models/menu-item-group.model.d.ts +2 -0
- package/package.json +1 -1
|
@@ -219,6 +219,7 @@ function MenuItemListComponent_ng_template_11_button_0_Template(rf, ctx) { if (r
|
|
|
219
219
|
i0.ɵɵelementEnd();
|
|
220
220
|
} if (rf & 2) {
|
|
221
221
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
222
|
+
i0.ɵɵclassProp("active-menu-item-group", ctx_r0.menuItemGroup.isItemGroupActive && ctx_r0.menuItemGroup.isItemGroupActive());
|
|
222
223
|
i0.ɵɵadvance();
|
|
223
224
|
i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 1 : 2);
|
|
224
225
|
i0.ɵɵadvance(2);
|
|
@@ -254,7 +255,7 @@ function MenuItemListComponent_ng_template_11_button_1_Template(rf, ctx) { if (r
|
|
|
254
255
|
i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 2 : 3);
|
|
255
256
|
} }
|
|
256
257
|
function MenuItemListComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
257
|
-
i0.ɵɵtemplate(0, MenuItemListComponent_ng_template_11_button_0_Template, 4,
|
|
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);
|
|
258
259
|
} if (rf & 2) {
|
|
259
260
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
260
261
|
i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup && ctx_r0.labelsVisible);
|
|
@@ -291,7 +292,7 @@ export class MenuItemListComponent {
|
|
|
291
292
|
this.toggleExpand.next(menuItem);
|
|
292
293
|
}
|
|
293
294
|
static { this.ɵfac = function MenuItemListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuItemListComponent)(); }; }
|
|
294
|
-
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, "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) {
|
|
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) {
|
|
295
296
|
i0.ɵɵelementStart(0, "div", 7);
|
|
296
297
|
i0.ɵɵtemplate(1, MenuItemListComponent_Conditional_1_Template, 5, 5, "div", 8)(2, MenuItemListComponent_Conditional_2_Template, 1, 1, "ng-container");
|
|
297
298
|
i0.ɵɵelementStart(3, "div", 9);
|
|
@@ -305,11 +306,11 @@ export class MenuItemListComponent {
|
|
|
305
306
|
i0.ɵɵproperty("fxLayoutAlign", ctx.menuLayoutDirection);
|
|
306
307
|
i0.ɵɵadvance();
|
|
307
308
|
i0.ɵɵproperty("ngForOf", ctx.items);
|
|
308
|
-
} }, 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}[_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}}"] }); }
|
|
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}}"] }); }
|
|
309
310
|
}
|
|
310
311
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemListComponent, [{
|
|
311
312
|
type: Component,
|
|
312
|
-
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
|
|
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"] }]
|
|
313
314
|
}], null, { direction: [{
|
|
314
315
|
type: Input
|
|
315
316
|
}], labelsVisible: [{
|
|
@@ -326,4 +327,4 @@ export class MenuItemListComponent {
|
|
|
326
327
|
type: Output
|
|
327
328
|
}] }); })();
|
|
328
329
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MenuItemListComponent, { className: "MenuItemListComponent", filePath: "lib\\components\\menu-item-list\\menu-item-list.component.ts", lineNumber: 11 }); })();
|
|
329
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtaXRlbS1saXN0L21lbnUtaXRlbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0tbGlzdC9tZW51LWl0ZW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ0E3RSxvQ0FBaUU7SUFDaEUsWUFDRDtJQUFBLGlCQUFXOzs7SUFEVixjQUNEO0lBREMsK0RBQ0Q7OztJQUVBLGtDQU1DOztJQUNBLGdDQUFVO0lBQUEsWUFBd0M7SUFDbkQsQUFEbUQsaUJBQVcsRUFDckQ7Ozs7SUFIUixBQURBLHNFQUFpRCxxTUFDc0I7SUFFN0QsZUFBd0M7SUFBeEMsK0RBQXdDOzs7SUFacEQsOEJBQStEO0lBSzlELEFBSkEsK0ZBQWlFLDhFQVVoRTtJQUlELFlBQ0Q7O0lBQUEsaUJBQU07OztJQWZNLGNBQTZCO0lBQTdCLHFEQUE2QjtJQUt0QyxjQUFtQztJQUFuQywyREFBbUM7SUFTckMsY0FDRDtJQURDLHNFQUNEOzs7SUFFQSx3QkFBa0U7OztJQUFsRSx1R0FBa0Q7Ozs7SUFBbkMscURBQWlDOzs7SUFJOUMsd0JBTWU7OztJQVBoQiw2QkFBNkM7SUFDNUMsd0dBS0M7Ozs7Ozs7O0lBSkMsY0FFSztJQUFBLEFBRkwsa1JBRUssb0VBQ1A7OztJQXVCRCw2QkFBaUQ7SUFDaEQsb0NBQXFEOzs7O0lBQXRD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a0JBQXJCLE1BQU07O2tGQVRJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1c3RvbU1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2N1c3RvbS1tZW51LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51SXRlbUdyb3VwQmFzZSB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51LWl0ZW0tZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51TGF5b3V0RGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lbnUtbGF5b3V0LWRpcmVjdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21lbnUtaXRlbS1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUtaXRlbS1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVJdGVtTGlzdENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZGlyZWN0aW9uOiBNZW51TGF5b3V0RGlyZWN0aW9uID0gTWVudUxheW91dERpcmVjdGlvbi5jb2x1bW47XHJcbiAgQElucHV0KCkgbGFiZWxzVmlzaWJsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgYWN0aXZlSXRlbSE6IEN1c3RvbU1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNob3dJY29ucyA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBDdXN0b21NZW51SXRlbVtdID0gW107XHJcbiAgQElucHV0KCkgbWVudUl0ZW1Hcm91cCE6IE1lbnVJdGVtR3JvdXBCYXNlO1xyXG5cclxuICBAT3V0cHV0KCkgdG9nZ2xlRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tTWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21NZW51SXRlbT4oKTtcclxuXHJcbiAgZ2V0IHRpdGxlS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1Hcm91cD8udGl0bGU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1RpdGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1Hcm91cD8uc2hvd1RpdGxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1lbnVMYXlvdXREaXJlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAodGhpcy5kaXJlY3Rpb24gPT09IE1lbnVMYXlvdXREaXJlY3Rpb24uY29sdW1uIHx8ICF0aGlzLmxhYmVsc1Zpc2libGUpXHJcbiAgICAgID8gJ3N0YXJ0IGNlbnRlcicgOiAnc3RhcnQgc3RhcnQnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1lbnVJdGVtTGF5b3V0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09IE1lbnVMYXlvdXREaXJlY3Rpb24uY29sdW1uID8gJ2NvbHVtbicgOiAncm93JztcclxuICB9XHJcblxyXG4gIHRvZ2dsZUl0ZW1FeHBhbmQoZXZlbnQ6IE1vdXNlRXZlbnQsIG1lbnVJdGVtOiBDdXN0b21NZW51SXRlbSkge1xyXG4gICAgLy8gc28gbWVudSBkb2VzbnQgZ2V0IGNsb3NlZC5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmxhYmVsc1Zpc2libGUgfHwgIW1lbnVJdGVtLmV4cGFuZGVkKSB7XHJcbiAgICAgIG1lbnVJdGVtLmV4cGFuZGVkID0gIW1lbnVJdGVtLmV4cGFuZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudG9nZ2xlRXhwYW5kLm5leHQobWVudUl0ZW0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWVudS1saXN0LXdyYXBwZXJcIj5cclxuXHRAaWYgKHRpdGxlS2V5ICYmIHNob3dUaXRsZSAmJiBsYWJlbHNWaXNpYmxlICYmICFtZW51SXRlbUdyb3VwLml0ZW1Hcm91cENsaWNrKSB7XHJcblx0PGRpdiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJtZW51LWl0ZW0tbGlzdC10aXRsZVwiPlxyXG5cdFx0PG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW1Hcm91cC50aXRsZUljb25cIiBjbGFzcz1cIm1lbnUtdGl0bGUtYnRuXCI+XHJcblx0XHRcdHt7IG1lbnVJdGVtR3JvdXAudGl0bGVJY29uIH19XHJcblx0XHQ8L21hdC1pY29uPlxyXG5cclxuXHRcdDxidXR0b25cclxuXHRcdFx0Km5nSWY9XCJtZW51SXRlbUdyb3VwLnRpdGxlTmF2aWdhdGlvblwiXHJcblx0XHRcdG1hdC1pY29uLWJ1dHRvblxyXG5cdFx0XHRjbGFzcz1cIm1lbnUtdGl0bGUtYnRuXCJcclxuXHRcdFx0W3JvdXRlckxpbmtdPVwibWVudUl0ZW1Hcm91cC50aXRsZU5hdmlnYXRpb24ucGF0aFwiXHJcblx0XHRcdFttYXRUb29sdGlwXT1cIm1lbnVJdGVtR3JvdXAudGl0bGVOYXZpZ2F0aW9uPy50b29sdGlwID8/ICcnIHwgdHJhbnNsYXRlXCJcclxuXHRcdD5cclxuXHRcdFx0PG1hdC1pY29uPnt7IG1lbnVJdGVtR3JvdXAudGl0bGVOYXZpZ2F0aW9uLmljb24gfX08L21hdC1pY29uPlxyXG5cdFx0PC9idXR0b24+XHJcblxyXG5cdFx0e3sgdGl0bGVLZXkgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L2Rpdj5cclxuXHR9IEBlbHNlIGlmIChtZW51SXRlbUdyb3VwPy5pdGVtR3JvdXBDbGljaykge1xyXG5cdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtR3JvdXBCdXR0b25cIj4gPC9uZy1jb250YWluZXI+XHJcblx0fVxyXG5cdDxkaXYgY2xhc3M9XCJtZW51LWl0ZW0tbGlzdFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgW2Z4TGF5b3V0QWxpZ25dPVwibWVudUxheW91dERpcmVjdGlvblwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2YgaXRlbXNcIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcblx0XHRcdFx0XHQhbWVudUl0ZW0uc2hvd0NoaWxkcmVuIHx8ICFtZW51SXRlbS5jaGlsZHJlbiB8fCBtZW51SXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA9PT0gMCA/IChtZW51SXRlbS5jbGlja0FjdGlvbiA/IG1lbnVJdGVtQnRuIDogbWVudUl0ZW1MaW5rKSA6IGl0ZW1XaXRoQ2hpbGRyZW47XHJcblx0XHRcdFx0XHRjb250ZXh0OiB7IG1lbnVJdGVtOiBtZW51SXRlbSB9XHJcblx0XHRcdFx0XCJcclxuXHRcdFx0PlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaXRlbVdpdGhDaGlsZHJlbiBsZXQtbWVudUl0ZW09XCJtZW51SXRlbVwiPlxyXG5cdDxidXR0b25cclxuXHRcdG1hdFRvb2x0aXBDbGFzcz1cIm1lbnUtdG9vbHRpcFwiXHJcblx0XHRtYXRUb29sdGlwUG9zaXRpb249XCJhZnRlclwiXHJcblx0XHRbbWF0VG9vbHRpcF09XCIhbGFiZWxzVmlzaWJsZSA/IChtZW51SXRlbS50aXRsZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXHJcblx0XHRbZnhMYXlvdXRdPVwibWVudUl0ZW1MYXlvdXRcIlxyXG5cdFx0W2Z4TGF5b3V0QWxpZ25dPVwibWVudUxheW91dERpcmVjdGlvblwiXHJcblx0XHQjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiXHJcblx0XHRbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcblx0XHRbYXR0ci5pZF09XCJtZW51SXRlbS5jdXN0b21JZFwiXHJcblx0XHRjbGFzcz1cInRleHQtbSBtZW51LWl0ZW0gbWVudS1wYXJlbnQtaXRlbVwiXHJcblx0XHRbY2xhc3MubWVudS1sYWJlbHMtdmlzaWJsZV09XCJsYWJlbHNWaXNpYmxlXCJcclxuXHRcdFtjbGFzcy5hY3RpdmUtbWVudS1pdGVtXT1cIihhY3RpdmVJdGVtPy5saW5rICYmIG1lbnVJdGVtID09PSBhY3RpdmVJdGVtKSB8fCBzdGF0ZS5tZW51T3BlblwiXHJcblx0XHRbbmdDbGFzcy5sdC1tZF09XCInbW9iLW1lbnUtaXRlbSdcIlxyXG5cdFx0KGNsaWNrKT1cInRvZ2dsZUl0ZW1FeHBhbmQoJGV2ZW50LCBtZW51SXRlbSlcIlxyXG5cdD5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93SWNvbnMgJiYgbWVudUl0ZW0uaWNvblwiPlxyXG5cdFx0XHQ8dGxkLW1lbnUtaWNvbiBbbWVudUl0ZW1dPVwibWVudUl0ZW1cIj48L3RsZC1tZW51LWljb24+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbHNWaXNpYmxlXCI+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRpdGxlXCI+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0aXRsZS1jb250ZW50XCI+e3sgbWVudUl0ZW0udGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+PC9zcGFuXHJcblx0XHRcdD5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lbnVJdGVtLnNob3dDaGlsZHJlbiAmJiBtZW51SXRlbS5jaGlsZHJlblwiPlxyXG5cdFx0XHRcdDxzcGFuICpuZ0lmPVwic3RhdGUubWVudU9wZW47IGVsc2UgaWNvbkRvd25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNwaW4gYXJyb3ctaWNvblwiPmtleWJvYXJkX2Fycm93X2Rvd248L3NwYW4+XHJcblxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaWNvbkRvd24+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNwaW4gYXJyb3ctaWNvblwiPiBrZXlib2FyZF9hcnJvd191cCA8L3NwYW4+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L2J1dHRvbj5cclxuXHQ8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjaGlsZC1tZW51XCI+XHJcblx0XHRAZm9yIChjaGlsZCBvZiBtZW51SXRlbS5jaGlsZHJlbjsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHQ8ZGl2IG1hdC1tZW51LWl0ZW0+XHJcblx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51SXRlbS5jbGlja0FjdGlvbiA/IG1lbnVJdGVtQnRuIDogbWVudUl0ZW1MaW5rOyBjb250ZXh0OiB7IG1lbnVJdGVtOiBjaGlsZCwgaXNDaGlsZDogdHJ1ZSB9XCI+IDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9tYXQtbWVudT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbWVudUl0ZW1MaW5rIGxldC1tZW51SXRlbT1cIm1lbnVJdGVtXCIgbGV0LWlzQ2hpbGQ9XCJpc0NoaWxkXCI+XHJcblx0PHRsZC1tZW51LWl0ZW0tbGlua1xyXG5cdFx0W25nQ2xhc3MubHQtbWRdPVwiJ21vYi1tZW51LWl0ZW0nXCJcclxuXHRcdFttZW51SXRlbV09XCJtZW51SXRlbVwiXHJcblx0XHRbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcblx0XHRbbGFiZWxzVmlzaWJsZV09XCJsYWJlbHNWaXNpYmxlIHx8IGlzQ2hpbGRcIlxyXG5cdFx0W2FjdGl2ZUl0ZW1dPVwiYWN0aXZlSXRlbVwiXHJcblx0XHRbc2hvd0ljb25zXT1cInNob3dJY29uc1wiXHJcblx0PjwvdGxkLW1lbnUtaXRlbS1saW5rPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtZW51SXRlbUJ0biBsZXQtbWVudUl0ZW09XCJtZW51SXRlbVwiPlxyXG5cdDxsaWItbWVudS1pdGVtLWJ0biAqbmdJZj1cImxhYmVsc1Zpc2libGVcIiBbbmdDbGFzcy5sdC1tZF09XCInbW9iLW1lbnUtaXRlbSdcIiBbbWVudUl0ZW1dPVwibWVudUl0ZW1cIiBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiIFthY3RpdmVJdGVtXT1cImFjdGl2ZUl0ZW1cIj48L2xpYi1tZW51LWl0ZW0tYnRuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtR3JvdXBCdXR0b24+XHJcblx0PGJ1dHRvbiAqbmdJZj1cIm1lbnVJdGVtR3JvdXAgJiYgbGFiZWxzVmlzaWJsZVwiIG1hdC1idXR0b24gY2xhc3M9XCJtZW51LXRpdGxlLWJ0biBtZW51LWFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwibWVudUl0ZW1Hcm91cD8uaXRlbUdyb3VwQ2xpY2soKVwiPlxyXG5cdFx0QGlmKG1lbnVJdGVtR3JvdXAuaXNDdXN0b21JdGVtR3JvdXBJY29uKXtcclxuXHRcdDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJtZW51SXRlbUdyb3VwLml0ZW1Hcm91cEljb24gPz8gJydcIj48L21hdC1pY29uPlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHQ8bWF0LWljb24+e3sgbWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uIH19PC9tYXQtaWNvbj5cclxuXHRcdH1cclxuXHRcdDxzcGFuIGNsYXNzPVwiYnRuLWxhYmVsXCIgKm5nSWY9XCJ0aXRsZUtleVwiPlxyXG5cdFx0XHR7eyB0aXRsZUtleSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9zcGFuPlxyXG5cdDwvYnV0dG9uPlxyXG5cclxuXHQ8YnV0dG9uXHJcblx0XHQqbmdJZj1cIm1lbnVJdGVtR3JvdXAgJiYgIWxhYmVsc1Zpc2libGUgJiYgdGl0bGVLZXkgJiYgbWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uXCJcclxuXHRcdG1hdC1pY29uLWJ1dHRvblxyXG5cdFx0bWF0VG9vbHRpcFBvc2l0aW9uPVwiYWZ0ZXJcIlxyXG5cdFx0W21hdFRvb2x0aXBdPVwidGl0bGVLZXkgfCB0cmFuc2xhdGVcIlxyXG5cdFx0KGNsaWNrKT1cIm1lbnVJdGVtR3JvdXA/Lml0ZW1Hcm91cENsaWNrKClcIlxyXG5cdD5cclxuXHRcdEBpZihtZW51SXRlbUdyb3VwLmlzQ3VzdG9tSXRlbUdyb3VwSWNvbil7XHJcblx0XHQ8bWF0LWljb24gW3N2Z0ljb25dPVwibWVudUl0ZW1Hcm91cC5pdGVtR3JvdXBJY29uID8/ICcnXCI+PC9tYXQtaWNvbj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0PG1hdC1pY29uPnt7IG1lbnVJdGVtR3JvdXAuaXRlbUdyb3VwSWNvbiB9fTwvbWF0LWljb24+XHJcblx0XHR9XHJcblx0PC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
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,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLWdyb3VwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9tb2RlbHMvbWVudS1pdGVtLWdyb3VwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21NZW51SXRlbSB9IGZyb20gXCIuL2N1c3RvbS1tZW51LWl0ZW0ubW9kZWxcIjtcclxuaW1wb3J0IHsgTWVudVRpdGxlTmF2aWdhdGlvbiB9IGZyb20gXCIuL21lbnUtdGl0bGUtbmF2aWdhdGlvbi5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbUdyb3VwIGV4dGVuZHMgTWVudUl0ZW1Hcm91cEJhc2Uge1xyXG4gIGl0ZW1zOiBDdXN0b21NZW51SXRlbVtdO1xyXG4gIC8qKiBVc2VkIHRvIHNob3cgbG9hZGluZyBzcGlubmVyIGJlbG93IGdyb3VwICovXHJcbiAgaXNJdGVtc0xvYWRpbmc/OiBib29sZWFuO1xyXG4gIC8qKiBTaG93IGVtcHR5IGdyb3VwIGlmIHRoZXJlIGFyZSBubyBpdGVtcyAqL1xyXG4gIHNob3dFbXB0eT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIFNlcGFyYXRlIGludGVyZmFjZSBiZWNhdXNlIGZvciBzdHJhcGkgZ3JvdXAgdGhlcmUgc2hvdWxkIGJlIG5vIGl0ZW1zLCBzaW5jZSB0aGV5IGFyZSBsb2FkZWQgd2hlbiBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1Hcm91cEJhc2Uge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRpdGxlSWNvbj86IHN0cmluZztcclxuICBib3R0b21EaXZpZGVyPzogYm9vbGVhbjtcclxuICBzaG93VGl0bGU/OiBib29sZWFuO1xyXG4gIHRpdGxlTmF2aWdhdGlvbj86IE1lbnVUaXRsZU5hdmlnYXRpb247XHJcbiAgaXRlbUdyb3VwQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG4gIGl0ZW1Hcm91cEljb24/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLWdyb3VwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1lbnUvc3JjL2xpYi9tb2RlbHMvbWVudS1pdGVtLWdyb3VwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21NZW51SXRlbSB9IGZyb20gXCIuL2N1c3RvbS1tZW51LWl0ZW0ubW9kZWxcIjtcclxuaW1wb3J0IHsgTWVudVRpdGxlTmF2aWdhdGlvbiB9IGZyb20gXCIuL21lbnUtdGl0bGUtbmF2aWdhdGlvbi5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbUdyb3VwIGV4dGVuZHMgTWVudUl0ZW1Hcm91cEJhc2Uge1xyXG4gIGl0ZW1zOiBDdXN0b21NZW51SXRlbVtdO1xyXG4gIC8qKiBVc2VkIHRvIHNob3cgbG9hZGluZyBzcGlubmVyIGJlbG93IGdyb3VwICovXHJcbiAgaXNJdGVtc0xvYWRpbmc/OiBib29sZWFuO1xyXG4gIC8qKiBTaG93IGVtcHR5IGdyb3VwIGlmIHRoZXJlIGFyZSBubyBpdGVtcyAqL1xyXG4gIHNob3dFbXB0eT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIFNlcGFyYXRlIGludGVyZmFjZSBiZWNhdXNlIGZvciBzdHJhcGkgZ3JvdXAgdGhlcmUgc2hvdWxkIGJlIG5vIGl0ZW1zLCBzaW5jZSB0aGV5IGFyZSBsb2FkZWQgd2hlbiBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1Hcm91cEJhc2Uge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRpdGxlSWNvbj86IHN0cmluZztcclxuICBib3R0b21EaXZpZGVyPzogYm9vbGVhbjtcclxuICBzaG93VGl0bGU/OiBib29sZWFuO1xyXG4gIHRpdGxlTmF2aWdhdGlvbj86IE1lbnVUaXRsZU5hdmlnYXRpb247XHJcbiAgaXRlbUdyb3VwQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG4gIGl0ZW1Hcm91cEljb24/OiBzdHJpbmc7XHJcbiAgLyoqIFNldCB0byB0cnVlIGlmIGl0ZW0gZ3JvdXAgaXMgYWN0aXZlICovXHJcbiAgaXNJdGVtR3JvdXBBY3RpdmU/OiAoKSA9PiBib29sZWFuO1xyXG4gIC8qKiBTZXQgdG8gdHJ1ZSBpZiBpY29uIGlzIHJlZ2lzdGVyZWQgYXMgc3ZnIHRocm91Z2ggaWNvbiBzZXJ2aWNlICovXHJcbiAgaXNDdXN0b21JdGVtR3JvdXBJY29uPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -893,6 +893,7 @@ function MenuItemListComponent_ng_template_11_button_0_Template(rf, ctx) { if (r
|
|
|
893
893
|
i0.ɵɵelementEnd();
|
|
894
894
|
} if (rf & 2) {
|
|
895
895
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
896
|
+
i0.ɵɵclassProp("active-menu-item-group", ctx_r0.menuItemGroup.isItemGroupActive && ctx_r0.menuItemGroup.isItemGroupActive());
|
|
896
897
|
i0.ɵɵadvance();
|
|
897
898
|
i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 1 : 2);
|
|
898
899
|
i0.ɵɵadvance(2);
|
|
@@ -928,7 +929,7 @@ function MenuItemListComponent_ng_template_11_button_1_Template(rf, ctx) { if (r
|
|
|
928
929
|
i0.ɵɵconditional(ctx_r0.menuItemGroup.isCustomItemGroupIcon ? 2 : 3);
|
|
929
930
|
} }
|
|
930
931
|
function MenuItemListComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
931
|
-
i0.ɵɵtemplate(0, MenuItemListComponent_ng_template_11_button_0_Template, 4,
|
|
932
|
+
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);
|
|
932
933
|
} if (rf & 2) {
|
|
933
934
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
934
935
|
i0.ɵɵproperty("ngIf", ctx_r0.menuItemGroup && ctx_r0.labelsVisible);
|
|
@@ -965,7 +966,7 @@ class MenuItemListComponent {
|
|
|
965
966
|
this.toggleExpand.next(menuItem);
|
|
966
967
|
}
|
|
967
968
|
static { this.ɵfac = function MenuItemListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MenuItemListComponent)(); }; }
|
|
968
|
-
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, "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) {
|
|
969
|
+
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) {
|
|
969
970
|
i0.ɵɵelementStart(0, "div", 7);
|
|
970
971
|
i0.ɵɵtemplate(1, MenuItemListComponent_Conditional_1_Template, 5, 5, "div", 8)(2, MenuItemListComponent_Conditional_2_Template, 1, 1, "ng-container");
|
|
971
972
|
i0.ɵɵelementStart(3, "div", 9);
|
|
@@ -979,11 +980,11 @@ class MenuItemListComponent {
|
|
|
979
980
|
i0.ɵɵproperty("fxLayoutAlign", ctx.menuLayoutDirection);
|
|
980
981
|
i0.ɵɵadvance();
|
|
981
982
|
i0.ɵɵproperty("ngForOf", ctx.items);
|
|
982
|
-
} }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i1$1.RouterLink, i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i5.MatTooltip, i2$1.MatIcon, i7.MatButton, i7.MatIconButton, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, MenuIconComponent, MenuItemLinkComponent, MenuItemBtnComponent, i8.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}[_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}}"] }); }
|
|
983
|
+
} }, dependencies: [i1$2.DefaultLayoutDirective, i1$2.DefaultLayoutAlignDirective, i2$2.DefaultClassDirective, i1$1.RouterLink, i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i5.MatTooltip, i2$1.MatIcon, i7.MatButton, i7.MatIconButton, i6.MatMenu, i6.MatMenuItem, i6.MatMenuTrigger, MenuIconComponent, MenuItemLinkComponent, MenuItemBtnComponent, i8.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}}"] }); }
|
|
983
984
|
}
|
|
984
985
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuItemListComponent, [{
|
|
985
986
|
type: Component,
|
|
986
|
-
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
|
|
987
|
+
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"] }]
|
|
987
988
|
}], null, { direction: [{
|
|
988
989
|
type: Input
|
|
989
990
|
}], labelsVisible: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.html","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.ts","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.html","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/lib/constants/user-menu-options.const.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item.model\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item.model';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n menuSharedConfig!: MenuSharedConfig;\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly config: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n setMenuItems(config: MenuSharedConfig): void {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private initData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss']\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs [ngClass.lt-sm]=\"'mob-close-icon'\">close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n\r\n @if (useDefaultLanguageSwitcher && supportedLanguages.length > 1) {\r\n <lib-menu-lang-switcher [isCollapsed]=\"collapsed\" [languages]=\"supportedLanguages\" (changeLanguageEvent)=\"changeLanguage($event)\"></lib-menu-lang-switcher>\r\n }\r\n </div>\r\n <div fxFlex fxLayout=\"column\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <lib-menu-profile\r\n [userOptions]=\"menuSettings.userOptions\"\r\n [username]=\"username\"\r\n [collapsed]=\"collapsed\"\r\n (linkCallbackEvent)=\"linkCallback($event)\"\r\n ></lib-menu-profile>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { DOMService, PlausibleEvent, ResolutionHelper } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { UserMenuOptionLink } from './models/user-menu-option-link.model';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss']\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.\r\n this.#username = value?.trim();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false,\r\n disableLogoNavigation: false,\r\n userOptions: []\r\n }\r\n\r\n @Input() productName!: string;\r\n @Input() supportedLanguages!: string[];\r\n @Input() useDefaultLanguageSwitcher = true;\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink) {\r\n if (link.callback) {\r\n link.callback();\r\n }\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n}\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <span class=\"material-icons menu-icon\" [class.material-icons-outlined]=\"menuItem?.isIconOutlined\">{{menuItem.icon}}</span>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss']\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a\r\n class=\"text-m menu-item\"\r\n matTooltipClass=\"menu-tooltip\"\r\n matTooltipPosition=\"after\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n [fxLayout]=\"menuItemLayout\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\"\r\n [libPlausibleEvent]=\"menuItem.plausibleEvent\"\r\n [href]=\"href | translate\"\r\n [attr.target]=\"menuItem.externalLink ? '_blank' : '_self'\"\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [class.text-center]=\"menuItemLayout === 'column'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\"\r\n (click)=\"linkClick($event, menuItem)\"\r\n>\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss']\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<button\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [attr.id]=\"menuItem.customId\"\r\n class=\"menu-item w-full flex justify-center items-center\"\r\n fxLayoutAlign=\"space-between start\"\r\n [class.active-menu-item]=\"menuItem.isItemActive ? menuItem.isItemActive(menuItem.customId) : menuItem === activeItem\"\r\n (click)=\"menuItem.clickAction && menuItem.clickAction()\"\r\n>\r\n <span class=\"btn-label\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n <ng-container *ngIf=\"menuItem.subMenu?.length\">\r\n <div [class.open]=\"menuTrigger?.menuOpen\">\r\n <button\r\n class=\"sub-menu-btn\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let item of menuItem.subMenu\"\r\n mat-menu-item\r\n (click)=\"item.onOptionClick()\"\r\n >\r\n {{ item.title | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n</button>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-menu-item-btn',\r\n standalone: false,\r\n templateUrl: './menu-item-btn.component.html',\r\n styleUrl: './menu-item-btn.component.scss',\r\n})\r\nexport class MenuItemBtnComponent {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() menuItem!: CustomMenuItem;\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n\t@if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n\t<div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n\t\t<mat-icon *ngIf=\"menuItemGroup.titleIcon\" class=\"menu-title-btn\">\r\n\t\t\t{{ menuItemGroup.titleIcon }}\r\n\t\t</mat-icon>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"menuItemGroup.titleNavigation\"\r\n\t\t\tmat-icon-button\r\n\t\t\tclass=\"menu-title-btn\"\r\n\t\t\t[routerLink]=\"menuItemGroup.titleNavigation.path\"\r\n\t\t\t[matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>{{ menuItemGroup.titleNavigation.icon }}</mat-icon>\r\n\t\t</button>\r\n\r\n\t\t{{ titleKey | translate }}\r\n\t</div>\r\n\t} @else if (menuItemGroup?.itemGroupClick) {\r\n\t<ng-container *ngTemplateOutlet=\"itemGroupButton\"> </ng-container>\r\n\t}\r\n\t<div class=\"menu-item-list\" fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\">\r\n\t\t<ng-container *ngFor=\"let menuItem of items\">\r\n\t\t\t<ng-container\r\n\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : menuItemLink) : itemWithChildren;\r\n\t\t\t\t\tcontext: { menuItem: menuItem }\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n\t<button\r\n\t\tmatTooltipClass=\"menu-tooltip\"\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n\t\t[fxLayout]=\"menuItemLayout\"\r\n\t\t[fxLayoutAlign]=\"menuLayoutDirection\"\r\n\t\t#state=\"matMenuTrigger\"\r\n\t\t[matMenuTriggerFor]=\"menu\"\r\n\t\t[attr.id]=\"menuItem.customId\"\r\n\t\tclass=\"text-m menu-item menu-parent-item\"\r\n\t\t[class.menu-labels-visible]=\"labelsVisible\"\r\n\t\t[class.active-menu-item]=\"(activeItem?.link && menuItem === activeItem) || state.menuOpen\"\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t(click)=\"toggleItemExpand($event, menuItem)\"\r\n\t>\r\n\t\t<ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n\t\t\t<tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"labelsVisible\">\r\n\t\t\t<span class=\"menu-item-title\">\r\n\t\t\t\t<span class=\"title-content\">{{ menuItem.title | translate }}</span></span\r\n\t\t\t>\r\n\t\t\t<ng-container *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n\t\t\t\t<span *ngIf=\"state.menuOpen; else iconDown\" class=\"material-icons spin arrow-icon\">keyboard_arrow_down</span>\r\n\r\n\t\t\t\t<ng-template #iconDown>\r\n\t\t\t\t\t<span class=\"material-icons spin arrow-icon\"> keyboard_arrow_up </span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</button>\r\n\t<mat-menu #menu=\"matMenu\" class=\"child-menu\">\r\n\t\t@for (child of menuItem.children; track $index) {\r\n\t\t<div mat-menu-item>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"menuItem.clickAction ? menuItemBtn : menuItemLink; context: { menuItem: child, isChild: true }\"> </ng-container>\r\n\t\t</div>\r\n\t\t}\r\n\t</mat-menu>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\" let-isChild=\"isChild\">\r\n\t<tld-menu-item-link\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t[menuItem]=\"menuItem\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[labelsVisible]=\"labelsVisible || isChild\"\r\n\t\t[activeItem]=\"activeItem\"\r\n\t\t[showIcons]=\"showIcons\"\r\n\t></tld-menu-item-link>\r\n</ng-template>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n\t<lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n\t<button *ngIf=\"menuItemGroup && labelsVisible\" mat-button class=\"menu-title-btn menu-action-button\" (click)=\"menuItemGroup?.itemGroupClick()\">\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t\t<span class=\"btn-label\" *ngIf=\"titleKey\">\r\n\t\t\t{{ titleKey | translate }}\r\n\t\t</span>\r\n\t</button>\r\n\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n\t\tmat-icon-button\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"titleKey | translate\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t</button>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss']\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length || group.showEmpty\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"isOpen\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"loader-container\" *ngIf=\"group.isItemsLoading\">\r\n <mat-spinner [diameter]=\"24\" class=\"loader\"></mat-spinner>\r\n </div>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { ResolutionHelper } from '@tilde-nlp/ngx-common';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss']\r\n})\r\nexport class MenuColumnsComponent implements OnInit {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() isOpen = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n if (this.toggleOnMobileSelect()) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n \r\n this.activeItem = this.active.root;\r\n }\r\n\r\n private toggleOnMobileSelect(): boolean {\r\n return this.isOpen && ResolutionHelper.isMobileRes() && (this.active && Object.values(this.active)?.length > 0);\r\n }\r\n}\r\n","<div class=\"profile\">\r\n\t<button #state=\"matMenuTrigger\" [class.collapsed]=\"collapsed()\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\" [class.active]=\"state.menuOpen\">\r\n\t\t<div class=\"profile-icon\">\r\n\t\t\t@if (userInitials) {\r\n\t\t\t{{ userInitials }}\r\n\t\t\t} @else {\r\n\t\t\t<mat-icon>person</mat-icon>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<ng-container *ngIf=\"!collapsed()\">\r\n\t\t\t<span class=\"profile-name\">\r\n\t\t\t\t{{ username() ?? \"MENU.ANONYMOUS\" | translate }}\r\n\t\t\t</span>\r\n\r\n\t\t\t<mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">keyboard_arrow_down</mat-icon>\r\n\r\n\t\t\t<ng-template #iconDown>\r\n\t\t\t\t<mat-icon class=\"profile-arrow spin\">keyboard_arrow_up</mat-icon>\r\n\t\t\t</ng-template>\r\n\t\t</ng-container>\r\n\t</button>\r\n\r\n\t<mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n\t\t@for (item of userOptions(); track item.label) { @if (item.link) { @if (item.link.isExternal) {\r\n\t\t<a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} @else {\r\n\t\t<a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} } @else {\r\n\t\t<button mat-menu-item class=\"profile-option\" (click)=\"item.button?.callback()\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</button>\r\n\t\t} }\r\n\t</mat-menu>\r\n</div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n\t@if (icon) { @if (!icon?.isCustom) {\r\n\t<span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n\t\t{{ icon?.name }}\r\n\t</span>\r\n\t} @else {\r\n\t<mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n\t} }\r\n\t{{ label | translate }}\r\n</ng-template>\r\n","import { Component, input, OnInit, output } from '@angular/core';\r\nimport { UserMenuOption } from '../side-nav-menu';\r\nimport { UserMenuOptionLink } from '../side-nav-menu/models/user-menu-option-link.model';\r\n\r\n@Component({\r\n selector: 'lib-menu-profile',\r\n templateUrl: './menu-profile.component.html',\r\n styleUrl: './menu-profile.component.scss',\r\n})\r\nexport class MenuProfileComponent implements OnInit {\r\n collapsed = input<boolean>();\r\n username = input<string>();\r\n userOptions = input<UserMenuOption[]>();\r\n linkCallbackEvent = output<UserMenuOptionLink>();\r\n\r\n userInitials!: string;\r\n\r\n ngOnInit(): void {\r\n this.setUserInitials();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink): void {\r\n this.linkCallbackEvent.emit(link);\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username()) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username()!.split(' ');\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","<button\r\n [class.collapsed]=\"isCollapsed\"\r\n #state=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [matTooltip]=\"isCollapsed ? ('MENU.CHANGE_LANGUAGE' | translate) : ''\"\r\n matTooltipPosition=\"after\"\r\n matTooltipClass=\"menu-tooltip\" \r\n class=\"lang-switcher\"\r\n [class.active]=\"state.menuOpen\"\r\n>\r\n<div class=\"current-lang\">\r\n <mat-icon class=\"lang-icon\">language</mat-icon>\r\n\r\n @if (!isCollapsed) {\r\n <span>\r\n {{ currentLanguageCode | languageTranslate }}\r\n </span>\r\n }\r\n</div>\r\n\r\n @if (!isCollapsed) {\r\n @if (state.menuOpen) {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_down</mat-icon>\r\n } @else {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_up</mat-icon>\r\n }\r\n }\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"lang-menu\">\r\n @for (lang of languages; track lang) {\r\n @if (lang !== currentLanguageCode) {\r\n <button mat-menu-item (click)=\"changeLanguage(lang)\">\r\n {{ lang | languageTranslate }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'lib-menu-lang-switcher',\r\n templateUrl: './menu-lang-switcher.component.html',\r\n styleUrl: './menu-lang-switcher.component.scss'\r\n})\r\nexport class MenuLangSwitcherComponent implements OnInit {\r\n @Input() isCollapsed!: boolean;\r\n @Input() languages!: string[];\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n #translate = inject(TranslateService);\r\n\r\n currentLanguageCode!: string;\r\n\r\n ngOnInit(): void {\r\n this.currentLanguageCode = this.#translate.currentLang;\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.#translate.use(lang);\r\n this.currentLanguageCode = lang;\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule, LanguageTranslateModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\nimport { MenuItemBtnComponent } from './components/menu-item-btn/menu-item-btn.component';\r\nimport { MenuProfileComponent } from './components/menu-profile/menu-profile.component';\r\nimport { MenuLangSwitcherComponent } from './components/menu-lang-switcher/menu-lang-switcher.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n MenuItemBtnComponent,\r\n MenuProfileComponent,\r\n MenuLangSwitcherComponent\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n LanguageTranslateModule,\r\n MatProgressSpinnerModule\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","import { UserMenuOption } from '../components/side-nav-menu/models/user-menu-option.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectLanguageDialogComponent } from '@tilde-nlp/ngx-common';\r\n\r\n/**\r\n * Prefefined user menu options, so that same style of items are used across all products. Use this by passing necessary configuration.\r\n */\r\nexport const USER_MENU_OPTIONS = {\r\n subscription: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'credit_card' },\r\n label: 'MENU.SUBSCRIPTION',\r\n link: { href: href, callback },\r\n }),\r\n termsOfUse: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'text_snippet' },\r\n label: 'MENU.TERMS_OF_USE',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n privacy: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'gpp_maybe' },\r\n label: 'MENU.PRIVACY',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n help: (href: string, icon?: { name: string, isCustom: boolean }, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.HELP_CENTER',\r\n icon: { name: icon ? icon.name : `help`, isCustom: icon ? icon.isCustom : false },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n contactUs: (href: string, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.CONTACT_US',\r\n icon: { name: `mail` },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n /** use language update callback to save in localstorage */\r\n changeLanguage: (\r\n dialog: MatDialog,\r\n languages: string[],\r\n languageChangeCallback?: (language: string) => void\r\n ): UserMenuOption => ({\r\n label: 'MENU.CHANGE_LANGUAGE',\r\n icon: { name: 'language' },\r\n button: {\r\n callback: () => {\r\n dialog\r\n .open(SelectLanguageDialogComponent, {\r\n data: { languages: languages },\r\n })\r\n .afterClosed()\r\n .subscribe((language: string) => {\r\n if (language && languageChangeCallback) {\r\n languageChangeCallback(language);\r\n }\r\n });\r\n },\r\n },\r\n }),\r\n logout: (callback: () => void): UserMenuOption => ({\r\n icon: { name: 'logout' },\r\n label: 'MENU.LOG_OUT',\r\n button: { callback: () => callback() },\r\n }),\r\n};\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/constants\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","i3.MenuItemsService","_c0","i2.MenuItemsService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tilde-nlp-ngx-menu.mjs","sources":["../../../projects/ngx-menu/src/lib/components/nav-base/models/strapi-data-location.enum.ts","../../../projects/ngx-menu/src/lib/injection-tokens/menu-shared-config.token.ts","../../../projects/ngx-menu/src/lib/models/menu-icon-strapi-extension.const.ts","../../../projects/ngx-menu/src/lib/services/strapi.service.ts","../../../projects/ngx-menu/src/lib/services/menu-items.service.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.ts","../../../projects/ngx-menu/src/lib/components/nav-base/nav-base.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.html","../../../projects/ngx-menu/src/lib/components/side-nav-menu/side-nav-menu.component.ts","../../../projects/ngx-menu/src/lib/models/menu-layout-direction.model.ts","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.html","../../../projects/ngx-menu/src/lib/components/menu-icon/menu-icon.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-link/menu-item-link.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-btn/menu-item-btn.component.ts","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.html","../../../projects/ngx-menu/src/lib/components/menu-item-list/menu-item-list.component.ts","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.html","../../../projects/ngx-menu/src/lib/components/menu-columns/menu-columns.component.ts","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.html","../../../projects/ngx-menu/src/lib/components/menu-profile/menu-profile.component.ts","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.html","../../../projects/ngx-menu/src/lib/components/menu-lang-switcher/menu-lang-switcher.component.ts","../../../projects/ngx-menu/src/lib/menu.module.ts","../../../projects/ngx-menu/src/lib/constants/user-menu-options.const.ts","../../../projects/ngx-menu/src/public-api.ts","../../../projects/ngx-menu/src/tilde-nlp-ngx-menu.ts"],"sourcesContent":["/** Necessary for menu components to determine where loaded data from strapi should be placed - either in front of pre defined items or in end. */\r\nexport enum StrapiDataLocation {\r\n START,\r\n END\r\n}","export const MENU_SHARED_CONFIG = \"menu-shared-config\";\r\n","export const MENU_ICON_STRAPI_EXTENSION = \".svg\";\r\n","import { Inject, Injectable, Optional } from \"@angular/core\";\r\nimport { IconService } from \"@tilde-nlp/ngx-common\";\r\nimport { StrapiApiConfig, StrapiSubscriptionService, STRAPI_API_CONFIG_TOKEN } from \"@tilde-nlp/ngx-strapi\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CollectionTypes, MenuItems } from \"@tilde-nlp/strapi-models\";\r\nimport { CustomMenuItem } from \"../models/custom-menu-item.model\";\r\nimport { MENU_ICON_STRAPI_EXTENSION } from \"../models/menu-icon-strapi-extension.const\";\r\nimport { MenuSharedConfig } from \"../models/menu-shared-config.model\";\r\nimport { MENU_SHARED_CONFIG } from \"../injection-tokens/menu-shared-config.token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StarpiMenuService {\r\n readonly svgIconNamePrefix = \"strapi-menu-icon-\";\r\n imgBaseUrl = '';\r\n\r\n constructor(private readonly strapiSubscription: StrapiSubscriptionService,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) private readonly menuConfig: MenuSharedConfig,\r\n @Optional() @Inject(STRAPI_API_CONFIG_TOKEN) strapiConfig: StrapiApiConfig,\r\n private readonly iconService: IconService) {\r\n this.imgBaseUrl = strapiConfig?.apiUrl;\r\n }\r\n\r\n getMenuItems(): Observable<CustomMenuItem[]> {\r\n const responseObs = this.strapiSubscription.subscribeCollectionType<MenuItems>(CollectionTypes.MENU_ITEMS)\r\n .pipe(map((items: MenuItems[] | null) => {\r\n // Remove disabled items so they are not processed later.\r\n\r\n const convertedItems: CustomMenuItem[] = [];\r\n if (!items || items.length === 0) {\r\n return convertedItems;\r\n }\r\n items = items.filter(item => !item.disabled);\r\n items.forEach((menu: MenuItems) => {\r\n menu.link = this.addBaseUrlIfNecessary(menu.link);\r\n const originalMenuIcon = menu.icon.data.attributes;\r\n if (originalMenuIcon.url.startsWith('/')) {\r\n originalMenuIcon.url = this.imgBaseUrl + originalMenuIcon.url;\r\n }\r\n\r\n if (originalMenuIcon.ext === MENU_ICON_STRAPI_EXTENSION) {\r\n // add custom prefix so that it is not easy to mix with other icons in registry\r\n menu.icon.data.attributes.name = this.svgIconNamePrefix + originalMenuIcon.name;\r\n this.iconService.registerIconFromUrl(originalMenuIcon.name, originalMenuIcon.url);\r\n }\r\n\r\n convertedItems.push(this.convertToCustomMenuItem(menu));\r\n });\r\n return convertedItems;\r\n }));\r\n return responseObs;\r\n }\r\n\r\n unsubscribe(): void {\r\n this.strapiSubscription.unsubscribe(CollectionTypes.MENU_ITEMS);\r\n }\r\n\r\n private addBaseUrlIfNecessary(link: string): string {\r\n if (!this.menuConfig?.baseUrl) {\r\n return link;\r\n }\r\n try {\r\n new URL(link);\r\n // eslint-disable-next-line no-empty\r\n } catch { }\r\n try {\r\n return new URL(link, this.menuConfig.baseUrl).href;\r\n } catch {\r\n return link;\r\n }\r\n }\r\n\r\n private convertToCustomMenuItem(item: MenuItems): CustomMenuItem {\r\n return {\r\n icon: item.icon.data.attributes.name,\r\n link: item.link,\r\n title: item.title,\r\n externalLink: item.externalLink,\r\n // Material icons should not come from strapi\r\n materialIcon: false,\r\n plausibleEvent: item.plausibleEvent,\r\n customId: item.customId\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { IsActiveMatchOptions, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, filter } from 'rxjs';\r\nimport { StrapiDataLocation } from '../components/nav-base/models';\r\nimport { MENU_SHARED_CONFIG } from '../injection-tokens';\r\nimport { StarpiMenuService } from './strapi.service';\r\nimport { ActiveMenuItems } from '../models/active-menu-items.model';\r\nimport { CustomMenuItem } from '../models/custom-menu-item.model';\r\nimport { MenuSharedConfig } from '../models/menu-shared-config.model';\r\nimport { MenuItemGroup } from '../models/menu-item-group.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuItemsService {\r\n\r\n private readonly _activeElements: BehaviorSubject<ActiveMenuItems> = new BehaviorSubject({});\r\n get activeElements() { return this._activeElements.asObservable(); }\r\n\r\n private strapiItems: CustomMenuItem[] = [];\r\n\r\n private _strapiGroup!: MenuItemGroup;\r\n\r\n private _allRootItems!: CustomMenuItem[];\r\n get allRootItems() { return this._allRootItems; }\r\n\r\n get strapiGroup() { return this._strapiGroup; }\r\n\r\n private readonly isActiveMatchOptions: IsActiveMatchOptions = {\r\n matrixParams: 'exact',\r\n queryParams: 'exact',\r\n paths: 'exact',\r\n fragment: 'exact'\r\n };\r\n\r\n menuSharedConfig!: MenuSharedConfig;\r\n\r\n private get customId() { return this.menuSharedConfig?.customId; }\r\n private get hideSelectedCustomId() { return this.menuSharedConfig?.hideSelectedCustomId; }\r\n private get strapiGroupBase() { return this.menuSharedConfig?.strapiGroupBase; }\r\n private get strapiDataLocation() { return this.menuSharedConfig?.strapiDataLocation ?? StrapiDataLocation.END }\r\n private _mergedGroups: MenuItemGroup[] = [];\r\n get mergedGroups() { return this._mergedGroups; }\r\n\r\n private get menuItemGroups() { return this.menuSharedConfig.itemGroups }\r\n\r\n constructor(private readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly config: MenuSharedConfig,\r\n private readonly strapiService: StarpiMenuService) {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n this.subscribeToRouteChanges();\r\n }\r\n\r\n setMenuItems(config: MenuSharedConfig): void {\r\n this.menuSharedConfig = config;\r\n this.initData();\r\n }\r\n\r\n private subscribeToRouteChanges() {\r\n this.router.events\r\n .pipe(filter(e => e instanceof NavigationEnd))\r\n .subscribe(() => { this.updateActive(); });\r\n }\r\n\r\n private updateActive() {\r\n const items = this.allRootItems;\r\n const root = this.findActiveElement(items, false);\r\n const child = this.findActiveElement(items, true);\r\n this._activeElements.next({ root, child });\r\n }\r\n\r\n /** Finds active element from whole list. RouterLink has priority over custom Id. */\r\n // at this version, child elements should not have customId, since that property comes from strapi and strapi provides only one level structure\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private findActiveElement(items: CustomMenuItem[] | undefined, includeChildren: boolean): CustomMenuItem | undefined {\r\n if (!items?.length) {\r\n return undefined;\r\n }\r\n\r\n let customIdElement: CustomMenuItem | undefined;\r\n\r\n for (const item of items) {\r\n // Child element has priority over parent, so need to check if any child is active\r\n if (this.isElementRouterLinkActive(item)) {\r\n // If has children and they are visible, return active child or current item\r\n return includeChildren ? this.findActiveElement(item.children, includeChildren) ?? item : item;\r\n }\r\n // if selected custom id element is hidden, no need to look for it and set it to active;\r\n else if (!this.hideSelectedCustomId && this.isElementCustomIdActive(item)) {\r\n customIdElement = item;\r\n }\r\n else if (includeChildren && item.children?.length) {\r\n const activeChild = this.findActiveElement(item.children, includeChildren);\r\n if (activeChild) {\r\n return activeChild;\r\n }\r\n }\r\n }\r\n return customIdElement;\r\n }\r\n\r\n private initData() {\r\n if (!this.menuSharedConfig?.disableStrapi) {\r\n this.strapiService.getMenuItems().subscribe(this.loadData.bind(this));\r\n }\r\n else {\r\n this.loadData([]);\r\n }\r\n }\r\n\r\n private loadData(data: CustomMenuItem[]) {\r\n // hide custom id based on input param\r\n this.strapiItems = (this.hideSelectedCustomId && this.customId) ? data.filter(item => item.customId !== this.customId) : data;\r\n this._strapiGroup = {\r\n ...this.strapiGroupBase,\r\n items: this.strapiItems\r\n }\r\n\r\n if (this.strapiDataLocation === StrapiDataLocation.START) {\r\n this._mergedGroups = [this.strapiGroup, ...this.menuItemGroups ?? []];\r\n }\r\n else if (this.strapiDataLocation === StrapiDataLocation.END) {\r\n this._mergedGroups = [...this.menuItemGroups ?? [], this.strapiGroup];\r\n }\r\n\r\n const allItems = this.mergedGroups.map(map => map.items);\r\n let newArray: CustomMenuItem[] = [];\r\n allItems.forEach((array) => { newArray = newArray.concat(array) });\r\n this._allRootItems = newArray;\r\n\r\n this.updateActive();\r\n }\r\n\r\n private isElementCustomIdActive(element: CustomMenuItem) {\r\n return this.customId && element.customId === this.customId;\r\n }\r\n\r\n private isElementRouterLinkActive(element: CustomMenuItem) {\r\n const routerLinkActiveOptions: IsActiveMatchOptions = (element as CustomMenuItem).routerLinkActiveOptions ?? this.menuSharedConfig.activeMatchOptions ?? this.isActiveMatchOptions;\r\n\r\n return this.router.isActive(element.link, routerLinkActiveOptions);\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'nav-base',\r\n templateUrl: './nav-base.component.html',\r\n styleUrls: ['./nav-base.component.scss']\r\n})\r\n/** This component is created to help nest some common input params through nav components. */\r\nexport class NavBaseComponent implements OnInit, OnDestroy {\r\n @Input() direction!: MenuLayoutDirection;\r\n active!: ActiveMenuItems;\r\n protected activeItemSubscription!: Subscription;\r\n\r\n constructor(readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initBase();\r\n }\r\n\r\n initBase() {\r\n this.activeItemSubscription = this.menuItemsService.activeElements.subscribe((active) => {\r\n this.active = active;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyBase();\r\n }\r\n\r\n destroyBase() {\r\n this.activeItemSubscription?.unsubscribe();\r\n }\r\n}\r\n","<p>nav-base works!</p>\r\n","<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs [ngClass.lt-sm]=\"'mob-close-icon'\">close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n\r\n @if (useDefaultLanguageSwitcher && supportedLanguages.length > 1) {\r\n <lib-menu-lang-switcher [isCollapsed]=\"collapsed\" [languages]=\"supportedLanguages\" (changeLanguageEvent)=\"changeLanguage($event)\"></lib-menu-lang-switcher>\r\n }\r\n </div>\r\n <div fxFlex fxLayout=\"column\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <lib-menu-profile\r\n [userOptions]=\"menuSettings.userOptions\"\r\n [username]=\"username\"\r\n [collapsed]=\"collapsed\"\r\n (linkCallbackEvent)=\"linkCallback($event)\"\r\n ></lib-menu-profile>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { DOMService, PlausibleEvent, ResolutionHelper } from '@tilde-nlp/ngx-common';\r\nimport { StrapiLinkService } from '@tilde-nlp/ngx-strapi';\r\nimport { NavBaseComponent } from '../nav-base/nav-base.component';\r\nimport { SideNavSettings } from './models/side-nav-settings.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { UserMenuOptionLink } from './models/user-menu-option-link.model';\r\n\r\n\r\n@Component({\r\n selector: 'lib-side-nav-menu',\r\n templateUrl: './side-nav-menu.component.html',\r\n styleUrls: ['./side-nav-menu.component.scss']\r\n})\r\nexport class SideNavMenuComponent extends NavBaseComponent implements OnInit, OnDestroy {\r\n #username!: string;\r\n get username() { return this.#username; }\r\n @Input() set username(value) {\r\n // if username is passed whith whitespace in begginining, it breaks UI, so trim it for safety.\r\n this.#username = value?.trim();\r\n }\r\n\r\n @Input() menuSettings: SideNavSettings = {\r\n expandedWidth: '241px',\r\n collapsedWidth: '56px',\r\n menuLogo: '',\r\n menuLogoCollapsed: '',\r\n disableStrapi: false,\r\n disableLogoNavigation: false,\r\n userOptions: []\r\n }\r\n\r\n @Input() productName!: string;\r\n @Input() supportedLanguages!: string[];\r\n @Input() useDefaultLanguageSwitcher = true;\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n userInitials!: string;\r\n collapsed = false;\r\n\r\n readonly COLLAPSED_LOCAL_STORAGE_KEY = \"TLD_MENU_SIDE_NAV_COLLAPSED\";\r\n\r\n //#region Plausible event variables for collapse button\r\n private readonly COLLAPSE_PLAUSIBLE_EVENT_ID = \"collapseMenu\";\r\n private readonly COLLAPSE_PLAUSIBLE_ACTION_KEY = \"action\";\r\n private readonly LOGOCLICK_PLAUSIBLE_ACTION_ID = \"tilde_logo_click\"\r\n\r\n readonly LOGOCLICK_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.LOGOCLICK_PLAUSIBLE_ACTION_ID,\r\n properties: []\r\n }\r\n\r\n readonly EXPAND_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"expand\" }]\r\n }\r\n\r\n readonly COLLAPSE_PLAUSIBLE_EVENT: PlausibleEvent = {\r\n eventId: this.COLLAPSE_PLAUSIBLE_EVENT_ID,\r\n properties: [{ key: this.COLLAPSE_PLAUSIBLE_ACTION_KEY, value: \"collapse\" }]\r\n }\r\n //#endregion\r\n\r\n readonly baseUrl: string | undefined;\r\n\r\n get menuLogoImage(): string {\r\n return this.collapsed\r\n ? this.menuSettings.menuLogoCollapsed ?? this.menuSettings.menuLogo\r\n : this.menuSettings.menuLogo;\r\n }\r\n\r\n get sideNavWidth(): string | undefined {\r\n return this.collapsed ? this.menuSettings.collapsedWidth : this.menuSettings.expandedWidth;\r\n }\r\n\r\n constructor(\r\n public strapiLinkService: StrapiLinkService,\r\n readonly domService: DOMService,\r\n readonly menuItems: MenuItemsService,\r\n ) {\r\n super(menuItems);\r\n this.baseUrl = menuItems.menuSharedConfig.baseUrl || '';\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.getColapsedFromLocalStorage();\r\n }\r\n\r\n logoClick(event: MouseEvent): void {\r\n this.strapiLinkService.strapiLinkClick(event);\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed = !this.collapsed;\r\n this.setColapsedFromLocalStorage();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink) {\r\n if (link.callback) {\r\n link.callback();\r\n }\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n\r\n private getColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n\r\n this.collapsed = (this.domService.localStorage.getItem(this.COLLAPSED_LOCAL_STORAGE_KEY) == 'true' || ResolutionHelper.isMobileRes()) ? true : false;\r\n }\r\n\r\n private setColapsedFromLocalStorage() {\r\n if (!this.domService.localStorage) {\r\n return;\r\n }\r\n this.domService.localStorage.setItem(this.COLLAPSED_LOCAL_STORAGE_KEY, this.collapsed.toString());\r\n }\r\n}\r\n","\r\nexport enum MenuLayoutDirection {\r\n column = \"column\",\r\n row = \"row\"\r\n}\r\n","<ng-container *ngIf=\"menuItem.icon\">\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"menuItem.icon\" *ngIf=\"!menuItem.materialIcon; else materialIcon;\"></mat-icon>\r\n <ng-template #materialIcon>\r\n <span class=\"material-icons menu-icon\" [class.material-icons-outlined]=\"menuItem?.isIconOutlined\">{{menuItem.icon}}</span>\r\n </ng-template>\r\n</ng-container>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Media } from '@tilde-nlp/strapi-models';\r\nimport { CustomMenuItem, MENU_ICON_STRAPI_EXTENSION } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-icon',\r\n templateUrl: './menu-icon.component.html',\r\n styleUrls: ['./menu-icon.component.scss']\r\n})\r\nexport class MenuIconComponent {\r\n readonly svgExtension = MENU_ICON_STRAPI_EXTENSION;\r\n\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isIconMediaType(icon: any): icon is Media {\r\n return typeof icon !== \"string\";\r\n }\r\n}\r\n","<a\r\n class=\"text-m menu-item\"\r\n matTooltipClass=\"menu-tooltip\"\r\n matTooltipPosition=\"after\"\r\n [matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n [fxLayout]=\"menuItemLayout\"\r\n [fxLayoutAlign]=\"menuLayoutDirection\"\r\n [libPlausibleEvent]=\"menuItem.plausibleEvent\"\r\n [href]=\"href | translate\"\r\n [attr.target]=\"menuItem.externalLink ? '_blank' : '_self'\"\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [class.text-center]=\"menuItemLayout === 'column'\"\r\n [class.active-menu-item]=\"menuItem === activeItem\"\r\n (click)=\"linkClick($event, menuItem)\"\r\n>\r\n <ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n <tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n </ng-container>\r\n <span *ngIf=\"labelsVisible\" class=\"menu-item-title\">\r\n <span class=\"title-content\" [attr.content]=\"menuItem.title | translate\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n </span>\r\n</a>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { PlaceholderComponentBase, StrapiLinkService, StrapiVariablesService } from '@tilde-nlp/ngx-strapi';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'tld-menu-item-link',\r\n templateUrl: './menu-item-link.component.html',\r\n styleUrls: ['./menu-item-link.component.scss']\r\n})\r\nexport class MenuItemLinkComponent implements OnInit, OnDestroy, PlaceholderComponentBase {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() labelsVisible!: boolean;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n @Input() menuItem!: CustomMenuItem;\r\n\r\n textWithPlaceholders!: string;\r\n href!: string;\r\n\r\n private placeholderServiceId!: number;\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n constructor(private readonly strapiLinkService: StrapiLinkService,\r\n private readonly placeholderService: StrapiVariablesService) { }\r\n\r\n ngOnInit(): void {\r\n this.textWithPlaceholders = this.menuItem.link;\r\n this.placeholderServiceId = this.placeholderService.register(this);\r\n }\r\n\r\n linkClick(event: MouseEvent, item: CustomMenuItem) {\r\n this.strapiLinkService.strapiLinkClick(event, item.externalLink);\r\n }\r\n\r\n updateTextWithPlaceholders = (textWithReplacedPlaceholders: string) => this.href = textWithReplacedPlaceholders;\r\n\r\n ngOnDestroy(): void {\r\n this.placeholderService.unregister(this.placeholderServiceId);\r\n }\r\n}\r\n","<button\r\n [ngClass.lt-md]=\"'mobile'\"\r\n [attr.id]=\"menuItem.customId\"\r\n class=\"menu-item w-full flex justify-center items-center\"\r\n fxLayoutAlign=\"space-between start\"\r\n [class.active-menu-item]=\"menuItem.isItemActive ? menuItem.isItemActive(menuItem.customId) : menuItem === activeItem\"\r\n (click)=\"menuItem.clickAction && menuItem.clickAction()\"\r\n>\r\n <span class=\"btn-label\">\r\n {{ menuItem.title | translate }}\r\n </span>\r\n <ng-container *ngIf=\"menuItem.subMenu?.length\">\r\n <div [class.open]=\"menuTrigger?.menuOpen\">\r\n <button\r\n class=\"sub-menu-btn\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let item of menuItem.subMenu\"\r\n mat-menu-item\r\n (click)=\"item.onOptionClick()\"\r\n >\r\n {{ item.title | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n</button>\r\n","import { Component, Input } from '@angular/core';\r\nimport { CustomMenuItem, MenuLayoutDirection } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-menu-item-btn',\r\n standalone: false,\r\n templateUrl: './menu-item-btn.component.html',\r\n styleUrl: './menu-item-btn.component.scss',\r\n})\r\nexport class MenuItemBtnComponent {\r\n @Input() direction!: MenuLayoutDirection;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() menuItem!: CustomMenuItem;\r\n}\r\n","<div class=\"menu-list-wrapper\">\r\n\t@if (titleKey && showTitle && labelsVisible && !menuItemGroup.itemGroupClick) {\r\n\t<div fxLayoutAlign=\"start center\" class=\"menu-item-list-title\">\r\n\t\t<mat-icon *ngIf=\"menuItemGroup.titleIcon\" class=\"menu-title-btn\">\r\n\t\t\t{{ menuItemGroup.titleIcon }}\r\n\t\t</mat-icon>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"menuItemGroup.titleNavigation\"\r\n\t\t\tmat-icon-button\r\n\t\t\tclass=\"menu-title-btn\"\r\n\t\t\t[routerLink]=\"menuItemGroup.titleNavigation.path\"\r\n\t\t\t[matTooltip]=\"menuItemGroup.titleNavigation?.tooltip ?? '' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>{{ menuItemGroup.titleNavigation.icon }}</mat-icon>\r\n\t\t</button>\r\n\r\n\t\t{{ titleKey | translate }}\r\n\t</div>\r\n\t} @else if (menuItemGroup?.itemGroupClick) {\r\n\t<ng-container *ngTemplateOutlet=\"itemGroupButton\"> </ng-container>\r\n\t}\r\n\t<div class=\"menu-item-list\" fxLayout=\"column\" [fxLayoutAlign]=\"menuLayoutDirection\">\r\n\t\t<ng-container *ngFor=\"let menuItem of items\">\r\n\t\t\t<ng-container\r\n\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t!menuItem.showChildren || !menuItem.children || menuItem?.children?.length === 0 ? (menuItem.clickAction ? menuItemBtn : menuItemLink) : itemWithChildren;\r\n\t\t\t\t\tcontext: { menuItem: menuItem }\r\n\t\t\t\t\"\r\n\t\t\t>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #itemWithChildren let-menuItem=\"menuItem\">\r\n\t<button\r\n\t\tmatTooltipClass=\"menu-tooltip\"\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"!labelsVisible ? (menuItem.title | translate) : ''\"\r\n\t\t[fxLayout]=\"menuItemLayout\"\r\n\t\t[fxLayoutAlign]=\"menuLayoutDirection\"\r\n\t\t#state=\"matMenuTrigger\"\r\n\t\t[matMenuTriggerFor]=\"menu\"\r\n\t\t[attr.id]=\"menuItem.customId\"\r\n\t\tclass=\"text-m menu-item menu-parent-item\"\r\n\t\t[class.menu-labels-visible]=\"labelsVisible\"\r\n\t\t[class.active-menu-item]=\"(activeItem?.link && menuItem === activeItem) || state.menuOpen\"\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t(click)=\"toggleItemExpand($event, menuItem)\"\r\n\t>\r\n\t\t<ng-container *ngIf=\"showIcons && menuItem.icon\">\r\n\t\t\t<tld-menu-icon [menuItem]=\"menuItem\"></tld-menu-icon>\r\n\t\t</ng-container>\r\n\t\t<ng-container *ngIf=\"labelsVisible\">\r\n\t\t\t<span class=\"menu-item-title\">\r\n\t\t\t\t<span class=\"title-content\">{{ menuItem.title | translate }}</span></span\r\n\t\t\t>\r\n\t\t\t<ng-container *ngIf=\"menuItem.showChildren && menuItem.children\">\r\n\t\t\t\t<span *ngIf=\"state.menuOpen; else iconDown\" class=\"material-icons spin arrow-icon\">keyboard_arrow_down</span>\r\n\r\n\t\t\t\t<ng-template #iconDown>\r\n\t\t\t\t\t<span class=\"material-icons spin arrow-icon\"> keyboard_arrow_up </span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</button>\r\n\t<mat-menu #menu=\"matMenu\" class=\"child-menu\">\r\n\t\t@for (child of menuItem.children; track $index) {\r\n\t\t<div mat-menu-item>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"menuItem.clickAction ? menuItemBtn : menuItemLink; context: { menuItem: child, isChild: true }\"> </ng-container>\r\n\t\t</div>\r\n\t\t}\r\n\t</mat-menu>\r\n</ng-template>\r\n\r\n<ng-template #menuItemLink let-menuItem=\"menuItem\" let-isChild=\"isChild\">\r\n\t<tld-menu-item-link\r\n\t\t[ngClass.lt-md]=\"'mob-menu-item'\"\r\n\t\t[menuItem]=\"menuItem\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[labelsVisible]=\"labelsVisible || isChild\"\r\n\t\t[activeItem]=\"activeItem\"\r\n\t\t[showIcons]=\"showIcons\"\r\n\t></tld-menu-item-link>\r\n</ng-template>\r\n\r\n<ng-template #menuItemBtn let-menuItem=\"menuItem\">\r\n\t<lib-menu-item-btn *ngIf=\"labelsVisible\" [ngClass.lt-md]=\"'mob-menu-item'\" [menuItem]=\"menuItem\" [direction]=\"direction\" [activeItem]=\"activeItem\"></lib-menu-item-btn>\r\n</ng-template>\r\n\r\n<ng-template #itemGroupButton>\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && labelsVisible\"\r\n\t\tmat-button\r\n\t\tclass=\"menu-title-btn menu-action-button\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t\t[class.active-menu-item-group]=\"menuItemGroup.isItemGroupActive && menuItemGroup.isItemGroupActive()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t\t<span class=\"btn-label\" *ngIf=\"titleKey\">\r\n\t\t\t{{ titleKey | translate }}\r\n\t\t</span>\r\n\t</button>\r\n\r\n\t<button\r\n\t\t*ngIf=\"menuItemGroup && !labelsVisible && titleKey && menuItemGroup.itemGroupIcon\"\r\n\t\tmat-icon-button\r\n\t\tmatTooltipPosition=\"after\"\r\n\t\t[matTooltip]=\"titleKey | translate\"\r\n\t\t(click)=\"menuItemGroup?.itemGroupClick()\"\r\n\t>\r\n\t\t@if(menuItemGroup.isCustomItemGroupIcon){\r\n\t\t<mat-icon [svgIcon]=\"menuItemGroup.itemGroupIcon ?? ''\"></mat-icon>\r\n\t\t} @else {\r\n\t\t<mat-icon>{{ menuItemGroup.itemGroupIcon }}</mat-icon>\r\n\t\t}\r\n\t</button>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuItemGroupBase } from '../../models/menu-item-group.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\n\r\n@Component({\r\n selector: 'menu-item-list',\r\n templateUrl: './menu-item-list.component.html',\r\n styleUrls: ['./menu-item-list.component.scss']\r\n})\r\nexport class MenuItemListComponent {\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() labelsVisible = true;\r\n @Input() activeItem!: CustomMenuItem | undefined;\r\n @Input() showIcons = true;\r\n\r\n @Input() items: CustomMenuItem[] = [];\r\n @Input() menuItemGroup!: MenuItemGroupBase;\r\n\r\n @Output() toggleExpand: EventEmitter<CustomMenuItem> = new EventEmitter<CustomMenuItem>();\r\n\r\n get titleKey() {\r\n return this.menuItemGroup?.title;\r\n }\r\n\r\n get showTitle() {\r\n return this.menuItemGroup?.showTitle;\r\n }\r\n\r\n get menuLayoutDirection(): string {\r\n return (this.direction === MenuLayoutDirection.column || !this.labelsVisible)\r\n ? 'start center' : 'start start';\r\n }\r\n\r\n get menuItemLayout(): string {\r\n return this.direction === MenuLayoutDirection.column ? 'column' : 'row';\r\n }\r\n\r\n toggleItemExpand(event: MouseEvent, menuItem: CustomMenuItem) {\r\n // so menu doesnt get closed.\r\n event.stopPropagation();\r\n\r\n if (this.labelsVisible || !menuItem.expanded) {\r\n menuItem.expanded = !menuItem.expanded;\r\n }\r\n\r\n this.toggleExpand.next(menuItem);\r\n }\r\n}\r\n","<ng-container *ngFor=\"let group of mergedGroups\">\r\n <menu-item-list *ngIf=\"group.items.length || group.showEmpty\" [activeItem]=\"activeItem\" [direction]=\"direction\"\r\n (toggleExpand)=\"elementExpanded($event)\" [labelsVisible]=\"isOpen\" [menuItemGroup]=\"group\"\r\n [items]=\"group.items\">\r\n </menu-item-list>\r\n <div class=\"loader-container\" *ngIf=\"group.isItemsLoading\">\r\n <mat-spinner [diameter]=\"24\" class=\"loader\"></mat-spinner>\r\n </div>\r\n <div class=\"divider\" *ngIf=\"group.bottomDivider && group.items.length\">\r\n <mat-divider></mat-divider>\r\n </div>\r\n</ng-container>","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MENU_SHARED_CONFIG } from '../../injection-tokens';\r\nimport { CustomMenuItem } from '../../models/custom-menu-item.model';\r\nimport { MenuLayoutDirection } from '../../models/menu-layout-direction.model';\r\nimport { MenuSharedConfig } from '../../models/menu-shared-config.model';\r\nimport { MenuItemsService } from '../../services/menu-items.service';\r\nimport { ActiveMenuItems } from '../../models';\r\nimport { ResolutionHelper } from '@tilde-nlp/ngx-common';\r\n\r\n@Component({\r\n selector: 'menu-columns',\r\n templateUrl: './menu-columns.component.html',\r\n styleUrls: ['./menu-columns.component.scss']\r\n})\r\nexport class MenuColumnsComponent implements OnInit {\r\n\r\n @Input() direction: MenuLayoutDirection = MenuLayoutDirection.column;\r\n @Input() isOpen = true;\r\n @Output() toggleCollapseEvent = new EventEmitter();\r\n\r\n private _active!: ActiveMenuItems;\r\n get active() { return this._active; }\r\n @Input() set active(value: ActiveMenuItems) {\r\n if (this.toggleOnMobileSelect()) {\r\n this.toggleCollapseEvent.emit();\r\n }\r\n\r\n this._active = value;\r\n\r\n if (!value) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n this.elementExpanded(this.active?.root)\r\n }\r\n\r\n activeItem?: CustomMenuItem;\r\n get mergedGroups() { return this.menuItemsService.mergedGroups; }\r\n\r\n constructor(\r\n protected readonly router: Router,\r\n @Optional() @Inject(MENU_SHARED_CONFIG) protected readonly menuSharedConfig: MenuSharedConfig,\r\n private readonly menuItemsService: MenuItemsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeItem = this.active.root;\r\n }\r\n\r\n elementExpanded(element?: CustomMenuItem) {\r\n if (!this.active || !element) {\r\n this.activeItem = undefined;\r\n return;\r\n }\r\n\r\n \r\n this.activeItem = this.active.root;\r\n }\r\n\r\n private toggleOnMobileSelect(): boolean {\r\n return this.isOpen && ResolutionHelper.isMobileRes() && (this.active && Object.values(this.active)?.length > 0);\r\n }\r\n}\r\n","<div class=\"profile\">\r\n\t<button #state=\"matMenuTrigger\" [class.collapsed]=\"collapsed()\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\" [class.active]=\"state.menuOpen\">\r\n\t\t<div class=\"profile-icon\">\r\n\t\t\t@if (userInitials) {\r\n\t\t\t{{ userInitials }}\r\n\t\t\t} @else {\r\n\t\t\t<mat-icon>person</mat-icon>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<ng-container *ngIf=\"!collapsed()\">\r\n\t\t\t<span class=\"profile-name\">\r\n\t\t\t\t{{ username() ?? \"MENU.ANONYMOUS\" | translate }}\r\n\t\t\t</span>\r\n\r\n\t\t\t<mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">keyboard_arrow_down</mat-icon>\r\n\r\n\t\t\t<ng-template #iconDown>\r\n\t\t\t\t<mat-icon class=\"profile-arrow spin\">keyboard_arrow_up</mat-icon>\r\n\t\t\t</ng-template>\r\n\t\t</ng-container>\r\n\t</button>\r\n\r\n\t<mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n\t\t@for (item of userOptions(); track item.label) { @if (item.link) { @if (item.link.isExternal) {\r\n\t\t<a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} @else {\r\n\t\t<a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</a>\r\n\t\t} } @else {\r\n\t\t<button mat-menu-item class=\"profile-option\" (click)=\"item.button?.callback()\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\"> </ng-container>\r\n\t\t</button>\r\n\t\t} }\r\n\t</mat-menu>\r\n</div>\r\n\r\n<ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n\t@if (icon) { @if (!icon?.isCustom) {\r\n\t<span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n\t\t{{ icon?.name }}\r\n\t</span>\r\n\t} @else {\r\n\t<mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n\t} }\r\n\t{{ label | translate }}\r\n</ng-template>\r\n","import { Component, input, OnInit, output } from '@angular/core';\r\nimport { UserMenuOption } from '../side-nav-menu';\r\nimport { UserMenuOptionLink } from '../side-nav-menu/models/user-menu-option-link.model';\r\n\r\n@Component({\r\n selector: 'lib-menu-profile',\r\n templateUrl: './menu-profile.component.html',\r\n styleUrl: './menu-profile.component.scss',\r\n})\r\nexport class MenuProfileComponent implements OnInit {\r\n collapsed = input<boolean>();\r\n username = input<string>();\r\n userOptions = input<UserMenuOption[]>();\r\n linkCallbackEvent = output<UserMenuOptionLink>();\r\n\r\n userInitials!: string;\r\n\r\n ngOnInit(): void {\r\n this.setUserInitials();\r\n }\r\n\r\n linkCallback(link: UserMenuOptionLink): void {\r\n this.linkCallbackEvent.emit(link);\r\n }\r\n\r\n private setUserInitials(): void {\r\n if (!this.username()) {\r\n return;\r\n }\r\n\r\n // displaying first letters of name and surname\r\n const splittedUsername = this.username()!.split(' ');\r\n if (splittedUsername.length === 1) {\r\n // If there's only one word, use the first letter\r\n this.userInitials = splittedUsername[0][0];\r\n return;\r\n }\r\n // If there are more than one word, use the first letter of the first two names\r\n this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];\r\n }\r\n}\r\n","<button\r\n [class.collapsed]=\"isCollapsed\"\r\n #state=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [matTooltip]=\"isCollapsed ? ('MENU.CHANGE_LANGUAGE' | translate) : ''\"\r\n matTooltipPosition=\"after\"\r\n matTooltipClass=\"menu-tooltip\" \r\n class=\"lang-switcher\"\r\n [class.active]=\"state.menuOpen\"\r\n>\r\n<div class=\"current-lang\">\r\n <mat-icon class=\"lang-icon\">language</mat-icon>\r\n\r\n @if (!isCollapsed) {\r\n <span>\r\n {{ currentLanguageCode | languageTranslate }}\r\n </span>\r\n }\r\n</div>\r\n\r\n @if (!isCollapsed) {\r\n @if (state.menuOpen) {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_down</mat-icon>\r\n } @else {\r\n <mat-icon class=\"menu-arrow spin\">keyboard_arrow_up</mat-icon>\r\n }\r\n }\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"lang-menu\">\r\n @for (lang of languages; track lang) {\r\n @if (lang !== currentLanguageCode) {\r\n <button mat-menu-item (click)=\"changeLanguage(lang)\">\r\n {{ lang | languageTranslate }}\r\n </button>\r\n }\r\n }\r\n</mat-menu>\r\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'lib-menu-lang-switcher',\r\n templateUrl: './menu-lang-switcher.component.html',\r\n styleUrl: './menu-lang-switcher.component.scss'\r\n})\r\nexport class MenuLangSwitcherComponent implements OnInit {\r\n @Input() isCollapsed!: boolean;\r\n @Input() languages!: string[];\r\n @Output() changeLanguageEvent = new EventEmitter<string>();\r\n\r\n #translate = inject(TranslateService);\r\n\r\n currentLanguageCode!: string;\r\n\r\n ngOnInit(): void {\r\n this.currentLanguageCode = this.#translate.currentLang;\r\n }\r\n\r\n changeLanguage(lang: string): void {\r\n this.#translate.use(lang);\r\n this.currentLanguageCode = lang;\r\n this.changeLanguageEvent.emit(lang);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SideNavMenuComponent } from './components/side-nav-menu/side-nav-menu.component';\r\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { StarpiMenuService } from './services/strapi.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { MenuSharedConfig } from './models/menu-shared-config.model';\r\nimport { MENU_SHARED_CONFIG } from './injection-tokens/menu-shared-config.token';\r\nimport { NavBaseComponent } from './components/nav-base/nav-base.component';\r\nimport { MenuItemListComponent } from './components/menu-item-list/menu-item-list.component';\r\nimport { PlausibleModule, LanguageTranslateModule } from '@tilde-nlp/ngx-common';\r\nimport { MenuColumnsComponent } from './components/menu-columns/menu-columns.component';\r\nimport { MenuIconComponent } from './components/menu-icon/menu-icon.component';\r\nimport { MenuItemLinkComponent } from './components/menu-item-link/menu-item-link.component';\r\nimport { MenuItemBtnComponent } from './components/menu-item-btn/menu-item-btn.component';\r\nimport { MenuProfileComponent } from './components/menu-profile/menu-profile.component';\r\nimport { MenuLangSwitcherComponent } from './components/menu-lang-switcher/menu-lang-switcher.component';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n SideNavMenuComponent,\r\n NavBaseComponent,\r\n MenuItemListComponent,\r\n MenuColumnsComponent,\r\n MenuIconComponent,\r\n MenuItemLinkComponent,\r\n MenuItemBtnComponent,\r\n MenuProfileComponent,\r\n MenuLangSwitcherComponent\r\n ],\r\n exports: [\r\n SideNavMenuComponent,\r\n MenuColumnsComponent,\r\n ],\r\n imports: [\r\n FlexLayoutModule,\r\n RouterModule,\r\n CommonModule,\r\n MatTooltipModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n TranslateModule,\r\n PlausibleModule,\r\n LanguageTranslateModule,\r\n MatProgressSpinnerModule\r\n ],\r\n providers: [StarpiMenuService, provideHttpClient(withInterceptorsFromDi())],\r\n})\r\nexport class MenuModule {\r\n static forRoot(config: MenuSharedConfig): ModuleWithProviders<MenuModule> {\r\n return {\r\n ngModule: MenuModule,\r\n providers: [{ provide: MENU_SHARED_CONFIG, useValue: config }],\r\n };\r\n }\r\n}\r\n","import { UserMenuOption } from '../components/side-nav-menu/models/user-menu-option.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectLanguageDialogComponent } from '@tilde-nlp/ngx-common';\r\n\r\n/**\r\n * Prefefined user menu options, so that same style of items are used across all products. Use this by passing necessary configuration.\r\n */\r\nexport const USER_MENU_OPTIONS = {\r\n subscription: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'credit_card' },\r\n label: 'MENU.SUBSCRIPTION',\r\n link: { href: href, callback },\r\n }),\r\n termsOfUse: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'text_snippet' },\r\n label: 'MENU.TERMS_OF_USE',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n privacy: (href: string, callback?: () => void): UserMenuOption => ({\r\n icon: { name: 'gpp_maybe' },\r\n label: 'MENU.PRIVACY',\r\n link: { href, isExternal: true, callback },\r\n }),\r\n help: (href: string, icon?: { name: string, isCustom: boolean }, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.HELP_CENTER',\r\n icon: { name: icon ? icon.name : `help`, isCustom: icon ? icon.isCustom : false },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n contactUs: (href: string, callback?: () => void): UserMenuOption => ({\r\n label: 'MENU.CONTACT_US',\r\n icon: { name: `mail` },\r\n link: { href, isExternal: true, callback },\r\n }),\r\n /** use language update callback to save in localstorage */\r\n changeLanguage: (\r\n dialog: MatDialog,\r\n languages: string[],\r\n languageChangeCallback?: (language: string) => void\r\n ): UserMenuOption => ({\r\n label: 'MENU.CHANGE_LANGUAGE',\r\n icon: { name: 'language' },\r\n button: {\r\n callback: () => {\r\n dialog\r\n .open(SelectLanguageDialogComponent, {\r\n data: { languages: languages },\r\n })\r\n .afterClosed()\r\n .subscribe((language: string) => {\r\n if (language && languageChangeCallback) {\r\n languageChangeCallback(language);\r\n }\r\n });\r\n },\r\n },\r\n }),\r\n logout: (callback: () => void): UserMenuOption => ({\r\n icon: { name: 'logout' },\r\n label: 'MENU.LOG_OUT',\r\n button: { callback: () => callback() },\r\n }),\r\n};\r\n","/*\r\n * Public API Surface of ngx-menu\r\n */\r\n\r\n\r\nexport * from './lib/components/side-nav-menu';\r\nexport * from './lib/injection-tokens';\r\nexport * from './lib/models';\r\nexport * from './lib/menu.module';\r\nexport * from './lib/components/side-nav-menu/side-nav-menu.component';\r\nexport * from './lib/components/menu-columns/menu-columns.component';\r\nexport * from './lib/components/nav-base/nav-base.component';\r\nexport * from './lib/components/nav-base/models';\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/constants\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.StarpiMenuService","i1.MenuItemsService","i3.MenuItemsService","_c0","i2.MenuItemsService"],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface MenuItemGroupBase {
|
|
|
15
15
|
titleNavigation?: MenuTitleNavigation;
|
|
16
16
|
itemGroupClick?: () => void;
|
|
17
17
|
itemGroupIcon?: string;
|
|
18
|
+
/** Set to true if item group is active */
|
|
19
|
+
isItemGroupActive?: () => boolean;
|
|
18
20
|
/** Set to true if icon is registered as svg through icon service */
|
|
19
21
|
isCustomItemGroupIcon?: boolean;
|
|
20
22
|
}
|