ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
110 lines (109 loc) • 5.09 kB
TypeScript
import { AgDocument, type StrictHTMLElement } from 'ag-charts-core';
import type { AgChartThemeParams } from 'ag-charts-types';
import type { EventsHub } from '../core/eventsHub';
import { BBox } from '../scene/bbox';
import { BaseManager } from '../util/baseManager';
import { type Size } from '../util/sizeMonitor';
import { DOMElementProxy } from './domElementProxy';
declare const DOM_ELEMENT_CLASSES: readonly ["styles", "canvas", "canvas-background", "canvas-center", "canvas-container", "canvas-overlay", "canvas-proxy", "series-area", "tooltip-container"];
type DOMElementClass = (typeof DOM_ELEMENT_CLASSES)[number];
type DOMInsertOption = {
where: InsertPosition;
query: string;
};
export declare class DOMManager extends BaseManager {
private readonly eventsHub;
private readonly chart;
private readonly agDocument;
private readonly styleContainer?;
private readonly skipCss?;
readonly mode: 'normal' | 'minimal';
static readonly className = "DOMManager";
private static readonly batchedUpdateContainer;
private static readonly headStyles;
readonly anchorName: string;
private readonly rootElements;
private readonly styles;
private readonly element;
private pendingContainer?;
private container?;
private documentRoot?;
private initiallyConnected?;
containerSize?: Size;
private readonly tabGuards?;
private readonly observer?;
private readonly sizeMonitor;
private readonly cursorState;
private _lastCursor;
private _lastCenterSize;
private readonly deferredProxies;
private readonly elementProxy;
private readonly deferredMode;
private minWidth;
private minHeight;
private enableRtl?;
private _isRtl;
private _cachedCanvasRect;
private _cachedRawOverlayRect;
private _cachedScrollableContainer;
private _pendingFlush?;
private _deferring;
constructor(eventsHub: EventsHub, chart: {
styleNonce?: string;
}, agDocument: AgDocument, initialContainer?: HTMLElement, styleContainer?: HTMLElement | undefined, skipCss?: boolean | undefined, mode?: 'normal' | 'minimal');
private initDOM;
private initRootElements;
destroy(): void;
private scheduleFlush;
private flushDeferredProxies;
private applyBatchedUpdateContainer;
private updateStylesLocation;
setSizeOptions(minWidth?: number, minHeight?: number, optionsWidth?: number, optionsHeight?: number): void;
private updateContainerSize;
setTabGuardIndex(tabIndex: number): void;
setContainer(newContainer?: HTMLElement): void;
updateContainer(): void;
setThemeClass(themeClassName: string): void;
setThemeParameters(params: AgChartThemeParams): void;
setModuleCSSVariables(module: string, component: string | undefined, modifier: string | undefined, variables: Record<string, string | number>, numericKeys?: string[]): void;
private setCSSVariables;
updateCanvasLabel(ariaLabel: string): void;
private getEventElement;
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): () => void;
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
/** Get the main chart area client bound rect. */
getBoundingClientRect(): DOMRect;
/**
* Get the client bounding rect for overlay elements that might float outside the bounds of the
* main chart area.
*/
getOverlayClientRect(): DOMRect;
private findScrollableContainer;
private getRawOverlayClientRect;
private getShadowDocumentRoot;
getParent(domElementClass: DOMElementClass): HTMLElement;
getChildBoundingClientRect(type: DOMElementClass): BBox;
isManagedChildDOMElement(el: HTMLElement, domElementClass: DOMElementClass, id: string): boolean;
contains(element: HTMLElement, domElementClass?: DOMElementClass): boolean;
addStyles(id: string, styles: string): void;
removeStyles(id: string): void;
updateCursor(callerId: string, style?: string): void;
getCursor(): string;
get isRtl(): boolean;
setEnableRtl(enableRtl?: boolean): void;
private updateRtl;
addChild(domElementClass: DOMElementClass, id: string, child?: HTMLElement, insert?: DOMInsertOption): StrictHTMLElement;
addProxyChild(domElementClass: DOMElementClass, id: string): DOMElementProxy;
addDeferredProxyChild(domElementClass: DOMElementClass, id: string): DOMElementProxy;
setDeferring(active: boolean): void;
removeChild(domElementClass: DOMElementClass, id: string): void;
incrementDataCounter(name: string): void;
setDataBoolean(name: string, value: boolean): void;
setDataNumber(name: string, value: number): void;
getDocument(): AgDocument;
private invalidateRectCaches;
private invalidateAllCaches;
private setupGlobalListeners;
private updateContainerClassName;
}
export {};