UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 2.98 kB
import ColumnDataset from'../column';import{BLANKSTRING,pluckNumber,preDefStr}from'../../../../fc-core/src/lib';import{addDep}from'../../../../fc-core/src/dependency-manager';import barAnimation from'./index.animation';let UNDEF,visibleStr=preDefStr.visibleStr,hiddenStr=preDefStr.hiddenStr,POSITION_MIDDLE=preDefStr.POSITION_MIDDLE,POSITION_START=preDefStr.POSITION_START,POSITION_END=preDefStr.POSITION_END,math=Math,mathMin=math.min,mathMax=math.max,defined=function(a){return a!==UNDEF&&null!==a},drawLabel=function(){var a,b,c,d,e,f,g,h,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A=this,B=A.getFromEnv('chart'),C=B.config,D=A.config.JSONData,E=A.getFromEnv('animationManager'),F=B.getChildren('canvas')[0].config,G=B.config.dataLabelStyle,H=D.data,I=B.config.categories,J=B.config.is3D,K=B.config.isstacked,L=I&&I.length,M=H&&H.length,N=A.getData(),O=B.getFromEnv('smartLabel'),P=F.yDepth,Q=F.xDepth,R=B.getFromEnv('number-formatter'),S='',T=C.placevaluesinside,U=C.canvasWidth,V=C.canvasLeft,W=C.valuepadding+2,X=A.getContainer('labelGroup'),Y=A.getSkippingInfo&&A.getSkippingInfo(),Z=Y&&Y.skippingApplied,$=Y&&Y.labelDraw||[],_=$.length,aa=A.getState('visible'),ba=function(){this.hide()};for(aa&&X.show(),O.setStyle(G),a=Z?_:L<M?L:M,e=0;e<a;e++){if(d=Z?$[e]:e,b=N[d],v=b&&b.config,r=v&&v.setValue,b===UNDEF||r===UNDEF||null===r||!0===v.labelSkip){z=b&&b.graphics,z&&z.label&&z.label.hide(),v&&delete v.labelSkip;continue}(g=b.graphics,!!g)&&(f=H[d],o=b._yPos,p=b._xPos,r=R.getCleanValue(f.value),n=0>pluckNumber(r),h=b._height,q=b._width,s=K?POSITION_MIDDLE:n?T?POSITION_START:POSITION_END:T?POSITION_END:POSITION_START,S=v.displayValue,x=g.label,v.showValue&&defined(S)&&S!==BLANKSTRING&&null!==r?(c={text:S,fill:G.color,"text-bound":[G.backgroundColor,G.borderColor,G.borderThickness,G.borderPadding,G.borderRadius,G.borderDash],"line-height":G.lineHeight,visibility:A.getState('visible')?visibleStr:hiddenStr},y=O.getOriSize(S),t=y.width,t+=W,u=W,k=o+.5*h,l=p+(n?0:q),m=n?p-V:V+U-(p+q),K?(l+=.5*(n?q:-q),l=mathMax(V+.5*t,l),l=mathMin(V+U-.5*t,l),l-=J?Q:0,k+=J?P:0):T?q>=t?(l+=n?u:-u,J&&(k+=P,l-=Q)):t<m?(l+=n?-u:u,s=n?POSITION_END:POSITION_START,J&&n&&(l-=Q)):(n?(l=p+q+mathMax(t-p-q+V,0)-u,s=POSITION_END):(l=p-mathMax(t-(V+U-p),0)+u,s=POSITION_START),J&&(l-=Q,k+=P)):m>=t?(l+=n?-u:u,J&&n&&(l-=Q,k+=Q)):(l+=n?u+t:-(u+t),J&&(l-=Q,k+=P)),(l>V+U||l<V)&&(l=V+4,s=POSITION_START),c['text-anchor']=s,c.x=l,c.y=k,c['text-bound']=[G.backgroundColor,G.borderColor,G.borderThickness,G.borderPadding,G.borderRadius,G.borderDash],c.opacity=aa?1:0,w=E.setAnimation({el:x||'text',container:X,component:A,attr:c,callback:!aa&&ba,label:'plotLabel'}),!x&&(g.label=w)):g.label&&(g.label=E.setAnimation({el:g.label,component:A})))}A.config.labelDrawn=!0};addDep({name:'barAnimation',type:'animationRule',extension:barAnimation});class Bar2DDataset extends ColumnDataset{getType(){return'dataset'}getName(){return'bar2D'}drawLabel(){drawLabel.call(this)}}export{drawLabel};export default Bar2DDataset;