UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 11.7 kB
import MSCartesian from'../../../../fc-charts/src/chart/_internal/mscartesian';import HeatMapDataset from'../../dataset/heatmap';import HeatMapGroup from'../../dataset/groups/heatmap';import axisFactory from'../../factories/category-axis';import dataSetFactory from'../../../../fc-charts/src/factories/multiseries-dataset';import createColorRangeManager from'../../../../fc-charts/src/factories/colorrange';import decideLegendCreation from'../../../../fc-charts/src/factories/legendmanager';import{chartPaletteStr,convertColor,hasSVG,pluck,pluckFontSize,preDefStr,pluckNumber}from'../../../../fc-core/src/lib';let UNDEFINED,defaultFontStr=preDefStr.defaultFontStr,divLineAlpha3DStr=preDefStr.divLineAlpha3DStr,divLineAlphaStr=preDefStr.divLineAlphaStr,altVGridColorStr=preDefStr.altVGridColorStr,altVGridAlphaStr=preDefStr.altVGridAlphaStr,altHGridColorStr=preDefStr.altHGridColorStr,altHGridAlphaStr=preDefStr.altHGridAlphaStr,colorStrings=preDefStr.colors,COLOR_000000=colorStrings.c000000;class HeatMap extends MSCartesian{static getName(){return'HeatMap'}constructor(){super(),this.tooltipsepchar=' = ',this.hasGradientLegend=!0,this.registerFactory('axis',axisFactory,['canvas']),this.registerFactory('legend',decideLegendCreation,['canvas']),this.registerFactory('colormanager-decider',createColorRangeManager,['legend']),this.registerFactory('dataset',dataSetFactory,['colormanager-decider','vCanvas'])}getName(){return'HeatMap'}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.isSingleSeries=!0,a.friendlyName='Heatmap Chart',a.hasLegend=!0,a.defaultDatasetType='heatmap',a.enablemousetracking=!0}_checkInvalidSpecificData(){let a=this.getFromEnv('dataSource'),b=a.dataset,c=a.colorrange;if(!b||!c||!c.color&&!+c.gradient)return!0}parseChartAttr(a){super.parseChartAttr(a),this.config.drawTrendRegion=0}configureAttributes(a){var b,c,d,e=this,f=e.config,g=e.getFromEnv('dataSource'),h=e.config.skipConfigureIteration={},k=a.dataset,l=[];if(b=g.rows&&g.rows.row.filter(a=>''!==a.id&&void 0!==a.id),c=g.columns&&g.columns.column.filter(a=>''!==a.id&&void 0!==a.id),!b||!c){for(let a=0;a<k.length;a++)for(let b=0;b<k[a].data.length;b++)l.push(k[a].data[b]);b||(b=l.map(a=>a.rowid).filter((a,b,c)=>c.indexOf(a)===b)),c||(c=l.map(a=>a.columnid).filter((a,b,c)=>c.indexOf(a)===b))}e.parseChartAttr(a),e.addToEnv('chartColorRange',a.colorrange||{}),e.createComponent(a),e._feedAxesRawData(),h.axis=!0,e.addToEnv('totalRows',b.length),e.addToEnv('totalColumns',c.length),e._createToolBox(),e.configureChildren(),e.asyncDraw(),d=e.getFromEnv('toolTipController'),d.setStyle({backgroundColor:hasSVG?convertColor(f.tooltipbgcolor||'FFF',f.tooltipbgalpha||100):(f.tooltipbgcolor||'FFF').replace(/\s+/g,'').replace(/^#?([a-f0-9]+)/ig,'#$1'),color:(f.tooltipcolor||f.basefontcolor||'545454').replace(/^#?([a-f0-9]+)/ig,'#$1'),borderColor:hasSVG?convertColor(f.tooltipbordercolor||'666',f.tooltipborderalpha||100):(f.tooltipbordercolor||'666').replace(/\s+/g,'').replace(/^#?([a-f0-9]+)/ig,'#$1'),borderWidth:pluckNumber(f.tooltipborderthickness,1)+'px',showToolTipShadow:pluckNumber(f.showtooltipshadow||0),borderRadius:pluckNumber(f.tooltipborderradius,0),fontSize:pluckNumber(f.basefontsize,10)+'px',fontFamily:f.basefont||this.getFromEnv('style').inCanfontFamily,padding:pluckNumber(f.tooltippadding||3)+'px'})}_postSpaceManagement(){var a=this,b=a.config,c=a.getChildren('xAxis')[0],d=a.getFromEnv('legend'),e=b.xDepth;a.setAxisDimention(),c&&c.shiftLabels(-e,0),d&&d.postSpaceManager(),a.allocateDimensionOfChartMenuBar()}setAxisDimention(){var a=Math.max;let b=this,c=b.getChildren('xAxis')&&b.getChildren('xAxis')[0],d=b.getChildren('yAxis')&&b.getChildren('yAxis')[0],e=b.getFromEnv('chartConfig'),f=e.placeAxisLabelsOnTop,g=b.getChildren('canvas')[0],h=g.config,{left:i,top:j,width:k,height:l,paddingLeft:m,paddingRight:n}=g.getEffectiveDimensions(),o=h&&h.canvasBorderWidth,p=h&&h.canvasPadding;c&&c.setAxisConfig({canvasPaddingLeft:a(m,p),canvasPaddingRight:a(n,p)}),c&&c.setAxisDimention({x:i,y:f?j+(e.shift||0)-o:j+l+(e.shift||0)+o,opposite:f?j+l+o:j-o,axisLength:k}),d&&d.setAxisDimention({x:i-o,y:j,opposite:i+k+o,axisLength:l})}_feedAxesRawData(){var a,b,c=this,d=c.getFromEnv('color-manager'),e=c.getFromEnv('dataSource'),f=e.chart,g=c.config.is3D,h=g?chartPaletteStr.chart3D:chartPaletteStr.chart2D;return a={mapTickValuesById:!0,isVertical:!1,isReverse:!1,isOpposit:!!c.config.placeAxisLabelsOnTop,outCanfontFamily:pluck(f.outcnvbasefont,f.basefont,defaultFontStr),outCanfontSize:pluckFontSize(f.outcnvbasefontsize,f.basefontsize,10),outCancolor:pluck(f.outcnvbasefontcolor,f.basefontcolor,d.getColor(h.baseFontColor)).replace(/^#?([a-f0-9]+)/ig,'#$1'),axisNamePadding:f.xaxisnamepadding,axisValuePadding:f.labelpadding,axisNameFont:f.xaxisnamefont,axisNameFontSize:f.xaxisnamefontsize,axisNameFontColor:f.xaxisnamefontcolor,axisNameFontBold:f.xaxisnamefontbold,axisNameFontItalic:f.xaxisnamefontitalic,axisNameBgColor:f.xaxisnamebgcolor,axisNameBorderColor:f.xaxisnamebordercolor,axisNameAlpha:f.xaxisnamealpha,axisNameFontAlpha:f.xaxisnamefontalpha,axisNameBgAlpha:f.xaxisnamebgalpha,axisNameBorderAlpha:f.xaxisnameborderalpha,axisNameBorderPadding:f.xaxisnameborderpadding,axisNameBorderRadius:f.xaxisnameborderradius,axisNameBorderThickness:f.xaxisnameborderthickness,axisNameBorderDashed:f.xaxisnameborderdashed,axisNameBorderDashLen:f.xaxisnameborderdashlen,axisNameBorderDashGap:f.xaxisnameborderdashgap,useEllipsesWhenOverflow:f.useellipseswhenoverflow,divLineColor:pluck(f.vdivlinecolor,f.divlinecolor,d.getColor(h.divLineColor)),divLineAlpha:pluck(f.vdivlinealpha,f.divlinealpha,g?d.getColor(divLineAlpha3DStr):d.getColor(divLineAlphaStr)),divLineThickness:pluckNumber(f.vdivlinethickness,f.divlinethickness,1),divLineIsDashed:!!pluckNumber(f.vdivlinedashed,f.vdivlineisdashed,f.divlinedashed,f.divlineisdashed,0),divLineDashLen:pluckNumber(f.vdivlinedashlen,f.divlinedashlen,4),divLineDashGap:pluckNumber(f.vdivlinedashgap,f.divlinedashgap,2),showAlternateGridColor:pluckNumber(f.showalternatevgridcolor,0),alternateGridColor:pluck(f.alternatevgridcolor,d.getColor(altVGridColorStr)),alternateGridAlpha:pluck(f.alternatevgridalpha,d.getColor(altVGridAlphaStr)),numDivLines:f.numvdivlines,labelFont:f.labelfont,labelFontSize:f.labelfontsize,labelFontColor:f.labelfontcolor,labelFontAlpha:f.labelalpha,labelFontBold:f.labelfontbold,labelFontItalic:f.labelfontitalic,axisName:f.xaxisname,axisMinValue:f.xaxisminvalue,axisMaxValue:f.xaxismaxvalue,setAdaptiveMin:f.setadaptivexmin,adjustDiv:f.adjustvdiv,labelDisplay:f.labeldisplay,showLabels:pluckNumber(f.showxaxislabels,f.showlabels),rotateLabels:f.rotatexaxislabels,slantLabel:pluckNumber(f.slantlabels,f.slantlabel),labelStep:pluckNumber(f.labelstep,f.xaxisvaluesstep),showAxisValues:pluckNumber(f.showxaxisvalues,f.showxaxisvalue),maxLabelHeight:f.maxlabelheight,showZeroPlane:f.showvzeroplane,zeroPlaneColor:f.vzeroplanecolor,zeroPlaneThickness:f.vzeroplanethickness,zeroPlaneAlpha:f.vzeroplanealpha,showZeroPlaneValue:f.showvzeroplanevalue,trendlineColor:f.trendlinecolor,trendlineToolText:f.trendlinetooltext,trendlineThickness:f.trendlinethickness,trendlineAlpha:f.trendlinealpha,showTrendlinesOnTop:f.showtrendlinesontop,showAxisLine:pluckNumber(f.showxaxisline,f.showaxislines,f.drawAxisLines,0),axisLineThickness:pluckNumber(f.xaxislinethickness,f.axislinethickness,1),axisLineAlpha:pluckNumber(f.xaxislinealpha,f.axislinealpha,100),axisLineColor:pluck(f.xaxislinecolor,f.axislinecolor,COLOR_000000)},b={mapTickValuesById:!0,isVertical:!0,isReverse:!1,isOpposit:!1,outCanfontFamily:pluck(f.outcnvbasefont,f.basefont,defaultFontStr),outCanfontSize:pluckFontSize(f.outcnvbasefontsize,f.basefontsize,10),outCancolor:pluck(f.outcnvbasefontcolor,f.basefontcolor,d.getColor(h.baseFontColor)).replace(/^#?([a-f0-9]+)/ig,'#$1'),axisNamePadding:f.yaxisnamepadding,axisValuePadding:f.yaxisvaluespadding,axisNameFont:f.yaxisnamefont,axisNameFontSize:f.yaxisnamefontsize,axisNameFontColor:f.yaxisnamefontcolor,axisNameFontBold:f.yaxisnamefontbold,axisNameFontItalic:f.yaxisnamefontitalic,axisNameBgColor:f.yaxisnamebgcolor,axisNameBorderColor:f.yaxisnamebordercolor,axisNameAlpha:f.yaxisnamealpha,axisNameFontAlpha:f.yaxisnamefontalpha,axisNameBgAlpha:f.yaxisnamebgalpha,axisNameBorderAlpha:f.yaxisnameborderalpha,axisNameBorderPadding:f.yaxisnameborderpadding,axisNameBorderRadius:f.yaxisnameborderradius,axisNameBorderThickness:f.yaxisnameborderthickness,axisNameBorderDashed:f.yaxisnameborderdashed,axisNameBorderDashLen:f.yaxisnameborderdashlen,axisNameBorderDashGap:f.yaxisnameborderdashgap,axisNameWidth:f.yaxisnamewidth,useEllipsesWhenOverflow:f.useellipseswhenoverflow,rotateAxisName:pluckNumber(f.rotateyaxisname,1),axisName:f.yaxisname,showAlternateGridColor:pluckNumber(f.showalternatehgridcolor,1),alternateGridColor:pluck(f.alternatehgridcolor,d.getColor(altHGridColorStr)),alternateGridAlpha:pluck(f.alternatehgridalpha,d.getColor(altHGridAlphaStr)),numDivLines:f.numdivlines,axisMinValue:f.yaxisminvalue,axisMaxValue:f.yaxismaxvalue,setAdaptiveMin:f.setadaptiveymin,adjustDiv:f.adjustdiv,labelStep:f.yaxisvaluesstep,showLabels:pluckNumber(f.showyaxislabels,f.showlabels),maxLabelWidthPercent:f.maxlabelwidthpercent,showAxisValues:pluckNumber(f.showyaxisvalues,f.showyaxisvalue),divLineColor:pluck(f.hdivlinecolor,d.getColor(h.divLineColor)),divLineAlpha:pluck(f.hdivlinealpha,d.getColor(divLineAlphaStr)),divLineThickness:pluckNumber(f.hdivlinethickness,1),divLineIsDashed:!!pluckNumber(f.hdivlinedashed,f.hdivlineisdashed,0),divLineDashLen:pluckNumber(f.hdivlinedashlen,4),divLineDashGap:pluckNumber(f.hdivlinedashgap,2),showZeroPlane:f.showzeroplane,zeroPlaneColor:f.zeroplanecolor,zeroPlaneThickness:f.zeroplanethickness,zeroPlaneAlpha:f.zeroplanealpha,showZeroPlaneValue:f.showzeroplanevalue,trendlineColor:f.trendlinecolor,trendlineToolText:f.trendlinetooltext,trendlineThickness:f.trendlinethickness,trendlineAlpha:f.trendlinealpha,showTrendlinesOnTop:f.showtrendlinesontop,showAxisLine:pluckNumber(f.showyaxisline,f.showaxislines,f.drawAxisLines,0),axisLineThickness:pluckNumber(f.yaxislinethickness,f.axislinethickness,1),axisLineAlpha:pluckNumber(f.yaxislinealpha,f.axislinealpha,100),axisLineColor:pluck(f.yaxislinecolor,f.axislinecolor,COLOR_000000)},a.vtrendlines=e.vtrendlines,b.trendlines=e.trendlines,{yAxisConf:[b],xAxisConf:[a]}}_setCategories(){var a,b,c,d,e,f,g,h,l,m,n=this,o=n.getFromEnv('dataSource'),p=n.getChildren('xAxis'),q=n.getChildren('yAxis'),r=[],s=[];if(!o.columns||!o.rows)for(o.columns={},o.columns.column=f=[],o.rows={},o.rows.row=g=[],c=0;c<(o.dataset&&o.dataset.length);c++)for(a=o.dataset&&o.dataset[c].data&&o.dataset[c].data.length,b=0;b<a;b++){for(h=!0,l=!0,m=0;m<f.length;m++)o.dataset[c].data[b].columnid==f[m].id&&(h=!1);for(h&&(d={id:o.dataset[c].data[b].columnid,label:o.dataset[c].data[b].columnid},o.columns.column.push(d)),m=0;m<g.length;m++)o.dataset[c].data[b].rowid==g[m].id&&(l=!1);l&&(e={id:o.dataset[c].data[b].rowid,label:o.dataset[c].data[b].rowid},o.rows.row.push(e))}for(f=o.columns.column,g=o.rows.row,b=0;b<(f&&f.length);b++)f[b].label=pluck(f[b].label,f[b].name,f[b].id),f[b].label!==UNDEFINED&&r.push(f[b]);for(o.columns.column=r,b=0;b<(g&&g.length);b++)g[b].label=pluck(g[b].label,g[b].name,g[b].id),g[b].label!==UNDEFINED&&s.push(g[b]);o.rows.row=s,o.columns&&p[0].setTickValues(o.columns.column),o.rows&&q[0].setTickValues(o.rows.row),p[0].setAxisConfig({categoryNumDivLines:n.getFromEnv('totalColumns')-1,categoryDivLinesFromZero:0,showAlternateGridColor:0}),q[0].setAxisConfig({categoryNumDivLines:n.getFromEnv('totalRows')-1,categoryDivLinesFromZero:0,showAlternateGridColor:0})}getDSdef(){return HeatMapDataset}getDSGroupdef(){return HeatMapGroup}}export default HeatMap;