import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core'; import { CommonModule } from '@angular/common'; import { SidebarLinkConfig } from 'mayvio-ui/sidebar'; import 'mayvio-ui/sidebar/css'; @Component({ selector: 'mv-sidebar', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: ` `, }) export class SidebarComponent { @Input() title = 'Mayvio UI'; @Input() links: SidebarLinkConfig[] = []; @Input() collapsed = false; @Input() mobileOpen = false; @Input() className = ''; @Output() linkSelect = new EventEmitter(); @Output() toggleCollapseEvent = new EventEmitter(); @Output() mobileCloseEvent = new EventEmitter(); toggleCollapse() { this.toggleCollapseEvent.emit(!this.collapsed); } closeMobile() { this.mobileCloseEvent.emit(); } onLinkClick(e: Event, link: SidebarLinkConfig) { if (!link.href) { e.preventDefault(); } this.linkSelect.emit(link); if (this.mobileOpen) { this.closeMobile(); } } }