UNPKG

@ux-aspects/ux-aspects

Version:

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

36 lines (35 loc) 1.65 kB
import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y'; import { Renderer2 } from '@angular/core'; import { BehaviorSubject, Subject } from 'rxjs'; import { FocusIndicatorOptions } from './focus-indicator-options.interface'; import { FocusIndicatorOriginService } from './focus-indicator-origin/focus-indicator-origin.service'; export declare class FocusIndicator { private readonly _element; private readonly _focusMonitor; private readonly _renderer; private _options; private readonly _focusIndicatorOrigin; /** Apply a class when the item is focused */ set isFocused(isFocused: boolean); /** Provide a convenience getter to allow access to focus state without a subscription */ get isFocused(): boolean; /** An observable to monitor the focus state */ readonly isFocused$: BehaviorSubject<boolean>; /** An observable to monitor the focus origin */ readonly origin$: Subject<FocusOrigin>; /** Remove all subscriptions on destroy */ private readonly _onDestroy; constructor(_element: HTMLElement, _focusMonitor: FocusMonitor, _renderer: Renderer2, _options: FocusIndicatorOptions, _focusIndicatorOrigin: FocusIndicatorOriginService); /** Setup the focus monitoring */ private initialise; /** Focus the element with a specific origin */ focus(origin?: FocusOrigin, options?: { preventScroll?: boolean; }): void; /** Tear down the subscriptions */ destroy(): void; /** Allow the options to be updates */ setOptions(options: FocusIndicatorOptions): void; /** Monitor changes to an elements focus state */ private onFocusChange; }