UNPKG

@fusioncharts/charts

Version:

JavaScript Data Visualisation Library

1 lines 9.19 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 _area=_interopRequireDefault(require("../area"));var _lib=require("@fusioncharts/core/src/lib");var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _index=_interopRequireDefault(require("./index.animation"));var _utils=require("../../utils");var UNDEF,math=Math,mathAbs=math.abs,MAX_MITER_LINEJOIN=2,LINE_STR="line";(0,_dependencyManager.addDep)({name:"lineAnimation",type:"animationRule",extension:_index.default});var LineDataset=function(_AreaDataset){function LineDataset(){var _this;_this=_AreaDataset.call(this)||this;_this.updateYForStack=_lib.stubFN;_this.config.primitiveType=LINE_STR;return _this}(0,_inheritsLoose2.default)(LineDataset,_AreaDataset);var _proto=LineDataset.prototype;_proto.getType=function getType(){return"dataset"};_proto.getName=function getName(){return"line"};_proto.createPinElem=function createPinElem(){var dataset=this,chart=dataset.getFromEnv("chart"),group=arguments[1].group,lineOb=dataset.config.lineOb,element,pinElems=dataset.getGraphicalElement("pinElems")||dataset.addGraphicalElement("pinElems",[]),paper=dataset.getFromEnv("paper"),lineGroup=dataset.getLinkedParent().getChildContainer("lineVcanvasGroup"),i,key;for(i=pinElems.length-1;i>=0;i--){pinElems[i].remove();pinElems.pop()}if(dataset.getState("visible")){for(key in lineOb){element=lineOb[key].el;pinElems.push(paper.path(group).attr({path:element.attrs.path,transform:["T",-(chart.config._visx+mathAbs(lineGroup.transform()[0][1])),-chart.config.canvasBottom]}).attr(dataset.config.pin))}}};_proto._addLegend=function _addLegend(){var dataset=this,chart=dataset.getFromEnv("chart"),conf=dataset.config,chartAttr=dataset.getFromEnv("chart-attrib"),legend=chart.getChildren("legend")[0],drawAnchors=(0,_lib.pluckNumber)(conf.drawanchors,1),legendItem,JSONData=dataset.config.JSONData||{},legendDefaultCosmetic,config;if(conf.includeinlegend){config={enabled:conf.includeinlegend,type:dataset.getName(),drawLine:(0,_lib.pluck)(conf.drawLine,true),index:dataset.getJSONIndex(),anchorSide:drawAnchors?conf.anchorsides:0,label:(0,_lib.getFirstValue)(dataset.config.JSONData.seriesname),legendIconAlpha:(0,_lib.pluckNumber)(JSONData.legendiconalpha)};legendItem=legend.getItem(dataset.config.legendItemId);if(!legendItem){dataset.config.legendItemId=legend.createItem(dataset);legendItem=legend.getItem(dataset.config.legendItemId);dataset.addExtEventListener("fc-click",(function(){legendItem.itemClickFn()}),legendItem)}legendDefaultCosmetic={symbol:{fill:(0,_lib.toRaphaelColor)({color:conf.anchorbgcolor,alpha:conf.anchorbgalpha}),bgAlpha:(0,_lib.pluckNumber)(JSONData.legendiconalpha,JSONData.legendiconbgalpha,JSONData.alpha),borderAlpha:(0,_lib.pluckNumber)(JSONData.legendiconborderalpha,JSONData.legendiconalpha,chartAttr.legendiconborderalpha,chartAttr.legendiconalpha,"100"),rawFillColor:conf.anchorbgcolor,rawStrokeColor:conf.anchorbordercolor,stroke:(0,_lib.toRaphaelColor)({color:conf.anchorbordercolor,alpha:"100"}),"stroke-width":conf.anchorborderthickness,lineWidth:conf.linethickness}};legendItem.setStateCosmetics("default",legendDefaultCosmetic);if(!dataset.getState("visible")){legendItem.setLegendState("hidden")}else{legendItem.removeLegendState("hidden")}legendItem.configure(config)}else if(dataset.config.legendItemId){legend.disposeItem(dataset.config.legendItemId)}var msColumn3DLineDyParent=(0,_utils.findMSColumn3DLineDyParent)(this);msColumn3DLineDyParent==null||msColumn3DLineDyParent.setState("lineLegendItem",legendItem)};_proto._getDataLimits=function _getDataLimits(){var dataset=this,conf=dataset.config,chart=dataset.getFromEnv("chart"),chartConfig=chart.config,max=conf.maxValue,min=conf.minValue,infMin=-Infinity,infMax=+Infinity,transposeAxis=chartConfig.transposeAxis;if(dataset.getState("visible")===false&&transposeAxis){max=infMin;min=infMax}return{max:max,min:min}};_proto._drawCommonElementsHelper=function _drawCommonElementsHelper(lineOb){var dataset=this,key=_lib.BLANKSTRING,item={},animationManager=dataset.getFromEnv("animationManager"),dsConfig=dataset.config,shadow=dsConfig.shadow,lineThickness=dsConfig.linethickness,commonElemGroup=dataset.getContainer("commonElemsGroup"),fullPath,j,jj,callback=function callback(){if(dataset.getState("visible")===false){this.hide()}};for(key in lineOb){item=lineOb[key];fullPath=["M0,0"];for(j=0,jj=item.path&&item.path.length;j<jj;++j){fullPath=fullPath.concat(item.path[j].getPathArr())}if(!dataset.config.drawLine){item.el&&(item.el=animationManager.setAnimation({el:item.el,component:dataset,doNotRemove:true,callback:function callback(){this.hide()}}))}else{item.el=animationManager.setAnimation({el:item.el||"path",container:commonElemGroup,component:dataset,attr:dataset.getState("visible")!==false&&Object.assign({path:fullPath},item.attr),label:"line",callback:callback});dataset.getState("visible")&&item.el&&item.el.show()}!item.used&&delete lineOb[key];if(item.el){if(lineThickness){item.el.shadow(shadow,commonElemGroup)}else{item.el.shadow({opacity:0},commonElemGroup)}item.el.toFront()}item.old=true;item.used=false;item.prevPath=item.path;item.attrs=UNDEF;item.path=UNDEF}};_proto.getLineShift=function getLineShift(type){var dataset=this,chart=dataset.getFromEnv("chart"),is3D=chart.config.is3D,use3dlineshift=chart.config.use3dlineshift,xDepth=is3D?10:0,yDepth=is3D?use3dlineshift?0:-10:0;return type==="y"?yDepth:xDepth};_proto.drawCommonElements=function drawCommonElements(){var dataset=this,dataStore=dataset.components.data,dsConfig=dataset.config,xAxis=dataset.getFromEnv("xAxis"),yAxis=dataset.getFromEnv("yAxis"),lineDashStyle=dsConfig.lineDashStyle,dashStyle,lineThickness=dsConfig.linethickness,colorObj,lineColorObj={color:dsConfig.linecolor,alpha:dsConfig.alpha},lscthash=[(0,_lib.toRaphaelColor)(lineColorObj),lineDashStyle].join(":"),dataHash=lscthash,lim={x:xAxis.getLimit(),y:yAxis.getLimit()},i,j,ii=dataStore.length,lineOb=dataset.config.lineOb||{},dataObj,colorHash,config,startIndex=0,endIndex,connectorPath,connectorPathWithNulls,nullPointsArr,lineBreak=false,skippingInfo=dataset.getSkippingInfo&&dataset.getSkippingInfo(),skippingDrawArray=skippingInfo&&skippingInfo.draw||[],plotDrawArrayLength=skippingDrawArray.length,skippingApplied=skippingInfo&&skippingInfo.skippingApplied,createLine=function createLine(key,path,pathwithnull){var item=lineOb[key];if(!item){item=lineOb[key]={}}if(key!==dataHash){item.hasDifferentColor=true}item.used=true;item.pathWithNull=pathwithnull;item.path=item.path||[];item.stroke=key.split(":")[0];item.dashStyle=key.split(":")[1];item.path.push(path);item.dashStyle=item.dashStyle&&item.dashStyle.split(",");item.attr={"stroke-dasharray":item.dashStyle,"stroke-width":lineThickness,stroke:item.stroke,"stroke-linecap":"round","stroke-linejoin":lineThickness>MAX_MITER_LINEJOIN?"round":"miter"}},tempStore=[];lim.x.minPixel=xAxis.getPixel(lim.x.min);lim.x.maxPixel=xAxis.getPixel(lim.x.max);lim.y.minPixel=yAxis.getPixel(lim.y.min);lim.y.maxPixel=yAxis.getPixel(lim.y.max);lim.y.base=yAxis.getPixel(0);lim.x.base=xAxis.getPixel(0);if(skippingApplied){ii=plotDrawArrayLength}for(j=0;j<ii;++j){i=skippingDrawArray[j]||j;dataObj=dataStore[i];if(!dataObj){continue}config=dataObj.config||{};config._Pbx=UNDEF;config._Pby=UNDEF;tempStore[i]={config:{_Px:config._Px,_Py:config._Py,setValue:config.setValue}};colorObj={color:config.setColor,alpha:config.setAlpha};dashStyle=config.dashStyle;colorHash=[(0,_lib.toRaphaelColor)({color:(0,_lib.pluck)(colorObj.color,lineColorObj.color),alpha:(0,_lib.pluck)(colorObj.alpha,lineColorObj.alpha)}),dashStyle||lineDashStyle].join(":");if(lscthash!==colorHash&&dataObj._yVal!==null){lineBreak=true;endIndex=i;connectorPath=dataset.getLinePath(dataStore,{begin:startIndex,end:endIndex+1});connectorPathWithNulls=dataset.getLinePath(dataStore,{begin:startIndex,end:endIndex+1},nullPointsArr);config.connStartIndex=startIndex;config.connEndIndex=endIndex;createLine(lscthash,connectorPath,connectorPathWithNulls.getPathArr());lscthash=colorHash;startIndex=i;endIndex=null}if(dataObj._yVal!==null){lscthash=colorHash}}if(!colorHash){colorHash=_lib.BLANKSTRING}dsConfig.pathStartIndex=startIndex;dsConfig.pathEndIndex=endIndex;connectorPath=dataset.getLinePath(dataStore,{begin:lineBreak?startIndex:dsConfig.scrollMinVal,end:lineBreak?endIndex:dsConfig.scrollMaxVal});connectorPathWithNulls=dataset.getLinePath(dataStore,{begin:startIndex,end:endIndex},nullPointsArr);createLine(colorHash,connectorPath,connectorPathWithNulls.getPathArr());dataset._drawCommonElementsHelper(lineOb);dataset.config.lineOb=lineOb;dsConfig.prevLim=lim;dsConfig.prevDataStore=tempStore};_proto.show=function show(){_AreaDataset.prototype.show.call(this);this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"show"})};_proto.hide=function hide(){_AreaDataset.prototype.hide.call(this);this.fireEvent("datasetVisibilityChanged",{dataset:this,state:"hide"})};return LineDataset}(_area.default);var _default=exports.default=LineDataset;