UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.22 kB
import{DatetimeUnits}from'../../../../../fc-utils/src/datetime-enums';import getValidBin from'./validate-binsize';export default((a,b,c=[],d,e)=>{let f,g,h,j,k,l,m,n=[],o={count:0},p=c.length,q={};if(!a)return null;if(/%[_ -]?[cfLQ]/.test(a)&&(n.push(DatetimeUnits.Millisecond),q[DatetimeUnits.Millisecond.name]={}),/%[_ -]?[sSX]/.test(a)&&(n.push(DatetimeUnits.Second),q[DatetimeUnits.Second.name]={}),/%[_ -]?M/.test(a)&&(n.push(DatetimeUnits.Minute),q[DatetimeUnits.Minute.name]={}),/%[_ -]?[HI]/.test(a)&&(n.push(DatetimeUnits.Hour),q[DatetimeUnits.Hour.name]={}),/%[_ -]?[dejuwx]/.test(a)&&(n.push(DatetimeUnits.Day),q[DatetimeUnits.Day.name]={}),/%[_ -]?[bBm]/.test(a)&&(n.push(DatetimeUnits.Month),q[DatetimeUnits.Month.name]={}),/%[_ -]?[yY]/.test(a)&&(n.push(DatetimeUnits.Year),q[DatetimeUnits.Year.name]={}),!n.length)return[];if(1===p||0===p)return[n[0].ms,1,n[0].ms];for(f=1;f<p;++f)h=c[f-1][b],j=c[f][b],g=j-h,g&&(k=getValidBin(d,e,n,g),m=q[k.unit.name],!m[k.multiplier]&&(m[k.multiplier]=0),l=++m[k.multiplier],(o.count<l||o.count===l&&o.unit.ms*o.multiplier>k.unit.ms*k.multiplier)&&(o.count=l,Object.assign(o,k)));return o.count?[o.unit.ms,o.multiplier,o.multiplier*o.unit.ms]:[n[0].ms,1,n[0].ms]});