29 lines
988 B
JavaScript
29 lines
988 B
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getTickNumber = getTickNumber;
|
|
exports.scaleTickNumberByRange = scaleTickNumberByRange;
|
|
function getTickNumber(params) {
|
|
const {
|
|
tickMaxStep,
|
|
tickMinStep,
|
|
tickNumber,
|
|
range,
|
|
domain
|
|
} = params;
|
|
const maxTicks = tickMinStep === undefined ? 999 : Math.floor(Math.abs(domain[1] - domain[0]) / tickMinStep);
|
|
const minTicks = tickMaxStep === undefined ? 2 : Math.ceil(Math.abs(domain[1] - domain[0]) / tickMaxStep);
|
|
const defaultizedTickNumber = tickNumber ?? Math.floor(Math.abs(range[1] - range[0]) / 50);
|
|
return Math.min(maxTicks, Math.max(minTicks, defaultizedTickNumber));
|
|
}
|
|
function scaleTickNumberByRange(tickNumber, range) {
|
|
const rangeGap = range[1] - range[0];
|
|
|
|
/* If the range start and end are the same, `tickNumber` will become infinity, so we default to 1. */
|
|
if (rangeGap === 0) {
|
|
return 1;
|
|
}
|
|
return tickNumber / ((range[1] - range[0]) / 100);
|
|
} |