src/lib/header.service.ts
Properties |
|
Methods |
|
| Public addComponent | ||||||||||||
addComponent(component: Constructor, order: number)
|
||||||||||||
|
Defined in src/lib/header.service.ts:20
|
||||||||||||
|
Parameters :
Returns :
void
|
| Public Readonly componentCount |
Default value : computed(() => this.componentsWithMetadata().length + 1)
|
|
Defined in src/lib/header.service.ts:17
|
| Public Readonly components |
Default value : computed(() => this.componentsWithMetadata().map(item => item.component))
|
|
Defined in src/lib/header.service.ts:18
|
import {
computed,
Injectable,
signal,
} from '@angular/core';
import { Constructor } from '@rxap/utilities';
export interface SortedComponent {
component: Constructor;
order: number;
}
@Injectable({ providedIn: 'root' })
export class HeaderService {
private readonly componentsWithMetadata = signal<Array<SortedComponent>>([]);
public readonly componentCount = computed(() => this.componentsWithMetadata().length + 1);
public readonly components = computed(() => this.componentsWithMetadata().map(item => item.component));
public addComponent(component: Constructor, order = 0): void {
this.componentsWithMetadata.update(components => {
components.push({
component,
order,
});
components.sort((a, b) => a.order - b.order);
return components.slice();
});
}
}