UNPKG

@fusioncharts/core

Version:

JavaScript Data Visualisation Library

1 lines 7.89 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 _componentInterface=require("../../component-interface");var _lib=require("../../lib");var _helper=require("./helper");var FILL_COLOR="ffffff",FILL_ALPHA_COLOR="cccccc",FILL_SYMBOL_COLOR="ffffff",FILL_STROKE="bbbbbb",FILL_SYMBOL_STROKE="9a9a9a";var _optionSanitization=function _optionSanitization(options){for(var key in options){if(options.hasOwnProperty(key)){var element=options[key];if(element===_lib.UNDEF||!/tooltext/.test(key)&&element===""){delete options[key]}}}return options};var Tool=function(_SmartRenderer){function Tool(id){var _this;_this=_SmartRenderer.call(this,id)||this;_this._listeners={};return _this}(0,_inheritsLoose2.default)(Tool,_SmartRenderer);var _proto=Tool.prototype;_proto.getName=function getName(){return"button"};_proto.getType=function getType(){return"tool"};_proto.__setDefaultConfig=function __setDefaultConfig(){var config=this.config;config.scale=1.15;config.width=_lib.touchEnabled?20:15;config.height=_lib.touchEnabled?20:15;config.radius=_lib.touchEnabled?4:2;config.spacing=2.5;config.marginTop=2.5;config.marginLeft=2.5;config.marginRight=2.5;config.marginBottom=2.5;config.fill=FILL_COLOR;config.fillAlpha=FILL_ALPHA_COLOR;config.symbolFill=FILL_SYMBOL_COLOR;config.stroke=FILL_STROKE;config.symbolStroke=FILL_SYMBOL_STROKE;config.strokeWidth=1;config.symbolStrokeWidth=1;config.symbolPadding=5;config.symbolHPadding=5;config.symbolVPadding=5;config.fillAlpha=100;config.stateStyle={};config.text=_lib.BLANKSTRING;config.marginTop=config.marginLeft=config.marginRight=config.marginBottom=2.5;config.labelFontSize=12};_proto.configureAttributes=function configureAttributes(configs){if(configs===void 0){configs={}}var toolConfig=this.config,bSymbolPadding,posX,posY,options=_optionSanitization(configs);Object.assign(toolConfig,options);toolConfig.symbolName=toolConfig.name;this.setState("visible",toolConfig.isHidden!==true);toolConfig.marginTop=(0,_lib.pluckNumber)(options.marginTop,options.spacing,toolConfig.marginTop);toolConfig.marginLeft=(0,_lib.pluckNumber)(options.marginLeft,options.spacing,toolConfig.marginLeft);toolConfig.marginRight=(0,_lib.pluckNumber)(options.marginRight,options.spacing,toolConfig.marginRight);toolConfig.marginBottom=(0,_lib.pluckNumber)(options.marginBottom,options.spacing,toolConfig.marginBottom);toolConfig.fill=(0,_lib.pluck)(options.fill,toolConfig.fill);toolConfig.fillAlpha=(0,_lib.pluckNumber)(options.fillAlpha,toolConfig.fillAlpha);toolConfig.labelFill=(0,_lib.pluck)(options.labelFill,toolConfig.labelFill);toolConfig.symbolFill=(0,_lib.pluck)(options.symbolFill,toolConfig.symbolFill);toolConfig.hoverFill=(0,_lib.pluck)(options.hoverFill,toolConfig.hoverFill);toolConfig.stroke=(0,_lib.pluck)(options.stroke,toolConfig.stroke);toolConfig.symbolStroke=(0,_lib.pluck)(options.symbolStroke,toolConfig.symbolStroke);toolConfig.strokeWidth=(0,_lib.pluckNumber)(options.strokeWidth,toolConfig.strokeWidth);toolConfig.symbolStrokeWidth=(0,_lib.pluckNumber)(options.symbolStrokeWidth,toolConfig.symbolStrokeWidth);bSymbolPadding=toolConfig.symbolPadding=(0,_lib.pluckNumber)(options.symbolPadding,toolConfig.symbolPadding);toolConfig.symbolHPadding=(0,_lib.pluckNumber)(options.symbolHPadding,bSymbolPadding);toolConfig.symbolVPadding=(0,_lib.pluckNumber)(options.symbolVPadding,bSymbolPadding);toolConfig.hAlign=(0,_lib.pluck)(options.hAlign,"center").toLowerCase();toolConfig.vAlign=(0,_lib.pluck)(options.vAlign,"middle").toLowerCase();toolConfig.containerInfo=options.containerInfo||{id:"group",label:"group",isParent:true};posX=options.x;posY=options.y;if(typeof posX==="undefined"||typeof posY==="undefined"){toolConfig.spaceNotHardCoded=true}else{toolConfig.x=posX;toolConfig.y=posY;toolConfig.spaceNotHardCoded=false}};_proto.setDimension=function setDimension(dim){if(dim===void 0){dim={}}var conf=this.config;dim.x!==_lib.UNDEF&&(conf.x=dim.x);dim.y!==_lib.UNDEF&&(conf.y=dim.y);dim.width!==_lib.UNDEF&&(conf.width=dim.width);dim.height!==_lib.UNDEF&&(conf.height=dim.height)};_proto.getAlignment=function getAlignment(){return{hAlign:this.config.hAlign,vAlign:this.config.vAlign}};_proto.getLogicalSpace=function getLogicalSpace(){var _this$config=this.config,width=_this$config.width,height=_this$config.height,marginTop=_this$config.marginTop,marginLeft=_this$config.marginLeft,marginRight=_this$config.marginRight,marginBottom=_this$config.marginBottom,scale=_this$config.scale;width*=scale;height*=scale;if(this.config.skipGraphics||this.getState("removed")){width=height=marginBottom=marginLeft=marginRight=marginTop=0}return{width:width,height:height,marginTop:marginTop,marginLeft:marginLeft,marginRight:marginRight,marginBottom:marginBottom}};_proto.setCurrentState=function setCurrentState(value){this.config.state=value;this.asyncDraw()};_proto.getCurrentState=function getCurrentState(){return this.config.state};_proto.draw=function draw(){var tool=this,toolConfig=tool.config,props=toolConfig,text=toolConfig.text,config=tool.getFromEnv("tool-config"),defConfObj,dimConfig,attr;if(toolConfig.skipGraphics){return}dimConfig={width:toolConfig.width*toolConfig.scale,height:toolConfig.height*toolConfig.scale,r:toolConfig.radius*toolConfig.scale,verticalPadding:toolConfig.symbolVPadding*toolConfig.scale,horizontalPadding:toolConfig.symbolHPadding};defConfObj=(0,_lib.extend2)({},toolConfig.stateStyle[toolConfig.state]||_helper.preConfig[toolConfig.state]||{});if(toolConfig.state==="activated"||toolConfig.state==="disabled"||toolConfig.state==="pressed"){defConfObj.config.normal.fill=(0,_lib.convertColor)((0,_lib.pluck)(config.fill,defConfObj.config.normal.fill));defConfObj.config.normal["symbol-stroke"]=(0,_lib.convertColor)((0,_lib.pluck)(config.symbolStroke,defConfObj.config.normal["symbol-stroke"]));defConfObj.config.normal.symbolFill=(0,_lib.convertColor)((0,_lib.pluck)(config.symbolFill,defConfObj.config.normal.symbolFill));defConfObj.config.normal.stroke=(0,_lib.convertColor)((0,_lib.pluck)(config.stroke,defConfObj.config.normal.stroke));defConfObj.config.normal.symbolStroke=(0,_lib.convertColor)((0,_lib.pluck)(config.symbolStroke,defConfObj.config.normal.symbolStroke));defConfObj.config.hover.fill=(0,_lib.convertColor)((0,_lib.pluck)(config.hoverFill,defConfObj.config.hover.fill))}attr=(0,_lib.extend2)({button:[toolConfig.x,toolConfig.y,text,toolConfig.symbolName,dimConfig,toolConfig.labelFontSize,toolConfig.labelFontFamily],"button-label":text,"button-padding":[toolConfig.symbolHPadding,toolConfig.symbolVPadding*toolConfig.scale],"button-repaint":[props.x,props.y,toolConfig.width*toolConfig.scale,toolConfig.height*toolConfig.scale,toolConfig.radius*toolConfig.scale],fill:(0,_lib.convertColor)(toolConfig.fill),labelFill:(0,_lib.convertColor)(toolConfig.labelFill),symbolFill:(0,_lib.convertColor)(toolConfig.symbolFill),hoverFill:toolConfig.hoverFill,stroke:(0,_lib.convertColor)(toolConfig.stroke),"symbol-stroke":(0,_lib.convertColor)(toolConfig.symbolStroke||toolConfig.stroke),"stroke-width":toolConfig.strokeWidth,"symbol-stroke-width":(0,_lib.pluckNumber)(toolConfig.symbolStrokeWidth,toolConfig.strokeWidth)},defConfObj);attr.fill=(0,_lib.convertColor)((0,_lib.pluck)(toolConfig.fill,defConfObj.fill));!toolConfig.isHidden&&tool.addGraphicalElement({el:"button",attr:attr,css:toolConfig.btnTextStyle,component:tool,container:toolConfig.containerInfo,label:"button",id:"button",tooltext:toolConfig.tooltext})};_proto.hide=function hide(){this.config.isHidden=true;this.setState("visible",false);this.asyncDraw()};_proto.show=function show(){this.config.isHidden=false;this.setState("visible",true);this.asyncDraw()};return Tool}(_componentInterface.SmartRenderer);var _default=exports.default=Tool;