react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
24 lines (23 loc) • 846 B
JavaScript
import { resolveTimeDomain } from "./domain";
export const createTimeScale = ({ domain = "auto", values = [], range }) => {
const resolvedDomain = resolveTimeDomain(values, domain);
const domainMin = resolvedDomain[0].valueOf();
const domainSpan = resolvedDomain[1].valueOf() - domainMin;
const rangeSpan = range[1] - range[0];
return {
domain: resolvedDomain,
range,
scale: (value) => {
if (domainSpan === 0) {
return range[0];
}
return (range[0] + ((value.valueOf() - domainMin) / domainSpan) * rangeSpan);
},
invert: (value) => {
if (rangeSpan === 0) {
return new Date(domainMin);
}
return new Date(domainMin + ((value - range[0]) / rangeSpan) * domainSpan);
}
};
};