src/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.ts
| changeDetection | ChangeDetectionStrategy.OnPush |
| selector | rxap-sidenav-toggle-button |
| imports |
MatIcon
MatIconButton
|
| styleUrls | ./sidenav-toggle-button.component.scss |
| templateUrl | ./sidenav-toggle-button.component.html |
Properties |
|
Methods |
|
| Public toggle |
toggle()
|
|
Returns :
void
|
| Protected Readonly layoutComponentService |
Default value : inject(LayoutService)
|
| Public Readonly opened |
Default value : computed(() => this.layoutComponentService.opened())
|
import {
ChangeDetectionStrategy,
Component,
computed,
inject,
} from '@angular/core';
import { MatIconButton } from '@angular/material/button';
import { MatIcon } from '@angular/material/icon';
import { LayoutService } from '../../layout.service';
@Component({
selector: 'rxap-sidenav-toggle-button',
templateUrl: './sidenav-toggle-button.component.html',
styleUrls: ['./sidenav-toggle-button.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
MatIcon,
MatIconButton,
]
})
export class SidenavToggleButtonComponent {
protected readonly layoutComponentService = inject(LayoutService);
public readonly opened = computed(() => this.layoutComponentService.opened());
public toggle() {
this.layoutComponentService.toggleOpened();
}
}
<button (click)="toggle()" mat-icon-button>
@if (opened()) {
<mat-icon>menu_open</mat-icon>
} @else {
<mat-icon>menu</mat-icon>
}
</button>
./sidenav-toggle-button.component.scss