ag-grid-community
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
68 lines (67 loc) • 3.1 kB
TypeScript
import { AgBeanStub } from '../core/agBeanStub';
import type { AgCoreBeanCollection } from '../interfaces/agCoreBeanCollection';
import type { BaseEvents } from '../interfaces/baseEvents';
import type { BaseProperties } from '../interfaces/baseProperties';
import type { IPropertiesService } from '../interfaces/iProperties';
import type { StopPropagationCallbacks } from './agManagedFocusFeature';
export declare const TabGuardClassNames: {
readonly TAB_GUARD: "ag-tab-guard";
readonly TAB_GUARD_TOP: "ag-tab-guard-top";
readonly TAB_GUARD_BOTTOM: "ag-tab-guard-bottom";
};
export interface ITabGuard {
setTabIndex(tabIndex?: string): void;
}
export interface TabGuardCtrlParams {
comp: ITabGuard;
eTopGuard: HTMLElement;
eBottomGuard: HTMLElement;
eFocusableElement: HTMLElement;
focusTrapActive?: boolean;
forceFocusOutWhenTabGuardsAreEmpty?: boolean;
isFocusableContainer?: boolean;
focusInnerElement?: (fromBottom: boolean) => boolean;
onFocusIn?: (event: FocusEvent) => void;
onFocusOut?: (event: FocusEvent) => void;
shouldStopEventPropagation?: () => boolean;
onTabKeyDown?: (e: KeyboardEvent) => void;
handleKeyDown?: (e: KeyboardEvent) => void;
isEmpty?: () => boolean;
}
export declare class AgTabGuardCtrl<TBeanCollection extends AgCoreBeanCollection<TProperties, TGlobalEvents, TCommon, TPropertiesService>, TProperties extends BaseProperties, TGlobalEvents extends BaseEvents, TCommon, TPropertiesService extends IPropertiesService<TProperties, TCommon>> extends AgBeanStub<TBeanCollection, TProperties, TGlobalEvents, TCommon, TPropertiesService> {
private readonly stopPropagationCallbacks?;
private readonly comp;
private readonly eTopGuard;
private readonly eBottomGuard;
private readonly eFocusableElement;
private readonly focusTrapActive;
private readonly forceFocusOutWhenTabGuardsAreEmpty;
private readonly isFocusableContainer;
private readonly providedFocusInnerElement?;
private readonly providedFocusIn?;
private readonly providedFocusOut?;
private readonly providedShouldStopEventPropagation?;
private readonly providedOnTabKeyDown?;
private readonly providedHandleKeyDown?;
private readonly providedIsEmpty?;
private skipTabGuardFocus;
private forcingFocusOut;
private allowFocus;
constructor(params: TabGuardCtrlParams, stopPropagationCallbacks?: StopPropagationCallbacks | undefined);
postConstruct(): void;
private handleKeyDown;
private tabGuardsAreActive;
private shouldStopEventPropagation;
private activateTabGuards;
private deactivateTabGuards;
private onFocus;
private findNextElementOutsideAndFocus;
private onFocusIn;
private onFocusOut;
onTabKeyDown(e: KeyboardEvent): void;
focusInnerElement(fromBottom?: boolean): boolean;
getNextFocusableElement(backwards?: boolean): HTMLElement | null;
forceFocusOutOfContainer(up?: boolean): void;
isTabGuard(element: HTMLElement, bottom?: boolean): boolean;
setAllowFocus(allowFocus: boolean): void;
}