UNPKG

@fusioncharts/features

Version:

FusionCharts JavaScript charting framework

1 lines 7.88 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 _utils=require("../utils");var _annotationBase=_interopRequireDefault(require("./annotation-base"));var _annotationCircle=_interopRequireDefault(require("./annotation-circle"));var _annotationPath=_interopRequireDefault(require("./annotation-path"));var _annotationRect=_interopRequireDefault(require("./annotation-rect"));var _annotationImage=_interopRequireDefault(require("./annotation-image"));var _annotationText=_interopRequireDefault(require("./annotation-text"));var _annotationPolygon=_interopRequireDefault(require("./annotation-polygon"));var _componentBase=_interopRequireDefault(require("@fusioncharts/core/src/component-interface/component-base"));var DEFAULT_IS_VISIBLE=true,DEFAULT_OPACITY=100,DEFAULT_COLOR="#FF0000",DEFAULT_SHOW_SHADOW=0,ELEMENT_TYPE_GROUP="group",ANNOTATION_GROUP_ID_LOWER="lowerAnnotationGroup",ANNOTATION_GROUP_ID_UPPER="upperAnnotationGroup",DEFAULT_POSITION=0,shapeMap={circle:_annotationCircle.default,arc:_annotationCircle.default,line:_annotationPath.default,path:_annotationPath.default,rectangle:_annotationRect.default,polygon:_annotationPolygon.default,image:_annotationImage.default,text:_annotationText.default};var AnnotationGroup=function(_AnnotationBaseShape){function AnnotationGroup(id){var _this;_this=_AnnotationBaseShape.call(this,id)||this;_this.groups=[];_this.items=[];return _this}(0,_inheritsLoose2.default)(AnnotationGroup,_AnnotationBaseShape);var _proto=AnnotationGroup.prototype;_proto.getName=function getName(){return"group"};_proto.configureAttributes=function configureAttributes(rawConfig){var group=this,groupConfig=group.config,itemType;group.rawConfig=rawConfig||{};groupConfig.id=group.rawConfig.id||group.getId("group");groupConfig.autoScale=(0,_lib.pluckNumber)(group.rawConfig.autoScale,1);groupConfig.scaleText=(0,_lib.pluckNumber)(group.rawConfig.scaleText,0);groupConfig.scaleX=groupConfig.origScaleX=(0,_lib.pluckNumber)(group.rawConfig.xScale)/100;groupConfig.scaleY=groupConfig.origScaleY=(0,_lib.pluckNumber)(group.rawConfig.yScale)/100;groupConfig.scaleImages=(0,_lib.pluckNumber)(group.rawConfig.scaleImages,0);groupConfig.constrainedScale=(0,_lib.pluckNumber)(group.rawConfig.constrainedScale,1);groupConfig.origH=Number(group.rawConfig.origH);groupConfig.origW=Number(group.rawConfig.origW);groupConfig.link=group.rawConfig.link;groupConfig.color=group.rawConfig.color||DEFAULT_COLOR;groupConfig.alpha=(0,_lib.pluckNumber)(parseFloat(group.rawConfig.alpha),DEFAULT_OPACITY);groupConfig.showShadow=(0,_lib.pluckNumber)(group.rawConfig.showShadow,DEFAULT_SHOW_SHADOW);groupConfig.x=(0,_lib.pluckNumber)(group.rawConfig.x,group.rawConfig.xPos,DEFAULT_POSITION);groupConfig.y=(0,_lib.pluckNumber)(group.rawConfig.y,group.rawConfig.yPos,DEFAULT_POSITION);groupConfig.font=(0,_lib.pluck)(group.rawConfig.font,"Verdana, sans");groupConfig.fontSize=(0,_lib.pluckFontSize)(group.rawConfig.fontSize,10);groupConfig.textAlign=(0,_lib.pluck)(group.rawConfig.textAlign);groupConfig.textVAlign=(0,_lib.pluck)(group.rawConfig.textVAlign);groupConfig.rotateText=(0,_lib.pluck)(group.rawConfig.rotateText);groupConfig.wrapText=(0,_lib.pluck)(group.rawConfig.wrapText);groupConfig.grpXShift=(0,_lib.pluckNumber)(group.rawConfig.grpXShift,0);groupConfig.grpYShift=(0,_lib.pluckNumber)(group.rawConfig.grpYShift,0);groupConfig.xShift=(0,_lib.pluckNumber)(group.rawConfig.xShift,0);groupConfig.yShift=(0,_lib.pluckNumber)(group.rawConfig.yShift,0);groupConfig.toolText=group.rawConfig.toolText;groupConfig.isVisible=(0,_utils.pluckBoolean)(group.rawConfig.isVisible,DEFAULT_IS_VISIBLE);groupConfig.elementType=ELEMENT_TYPE_GROUP;groupConfig.containerConfiguration={id:group.rawConfig.showBelow?ANNOTATION_GROUP_ID_LOWER:ANNOTATION_GROUP_ID_UPPER,label:ELEMENT_TYPE_GROUP,isParent:true};groupConfig.animationLabel=ELEMENT_TYPE_GROUP;if(group.rawConfig.customComponent instanceof _componentBase.default){groupConfig.customComponent=groupConfig.rawConfig.customComponent}else{delete groupConfig.customComponent}group.rawConfig.itemConfigs.forEach((function(itemConfig){itemType=itemConfig.type&&itemConfig.type.toLowerCase();if(shapeMap[itemType]){group.attachChild(shapeMap[itemType],"item",itemConfig.id).configure(itemConfig)}}));group.items=group.getChildren("item")||[]};_proto.updateScale=function updateScale(){var group=this,groupConfig=group.config,scaleValue,widthScaleFactor,heightScaleFactor,scaleX,scaleY,chart=group.getFromEnv("chart"),chartHeight=+chart.getFromEnv("chartHeight"),chartWidth=+chart.getFromEnv("chartWidth"),autoScale=groupConfig.autoScale,isConstrained=groupConfig.constrainedScale;group._setConfig("origW",Number(groupConfig.origW)||chartWidth);group._setConfig("origH",Number(groupConfig.origH)||chartHeight);if(autoScale){widthScaleFactor=chartWidth/groupConfig.origW*(Number(groupConfig.origScaleX)||1);heightScaleFactor=chartHeight/groupConfig.origH*(Number(groupConfig.origScaleY)||1)}else{widthScaleFactor=heightScaleFactor=1}scaleValue=Math.min(widthScaleFactor,heightScaleFactor);group._setConfig("scaleValue",scaleValue);if(autoScale>0||isNaN(groupConfig.scaleX)){scaleX=isConstrained?scaleValue:widthScaleFactor;group._setConfig("scaleX",scaleX)}if(autoScale>0||isNaN(groupConfig.scaleY)){scaleY=isConstrained?scaleValue:heightScaleFactor;group._setConfig("scaleY",scaleY)}groupConfig.scaleFont=groupConfig.scaleText?Math.min(groupConfig.scaleX,groupConfig.scaleY):1;groupConfig.scaleImageX=groupConfig.scaleImages?groupConfig.scaleX:1;groupConfig.scaleImageY=groupConfig.scaleImages?groupConfig.scaleY:1;groupConfig.scaleInfo={scaleX:groupConfig.scaleX,scaleY:groupConfig.scaleY,scaleValue:groupConfig.scaleValue}};_proto.updateAttr=function updateAttr(){var group=this,groupConfig=group.config,attr=groupConfig.calculatedAttrs,key,xTrans,yTrans;for(key in attr){attr[key]&&(groupConfig[key]=attr[key])}xTrans=group.getScaledVal(groupConfig.grpXShift)+groupConfig.xShift;yTrans=group.getScaledVal(groupConfig.grpYShift)+groupConfig.yShift;group._setConfig("attr",{transform:"T"+xTrans+","+yTrans})};_proto.retrieveItem=function retrieveItem(id){var group=this,i,len;for(i=0,len=group.items.length;i<len;i++){if(group.items[i].getId()===id){return group.items[i]}}};_proto.getScaledVal=function getScaledVal(val,isX){var group=this,multiplier;if(group){multiplier=isX?group._getConfig("scaleX"):(isX===false?group._getConfig("scaleY"):group._getConfig("scaleValue"))||1;return val*multiplier}return val};_proto.getScaledFont=function getScaledFont(fontSize){var group=this;if(group){return fontSize*group._getConfig("scaleFont")}return fontSize};_proto.getScaledImageVal=function getScaledImageVal(val,isX){var group=this,multiplier;if(group){multiplier=(isX?group._getConfig("scaleImageX"):group._getConfig("scaleImageY"))||1;return val*multiplier}return val};_proto.getScaleInfo=function getScaleInfo(){return this.config.scaleInfo};_proto.draw=function draw(){var group=this,attr=group._getConfig("attr")||{},xTrans,yTrans;group.updateScale();group.parseAndSetAttribute();xTrans=group.getScaledVal(group._getConfig("grpXShift"))+group._getConfig("xShift");yTrans=group.getScaledVal(group._getConfig("grpYShift"))+group._getConfig("yShift");attr.name=group._getConfig("id");attr.transform=attr.transform||"T"+xTrans+","+yTrans;attr.visibility=group.config.isVisible?_lib.visibleStr:_lib.hiddenStr;group.addGraphicalElement({el:"group",attr:attr,container:group.config.containerConfiguration,component:group.config.customComponent||group,label:group.config.animationLabel,id:group.config.id})};return AnnotationGroup}(_annotationBase.default);var _default=exports.default=AnnotationGroup;