quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 13.9 kB
JavaScript
import{ComponentInterface}from'../../../../../fc-core/src/component-interface';import{pluck,pluckNumber,setLineHeight,getDashStyle,getValidValue,getFirstValue,preDefStr,HUNDREDSTRING,convertColor}from'../../../../../fc-core/src/lib';import{addDep}from'../../../../../fc-core/src/dependency-manager';import quadrantAnimation from'./index.animation';var BLANKSTRING='',PXSTRING='px',DASH_DEF='none',NORMALSTRING='normal',POSITION_START=preDefStr.POSITION_START,POSITION_TOP=preDefStr.POSITION_TOP,POSITION_BOTTOM=preDefStr.POSITION_BOTTOM,POSITION_END=preDefStr.POSITION_END;addDep({name:'quadrantAnimation',type:'animationRule',extension:quadrantAnimation});class Quadrant extends ComponentInterface{constructor(){super();var a=this;a.pIndex=1,a.components={},a.conf={},a.graphics={}}getType(){return'canvas'}getName(){return'quadrant'}configure(){var a,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=this,A=z.conf,B=z.getFromEnv('chart'),C=B.config,D=B.getFromEnv('dataSource').chart,E=B.getChildren('canvas')[0],F=E.config,G=C.dataLabelStyle,H=B.getFromEnv('smartLabel');y=A.enabled=pluckNumber(D.drawquadrant,0),y&&(q=pluckNumber(D.quadrantxval),r=pluckNumber(D.quadrantyval),s=convertColor(pluck(D.quadrantlinecolor,F.canvasBorderColor),pluck(D.quadrantlinealpha,D.quadrantlinealpha,HUNDREDSTRING)),t=pluckNumber(D.quadrantlinethickness,F.canvasBorderThickness),v=pluckNumber(D.quadrantlinedashed,D.quadrantlineisdashed,0),u=pluckNumber(D.quadrantlinedashlen,4),w=pluckNumber(D.quadrantlinedashgap,2),x=v?getDashStyle(u,w):DASH_DEF,A.xVal=q,A.yVal=r,A.quadrantLineColor=s,A.quadrantLineThickness=t,A.dashStyle=x,m=getValidValue(D.quadrantlabeltl,BLANKSTRING),n=getValidValue(D.quadrantlabeltr,BLANKSTRING),o=getValidValue(D.quadrantlabelbl,BLANKSTRING),p=getValidValue(D.quadrantlabelbr,BLANKSTRING),A.quadrantLabelPadding=pluckNumber(D.quadrantlabelpadding,3),H.useEllipsesOnOverflow(C.useEllipsesWhenOverflow),H.setStyle(G),m===BLANKSTRING?A.tlConfig&&(A.tlConfig.label=m):(f=getFirstValue(D.quadrantlabeltlbordercolor,D.quadrantlabelbordercolor,BLANKSTRING),g=pluck(D.quadrantlabeltlbgcolor,D.quadrantlabelbgcolor),h=pluckNumber(D.quadrantlabeltlborderthickness,D.quadrantlabelborderthickness,1),f=f?convertColor(f,pluckNumber(D.quadrantlabeltlborderalpha,D.quadrantlabelborderalpha,D.quadrantlabeltlalpha,D.quadrantlabelalpha,100)):BLANKSTRING,i=A.tlConfig,!i&&(i=A.tlConfig={enabled:!0,styleObj:{}}),i.label=m,i.styleObj.fontSize=pluck(pluckNumber(D.quadrantlabeltlfontsize,D.quadrantlabelfontsize),parseInt(G.fontSize,10))+PXSTRING,i.styleObj.lineHeight=G.lineHeight,i.styleObj.fontFamily=pluck(D.quadrantlabeltlfont,D.quadrantlabelfont,G.fontFamily),i.styleObj.color=convertColor(pluck(D.quadrantlabeltlfontcolor,D.quadrantlabelfontcolor,G.color),pluckNumber(D.quadrantlabeltlfontalpha,D.quadrantlabelfontalpha,100)),i.styleObj.fontWeight=pluckNumber(D.quadrantlabeltlfontbold,D.quadrantlabelfontbold)?'bold':NORMALSTRING,i.styleObj.fontStyle=pluckNumber(D.quadrantlabeltlfontitalic,D.quadrantlabelfontitalic)?'italic':NORMALSTRING,setLineHeight(i.styleObj),a=f,b=pluckNumber(D.quadrantlabeltlborderpadding,D.quadrantlabelborderpadding,2),c=pluckNumber(D.quadrantlabeltlborderradius,D.quadrantlabelborderradius,0),d=g?convertColor(g,pluckNumber(D.quadrantlabeltlbgalpha,D.quadrantlabelbgalpha,D.quadrantlabeltlalpha,D.quadrantlabelalpha,100)):BLANKSTRING,e=pluckNumber(D.quadrantlabeltlborderdashed,D.quadrantlabelborderdashed,0)?getDashStyle(pluckNumber(D.quadrantlabeltlborderdashlen,D.quadrantlabelborderdashlen,4),pluckNumber(D.quadrantlabeltlborderdashgap,D.quadrantlabelborderdashgap,2)):DASH_DEF,i['text-bound']=[d,a,h,b,c,e]),n===BLANKSTRING?A.trConfig&&(A.trConfig.label=n):(f=getFirstValue(D.quadrantlabeltrbordercolor,D.quadrantlabelbordercolor,BLANKSTRING),g=pluck(D.quadrantlabeltrbgcolor,D.quadrantlabelbgcolor),h=pluckNumber(D.quadrantlabeltrborderthickness,D.quadrantlabelborderthickness,1),f=f?convertColor(f,pluckNumber(D.quadrantlabeltrborderalpha,D.quadrantlabelborderalpha,D.quadrantlabeltralpha,D.quadrantlabelalpha,100)):BLANKSTRING,j=A.trConfig,!j&&(j=A.trConfig={enabled:!0,styleObj:{}}),j.label=getValidValue(D.quadrantlabeltr,BLANKSTRING),j.styleObj.fontSize=pluck(pluckNumber(D.quadrantlabeltrfontsize,D.quadrantlabelfontsize),parseInt(G.fontSize,10))+PXSTRING,j.styleObj.lineHeight=G.lineHeight,j.styleObj.fontFamily=pluck(D.quadrantlabeltrfont,D.quadrantlabelfont,G.fontFamily),j.styleObj.color=convertColor(pluck(D.quadrantlabeltrfontcolor,D.quadrantlabelfontcolor,G.color),pluckNumber(D.quadrantlabeltrfontalpha,D.quadrantrabelfontalpha,100)),j.styleObj.fontWeight=pluckNumber(D.quadrantlabeltrfontbold,D.quadrantlabelfontbold)?'bold':NORMALSTRING,j.styleObj.fontStyle=pluckNumber(D.quadrantlabeltrfontitalic,D.quadrantlabelfontitalic)?'italic':NORMALSTRING,setLineHeight(j.styleObj),a=f,b=pluckNumber(D.quadrantlabeltrborderpadding,D.quadrantlabelborderpadding,2),c=pluckNumber(D.quadrantlabeltrborderradius,D.quadrantlabelborderradius,0),d=g?convertColor(g,pluckNumber(D.quadrantlabeltrbgalpha,D.quadrantlabelbgalpha,D.quadrantlabeltralpha,D.quadrantlabelalpha,100)):BLANKSTRING,e=pluckNumber(D.quadrantlabeltrborderdashed,D.quadrantlabelborderdashed,0)?getDashStyle(pluckNumber(D.quadrantlabeltrborderdashlen,D.quadrantlabelborderdashlen,4),pluckNumber(D.quadrantlabeltrborderdashgap,D.quadrantlabelborderdashgap,2)):DASH_DEF,j['text-bound']=[d,a,h,b,c,e]),o===BLANKSTRING?A.blConfig&&(A.blConfig.label=o):(f=getFirstValue(D.quadrantlabelblbordercolor,D.quadrantlabelbordercolor,BLANKSTRING),g=pluck(D.quadrantlabelblbgcolor,D.quadrantlabelbgcolor),h=pluckNumber(D.quadrantlabelblborderthickness,D.quadrantlabelborderthickness,1),f=f?convertColor(f,pluckNumber(D.quadrantlabelblborderalpha,D.quadrantlabelborderalpha,D.quadrantlabelblalpha,D.quadrantlabelalpha,100)):BLANKSTRING,k=A.blConfig,!k&&(k=A.blConfig={enabled:!0,styleObj:{}}),k.label=o,k.styleObj.fontSize=pluck(pluckNumber(D.quadrantlabelblfontsize,D.quadrantlabelfontsize),parseInt(G.fontSize,10))+PXSTRING,k.styleObj.lineHeight=G.lineHeight,k.styleObj.fontFamily=pluck(D.quadrantlabelblfont,D.quadrantlabelfont,G.fontFamily),k.styleObj.color=convertColor(pluck(D.quadrantlabelblfontcolor,D.quadrantlabelfontcolor,G.color),pluckNumber(D.quadrantlabelblfontalpha,D.quadrantlabelfontalpha,100)),k.styleObj.fontWeight=pluckNumber(D.quadrantlabelblfontbold,D.quadrantlabelfontbold)?'bold':NORMALSTRING,k.styleObj.fontStyle=pluckNumber(D.quadrantlabelblfontitalic,D.quadrantlabelfontitalic)?'italic':NORMALSTRING,setLineHeight(k.styleObj),a=f,b=pluckNumber(D.quadrantlabelblborderpadding,D.quadrantlabelborderpadding,2),c=pluckNumber(D.quadrantlabelblborderradius,D.quadrantlabelborderradius,0),d=g?convertColor(g,pluckNumber(D.quadrantlabelblbgalpha,D.quadrantlabelbgalpha,D.quadrantlabelblalpha,D.quadrantlabelalpha,100)):BLANKSTRING,e=pluckNumber(D.quadrantlabelblborderdashed,D.quadrantlabelborderdashed,0)?getDashStyle(pluckNumber(D.quadrantlabelblborderdashlen,D.quadrantlabelborderdashlen,4),pluckNumber(D.quadrantlabelblborderdashgap,D.quadrantlabelborderdashgap,2)):DASH_DEF,k['text-bound']=[d,a,h,b,c,e]),p===BLANKSTRING?A.brConfig&&(A.brConfig.label=p):(f=getFirstValue(D.quadrantlabelbrbordercolor,D.quadrantlabelbordercolor,BLANKSTRING),g=pluck(D.quadrantlabelbrbgcolor,D.quadrantlabelbgcolor),h=pluckNumber(D.quadrantlabelbrborderthickness,D.quadrantlabelborderthickness,1),f=f?convertColor(f,pluckNumber(D.quadrantlabelbrborderalpha,D.quadrantlabelborderalpha,D.quadrantlabelbralpha,D.quadrantlabelalpha,100)):BLANKSTRING,l=A.brConfig,!l&&(l=A.brConfig={enabled:!0,styleObj:{}}),l.label=getValidValue(D.quadrantlabelbr,BLANKSTRING),l.styleObj.fontSize=pluck(pluckNumber(D.quadrantlabelbrfontsize,D.quadrantlabelfontsize),parseInt(G.fontSize,10))+PXSTRING,l.styleObj.lineHeight=G.lineHeight,l.styleObj.fontFamily=pluck(D.quadrantlabelbrfont,D.quadrantlabelfont,G.fontFamily),l.styleObj.color=convertColor(pluck(D.quadrantlabelbrfontcolor,D.quadrantlabelfontcolor,G.color),pluckNumber(D.quadrantlabelbrfontalpha,D.quadrantrabelfontalpha,100)),l.styleObj.fontWeight=pluckNumber(D.quadrantlabelbrfontbold,D.quadrantlabelfontbold)?'bold':NORMALSTRING,l.styleObj.fontStyle=pluckNumber(D.quadrantlabelbrfontitalic,D.quadrantlabelfontitalic)?'italic':NORMALSTRING,setLineHeight(l.styleObj),d=g?convertColor(g,pluckNumber(D.quadrantlabelbrbgalpha,D.quadrantlabelbgalpha,D.quadrantlabelbralpha,D.quadrantlabelalpha,100)):BLANKSTRING,a=f,b=pluckNumber(D.quadrantlabelbrborderpadding,D.quadrantlabelborderpadding,2),c=pluckNumber(D.quadrantlabelbrborderradius,D.quadrantlabelborderradius,0),e=pluckNumber(D.quadrantlabelbrborderdashed,D.quadrantlabelborderdashed,0)?getDashStyle(pluckNumber(D.quadrantlabelbrborderdashlen,D.quadrantlabelborderdashlen,4),pluckNumber(D.quadrantlabelbrborderdashgap,D.quadrantlabelborderdashgap,2)):DASH_DEF,l['text-bound']=[d,a,h,b,c,e]))}_preDraw(){var a,b,c,d,e,f,g=this,h=g.conf,i=g.getFromEnv('chart'),j=i.getChildren('xAxis')[0],k=i.getChildren('yAxis')[0],l=j.getLimit(),m=k.getLimit(),n=l.max,o=m.max,p=l.min,q=m.min,r=i.config,s=r.canvasWidth,t=r.canvasHeight,u=h.quadrantLabelPadding,v=h.tlConfig,w=h.trConfig,x=h.blConfig,y=h.brConfig;return a=h.xVal||(h.xVal=(p+n)/2),b=h.yVal||(h.yVal=(q+o)/2),b>=q&&b<=o&&a>=p&&a<=n?(c=s/(n-p)*(a-p),d=s-c,f=t/(o-q)*(b-q),e=t-f,c-=u,d-=u,e-=u,f-=u,(0>e||0>c)&&(v.enabled=!1),(0>e||0>d)&&(w.enabled=!1),(0>f||0>c)&&(x.enabled=!1),(0>f||0>c)&&(y.enabled=!1)):h.enabled=!1,g}_createGroups(){var a,b=this,c=b.getFromEnv('chart'),d=c.getFromEnv('animationManager'),e=c.getChildren('canvas')[0].getChildContainer('quadrantGroup'),f=b.getContainer('quadrantChildContainer'),g=b.getContainer('quadrantLineGroup'),h=b.getContainer('quadrantTLGroup'),i=b.getContainer('quadrantTRGroup'),j=b.getContainer('quadrantBLGroup'),k=b.getContainer('quadrantBRGroup');a=d.setAnimation({el:f||'group',attr:{name:'quadrant-child-container'},container:e,component:b,label:'group'}),f||b.addContainer('quadrantChildContainer',a),b.addContainer('quadrantLineGroup',d.setAnimation({el:g||'group',attr:{name:'quadrantLineGroup'},container:a,component:b,label:'group'})),b.addContainer('quadrantTLGroup',d.setAnimation({el:h||'group',attr:{name:'quadrantTLGroup'},container:a,component:b,label:'group'})),b.addContainer('quadrantTRGroup',d.setAnimation({el:i||'group',attr:{name:'quadrantTRGroup'},container:a,component:b,label:'group'})),b.addContainer('quadrantBLGroup',d.setAnimation({el:j||'group',attr:{name:'quadrantBLGroup'},container:a,component:b,label:'group'})),b.addContainer('quadrantBRGroup',d.setAnimation({el:k||'group',attr:{name:'quadrantBRGroup'},container:a,component:b,label:'group'}))}draw(){var a,b,c,d,e,f,g,h=this._preDraw(),i=h.conf,j=h.getFromEnv('chart'),k=j.config,l=k.reverseXAxis,m={wrtVisible:!0},n=h.getFromEnv('smartLabel'),o=h.getFromEnv('animationManager'),p=h.graphics,q=p.tlLabel,r=p.trLabel,s=p.blLabel,t=p.brLabel,u=k.textDirection,v=j.getChildren('xAxis')[0],w=j.getChildren('yAxis')[0],x=i.tlConfig||{},y=i.trConfig||{},z=i.blConfig||{},A=i.brConfig||{},B=x.enabled&&x.label,C=y.enabled&&y.label,D=z.enabled&&z.label,E=A.enabled&&A.label,F=k.canvasLeft,G=k.canvasTop,H=i.quadrantLabelPadding,I=v.getLimit(),J=w.getLimit(),K=l?I.min:I.max,L=l?I.max:I.min,M=J.max,N=J.min,O=v.getPixel(L,m)+H,P=v.getPixel(K,m)-H,Q=w.getPixel(N,m)-H,R=w.getPixel(M,m)+H,S=v.getPixel(i.xVal,m),T=w.getPixel(i.yVal,m),U=S-O,V=P-S,W=T-R,X=Q-T,Y=p.horizontalQuadLine,Z=p.verticalQuadLine,$=function(){this.hide()};h._createGroups(),b=h.getContainer('quadrantChildContainer'),c=h.getContainer('quadrantLineGroup'),d=h.getContainer('quadrantTLGroup'),e=h.getContainer('quadrantTRGroup'),f=h.getContainer('quadrantBLGroup'),g=h.getContainer('quadrantBRGroup'),i.enabled?(b.show(),p.horizontalQuadLine=o.setAnimation({el:Y||'path',container:c,attr:{path:'M'+F+' '+T+'h'+k.canvasWidth,stroke:i.quadrantLineColor,"stroke-dasharray":i.dashStyle,"stroke-width":i.quadrantLineThickness,"stroke-linecap":'butt'},component:h,label:'path'}),p.verticalQuadLine=o.setAnimation({el:Z||'path',container:c,attr:{path:'M'+S+' '+G+'v'+k.canvasHeight,stroke:i.quadrantLineColor,"stroke-width":i.quadrantLineThickness,"stroke-dasharray":i.dashStyle,"stroke-linecap":'butt'},component:h,label:'path'}),B?(n.useEllipsesOnOverflow(k.useEllipsesWhenOverflow),n.setStyle(i.tlConfig.styleObj),a=n.getSmartText(B,U,W),q=p.tlLabel=o.setAnimation({el:q||'text',attr:{"text-anchor":POSITION_START,"vertical-align":POSITION_TOP,x:O,y:R,text:a.text,direction:u,"text-bound":i.tlConfig['text-bound']},container:d,component:h,label:'text'}),q.css(i.tlConfig.styleObj)):q&&o.setAnimation({el:q,callback:$,component:this,label:'text'}),C?(n.setStyle(i.trConfig.styleObj),a=n.getSmartText(C,V,W),r=p.trLabel=o.setAnimation({el:r||'text',attr:{"text-anchor":POSITION_END,"vertical-align":POSITION_TOP,direction:u,x:P,y:R,text:a.text,"text-bound":i.trConfig['text-bound']},container:e,component:h,label:'text'}),r.css(i.trConfig.styleObj)):r&&o.setAnimation({el:r,callback:$,component:this,label:'text'}),D?(n.setStyle(i.blConfig.styleObj),a=n.getSmartText(D,U,X),s=p.blLabel=o.setAnimation({el:s||'text',attr:{"text-anchor":POSITION_START,"vertical-align":POSITION_BOTTOM,direction:u,x:O,y:Q,text:a.text,"text-bound":i.blConfig['text-bound']},container:f,component:h,label:'text'}),s.css(i.blConfig.styleObj)):s&&o.setAnimation({el:s,callback:$,component:this,label:'text'}),E?(n.setStyle(i.brConfig.styleObj),a=n.getSmartText(E,V,X),t=p.brLabel=o.setAnimation({el:t||'text',attr:{"text-anchor":POSITION_END,"vertical-align":POSITION_BOTTOM,direction:u,x:P,y:Q,text:a.text,"text-bound":i.brConfig['text-bound']},container:g,component:h,label:'text'}),t.css(i.brConfig.styleObj)):t&&o.setAnimation({el:t,callback:$,component:this,label:'text'})):b&&o.setAnimation({el:b,component:h,doNotRemove:!0,callback:function(){this.hide()},label:'group'})}}export default Quadrant;