ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
50 lines (49 loc) • 2.94 kB
TypeScript
import type { Scale } from '../../scale/scale';
import type { BBox } from '../../scene/bbox';
import type { Path } from '../../scene/shape/path';
import type { DataController } from '../data/dataController';
import type { DataModel, DataModelOptions, ProcessedData } from '../data/dataModel';
import type { PickFocusInputs, PickFocusOutputs, SeriesConstructorOpts, SeriesNodeDataContext } from './series';
import { Series } from './series';
import type { SeriesProperties } from './seriesProperties';
import type { SeriesNodeDatum } from './seriesTypes';
export interface DataModelSeriesNodeDatum extends SeriesNodeDatum<number> {
}
export interface DataModelSeriesNodeDataContext<TDatum, TLabel = TDatum> extends SeriesNodeDataContext<number, TDatum, TLabel> {
}
export type DataModelSeriesConstructorOpts<TProps extends SeriesProperties<any>> = SeriesConstructorOpts<TProps> & {
categoryKey: string | undefined;
clipFocusBox?: boolean;
};
export declare abstract class DataModelSeries<TDatum extends SeriesNodeDatum<number>, TProps extends SeriesProperties<any>, TLabel = TDatum, TContext extends DataModelSeriesNodeDataContext<TDatum, TLabel> = DataModelSeriesNodeDataContext<TDatum, TLabel>> extends Series<number, TDatum, TProps, TLabel, TContext> {
protected dataModel?: DataModel<any, any, any>;
protected processedData?: ProcessedData<any>;
private readonly categoryKey;
private readonly clipFocusBox;
protected constructor({ clipFocusBox, categoryKey, ...seriesOpts }: DataModelSeriesConstructorOpts<TProps>);
protected getScaleInformation({ xScale, yScale, }: {
xScale?: Scale<any, any, any>;
yScale?: Scale<any, any, any>;
}): {
isContinuousX: boolean;
isContinuousY: boolean;
xScaleType: import("../../scale/scale").ScaleType | undefined;
yScaleType: import("../../scale/scale").ScaleType | undefined;
};
private getModulePropertyDefinitions;
protected requestDataModel<D extends object, K extends keyof D & string = keyof D & string, G extends boolean | undefined = undefined>(dataController: DataController, data: D[] | undefined, opts: DataModelOptions<K, boolean | undefined, false>): Promise<{
dataModel: DataModel<D, K, G>;
processedData: ProcessedData<D>;
}>;
protected isProcessedDataAnimatable(): boolean;
protected checkProcessedDataAnimatable(): void;
protected abstract computeFocusBounds(opts: PickFocusInputs): Path | BBox | undefined;
abstract getNodeData(): TDatum[] | undefined;
pickFocus(opts: PickFocusInputs): PickFocusOutputs | undefined;
protected isDatumEnabled(nodeData: TDatum[], datumIndex: number): boolean;
private computeFocusDatumIndex;
protected keysOrValues(xKey: string): any[];
protected getCategoryKey(): string | undefined;
getCategoryValue(datumIndex: number): any;
datumIndexForCategoryValue(categoryValue: any): number | undefined;
}