UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

49 lines 3.2 kB
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> };