123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- import * as i0 from '@angular/core';
- import { NgZone, Injector, OnDestroy, AfterContentInit, OnChanges, DoCheck, SimpleChanges, InjectionToken } from '@angular/core';
- import { ObserversModule } from './observers/index.js';
- import { C as CdkMonitorFocus } from './focus-monitor.d-CvvJeQRc.js';
- /**
- * Configuration for the isFocusable method.
- */
- declare class IsFocusableConfig {
- /**
- * Whether to count an element as focusable even if it is not currently visible.
- */
- ignoreVisibility: boolean;
- }
- /**
- * Utility for checking the interactivity of an element, such as whether it is focusable or
- * tabbable.
- */
- declare class InteractivityChecker {
- private _platform;
- constructor(...args: unknown[]);
- /**
- * Gets whether an element is disabled.
- *
- * @param element Element to be checked.
- * @returns Whether the element is disabled.
- */
- isDisabled(element: HTMLElement): boolean;
- /**
- * Gets whether an element is visible for the purposes of interactivity.
- *
- * This will capture states like `display: none` and `visibility: hidden`, but not things like
- * being clipped by an `overflow: hidden` parent or being outside the viewport.
- *
- * @returns Whether the element is visible.
- */
- isVisible(element: HTMLElement): boolean;
- /**
- * Gets whether an element can be reached via Tab key.
- * Assumes that the element has already been checked with isFocusable.
- *
- * @param element Element to be checked.
- * @returns Whether the element is tabbable.
- */
- isTabbable(element: HTMLElement): boolean;
- /**
- * Gets whether an element can be focused by the user.
- *
- * @param element Element to be checked.
- * @param config The config object with options to customize this method's behavior
- * @returns Whether the element is focusable.
- */
- isFocusable(element: HTMLElement, config?: IsFocusableConfig): boolean;
- static ɵfac: i0.ɵɵFactoryDeclaration<InteractivityChecker, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<InteractivityChecker>;
- }
- /**
- * Class that allows for trapping focus within a DOM element.
- *
- * This class currently uses a relatively simple approach to focus trapping.
- * It assumes that the tab order is the same as DOM order, which is not necessarily true.
- * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.
- */
- declare class FocusTrap {
- readonly _element: HTMLElement;
- private _checker;
- readonly _ngZone: NgZone;
- readonly _document: Document;
- /** @breaking-change 20.0.0 param to become required */
- readonly _injector?: Injector | undefined;
- private _startAnchor;
- private _endAnchor;
- private _hasAttached;
- protected startAnchorListener: () => boolean;
- protected endAnchorListener: () => boolean;
- /** Whether the focus trap is active. */
- get enabled(): boolean;
- set enabled(value: boolean);
- protected _enabled: boolean;
- constructor(_element: HTMLElement, _checker: InteractivityChecker, _ngZone: NgZone, _document: Document, deferAnchors?: boolean,
- /** @breaking-change 20.0.0 param to become required */
- _injector?: Injector | undefined);
- /** Destroys the focus trap by cleaning up the anchors. */
- destroy(): void;
- /**
- * Inserts the anchors into the DOM. This is usually done automatically
- * in the constructor, but can be deferred for cases like directives with `*ngIf`.
- * @returns Whether the focus trap managed to attach successfully. This may not be the case
- * if the target element isn't currently in the DOM.
- */
- attachAnchors(): boolean;
- /**
- * Waits for the zone to stabilize, then focuses the first tabbable element.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusInitialElementWhenReady(options?: FocusOptions): Promise<boolean>;
- /**
- * Waits for the zone to stabilize, then focuses
- * the first tabbable element within the focus trap region.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusFirstTabbableElementWhenReady(options?: FocusOptions): Promise<boolean>;
- /**
- * Waits for the zone to stabilize, then focuses
- * the last tabbable element within the focus trap region.
- * @returns Returns a promise that resolves with a boolean, depending
- * on whether focus was moved successfully.
- */
- focusLastTabbableElementWhenReady(options?: FocusOptions): Promise<boolean>;
- /**
- * Get the specified boundary element of the trapped region.
- * @param bound The boundary to get (start or end of trapped region).
- * @returns The boundary element.
- */
- private _getRegionBoundary;
- /**
- * Focuses the element that should be focused when the focus trap is initialized.
- * @returns Whether focus was moved successfully.
- */
- focusInitialElement(options?: FocusOptions): boolean;
- /**
- * Focuses the first tabbable element within the focus trap region.
- * @returns Whether focus was moved successfully.
- */
- focusFirstTabbableElement(options?: FocusOptions): boolean;
- /**
- * Focuses the last tabbable element within the focus trap region.
- * @returns Whether focus was moved successfully.
- */
- focusLastTabbableElement(options?: FocusOptions): boolean;
- /**
- * Checks whether the focus trap has successfully been attached.
- */
- hasAttached(): boolean;
- /** Get the first tabbable element from a DOM subtree (inclusive). */
- private _getFirstTabbableElement;
- /** Get the last tabbable element from a DOM subtree (inclusive). */
- private _getLastTabbableElement;
- /** Creates an anchor element. */
- private _createAnchor;
- /**
- * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.
- * @param isEnabled Whether the focus trap is enabled.
- * @param anchor Anchor on which to toggle the tabindex.
- */
- private _toggleAnchorTabIndex;
- /**
- * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.
- * @param enabled: Whether the anchors should trap Tab.
- */
- protected toggleAnchors(enabled: boolean): void;
- /** Executes a function when the zone is stable. */
- private _executeOnStable;
- }
- /**
- * Factory that allows easy instantiation of focus traps.
- */
- declare class FocusTrapFactory {
- private _checker;
- private _ngZone;
- private _document;
- private _injector;
- constructor(...args: unknown[]);
- /**
- * Creates a focus-trapped region around the given element.
- * @param element The element around which focus will be trapped.
- * @param deferCaptureElements Defers the creation of focus-capturing elements to be done
- * manually by the user.
- * @returns The created focus trap instance.
- */
- create(element: HTMLElement, deferCaptureElements?: boolean): FocusTrap;
- static ɵfac: i0.ɵɵFactoryDeclaration<FocusTrapFactory, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<FocusTrapFactory>;
- }
- /** Directive for trapping focus within a region. */
- declare class CdkTrapFocus implements OnDestroy, AfterContentInit, OnChanges, DoCheck {
- private _elementRef;
- private _focusTrapFactory;
- /** Underlying FocusTrap instance. */
- focusTrap: FocusTrap;
- /** Previously focused element to restore focus to upon destroy when using autoCapture. */
- private _previouslyFocusedElement;
- /** Whether the focus trap is active. */
- get enabled(): boolean;
- set enabled(value: boolean);
- /**
- * Whether the directive should automatically move focus into the trapped region upon
- * initialization and return focus to the previous activeElement upon destruction.
- */
- autoCapture: boolean;
- constructor(...args: unknown[]);
- ngOnDestroy(): void;
- ngAfterContentInit(): void;
- ngDoCheck(): void;
- ngOnChanges(changes: SimpleChanges): void;
- private _captureFocus;
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkTrapFocus, never>;
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkTrapFocus, "[cdkTrapFocus]", ["cdkTrapFocus"], { "enabled": { "alias": "cdkTrapFocus"; "required": false; }; "autoCapture": { "alias": "cdkTrapFocusAutoCapture"; "required": false; }; }, {}, never, never, true, never>;
- static ngAcceptInputType_enabled: unknown;
- static ngAcceptInputType_autoCapture: unknown;
- }
- /** Possible politeness levels. */
- type AriaLivePoliteness = 'off' | 'polite' | 'assertive';
- declare const LIVE_ANNOUNCER_ELEMENT_TOKEN: InjectionToken<HTMLElement | null>;
- /**
- * @docs-private
- * @deprecated No longer used, will be removed.
- * @breaking-change 21.0.0
- */
- declare function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY(): null;
- /** Object that can be used to configure the default options for the LiveAnnouncer. */
- interface LiveAnnouncerDefaultOptions {
- /** Default politeness for the announcements. */
- politeness?: AriaLivePoliteness;
- /** Default duration for the announcement messages. */
- duration?: number;
- }
- /** Injection token that can be used to configure the default options for the LiveAnnouncer. */
- declare const LIVE_ANNOUNCER_DEFAULT_OPTIONS: InjectionToken<LiveAnnouncerDefaultOptions>;
- declare class LiveAnnouncer implements OnDestroy {
- private _ngZone;
- private _defaultOptions;
- private _liveElement;
- private _document;
- private _previousTimeout;
- private _currentPromise;
- private _currentResolve;
- constructor(...args: unknown[]);
- /**
- * Announces a message to screen readers.
- * @param message Message to be announced to the screen reader.
- * @returns Promise that will be resolved when the message is added to the DOM.
- */
- announce(message: string): Promise<void>;
- /**
- * Announces a message to screen readers.
- * @param message Message to be announced to the screen reader.
- * @param politeness The politeness of the announcer element.
- * @returns Promise that will be resolved when the message is added to the DOM.
- */
- announce(message: string, politeness?: AriaLivePoliteness): Promise<void>;
- /**
- * Announces a message to screen readers.
- * @param message Message to be announced to the screen reader.
- * @param duration Time in milliseconds after which to clear out the announcer element. Note
- * that this takes effect after the message has been added to the DOM, which can be up to
- * 100ms after `announce` has been called.
- * @returns Promise that will be resolved when the message is added to the DOM.
- */
- announce(message: string, duration?: number): Promise<void>;
- /**
- * Announces a message to screen readers.
- * @param message Message to be announced to the screen reader.
- * @param politeness The politeness of the announcer element.
- * @param duration Time in milliseconds after which to clear out the announcer element. Note
- * that this takes effect after the message has been added to the DOM, which can be up to
- * 100ms after `announce` has been called.
- * @returns Promise that will be resolved when the message is added to the DOM.
- */
- announce(message: string, politeness?: AriaLivePoliteness, duration?: number): Promise<void>;
- /**
- * Clears the current text from the announcer element. Can be used to prevent
- * screen readers from reading the text out again while the user is going
- * through the page landmarks.
- */
- clear(): void;
- ngOnDestroy(): void;
- private _createLiveElement;
- /**
- * Some browsers won't expose the accessibility node of the live announcer element if there is an
- * `aria-modal` and the live announcer is outside of it. This method works around the issue by
- * pointing the `aria-owns` of all modals to the live announcer element.
- */
- private _exposeAnnouncerToModals;
- static ɵfac: i0.ɵɵFactoryDeclaration<LiveAnnouncer, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<LiveAnnouncer>;
- }
- /**
- * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility
- * with a wider range of browsers and screen readers.
- */
- declare class CdkAriaLive implements OnDestroy {
- private _elementRef;
- private _liveAnnouncer;
- private _contentObserver;
- private _ngZone;
- /** The aria-live politeness level to use when announcing messages. */
- get politeness(): AriaLivePoliteness;
- set politeness(value: AriaLivePoliteness);
- private _politeness;
- /** Time in milliseconds after which to clear out the announcer element. */
- duration: number;
- private _previousAnnouncedText?;
- private _subscription;
- constructor(...args: unknown[]);
- ngOnDestroy(): void;
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkAriaLive, never>;
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkAriaLive, "[cdkAriaLive]", ["cdkAriaLive"], { "politeness": { "alias": "cdkAriaLive"; "required": false; }; "duration": { "alias": "cdkAriaLiveDuration"; "required": false; }; }, {}, never, never, true, never>;
- }
- declare class A11yModule {
- constructor();
- static ɵfac: i0.ɵɵFactoryDeclaration<A11yModule, never>;
- static ɵmod: i0.ɵɵNgModuleDeclaration<A11yModule, never, [typeof ObserversModule, typeof CdkAriaLive, typeof CdkTrapFocus, typeof CdkMonitorFocus], [typeof CdkAriaLive, typeof CdkTrapFocus, typeof CdkMonitorFocus]>;
- static ɵinj: i0.ɵɵInjectorDeclaration<A11yModule>;
- }
- export { A11yModule as A, CdkTrapFocus as C, FocusTrapFactory as F, InteractivityChecker as I, LiveAnnouncer as L, FocusTrap as a, IsFocusableConfig as b, CdkAriaLive as c, LIVE_ANNOUNCER_ELEMENT_TOKEN as e, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY as f, LIVE_ANNOUNCER_DEFAULT_OPTIONS as h };
- export type { AriaLivePoliteness as d, LiveAnnouncerDefaultOptions as g };
|