@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 4.21 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 _componentInterface=require("@fusioncharts/core/src/component-interface");var _lib=require("@fusioncharts/core/src/lib");var HORIZONTAL="horizontal",VERTICAL="vertical",M="M",H="H",V="V",BLANKREGEX=/\S/,SPACE=" ",STROKEDASH="stroke-dasharray",iswithinDomain=function iswithinDomain(value,domainArr){if(+value>=+domainArr[0]&&+value<=+domainArr[1]){return true}return false};var GridLine=function(_SmartRenderer){function GridLine(){return _SmartRenderer.apply(this,arguments)||this}(0,_inheritsLoose2.default)(GridLine,_SmartRenderer);var _proto=GridLine.prototype;_proto.__setDefaultConfig=function __setDefaultConfig(){_SmartRenderer.prototype.__setDefaultConfig.call(this);this.config.direction=HORIZONTAL;this.config.showgridlines=1;this.config.showboundarygridlines=1;this.config.style={};this.config.defaultStyle={stroke:"#EFEFEF","stroke-width":"1","stroke-opacity":"1"}};_proto.configureAttributes=function configureAttributes(obj){if(obj===void 0){obj={}}_SmartRenderer.prototype.configureAttributes.call(this,obj);var selfConfig=this.config;for(var key in obj){if(obj.hasOwnProperty(key)&&typeof obj[key]!=="undefined"){selfConfig[key]=obj[key]}}};_proto.getPathArr=function getPathArr(){var _scale;var gridLine=this,selfConfig=gridLine.config,styleDef=gridLine.getFromEnv("getStyleDef"),axisStyle,canvasConfig=gridLine.getLinkedParent().config,direction=selfConfig.direction,pathArr=[],axisConfig,stretchFromX,stretchFromY,strechUpto,pathCommand,scale,scaleDomains,ticks,tickArguments=[],i,timeNavAxis,len;if(direction!==VERTICAL){axisConfig=canvasConfig.yConfigs[0];scale=axisConfig.scale;pathCommand=H;stretchFromX=canvasConfig.canvasBGLeft;stretchFromY=scale.getRangeValue;strechUpto=canvasConfig.canvasBGLeft+canvasConfig.canvasBGWidth}else{var timeNavigator=this.getLinkedParent().getLinkedParent();if(timeNavigator.getChildren("timeAxis")&&Array.isArray(timeNavigator.getChildren("timeAxis"))){timeNavAxis=timeNavigator.getChildren("timeAxis")[0]}axisConfig=canvasConfig.xConfigs[0];scale=axisConfig.scale;pathCommand=V;stretchFromX=scale.getRangeValue;stretchFromY=canvasConfig.canvasBGTop+canvasConfig.canvasBGHeight-canvasConfig.padding.top;strechUpto=canvasConfig.canvasBGTop-canvasConfig.padding.top}if(axisConfig.tickarguments){tickArguments=axisConfig.tickarguments}axisStyle=axisConfig.style||{};selfConfig.style=styleDef(axisStyle["grid-line"]||{});tickArguments.push(axisConfig.skipinfo||{});tickArguments.push(axisConfig.dayinmajor||false);ticks=(_scale=scale).ticks.apply(_scale,tickArguments);if(selfConfig.showgridlines){scaleDomains=scale.getDomain();for(i=0,len=ticks.length;i<len;i++){if(!selfConfig.showboundarygridlines&&(i===0||i===len-1)||!iswithinDomain(ticks[i],scaleDomains)){continue}if(direction===VERTICAL&&timeNavAxis.config.values[i].text.length===0){continue}pathArr.push([M,typeof stretchFromX==="function"?stretchFromX.call(scale,ticks[i]):stretchFromX,typeof stretchFromY==="function"?stretchFromY.call(scale,ticks[i]):stretchFromY,pathCommand,strechUpto])}}return pathArr};_proto.draw=function draw(){var gridLine=this,selfConfig=gridLine.config,styleGridLines=selfConfig.styleGridLines,pathArr=gridLine.getPathArr(),mergedStyle=(0,_lib.extend2)((0,_lib.extend2)({},selfConfig.defaultStyle),styleGridLines&&selfConfig.style);if(mergedStyle[STROKEDASH]){mergedStyle[STROKEDASH]=typeof mergedStyle[STROKEDASH]==="string"?mergedStyle[STROKEDASH].split(SPACE).filter((function(c){return BLANKREGEX.test(c)})).map((function(c){return+c})):mergedStyle[STROKEDASH]}gridLine.addGraphicalElement({el:"group",container:{id:"strato",label:"strato",isParent:true},component:gridLine,label:"gridLine",attr:{name:"grid-line-group"},id:"gridLine"});pathArr.forEach((function(path,index){gridLine.addGraphicalElement({el:"path",attr:{path:path},css:mergedStyle,container:{label:"gridLine"},id:"grid-line-"+index,component:gridLine,label:"line"})}))};return GridLine}(_componentInterface.SmartRenderer);var _default=exports.default=GridLine;