quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 885 B
JavaScript
import bisector from'../array/bisector';import{tickStep}from'../array/ticks';const DURATION_YEAR=31536e6,tickInterval=(a,b,d=10,e,f,g)=>{let h,j,k,l=d,m=e;return'number'==typeof l&&(j=Math.abs(b-a)/l,k=bisector(a=>a[2]).right(f,j),k===f.length?(m=tickStep(a/DURATION_YEAR,b/DURATION_YEAR,l),l=g.year):k?(h=j/f[k-1][2]<f[k][2]/j?k-1:k,k=f[h],m=k[1],l=k[0]):(m=Math.max(tickStep(a,b,l),1),l=g.millisecond)),null===m||'undefined'==typeof m?l:l.every(m)},timeTicks=(a,b,c,d,e,f)=>{let g,h,i=b<a;return i&&(g=a,a=b,b=g),h=tickInterval(a,b,c,d,e,f),h=h?h.range(a,b+1):[],i?h.reverse():h},tickFormat=(a,b,c)=>{let d;return d=a.second.floor(c)<c?b.millisecond:a.minute.floor(c)<c?b.second:a.hour.floor(c)<c?b.minute:a.day.floor(c)<c?b.hour:a.month.floor(c)<c?a.week.floor(c)<c?b.day:b.week:a.year.floor(c)<c?b.month:b.year,d.format(c)};export{tickInterval,tickFormat};export default timeTicks;