quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 4.39 kB
JavaScript
import Linedataset from'../../../../fc-charts/src/dataset/line';import{pluckNumber,pluck,getFirstValue,toRaphaelColor,preDefStr}from'../../../../fc-core/src/lib';import{addDep}from'../../../../fc-core/src/dependency-manager';import boxandwhiskerlineAnimation from'./boxandwhiskerline.animation';let UNDEF,POLYGON=preDefStr.POLYGON,SPOKE=preDefStr.SPOKE,BOLDSTARTTAG='<b>',BOLDENDTAG='</b>',createGroup=function(a,b,c){var d=c.getFromEnv('animationManager');return d.setAnimation({el:'group',attr:a,container:b,component:c,label:'group'})};addDep({name:'boxandwhiskerlineAnimation',type:'animationRule',extension:boxandwhiskerlineAnimation});class BoxAndWhiskerLinedataset extends Linedataset{getName(){return'boxandwhiskerline'}createCoordinates(){var a,b,c,d,e,f=this,g=f.components,h=g.data,j=f.getFromEnv('yAxis'),k=f.getFromEnv('xAxis'),l=h.length,m=f.components,n=m.data,o=f.getFromEnv('columnXShift'),p=f.getFromEnv('columnWidth');for(c=0;c<l;c++)(a=n[c],b=a&&a.config,a!==UNDEF)&&(d=k.getPixel(b._x),e=j.getPixel(b._y),b._Px=d+o+p/2,b._Py=e)}getAllPlots(a,b){let c,d,e=this.components.data,f=[];for(c=0,d=e.length;c<d;c++)(e[c].config._x>=a||e[c].config._x<=b)&&f.push(e[c]);return f}calculateScrollRange(){let a=this,b=a.config,c=a.components.data;b.scrollMinVal=0,b.scrollMaxVal=c.length,b.scrollMinValForLabel=b.scrollMinVal,b.scrollMaxValForLabel=b.scrollMaxVal}_getHoveredPlot(a,b){var c,d,e,f,g,h,i=this,k=i.getFromEnv('xAxis'),l=i.components,m=l.data,n=m.length,o=i.config,p=o&&o.radius||0;for(a+=k.getTranslation(),d=Math.floor(Math.max(k.getValue(a-p),0)),e=Math.ceil(Math.min(k.getValue(a+p),n-1)),h=i.getAllPlots(d,e),g=h.length;0<=g&&(c=h[g],!(c&&(f=i.isWithinShape(c,g,a,b),f)));g--);return f}_addLegend(a){if(a){var b,c,d=this,e=d.getFromEnv('chart'),f=d.config,g=e.getChildren('legend')[0],h=pluckNumber(f.drawanchors,1);f.includeinlegend?(c={anchorSide:h?f.anchorsides:0,label:getFirstValue(f.JSONData.seriesname),customLegendIcon:!1,spoke:'spoke'===f.dip?1:0,drawLine:!f.showline,index:d.getJSONIndex()},b=g.getItem(d.config.legendItemId),!b&&(d.config.legendItemId=g.createItem(d),b=g.getItem(d.config.legendItemId),d.addExtEventListener('fc-click',function(){b.itemClickFn()},b)),b.configure(c),b.setStateCosmetics('default',{symbol:{fill:toRaphaelColor({color:f.anchorbgcolor,alpha:f.anchorbgalpha}),rawFillColor:f.anchorbgcolor,stroke:toRaphaelColor({color:f.anchorbordercolor,alpha:'100'})},background:{legendBackgroundColor:toRaphaelColor(d.getFromEnv('legendBackgroundColor')),alpha:20}}),d.getState('visible')?b.removeLegendState('hidden'):b.setLegendState('hidden')):d.config.legendItemId&&g.disposeItem(d.config.legendItemId)}}configureAttributes(a){super.configureAttributes(a);var b=this,c=b.config.JSONData,d=b.config;b.setState('visible',b.getLinkedParent().getState('visible')),d.skipCommonElements=c.showline,d.dip=c.dip}createContainer(){var a,b,c=this,d=c.getType(),e=c.groupName,f=c.getLinkedParent().getLinkedParent(),g=e||c.dsGroup||d;f.getChildContainer(g+'VcanvasGroup')||(g='default'),a=f.getChildContainer('manager-defaultVcanvasGroup-lines'),b=f.getChildContainer(g+'ShadowVcanvasGroup'),c.getContainer('shadowGroup')||c.addContainer('shadowGroup',createGroup({name:'shadow-group'},b,c)),c.getContainer('commonElemsGroup')||c.addContainer('commonElemsGroup',createGroup({name:'common-elems-group'},a,c)),c.getContainer('plotGroup')||c.addContainer('plotGroup',createGroup({name:'common-elems-group'},a,c)),c.getContainer('labelGroup')||c.addContainer('labelGroup',createGroup({name:'label-group',class:'fusioncharts-datalabels',opacity:1},f.getChildContainer('vcanvasLabelGroup'),c))}_setConfigure(a,b){var c,d,e,f,g,h,j,k,l=this,m=l.getFromEnv('chart'),n=l.config,o=m.config,p=l.config.JSONData,q=a||p.data||[],r=l.getFromEnv('xAxis'),s=r.getTicksLen(),t=a&&a.data.length,u='Outliers'===p.seriesname?q.length:t||Math.min(s,q.length);for(n.imageCount=0,e=l.components.data,e||(e=l.components.data=[]),n.maxRadius=-Infinity,f=0;f<u;f++)a?(c=a&&a.data[f]||{},b===UNDEF?(k=e.length-u+f,d=e[k]):(k=b+f,d=e[k]),g=k):(d=e[f],c=q&&q[f]||{},g=f),d||(d=e[g]={}),d.config||(d.config={}),d.graphics||(d.graphics={}),l._plotConfigure(g,c,t),k&&k++,h=d&&d.config,j=pluck(c.dip,p.dip),h.dip=j===POLYGON?0:j===SPOKE?1:0,h.toolText=h.finalTooltext=BOLDSTARTTAG+p.seriesname+o.tooltipsepchar+BOLDENDTAG+h.displayValue}}export default BoxAndWhiskerLinedataset;