@fusioncharts/features
Version:
FusionCharts JavaScript charting framework
1 lines • 4.32 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 _annotationShape=_interopRequireDefault(require("./annotation-shape"));var _lib=require("@fusioncharts/core/src/lib");var ELEMENT_TYPE_IMAGE="image",getComputedImagePosition=function getComputedImagePosition(config){var height=config.height,width=config.width,vAlign=config.vAlign,align=config.align,x=config.x,y=config.y,position={x:x,y:y};switch(align){case"center":position.x=x-width/2;break;case"right":position.x=x-width;break}switch(vAlign){case"middle":position.y=y-height/2;break;case"bottom":position.y=y-height;break}return position},imageOnloadListener=function imageOnloadListener(event){var image=this,rawItemConfig=this.config,loadedImage=event.originalEvent.target,loadedHeight=loadedImage.height,loadedWidth=loadedImage.width,shapeAlign=image._getConfig("align"),shapeVAlign=image._getConfig("vAlign"),xScale=image._getConfig("xScale"),yScale=image._getConfig("yScale"),scaledHeight=loadedHeight*yScale,scaledWidth=loadedWidth*xScale,computedPosition=getComputedImagePosition({x:rawItemConfig.derivedX,y:rawItemConfig.derivedY,height:scaledHeight,width:scaledWidth,align:shapeAlign,vAlign:shapeVAlign});image.config.loadedWidth=loadedWidth;image.config.loadedHeight=loadedHeight;rawItemConfig=Object.assign(image.rawConfig,{x:computedPosition.x,y:computedPosition.y,width:scaledWidth,height:scaledHeight,autoScale:0});this.getGraphicalElement(this.config.id,this.config.animationLabel).attr(rawItemConfig);image.rawConfig.onload&&image.rawConfig.onload.call(image,{width:scaledWidth,height:scaledHeight});event.detachHandler()};var ImageAnnotation=function(_AnnotationShape){function ImageAnnotation(id){var _this;_this=_AnnotationShape.call(this,id)||this;_this._listener=imageOnloadListener;return _this}(0,_inheritsLoose2.default)(ImageAnnotation,_AnnotationShape);var _proto=ImageAnnotation.prototype;_proto.getName=function getName(){return ELEMENT_TYPE_IMAGE};_proto.configureAttributes=function configureAttributes(rawConfig){if(rawConfig===void 0){rawConfig={}}_AnnotationShape.prototype.configureAttributes.call(this,rawConfig);var image=this,shapeConfig=image.rawConfig,config=image.config;config.url=(0,_lib.getValidValue)(shapeConfig.url);config.xScale=config.rawXScale=(0,_lib.pluckNumber)(shapeConfig.xScale,100)/100;config.yScale=config.rawYScale=(0,_lib.pluckNumber)(shapeConfig.yScale,100)/100;config.width=(0,_lib.pluckNumber)(config.loadedWidth,shapeConfig.width);config.height=(0,_lib.pluckNumber)(config.loadedHeight,shapeConfig.height);config.align=(0,_lib.pluck)(shapeConfig.align,"left");config.vAlign=(0,_lib.pluck)(shapeConfig.vAlign,"top");config.xScale=config.xScale*(image.groupConfig.scaleX||1);config.yScale=config.yScale*(image.groupConfig.scaleY||1);config.elementType=ELEMENT_TYPE_IMAGE;if(typeof config.width==="undefined"&&typeof config.height==="undefined"){image.addEventListener("load",image._listener)}};_proto.updateAttr=function updateAttr(){var image=this,group=image.getLinkedParent(),config=image.config,attr=config.calculatedAttrs;image.config.xScale=group.config.scaleX*config.rawXScale;image.config.yScale=group.config.scaleY*config.rawYScale;image._setConfig("attr",{x:(0,_lib.pluckNumber)(attr.x,image.getScaledVal(config.x,true)),y:(0,_lib.pluckNumber)(attr.y,image.getScaledVal(config.y,false))})};_proto._getAnnotationAttrs=function _getAnnotationAttrs(){var image=this,config=image.config,attr=config.attr,x=(0,_lib.pluckNumber)(config.attr.x,config.x),y=(0,_lib.pluckNumber)(config.attr.y,config.y);if(!(0,_lib.pluckNumber)(image.rawConfig.autoscale,image.rawConfig.autoScale,1)){attr={x:x,y:y}}config.derivedX=attr.x=typeof attr.x==="undefined"?image.getScaledVal(x,true):attr.x;config.derivedY=attr.y=typeof attr.y==="undefined"?image.getScaledVal(y,false):attr.y;attr.src=config.url;attr.opacity=(0,_lib.pluckNumber)(config.rawAlpha,100)/100;if(typeof config.width!=="undefined"){attr.width=config.width*config.xScale}if(typeof config.height!=="undefined"){attr.height=config.height*config.yScale}return attr};return ImageAnnotation}(_annotationShape.default);var _default=exports.default=ImageAnnotation;