UNPKG

ag-charts-community

Version:

Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue

63 lines (62 loc) 3.66 kB
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; }