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 | 1x 28x 28x 28x 28x 28x 1x 1x | /** * Copyright (c) Siemens 2016 - 2025 * SPDX-License-Identifier: MIT */ import { Directive, ElementRef, inject, input, OnDestroy, OnInit } from '@angular/core'; import { TranslatableString } from '@siemens/element-translate-ng/translate'; import { SkipLinkService } from './skip-link.service'; /** * Directive to mark an element as a target for a skip link. * If this directive is applied to a none interactive element, a tabindex of -1 must be added manually. */ @Directive({ selector: '[siSkipLinkTarget]' }) export class SiSkipLinkTargetDirective implements OnInit, OnDestroy { /** * The name of the skip link target which will be shown in the skip link. */ readonly name = input.required<TranslatableString>({ alias: 'siSkipLinkTarget' }); private skipLinkService = inject(SkipLinkService); private elementRef = inject<ElementRef<HTMLElement>>(ElementRef); ngOnInit(): void { this.skipLinkService.registerLink(this); } ngOnDestroy(): void { this.skipLinkService.unregisterLink(this); } /** * Call this methode to "activate" a skip link target. It will focus this element and scroll it into the view. */ jumpToThisTarget(): void { this.elementRef.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' }); this.elementRef.nativeElement.focus(); } } |