import { Component, Input } from '@angular/core'; import { MenuItem } from './menu.model'; import { NgClass, NgForOf, NgIf } from '@angular/common'; import { RouterLink, RouterLinkActive } from '@angular/router'; import { animate, state, style, transition, trigger, } from '@angular/animations'; @Component({ selector: 'bgui-sublevel-menu', standalone: true, imports: [NgIf, NgForOf, NgClass, RouterLink, RouterLinkActive], template: ` `, styleUrls: ['./sidebar.component.scss'], animations: [ trigger('submenu', [ state( 'hidden', style({ height: '0', overflow: 'hidden', }) ), state( 'visible', style({ height: '*', }) ), transition('visible <=> hidden', [ style({ overflow: 'hidden' }), animate('{{transitionParams}}'), transition('void => *', animate(0)), ]), ]), ], }) export class SublevelMenuComponent { @Input() data: MenuItem = { routeLink: '', icon: '', label: '', items: [], }; @Input() collapsed = false; @Input() animating: boolean | undefined; @Input() expanded: boolean | undefined; @Input() multiple: boolean = false; handleClick(item: any): void { if (!this.multiple) { if (this.data.items && this.data.items.length > 0) { for (const modelItem of this.data.items) { if (item !== modelItem && modelItem.expanded) { modelItem.expanded = false; } } } } item.expanded = !item.expanded; } }