UNPKG

@fusioncharts/widgets

Version:

FusionCharts JavaScript charting framework

1 lines 13.6 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _lib=require("@fusioncharts/core/src/lib");var _sscartesian=_interopRequireDefault(require("@fusioncharts/charts/src/chart/_internal/sscartesian"));var UNDEF,math=Math,mathMin=math.min,mathMax=math.max,mathCeil=math.ceil,GUTTER_PADDING=2,defaultGaugePaletteOptions=(0,_lib.extend2)({},_lib.defaultGaugePaletteOptions);var SparkChartBase=function(_SSCartesian){function SparkChartBase(){var _this;_this=_SSCartesian.call(this)||this;_this.showBorder=0;_this.chartTopMargin=3;_this.chartRightMargin=3;_this.chartBottomMargin=3;_this.chartLeftMargin=3;_this.canvasborderthickness=0;_this.subTitleFontSizeExtender=0;_this.subTitleFontWeight=0;_this.defaultPaletteOptions=(0,_lib.extend2)((0,_lib.extend2)({},defaultGaugePaletteOptions),{paletteColors:[["555555","A6A6A6","CCCCCC","E1E1E1","F0F0F0"],["A7AA95","C4C6B7","DEDFD7","F2F2EE"],["04C2E3","66E7FD","9CEFFE","CEF8FF"],["FA9101","FEB654","FED7A0","FFEDD5"],["FF2B60","FF6C92","FFB9CB","FFE8EE"]],bgColor:["FFFFFF","CFD4BE,F3F5DD","C5DADD,EDFBFE","A86402,FDC16D","FF7CA0,FFD1DD"],bgAngle:[270,270,270,270,270],bgRatio:["0,100","0,100","0,100","0,100","0,100"],bgAlpha:["100","60,50","40,20","20,10","30,30"],canvasBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],canvasBgAngle:[0,0,0,0,0],canvasBgAlpha:["100","100","100","100","100"],canvasBgRatio:[_lib.BLANKSTRING,_lib.BLANKSTRING,_lib.BLANKSTRING,_lib.BLANKSTRING,_lib.BLANKSTRING],canvasBorderColor:["BCBCBC","BEC5A7","93ADBF","C97901","FF97B1"],toolTipBgColor:["FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"],toolTipBorderColor:["545454","545454","415D6F","845001","68001B"],baseFontColor:["333333","60634E","025B6A","A15E01","68001B"],trendColor:["666666","60634E","415D6F","845001","68001B"],plotFillColor:["666666","A5AE84","93ADBF","C97901","FF97B1"],borderColor:["767575","545454","415D6F","845001","68001B"],borderAlpha:[50,50,50,50,50],periodColor:["EEEEEE","ECEEE6","E6ECF0","FFF4E6","FFF2F5"],winColor:["666666","60634E","025B6A","A15E01","FF97B1"],lossColor:["CC0000","CC0000","CC0000","CC0000","CC0000"],drawColor:["666666","A5AE84","93ADBF","C97901","FF97B1"],scorelessColor:["FF0000","FF0000","FF0000","FF0000","FF0000"]},false,true);return _this}(0,_inheritsLoose2.default)(SparkChartBase,_SSCartesian);SparkChartBase.getName=function getName(){return"SparkChartBase"};var _proto=SparkChartBase.prototype;_proto.getName=function getName(){return"SparkChartBase"};_proto._fetchCaptionPos=function _fetchCaptionPos(){var extraSpace,iapi=this,caption=iapi.getChildren("caption")[0],captionConfig=caption.config;if(captionConfig.isOnLeft){extraSpace=-1}else{extraSpace=-1}return extraSpace};_proto.parseChartAttr=function parseChartAttr(dataObj){_SSCartesian.prototype.parseChartAttr.call(this,dataObj);var iapi=this,chartAttrs=iapi.getFromEnv("dataSource").chart,config=iapi.config;config.origCanvasLeftMargin=(0,_lib.pluckNumber)(chartAttrs.canvasleftmargin);config.origCanvasRightMargin=(0,_lib.pluckNumber)(chartAttrs.canvasrightmargin);config.origCanvasTopMargin=(0,_lib.pluckNumber)(chartAttrs.canvastopmargin);config.origCanvasBottomMargin=(0,_lib.pluckNumber)(chartAttrs.canvasbottommargin);config.showBorder=(0,_lib.pluckNumber)(chartAttrs.showborder,0)};_proto._spaceManager=function _spaceManager(){var availableWidth,availableHeight,iapi=this,config=iapi.config,canvasBaseDepth=config.canvasBaseDepth,canvas=iapi.getChildren("canvas")[0],captionStyle=iapi.getChildren("caption")[0].config.style,subCaptionStyle=iapi.getChildren("subCaption")[0].config.style,chartAttrs=iapi.getFromEnv("dataSource").chart,style=iapi.getFromEnv("style"),canvasBorderWidth=canvas.config.canvasBorderWidth,chartBorderWidth=config.borderWidth,canvasMarginTop=config.canvasMarginTop,canvasMarginBottom=config.canvasMarginBottom,canvasMarginLeft=config.canvasMarginLeft,canvasMarginRight=config.canvasMarginRight,minCanvasHeight=config.minCanvasHeight,minCanvasWidth=config.minCanvasWidth,height=config.height,width=config.width,diff,heightAdjust=false,widthAdjust=false,top,bottom,left,right,currentCanvasHeight,currentCanvasWidth,origCanvasTopMargin=config.origCanvasTopMargin,origCanvasBottomMargin=config.origCanvasBottomMargin,origCanvasLeftMargin=config.origCanvasLeftMargin,origCanvasRightMargin=config.origCanvasRightMargin,sum;captionStyle.fontSize=(0,_lib.pluckNumber)(this.computeFontSize(chartAttrs.captionfontsize),this.computeFontSize(style.fontSizeWithUnit)+3)+_lib.PXSTRING;(0,_lib.setLineHeight)(captionStyle);subCaptionStyle.fontSize=(0,_lib.pluckNumber)(this.computeFontSize(chartAttrs.subcaptionfontsize),(0,_lib.pluckNumber)(mathMax((0,_lib.pluckNumber)(this.computeFontSize(chartAttrs.captionfontsize))-3,-1),this.computeFontSize(style.fontSizeWithUnit))+(0,_lib.pluckNumber)(iapi.subTitleFontSizeExtender,1))+_lib.PXSTRING;(0,_lib.setLineHeight)(subCaptionStyle);iapi._allocateSpace({top:chartBorderWidth,bottom:chartBorderWidth,left:chartBorderWidth,right:chartBorderWidth});availableHeight=config.availableHeight*.325;iapi._getDSspace&&iapi._allocateSpace(iapi._getDSspace(availableHeight));iapi._allocateSpace(iapi._manageActionBarSpace&&iapi._manageActionBarSpace(config.availableHeight*.225)||{});config.availableWidth=config.width;availableWidth=config.availableWidth*.75;availableWidth=availableWidth-config.origMarginLeft-config.origMarginRight-config.borderWidth*2;availableWidth=mathMax(config.availableWidth*.1,availableWidth);iapi._manageChartMenuBar(availableWidth);availableWidth=(config.availableWidth-config.borderWidth*2)*.75;iapi._placeOpenCloseValues&&iapi._allocateSpace(iapi._placeOpenCloseValues(availableWidth));iapi._allocateSpace({top:canvasBorderWidth,bottom:canvasBorderWidth,left:canvasBorderWidth,right:canvasBorderWidth});iapi._allocateSpace({bottom:canvasBaseDepth});if(minCanvasHeight>height-canvasMarginTop-canvasMarginBottom){heightAdjust=true;diff=config.canvasHeight-minCanvasHeight;sum=canvasMarginTop+canvasMarginBottom;canvasMarginTop=config.canvasMarginTop=diff*canvasMarginTop/sum;canvasMarginBottom=config.canvasMarginBottom=diff*canvasMarginBottom/sum}if(minCanvasWidth>width-canvasMarginLeft-canvasMarginRight){widthAdjust=true;diff=config.canvasWidth-minCanvasWidth;sum=canvasMarginLeft+canvasMarginRight;canvasMarginLeft=config.canvasMarginLeft=diff*canvasMarginLeft/sum;canvasMarginRight=config.canvasMarginRight=diff*canvasMarginRight/sum}top=canvasMarginTop>config.canvasTop?canvasMarginTop-config.canvasTop:0;bottom=canvasMarginBottom>height-config.canvasBottom?canvasMarginBottom+config.canvasBottom-height:0;left=canvasMarginLeft>config.canvasLeft?canvasMarginLeft-config.canvasLeft:0;right=canvasMarginRight>width-config.canvasRight?canvasMarginRight+config.canvasRight-width:0;iapi._allocateSpace({top:top,bottom:bottom,left:left,right:right});if(heightAdjust){sum=origCanvasTopMargin+origCanvasBottomMargin;currentCanvasHeight=config.canvasHeight;if(currentCanvasHeight>minCanvasHeight){diff=currentCanvasHeight-minCanvasHeight;top=diff*origCanvasTopMargin/sum;bottom=diff*origCanvasBottomMargin/sum}iapi._allocateSpace({top:top,bottom:bottom})}if(widthAdjust){sum=origCanvasLeftMargin+origCanvasRightMargin;currentCanvasWidth=config.canvasWidth;if(currentCanvasWidth>minCanvasWidth){diff=currentCanvasWidth-minCanvasWidth;left=diff*origCanvasLeftMargin/sum;right=diff*origCanvasRightMargin/sum}iapi._allocateSpace({left:left,right:right})}if(config.origCanvasLeftMargin!==UNDEF){config.canvasWidth=mathMax(config.canvasWidth+config.canvasLeft-config.origCanvasLeftMargin,config.availableWidth*.2);config.canvasLeft=config.origCanvasLeftMargin}canvas.setDimension({top:config.canvasTop,left:config.canvasLeft,width:config.canvasWidth,height:config.canvasHeight})};_proto._manageCaptionSpacing=function _manageCaptionSpacing(availableWidth){var iapi=this,chartConfig=iapi.config,components=iapi.getChildren(),caption=components.caption&&components.caption[0],subCaption=components.subCaption&&components.subCaption[0],captionConfig=caption.config,subCaptionConfig=subCaption.config,captionComponents=caption.components,chartAttrs=iapi.getFromEnv("dataSource").chart,SmartLabel=iapi.getFromEnv("smartLabel"),titleText=(0,_lib.parseUnsafeString)(chartAttrs.caption),subTitleText=(0,_lib.parseUnsafeString)(chartAttrs.subcaption),captionPadding=captionConfig.captionPadding=(0,_lib.pluckNumber)(chartAttrs.captionpadding,2),chartMenuBar=components.chartMenuBar&&components.chartMenuBar[0],chartMenuLogicalSpace=chartMenuBar&&chartMenuBar.getLogicalSpace(),height=chartConfig.height-(chartMenuLogicalSpace&&chartMenuLogicalSpace.height||0),captionLineHeight=0,subCaptionLineHeight=0,canvasBorderThickness=mathMax(components.canvas&&components.canvas[0].config.canvasBorderThickness,0),captionHeight=0,allowedHeight=height*.7,allowedWidth=availableWidth,dimensions={},maxCaptionWidth,captionObj,subCaptionObj,capStyle,subCapStyle;if(allowedHeight>3){if(captionPadding<canvasBorderThickness){captionPadding=canvasBorderThickness+2}captionConfig.captionPadding=subCaptionConfig.captionPadding=captionPadding;if(titleText!==_lib.BLANKSTRING){capStyle=captionConfig.style;captionLineHeight=captionConfig.captionLineHeight=mathCeil(parseFloat((0,_lib.pluck)(capStyle.fontHeight,capStyle.lineHeight),10),12)}if(subTitleText!==_lib.BLANKSTRING){subCapStyle=subCaptionConfig.style;subCaptionLineHeight=mathCeil(parseInt((0,_lib.pluck)(subCapStyle.lineHeight,subCapStyle.fontHeight),10),12)}SmartLabel.useEllipsesOnOverflow(chartConfig.useEllipsesWhenOverflow);if(captionLineHeight>0||subCaptionLineHeight>0){SmartLabel.setStyle(capStyle);captionObj=SmartLabel.getSmartText(titleText,allowedWidth,height);if(captionObj.width>0){captionObj.width+=GUTTER_PADDING;captionHeight=captionObj.height}SmartLabel.setStyle(subCapStyle);subCaptionObj=SmartLabel.getSmartText(subTitleText,allowedWidth,height-captionHeight);if(subCaptionObj.width>0){subCaptionObj.width+=GUTTER_PADDING}captionConfig.captionSubCaptionGap=captionObj.height+0+subCaptionLineHeight*.2;maxCaptionWidth=Math.max(captionObj.width,subCaptionObj.width);captionConfig.height=captionHeight=captionObj.height;captionConfig.width=captionObj.width;captionConfig.tooltext&&(captionComponents.originalText=captionObj.tooltext);subCaptionConfig.height=captionHeight=subCaptionObj.height;subCaptionConfig.width=subCaptionObj.width;subCaptionConfig.tooltext&&(captionComponents.originalText=subCaptionObj.tooltext);maxCaptionWidth=Math.max(captionObj.width,subCaptionObj.width);captionConfig.captionPadding=captionPadding=mathMin(availableWidth-maxCaptionWidth,captionPadding);if(maxCaptionWidth>0){maxCaptionWidth=mathMin(availableWidth,maxCaptionWidth+captionPadding)}captionConfig.maxCaptionWidth=subCaptionConfig.maxCaptionWidth=maxCaptionWidth;if(captionConfig.isOnLeft){dimensions.left=maxCaptionWidth}else{dimensions.right=maxCaptionWidth}}}return dimensions};_proto._manageCaptionPosition=function _manageCaptionPosition(){var iapi=this,chartConfig=iapi.config,caption=iapi.getChildren("caption")[0],subCaption=iapi.getChildren("subCaption")[0],captionConfig=caption.config,subCaptionConfig=subCaption.config,captionPosition=captionConfig.captionPosition,maxWidth=mathMax(captionConfig.width,subCaptionConfig.width),borderWidth=chartConfig.borderWidth||0,height=chartConfig.height,sparkValues=chartConfig.sparkValues||{},openValueWidth=sparkValues.openValueWidth||0,captionPadding=captionConfig.captionPadding,captionSubCaptionGap=captionConfig.captionSubCaptionGap;switch(captionPosition){case _lib.POSITION_MIDDLE:captionConfig.y=(height-(captionConfig.height+subCaptionConfig.height))/2+(captionConfig._offsetHeight||0)*.5;break;case _lib.POSITION_BOTTOM:captionConfig.y=height-(captionConfig.height+subCaptionConfig.height)-chartConfig.marginBottom-borderWidth;break;default:captionConfig.y=chartConfig.marginTop+borderWidth+(captionConfig._offsetHeight||0);break}subCaptionConfig.y=captionConfig.y+captionSubCaptionGap;if(captionConfig.isOnLeft){captionConfig.align=subCaptionConfig.align=_lib.POSITION_END;captionConfig.x=subCaptionConfig.x=chartConfig.canvasLeft-(borderWidth+openValueWidth+GUTTER_PADDING+captionPadding)+chartConfig.borderWidth}else{captionConfig.align=subCaptionConfig.align=_lib.POSITION_START;captionConfig.x=subCaptionConfig.x=chartConfig.width-chartConfig.marginRight-maxWidth-borderWidth}};_proto._feedAxesRawData=function _feedAxesRawData(){var output=_SSCartesian.prototype._feedAxesRawData.call(this),xAxisConf=output.xAxisConf[0],yAxisConf=output.yAxisConf[0],chartAttr=this.getFromEnv("chart-attrib"),colorM=this.getFromEnv("color-manager"),periodLength=(0,_lib.pluckNumber)(chartAttr.periodlength,0),drawConfig={isDraw:0};xAxisConf.lines=yAxisConf.lines=xAxisConf.band=yAxisConf.band=drawConfig;if(periodLength){xAxisConf.alternateGridColor=(0,_lib.pluck)(chartAttr.periodcolor,colorM.getColor("periodColor"));xAxisConf.alternateGridAlpha=(0,_lib.pluck)(chartAttr.periodalpha,100);xAxisConf.showAlternateGridColor=true;xAxisConf.categoryDivLinesFromZero=0;xAxisConf.periodLength=periodLength;xAxisConf.band={isDraw:1}}return output};_proto._checkInvalidSpecificData=function _checkInvalidSpecificData(){var jsonData=this.getFromEnv("dataSource"),dataset=jsonData.dataset;if(!dataset||!dataset.length||!(dataset[0].data&&dataset[0].data.length)){return true}};return SparkChartBase}(_sscartesian.default);var _default=exports.default=SparkChartBase;