Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 1x 3x 3x 3x 3x 3x 3x | /**
* Copyright (c) Siemens 2016 - 2025
* SPDX-License-Identifier: MIT
*/
import {
afterNextRender,
Directive,
ElementRef,
HostListener,
inject,
Injector,
OnInit,
signal
} from '@angular/core';
/** The siemens logo. Should be located inside `.header-brand`. */
@Directive({
selector: 'si-header-logo, [siHeaderLogo]',
host: {
class: 'header-logo px-6 focus-inside',
'[attr.aria-label]': 'logoText()'
}
})
export class SiHeaderLogoDirective implements OnInit {
protected readonly logoText = signal<string | undefined>(undefined);
private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);
private injector = inject(Injector);
ngOnInit(): void {
this.updateLogoText();
}
@HostListener('window:theme-switch')
protected updateLogoText(): void {
afterNextRender(
{
read: () =>
this.logoText.set(
window
.getComputedStyle(this.elementRef.nativeElement)
.getPropertyValue('--element-brand-logo-text')
.replace(/^["']|["']$/g, '')
)
},
{ injector: this.injector }
);
}
}
|