new (chart: Chart, datasetIndex: number): DoughnutController;
};
+export interface DoughnutMetaExtensions {
+ total: number;
+}
+
export type PieControllerDatasetOptions = DoughnutControllerDatasetOptions;
export type PieControllerChartOptions = DoughnutControllerChartOptions;
export type PieAnimationOptions = DoughnutAnimationOptions;
export type PieDataPoint = DoughnutDataPoint;
+export type PieMetaExtensions = DoughnutMetaExtensions;
export type PieController = DoughnutController
export const PieController: ChartComponent & {
prototype: RadarController;
new (chart: Chart, datasetIndex: number): RadarController;
};
-export interface ChartMeta<TElement extends Element = Element, TDatasetElement extends Element = Element> {
+interface ChartMetaCommon<TElement extends Element = Element, TDatasetElement extends Element = Element> {
type: string;
controller: DatasetController;
order: number;
_parsed: unknown[];
}
+export type ChartMeta<
+ TElement extends Element = Element,
+ TDatasetElement extends Element = Element,
+ // TODO - V4, move this to the first parameter.
+ // When this was introduced, doing so was a breaking change
+ TType extends ChartType = ChartType,
+> = DeepPartial<
+ { [key in ChartType]: ChartTypeRegistry[key]['metaExtensions'] }[TType]
+> & ChartMetaCommon<TElement, TDatasetElement>;
+
export interface ActiveDataPoint {
datasetIndex: number;
index: number;
readonly chart: Chart;
readonly index: number;
- readonly _cachedMeta: ChartMeta<TElement, TDatasetElement>;
+ readonly _cachedMeta: ChartMeta<TElement, TDatasetElement, TType>;
enableOptionSharing: boolean;
linkScales(): void;
draw(): void;
reset(): void;
getDataset(): ChartDataset;
- getMeta(): ChartMeta<TElement, TDatasetElement>;
+ getMeta(): ChartMeta<TElement, TDatasetElement, TType>;
getScaleForId(scaleID: string): Scale | undefined;
configure(): void;
initialize(): void;
setHoverStyle(element: TElement, datasetIndex: number, index: number): void;
parse(start: number, count: number): void;
- protected parsePrimitiveData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
- protected parseArrayData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
- protected parseObjectData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
+ protected parsePrimitiveData(meta: ChartMeta<TElement, TDatasetElement, TType>, data: AnyObject[], start: number, count: number): AnyObject[];
+ protected parseArrayData(meta: ChartMeta<TElement, TDatasetElement, TType>, data: AnyObject[], start: number, count: number): AnyObject[];
+ protected parseObjectData(meta: ChartMeta<TElement, TDatasetElement, TType>, data: AnyObject[], start: number, count: number): AnyObject[];
protected getParsed(index: number): TParsedData;
protected applyStack(scale: Scale, parsed: unknown[]): number;
protected updateRangeFromParsed(
chartOptions: BarControllerChartOptions;
datasetOptions: BarControllerDatasetOptions;
defaultDataPoint: number;
+ metaExtensions: {};
parsedDataType: BarParsedData,
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: LineControllerChartOptions;
datasetOptions: LineControllerDatasetOptions & FillerControllerDatasetOptions;
defaultDataPoint: ScatterDataPoint | number | null;
+ metaExtensions: {};
parsedDataType: CartesianParsedData;
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: ScatterControllerChartOptions;
datasetOptions: ScatterControllerDatasetOptions;
defaultDataPoint: ScatterDataPoint | number | null;
+ metaExtensions: {};
parsedDataType: CartesianParsedData;
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: unknown;
datasetOptions: BubbleControllerDatasetOptions;
defaultDataPoint: BubbleDataPoint;
+ metaExtensions: {};
parsedDataType: BubbleParsedData;
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: PieControllerChartOptions;
datasetOptions: PieControllerDatasetOptions;
defaultDataPoint: PieDataPoint;
+ metaExtensions: PieMetaExtensions;
parsedDataType: number;
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: DoughnutControllerChartOptions;
datasetOptions: DoughnutControllerDatasetOptions;
defaultDataPoint: DoughnutDataPoint;
+ metaExtensions: DoughnutMetaExtensions;
parsedDataType: number;
scales: keyof CartesianScaleTypeRegistry;
};
chartOptions: PolarAreaControllerChartOptions;
datasetOptions: PolarAreaControllerDatasetOptions;
defaultDataPoint: number;
+ metaExtensions: {};
parsedDataType: RadialParsedData;
scales: keyof RadialScaleTypeRegistry;
};
chartOptions: RadarControllerChartOptions;
datasetOptions: RadarControllerDatasetOptions & FillerControllerDatasetOptions;
defaultDataPoint: number | null;
+ metaExtensions: {};
parsedDataType: RadialParsedData;
scales: keyof RadialScaleTypeRegistry;
};