UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

84 lines (81 loc) 3.01 kB
"use strict"; 'use client'; Object.defineProperty(exports, "__esModule", { value: true }); exports.useInternalItemTooltip = useInternalItemTooltip; exports.useRadarItemTooltip = exports.useItemTooltip = void 0; var _useSeries = require("../hooks/useSeries"); var _useChartTooltip = require("../internals/plugins/featurePlugins/useChartTooltip"); var _useStore = require("../internals/store/useStore"); var _useAxis = require("../hooks/useAxis"); var _useZAxis = require("../hooks/useZAxis"); var _useChartSeries = require("../internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors"); var _isCartesian = require("../internals/isCartesian"); function useInternalItemTooltip() { const store = (0, _useStore.useStore)(); const identifier = store.use(_useChartTooltip.selectorChartsTooltipItem); const seriesConfig = store.use(_useChartSeries.selectorChartSeriesConfig); const series = (0, _useSeries.useSeries)(); const { xAxis, xAxisIds } = (0, _useAxis.useXAxes)(); const { yAxis, yAxisIds } = (0, _useAxis.useYAxes)(); const { zAxis, zAxisIds } = (0, _useZAxis.useZAxes)(); const { rotationAxis, rotationAxisIds } = (0, _useAxis.useRotationAxes)(); if (!identifier) { return null; } const itemSeries = series[identifier.type]?.series[identifier.seriesId]; if (!itemSeries) { return null; } const xAxisId = (0, _isCartesian.isCartesianSeries)(itemSeries) ? itemSeries.xAxisId ?? xAxisIds[0] : undefined; const yAxisId = (0, _isCartesian.isCartesianSeries)(itemSeries) ? itemSeries.yAxisId ?? yAxisIds[0] : undefined; const zAxisId = 'zAxisId' in itemSeries ? itemSeries.zAxisId ?? zAxisIds[0] : zAxisIds[0]; const rotationAxisId = rotationAxisIds[0]; const getColor = seriesConfig[itemSeries.type].colorProcessor?.(itemSeries, xAxisId !== undefined ? xAxis[xAxisId] : undefined, yAxisId !== undefined ? yAxis[yAxisId] : undefined, zAxisId !== undefined ? zAxis[zAxisId] : undefined) ?? (() => ''); const axesConfig = {}; if (xAxisId !== undefined) { axesConfig.x = xAxis[xAxisId]; } if (yAxisId !== undefined) { axesConfig.y = yAxis[yAxisId]; } if (rotationAxisId !== undefined) { axesConfig.rotation = rotationAxis[rotationAxisId]; } return seriesConfig[itemSeries.type].tooltipGetter({ series: itemSeries, axesConfig, getColor, identifier }); } /** * Returns a config object when the tooltip contains a single item to display. * Some specific charts like radar need more complex structure. Use specific hook like `useRadarItemTooltip` for them. * @returns The tooltip item config */ const useItemTooltip = () => { return useInternalItemTooltip(); }; /** * Contains an object per value with their content and the label of the associated metric. * @returns The tooltip item configs */ exports.useItemTooltip = useItemTooltip; const useRadarItemTooltip = () => { return useInternalItemTooltip(); }; exports.useRadarItemTooltip = useRadarItemTooltip;