UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.2 kB
import ScaleContinuous,{deInterpolateLinear,copyScale}from'./continuous';import ticks,{tickIncrement}from'../utils/array/ticks';import interpolateNumber from'../utils/interpolators/number';import{tickFormat}from'../../../../fc-utils/src/array/ticks';class ScaleLinear extends ScaleContinuous{constructor(){super(deInterpolateLinear,interpolateNumber)}ticks(a=7){const b=this.getDomain();return this.majorTicks=ticks(b[0],b[b.length-1],a)}tickFormat(a,b){return tickFormat(this.getDomain(),a,b,this._localeConverter)}nice(a=7){var b=Math.ceil,c=Math.floor;let d,e=this.getDomain(),f=0,g=e.length-1,h=e[f],i=e[g];return i<h&&(d=h,h=i,i=d,d=f,f=g,g=d),d=tickIncrement(h,i,a),0<d?(h=c(h/d)*d,i=b(i/d)*d,d=tickIncrement(h,i,a)):0>d&&(h=b(h*d)/d,i=c(i*d)/d,d=tickIncrement(h,i,a)),0<d?(e[f]=c(h/d)*d,e[g]=b(i/d)*d,this.setDomain(e)):0>d&&(e[f]=b(h*d)/d,e[g]=c(i*d)/d,this.setDomain(e)),this}copy(){return copyScale(this,new ScaleLinear)}minorTicks(a=4,b=this.majorTicks||this.ticks()){let c,d,e,f,g=b.length,h=b[1]-b[0],k=[];for(f=0;f<g-1;++f)for(e=b[f],d=h/(+a+1),c=1;c<=a;c+=1)k.push(e+d*c);return k}contextTicks(){return this.contextTicksArr||[]}getType(){return'linear'}}export default ScaleLinear;