@mui/x-charts
Version:
The community edition of MUI X Charts components.
75 lines (71 loc) • 2.88 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useXAxisTicks = useXAxisTicks;
exports.useYAxisTicks = useYAxisTicks;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _styles = require("@mui/material/styles");
var _useAxis = require("./useAxis");
var _useTicks = require("./useTicks");
var _utilities = require("../ChartsXAxis/utilities");
/**
* Returns the ticks for the given X axis. Ticks outside the drawing area are not included.
* The ticks returned from this hook are not grouped, i.e., they don't follow the `groups` prop of the axis.
* @param axisId The id of the X axis.
*/
function useXAxisTicks(axisId) {
const {
xAxis: xAxes
} = (0, _useAxis.useXAxes)();
const axis = xAxes[axisId];
// FIXME: `useAxisTicksProps` does this, but should we do it here?
// eslint-disable-next-line mui/material-ui-name-matches-component-name
const themedProps = (0, _styles.useThemeProps)({
props: axis,
name: 'MuiChartsXAxis'
});
const defaultizedProps = (0, _extends2.default)({}, _utilities.defaultProps, themedProps);
return (0, _useTicks.useTicks)({
scale: axis.scale,
tickNumber: axis.tickNumber,
valueFormatter: defaultizedProps.valueFormatter,
tickInterval: defaultizedProps.tickInterval,
tickPlacement: defaultizedProps.tickPlacement,
tickLabelPlacement: defaultizedProps.tickLabelPlacement,
tickSpacing: defaultizedProps.tickSpacing,
direction: 'x',
ordinalTimeTicks: 'ordinalTimeTicks' in defaultizedProps ? defaultizedProps.ordinalTimeTicks : undefined
});
}
/**
* Returns the ticks for the given Y axis. Ticks outside the drawing area are not included.
* The ticks returned from this hook are not grouped, i.e., they don't follow the `groups` prop of the axis.
* @param axisId The id of the Y axis.
*/
function useYAxisTicks(axisId) {
const {
yAxis: yAxes
} = (0, _useAxis.useYAxes)();
const axis = yAxes[axisId];
// FIXME: `useAxisTicksProps` does this, but should we do it here?
// eslint-disable-next-line mui/material-ui-name-matches-component-name
const themedProps = (0, _styles.useThemeProps)({
props: axis,
name: 'MuiChartsYAxis'
});
const defaultizedProps = (0, _extends2.default)({}, _utilities.defaultProps, themedProps);
return (0, _useTicks.useTicks)({
scale: axis.scale,
tickNumber: axis.tickNumber,
valueFormatter: defaultizedProps.valueFormatter,
tickInterval: defaultizedProps.tickInterval,
tickPlacement: defaultizedProps.tickPlacement,
tickLabelPlacement: defaultizedProps.tickLabelPlacement,
tickSpacing: defaultizedProps.tickSpacing,
direction: 'y',
// @ts-expect-error
ordinalTimeTicks: defaultizedProps.ordinalTimeTicks
});
}