@mui/x-charts
Version:
The community edition of MUI X Charts components.
27 lines (26 loc) • 921 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.findClosestIndex = findClosestIndex;
var _getAsNumber = require("./getAsNumber");
/**
* Returns the index of the entry in `axisData` whose numeric value is closest
* to `valueAsNumber`. Returns -1 if `axisData` is empty.
*/
function findClosestIndex(axisData, valueAsNumber) {
return axisData.findIndex((pointValue, index) => {
const v = (0, _getAsNumber.getAsNumber)(pointValue);
if (v > valueAsNumber) {
if (index === 0 || Math.abs(valueAsNumber - v) <= Math.abs(valueAsNumber - (0, _getAsNumber.getAsNumber)(axisData[index - 1]))) {
return true;
}
}
if (v <= valueAsNumber) {
if (index === axisData.length - 1 || Math.abs(valueAsNumber - v) < Math.abs(valueAsNumber - (0, _getAsNumber.getAsNumber)(axisData[index + 1]))) {
return true;
}
}
return false;
});
}