UNPKG

ag-grid-community

Version:

Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue

103 lines (102 loc) 3.23 kB
import { RowNode } from "../entities/rowNode"; import { Column } from "../entities/column"; import { BeanStub } from "../context/beanStub"; import { IAfterGuiAttachedParams } from "../interfaces/iAfterGuiAttachedParams"; import { AgPromise } from "../utils"; import { CtrlsService } from "../ctrlsService"; export interface PopupEventParams { originalMouseEvent?: MouseEvent | Touch | null; mouseEvent?: MouseEvent; touchEvent?: TouchEvent; keyboardEvent?: KeyboardEvent; } export interface AgPopup { element: HTMLElement; wrapper: HTMLElement; hideFunc: () => void; isAnchored: boolean; stopAnchoringPromise: AgPromise<Function>; instanceId: number; } export interface AddPopupParams { modal?: boolean; eChild: HTMLElement; closeOnEsc?: boolean; closedCallback?: (e?: MouseEvent | TouchEvent | KeyboardEvent) => void; click?: MouseEvent | Touch | null; alwaysOnTop?: boolean; afterGuiAttached?: (params: IAfterGuiAttachedParams) => void; positionCallback?: () => void; anchorToElement?: HTMLElement; ariaLabel: string; } export interface AddPopupResult { hideFunc: () => void; stopAnchoringPromise: AgPromise<Function>; } export declare class PopupService extends BeanStub { private environment; private focusService; ctrlsService: CtrlsService; private gridCtrl; private popupList; private postConstruct; getPopupParent(): HTMLElement; positionPopupForMenu(params: { eventSource: HTMLElement; ePopup: HTMLElement; }): void; positionPopupUnderMouseEvent(params: { rowNode?: RowNode | null; column?: Column | null; type: string; mouseEvent: MouseEvent | Touch; nudgeX?: number; nudgeY?: number; ePopup: HTMLElement; }): void; private calculatePointerAlign; positionPopupUnderComponent(params: { type: string; eventSource: HTMLElement; ePopup: HTMLElement; column?: Column; rowNode?: RowNode; nudgeX?: number; nudgeY?: number; alignSide?: 'left' | 'right'; keepWithinBounds?: boolean; }): void; positionPopupOverComponent(params: { type: string; eventSource: HTMLElement; ePopup: HTMLElement; column: Column; rowNode: RowNode; nudgeX?: number; nudgeY?: number; keepWithinBounds?: boolean; }): void; private callPostProcessPopup; positionPopup(params: { ePopup: HTMLElement; nudgeX?: number; nudgeY?: number; x: number; y: number; keepWithinBounds?: boolean; }): void; getActivePopups(): HTMLElement[]; getPopupList(): AgPopup[]; private getParentRect; private keepXYWithinBounds; private keepPopupPositionedRelativeTo; addPopup(params: AddPopupParams): AddPopupResult; hasAnchoredPopup(): boolean; private isEventFromCurrentPopup; isElementWithinCustomPopup(el: HTMLElement): boolean; private isEventSameChainAsOriginalEvent; private getWrapper; setAlwaysOnTop(ePopup: HTMLElement, alwaysOnTop?: boolean): void; bringPopupToFront(ePopup: HTMLElement): void; }