UNPKG

ag-charts-community

Version:

Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue

51 lines (50 loc) 1.96 kB
import type { ElementID } from 'ag-charts-core'; import type { CollapseMode } from './collapseMode'; export type CollapseWidgetEvent = { type: 'collapse-widget'; mode: CollapseMode; sourceEvent?: never; }; export type ExpandWidgetEvent = { type: 'expand-widget'; sourceEvent?: never; }; export type ExpandControlledWidgetEvent = { type: 'expand-controlled-widget'; controlled: ExpandableWidget; sourceEvent?: never; }; export type ExpandOpts = { readonly sourceEvent: Event; readonly controller?: never; readonly overrideFocusVisible?: boolean; } | { readonly sourceEvent?: never; readonly controller: ExpansionControllerWidget<HTMLElement>; readonly overrideFocusVisible?: boolean; }; export type ExpandControlledOpts = { readonly overrideFocusVisible?: boolean; }; export type CollapseOpts = { readonly mode: CollapseMode; }; interface WidgetProps<TElement extends HTMLElement> { destroy(): void; getElement(): TElement; addListener(type: 'collapse-widget', listener: (ev: CollapseWidgetEvent, current: this) => unknown): () => void; addListener(type: 'expand-widget', listener: (ev: ExpandWidgetEvent, current: this) => unknown): () => void; removeListener(type: 'collapse-widget', listener: (ev: CollapseWidgetEvent, current: this) => unknown): void; removeListener(type: 'expand-widget', listener: (ev: ExpandWidgetEvent, current: this) => unknown): void; } export interface ExpandableWidget<TElement extends HTMLElement = HTMLElement> extends WidgetProps<TElement> { id?: ElementID; expand(opts: ExpandOpts): void; collapse(opts?: CollapseOpts): void; } export interface ExpansionControllerWidget<TElement extends HTMLElement = HTMLElement> { setControlled(controls: ExpandableWidget<TElement> | undefined): void; getControlled(): ExpandableWidget<TElement> | undefined; expandControlled(opts?: ExpandControlledOpts): void; } export {};