ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
77 lines (76 loc) • 3.54 kB
TypeScript
import { type BaseAttributeTypeMap, type BaseStyleTypeMap } from '../util/attributeUtil';
import type { BBoxValues } from '../util/bboxinterface';
import { type WidgetEventMap } from './widgetEvents';
import { WidgetListenerHTML } from './widgetListenerHTML';
import { WidgetListenerInternal } from './widgetListenerInternal';
type EventMap = WidgetEventMap;
type EventType = keyof WidgetEventMap;
interface IWidget<TElement extends HTMLElement> {
index: number;
domIndex?: number;
parent?: Widget;
destroy(): void;
getElement(): TElement;
}
export type BeforeWidget<T extends IWidget<HTMLElement>> = T & {
domIndex: number;
};
declare abstract class WidgetBounds {
protected readonly elem: HTMLElement;
protected elemContainer?: HTMLDivElement;
constructor(elem: HTMLElement);
setBounds(bounds: Partial<BBoxValues>): void;
getBounds(): BBoxValues;
protected static setElementContainer(widget: WidgetBounds, elemContainer: HTMLDivElement): void;
}
export declare abstract class Widget<TElement extends HTMLElement = HTMLElement, TChildWidget extends IWidget<HTMLElement> = IWidget<HTMLElement>> extends WidgetBounds implements IWidget<TElement> {
protected readonly elem: TElement;
index: number;
domIndex?: number;
parent?: Widget;
protected readonly children: TChildWidget[];
protected htmlListener?: WidgetListenerHTML;
protected internalListener?: WidgetListenerInternal;
constructor(elem: TElement);
protected abstract destructor(): void;
getElement(): TElement;
getBoundingClientRect(): DOMRect;
get clientWidth(): number;
get clientHeight(): number;
destroy(): void;
setHidden(hidden: boolean): void;
isHidden(): boolean;
setCursor(cursor: BaseStyleTypeMap['cursor'] | undefined): void;
setTextContent(textContent: string | undefined): void;
setAriaDescribedBy(ariaDescribedBy: BaseAttributeTypeMap['aria-describedby'] | undefined): void;
setAriaHidden(ariaHidden: BaseAttributeTypeMap['aria-hidden'] | undefined): void;
setAriaLabel(ariaLabel: BaseAttributeTypeMap['aria-label'] | undefined): void;
setInnerHTML(html: string): void;
isDisabled(): boolean;
private parseFloat;
cssLeft(): number;
cssTop(): number;
cssWidth(): number;
cssHeight(): number;
focus(): void;
setPreventsDefault(preventDefault: boolean): void;
setTabIndex(tabIndex: BaseAttributeTypeMap['tabindex']): void;
addChild(child: TChildWidget): void;
removeChild(child: TChildWidget): void;
moveChild(child: TChildWidget, domIndex: number): void;
addClass(...tokens: string[]): void;
removeClass(...tokens: string[]): void;
toggleClass(token: string, force?: boolean): void;
protected appendOrInsert(child: HTMLElement, before: TChildWidget | undefined): void;
protected addChildToDOM(child: TChildWidget, before: TChildWidget | undefined): void;
protected removeChildFromDOM(child: TChildWidget): void;
protected onChildAdded(_child: TChildWidget): void;
protected onChildRemoved(_child: TChildWidget): void;
private getBefore;
addListener<K extends EventType>(type: K, listener: (ev: EventMap[K], current: typeof this) => unknown): () => void;
removeListener<K extends EventType>(type: K, listener: (ev: EventMap[K], current: typeof this) => unknown): void;
setDragTouchEnabled(dragTouchEnabled: boolean): void;
private onDispatch;
static addWindowEvent(_type: 'page-left', listener: () => unknown): () => void;
}
export {};