UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 4.9 kB
import Column from'../../../../fc-charts/src/dataset/column';import{pluck,pluckNumber,getValidValue,extend2,getDashStyle,parseUnsafeString,preDefStr,getFirstValue,getFirstColor}from'../../../../fc-core/src/lib';import{_parseToolText as __parseToolText}from'./candlestick';let colorStrings=preDefStr.colors,COLOR_B90000=colorStrings.B90000,DASH_DEF='none',SHOWSHADOW='showShadow',COLOR_FFFFFF=colorStrings.FFFFFF;class Volume extends Column{configureAttributes(a){var b=Math.min,c=Math.max;if(!a)return!1;this.trimData(a),this.config.JSONData=a;var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=this,w=v.config,y=v.config.JSONData,z=y.data||[],A=v.getFromEnv('chart-attrib'),B=v.getFromEnv('chartConfig'),C=z.length,D=v.getFromEnv('color-manager'),E=w.bearBorderColor=getFirstColor(pluck(A.bearbordercolor,B.vplotbordercolor,COLOR_B90000)),F=w.bearFillColor=getFirstColor(pluck(A.bearfillcolor,COLOR_B90000)),G=w.bullBorderColor=getFirstColor(pluck(A.bullbordercolor,B.vplotbordercolor,D.getColor('canvasBorderColor'))),H=w.bullFillColor=getFirstColor(pluck(A.bullfillcolor,COLOR_FFFFFF)),I=pluckNumber(B.showplotborder,1),J=I?pluckNumber(A.vplotborderthickness,1):0,K=v.getFromEnv('number-formatter'),L=-Infinity,M=+Infinity,N=-Infinity,O=+Infinity,P=v.getFromEnv('number-formatter');for(v.setState('visible',1===pluckNumber(y.visible,1)),!0===v.getState('visible')?v._conatinerHidden=!1:v._containerHidden=!0,w.parentYAxis=1,w.volumeToolText=getValidValue(parseUnsafeString(pluck(y.volumetooltext,A.volumetooltext,A.plottooltext))),w.name=getValidValue(y.seriesname),w.showTooltip=pluck(A.showtooltip,1),w.showShadow=pluckNumber(A.showshadow,D.getColor(SHOWSHADOW)),u=pluck(A.maxcolwidth),w.maxColWidth=Math.abs(pluckNumber(u,50))||1,t=c(pluckNumber(A.plotspacepercent,20)%100,0),w.plotSpacePercent=w.groupPadding=t/200,w.plotborderthickness=J,q=v.components.data=v.components.data||(v.components.data=[]),n=extend2(extend2({},A),{sforcedecimals:getFirstValue(A.forcevdecimals,A.forcedecimals),sforceyaxisvaluedecimals:getFirstValue(A.forcevyaxisvaluedecimals,A.forceyaxisvaluedecimals),syaxisvaluedecimals:getFirstValue(A.vyaxisvaluedecimals,A.yaxisvaluedecimals),sformatnumber:getFirstValue(A.vformatnumber,A.formatnumber),sformatnumberscale:getFirstValue(A.vformatnumberscale,A.formatnumberscale,'1'),sdefaultnumberscale:getFirstValue(A.vdefaultnumberscale,A.defaultnumberscale),snumberscaleunit:getFirstValue(A.vnumberscaleunit,A.numberscaleunit),vnumberscalevalue:getFirstValue(A.vnumberscalevalue,A.numberscalevalue),sscalerecursively:getFirstValue(A.vscalerecursively,A.scalerecursively),smaxscalerecursion:getFirstValue(A.vmaxscalerecursion,A.maxscalerecursion),sscaleseparator:getFirstValue(A.vscaleseparator,A.scaleseparator),snumberprefix:getFirstValue(A.vnumberprefix,A.numberprefix),snumbersuffix:getFirstValue(A.vnumbersuffix,A.numbersuffix),sdecimals:getFirstValue(A.vdecimals,A.decimals)}),o=w.plotLineDashLen=pluckNumber(A.plotlinedashlen,5),p=w.plotLineDashGap=pluckNumber(A.plotlinedashgap,4),P.configure(n),g=0;g<C;g+=1)r=z[g],h=q[g],h||(h=q[g]={}),h.config||(h.config={}),h.graphics||(h.graphics={}),s=h.config,r&&!r.vline&&(i=s.open=K.getCleanValue(r.open),j=s.close=K.getCleanValue(r.close),k=s.volume=K.getCleanValue(r.volume,!0),s.high=K.getCleanValue(r.high),s.low=K.getCleanValue(r.low),l=s.x=K.getCleanValue(r.x),L=c(L,k),M=b(M,k),N=c(N,l),O=b(O,l),s.borderColor=getFirstColor(pluck(r.bordercolor,j<i?E:G)),e=pluckNumber(r.alpha,100),m=pluckNumber(B.vplotborderalpha,r.alpha,100),d=getFirstColor(pluck(r.color,j<i?F:H)),f={opacity:w.showShadow?e/100:0},s.color=d,s.alpha=e,s.setLink=r.link,s.borderWidth=J,s.borderAlpha=m,s.y=k,s.colorArr=[{color:s.color,alpha:s.alpha},{color:s.borderColor,alpha:s.borderAlpha}],s.toolText=v._parseToolText(g),s.toolTipValue='',s.setValue=s._y=s.y,s.plotBorderDashStyle=pluckNumber(r.dashed)?getDashStyle(o,p):DASH_DEF,l=null===l?g+1:l,s._x=l,s.shadow=f);w.defaultPadding={left:0,right:0},w.yMax=L,w.yMin=M,w.xMax=N,w.xMin=O,v.setState('dirty',!0)}_parseToolText(a){return __parseToolText.call(this,a)}getPlotIndices(a){var b,c,d=this,e=Math.floor(a),f=Math.ceil(a),g=[],h=d.config.JSONData&&d.config.JSONData.data;for(b=h.length;b--;)c=h[b],c.x>=e&&c.x<=f&&g.push(b);return g}_getHoveredPlot(a,b){var c,d,e,f,g,h=this,j=h.getFromEnv('xAxis');for(a+=j.getTranslation(),c=j.getValue(a),f=h.getPlotIndices(c),d=f.length-1;-1<d&&(g=f[d],e=0<g-c?h._checkPointerOverColumn(g,a,b)||h._checkPointerOverColumn(g-1,a,b):h._checkPointerOverColumn(g+1,a,b)||h._checkPointerOverColumn(g,a,b),!e);d--);return e}getDataLimits(){var a=this.config;return{max:a.yMax,min:a.yMin,xMax:a.xMax,xMin:a.xMin}}calculateScrollRange(){let a=this,b=a.config,c=a.components.data&&a.components.data.length;b.scrollMinVal=0,b.scrollMaxVal=c,b.scrollMinValForLabel=b.scrollMinVal,b.scrollMaxValForLabel=b.scrollMaxVal}drawLabel(){}getName(){return'volume'}}export default Volume;