@fusioncharts/widgets
Version:
FusionCharts JavaScript charting framework
1 lines • 13.4 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends=require("@babel/runtime/helpers/extends");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _task=_interopRequireWildcard(require("./task"));var _lib=require("@fusioncharts/core/src/lib");var _milestoneGantt=_interopRequireDefault(require("./milestone-gantt.animation"));var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _schedular=require("@fusioncharts/core/src/schedular");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f=_extends({},null,{default:e});if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f})(e,t)}var UNDEF,FF5E5E="FF5E5E",MIDDLE="middle";var clickHandler=function clickHandler(chart){return function(event){var ele=this;chart.plotEventHandler(ele,event,"MilestoneClick")}},rollOverHandler=function rollOverHandler(chart){return function(event){var ele=this,dataObj=ele.data("dataObj"),config=dataObj.config;chart.plotEventHandler(ele,event,"MilestoneRollOver");config.showHoverEffect&&dataObj.graphics.element.attr({fill:config.hoverFillColor,stroke:config.hoverBorderColor,"fill-opacity":config.hoverFillAlpha,"stroke-opacity":config.hoverBorderAlpha})}},rollOutHandler=function rollOutHandler(chart){return function(event){var ele=this,dataObj=ele.data("dataObj"),config=dataObj.config;chart.plotEventHandler(ele,event,"MilestoneRollOut");config.showHoverEffect&&dataObj.graphics.element.attr({fill:config.fillColor,stroke:config.borderColor,"fill-opacity":config.fillAlpha,"stroke-opacity":config.borderAlpha})}};(0,_dependencyManager.addDep)({name:"milestoneAnimation",type:"animationRule",extension:_milestoneGantt.default});var Milestone=function(_Task){function Milestone(){return _Task.apply(this,arguments)||this}(0,_inheritsLoose2.default)(Milestone,_Task);var _proto=Milestone.prototype;_proto.getName=function getName(){return"milestone"};_proto.__setDefaultConfig=function __setDefaultConfig(){_Task.prototype.__setDefaultConfig.call(this);var config=this.config;config.showpercentlabel=0;config.showstartdate=0;config.showenddate=0;config.showlabels=UNDEF;config.showborder=1;config.borderthickness=1;config.showHoverEffect=1;config.slackFillColor=FF5E5E;config.font=_lib.BLANKSTRING;config.fontcolor=_lib.BLANKSTRING;config.fontsize=_lib.BLANKSTRING;config.color=_lib.BLANKSTRING;config.alpha=_lib.HUNDREDSTRING;config.bordercolor=_lib.BLANKSTRING;config.borderalpha=_lib.HUNDREDSTRING;config.hoverFillColor=_lib.BLANKSTRING;config.hoverFillAlpha=_lib.HUNDREDSTRING;config.slackHoverFillColor=10;config.slackHoverFillAlpha=_lib.HUNDREDSTRING};_proto.configureAttributes=function configureAttributes(){var dataset=this,config=dataset.config,jsonData=dataset.getFromEnv("dataSource"),userConfig=(0,_lib.extend2)({},jsonData.milestones&&jsonData.milestones.length?jsonData.milestones[0]:jsonData.milestones||{});(0,_lib.parseConfiguration)(userConfig,config,{milestones:true});if(!dataset.components){dataset.components={}}dataset._setConfigure();dataset.setState("dirty",true)};_proto._setConfigure=function _setConfigure(newDataset){var dataset=this,chart=dataset.getFromEnv("chart"),yAxis=chart.getChildren("yAxis")[0],axisConfig=yAxis.config,jsonData=dataset.getFromEnv("dataSource"),JSONData=jsonData.milestones&&jsonData.milestones.length?jsonData.milestones[0]:jsonData.milestones||{},setDataArr=newDataset||JSONData.length?JSONData:JSONData.milestone,setDataLen=setDataArr&&setDataArr.length,colorM=dataset.getFromEnv("color-manager"),chartConfig=chart.config,numberFormatter=dataset.getFromEnv("number-formatter"),dataStore=dataset.components.data,style=chart.config.style,inCanStyle=style.inCanvasStyle,tasksMap=chart.components.tasksMap,dataObj,taskConfigObj,dataConfig,i,processMap=axisConfig.processes.processMap,processes=axisConfig.processes.process.process,processName,setData,sides,color,shape,depth,toolText,taskId,labelStyle=chart.config.milestoneLabelStyle,dateMs,milestoneDate;if(!dataStore){dataStore=dataset.components.data=[]}for(i=0;i<setDataLen;i+=1){setData=setDataArr[i];dataObj=dataStore[i];if(!dataObj){dataObj=dataStore[i]={config:{}}}dataConfig=dataObj.config;taskId=(0,_lib.getFirstValue)(setData.taskid,_lib.BLANKSTRING).toLowerCase();shape=(0,_lib.pluck)(setData.shape,"polygon").toLowerCase();sides=(0,_lib.pluckNumber)(setData.numsides,5);depth=0;if(shape==="star"){depth=.4}else{shape=(0,_lib.mapSymbolName)(sides);shape=(0,_lib.mapSymbolName)(sides).split("-")[0]}color=(0,_lib.pluck)(setData.color,colorM.getColor("legendBorderColor"));toolText=(0,_lib.getValidValue)((0,_lib.parseUnsafeString)((0,_lib.pluck)(setData.tooltext,setData.hovertext,chartConfig.milestonetooltext),false));dateMs=numberFormatter.getDateValue(setData.date).ms;milestoneDate=numberFormatter.getFormattedDate(dateMs);if(toolText!==UNDEF&&tasksMap[taskId]){taskConfigObj=tasksMap[taskId].config;if(processMap[taskId]){processName=processMap[taskId].catObj.label||processMap[taskId].catObj.name}else{processName=processes[i]&&(processes[i].label||processes[i].name)}toolText=(0,_lib.parseTooltext)(toolText,[28,32,33,34,35,36],{date:milestoneDate,taskStartDate:taskConfigObj._startDate,taskEndDate:taskConfigObj._endDate,taskLabel:taskConfigObj.label,taskPercentComplete:taskConfigObj.percentComplete!==-1?numberFormatter.percentValue(taskConfigObj.percentComplete):_lib.BLANKSTRING,processName:processName},setData)}else{toolText=milestoneDate}style=dataConfig.style=(0,_task.extractLabelStyle)({fontSize:setData.fontsize,fontFamily:setData.font,fontWeight:setData.fontbold,fontStyle:setData.fontitalic});dataConfig.textColor=(0,_lib.getFirstColor)((0,_lib.pluck)(setData.fontcolor,chartConfig.milestonefontcolor,inCanStyle.color));(0,_lib.setLineHeight)(style);dataConfig.lineHeight=(0,_lib.pluck)(style&&style.lineHeight,labelStyle&&labelStyle.lineHeight);dataConfig.numSides=sides;dataConfig.startAngle=(0,_lib.pluckNumber)(setData.startangle,90);dataConfig.radius=setData.radius;dataConfig.origDate=setData.date;dataConfig.date=numberFormatter.getDateValue(setData.date);dataConfig.fillColor=(0,_lib.getFirstColor)(color);dataConfig.fillAlpha=(0,_lib.pluckNumber)(setData.fillalpha,setData.alpha,100)*.01;dataConfig.borderColor=(0,_lib.getFirstColor)((0,_lib.pluck)(setData.bordercolor,color));dataConfig.borderAlpha=(0,_lib.pluckNumber)(setData.borderalpha,setData.alpha,100)*.01;dataConfig.displayValue=(0,_lib.parseUnsafeString)(setData.label);dataConfig.style=style;dataConfig.hoverFillColor=(0,_lib.getFirstColor)((0,_lib.pluck)(setData.hoverfillcolor,chartConfig.milestonehoverfillcolor,(0,_lib.getDarkColor)(color,80)));dataConfig.hoverFillAlpha=(0,_lib.pluckNumber)(setData.hoverfillalpha,chartConfig.milestonehoverfillalpha,setData.fillalpha,setData.alpha,100)*.01;dataConfig.hoverBorderColor=(0,_lib.getFirstColor)((0,_lib.pluck)(setData.hoverbordercolor,chartConfig.milestonehoverbordercolor,(0,_lib.getDarkColor)((0,_lib.pluck)(setData.bordercolor,color),80)));dataConfig.hoverBorderAlpha=(0,_lib.pluckNumber)(setData.hoverborderalpha,chartConfig.milestonehoverborderalpha,setData.borderalpha,setData.alpha,100)*.01;dataConfig.showHoverEffect=(0,_lib.pluckNumber)(setData.showhovereffect,chartConfig.showmilestonehovereffect,chartConfig.showhovereffect,1);dataConfig.depth=depth;dataConfig.taskId=taskId;dataConfig.borderThickness=(0,_lib.pluckNumber)(setData.borderthickness,1);dataConfig.link=setData.link;dataConfig.toolText=toolText}if((0,_lib.pluckNumber)(JSONData.visible,1)){dataset.setState("visible",true)}else{dataset.setState("visible",false)}};_proto.drawLabel=function drawLabel(){var dataset=this,chart=dataset.getFromEnv("chart"),animationManager=dataset.getFromEnv("animationManager"),tasksMap=chart.components.tasksMap,config,toolTipController=dataset.getFromEnv("toolTipController"),dataLabelContainer=dataset.getContainer("milestoneLabelContainer"),eventArgs,dataObj,i,labelElementDummy,labelElement,len,graphics,labelAttrs,taskObj,dataStore=dataset.components.data,style;for(i=0,len=dataStore.length;i<len;i++){dataObj=dataStore[i];config=dataObj.config;taskObj=tasksMap[config.taskId];graphics=dataObj.graphics;labelElementDummy=graphics.labelElement;eventArgs=config.eventArgs;labelAttrs=config._labelAttrs;style=config.style;if(config.displayValue!==_lib.BLANKSTRING&&config.displayValue!==UNDEF&&taskObj){labelElement=graphics.labelElement=animationManager.setAnimation({el:labelElementDummy||"text",attr:labelAttrs,container:dataLabelContainer,component:dataset});if(!labelElementDummy){labelElement.on("fc-click",clickHandler(chart)).hover(rollOverHandler(chart),rollOutHandler(chart))}else{labelElement.removeCSS();labelElement.show()}labelElement.css(style);toolTipController.enableToolTip(labelElement,config.toolText);labelElement.data("eventArgs",eventArgs).data("dataObj",dataObj)}else{labelElementDummy&&animationManager.setAnimation({el:labelElementDummy,component:dataset,callback:_task.hideFn,doNotRemove:true})}}};_proto.draw=function draw(){var dataset=this,datasetConfigMilestones=this.config.milestone,chart=dataset.getFromEnv("chart"),chartComponents=chart.components,components=dataset.components,toolTipController=dataset.getFromEnv("toolTipController"),xAxis=chart.getChildren("xAxis")[0],dataStore=components.data,taskMap=chartComponents.tasksMap,chartConfig=chart.config,canvas=chart.getChildren("canvas")[0],container=dataset.getContainer("milestoneContainer"),parentContainer=canvas.getChildContainer("milestoneGroup"),dataLabelContainer=dataset.getContainer("milestoneLabelContainer"),visible=dataset.getState("visible"),animationManager=dataset.getFromEnv("animationManager"),removeDataArr=dataset.components.removeDataArr||[],removeDataArrLen=removeDataArr.length,dataObj,taskObj,graphics,config,eventArgs,taskConfigObj,setElementDummy,setElement,xPos,yPos,polypath,radius,i,ln,labelAttrs,showTooltip=chartConfig.showtooltip;if(!container){container=dataset.addContainer("milestoneContainer",animationManager.setAnimation({el:"group",attr:{name:"milestone"},container:parentContainer,component:dataset}))}if(!visible){container.hide()}else{container.show()}if(!dataLabelContainer){dataLabelContainer=dataset.addContainer("milestoneLabelContainer",animationManager.setAnimation({el:"group",attr:{name:"labels"},container:parentContainer,component:dataset}))}if(!visible){dataLabelContainer.hide()}else{dataLabelContainer.show()}ln=dataStore&&dataStore.length;for(i=0;i<ln;i+=1){dataObj=dataStore[i];if(!dataObj){continue}config=dataObj.config;graphics=dataObj.graphics;taskObj=taskMap[config.taskId];!dataObj.graphics&&(dataObj.graphics={});setElementDummy=graphics.element;if(taskObj){taskConfigObj=taskObj.config;eventArgs=config.eventArgs={sides:config.sides,date:config.origDate,radius:config.radius,taskId:config.taskId,toolText:config.toolText,link:config.link,numSides:config.numSides};xPos=xAxis.getPixel(config.date.ms);yPos=taskConfigObj.yPos+taskConfigObj.height*.5;radius=(0,_lib.pluckNumber)(config.radius,taskConfigObj.height*.6);if((0,_task.checkInvalidValue)(xPos,yPos,radius)===false){continue}polypath=[config.numSides,xPos,yPos,radius,config.startAngle,config.depth];setElement=graphics.element=animationManager.setAnimation({el:setElementDummy||"polypath",label:"polypath",attr:{polypath:polypath,fill:config.fillColor,"fill-opacity":config.fillAlpha,stroke:config.borderColor,"stroke-opacity":config.borderAlpha,groupId:"gId"+i,cursor:config.link?"pointer":_lib.BLANKSTRING,"stroke-width":config.borderThickness},component:dataset,container:container});setElement.on("fc-click",clickHandler(chart)).hover(rollOverHandler(chart),rollOutHandler(chart));setElement.show().data("eventArgs",eventArgs).data("dataObj",dataObj);if(showTooltip){toolTipController.enableToolTip(setElement,config.toolText)}else{toolTipController.disableToolTip(setElement)}var milestoneConf=datasetConfigMilestones[i],yDiff=((milestoneConf==null?void 0:milestoneConf.margintop)||0)-((milestoneConf==null?void 0:milestoneConf.marginbottom)||0),xDiff=((milestoneConf==null?void 0:milestoneConf.marginright)||0)-((milestoneConf==null?void 0:milestoneConf.marginleft)||0);labelAttrs=config._labelAttrs||(config._labelAttrs={});labelAttrs.x=xPos-+xDiff;labelAttrs.y=yPos+ +yDiff;labelAttrs.text=config.displayValue;labelAttrs.groupId="gId"+i;labelAttrs.cursor=config.link?"pointer":_lib.BLANKSTRING;labelAttrs.direction=chartConfig.textDirection;labelAttrs["text-anchor"]=MIDDLE;labelAttrs.fill=config.textColor}else{setElementDummy&&animationManager.setAnimation({el:setElementDummy,component:dataset,callback:_task.hideFn,doNotRemove:true})}}dataset.drawn?dataset.drawLabel():dataset.addJob("drawMilestoneLabels",dataset.drawLabel.bind(dataset),_schedular.priorityList.label);dataset.drawn=true;for(i=0;i<removeDataArrLen;i++){dataset._removeDataVisuals(removeDataArr.shift())}};return Milestone}(_task.default);var _default=exports.default=Milestone;