ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
66 lines (65 loc) • 3.3 kB
TypeScript
import type { BoxBounds, DynamicContext } from 'ag-charts-core';
import type { EventsHub } from '../../core/eventsHub';
import type { LocaleManager } from '../../locale/localeManager';
import type { ChartRegistry } from '../../module/moduleContext';
import { BBox } from '../../scene/bbox';
import { Listeners } from '../../util/listeners';
import type { ExpansionControllerWidget } from '../../widget/expandableWidget';
import type { RovingDirection } from '../../widget/rovingDirection';
import { ToolbarWidget } from '../../widget/toolbarWidget';
import type { MouseWidgetEvent } from '../../widget/widgetEvents';
import { ToolbarButtonWidget, type ToolbarButtonWidgetOptions } from './toolbarButtonWidget';
type ButtonInteractionOptions = Parameters<ToolbarButtonWidget['update']>[1];
export interface ToolbarButtonOptions extends ToolbarButtonWidgetOptions {
section?: string;
}
export interface ToolbarEventMap<ButtonOptions extends ToolbarButtonOptions = ToolbarButtonOptions> {
'button-pressed': {
event: MouseWidgetEvent<'click'>;
button: ButtonOptions & {
index: number;
};
buttonBounds: BoxBounds;
buttonWidget: ExpansionControllerWidget<HTMLElement>;
};
'button-focused': {
button: {
index: number;
};
};
}
export declare abstract class BaseToolbar<ButtonOptions extends ToolbarButtonOptions = ToolbarButtonOptions, ButtonWidget extends ToolbarButtonWidget = ToolbarButtonWidget, EventMap extends ToolbarEventMap<ButtonOptions> = ToolbarEventMap<ButtonOptions>> extends ToolbarWidget {
private ariaLabelId;
horizontalSpacing: number;
verticalSpacing: number;
protected readonly events: Listeners<keyof EventMap & string, any>;
protected hasPrefix: boolean;
private readonly buttonWidgets;
private expanded?;
protected readonly eventsHub: EventsHub;
protected readonly localeManager: LocaleManager;
private readonly domManager;
private readonly updateAriaLabel;
constructor({ eventsHub, localeManager, domManager }: DynamicContext<ChartRegistry>, ariaLabelId: string, orientation: RovingDirection);
setAriaLabelId(ariaLabelId: string): void;
addToolbarListener<K extends keyof EventMap & string>(eventType: K, handler: (event: EventMap[K]) => void): () => void;
clearButtons(): void;
protected getInteractionOptions(): ButtonInteractionOptions;
updateButtons(buttons: Array<ButtonOptions>): void;
updateButtonByIndex(index: number, button: ButtonOptions): void;
clearActiveButton(): void;
toggleActiveButtonByIndex(index: number): void;
toggleButtonEnabledByIndex(index: number, enabled: boolean): void;
toggleSwitchCheckedByIndex(index: number, checked: boolean): void;
getButtonBounds(): BBox[];
getButtonWidget(index: number): ButtonWidget | undefined;
setButtonHiddenByIndex(index: number, hidden: boolean): void;
protected getButtonWidgetBounds(buttonWidget: ButtonWidget): BBox;
private refreshButtonClasses;
private createButton;
protected abstract createButtonWidget(): ButtonWidget;
}
export declare class Toolbar<ButtonOptions extends ToolbarButtonOptions> extends BaseToolbar<ButtonOptions> {
protected createButtonWidget(): ToolbarButtonWidget;
}
export {};