projects/nshmp-template/src/lib/services/header.service.ts
Properties |
|
Methods |
constructor(nshmpService: NshmpTemplateService)
|
||||||
Parameters :
|
Private checkControls |
checkControls()
|
Returns :
void
|
reset |
reset()
|
Returns :
void
|
resetAppControls |
resetAppControls()
|
Returns :
void
|
toggleControlPanel |
toggleControlPanel()
|
Returns :
void
|
toggleSettingsPanel |
toggleSettingsPanel()
|
Returns :
void
|
aboutClicked |
Default value : new Subject<void>()
|
Readonly controlPanelSelected |
Default value : signal(false)
|
Readonly navigationChanged |
Default value : signal<Navigation>({
display: '',
routerLink: '',
})
|
Readonly navigationList |
Default value : signal<NavigationList[]>([])
|
Readonly settingsSelected |
Default value : signal(false)
|
Readonly showNewBadge |
Default value : signal(false)
|
Readonly title |
Default value : signal('')
|
import {Injectable, signal} from '@angular/core';
import {Subject} from 'rxjs';
import {Navigation, NavigationList} from '../models';
import {NshmpTemplateService} from './nshmp-template.service';
@Injectable({
providedIn: 'root',
})
export class HeaderService {
readonly controlPanelSelected = signal(false);
readonly navigationChanged = signal<Navigation>({
display: '',
routerLink: '',
});
readonly navigationList = signal<NavigationList[]>([]);
readonly settingsSelected = signal(false);
readonly title = signal('');
readonly showNewBadge = signal(false);
aboutClicked = new Subject<void>();
constructor(private nshmpService: NshmpTemplateService) {}
reset(): void {
this.resetAppControls();
}
toggleControlPanel(): void {
const toggle = !this.controlPanelSelected();
this.checkControls();
this.controlPanelSelected.set(toggle);
}
toggleSettingsPanel(): void {
const toggle = !this.settingsSelected();
this.checkControls();
this.settingsSelected.set(toggle);
}
resetAppControls(): void {
this.controlPanelSelected.set(false);
this.settingsSelected.set(false);
}
private checkControls(): void {
if (this.nshmpService.isSmallScreen) {
this.resetAppControls();
}
}
}