@mui/x-charts
Version:
The community edition of MUI X Charts components.
83 lines (81 loc) • 4.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getDefaultXAxisHeight = getDefaultXAxisHeight;
exports.getDefaultYAxisWidth = getDefaultYAxisWidth;
exports.selectorChartTopAxisSize = exports.selectorChartRightAxisSize = exports.selectorChartLeftAxisSize = exports.selectorChartBottomAxisSize = exports.selectorChartAxisSizes = void 0;
var _store = require("@mui/x-internals/store");
var _useChartCartesianAxisLayout = require("./useChartCartesianAxisLayout.selectors");
var _useChartAxisAutoSize = require("./useChartAxisAutoSize.selectors");
var _constants = require("../../../../constants");
/**
* Returns the default fallback height for an X axis when auto-sizing is not available.
* This function ensures consistent fallback values between axis size calculation and rendering.
*/
function getDefaultXAxisHeight(axis) {
return _constants.DEFAULT_AXIS_SIZE_HEIGHT + (axis.label ? _constants.AXIS_LABEL_DEFAULT_HEIGHT : 0);
}
/**
* Returns the default fallback width for a Y axis when auto-sizing is not available.
* This function ensures consistent fallback values between axis size calculation and rendering.
*/
function getDefaultYAxisWidth(axis) {
return _constants.DEFAULT_AXIS_SIZE_WIDTH + (axis.label ? _constants.AXIS_LABEL_DEFAULT_HEIGHT : 0);
}
function selectXAxisSize(axes, axesGap, position, autoSizes) {
let axesSize = 0;
let nbOfAxes = 0;
for (const axis of axes ?? []) {
if (axis.position !== position) {
continue;
}
let axisSize;
if (axis.height === 'auto') {
axisSize = autoSizes[axis.id] ?? getDefaultXAxisHeight(axis);
} else {
axisSize = axis.height ?? 0;
}
axesSize += axisSize + (axis.zoom?.slider.enabled ? axis.zoom.slider.size : 0);
nbOfAxes += 1;
}
return axesSize + axesGap * Math.max(0, nbOfAxes - 1);
}
function selectYAxisSize(axes, axesGap, position, autoSizes) {
let axesSize = 0;
let nbOfAxes = 0;
for (const axis of axes ?? []) {
if (axis.position !== position) {
continue;
}
let axisSize;
if (axis.width === 'auto') {
axisSize = autoSizes[axis.id] ?? getDefaultYAxisWidth(axis);
} else {
axisSize = axis.width ?? 0;
}
axesSize += axisSize + (axis.zoom?.slider.enabled ? axis.zoom.slider.size : 0);
nbOfAxes += 1;
}
return axesSize + axesGap * Math.max(0, nbOfAxes - 1);
}
const selectorChartLeftAxisSize = exports.selectorChartLeftAxisSize = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, _useChartAxisAutoSize.selectorChartYAxisAutoSizes, function selectorChartLeftAxisSize(yAxis, axesGap, autoSizes) {
return selectYAxisSize(yAxis, axesGap, 'left', autoSizes);
});
const selectorChartRightAxisSize = exports.selectorChartRightAxisSize = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawYAxis, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, _useChartAxisAutoSize.selectorChartYAxisAutoSizes, function selectorChartRightAxisSize(yAxis, axesGap, autoSizes) {
return selectYAxisSize(yAxis, axesGap, 'right', autoSizes);
});
const selectorChartTopAxisSize = exports.selectorChartTopAxisSize = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, _useChartAxisAutoSize.selectorChartXAxisAutoSizes, function selectorChartTopAxisSize(xAxis, axesGap, autoSizes) {
return selectXAxisSize(xAxis, axesGap, 'top', autoSizes);
});
const selectorChartBottomAxisSize = exports.selectorChartBottomAxisSize = (0, _store.createSelector)(_useChartCartesianAxisLayout.selectorChartRawXAxis, _useChartCartesianAxisLayout.selectorChartCartesianAxesGap, _useChartAxisAutoSize.selectorChartXAxisAutoSizes, function selectorChartBottomAxisSize(xAxis, axesGap, autoSizes) {
return selectXAxisSize(xAxis, axesGap, 'bottom', autoSizes);
});
const selectorChartAxisSizes = exports.selectorChartAxisSizes = (0, _store.createSelectorMemoized)(selectorChartLeftAxisSize, selectorChartRightAxisSize, selectorChartTopAxisSize, selectorChartBottomAxisSize, function selectorChartAxisSizes(left, right, top, bottom) {
return {
left,
right,
top,
bottom
};
});