Professional Documents
Culture Documents
Message
Message
Component,
ElementRef,
EventEmitter,
Input,
OnDestroy,
OnInit,
Output,
Renderer2,
ViewChild
} from "@angular/core";
import { Router } from "@angular/router";
import { MenuService } from "@core/services/auth/menu.service";
import { SidebarSubmenuItem } from "@shared/schemas/sidebar-submenu";
import { SidebarMenuService } from "@shared/services/sidebar-menu.service";
import { Subject, takeUntil } from "rxjs";
@Component({
selector: "app-sidebar-menu",
templateUrl: "./sidebar-menu.component.html",
styleUrls: ["./sidebar-menu.component.scss"]
})
export class SidebarMenuComponent implements OnInit, OnDestroy {
@Input() sidebarExpanded = true;
@ViewChild("submenu")
submenu!: ElementRef<HTMLLIElement>;
@ViewChild("menu")
menu!: ElementRef<HTMLAnchorElement>;
constructor(
public router: Router,
private sidebarMenuService: SidebarMenuService,
private renderer: Renderer2,
private menuService: MenuService
) {}
ngOnInit(): void {
this.showHideMenu();
}
this.submenu?.nativeElement.classList.contains("show")
) {
this.renderer.removeClass(
this.submenu?.nativeElement,
"show"
);
this.renderer.setAttribute(
this.menu.nativeElement,
"aria-expanded",
"false"
);
}
}
});
}
ngOnDestroy(): void {
this._onDestroy.next(true);
}
emitActualMenu(): void {
this.sidebarMenuService.setActualmenu(this.menuId);
}
isRouterActive(): boolean {
return this.router.isActive(this.menuId, {
paths: "subset",
queryParams: "subset",
fragment: "ignored",
matrixParams: "ignored"
});
}
}