laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
34 lines (33 loc) • 1.34 kB
JavaScript
"use client";
const w = Math.sqrt(50), q = Math.sqrt(10), m = Math.sqrt(2);
function d(i, r, f) {
const c = (r - i) / Math.max(0, f), l = Math.floor(Math.log10(c)), u = c / Math.pow(10, l), M = u >= w ? 10 : u >= q ? 5 : u >= m ? 2 : 1;
let n, h, e;
return l < 0 ? (e = Math.pow(10, -l) / M, n = Math.round(i * e), h = Math.round(r * e), n / e < i && ++n, h / e > r && --h, e = -e) : (e = Math.pow(10, l) * M, n = Math.round(i / e), h = Math.round(r / e), n * e < i && ++n, h * e > r && --h), h < n && 0.5 <= f && f < 2 ? d(i, r, f * 2) : [n, h, e];
}
function v(i, r, f) {
if (r = +r, i = +i, f = +f, !(f > 0)) return [];
if (i === r) return [i];
const c = r < i, [l, u, M] = c ? d(r, i, f) : d(i, r, f);
if (!(u >= l)) return [];
const n = u - l + 1, h = new Array(n);
if (c)
if (M < 0) for (let e = 0; e < n; ++e) h[e] = (u - e) / -M;
else for (let e = 0; e < n; ++e) h[e] = (u - e) * M;
else if (M < 0) for (let e = 0; e < n; ++e) h[e] = (l + e) / -M;
else for (let e = 0; e < n; ++e) h[e] = (l + e) * M;
return h;
}
function k(i, r, f) {
return r = +r, i = +i, f = +f, d(i, r, f)[2];
}
function x(i, r, f) {
r = +r, i = +i, f = +f;
const c = r < i, l = c ? k(r, i, f) : k(i, r, f);
return (c ? -1 : 1) * (l < 0 ? 1 / -l : l);
}
export {
v as default,
k as tickIncrement,
x as tickStep
};