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 | 1x 1012x 1012x 1012x 292x 2x | /** * Copyright (c) Siemens 2016 - 2025 * SPDX-License-Identifier: MIT */ import { Directive, HostBinding, HostListener } from '@angular/core'; import { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive'; import { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive'; @Directive({ selector: 'input[siAutocomplete]', host: { role: 'combobox', 'aria-autocomplete': 'list' }, exportAs: 'siAutocomplete' }) export class SiAutocompleteDirective<T> { /** @internal */ listbox?: SiAutocompleteListboxDirective<T>; @HostBinding('attr.aria-activedescendant') protected get activeDescendant(): string { return this.listbox?.active?.id() ?? ''; } @HostBinding('attr.aria-controls') protected get ariaControls(): string | undefined { return this.listbox?.id(); } @HostBinding('attr.aria-expanded') protected get expanded(): boolean { return !!this.listbox; } @HostListener('keydown', ['$event']) protected keydown(event: KeyboardEvent): void { this.listbox?.onKeydown(event); } get active(): SiAutocompleteOptionDirective<T> | undefined | null { return this.listbox?.active; } } |