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