@mui/x-charts
Version:
The community edition of MUI X Charts components.
40 lines (39 loc) • 3.33 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkBarChartScaleErrors = checkBarChartScaleErrors;
var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage"));
var _warning = require("@mui/x-internals/warning");
var _constants = require("../constants");
const getAxisMessage = (axisDirection, axisId) => {
const axisName = `${axisDirection}-axis`;
const axisIdName = `${axisDirection}Axis`;
const axisDefaultKey = axisDirection === 'x' ? _constants.DEFAULT_X_AXIS_KEY : _constants.DEFAULT_Y_AXIS_KEY;
return axisId === axisDefaultKey ? `The first \`${axisIdName}\`` : `The ${axisName} with id "${axisId}"`;
};
function checkBarChartScaleErrors(verticalLayout, seriesId, seriesDataLength, xAxisId, xAxis, yAxisId, yAxis) {
const xAxisConfig = xAxis[xAxisId];
const yAxisConfig = yAxis[yAxisId];
const discreteAxisConfig = verticalLayout ? xAxisConfig : yAxisConfig;
const continuousAxisConfig = verticalLayout ? yAxisConfig : xAxisConfig;
const discreteAxisId = verticalLayout ? xAxisId : yAxisId;
const continuousAxisId = verticalLayout ? yAxisId : xAxisId;
const discreteAxisDirection = verticalLayout ? 'x' : 'y';
const continuousAxisDirection = verticalLayout ? 'y' : 'x';
if (discreteAxisConfig.scaleType !== 'band') {
throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: ${getAxisMessage(discreteAxisDirection, discreteAxisId)} should be of type "band" to display the bar series of id "${seriesId}". ` + 'Bar charts require a band scale for the category axis to properly position and size the bars. ' + 'Set the scaleType to "band" for this axis.' : (0, _formatErrorMessage2.default)(1, getAxisMessage(discreteAxisDirection, discreteAxisId), seriesId));
}
if (discreteAxisConfig.data === undefined) {
throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: ${getAxisMessage(discreteAxisDirection, discreteAxisId)} should have a data property. ` + 'The axis needs data to define the categories for the bar chart. ' + 'Provide a data array to the axis configuration.' : (0, _formatErrorMessage2.default)(2, getAxisMessage(discreteAxisDirection, discreteAxisId)));
}
if (continuousAxisConfig.scaleType === 'band' || continuousAxisConfig.scaleType === 'point') {
throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: ${getAxisMessage(continuousAxisDirection, continuousAxisId)} should be a continuous type to display the bar series of id "${seriesId}". ` + 'Bar charts require a continuous scale (like "linear" or "log") for the value axis. ' + 'Change the scaleType to a continuous type such as "linear".' : (0, _formatErrorMessage2.default)(3, getAxisMessage(continuousAxisDirection, continuousAxisId), seriesId));
}
if (process.env.NODE_ENV !== 'production') {
if (discreteAxisConfig.data.length < seriesDataLength) {
(0, _warning.warnOnce)([`MUI X Charts: ${getAxisMessage(discreteAxisDirection, discreteAxisId)} has less data (${discreteAxisConfig.data.length} values) than the bar series of id "${seriesId}" (${seriesDataLength} values).`, 'The axis data should have at least the same length than the series using it.'], 'error');
}
}
}