ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
63 lines (62 loc) • 3.66 kB
TypeScript
import type { Scale } from 'ag-charts-core';
import { type Point } from 'ag-charts-core';
import type { AgActiveItemState } from 'ag-charts-types';
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 { DataSet } from '../data/dataSet';
import type { PickFocusInputs, PickFocusOutputs, SeriesConstructorOpts, SeriesNodeDataContext } from './series';
import { Series } from './series';
import type { SeriesProperties } from './seriesProperties';
import { type DatumIndexType, SelectionState, type SeriesNodeDatum } from './seriesTypes';
export interface DataModelSeriesNodeDatum extends SeriesNodeDatum<number> {
itemId?: never;
}
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>, TOpts extends object, TProps extends SeriesProperties<TOpts>, TLabel = TDatum, TContext extends DataModelSeriesNodeDataContext<TDatum, TLabel> = DataModelSeriesNodeDataContext<TDatum, TLabel>> extends Series<number, TDatum, TOpts, 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>);
dataCount(): number;
invalidDataCount(): number;
missingDataCount(): number;
get hasData(): boolean;
protected getScaleInformation({ xScale, yScale, }: {
xScale?: Scale<any, any, any>;
yScale?: Scale<any, any, any>;
}): {
isContinuousX: boolean;
isContinuousY: boolean;
xScaleType: import("ag-charts-core").ScaleType | undefined;
yScaleType: import("ag-charts-core").ScaleType | undefined;
};
private getModulePropertyDefinitions;
protected requestDataModel<D extends object, K extends keyof D & string = keyof D & string, G extends boolean | undefined = undefined>(dataController: DataController, dataSet: DataSet<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;
findNodeDatum(itemId: AgActiveItemState['itemId']): TDatum | undefined;
pickFocus(opts: PickFocusInputs): PickFocusOutputs | undefined;
protected pickNodesExactShape(point: Point): SeriesNodeDatum<DatumIndexType>[];
protected isDatumEnabled(nodeData: TDatum[], datumIndex: number): boolean;
private computeFocusDatumIndex;
private dataModelPropertyIsKey;
protected keysOrValues<T = any>(xKey: string): T[];
protected sortOrder(xKey: string): -1 | 1 | undefined;
protected getCategoryKey(): string | undefined;
getCategoryValue(datumIndex: number): any;
datumIndexForCategoryValue(categoryValue: any): number | undefined;
protected getDataSelectionState(datumIndex: number | undefined): SelectionState | undefined;
}