@mui/x-charts
Version:
The community edition of MUI X Charts components.
84 lines (81 loc) • 3.01 kB
JavaScript
;
'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;