UNPKG

abc-charts

Version:

Widget render for using in 'ABC consulting' projects

88 lines (87 loc) 4.18 kB
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 {};