@mui/x-charts
Version:
The community edition of MUI X Charts components.
49 lines • 3.2 kB
TypeScript
import type { SeriesProcessor } from "./seriesProcessor.types.js";
import type { CartesianChartSeriesType, ChartSeriesType, ChartsSeriesConfig, PolarChartSeriesType } from "../../../../models/seriesType/config.js";
import type { ColorProcessor } from "./colorProcessor.types.js";
import type { CartesianExtremumGetter } from "./cartesianExtremumGetter.types.js";
import type { LegendGetter } from "./legendGetter.types.js";
import type { AxisTooltipGetter, TooltipGetter } from "./tooltipGetter.types.js";
import { type PolarExtremumGetter } from "./polarExtremumGetter.types.js";
import { type GetSeriesWithDefaultValues } from "./getSeriesWithDefaultValues.types.js";
import { type TooltipItemPositionGetter } from "./tooltipItemPositionGetter.types.js";
import { type SeriesLayoutGetter } from "./seriesLayout.types.js";
import { type KeyboardFocusHandler } from "../../featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
import { type IdentifierSerializer } from "./identifierSerializer.types.js";
import { type GetItemAtPosition } from "./getItemAtPosition.types.js";
import { type UseChartCartesianAxisSignature } from "../../featurePlugins/useChartCartesianAxis/index.js";
import { type UseChartPolarAxisSignature } from "../../featurePlugins/useChartPolarAxis/index.js";
export type ChartSeriesTypeRequiredPlugins<TSeriesType extends ChartSeriesType> = ChartsSeriesConfig[TSeriesType] extends {
axisType: 'cartesian';
} ? [UseChartCartesianAxisSignature] : ChartsSeriesConfig[TSeriesType] extends {
axisType: 'polar';
} ? [UseChartPolarAxisSignature] : [];
export type ChartSeriesTypeConfig<TSeriesType extends ChartSeriesType> = {
seriesProcessor: SeriesProcessor<TSeriesType>;
/**
* A processor to add series layout when the layout does not depend from other series.
*/
seriesLayout?: SeriesLayoutGetter<TSeriesType>;
colorProcessor: ColorProcessor<TSeriesType>;
legendGetter: LegendGetter<TSeriesType>;
tooltipGetter: TooltipGetter<TSeriesType>;
tooltipItemPositionGetter?: TooltipItemPositionGetter<TSeriesType>;
getSeriesWithDefaultValues: GetSeriesWithDefaultValues<TSeriesType>;
keyboardFocusHandler?: KeyboardFocusHandler<TSeriesType>;
/**
* A function to serialize the series item identifier into a unique string.
* @param {ChartsSeriesConfig[TSeriesType]['itemIdentifier']} identifier The series item identifier.
* @returns {string} A unique string representation of the identifier.
*/
identifierSerializer: IdentifierSerializer<TSeriesType>;
getItemAtPosition?: GetItemAtPosition<TSeriesType>;
} & (TSeriesType extends CartesianChartSeriesType ? {
xExtremumGetter: CartesianExtremumGetter<TSeriesType>;
yExtremumGetter: CartesianExtremumGetter<TSeriesType>;
axisTooltipGetter?: AxisTooltipGetter<TSeriesType, 'x' | 'y'>;
} : {}) & (TSeriesType extends PolarChartSeriesType ? {
rotationExtremumGetter: PolarExtremumGetter<TSeriesType>;
radiusExtremumGetter: PolarExtremumGetter<TSeriesType>;
axisTooltipGetter?: AxisTooltipGetter<TSeriesType, 'rotation' | 'radius'>;
} : {});
export type ChartSeriesConfig<TSeriesType extends ChartSeriesType> = { [Key in TSeriesType]: ChartSeriesTypeConfig<Key> };