UNPKG

@ux-aspects/ux-aspects

Version:

Open source user interface framework for building modern, responsive, mobile big data applications

71 lines (70 loc) 3.8 kB
import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y'; import { EventEmitter, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; import { FocusIndicatorService } from '../focus-indicator/focus-indicator.service'; import * as i0 from "@angular/core"; export declare class TabbableListItemDirective implements FocusableOption, OnDestroy { /** Access the service to programmatically control focus indicators */ readonly focusIndicatorService: FocusIndicatorService; /** Access the tabbable list service */ private readonly _tabbableList; /** Access the tabbable item element */ private readonly _elementRef; /** Access the service responsible for handling focus in child elements */ private readonly _managedFocusContainerService; /** Access the service which can provide us with browser identification */ private readonly _platform; /** Access the change detector to ensure tabindex gets updated as expects */ private readonly _changeDetector; /** Access the focus origin if one is provided */ private readonly _focusOriginService; /** Access the renderer to make manual dom manipulations */ private readonly _renderer; /** Indicate the parent tabbable list item if one is present. */ parent: TabbableListItemDirective; rank: number; /** Indicate if this item is disabled */ disabled: boolean; /** Indicate if the item is expanded if used as a hierarchical item. */ expanded: boolean; /** Provide a unique key to help identify items when used in a virtual list */ set key(key: any); get key(): any; /** Emit when the expanded state changes. */ expandedChange: EventEmitter<boolean>; /** Emit when the element receives focus via the tabbable list. */ activated: EventEmitter<FocusOrigin>; get tabindex(): number; /** Give each tabbable item a unique id */ id: number; /** Each item in the list needs to be initialised by the service. When the item QueryList changes this is used to identify which items previously existed and which are new */ initialized: boolean; /** Store a list of all child tabbable items */ children: TabbableListItemDirective[]; /** Emit whenever the expanded state changes */ keyboardExpanded$: Subject<boolean>; /** Automatically unsubscribe from all observables */ private readonly _onDestroy; /** Store a reference to the focus indicator instance */ private readonly _focusIndicator; /** Store the current key - it may change in a ngFor/uxVirtualFor if the cell is reused. */ private _key; /** Store a default key to use if one is not provided */ private readonly _defaultKey; /** Determine if this element has a focus indicator visible */ private _focusOrigin; constructor(); onInit(): void; ngOnDestroy(): void; focus(): void; onFocus(): void; onBlur(): void; onKeydown(event: KeyboardEvent): void; getFocused(): boolean; /** We can programmatically focus an element but may want a different origin than 'programmatic' */ focusWithOrigin(origin: FocusOrigin, preventScroll?: boolean): void; private isTabbable; private setTabIndex; static ɵfac: i0.ɵɵFactoryDeclaration<TabbableListItemDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<TabbableListItemDirective, "[uxTabbableListItem]", ["ux-tabbable-list-item"], { "parent": { "alias": "parent"; "required": false; }; "rank": { "alias": "rank"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "key": { "alias": "key"; "required": false; }; }, { "expandedChange": "expandedChange"; "activated": "activated"; }, never, never, false, never>; }