@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
TypeScript
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>;
}