UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 23.1 kB
import{pluckNumber,extend2,getValidValue,pluck,getFirstValue,regescape}from'../lib';let UNDEF,formatNumber,formatNumberScale,convertNumberSeps,formatDecimals,formatCommas,mathAbs=Math.abs,mathPow=Math.pow,mathRound=Math.round,ONESTRING='1',BLANK='',ZEROSTRING='0',DECIMALSTRING='.',COMMASTRING=',',MINUSSTR='-',TWOSTRING='2',AUTOSTRING='auto',numberFormatDefaults={formatnumber:'1',formatnumberscale:'1',forcenumberscale:'0',defaultnumberscale:'',numberscaleunit:['K','M'],numberscalevalue:[1e3,1e3],numberprefix:'',numbersuffix:'',decimals:'',forcedecimals:'0',yaxisvaluedecimals:'2',decimalseparator:'.',thousandseparator:',',thousandseparatorposition:[3],indecimalseparator:'',inthousandseparator:'',sformatnumber:'1',sformatnumberscale:'0',sforcenumberscale:'0',sdefaultnumberscale:'',snumberscaleunit:['K','M'],snumberscalevalue:[1e3,1e3],snumberprefix:'',snumbersuffix:'',sdecimals:'2',sforcedecimals:'0',syaxisvaluedecimals:'2',xFormatNumber:'0',xFormatNumberScale:'0',xforcenumberscale:'0',xDefaultNumberScale:'',xNumberScaleUnit:['K','M'],xNumberScaleValue:[1e3,1e3],xNumberPrefix:'',xNumberSuffix:''},numberFormatOverrides={mscombidy2d:{formatnumberscale:'1'}};class NumberFormatter{constructor(a,b){var c,d=this,e=a.getName&&a.getName(),f=d.csConf=extend2({},numberFormatDefaults),g=numberFormatOverrides[e];d.cleaneValueCacheStore={},d.percentStrCacheStore={},g&&(c=extend2(f,g),f=c),this.linkedItems={chart:a},d.configure(b)}setDefaults(){let a=this,b=this.linkedItems.chart,c=b.getName&&b.getName(),d=a.csConf=extend2({},numberFormatDefaults),e=numberFormatOverrides[c];e&&extend2(d,e)}configure(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=this,F=E.linkedItems.chart,G=a||F.getFromEnv('chart-attrib'),H=F.getName&&F.getName(),I=F.config,J=E.csConf;if(I||(I=F),E.csConf=J,E.useScaleRecursively=I.useScaleRecursively,getValidValue(G.numberscaleunit)&&(c=G.numberscaleunit.split(COMMASTRING)),(d=getValidValue(G.snumberscaleunit,G.numberscaleunit))&&(d=d.split(COMMASTRING)),(e=getValidValue(G.xnumberscaleunit,G.numberscaleunit))&&(e=e.split(COMMASTRING)),(f=getValidValue(G.ticknumberscaleunit,G.numberscaleunit))&&(f=f.split(COMMASTRING)),(g=getValidValue(G.ynumberscaleunit,G.numberscaleunit))&&(g=g.split(COMMASTRING)),getValidValue(G.numberscalevalue)&&(h=G.numberscalevalue.split(COMMASTRING)),(m=getValidValue(G.snumberscalevalue,G.numberscalevalue))&&(m=m.split(COMMASTRING)),(i=getValidValue(G.xnumberscalevalue,G.numberscalevalue))&&(i=i.split(COMMASTRING)),(j=getValidValue(G.ticknumberscalevalue,G.numberscalevalue))&&(j=j.split(COMMASTRING)),(k=getValidValue(G.ynumberscalevalue,G.numberscalevalue))&&(k=k.split(COMMASTRING)),getValidValue(G.thousandseparatorposition))for(l=G.thousandseparatorposition.split(COMMASTRING),s=l.length,u=numberFormatDefaults.thousandseparatorposition[0];s--;)t=parseInt(l[s],10),0>=t&&(t=u),u=l[s]=t;v=pluckNumber(G.scalerecursively,0),w=pluckNumber(G.sscalerecursively,v),x=pluckNumber(G.xscalerecursively,v),y=pluckNumber(G.maxscalerecursion,-1),z=pluckNumber(G.smaxscalerecursion,y),A=pluckNumber(G.xmaxscalerecursion,y),B=getValidValue(G.scaleseparator,' '),C=getValidValue(G.sscaleseparator,B),D=getValidValue(G.xscaleseparator,B),y||(y=-1),E.baseConf=r={cacheStore:[],formatnumber:pluck(G.formatnumber,J.formatnumber),formatnumberscale:pluck(G.formatnumberscale,I.formatnumberscale,J.formatnumberscale),forcenumberscale:pluck(G.forcenumberscale,J.forcenumberscale),defaultnumberscale:getFirstValue(G.defaultnumberscale,J.defaultnumberscale),numberscaleunit:pluck(c,J.numberscaleunit).concat(),numberscalevalue:pluck(h,J.numberscalevalue).concat(),numberprefix:getFirstValue(G.numberprefix,J.numberprefix),numbersuffix:getFirstValue(G.numbersuffix,J.numbersuffix),decimalprecision:parseInt(G.decimals===AUTOSTRING?J.decimalprecision:pluck(G.decimals,G.decimalprecision,I.decimals,J.decimals,I.decimalprecision,J.decimalprecision),10),forcedecimals:pluck(G.forcedecimals,J.forcedecimals),decimalseparator:pluck(G.decimalseparator,J.decimalseparator),thousandseparator:pluck(G.thousandseparator,J.thousandseparator),thousandseparatorposition:pluck(l,J.thousandseparatorposition),indecimalseparator:getFirstValue(G.indecimalseparator,J.indecimalseparator),inthousandseparator:getFirstValue(G.inthousandseparator,J.inthousandseparator),scalerecursively:v,maxscalerecursion:y,scaleseparator:B},getValidValue(r.inthousandseparator)&&(E.baseConf._REGinthousandseparator=new RegExp(regescape(r.inthousandseparator),'g')),getValidValue(r.indecimalseparator)&&(E.baseConf._REGindecimalseparator=new RegExp(regescape(r.indecimalseparator))),E.Y=[],b||(n={cacheStore:[],formatnumber:r.formatnumber,formatnumberscale:r.formatnumberscale,forcenumberscale:r.forcenumberscale,defaultnumberscale:r.defaultnumberscale,numberscaleunit:r.numberscaleunit.concat(),numberscalevalue:r.numberscalevalue.concat(),numberprefix:r.numberprefix,numbersuffix:r.numbersuffix,decimalprecision:r.decimalprecision,forcedecimals:r.forcedecimals,decimalseparator:r.decimalseparator,thousandseparator:r.thousandseparator,thousandseparatorposition:r.thousandseparatorposition,indecimalseparator:r.indecimalseparator,inthousandseparator:r.inthousandseparator,scalerecursively:v,maxscalerecursion:y,scaleseparator:B},(!I.useScaleRecursively||(n.numberscalevalue&&n.numberscalevalue.length)!=(n.numberscaleunit&&n.numberscaleunit.length))&&(n.scalerecursively=v=0),p={cacheStore:[],formatnumber:n.formatnumber,formatnumberscale:n.formatnumberscale,forcenumberscale:n.forcenumberscale,defaultnumberscale:n.defaultnumberscale,numberscaleunit:n.numberscaleunit.concat(),numberscalevalue:n.numberscalevalue.concat(),numberprefix:n.numberprefix,numbersuffix:n.numbersuffix,decimalprecision:parseInt(pluck(G.yaxisvaluedecimals,n.decimalprecision,2),10),forcedecimals:pluck(G.forceyaxisvaluedecimals,n.forcedecimals),decimalseparator:n.decimalseparator,thousandseparator:n.thousandseparator,thousandseparatorposition:n.thousandseparatorposition.concat(),indecimalseparator:n.indecimalseparator,inthousandseparator:n.inthousandseparator,scalerecursively:v,maxscalerecursion:y,scaleseparator:B},q={cacheStore:[],formatnumber:pluck(G.sformatnumber,numberFormatDefaults.sformatnumber),formatnumberscale:pluck(G.sformatnumberscale,numberFormatDefaults.sformatnumberscale),forcenumberscale:pluck(G.sforcenumberscale,numberFormatDefaults.sforcenumberscale),defaultnumberscale:getFirstValue(G.sdefaultnumberscale,n.defaultnumberscale),numberscaleunit:pluck(d,numberFormatDefaults.snumberscaleunit).concat(),numberscalevalue:pluck(m,numberFormatDefaults.snumberscalevalue).concat(),numberprefix:getFirstValue(G.snumberprefix,numberFormatDefaults.snumberprefix),numbersuffix:getFirstValue(G.snumbersuffix,numberFormatDefaults.snumbersuffix),decimalprecision:parseInt(pluck(G.syaxisvaluedecimals,G.sdecimals,G.decimals,numberFormatDefaults.sdecimals),10),forcedecimals:pluck(G.forcesyaxisvaluedecimals,G.sforcedecimals,G.forcedecimals,numberFormatDefaults.sforcedecimals),decimalseparator:pluck(G.decimalseparator,numberFormatDefaults.decimalseparator),thousandseparator:pluck(G.thousandseparator,numberFormatDefaults.thousandseparator),thousandseparatorposition:n.thousandseparatorposition.concat(),indecimalseparator:pluck(G.indecimalseparator,numberFormatDefaults.indecimalseparator),inthousandseparator:pluck(G.inthousandseparator,numberFormatDefaults.inthousandseparator),scalerecursively:w,maxscalerecursion:z,scaleseparator:C},o=extend2({},q),o.decimalprecision=parseInt(pluck(G.sdecimals,G.decimals,G.syaxisvaluedecimals,numberFormatDefaults.sdecimals),10),o.forcedecimals=pluck(G.sforcedecimals,G.forcedecimals,G.forcesyaxisvaluedecimals,numberFormatDefaults.sforcedecimals),o.cacheStore=[],(!I.useScaleRecursively||(q.numberscalevalue&&q.numberscalevalue.length)!=(q.numberscaleunit&&q.numberscaleunit.length))&&(q.scalerecursively=w=0),/^(bubble|scatter|selectscatter|zoomscatter)$/ig.test(H)&&(p.formatnumber=pluck(G.yformatnumber,p.formatnumber),p.formatnumberscale=pluck(G.yformatnumberscale,p.formatnumberscale),p.forcenumberscale=pluck(G.yforcenumberscale,p.forcenumberscale),p.defaultnumberscale=getFirstValue(G.ydefaultnumberscale,p.defaultnumberscale),p.numberscaleunit=pluck(g,p.numberscaleunit),p.numberscalevalue=pluck(k,p.numberscalevalue),p.numberprefix=pluck(G.ynumberprefix,p.numberprefix),p.numbersuffix=pluck(G.ynumbersuffix,p.numbersuffix),n.formatnumber=pluck(G.yformatnumber,n.formatnumber),n.formatnumberscale=pluck(G.yformatnumberscale,n.formatnumberscale),n.forcenumberscale=pluck(G.yforcenumberscale,n.forcenumberscale),n.defaultnumberscale=getFirstValue(G.ydefaultnumberscale,n.defaultnumberscale),n.numberscaleunit=pluck(G.ynumberscaleunit,n.numberscaleunit.concat()),n.numberscalevalue=pluck(G.ynumberscalevalue,n.numberscalevalue.concat()),n.numberprefix=pluck(G.ynumberprefix,n.numberprefix),n.numbersuffix=pluck(G.ynumbersuffix,n.numbersuffix)),/^(pie2d|pie3d|doughnut2d|doughnut3d|marimekko|pareto2d|pareto3d)$/.test(H)&&(n.decimalprecision=pluck(G.decimals,TWOSTRING)),v&&(n.numberscalevalue.push(1),n.numberscaleunit.unshift(n.defaultnumberscale),p.numberscalevalue.push(1),p.numberscaleunit.unshift(p.defaultnumberscale)),w&&(q.numberscalevalue.push(1),q.numberscaleunit.unshift(q.defaultnumberscale),o.numberscalevalue.push(1),o.numberscaleunit.unshift(o.defaultnumberscale)),E.Y[0]={yAxisLabelConf:p,dataLabelConf:n},E.Y[1]={yAxisLabelConf:q,dataLabelConf:o},E.paramLabels=n,E.param1=p,E.param2=q,E.paramLabels2=o),E.paramX={cacheStore:[],formatnumber:pluck(G.xformatnumber,r.formatnumber),formatnumberscale:pluck(G.xformatnumberscale,r.formatnumberscale),forcenumberscale:pluck(G.xforcenumberscale,r.forcenumberscale),defaultnumberscale:getFirstValue(G.xdefaultnumberscale,r.defaultnumberscale),numberscaleunit:pluck(e,r.numberscaleunit.concat()),numberscalevalue:pluck(i,r.numberscalevalue.concat()),numberprefix:pluck(G.xnumberprefix,r.numberprefix),numbersuffix:pluck(G.xnumbersuffix,r.numbersuffix),decimalprecision:parseInt(pluck(G.xaxisvaluedecimals,G.xaxisvaluesdecimals,r.decimalprecision,2),10),forcedecimals:pluck(G.forcexaxisvaluedecimals,0),decimalseparator:r.decimalseparator,thousandseparator:r.thousandseparator,thousandseparatorposition:r.thousandseparatorposition.concat(),indecimalseparator:r.indecimalseparator,inthousandseparator:r.inthousandseparator,scalerecursively:x,maxscalerecursion:A,scaleseparator:D},E.paramLegend=extend2(extend2({},r),{cacheStore:[],decimalprecision:parseInt(pluckNumber(G.legendvaluedecimals,r.decimalprecision,2),10),forcedecimals:pluckNumber(G.legendvalueforcedecimals,r.forcedecimals,0),formatnumberscale:pluck(G.legendvalueformatnumberscale,r.formatnumberscale),forcenumberscale:pluck(G.legendvalueforcenumberscale,r.forcenumberscale),formatnumber:pluck(G.legendvalueformatnumber,r.formatnumber)}),v&&(E.paramLegend.numberscalevalue.push(1),E.paramLegend.numberscaleunit.unshift(E.paramLegend.defaultnumberscale)),I.useScaleRecursively&&(E.paramX.numberscalevalue&&E.paramX.numberscalevalue.length)==(E.paramX.numberscaleunit&&E.paramX.numberscaleunit.length)||(E.paramX.scalerecursively=x=0),x&&(E.paramX.numberscalevalue.push(1),E.paramX.numberscaleunit.unshift(E.paramX.defaultnumberscale)),E.paramScale={cacheStore:[],formatnumber:pluck(G.tickformatnumber,r.formatnumber),formatnumberscale:pluck(G.tickformatnumberscale,r.formatnumberscale),forcenumberscale:pluck(G.tickforcenumberscale,r.forcenumberscale),defaultnumberscale:getFirstValue(G.tickdefaultnumberscale,r.defaultnumberscale),numberscaleunit:pluck(f,r.numberscaleunit.concat()),numberscalevalue:pluck(j,r.numberscalevalue.concat()),numberprefix:pluck(G.ticknumberprefix,r.numberprefix),numbersuffix:pluck(G.ticknumbersuffix,r.numbersuffix),decimalprecision:parseInt(pluck(G.tickvaluedecimals,r.decimalprecision,TWOSTRING),10),forcedecimals:pluck(G.forcetickvaluedecimals,r.forcedecimals,0),decimalseparator:r.decimalseparator,thousandseparator:r.thousandseparator,thousandseparatorposition:r.thousandseparatorposition.concat(),indecimalseparator:r.indecimalseparator,inthousandseparator:r.inthousandseparator,scalerecursively:v,maxscalerecursion:y,scaleseparator:B},v&&(E.paramScale.numberscalevalue.push(1),E.paramScale.numberscaleunit.unshift(E.paramScale.defaultnumberscale)),E.timeConf={inputDateFormat:pluck(G.inputdateformat,G.dateformat,'mm/dd/yyyy'),outputDateFormat:pluck(G.outputdateformat,G.inputdateformat,G.dateformat,'mm/dd/yyyy'),days:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],months:['January','February','March','April','May','June','July','August','September','October','November','December'],daySuffix:['','st','nd','rd','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','st','nd','rd','th','th','th','th','th','th','th','st']},E.cleaneValueCacheStore={},E.percentStrCacheStore={}}dispose(){var a=this;a.Y&&delete a.Y,a.cleaneValueCacheStore&&delete a.cleaneValueCacheStore,a.percentStrCacheStore&&delete a.percentStrCacheStore,a.paramLabels&&delete a.paramLabels,a.param1&&delete a.param1,a.param2&&delete a.param2,a.paramLabels2&&delete a.paramLabels2,a.csConf&&delete a.csConf,a.chart&&delete a.chart,a.baseConf&&delete a.baseConf,a.timeConf&&delete a.timeConf,a.paramX&&delete a.paramX,a.paramScale&&delete a.paramScale}parseMLAxisConf(a,b){var c,d,e,f,g,h,i,j,k=this.baseConf,l=this.csConf,m=pluckNumber(a.scalerecursively,k.scalerecursively),n=pluckNumber(a.maxscalerecursion,k.maxscalerecursion),o=getValidValue(a.scaleseparator,k.scaleseparator);if(b=pluckNumber(b,this.Y.length),getValidValue(a.numberscaleunit)&&(d=a.numberscaleunit.split(COMMASTRING)),getValidValue(a.numberscalevalue)&&(e=a.numberscalevalue.split(COMMASTRING)),n||(n=-1),getValidValue(a.thousandseparatorposition))for(g=a.thousandseparatorposition.split(COMMASTRING),h=g.length,j=numberFormatDefaults.thousandseparatorposition[0];h--;)i=pluckNumber(mathAbs(g[h])),i?j=i:i=j,g[h]=i;c={cacheStore:[],formatnumber:pluck(a.formatnumber,k.formatnumber),formatnumberscale:pluck(a.formatnumberscale,k.formatnumberscale),forcenumberscale:pluck(a.forcenumberscale,k.forcenumberscale),defaultnumberscale:getFirstValue(a.defaultnumberscale,k.defaultnumberscale),numberscaleunit:pluck(d,k.numberscaleunit).concat(),numberscalevalue:pluck(e,k.numberscalevalue).concat(),numberprefix:getFirstValue(a.numberprefix,k.numberprefix),numbersuffix:getFirstValue(a.numbersuffix,k.numbersuffix),forcedecimals:pluck(a.forcedecimals,k.forcedecimals),decimalprecision:parseInt(a.decimals===AUTOSTRING?l.decimalprecision:pluck(a.decimals,k.decimalprecision),10),decimalseparator:pluck(a.decimalseparator,k.decimalseparator),thousandseparator:pluck(a.thousandseparator,k.thousandseparator),thousandseparatorposition:pluck(g,k.thousandseparatorposition),indecimalseparator:getFirstValue(a.indecimalseparator,k.indecimalseparator),inthousandseparator:getFirstValue(a.inthousandseparator,k.inthousandseparator),scalerecursively:m,maxscalerecursion:n,scaleseparator:o},this.useScaleRecursively&&(c.numberscalevalue&&c.numberscalevalue.length)==(c.numberscaleunit&&c.numberscaleunit.length)||(c.scalerecursively=m=0),f={cacheStore:[],formatnumber:c.formatnumber,formatnumberscale:c.formatnumberscale,forcenumberscale:c.forcenumberscale,defaultnumberscale:c.defaultnumberscale,numberscaleunit:c.numberscaleunit.concat(),numberscalevalue:c.numberscalevalue.concat(),numberprefix:c.numberprefix,numbersuffix:c.numbersuffix,decimalprecision:parseInt(pluck(a.yaxisvaluedecimals,c.decimalprecision,2),10),forcedecimals:pluck(a.forceyaxisvaluedecimals,c.forcedecimals),decimalseparator:c.decimalseparator,thousandseparator:c.thousandseparator,thousandseparatorposition:c.thousandseparatorposition.concat(),indecimalseparator:c.indecimalseparator,inthousandseparator:c.inthousandseparator,scalerecursively:m,maxscalerecursion:n,scaleseparator:o},m&&(c.numberscalevalue.push(1),c.numberscaleunit.unshift(c.defaultnumberscale),f.numberscalevalue.push(1),f.numberscaleunit.unshift(f.defaultnumberscale)),this.Y[b]={dataLabelConf:c,yAxisLabelConf:f}}percentValue(a){var b,c=this.percentStrCacheStore[a];return c===UNDEF&&(b=isNaN(this.paramLabels.decimalprecision)?'2':this.paramLabels.decimalprecision,c=this.percentStrCacheStore[a]=formatCommas(formatDecimals(a,b,this.paramLabels.forcedecimals),this.paramLabels.decimalseparator,this.paramLabels.thousandseparator,this.paramLabels.thousandseparatorposition)+'%'),c}yAxisPercentValue(a,b){window.th=this;var c,d,e=this.Y[b]||(b?this.Y[1]:this.Y[0]);return e=e&&e.yAxisLabelConf||this.baseConf,c=e.cacheStore[a],c===UNDEF&&(d=isNaN(e.decimalprecision)?'2':e.decimalprecision,c=e.cacheStore[a]=formatCommas(formatDecimals(a,d,e.forcedecimals),e.decimalseparator,e.thousandseparator,e.thousandseparatorposition)+'%'),c}getCleanValue(a,b){var c,d=this.cleaneValueCacheStore[a];return(d===UNDEF||b)&&(c=convertNumberSeps(a,this.baseConf),this.cleaneValueCacheStore[a]=d=isNaN(c)?null:b?mathAbs(c):c),d}dataLabels(a,b){var c,d=this.Y[b]||(b?this.Y[1]:this.Y[0]);return d=d&&d.dataLabelConf||this.baseConf,c=d.cacheStore[a],c===UNDEF&&(c=d.cacheStore[a]=formatNumber(a,d)),c}formatValue(a){var b,c=this.baseConf;return b=c.cacheStore[a],b===UNDEF&&(b=c.cacheStore[a]=formatNumber(a,c)),b}yAxis(a,b){var c,d=this.Y[b]||(b?this.Y[1]:this.Y[0]);return d=d&&d.yAxisLabelConf||this.baseConf,c=d.cacheStore[a],c===UNDEF&&(c=d.cacheStore[a]=formatNumber(a,d,!0)),c}xAxis(a){var b=this.paramX.cacheStore[a];return b===UNDEF&&(b=this.paramX.cacheStore[a]=formatNumber(a,this.paramX,!0)),b}sYAxis(a){var b,c=this.Y[1];return c=c&&c.yAxisLabelConf||this.baseConf,b=c.cacheStore[a],b===UNDEF&&(b=c.cacheStore[a]=formatNumber(a,c)),b}scale(a){var b=this.paramScale.cacheStore[a];return b===UNDEF&&(b=this.paramScale.cacheStore[a]=formatNumber(a,this.paramScale)),b}legendValue(a){var b=this.paramLegend.cacheStore[a];return b===UNDEF&&(b=this.paramLegend.cacheStore[a]=formatNumber(a,this.paramLegend)),b}legendPercentValue(a){var b,c=this.percentStrCacheStore[a],d=this.paramLegend;return c===UNDEF&&(b=isNaN(d.decimalprecision)?'2':d.decimalprecision,c=this.percentStrCacheStore[a]=formatCommas(formatDecimals(a,b,d.forcedecimals),d.decimalseparator,d.thousandseparator,d.thousandseparatorposition)+'%'),c}getDateValue(a){var b,c,d,e,f;return a&&!/\//.test(this.timeConf.inputDateFormat)&&(a=a.replace(new RegExp(this.timeConf.inputDateFormat.replace(/[a-z]/ig,BLANK).slice(0,1),'g'),'/')),a=/^dd/.test(this.timeConf.inputDateFormat)&&a&&a.replace(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/,'$2/$1/$3')||a,b=new Date(a),f=b.getTime(),!f&&a&&/\:/.test(a)&&(a=a.split(':'),c=pluckNumber(a[0],0),d=pluckNumber(a[1],0),e=pluckNumber(a[2],0),c=23<c?24===c&&0===d&&0===e?c:23:c,d=59<d?59:d,e=59<e?59:e,b=new Date,b.setHours(c),b.setMinutes(d),b.setSeconds(e),f=b.getTime()),{ms:f,date:b}}getFormattedDate(a,b){var c='object'==typeof a&&a||new Date(a),d=this.timeConf,e=pluck(b,d.outputDateFormat),f=c.getFullYear(),g=c.getMonth(),h=c.getDate(),i=c.getDay(),j=c.getMinutes(),k=c.getSeconds(),l=c.getHours();return j=9<j?BLANK+j:ZEROSTRING+j,k=9<k?BLANK+k:ZEROSTRING+k,l=9<l?BLANK+l:ZEROSTRING+l,e.match(/dnl/)&&(e=e.replace(/dnl/ig,d.days[i])),e.match(/dns/)&&(e=e.replace(/dns/ig,d.days[i]&&d.days[i].substr(0,3))),e.match(/dd/)&&(e=e.replace(/dd/ig,h)),e.match(/mnl/)&&(e=e.replace(/mnl/ig,d.months[g])),e.match(/mns/)&&(e=e.replace(/mns/ig,d.months[g]&&d.months[g].substr(0,3))),e.match(/mm/)&&(e=e.replace(/mm/ig,g+1)),e.match(/yyyy/)&&(e=e.replace(/yyyy/ig,f)),e.match(/yy/)&&(e=e.replace(/yy/ig,(f%1e3%100+'').replace(/^(\d)$/,'0$1'))),e.match(/hh12/)&&(e=e.replace(/hh12/ig,l%12||12)),e.match(/hh/)&&(e=e.replace(/hh/ig,l)),e.match(/mn/)&&(e=e.replace(/mn/ig,j)),e.match(/ss/)&&(e=e.replace(/ss/ig,k)),e.match(/ampm/)&&(e=e.replace(/ampm/ig,12>l?'AM':'PM')),e.match(/ds/)&&(e=e.replace(/ds/ig,d.daySuffix[h])),e}}formatNumber=function(a,b,c){var d,e,f,g,h,j,k,l,m,n,o,p=Math.abs;if(null!==a){if(a=+a,d=a+BLANK,e=1==b.formatnumberscale?b.defaultnumberscale:BLANK,m=d.split(DECIMALSTRING)[1],n=m?m.length:b.forcedecimals?TWOSTRING:BLANK,1==b.formatnumberscale&&(o=formatNumberScale(a,b.defaultnumberscale,b.numberscalevalue,b.numberscaleunit,b.scalerecursively,b.forcenumberscale),d=o.value,a=o.value,e=o.scale),b.scalerecursively&&0!==b.formatnumberscale&&'0'!==b.formatnumberscale){if(f=o.value,g=o.scale,h=-1==b.maxscalerecursion?f.length:Math.min(f.length,b.maxscalerecursion),1==b.formatnumber)for(d='',l=0;l<h;l++)j=0===l?f[l]:p(f[l]),k=j+BLANK,l==h-1&&(k=formatDecimals(j,pluck(b.decimalprecision,n),b.forcedecimals)),d=d+formatCommas(k,b.decimalseparator,b.thousandseparator,b.thousandseparatorposition)+g[l]+(l<h-1?b.scaleseparator:'');else for(d='',l=0;l<h;l++)d=d+(0===l?f[l]:p(f[l])+BLANK)+g[l]+(l<h-1?b.scaleseparator:'');d=(b.numberprefix||BLANK)+d+(b.numbersuffix||BLANK)}else 1==b.formatnumber&&(d=formatDecimals(a,pluck(b.decimalprecision,n),b.forcedecimals),d=formatCommas(d,b.decimalseparator,b.thousandseparator,b.thousandseparatorposition,c)),d=(b.numberprefix||BLANK)+d+e+(b.numbersuffix||BLANK);return d}},formatNumberScale=function(a,b,c,d,e,f){var g,h,j,k,l=Math.abs,m={},n=b,o=0,p=[],q=[];if(f=pluckNumber(f)||0,e){for(g=pluckNumber(c[0])||1000,o=0;o<c.length;o++)if(j=pluckNumber(c[o])||1000,l(+a)>=j&&o<c.length-1)k=a%j,a=(a-k)/j,0==o&&0!==k&&d[o]===BLANK&&f?(p.push(k/g),q.push(d[1]||BLANK)):0!==k&&(1==o&&b===BLANK&&f?(h=k+(p.length?p.pop():0),q.pop(),p.push(h)):p.push(k),q.push(d[o]));else{0==o&&b===BLANK&&f?(a=+a/g,p.push(a),q.push(d[1]||BLANK)):(1==o&&b===BLANK&&f?(h=a+(p.length?p.pop():0),q.pop(),p.push(h)):p.push(a),q.push(d[o]));break}p.reverse(),q.reverse(),m.value=p,m.scale=q}else{if(c.length===d.length)for(o=0;o<c.length;o++)if(j=pluckNumber(c[o])||1000,j&&l(+a)>=j)n=d[o]||BLANK,a=+a/j;else{0==o&&b===BLANK&&f&&(n=d[0]||BLANK,a=+a/j);break}m.value=a,m.scale=n}return m},formatDecimals=function(a,b,c){var d,e,f,g,h;if(0>=b)return mathRound(a)+BLANK;if(isNaN(b))return a+=BLANK,12<a.length&&-1!=a.indexOf(DECIMALSTRING)&&(b=12-a.split(DECIMALSTRING)[0].length,d=mathPow(10,b),e=mathRound(a*d)/d+BLANK,a=e),a;if(d=mathPow(10,b),e=mathRound(a*d)/d+BLANK,1==c)for(-1==e.indexOf(DECIMALSTRING)&&(e+='.0'),f=e.split(DECIMALSTRING),g=b-f[1].length,h=1;h<=g;h++)e+=ZEROSTRING;return e},formatCommas=function(a,b,c,d,e){var f,g,h,i,j=+a,k=BLANK,l=!1,m=BLANK,n=BLANK,o=0,p=0;if(isNaN(j))return BLANK;if(1000000000000000<j)return f=e?1:14,j.toExponential(f);if(o=0,p=a.length,-1!=a.indexOf(DECIMALSTRING)&&(k=a.substring(a.indexOf(DECIMALSTRING)+1,a.length),p=a.indexOf(DECIMALSTRING)),0>j&&(l=!0,o=1),m=a.substring(o,p),g=m.length,h=d.length-1,i=d[h],g<i)n=m;else for(;g>=i;)n=(g-i?c:BLANK)+m.substr(g-i,i)+n,g-=i,i=0>=(h-=1)?d[0]:d[h],g<i&&(n=m.substring(g,0)+n);return k!=BLANK&&(n=n+b+k),!0==l&&(n=MINUSSTR+n),n},convertNumberSeps=function(a,b){return a+=BLANK,b._REGinthousandseparator&&(a=a.replace(b._REGinthousandseparator,BLANK)),b._REGindecimalseparator&&(a=a.replace(b._REGindecimalseparator,DECIMALSTRING)),a=parseFloat(a),isFinite(a)?a:NaN};export default NumberFormatter;