@fusioncharts/charts
Version:
JavaScript Data Visualisation Library
1 lines • 4.7 kB
JavaScript
;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 _caption=_interopRequireDefault(require("../caption"));var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _index=_interopRequireDefault(require("./index.animation"));var mathMax=Math.max,PXSTRING="px",POSITION_CENTER="center",POSITION_TOP="top",POSITION_BOTTOM="bottom",POSITION_MIDDLE="middle";(0,_dependencyManager.addDep)({name:"subcaptionAnimation",type:"animationRule",extension:_index.default});var SubCaption=function(_Caption){function SubCaption(){return _Caption.apply(this,arguments)||this}(0,_inheritsLoose2.default)(SubCaption,_Caption);var _proto=SubCaption.prototype;_proto.getType=function getType(){return"caption"};_proto.getName=function getName(){return"subCaption"};_proto.configure=function configure(){var subCaption=this,chart=subCaption.getFromEnv("chart"),chartAttrs=chart.getFromEnv("chart-attrib"),subCaptionConfig=subCaption.config||{},style=chart.getFromEnv("style"),caption=chart.getChildren("caption")[0],outCanfontFamily=style.outCanfontFamily,outCancolor=style.outCancolor,fontSizeWithUnit=style.fontSizeWithUnit,align=["top","center"];subCaptionConfig.text=(0,_lib.parseUnsafeString)(chartAttrs.subcaption);if(!subCaptionConfig.align){subCaptionConfig.align=_lib.BLANKSTRING}subCaptionConfig.align=(0,_lib.pluck)(chartAttrs.captionposition,chartAttrs.captionalignment,POSITION_CENTER);if(caption.config.align){align=caption.config.align.split("-");align[0]&&(align[0]=align[0].toLowerCase());align[1]&&(align[1]=align[1].toLowerCase());if(align.length<2){align[1]=align[0]}}switch(align[0]){case POSITION_TOP:subCaptionConfig.isOnTop=1;break;case POSITION_BOTTOM:subCaptionConfig.isOnTop=0;break;default:subCaptionConfig.isOnTop=(0,_lib.pluckNumber)(chartAttrs.captionontop,1)}subCaptionConfig.alignWithCanvas=(0,_lib.pluckNumber)(chart.aligncaptionwithcanvas,chartAttrs.aligncaptionwithcanvas,1);subCaptionConfig.horizontalPadding=(0,_lib.pluckNumber)(chartAttrs.captionhorizontalpadding,caption.config.alignWithCanvas?0:15);subCaptionConfig.style={fontFamily:(0,_lib.pluck)(chartAttrs.subcaptionfont,chartAttrs.captionfont,outCanfontFamily),color:(0,_lib.convertColor)((0,_lib.pluck)(chartAttrs.subcaptionfontcolor,chartAttrs.captionfontcolor,outCancolor).replace(/^#? ([a-f0-9]+)/gi,"#$1")),fontSize:(0,_lib.pluckNumber)(this.computeFontSize(chartAttrs.subcaptionfontsize),(0,_lib.pluckNumber)(mathMax((0,_lib.pluckNumber)(this.computeFontSize(chartAttrs.captionfontsize))-3,-1),this.computeFontSize(fontSizeWithUnit))+(0,_lib.pluckNumber)(chart.subTitleFontSizeExtender,1))+PXSTRING,fontWeight:(0,_lib.pluckNumber)(chartAttrs.subcaptionfontbold,chart.subTitleFontWeight,chartAttrs.captionfontbold)===0?_lib.NORMAL:_lib.BOLD};(0,_lib.setLineHeight)(subCaptionConfig.style)};_proto.draw=function draw(){var subCaption=this,chart=subCaption.getFromEnv("chart"),animationManager=chart.getFromEnv("animationManager"),caption=chart.getChildren("caption")[0],chartConfig=chart.config,textDirection=chartConfig.textDirection,captionGroup=chart.getChildContainer().captionGroup,subCaptionElement=subCaption.getGraphicalElement("subCaptionElement"),toolTipController=subCaption.getFromEnv("toolTipController"),subCaptionConfig=subCaption.config,subCaptionStyle=subCaptionConfig.style,hasSubCaption=subCaptionConfig.text,align=caption.config.align,subCaptionAttrObj,subCaptionState;if(hasSubCaption){subCaptionAttrObj={text:subCaptionConfig.text,fill:subCaptionStyle.color,x:subCaptionConfig.x,y:subCaptionConfig.y,"text-anchor":align||POSITION_MIDDLE,"vertical-align":POSITION_TOP,direction:textDirection,visibility:caption.config.drawCaption?_lib.visibleStr:_lib.hiddenStr};subCaptionElement=subCaption.addGraphicalElement("subCaptionElement",animationManager.setAnimation({el:subCaptionElement||"text",attr:subCaptionAttrObj,container:captionGroup,state:subCaptionState,component:subCaption,hookFn:function hookFn(){this.css(subCaptionStyle)},label:"text"}));subCaptionElement.css(subCaptionStyle);if(chartConfig.showtooltip){toolTipController.enableToolTip(subCaptionElement,subCaptionConfig.originalText)}else{toolTipController.disableToolTip(subCaptionElement)}}else{subCaptionElement&&subCaption.removeGraphicalElement(subCaptionElement)}chartConfig.savedSubCaption=subCaptionElement};_proto.setDimention=function setDimention(pos){this.config.x=pos.x;this.config.y=pos.y};return SubCaption}(_caption.default);var _default=exports.default=SubCaption;