UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

83 lines (81 loc) 4.27 kB
"use strict"; 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 }; });