abc-charts
Version:
Widget render for using in 'ABC consulting' projects
88 lines (87 loc) • 4.18 kB
TypeScript
import { IChart, IChartData, ISettings, IWidgetVariables } from "../interfaces";
import { WidgetConfigInner } from "./widgetConfig";
import { IWidgetSettings } from "../widgetSettings";
import { WidgetOptions } from "./widgetOptions";
declare type EventBusFunc = (varName: string, value: any, dataSourceId: number) => Promise<boolean>;
export declare type AddVarFunc<T> = (dataSourceIndex: number, name: T, description: string, hint: string) => void;
export declare abstract class Chart implements IChart {
protected config: WidgetConfigInner;
protected options: WidgetOptions;
protected widgetSettings: IWidgetSettings;
protected chartData: IChartData;
protected loading: boolean;
protected uniqId: string;
private resizeObserver;
private readonly template;
initialized: boolean;
abstract run(): void;
abstract getSettings(): IWidgetSettings;
abstract getVariables(): IWidgetVariables;
abstract getStyles(): ISettings;
getTemplate(): string | null;
onResize: (width: number, height: number) => void;
/**
* Обработчик сообщений от шины
* По-умолчанию пустой и возвращает false
* @return true - если необходима перерисовка
*/
onEventBus: EventBusFunc;
constructor(config: WidgetConfigInner, options: WidgetOptions);
destroy(): void;
/**
* Создание виджета
*/
readonly create: () => void;
/**
* Перерисовать виджет с текущими данными
*/
redraw(): Promise<void>;
/**
* Получить названия всех DataSources
* NOTE: На донный момент возвращает только SingleDataSource
* TODO: Передать на отдельное поле DataSetId
*/
getDataSourceNameIds(): string[];
/**
* Получить индекс dataSource
*/
getDataSourceIndex(dataSourceName: string): number | null;
/**
* Добавить переменную для управления виджетом извне
*/
protected addVar<T = string>(res: IWidgetVariables): AddVarFunc<T>;
/**
* Возвращает настройку из сеттингов виджета
* В зависимости от количества параметров, использует данные настройки чарта или настройки из параметра
* @param {ISettings} args[0] - settings Объект с настройками
* @param {string} args[1] - path название поля
* или
* @param {string} args[0] - path название поля
* @return возвращает значение того типа, к которому присваивается результат, поэтому нужен тип T
*/
protected getWidgetSetting<T = void>(...args: Array<ISettings | string>): T;
/**
* Возвращает настройку из датасета
* @param settings Объект с настройками или индекс dataSource с настройками
* @param path название поля
* @return возвращает значение того типа, к которому присваивается результат, поэтому нужен тип T
*/
protected getDataSetSettings<T = void>(settings: ISettings | number, path: string): T;
/**
* Проверяем, есть ли среди графиков гистограммы
* Для них необходимо изменить вид графика
*/
protected hasHistogram(): boolean;
/**
* Заменить все названия классов на нужные
* @param template
*/
protected replaceTemplateClasses(template: string): string;
/**
* Отрендерить шаблон
*/
protected renderTemplate(data: Object): string;
private startLoading;
private stopLoading;
}
export {};