@mui/x-charts
Version:
The community edition of MUI X Charts components.
54 lines (53 loc) • 1.28 kB
JavaScript
;
'use client';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useChartItemClick = void 0;
var _getSVGPoint = require("../../../../internals/getSVGPoint");
const useChartItemClick = ({
params,
store,
instance
}) => {
const {
onItemClick
} = params;
if (!onItemClick) {
return {
instance: {}
};
}
const getItemPosition = event => {
const svgPoint = (0, _getSVGPoint.getSVGPoint)(event?.currentTarget, event);
if (!instance.isPointInside(svgPoint.x, svgPoint.y)) {
return undefined;
}
let item = undefined;
for (const seriesType of Object.keys(store.state.series.seriesConfig)) {
// @ts-ignore The type inference for store.state does not support generic yet
item = store.state.series.seriesConfig[seriesType].getItemAtPosition?.(store.state, {
x: svgPoint.x,
y: svgPoint.y
});
if (item) {
return item;
}
}
return item;
};
return {
instance: {
handleClick: event => {
const item = getItemPosition(event);
if (item !== undefined) {
onItemClick(event, item);
}
}
}
};
};
exports.useChartItemClick = useChartItemClick;
useChartItemClick.params = {
onItemClick: true
};