canvasjs.js 211 KB

1234567
  1. !function(){function t(t,i){t.prototype=e(i.prototype),t.prototype.constructor=t,t.base=i.prototype}function e(t){function e(){}return e.prototype=t,new e}function a(t,e,i){return"millisecond"===i?t.setMilliseconds(t.getMilliseconds()+1*e):"second"===i?t.setSeconds(t.getSeconds()+1*e):"minute"===i?t.setMinutes(t.getMinutes()+1*e):"hour"===i?t.setHours(t.getHours()+1*e):"day"===i?t.setDate(t.getDate()+1*e):"week"===i?t.setDate(t.getDate()+7*e):"month"===i?t.setMonth(t.getMonth()+1*e):"year"===i&&t.setFullYear(t.getFullYear()+1*e),t}function n(t,e){return G[e+"Duration"]*t}function s(t,e){var i=!1;for(t<0&&(i=!0,t*=-1),t=""+t,e=e?e:1;t.length<e;)t="0"+t;return i?"-"+t:t}function o(t){if(!t)return t;t=t.replace(/^\s\s*/,"");for(var e=/\s/,i=t.length;e.test(t.charAt(--i)););return t.slice(0,i+1)}function r(t){t.roundRect=function(t,e,i,a,n,s,o,r){o&&(this.fillStyle=o),r&&(this.strokeStyle=r),"undefined"==typeof n&&(n=5),this.lineWidth=s,this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.quadraticCurveTo(t+i,e,t+i,e+n),this.lineTo(t+i,e+a-n),this.quadraticCurveTo(t+i,e+a,t+i-n,e+a),this.lineTo(t+n,e+a),this.quadraticCurveTo(t,e+a,t,e+a-n),this.lineTo(t,e+n),this.quadraticCurveTo(t,e,t+n,e),this.closePath(),o&&this.fill(),r&&s>0&&this.stroke()}}function l(t,e){return t-e}function h(t,e){return t.x-e.x}function d(t){var e=((16711680&t)>>16).toString(16),i=((65280&t)>>8).toString(16),a=((255&t)>>0).toString(16);return e=e.length<2?"0"+e:e,i=i.length<2?"0"+i:i,a=a.length<2?"0"+a:a,"#"+e+i+a}function c(t,e,i){var a=t<<16|e<<8|i;return a}function x(t){var e=this.length>>>0,i=Number(arguments[1])||0;for(i=i<0?Math.ceil(i):Math.floor(i),i<0&&(i+=e);i<e;i++)if(i in this&&this[i]===t)return i;return-1}function p(t){return t.indexOf||(t.indexOf=x),t}function m(t,e,i){i=i||"normal";var a=t+"_"+e+"_"+i,n=q[a];if(isNaN(n)){try{var s="position:absolute; left:0px; top:-20000px; padding:0px;margin:0px;border:none;white-space:pre;line-height:normal;font-family:"+t+"; font-size:"+e+"px; font-weight:"+i+";";if(!J){var o=document.body;J=document.createElement("span"),J.innerHTML="";var r=document.createTextNode("Mpgyi");J.appendChild(r),o.appendChild(J)}J.style.display="",J.setAttribute("style",s),n=Math.round(J.offsetHeight),J.style.display="none"}catch(t){n=Math.ceil(1.1*e)}n=Math.max(n,e),q[a]=n}return n}function u(t,e){var i=[];if(t=t||"solid",lineDashTypeMap={solid:[],shortDash:[3,1],shortDot:[1,1],shortDashDot:[3,1,1,1],shortDashDotDot:[3,1,1,1,1,1],dot:[1,2],dash:[4,2],dashDot:[4,2,1,2],longDash:[8,2],longDashDot:[8,2,1,2],longDashDotDot:[8,2,1,2,1,2]},i=lineDashTypeMap[t])for(var a=0;a<i.length;a++)i[a]*=e;else i=[];return i}function g(t,e,i,a){if(t.addEventListener)t.addEventListener(e,i,a||!1);else{if(!t.attachEvent)return!1;t.attachEvent("on"+e,function(e){e=e||window.event,e.preventDefault=e.preventDefault||function(){e.returnValue=!1},e.stopPropagation=e.stopPropagation||function(){e.cancelBubble=!0},i.call(t,e)})}}function y(t,e,i){t*=at,e*=at;for(var a=i.getImageData(t,e,2,2).data,n=!0,s=0;s<4;s++)if(a[s]!==a[s+4]|a[s]!==a[s+8]|a[s]!==a[s+12]){n=!1;break}return n?c(a[0],a[1],a[2]):0}function v(t,e,i){var a="",n=t?t+"FontStyle":"fontStyle",s=t?t+"FontWeight":"fontWeight",o=t?t+"FontSize":"fontSize",r=t?t+"FontFamily":"fontFamily";a+=e[n]?e[n]+" ":i&&i[n]?i[n]+" ":"",a+=e[s]?e[s]+" ":i&&i[s]?i[s]+" ":"",a+=e[o]?e[o]+"px ":i&&i[o]?i[o]+"px ":"";var l=e[r]?e[r]+"":i&&i[r]?i[r]+"":"";if(!R&&l){var h=l.split(",")[0];"'"!==h[0]&&'"'!==h[0]&&(h="'"+h+"'"),a+=h}else a+=l;return a}function b(t,e,i){var a=t in e?e[t]:i[t];return a}function f(t,e,i){if(R&&tt){var a=t.getContext("2d");it=a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||a.backingStorePixelRatio||1,at=et/it,t.width=e*at,t.height=i*at,et!==it&&(t.style.width=e+"px",t.style.height=i+"px",a.scale(at,at))}else t.width=e,t.height=i}function T(t,e){var i=document.createElement("canvas");return i.setAttribute("class","canvasjs-chart-canvas"),f(i,t,e),R||"undefined"==typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(i),i}function P(t,e,i){if(t&&e&&i){var a=i+"."+("jpeg"===e?"jpg":e),n="image/"+e,s=t.toDataURL(n),o=!1,r=document.createElement("a");r.download=a,r.href=s,r.target="_blank";if("undefined"!=typeof Blob&&new Blob){for(var l=s.replace(/^data:[a-z\/]*;base64,/,""),h=atob(l),d=new ArrayBuffer(h.length),c=new Uint8Array(d),x=0;x<h.length;x++)c[x]=h.charCodeAt(x);var p=new Blob([d],{type:"image/"+e});try{window.navigator.msSaveBlob(p,a),o=!0}catch(t){r.dataset.downloadurl=[n,r.download,r.href].join(":"),r.href=window.URL.createObjectURL(p)}}if(!o)try{event=document.createEvent("MouseEvents"),event.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),r.dispatchEvent?r.dispatchEvent(event):r.fireEvent&&r.fireEvent("onclick")}catch(t){var m=window.open();m.document.write("<img src='"+s+"'></img><div>Please right click on the image and save it to your device</div>"),m.document.close()}}}function M(t,e,i){e.getAttribute("state")!==i&&(e.setAttribute("state",i),e.setAttribute("type","button"),e.style.position="relative",e.style.margin="0px 0px 0px 0px",e.style.padding="3px 4px 0px 4px",e.style.cssFloat="left",e.setAttribute("title",t._cultureInfo[i+"Text"]),e.innerHTML="<img style='height:16px;' src='"+nt[i].image+"' alt='"+t._cultureInfo[i+"Text"]+"' />")}function k(){for(var t=null,e=0;e<arguments.length;e++)t=arguments[e],t.style&&(t.style.display="inline")}function S(){for(var t=null,e=0;e<arguments.length;e++)t=arguments[e],t&&t.style&&(t.style.display="none")}function C(t,e,i,a){this._defaultsKey=t,this.parent=a,this._eventListeners=[];var n={};i&&K[i]&&K[i][t]&&(n=K[i][t]),this._options=e?e:{},this.setOptions(this._options,n)}function A(t,e,i){this._publicChartReference=i,e=e||{},A.base.constructor.call(this,"Chart",e,e.theme?e.theme:"theme1");var a=this;if(this._containerId=t,this._objectsInitialized=!1,this.ctx=null,this.overlaidCanvasCtx=null,this._indexLabels=[],this._panTimerId=0,this._lastTouchEventType="",this._lastTouchData=null,this.isAnimating=!1,this.renderCount=0,this.animatedRender=!1,this.disableToolTip=!1,this.panEnabled=!1,this._defaultCursor="default",this.plotArea={canvas:null,ctx:null,x1:0,y1:0,x2:0,y2:0,width:0,height:0},this._dataInRenderedOrder=[],this._container="string"==typeof this._containerId?document.getElementById(this._containerId):this._containerId,!this._container)return void window.console;this._container.innerHTML="";var n=0,s=0;n=this._options.width?this.width:this._container.clientWidth>0?this._container.clientWidth:this.width,s=this._options.height?this.height:this._container.clientHeight>0?this._container.clientHeight:this.height,this.width=n,this.height=s,this.x1=this.y1=0,this.x2=this.width,this.y2=this.height,this._selectedColorSet="undefined"!=typeof N[this.colorSet]?N[this.colorSet]:N.colorSet1,this._canvasJSContainer=document.createElement("div"),this._canvasJSContainer.setAttribute("class","canvasjs-chart-container"),this._canvasJSContainer.style.position="relative",this._canvasJSContainer.style.textAlign="left",this._canvasJSContainer.style.cursor="auto",R||(this._canvasJSContainer.style.height="0px"),this._container.appendChild(this._canvasJSContainer),this.canvas=T(n,s),this.canvas.style.position="absolute",this.canvas.getContext&&(this._canvasJSContainer.appendChild(this.canvas),this.ctx=this.canvas.getContext("2d"),this.ctx.textBaseline="top",r(this.ctx),R?this.plotArea.ctx=this.ctx:(this.plotArea.canvas=T(n,s),this.plotArea.canvas.style.position="absolute",this.plotArea.canvas.setAttribute("class","plotAreaCanvas"),this._canvasJSContainer.appendChild(this.plotArea.canvas),this.plotArea.ctx=this.plotArea.canvas.getContext("2d")),this.overlaidCanvas=T(n,s),this.overlaidCanvas.style.position="absolute",this._canvasJSContainer.appendChild(this.overlaidCanvas),this.overlaidCanvasCtx=this.overlaidCanvas.getContext("2d"),this.overlaidCanvasCtx.textBaseline="top",this._eventManager=new E(this),g(window,"resize",function(){a._updateSize()&&a.render()}),this._toolBar=document.createElement("div"),this._toolBar.setAttribute("class","canvasjs-chart-toolbar"),this._toolBar.style.cssText="position: absolute; right: 1px; top: 1px;",this._canvasJSContainer.appendChild(this._toolBar),this.bounds={x1:0,y1:0,x2:this.width,y2:this.height},g(this.overlaidCanvas,"click",function(t){a._mouseEventHandler(t)}),g(this.overlaidCanvas,"mousemove",function(t){a._mouseEventHandler(t)}),g(this.overlaidCanvas,"mouseup",function(t){a._mouseEventHandler(t)}),g(this.overlaidCanvas,"mousedown",function(t){a._mouseEventHandler(t),S(a._dropdownMenu)}),g(this.overlaidCanvas,"mouseout",function(t){a._mouseEventHandler(t)}),g(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerDown":"touchstart",function(t){a._touchEventHandler(t)}),g(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerMove":"touchmove",function(t){a._touchEventHandler(t)}),g(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerUp":"touchend",function(t){a._touchEventHandler(t)}),g(this.overlaidCanvas,window.navigator.msPointerEnabled?"MSPointerCancel":"touchcancel",function(t){a._touchEventHandler(t)}),this._creditLink||(this._creditLink=document.createElement("a"),this._creditLink.setAttribute("class","canvasjs-chart-credit"),this._creditLink.setAttribute("style","outline:none;margin:0px;position:absolute;right:3px;top:"+(this.height-14)+"px;color:dimgrey;text-decoration:none;font-size:10px;font-family:Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"),this._creditLink.setAttribute("tabIndex",-1),this._creditLink.setAttribute("target","_blank")),this._toolTip=new W(this,this._options.toolTip,this.theme),this.data=null,this.axisX=null,this.axisY=null,this.axisY2=null,this.sessionVariables={axisX:{internalMinimum:null,internalMaximum:null},axisY:{internalMinimum:null,internalMaximum:null},axisY2:{internalMinimum:null,internalMaximum:null}})}function _(t,e){for(var i=[],a=0;a<t.length;a++)if(0!=a){var n,s,o;o=a-1,n=0===o?0:o-1,s=o===t.length-1?o:o+1;var r={x:(t[s].x-t[n].x)/e,y:(t[s].y-t[n].y)/e},l={x:t[o].x+r.x/3,y:t[o].y+r.y/3};i[i.length]=l,o=a,n=0===o?0:o-1,s=o===t.length-1?o:o+1;var h={x:(t[s].x-t[n].x)/e,y:(t[s].y-t[n].y)/e},d={x:t[o].x-h.x/3,y:t[o].y-h.y/3};i[i.length]=d,i[i.length]=t[a]}else i.push(t[0]);return i}function w(t,e,i,a,n){"undefined"==typeof n&&(n=0),this._padding=n,this._x1=t,this._y1=e,this._x2=i,this._y2=a,this._topOccupied=this._padding,this._bottomOccupied=this._padding,this._leftOccupied=this._padding,this._rightOccupied=this._padding}function L(t,e){L.base.constructor.call(this,"TextBlock",e),this.ctx=t,this._isDirty=!0,this._wrappedText=null,this._lineHeight=m(this.fontFamily,this.fontSize,this.fontWeight)}function I(t,e){I.base.constructor.call(this,"Title",e,t.theme),this.chart=t,this.canvas=t.canvas,this.ctx=this.chart.ctx,"undefined"==typeof this._options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize)),this.width=null,this.height=null,this.bounds={x1:null,y1:null,x2:null,y2:null}}function B(t,e){B.base.constructor.call(this,"Subtitle",e,t.theme),this.chart=t,this.canvas=t.canvas,this.ctx=this.chart.ctx,"undefined"==typeof this._options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize)),this.width=null,this.height=null,this.bounds={x1:null,y1:null,x2:null,y2:null}}function F(t,e,i){F.base.constructor.call(this,"Legend",e,i),this.chart=t,this.canvas=t.canvas,this.ctx=this.chart.ctx,this.ghostCtx=this.chart._eventManager.ghostCtx,this.items=[],this.width=0,this.height=0,this.orientation=null,this.dataSeries=[],this.bounds={x1:null,y1:null,x2:null,y2:null},"undefined"==typeof this._options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize)),this.lineHeight=m(this.fontFamily,this.fontSize,this.fontWeight),this.horizontalSpacing=this.fontSize}function X(t,e){X.base.constructor.call(this,e),this.chart=t,this.canvas=t.canvas,this.ctx=this.chart.ctx}function z(t,e,i,a,n){z.base.constructor.call(this,"DataSeries",e,i),this.chart=t,this.canvas=t.canvas,this._ctx=t.canvas.ctx,this.index=a,this.noDataPointsInPlotArea=0,this.id=n,this.chart._eventManager.objectMap[n]={id:n,objectType:"dataSeries",dataSeriesIndex:a},this.dataPointIds=[],this.plotUnit=[],this.axisX=null,this.axisY=null,null===this.fillOpacity&&(this.type.match(/area/i)?this.fillOpacity=.7:this.fillOpacity=1),this.axisPlacement=this.getDefaultAxisPlacement(),"undefined"==typeof this._options.indexLabelFontSize&&(this.indexLabelFontSize=this.chart.getAutoFontSize(this.indexLabelFontSize))}function D(t,e,i,a){if(D.base.constructor.call(this,"Axis",e,t.theme),this.chart=t,this.canvas=t.canvas,this.ctx=t.ctx,this.maxWidth=0,this.maxHeight=0,this.intervalstartTimePercent=0,this.labels=[],this._labels=null,this.dataInfo={min:1/0,max:-(1/0),viewPortMin:1/0,viewPortMax:-(1/0),minDiff:1/0},"axisX"===i?(this.sessionVariables=this.chart.sessionVariables[i],this._options.interval||(this.intervalType=null)):"left"===a||"top"===a?this.sessionVariables=this.chart.sessionVariables.axisY:this.sessionVariables=this.chart.sessionVariables.axisY2,"undefined"==typeof this._options.titleFontSize&&(this.titleFontSize=this.chart.getAutoFontSize(this.titleFontSize)),"undefined"==typeof this._options.labelFontSize&&(this.labelFontSize=this.chart.getAutoFontSize(this.labelFontSize)),this.type=i,"axisX"!==i||e&&"undefined"!=typeof e.gridThickness||(this.gridThickness=0),this._position=a,this.lineCoordinates={x1:null,y1:null,x2:null,y2:null,width:null},this.labelAngle=(this.labelAngle%360+360)%360,this.labelAngle>90&&this.labelAngle<=270?this.labelAngle-=180:this.labelAngle>180&&this.labelAngle<=270?this.labelAngle-=180:this.labelAngle>270&&this.labelAngle<=360&&(this.labelAngle-=360),this._options.stripLines&&this._options.stripLines.length>0){this.stripLines=[];for(var n=0;n<this._options.stripLines.length;n++)this.stripLines.push(new Y(this.chart,this._options.stripLines[n],t.theme,++this.chart._eventManager.lastObjectId,this))}this._titleTextBlock=null,this._absoluteMinimum=null,this._absoluteMaximum=null,this.hasOptionChanged("minimum")&&(this.sessionVariables.internalMinimum=this.minimum),this.hasOptionChanged("maximum")&&(this.sessionVariables.internalMaximum=this.maximum),this.trackChanges("minimum"),this.trackChanges("maximum")}function Y(t,e,i,a,n){Y.base.constructor.call(this,"StripLine",e,i,n),this.id=a,this.chart=t,this.ctx=this.chart.ctx,this.label=this.label,this._thicknessType="pixel",null!==this.startValue&&null!==this.endValue&&(this.value=((this.startValue.getTime?this.startValue.getTime():this.startValue)+(this.endValue.getTime?this.endValue.getTime():this.endValue))/2,this.thickness=Math.max(this.endValue-this.startValue),this._thicknessType="value")}function W(t,e,i){W.base.constructor.call(this,"ToolTip",e,i),this.chart=t,this.canvas=t.canvas,this.ctx=this.chart.ctx,this.currentSeriesIndex=-1,this.currentDataPointIndex=-1,this._timerId=0,this._prevX=NaN,this._prevY=NaN,this._initialize()}function E(t){this.chart=t,this.lastObjectId=0;this.objectMap=[],this.rectangularRegionEventSubscriptions=[],this.previousDataPointEventObject=null,this.ghostCanvas=T(this.chart.width,this.chart.height),this.ghostCtx=this.ghostCanvas.getContext("2d");this.mouseoveredObjectMaps=[]}function O(t){var e;t&&j[t]&&(e=j[t]),O.base.constructor.call(this,"CultureInfo",e)}function V(t){this.chart=t,this.ctx=this.chart.plotArea.ctx,this.animations=[],this.animationRequestId=null}var U=!1,R=!!document.createElement("canvas").getContext,H={Chart:{width:500,height:400,zoomEnabled:!1,backgroundColor:"white",theme:"theme1",animationEnabled:!1,animationDuration:1200,dataPointMaxWidth:null,colorSet:"colorSet1",culture:"en",creditText:"CanvasJS.com",interactivityEnabled:!0,exportEnabled:!1,exportFileName:"Chart"},Title:{padding:0,text:null,verticalAlign:"top",horizontalAlign:"center",fontSize:20,fontFamily:"Calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",borderThickness:0,borderColor:"black",cornerRadius:0,backgroundColor:null,margin:5,wrap:!0,maxWidth:null,dockInsidePlotArea:!1},Subtitle:{padding:0,text:null,verticalAlign:"top",horizontalAlign:"center",fontSize:14,fontFamily:"Calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",borderThickness:0,borderColor:"black",cornerRadius:0,backgroundColor:null,margin:2,wrap:!0,maxWidth:null,dockInsidePlotArea:!1},Legend:{name:null,verticalAlign:"center",horizontalAlign:"right",fontSize:14,fontFamily:"calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",cursor:null,itemmouseover:null,itemmouseout:null,itemmousemove:null,itemclick:null,dockInsidePlotArea:!1,reversed:!1,maxWidth:null,maxHeight:null,itemMaxWidth:null,itemWidth:null,itemWrap:!0,itemTextFormatter:null},ToolTip:{enabled:!0,shared:!1,animationEnabled:!0,content:null,contentFormatter:null,reversed:!1,backgroundColor:null,borderColor:null,borderThickness:2,cornerRadius:5,fontSize:14,fontColor:"#000000",fontFamily:"Calibri, Arial, Georgia, serif;",fontWeight:"normal",fontStyle:"italic"},Axis:{minimum:null,maximum:null,interval:null,intervalType:null,title:null,titleFontColor:"black",titleFontSize:20,titleFontFamily:"arial",titleFontWeight:"normal",titleFontStyle:"normal",labelAngle:0,labelFontFamily:"arial",labelFontColor:"black",labelFontSize:12,labelFontWeight:"normal",labelFontStyle:"normal",labelAutoFit:!1,labelWrap:!0,labelMaxWidth:null,labelFormatter:null,prefix:"",suffix:"",includeZero:!0,tickLength:5,tickColor:"black",tickThickness:1,lineColor:"black",lineThickness:1,lineDashType:"solid",gridColor:"A0A0A0",gridThickness:0,gridDashType:"solid",interlacedColor:null,valueFormatString:null,margin:2,stripLines:[]},StripLine:{value:null,startValue:null,endValue:null,color:"orange",opacity:null,thickness:2,lineDashType:"solid",label:"",labelBackgroundColor:"#EEEEEE",labelFontFamily:"arial",labelFontColor:"orange",labelFontSize:12,labelFontWeight:"normal",labelFontStyle:"normal",labelFormatter:null,showOnTop:!1},DataSeries:{name:null,dataPoints:null,label:"",bevelEnabled:!1,highlightEnabled:!0,cursor:null,indexLabel:"",indexLabelPlacement:"auto",indexLabelOrientation:"horizontal",indexLabelFontColor:"black",indexLabelFontSize:12,indexLabelFontStyle:"normal",indexLabelFontFamily:"Arial",indexLabelFontWeight:"normal",indexLabelBackgroundColor:null,indexLabelLineColor:null,indexLabelLineThickness:1,indexLabelLineDashType:"solid",indexLabelMaxWidth:null,indexLabelWrap:!0,indexLabelFormatter:null,lineThickness:2,lineDashType:"solid",color:null,risingColor:"white",fillOpacity:null,startAngle:0,type:"column",xValueType:"number",axisYType:"primary",xValueFormatString:null,yValueFormatString:null,zValueFormatString:null,percentFormatString:null,showInLegend:null,legendMarkerType:null,legendMarkerColor:null,legendText:null,legendMarkerBorderColor:null,legendMarkerBorderThickness:null,markerType:"circle",markerColor:null,markerSize:null,markerBorderColor:null,markerBorderThickness:null,mouseover:null,mouseout:null,mousemove:null,click:null,ondblclick:null,toolTipContent:null,visible:!0},TextBlock:{x:0,y:0,width:null,height:null,maxWidth:null,maxHeight:null,padding:0,angle:0,text:"",horizontalAlign:"center",fontSize:12,fontFamily:"calibri",fontWeight:"normal",fontColor:"black",fontStyle:"normal",borderThickness:0,borderColor:"black",cornerRadius:0,backgroundColor:null,textBaseline:"top"},CultureInfo:{decimalSeparator:".",digitGroupSeparator:",",zoomText:"Zoom",panText:"Pan",resetText:"Reset",menuText:"More Options",saveJPGText:"Save as JPG",savePNGText:"Save as PNG",days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}},j={en:{}},N={colorSet1:["#369EAD","#C24642","#7F6084","#86B402","#A2D1CF","#C8B631","#6DBCEB","#52514E","#4F81BC","#A064A1","#F79647"],colorSet2:["#4F81BC","#C0504E","#9BBB58","#23BFAA","#8064A1","#4AACC5","#F79647","#33558B"],colorSet3:["#8CA1BC","#36845C","#017E82","#8CB9D0","#708C98","#94838D","#F08891","#0366A7","#008276","#EE7757","#E5BA3A","#F2990B","#03557B","#782970"]},K={theme1:{Chart:{colorSet:"colorSet1"},Title:{fontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",fontSize:33,fontColor:"#3A3A3A",fontWeight:"bold",verticalAlign:"top",margin:5},Subtitle:{fontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",fontSize:16,fontColor:"#3A3A3A",fontWeight:"bold",verticalAlign:"top",margin:5},Axis:{titleFontSize:26,titleFontColor:"#666666",titleFontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",labelFontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",labelFontSize:18,labelFontColor:"grey",tickColor:"#BBBBBB",tickThickness:2,gridThickness:2,gridColor:"#BBBBBB",lineThickness:2,lineColor:"#BBBBBB"},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:R?"monospace, sans-serif,arial black":"calibri"},DataSeries:{indexLabelFontColor:"grey",indexLabelFontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",indexLabelFontSize:18,indexLabelLineThickness:1}},theme2:{Chart:{colorSet:"colorSet2"},Title:{fontFamily:"impact, charcoal, arial black, sans-serif",fontSize:32,fontColor:"#333333",verticalAlign:"top",margin:5},Subtitle:{fontFamily:"impact, charcoal, arial black, sans-serif",fontSize:14,fontColor:"#333333",verticalAlign:"top",margin:5},Axis:{titleFontSize:22,titleFontColor:"rgb(98,98,98)",titleFontFamily:R?"monospace, sans-serif,arial black":"arial",titleFontWeight:"bold",labelFontFamily:R?"monospace, Courier New, Courier":"arial",labelFontSize:16,labelFontColor:"grey",labelFontWeight:"bold",tickColor:"grey",tickThickness:2,gridThickness:2,gridColor:"grey",lineColor:"grey",lineThickness:0},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:R?"monospace, sans-serif,arial black":"arial"},DataSeries:{indexLabelFontColor:"grey",indexLabelFontFamily:R?"Courier New, Courier, monospace":"arial",indexLabelFontWeight:"bold",indexLabelFontSize:18,indexLabelLineThickness:1}},theme3:{Chart:{colorSet:"colorSet1"},Title:{fontFamily:R?"Candara, Optima, Trebuchet MS, Helvetica Neue, Helvetica, Trebuchet MS, serif":"calibri",fontSize:32,fontColor:"#3A3A3A",fontWeight:"bold",verticalAlign:"top",margin:5},Subtitle:{fontFamily:R?"Candara, Optima, Trebuchet MS, Helvetica Neue, Helvetica, Trebuchet MS, serif":"calibri",fontSize:16,fontColor:"#3A3A3A",fontWeight:"bold",verticalAlign:"top",margin:5},Axis:{titleFontSize:22,titleFontColor:"rgb(98,98,98)",titleFontFamily:R?"Verdana, Geneva, Calibri, sans-serif":"calibri",labelFontFamily:R?"Calibri, Optima, Candara, Verdana, Geneva, sans-serif":"calibri",labelFontSize:18,labelFontColor:"grey",tickColor:"grey",tickThickness:2,gridThickness:2,gridColor:"grey",lineThickness:2,lineColor:"grey"},Legend:{verticalAlign:"bottom",horizontalAlign:"center",fontFamily:R?"monospace, sans-serif,arial black":"calibri"},DataSeries:{bevelEnabled:!0,indexLabelFontColor:"grey",indexLabelFontFamily:R?"Candara, Optima, Calibri, Verdana, Geneva, sans-serif":"calibri",indexLabelFontSize:18,indexLabelLineColor:"lightgrey",indexLabelLineThickness:2}}},G={numberDuration:1,yearDuration:314496e5,monthDuration:2592e6,weekDuration:6048e5,dayDuration:864e5,hourDuration:36e5,minuteDuration:6e4,secondDuration:1e3,millisecondDuration:1,dayOfWeekFromInt:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},q={},J=null,Q=function(){var t=/D{1,4}|M{1,4}|Y{1,4}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|f{1,3}|t{1,2}|T{1,2}|K|z{1,3}|"[^"]*"|'[^']*'/g,e=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],a=["January","February","March","April","May","June","July","August","September","October","November","December"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],o=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,r=/[^-+\dA-Z]/g;return function(l,h,d){var c=d?d.days:e,x=d?d.months:a,p=d?d.shortDays:i,m=d?d.shortMonths:n,u="",g=!1;if(l=l&&l.getTime?l:l?new Date(l):new Date,isNaN(l))throw SyntaxError("invalid date");"UTC:"===h.slice(0,4)&&(h=h.slice(4),g=!0);var y=g?"getUTC":"get",v=l[y+"Date"](),b=l[y+"Day"](),f=l[y+"Month"](),T=l[y+"FullYear"](),P=l[y+"Hours"](),M=l[y+"Minutes"](),k=l[y+"Seconds"](),S=l[y+"Milliseconds"](),C=g?0:l.getTimezoneOffset();return u=h.replace(t,function(t){switch(t){case"D":return v;case"DD":return s(v,2);case"DDD":return p[b];case"DDDD":return c[b];case"M":return f+1;case"MM":return s(f+1,2);case"MMM":return m[f];case"MMMM":return x[f];case"Y":return parseInt(String(T).slice(-2));case"YY":return s(String(T).slice(-2),2);case"YYY":return s(String(T).slice(-3),3);case"YYYY":return s(T,4);case"h":return P%12||12;case"hh":return s(P%12||12,2);case"H":return P;case"HH":return s(P,2);case"m":return M;case"mm":return s(M,2);case"s":return k;case"ss":return s(k,2);case"f":return String(S).slice(0,1);case"ff":return s(String(S).slice(0,2),2);case"fff":return s(String(S).slice(0,3),3);case"t":return P<12?"a":"p";case"tt":return P<12?"am":"pm";case"T":return P<12?"A":"P";case"TT":return P<12?"AM":"PM";case"K":return g?"UTC":(String(l).match(o)||[""]).pop().replace(r,"");case"z":return(C>0?"-":"+")+Math.floor(Math.abs(C)/60);case"zz":return(C>0?"-":"+")+s(Math.floor(Math.abs(C)/60),2);case"zzz":return(C>0?"-":"+")+s(Math.floor(Math.abs(C)/60),2)+s(Math.abs(C)%60,2);default:return t.slice(1,t.length-1)}})}}(),Z=function(t,e,i){if(null===t)return"";t=Number(t);var a=t<0;a&&(t*=-1);var n=i?i.decimalSeparator:".",o=i?i.digitGroupSeparator:",",r="";e=String(e);var l=1,h="",d="",c=-1,x=[],p=[],m=0,u=0,g=0,y=!1,v=0;d=e.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|‰|./g);for(var b=null,f=0;d&&f<d.length;f++)if(b=d[f],"."===b&&c<0)c=f;else{if("%"===b)l*=100;else{if("‰"===b){l*=1e3;continue}if(","===b[0]&&"."===b[b.length-1]){l/=Math.pow(1e3,b.length-1),c=f+b.length-1;continue}"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||(y=!0)}c<0?(x.push(b),"#"===b||"0"===b?m++:","===b&&g++):(p.push(b),"#"!==b&&"0"!==b||u++)}if(y){var T=Math.floor(t);v=(0===T?"":String(T)).length-m,l/=Math.pow(10,v)}t*=l,c<0&&(c=f),r=t.toFixed(u);var P=r.split("."),M=(P[0]+"").split(""),k=(P[1]+"").split("");M&&"0"===M[0]&&M.shift();for(var S=0,C=0,A=0,_=0,w=0;x.length>0;)if(b=x.pop(),"#"===b||"0"===b)if(S++,S===m){var L=M;if(M=[],"0"===b)for(var I=m-C-(L?L.length:0);I>0;)L.unshift("0"),I--;for(;L.length>0;)h=L.pop()+h,w++,w%_===0&&A===g&&L.length>0&&(h=o+h);a&&(h="-"+h)}else M.length>0?(h=M.pop()+h,C++,w++):"0"===b&&(h="0"+h,C++,w++),w%_===0&&A===g&&M.length>0&&(h=o+h);else"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||!/[eE][+-]*[0]+/.test(b)?","===b?(A++,_=w,w=0,M.length>0&&(h=o+h)):h=b.length>1&&('"'===b[0]&&'"'===b[b.length-1]||"'"===b[0]&&"'"===b[b.length-1])?b.slice(1,b.length-1)+h:b+h:(b=v<0?b.replace("+","").replace("-",""):b.replace("-",""),h+=b.replace(/[0]+/,function(t){return s(v,t.length)}));for(var B="",F=!1;p.length>0;)b=p.shift(),"#"===b||"0"===b?k.length>0&&0!==Number(k.join(""))?(B+=k.shift(),F=!0):"0"===b&&(B+="0",F=!0):b.length>1&&('"'===b[0]&&'"'===b[b.length-1]||"'"===b[0]&&"'"===b[b.length-1])?B+=b.slice(1,b.length-1):"E"!==b[0]&&"e"!==b[0]||"0"!==b[b.length-1]||!/[eE][+-]*[0]+/.test(b)?B+=b:(b=v<0?b.replace("+","").replace("-",""):b.replace("-",""),B+=b.replace(/[0]+/,function(t){return s(v,t.length)}));return h+=(F?n:"")+B},$=function(t){var e=0,i=0;return t=t||window.event,t.offsetX||0===t.offsetX?(e=t.offsetX,i=t.offsetY):t.layerX||0==t.layerX?(e=t.layerX,i=t.layerY):(e=t.pageX-t.target.offsetLeft,i=t.pageY-t.target.offsetTop),{x:e,y:i}},tt=!0,et=window.devicePixelRatio||1,it=1,at=tt?et/it:1,nt={reset:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAKRSURBVEiJrdY/iF1FFMfxzwnZrGISUSR/JLGIhoh/QiRNBLWxMLIWEkwbgiAoFgoW2mhlY6dgpY2IlRBRxBSKhSAKIklWJRYuMZKAhiyopAiaTY7FvRtmZ+/ed9/zHRjezLw5v/O9d86cuZGZpmURAfdn5o9DfdZNLXpjz+LziPgyIl6MiG0jPTJzZBuyDrP4BVm0P/AKbljTb4ToY/gGewYA7KyCl+1b3DUYANvwbiHw0gCAGRzBOzjTAXEOu0cC4Ch+r5x/HrpdrcZmvIDFSucMtnYCYC++6HmNDw8FKDT34ETrf639/azOr5vwRk/g5fbeuABtgC04XWk9VQLciMP4EH/3AFzErRNC7MXlQmsesSoHsGPE23hmEoBW+61K66HMXFmIMvN8myilXS36R01ub+KfYvw43ZXwYDX+AHP4BAci4pFJomfmr/ihmNofESsBImJGk7mlncrM45n5JPbhz0kAWpsv+juxaX21YIPmVJS2uNzJMS6ZNexC0d+I7fUWXLFyz2kSZlpWPvASlmqAf/FXNXf3FAF2F/1LuFifAlionB6dRuSI2IwHi6lzmXmp6xR8XY0fiIh7psAwh+3FuDkRHQVjl+a8lkXjo0kLUKH7XaV5oO86PmZ1FTzyP4K/XGl9v/zwfbW7BriiuETGCP5ch9bc9f97HF/vcFzCa5gdEPgWq+t/4v0V63oE1uF4h0DiFJ7HnSWMppDdh1dxtsPvJ2wcBNAKbsJXa0Ck5opdaBPsRNu/usba09i1KsaAVzmLt3sghrRjuK1Tf4xkegInxwy8gKf7dKMVH2QRsV5zXR/Cftyu+aKaKbbkQrsdH+PTzLzcqzkOQAVzM+7FHdiqqe2/YT4zF/t8S/sPmawyvC974vcAAAAASUVORK5CYII="},pan:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAJVSURBVFiFvZe7a1RBGMV/x2hWI4JpfKCIiSBKOoOCkID/wP4BFqIIFkE02ChIiC8QDKlSiI3YqRBsBVGwUNAUdiIEUgjiAzQIIsuKJsfizsXr5t7d+8jmwLDfzHz3nLOzc7+ZxTZlGyDgZiWOCuJ9wH2gCUyuqQFgF/AGcKJNrYkBYBj40CIet+muGQi/96kM4WS7C/Tm5VUg7whJg8BkEGkCR4BDYfodsADUgP6wErO5iCtswsuJb32hdbXy8qzL5TIdmzJinHdZoZIBZcSFkGlAKs1Z3YCketZcBtouuaQNkrblMiBpBrhme7mAgU4wMCvpcFsDkq4C54DFVRTH9h+i6vlE0r5UA5ImgCuh28jB28iIs7BIVCOeStoZD64P4uPAjUTygKSx2FsK2TIwkugfk9Qkfd/E+yMWHQCeSRqx/R3gOp3LazfaS2C4B5gHDgD7U9x3E3uAH7KNpC3AHHAwTL4FHgM9GQ8vAaPA0dB/Abxqk2/gBLA9MXba9r1k/d4LfA3JtwueBeM58ucS+edXnAW23wP10N3advEi9CXizTnyN4bPS7Zn4sH/dq3t18AY4e1YLYSy3g/csj2VnFshZPuOpOeSKHCodUINuGj7YetE6je1PV9QoNPJ9StNHKodx7nRbiWrGHBGXAi5DUiqtQwtpcWK0Jubt8CltA5MEV1IfwO7+VffPwGfia5m34CT4bXujIIX0Qna1/cGMNqV/wUJE2czxD8CQ4X5Sl7Jz7SILwCDpbjKPBRMHAd+EtX4HWV5Spdc2w8kDQGPbH8py/MXMygM69/FKz4AAAAASUVORK5CYII="},zoom:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAMqSURBVFiFvdfbj91TFMDxz57U6GUEMS1aYzyMtCSSDhWjCZMInpAI3khE/QHtgzdRkXgSCS8SES9epKLi0oRKNETjRahREq2KS1stdRujtDPtbA97n5zdn9+5zJxTK9k5v3POXmt991p7r71+IcaoGwkhTOIebMRqzOBTvIG3Y4zTXRmqSoyx5cAKbMJOHMFJnMZ8/jyFaXyMR7G6nb1aH22cP4BvcBxziG3GKfyTIR9D6BYg1KUghPBCDveFlb/24Av8iuUYw41YVsz5G7uxKcZ4aMEpwGt5NY3V/YbHsQ6rcAHOw/kYxigewr5CZw4fYGxBKcCLOFEYehXrMdRhr5yLETxVScsOLOkKAPfn1TYMPIvLFrShUlS2FDZm8XRHACzFAWl3R2xbqPMCYhmeLCAOYEMngAczbcTvuHYxzguIy/FesR9e6gSwU/OoPYHBHgHgviIKX2Flq7k34KhmcVnbi/PC8JX4MgMcxb118wZwdz5aISscqx7VRcox7MrPQ7i+btIAJrAkf9+bI9EPmZY2IAxiTSuAldLq4Y9+AcSUh78KP0tbAcwU35cXMD1JCIFUoGiehlqAz6TNB1f1C0DK+0h+nsNPrQC2a4bqGmlD9kOGcWt+Po6pVgDvSxfJaSkFd4UQBvoAsBYbCoB3a2flM7slA0R8iyt6rAFDeDPbm8eOTpVwGD9qVq7nLbIaZnmksPU1JtsCZMXNmpdRxFasWITzh6Xj3LCzra1OxcD2QjHiGVzdpfORnMqZio2PcF23ABdJF1Np4BPptlyPi6WzPYBzpJZtHe7A6xW9cnyP8TqA//SEIYRL8Bxul7rihvwgtVn78WcGGZXa9HGd5TDujDHuOePXNiHdKjWgZX/YbsxLx/ktqbjVzTlcjUSnvI5JrdlUVp6WesZZ6R1hRrpq9+EVTGS9jTjYAuKIouGpbcurEkIYxC051KNSamazsc+xK8b4S0VnEi/j0hqTP+M27O258egQwZuzs7pI7Mf4WQXIEDc5s9sux+5+1Py2EmP8UOq6GvWhIScxfdYjUERiAt9Jd84J6a16zf8JEKT3yCm8g1UxRv8CC4pyRhzR1uUAAAAASUVORK5CYII="},menu:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDcvMTUvMTTPsvU0AAAAP0lEQVRIie2SMQoAIBDDUvH/X667g8sJJ9KOhYYOkW0qGaU1MPdC0vGSbV19EACo3YMPAFH5BUBUjsqfAPpVXtNgGDfxEDCtAAAAAElFTkSuQmCC"}};C.prototype.setOptions=function(t,e){if(H[this._defaultsKey]){var i=H[this._defaultsKey];for(var a in i)t&&a in t?this[a]=t[a]:e&&a in e?this[a]=e[a]:this[a]=i[a]}else U&&window.console},C.prototype.updateOption=function(t){
  2. !H[this._defaultsKey]&&U&&window.console;var e=H[this._defaultsKey],i=this._options.theme?this._options.theme:this.chart&&this.chart._options.theme?this.chart._options.theme:"theme1",a={},n=this[t];return i&&K[i]&&K[i][this._defaultsKey]&&(a=K[i][this._defaultsKey]),t in e&&(n=t in this._options?this._options[t]:a&&t in a?a[t]:e[t]),n!==this[t]&&(this[t]=n,!0)},C.prototype.trackChanges=function(t){this._options._oldOptions||(this._options._oldOptions={}),this._options._oldOptions[t]=this._options[t]},C.prototype.isBeingTracked=function(t){return this._options._oldOptions||(this._options._oldOptions={}),!!this._options._oldOptions[t]},C.prototype.hasOptionChanged=function(t){this._options._oldOptions||(this._options._oldOptions={});var e=!(this._options._oldOptions[t]===this._options[t]);return e},C.prototype.addEventListener=function(t,e,i){t&&e&&(i=i||this,this._eventListeners[t]=this._eventListeners[t]||[],this._eventListeners[t].push({context:i,eventHandler:e}))},C.prototype.removeEventListener=function(t,e){if(t&&e&&this._eventListeners[t])for(var i=this._eventListeners[t],a=0;a<i.length;a++)if(i[a].eventHandler===e){i[a].splice(a,1);break}},C.prototype.removeAllEventListeners=function(){this._eventListeners=[]},C.prototype.dispatchEvent=function(t,e){if(t&&this._eventListeners[t]){e=e||{};for(var i=this._eventListeners[t],a=0;a<i.length;a++)i[a].eventHandler.call(i[a].context,e)}},t(A,C),A.prototype._updateOptions=function(){var t=this;if(this.updateOption("width"),this.updateOption("height"),this.updateOption("theme"),this.updateOption("colorSet")&&(this._selectedColorSet="undefined"!=typeof N[this.colorSet]?N[this.colorSet]:N.colorSet1),this.updateOption("backgroundColor"),this.backgroundColor||(this.backgroundColor="rgba(0,0,0,0)"),this.updateOption("culture"),this._cultureInfo=new O(this._options.culture),this.updateOption("animationEnabled"),this.animationEnabled=this.animationEnabled&&R,this._options.zoomEnabled?(this._zoomButton||(S(this._zoomButton=document.createElement("button")),M(this,this._zoomButton,"pan"),this._toolBar.appendChild(this._zoomButton),g(this._zoomButton,"click",function(){t.zoomEnabled?(t.zoomEnabled=!1,t.panEnabled=!0,M(t,t._zoomButton,"zoom")):(t.zoomEnabled=!0,t.panEnabled=!1,M(t,t._zoomButton,"pan")),t.render()})),this._resetButton||(S(this._resetButton=document.createElement("button")),M(this,this._resetButton,"reset"),this._toolBar.appendChild(this._resetButton),g(this._resetButton,"click",function(){t._toolTip.hide(),t.zoomEnabled||t.panEnabled?(t.zoomEnabled=!0,t.panEnabled=!1,M(t,t._zoomButton,"pan"),t._defaultCursor="default",t.overlaidCanvas.style.cursor=t._defaultCursor):(t.zoomEnabled=!1,t.panEnabled=!1),t._options.axisX&&t._options.axisX.minimum?t.sessionVariables.axisX.internalMinimum=t._options.axisX.minimum:t.sessionVariables.axisX.internalMinimum=null,t._options.axisX&&t._options.axisX.maximum?t.sessionVariables.axisX.internalMaximum=t._options.axisX.maximum:t.sessionVariables.axisX.internalMaximum=null,t.resetOverlayedCanvas(),S(t._zoomButton,t._resetButton),t.render()}),this.overlaidCanvas.style.cursor=t._defaultCursor),this.zoomEnabled||this.panEnabled||(this._zoomButton?(t._zoomButton.getAttribute("state")===t._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),k(t._zoomButton,t._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))):(this.zoomEnabled=!1,this.panEnabled=!1),"undefined"!=typeof this._options.exportFileName&&(this.exportFileName=this._options.exportFileName),"undefined"!=typeof this._options.exportEnabled&&(this.exportEnabled=this._options.exportEnabled),this._menuButton?this.exportEnabled?k(this._menuButton):S(this._menuButton):this.exportEnabled&&R&&(this._menuButton=document.createElement("button"),M(this,this._menuButton,"menu"),this._toolBar.appendChild(this._menuButton),g(this._menuButton,"click",function(){if("none"===t._dropdownMenu.style.display){if(t._dropDownCloseTime&&(new Date).getTime()-t._dropDownCloseTime.getTime()<=500)return;t._dropdownMenu.style.display="block",t._menuButton.blur(),t._dropdownMenu.focus()}},!0)),!this._dropdownMenu&&this.exportEnabled&&R){this._dropdownMenu=document.createElement("div"),this._dropdownMenu.setAttribute("tabindex",-1),this._dropdownMenu.style.cssText="position: absolute; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer;right: 1px;top: 25px;min-width: 120px;outline: 0;border: 1px solid silver;font-size: 14px;font-family: Calibri, Verdana, sans-serif;padding: 5px 0px 5px 0px;text-align: left;background-color: #fff;line-height: 20px;box-shadow: 2px 2px 10px #888888;",t._dropdownMenu.style.display="none",this._toolBar.appendChild(this._dropdownMenu),g(this._dropdownMenu,"blur",function(){S(t._dropdownMenu),t._dropDownCloseTime=new Date},!0);var e=document.createElement("div");e.style.cssText="padding: 2px 15px 2px 10px",e.innerHTML=this._cultureInfo.saveJPGText,this._dropdownMenu.appendChild(e),g(e,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0),g(e,"mouseout",function(){this.style.backgroundColor="transparent"},!0),g(e,"click",function(){P(t.canvas,"jpg",t.exportFileName),S(t._dropdownMenu)},!0);var e=document.createElement("div");e.style.cssText="padding: 2px 15px 2px 10px",e.innerHTML=this._cultureInfo.savePNGText,this._dropdownMenu.appendChild(e),g(e,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0),g(e,"mouseout",function(){this.style.backgroundColor="transparent"},!0),g(e,"click",function(){P(t.canvas,"png",t.exportFileName),S(t._dropdownMenu)},!0)}if("none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?M(t,t._zoomButton,"zoom"):M(t,t._zoomButton,"pan"),t._resetButton.getAttribute("state")!==t._cultureInfo.resetText&&M(t,t._resetButton,"reset")),"undefined"==typeof H.Chart.creditHref);else var i=this.updateOption("creditText"),a=this.updateOption("creditHref");(0===this.renderCount||i||a)&&(this._creditLink.setAttribute("href",this.creditHref),this._creditLink.innerHTML=this.creditText),this.creditHref&&this.creditText?this._creditLink.parentElement||this._canvasJSContainer.appendChild(this._creditLink):this._creditLink.parentElement&&this._canvasJSContainer.removeChild(this._creditLink),this._options.toolTip&&this._toolTip._options!==this._options.toolTip&&(this._toolTip._options=this._options.toolTip);for(var n in this._toolTip._options)this._toolTip._options.hasOwnProperty(n)&&this._toolTip.updateOption(n)},A.prototype._updateSize=function(){var t=0,e=0;return this._options.width?t=this.width:this.width=t=this._container.clientWidth>0?this._container.clientWidth:this.width,this._options.height?e=this.height:this.height=e=this._container.clientHeight>0?this._container.clientHeight:this.height,(this.canvas.width!==t*at||this.canvas.height!==e*at)&&(f(this.canvas,t,e),f(this.overlaidCanvas,t,e),f(this._eventManager.ghostCanvas,t,e),!0)},A.prototype._initialize=function(){this._animator?this._animator.cancelAllAnimations():this._animator=new V(this),this.removeAllEventListeners(),this.disableToolTip=!1,this.pieDoughnutClickHandler=null,this.animationRequestId&&this.cancelRequestAnimFrame.call(window,this.animationRequestId),this._updateOptions(),this.animatedRender=R&&this.animationEnabled&&0===this.renderCount,this._updateSize(),this.clearCanvas(),this.ctx.beginPath(),this.axisX=null,this.axisY=null,this.axisY2=null,this._indexLabels=[],this._dataInRenderedOrder=[],this._events=[],this._eventManager&&this._eventManager.reset(),this.plotInfo={axisPlacement:null,axisXValueType:null,plotTypes:[]},this.layoutManager=new w(0,0,this.width,this.height,2),this.plotArea.layoutManager&&this.plotArea.layoutManager.reset(),this.data=[];for(var t=0,e=0;e<this._options.data.length;e++)if(t++,!this._options.data[e].type||A._supportedChartTypes.indexOf(this._options.data[e].type)>=0){var i=new z(this,this._options.data[e],this.theme,t-1,++this._eventManager.lastObjectId);null===i.name&&(i.name="DataSeries "+t),null===i.color?this._options.data.length>1?(i._colorSet=[this._selectedColorSet[i.index%this._selectedColorSet.length]],i.color=this._selectedColorSet[i.index%this._selectedColorSet.length]):"line"===i.type||"stepLine"===i.type||"spline"===i.type||"area"===i.type||"stepArea"===i.type||"splineArea"===i.type||"stackedArea"===i.type||"stackedArea100"===i.type||"rangeArea"===i.type||"rangeSplineArea"===i.type||"candlestick"===i.type||"ohlc"===i.type?i._colorSet=[this._selectedColorSet[0]]:i._colorSet=this._selectedColorSet:i._colorSet=[i.color],null===i.markerSize&&(("line"===i.type||"stepLine"===i.type||"spline"===i.type)&&i.dataPoints&&i.dataPoints.length<this.width/16||"scatter"===i.type)&&(i.markerSize=8),"bubble"!==i.type&&"scatter"!==i.type||!i.dataPoints||i.dataPoints.sort(h),this.data.push(i);var a,n=i.axisPlacement;if("normal"===n?"xySwapped"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with bar chart':"none"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with pie chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="normal"):"xySwapped"===n?"normal"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with line, area, column or pie chart':"none"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with pie chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="xySwapped"):"none"==n&&("normal"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with line, area, column or bar chart':"xySwapped"===this.plotInfo.axisPlacement?a='You cannot combine "'+i.type+'" with bar chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement="none")),a&&window.console)return}this._objectsInitialized=!0},A._supportedChartTypes=p(["line","stepLine","spline","column","area","stepArea","splineArea","bar","bubble","scatter","stackedColumn","stackedColumn100","stackedBar","stackedBar100","stackedArea","stackedArea100","candlestick","ohlc","rangeColumn","rangeBar","rangeArea","rangeSplineArea","pie","doughnut","funnel"]),A.prototype.render=function(t){t&&(this._options=t),this._initialize();for(var e=[],i=0;i<this.data.length;i++)"normal"!==this.plotInfo.axisPlacement&&"xySwapped"!==this.plotInfo.axisPlacement||(this.data[i].axisYType&&"primary"!==this.data[i].axisYType?"secondary"===this.data[i].axisYType&&(this.axisY2||("normal"===this.plotInfo.axisPlacement?this.axisY2=new D(this,this._options.axisY2,"axisY","right"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisY2=new D(this,this._options.axisY2,"axisY","top"))),this.data[i].axisY=this.axisY2):(this.axisY||("normal"===this.plotInfo.axisPlacement?this.axisY=new D(this,this._options.axisY,"axisY","left"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisY=new D(this,this._options.axisY,"axisY","bottom"))),this.data[i].axisY=this.axisY),this.axisX||("normal"===this.plotInfo.axisPlacement?this.axisX=new D(this,this._options.axisX,"axisX","bottom"):"xySwapped"===this.plotInfo.axisPlacement&&(this.axisX=new D(this,this._options.axisX,"axisX","left"))),this.data[i].axisX=this.axisX);if(this._processData(),this._options.title&&(this._title=new I(this,this._options.title),this._title.dockInsidePlotArea?e.push(this._title):this._title.render()),this._options.subtitles)for(var i=0;i<this._options.subtitles.length;i++){this.subtitles=[];var a=new B(this,this._options.subtitles[i]);this.subtitles.push(a),a.dockInsidePlotArea?e.push(a):a.render()}this.legend=new F(this,this._options.legend,this.theme);for(var i=0;i<this.data.length;i++)(this.data[i].showInLegend||"pie"===this.data[i].type||"doughnut"===this.data[i].type)&&this.legend.dataSeries.push(this.data[i]);if(this.legend.dockInsidePlotArea?e.push(this.legend):this.legend.render(),"normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)D.setLayoutAndRender(this.axisX,this.axisY,this.axisY2,this.plotInfo.axisPlacement,this.layoutManager.getFreeSpace());else{if("none"!==this.plotInfo.axisPlacement)return;this.preparePlotArea()}var n=0;for(n in e)e[n].render();var s=[];if(this.animatedRender){var o=T(this.width,this.height),r=o.getContext("2d");r.drawImage(this.canvas,0,0,this.width,this.height)}for(var i=0;i<this.plotInfo.plotTypes.length;i++)for(var l=this.plotInfo.plotTypes[i],h=0;h<l.plotUnits.length;h++){var d=l.plotUnits[h],c=null;d.targetCanvas=null,this.animatedRender&&(d.targetCanvas=T(this.width,this.height),d.targetCanvasCtx=d.targetCanvas.getContext("2d")),"line"===d.type?c=this.renderLine(d):"stepLine"===d.type?c=this.renderStepLine(d):"spline"===d.type?c=this.renderSpline(d):"column"===d.type?c=this.renderColumn(d):"bar"===d.type?c=this.renderBar(d):"area"===d.type?c=this.renderArea(d):"stepArea"===d.type?c=this.renderStepArea(d):"splineArea"===d.type?c=this.renderSplineArea(d):"stackedColumn"===d.type?c=this.renderStackedColumn(d):"stackedColumn100"===d.type?c=this.renderStackedColumn100(d):"stackedBar"===d.type?c=this.renderStackedBar(d):"stackedBar100"===d.type?c=this.renderStackedBar100(d):"stackedArea"===d.type?c=this.renderStackedArea(d):"stackedArea100"===d.type?c=this.renderStackedArea100(d):"bubble"===d.type?c=c=this.renderBubble(d):"scatter"===d.type?c=this.renderScatter(d):"pie"===d.type?this.renderPie(d):"doughnut"===d.type?this.renderPie(d):"candlestick"===d.type?c=this.renderCandlestick(d):"ohlc"===d.type?c=this.renderCandlestick(d):"rangeColumn"===d.type?c=this.renderRangeColumn(d):"rangeBar"===d.type?c=this.renderRangeBar(d):"rangeArea"===d.type?c=this.renderRangeArea(d):"rangeSplineArea"===d.type&&(c=this.renderRangeSplineArea(d));for(var x=0;x<d.dataSeriesIndexes.length;x++)this._dataInRenderedOrder.push(this.data[d.dataSeriesIndexes[x]]);this.animatedRender&&c&&s.push(c)}if(this.animatedRender&&this._indexLabels.length>0){var p=T(this.width,this.height),m=p.getContext("2d");s.push(this.renderIndexLabels(m))}var u=this;if(s.length>0?(u.disableToolTip=!0,u._animator.animate(200,u.animationDuration,function(t){u.ctx.clearRect(0,0,u.width,u.height),u.ctx.drawImage(o,0,0,Math.floor(u.width*at),Math.floor(u.height*at),0,0,u.width,u.height);for(var e=0;e<s.length;e++)c=s[e],t<1&&"undefined"!=typeof c.startTimePercent?t>=c.startTimePercent&&c.animationCallback(c.easingFunction(t-c.startTimePercent,0,1,1-c.startTimePercent),c):c.animationCallback(c.easingFunction(t,0,1,1),c);u.dispatchEvent("dataAnimationIterationEnd",{chart:u})},function(){s=[];for(var t=0;t<u.plotInfo.plotTypes.length;t++)for(var e=u.plotInfo.plotTypes[t],i=0;i<e.plotUnits.length;i++){var a=e.plotUnits[i];a.targetCanvas=null}o=null,u.disableToolTip=!1})):(u._indexLabels.length>0&&u.renderIndexLabels(),u.dispatchEvent("dataAnimationIterationEnd",{chart:u})),this.attachPlotAreaEventHandlers(),this.zoomEnabled||this.panEnabled||!this._zoomButton||"none"===this._zoomButton.style.display||S(this._zoomButton,this._resetButton),this._toolTip._updateToolTip(),this.renderCount++,U){var u=this;setTimeout(function(){var t=document.getElementById("ghostCanvasCopy");if(t){f(t,u.width,u.height);var e=t.getContext("2d");e.drawImage(u._eventManager.ghostCanvas,0,0)}},2e3)}},A.prototype.attachPlotAreaEventHandlers=function(){this.attachEvent({context:this,chart:this,mousedown:this._plotAreaMouseDown,mouseup:this._plotAreaMouseUp,mousemove:this._plotAreaMouseMove,cursor:this.zoomEnabled?"col-resize":"move",cursor:this.panEnabled?"move":"default",capture:!0,bounds:this.plotArea})},A.prototype.categoriseDataSeries=function(){for(var t="",e=0;e<this.data.length;e++)if(t=this.data[e],t.dataPoints&&0!==t.dataPoints.length&&t.visible&&A._supportedChartTypes.indexOf(t.type)>=0){for(var i=null,a=!1,n=null,s=!1,o=0;o<this.plotInfo.plotTypes.length;o++)if(this.plotInfo.plotTypes[o].type===t.type){a=!0;var i=this.plotInfo.plotTypes[o];break}a||(i={type:t.type,totalDataSeries:0,plotUnits:[]},this.plotInfo.plotTypes.push(i));for(var o=0;o<i.plotUnits.length;o++)if(i.plotUnits[o].axisYType===t.axisYType){s=!0;var n=i.plotUnits[o];break}s||(n={type:t.type,previousDataSeriesCount:0,index:i.plotUnits.length,plotType:i,axisYType:t.axisYType,axisY:"primary"===t.axisYType?this.axisY:this.axisY2,axisX:this.axisX,dataSeriesIndexes:[],yTotals:[]},i.plotUnits.push(n)),i.totalDataSeries++,n.dataSeriesIndexes.push(e),t.plotUnit=n}for(var e=0;e<this.plotInfo.plotTypes.length;e++)for(var i=this.plotInfo.plotTypes[e],r=0,o=0;o<i.plotUnits.length;o++)i.plotUnits[o].previousDataSeriesCount=r,r+=i.plotUnits[o].dataSeriesIndexes.length},A.prototype.assignIdToDataPoints=function(){for(var t=0;t<this.data.length;t++){var e=this.data[t];if(e.dataPoints)for(var i=e.dataPoints.length,a=0;a<i;a++)e.dataPointIds[a]=++this._eventManager.lastObjectId}},A.prototype._processData=function(){this.assignIdToDataPoints(),this.categoriseDataSeries();for(var t=0;t<this.plotInfo.plotTypes.length;t++)for(var e=this.plotInfo.plotTypes[t],i=0;i<e.plotUnits.length;i++){var a=e.plotUnits[i];"line"===a.type||"stepLine"===a.type||"spline"===a.type||"column"===a.type||"area"===a.type||"stepArea"===a.type||"splineArea"===a.type||"bar"===a.type||"bubble"===a.type||"scatter"===a.type?this._processMultiseriesPlotUnit(a):"stackedColumn"===a.type||"stackedBar"===a.type||"stackedArea"===a.type?this._processStackedPlotUnit(a):"stackedColumn100"===a.type||"stackedBar100"===a.type||"stackedArea100"===a.type?this._processStacked100PlotUnit(a):"candlestick"!==a.type&&"ohlc"!==a.type&&"rangeColumn"!==a.type&&"rangeBar"!==a.type&&"rangeArea"!==a.type&&"rangeSplineArea"!==a.type||this._processMultiYPlotUnit(a)}},A.prototype._processMultiseriesPlotUnit=function(t){if(t.dataSeriesIndexes&&!(t.dataSeriesIndexes.length<1))for(var e,i,a=t.axisY.dataInfo,n=t.axisX.dataInfo,s=!1,o=0;o<t.dataSeriesIndexes.length;o++){var r=this.data[t.dataSeriesIndexes[o]],l=0,h=!1,d=!1;if("normal"===r.axisPlacement||"xySwapped"===r.axisPlacement)var c=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-(1/0),x=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:1/0;for((r.dataPoints[l].x&&r.dataPoints[l].x.getTime||"dateTime"===r.xValueType)&&(s=!0),l=0;l<r.dataPoints.length;l++){if("undefined"==typeof r.dataPoints[l].x&&(r.dataPoints[l].x=l),r.dataPoints[l].x.getTime?(s=!0,e=r.dataPoints[l].x.getTime()):e=r.dataPoints[l].x,i=r.dataPoints[l].y,e<n.min&&(n.min=e),e>n.max&&(n.max=e),i<a.min&&(a.min=i),i>a.max&&(a.max=i),l>0){var p=e-r.dataPoints[l-1].x;p<0&&(p*=-1),n.minDiff>p&&0!==p&&(n.minDiff=p)}if(!(e<c)||h)if(!h&&(h=!0,l>0))l-=2;else{if(e>x&&!d)d=!0;else if(e>x&&d)continue;r.dataPoints[l].label&&(t.axisX.labels[e]=r.dataPoints[l].label),e<n.viewPortMin&&(n.viewPortMin=e),e>n.viewPortMax&&(n.viewPortMax=e),null!==i&&(i<a.viewPortMin&&(a.viewPortMin=i),i>a.viewPortMax&&(a.viewPortMax=i))}}this.plotInfo.axisXValueType=r.xValueType=s?"dateTime":"number"}},A.prototype._processStackedPlotUnit=function(t){if(t.dataSeriesIndexes&&!(t.dataSeriesIndexes.length<1)){for(var e,i,a=t.axisY.dataInfo,n=t.axisX.dataInfo,s=!1,o=[],r=[],l=0;l<t.dataSeriesIndexes.length;l++){var h=this.data[t.dataSeriesIndexes[l]],d=0,c=!1,x=!1;if("normal"===h.axisPlacement||"xySwapped"===h.axisPlacement)var p=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-(1/0),m=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:1/0;for((h.dataPoints[d].x&&h.dataPoints[d].x.getTime||"dateTime"===h.xValueType)&&(s=!0),d=0;d<h.dataPoints.length;d++){if("undefined"==typeof h.dataPoints[d].x&&(h.dataPoints[d].x=d),h.dataPoints[d].x.getTime?(s=!0,e=h.dataPoints[d].x.getTime()):e=h.dataPoints[d].x,i=h.dataPoints[d].y,e<n.min&&(n.min=e),e>n.max&&(n.max=e),d>0){var u=e-h.dataPoints[d-1].x;u<0&&(u*=-1),n.minDiff>u&&0!==u&&(n.minDiff=u)}if(!(e<p)||c)if(!c&&(c=!0,d>0))d-=2;else{if(e>m&&!x)x=!0;else if(e>m&&x)continue;h.dataPoints[d].label&&(t.axisX.labels[e]=h.dataPoints[d].label),e<n.viewPortMin&&(n.viewPortMin=e),e>n.viewPortMax&&(n.viewPortMax=e),null!==i&&(t.yTotals[e]=(t.yTotals[e]?t.yTotals[e]:0)+Math.abs(i),i>=0?o[e]?o[e]+=i:o[e]=i:r[e]?r[e]+=i:r[e]=i)}}this.plotInfo.axisXValueType=h.xValueType=s?"dateTime":"number"}for(d in o)if(!isNaN(d)){var g=o[d];g<a.min&&(a.min=g),g>a.max&&(a.max=g),d<n.viewPortMin||d>n.viewPortMax||(g<a.viewPortMin&&(a.viewPortMin=g),g>a.viewPortMax&&(a.viewPortMax=g))}for(d in r)if(!isNaN(d)){var g=r[d];g<a.min&&(a.min=g),g>a.max&&(a.max=g),d<n.viewPortMin||d>n.viewPortMax||(g<a.viewPortMin&&(a.viewPortMin=g),g>a.viewPortMax&&(a.viewPortMax=g))}}},A.prototype._processStacked100PlotUnit=function(t){if(t.dataSeriesIndexes&&!(t.dataSeriesIndexes.length<1)){for(var e,i,a=t.axisY.dataInfo,n=t.axisX.dataInfo,s=!1,o=!1,r=!1,l=[],h=0;h<t.dataSeriesIndexes.length;h++){var d=this.data[t.dataSeriesIndexes[h]],c=0,x=!1,p=!1;if("normal"===d.axisPlacement||"xySwapped"===d.axisPlacement)var m=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-(1/0),u=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:1/0;for((d.dataPoints[c].x&&d.dataPoints[c].x.getTime||"dateTime"===d.xValueType)&&(s=!0),c=0;c<d.dataPoints.length;c++){if("undefined"==typeof d.dataPoints[c].x&&(d.dataPoints[c].x=c),d.dataPoints[c].x.getTime?(s=!0,e=d.dataPoints[c].x.getTime()):e=d.dataPoints[c].x,i=d.dataPoints[c].y,e<n.min&&(n.min=e),e>n.max&&(n.max=e),c>0){var g=e-d.dataPoints[c-1].x;g<0&&(g*=-1),n.minDiff>g&&0!==g&&(n.minDiff=g)}if(!(e<m)||x)if(!x&&(x=!0,c>0))c-=2;else{if(e>u&&!p)p=!0;else if(e>u&&p)continue;d.dataPoints[c].label&&(t.axisX.labels[e]=d.dataPoints[c].label),e<n.viewPortMin&&(n.viewPortMin=e),e>n.viewPortMax&&(n.viewPortMax=e),null!==i&&(t.yTotals[e]=(t.yTotals[e]?t.yTotals[e]:0)+Math.abs(i),i>=0?o=!0:r=!0,l[e]?l[e]+=Math.abs(i):l[e]=Math.abs(i))}}this.plotInfo.axisXValueType=d.xValueType=s?"dateTime":"number"}o&&!r?(a.max=99,a.min=1):o&&r?(a.max=99,a.min=-99):!o&&r&&(a.max=-1,a.min=-99),a.viewPortMin=a.min,a.viewPortMax=a.max,t.dataPointYSums=l}},A.prototype._processMultiYPlotUnit=function(t){if(t.dataSeriesIndexes&&!(t.dataSeriesIndexes.length<1))for(var e,i,a,n,s=t.axisY.dataInfo,o=t.axisX.dataInfo,r=!1,l=0;l<t.dataSeriesIndexes.length;l++){var h=this.data[t.dataSeriesIndexes[l]],d=0,c=!1,x=!1;if("normal"===h.axisPlacement||"xySwapped"===h.axisPlacement)var p=this.sessionVariables.axisX.internalMinimum?this.sessionVariables.axisX.internalMinimum:this._options.axisX&&this._options.axisX.minimum?this._options.axisX.minimum:-(1/0),m=this.sessionVariables.axisX.internalMaximum?this.sessionVariables.axisX.internalMaximum:this._options.axisX&&this._options.axisX.maximum?this._options.axisX.maximum:1/0;for((h.dataPoints[d].x&&h.dataPoints[d].x.getTime||"dateTime"===h.xValueType)&&(r=!0),d=0;d<h.dataPoints.length;d++){if("undefined"==typeof h.dataPoints[d].x&&(h.dataPoints[d].x=d),h.dataPoints[d].x.getTime?(r=!0,e=h.dataPoints[d].x.getTime()):e=h.dataPoints[d].x,i=h.dataPoints[d].y,i&&i.length&&(a=Math.min.apply(null,i),n=Math.max.apply(null,i)),e<o.min&&(o.min=e),e>o.max&&(o.max=e),a<s.min&&(s.min=a),n>s.max&&(s.max=n),d>0){var u=e-h.dataPoints[d-1].x;u<0&&(u*=-1),o.minDiff>u&&0!==u&&(o.minDiff=u)}if(!(e<p)||c)if(!c&&(c=!0,d>0))d-=2;else{if(e>m&&!x)x=!0;else if(e>m&&x)continue;h.dataPoints[d].label&&(t.axisX.labels[e]=h.dataPoints[d].label),e<o.viewPortMin&&(o.viewPortMin=e),e>o.viewPortMax&&(o.viewPortMax=e),null!==i&&(a<s.viewPortMin&&(s.viewPortMin=a),n>s.viewPortMax&&(s.viewPortMax=n))}}this.plotInfo.axisXValueType=h.xValueType=r?"dateTime":"number"}},A.prototype.getDataPointAtXY=function(t,e,i){i=i||!1;for(var a=[],n=this._dataInRenderedOrder.length-1;n>=0;n--){var s=this._dataInRenderedOrder[n],o=null;o=s.getDataPointAtXY(t,e,i),o&&a.push(o)}for(var r=null,l=!1,h=0;h<a.length;h++)if("line"===a[h].dataSeries.type||"stepLine"===a[h].dataSeries.type||"area"===a[h].dataSeries.type||"stepArea"===a[h].dataSeries.type){var d=b("markerSize",a[h].dataPoint,a[h].dataSeries)||8;if(a[h].distance<=d/2){l=!0;break}}for(h=0;h<a.length;h++)l&&"line"!==a[h].dataSeries.type&&"stepLine"!==a[h].dataSeries.type&&"area"!==a[h].dataSeries.type&&"stepArea"!==a[h].dataSeries.type||(r?a[h].distance<=r.distance&&(r=a[h]):r=a[h]);return r},A.prototype.getObjectAtXY=function(t,e,i){i=i||!1;var a=null,n=this.getDataPointAtXY(t,e,i);if(n)a=n.dataSeries.dataPointIds[n.dataPointIndex];else if(R)a=y(t,e,this._eventManager.ghostCtx);else for(var s=0;s<this.legend.items.length;s++){var o=this.legend.items[s];t>=o.x1&&t<=o.x2&&e>=o.y1&&e<=o.y2&&(a=o.id)}return a},A.prototype.getAutoFontSize=function(t,e,i){e=e||this.width,i=i||this.height;var a=t/400;return Math.round(Math.min(this.width,this.height)*a)},A.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)},A.prototype.clearCanvas=function(){this.ctx.clearRect(0,0,this.width,this.height),this.backgroundColor&&(this.ctx.fillStyle=this.backgroundColor,this.ctx.fillRect(0,0,this.width,this.height))},A.prototype.attachEvent=function(t){this._events.push(t)},A.prototype._touchEventHandler=function(t){if(t.changedTouches&&this.interactivityEnabled){var e=[],i=t.changedTouches,a=i?i[0]:t,n=null;switch(t.type){case"touchstart":case"MSPointerDown":e=["mousemove","mousedown"],this._lastTouchData=$(a),this._lastTouchData.time=new Date;break;case"touchmove":case"MSPointerMove":e=["mousemove"];break;case"touchend":case"MSPointerUp":e="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType?["mouseup","click"]:["mouseup"];break;default:return}if(!(i&&i.length>1)){n=$(a),n.time=new Date;try{var s=n.y-this._lastTouchData.y,o=(n.x-this._lastTouchData.x,n.time-this._lastTouchData.time);if(Math.abs(s)>15&&(this._lastTouchData.scroll||o<200)){this._lastTouchData.scroll=!0;var r=window.parent||window;r&&r.scrollBy&&r.scrollBy(0,-s)}}catch(t){}if(this._lastTouchEventType=t.type,this._lastTouchData.scroll&&this.zoomEnabled)return this.isDrag&&this.resetOverlayedCanvas(),void(this.isDrag=!1);for(var l=0;l<e.length;l++){var h=e[l],d=document.createEvent("MouseEvent");d.initMouseEvent(h,!0,!0,window,1,a.screenX,a.screenY,a.clientX,a.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d),t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault()}}}},A.prototype._mouseEventHandler=function(t){if(this.interactivityEnabled){if(this._ignoreNextEvent)return void(this._ignoreNextEvent=!1);t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault(),"undefined"==typeof t.target&&t.srcElement&&(t.target=t.srcElement);var e,i,a=$(t),n=t.type;if(!t){window.event}if(t.which?i=3==t.which:t.button&&(i=2==t.button),U&&window.console,!i){if(A.capturedEventParam)e=A.capturedEventParam,"mouseup"===n&&(A.capturedEventParam=null,e.chart.overlaidCanvas.releaseCapture?e.chart.overlaidCanvas.releaseCapture():document.body.removeEventListener("mouseup",e.chart._mouseEventHandler,!1)),e.hasOwnProperty(n)&&e[n].call(e.context,a.x,a.y);else if(this._events){for(var s=0;s<this._events.length;s++)if(this._events[s].hasOwnProperty(n)){e=this._events[s];var o=e.bounds;if(a.x>=o.x1&&a.x<=o.x2&&a.y>=o.y1&&a.y<=o.y2){e[n].call(e.context,a.x,a.y),"mousedown"===n&&e.capture===!0?(A.capturedEventParam=e,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.body.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===n&&(e.chart.overlaidCanvas.releaseCapture?e.chart.overlaidCanvas.releaseCapture():document.body.removeEventListener("mouseup",this._mouseEventHandler,!1));break}e=null}e&&e.cursor?t.target.style.cursor=e.cursor:t.target.style.cursor=this._defaultCursor}if(this._toolTip&&this._toolTip.enabled){var r=this.plotArea;(a.x<r.x1||a.x>r.x2||a.y<r.y1||a.y>r.y2)&&this._toolTip.hide()}this.isDrag&&this.zoomEnabled||!this._eventManager||this._eventManager.mouseEventHandler(t)}}},A.prototype._plotAreaMouseDown=function(t,e){this.isDrag=!0,"none"!==this.plotInfo.axisPlacement?this.dragStartPoint={x:t,y:e,xMinimum:this.axisX.minimum,xMaximum:this.axisX.maximum}:this.dragStartPoint={x:t,y:e}},A.prototype._plotAreaMouseUp=function(t,e){if(("normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)&&this.isDrag){var i=0,a=0,n=this.axisX.lineCoordinates;if("xySwapped"===this.plotInfo.axisPlacement?(i=e-this.dragStartPoint.y,a=Math.abs(this.axisX.maximum-this.axisX.minimum)/n.height*i):(i=this.dragStartPoint.x-t,a=Math.abs(this.axisX.maximum-this.axisX.minimum)/n.width*i),Math.abs(i)>2){if(this.panEnabled){var s=!1,o=0;this.axisX.sessionVariables.internalMinimum<this.axisX._absoluteMinimum?(o=this.axisX._absoluteMinimum-this.axisX.sessionVariables.internalMinimum,this.axisX.sessionVariables.internalMinimum+=o,this.axisX.sessionVariables.internalMaximum+=o,s=!0):this.axisX.sessionVariables.internalMaximum>this.axisX._absoluteMaximum&&(o=this.axisX.sessionVariables.internalMaximum-this.axisX._absoluteMaximum,this.axisX.sessionVariables.internalMaximum-=o,this.axisX.sessionVariables.internalMinimum-=o,s=!0),s&&this.render()}else if(this.zoomEnabled){if(this.resetOverlayedCanvas(),!this.dragStartPoint)return;if("xySwapped"===this.plotInfo.axisPlacement){var r={y1:Math.min(this.dragStartPoint.y,e),y2:Math.max(this.dragStartPoint.y,e)};if(Math.abs(r.y1-r.y2)>1){var n=this.axisX.lineCoordinates,l=this.axisX.maximum-(this.axisX.maximum-this.axisX.minimum)/n.height*(r.y2-n.y1),h=this.axisX.maximum-(this.axisX.maximum-this.axisX.minimum)/n.height*(r.y1-n.y1);l=Math.max(l,this.axisX.dataInfo.min),h=Math.min(h,this.axisX.dataInfo.max),Math.abs(h-l)>2*Math.abs(this.axisX.dataInfo.minDiff)&&(this.axisX.sessionVariables.internalMinimum=l,this.axisX.sessionVariables.internalMaximum=h,this.render())}}else if("normal"===this.plotInfo.axisPlacement){var r={x1:Math.min(this.dragStartPoint.x,t),x2:Math.max(this.dragStartPoint.x,t)};if(Math.abs(r.x1-r.x2)>1){var n=this.axisX.lineCoordinates,l=(this.axisX.maximum-this.axisX.minimum)/n.width*(r.x1-n.x1)+this.axisX.minimum,h=(this.axisX.maximum-this.axisX.minimum)/n.width*(r.x2-n.x1)+this.axisX.minimum;l=Math.max(l,this.axisX.dataInfo.min),h=Math.min(h,this.axisX.dataInfo.max),Math.abs(h-l)>2*Math.abs(this.axisX.dataInfo.minDiff)&&(this.axisX.sessionVariables.internalMinimum=l,this.axisX.sessionVariables.internalMaximum=h,this.render())}}}this._ignoreNextEvent=!0,this.zoomEnabled&&"none"===this._zoomButton.style.display&&(k(this._zoomButton,this._resetButton),M(this,this._zoomButton,"pan"),M(this,this._resetButton,"reset"))}}this.isDrag=!1},A.prototype._plotAreaMouseMove=function(t,e){if(this.isDrag&&"none"!==this.plotInfo.axisPlacement){var i=0,a=0,s=this.axisX.lineCoordinates;if("xySwapped"===this.plotInfo.axisPlacement?(i=e-this.dragStartPoint.y,a=Math.abs(this.axisX.maximum-this.axisX.minimum)/s.height*i):(i=this.dragStartPoint.x-t,a=Math.abs(this.axisX.maximum-this.axisX.minimum)/s.width*i),Math.abs(i)>2&&Math.abs(i)<8&&(this.panEnabled||this.zoomEnabled)?this._toolTip.hide():this.panEnabled||this.zoomEnabled||this._toolTip.mouseMoveHandler(t,e),Math.abs(i)>2&&(this.panEnabled||this.zoomEnabled))if(this.panEnabled){this.axisX.sessionVariables.internalMinimum=this.dragStartPoint.xMinimum+a,this.axisX.sessionVariables.internalMaximum=this.dragStartPoint.xMaximum+a;var o=0;this.axisX.sessionVariables.internalMinimum<this.axisX._absoluteMinimum-n(this.axisX.interval,this.axisX.intervalType)?(o=this.axisX._absoluteMinimum-n(this.axisX.interval,this.axisX.intervalType)-this.axisX.sessionVariables.internalMinimum,this.axisX.sessionVariables.internalMinimum+=o,
  3. this.axisX.sessionVariables.internalMaximum+=o):this.axisX.sessionVariables.internalMaximum>this.axisX._absoluteMaximum+n(this.axisX.interval,this.axisX.intervalType)&&(o=this.axisX.sessionVariables.internalMaximum-(this.axisX._absoluteMaximum+n(this.axisX.interval,this.axisX.intervalType)),this.axisX.sessionVariables.internalMaximum-=o,this.axisX.sessionVariables.internalMinimum-=o);var r=this;clearTimeout(this._panTimerId),this._panTimerId=setTimeout(function(){r.render()},0)}else if(this.zoomEnabled){var l=this.plotArea;this.resetOverlayedCanvas();var h=this.overlaidCanvasCtx.globalAlpha;this.overlaidCanvasCtx.globalAlpha=.7,this.overlaidCanvasCtx.fillStyle="#A0ABB8","xySwapped"===this.plotInfo.axisPlacement?this.overlaidCanvasCtx.fillRect(l.x1,this.dragStartPoint.y,l.x2-l.x1,e-this.dragStartPoint.y):"normal"===this.plotInfo.axisPlacement&&this.overlaidCanvasCtx.fillRect(this.dragStartPoint.x,l.y1,t-this.dragStartPoint.x,l.y2-l.y1),this.overlaidCanvasCtx.globalAlpha=h}}else this._toolTip.mouseMoveHandler(t,e)},A.prototype.preparePlotArea=function(){var t=this.plotArea,e=this.axisY?this.axisY:this.axisY2;if(!R&&(t.x1>0||t.y1>0)&&t.ctx.translate(t.x1,t.y1),this.axisX&&e)t.x1=this.axisX.lineCoordinates.x1<this.axisX.lineCoordinates.x2?this.axisX.lineCoordinates.x1:e.lineCoordinates.x1,t.y1=this.axisX.lineCoordinates.y1<e.lineCoordinates.y1?this.axisX.lineCoordinates.y1:e.lineCoordinates.y1,t.x2=this.axisX.lineCoordinates.x2>e.lineCoordinates.x2?this.axisX.lineCoordinates.x2:e.lineCoordinates.x2,t.y2=this.axisX.lineCoordinates.y2>this.axisX.lineCoordinates.y1?this.axisX.lineCoordinates.y2:e.lineCoordinates.y2,t.width=t.x2-t.x1,t.height=t.y2-t.y1;else{var i=this.layoutManager.getFreeSpace();t.x1=i.x1,t.x2=i.x2,t.y1=i.y1,t.y2=i.y2,t.width=i.width,t.height=i.height}R||(t.canvas.width=t.width,t.canvas.height=t.height,t.canvas.style.left=t.x1+"px",t.canvas.style.top=t.y1+"px",(t.x1>0||t.y1>0)&&t.ctx.translate(-t.x1,-t.y1)),t.layoutManager=new w(t.x1,t.y1,t.x2,t.y2,2)},A.prototype.getPixelCoordinatesOnPlotArea=function(t,e){return{x:this.axisX.getPixelCoordinatesOnAxis(t).x,y:this.axisY.getPixelCoordinatesOnAxis(e).y}},A.prototype.renderIndexLabels=function(t){for(var e=t||this.plotArea.ctx,i=this.plotArea,a=0,n=0,s=0,o=0,r=0,l=0,h=0,d=0,c=0,x=0;x<this._indexLabels.length;x++){var p,m,u=this._indexLabels[x],g=u.chartType.toLowerCase(),y=b("indexLabelFontColor",u.dataPoint,u.dataSeries),v=b("indexLabelFontSize",u.dataPoint,u.dataSeries),f=b("indexLabelFontFamily",u.dataPoint,u.dataSeries),T=b("indexLabelFontStyle",u.dataPoint,u.dataSeries),P=b("indexLabelFontWeight",u.dataPoint,u.dataSeries),M=b("indexLabelBackgroundColor",u.dataPoint,u.dataSeries),k=b("indexLabelMaxWidth",u.dataPoint,u.dataSeries),S=b("indexLabelWrap",u.dataPoint,u.dataSeries),C={percent:null,total:null},A=null;(u.dataSeries.type.indexOf("stacked")>=0||"pie"===u.dataSeries.type||"doughnut"===u.dataSeries.type)&&(C=this.getPercentAndTotal(u.dataSeries,u.dataPoint)),(u.dataSeries.indexLabelFormatter||u.dataPoint.indexLabelFormatter)&&(A={chart:this._options,dataSeries:u.dataSeries,dataPoint:u.dataPoint,index:u.indexKeyword,total:C.total,percent:C.percent});var _=u.dataPoint.indexLabelFormatter?u.dataPoint.indexLabelFormatter(A):u.dataPoint.indexLabel?this.replaceKeywordsWithValue(u.dataPoint.indexLabel,u.dataPoint,u.dataSeries,null,u.indexKeyword):u.dataSeries.indexLabelFormatter?u.dataSeries.indexLabelFormatter(A):u.dataSeries.indexLabel?this.replaceKeywordsWithValue(u.dataSeries.indexLabel,u.dataPoint,u.dataSeries,null,u.indexKeyword):null;if(null!==_&&""!==_){var w=b("indexLabelPlacement",u.dataPoint,u.dataSeries),I=b("indexLabelOrientation",u.dataPoint,u.dataSeries),B=u.direction,F=u.dataSeries.axisX,X=u.dataSeries.axisY,z=new L(e,{x:0,y:0,maxWidth:k?k:.5*this.width,maxHeight:S?5*v:1.5*v,angle:"horizontal"===I?0:-90,text:_,padding:0,backgroundColor:M,horizontalAlign:"left",fontSize:v,fontFamily:f,fontWeight:P,fontColor:y,fontStyle:T,textBaseline:"top"});z.measureText();if(g.indexOf("line")>=0||g.indexOf("area")>=0||g.indexOf("bubble")>=0||g.indexOf("scatter")>=0){if(u.dataPoint.x<F.minimum||u.dataPoint.x>F.maximum||u.dataPoint.y<X.minimum||u.dataPoint.y>X.maximum)continue}else if(u.dataPoint.x<F.minimum||u.dataPoint.x>F.maximum)continue;if(h=2,l=2,"horizontal"===I?(d=z.width,c=z.height):(c=z.width,d=z.height),"normal"===this.plotInfo.axisPlacement)g.indexOf("line")>=0||g.indexOf("area")>=0?(w="auto",h=4):g.indexOf("stacked")>=0?"auto"===w&&(w="inside"):"bubble"!==g&&"scatter"!==g||(w="inside"),p=u.point.x-d/2,"inside"!==w?(n=i.y1,s=i.y2,B>0?(m=u.point.y-c-h,m<n&&(m="auto"===w?Math.max(u.point.y,n)+h:n+h)):(m=u.point.y+h,m>s-c-h&&(m="auto"===w?Math.min(u.point.y,s)-c-h:s-c-h))):(n=Math.max(u.bounds.y1,i.y1),s=Math.min(u.bounds.y2,i.y2),a=g.indexOf("range")>=0?B>0?Math.max(u.bounds.y1,i.y1)+c/2+h:Math.min(u.bounds.y2,i.y2)-c/2-h:(Math.max(u.bounds.y1,i.y1)+Math.min(u.bounds.y2,i.y2))/2,B>0?(m=Math.max(u.point.y,a)-c/2,m<n&&("bubble"===g||"scatter"===g)&&(m=Math.max(u.point.y-c-h,i.y1+h))):(m=Math.min(u.point.y,a)-c/2,m>s-c-h&&("bubble"===g||"scatter"===g)&&(m=Math.min(u.point.y+h,i.y2-c-h))));else if(g.indexOf("line")>=0||g.indexOf("area")>=0||g.indexOf("scatter")>=0?(w="auto",l=4):g.indexOf("stacked")>=0?"auto"===w&&(w="inside"):"bubble"===g&&(w="inside"),m=u.point.y-c/2,"inside"!==w)o=i.x1,r=i.x2,B<0?(p=u.point.x-d-l,p<o&&(p="auto"===w?Math.max(u.point.x,o)+l:o+l)):(p=u.point.x+l,p>r-d-l&&(p="auto"===w?Math.min(u.point.x,r)-d-l:r-d-l));else{if(o=Math.max(u.bounds.x1,i.x1),r=Math.min(u.bounds.x2,i.x2),g.indexOf("range")>=0)a=B<0?Math.max(u.bounds.x1,i.x1)+d/2+l:Math.min(u.bounds.x2,i.x2)-d/2-l;else var a=(Math.max(u.bounds.x1,i.x1)+Math.min(u.bounds.x2,i.x2))/2;p=B<0?Math.max(u.point.x,a)-d/2:Math.min(u.point.x,a)-d/2}"vertical"===I&&(m+=c),z.x=p,z.y=m,z.render(!0)}}var D={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0,startTimePercent:.7};return D},A.prototype.renderLine=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a=this._eventManager.ghostCtx;e.save();var n=this.plotArea;e.beginPath(),e.rect(n.x1,n.y1,n.width,n.height),e.clip();for(var s=[],o=0;o<t.dataSeriesIndexes.length;o++){var r=t.dataSeriesIndexes[o],l=this.data[r];e.lineWidth=l.lineThickness;var h=l.dataPoints;e.setLineDash&&e.setLineDash(u(l.lineDashType,l.lineThickness));var c=l.id;this._eventManager.objectMap[c]={objectType:"dataSeries",dataSeriesIndex:r};var x=d(c);a.strokeStyle=x,a.lineWidth=l.lineThickness>0?Math.max(l.lineThickness,4):0;var p=l._colorSet,m=p[0];e.strokeStyle=m;var g,y,v,b=!0,f=0;if(e.beginPath(),h.length>0){var T=!1;for(f=0;f<h.length;f++)if(v=h[f].x.getTime?h[f].x.getTime():h[f].x,!(v<t.axisX.dataInfo.viewPortMin||v>t.axisX.dataInfo.viewPortMax))if("number"==typeof h[f].y){g=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(v-t.axisX.conversionParameters.minimum)+.5<<0,y=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(h[f].y-t.axisY.conversionParameters.minimum)+.5<<0;var P=l.dataPointIds[f];if(this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:f,x1:g,y1:y},b||T?(e.beginPath(),e.moveTo(g,y),R&&(a.beginPath(),a.moveTo(g,y)),b=!1,T=!1):(e.lineTo(g,y),R&&a.lineTo(g,y),f%500==0&&(e.stroke(),e.beginPath(),e.moveTo(g,y),R&&(a.stroke(),a.beginPath(),a.moveTo(g,y)))),h[f].markerSize>0||l.markerSize>0){var M=l.getMarkerProperties(f,g,y,e);s.push(M);var k=d(P);R&&s.push({x:g,y:y,ctx:a,type:M.type,size:M.size,color:k,borderColor:k,borderThickness:M.borderThickness})}(h[f].indexLabel||l.indexLabel||h[f].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"line",dataPoint:h[f],dataSeries:l,point:{x:g,y:y},direction:h[f].y>=0?1:-1,color:m})}else f>0&&(e.stroke(),R&&a.stroke()),T=!0;e.stroke(),R&&a.stroke()}}lt.drawMarkers(s),e.restore(),e.beginPath(),R&&a.beginPath();var S={source:e,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return S}},A.prototype.renderStepLine=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a=this._eventManager.ghostCtx;e.save();var n=this.plotArea;e.beginPath(),e.rect(n.x1,n.y1,n.width,n.height),e.clip();for(var s=[],o=0;o<t.dataSeriesIndexes.length;o++){var r=t.dataSeriesIndexes[o],l=this.data[r];e.lineWidth=l.lineThickness;var h=l.dataPoints;e.setLineDash&&e.setLineDash(u(l.lineDashType,l.lineThickness));var c=l.id;this._eventManager.objectMap[c]={objectType:"dataSeries",dataSeriesIndex:r};var x=d(c);a.strokeStyle=x,a.lineWidth=l.lineThickness>0?Math.max(l.lineThickness,4):0;var p=l._colorSet,m=p[0];e.strokeStyle=m;var g,y,v,b=!0,f=0;if(e.beginPath(),h.length>0){var T=!1;for(f=0;f<h.length;f++)if(v=h[f].getTime?h[f].x.getTime():h[f].x,!(v<t.axisX.dataInfo.viewPortMin||v>t.axisX.dataInfo.viewPortMax))if("number"==typeof h[f].y){var P=y;g=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(v-t.axisX.conversionParameters.minimum)+.5<<0,y=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(h[f].y-t.axisY.conversionParameters.minimum)+.5<<0;var M=l.dataPointIds[f];if(this._eventManager.objectMap[M]={id:M,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:f,x1:g,y1:y},b||T?(e.beginPath(),e.moveTo(g,y),R&&(a.beginPath(),a.moveTo(g,y)),b=!1,T=!1):(e.lineTo(g,P),R&&a.lineTo(g,P),e.lineTo(g,y),R&&a.lineTo(g,y),f%500==0&&(e.stroke(),e.beginPath(),e.moveTo(g,y),R&&(a.stroke(),a.beginPath(),a.moveTo(g,y)))),h[f].markerSize>0||l.markerSize>0){var k=l.getMarkerProperties(f,g,y,e);s.push(k);var S=d(M);R&&s.push({x:g,y:y,ctx:a,type:k.type,size:k.size,color:S,borderColor:S,borderThickness:k.borderThickness})}(h[f].indexLabel||l.indexLabel||h[f].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stepLine",dataPoint:h[f],dataSeries:l,point:{x:g,y:y},direction:h[f].y>=0?1:-1,color:m})}else f>0&&(e.stroke(),R&&a.stroke()),T=!0;e.stroke(),R&&a.stroke()}}lt.drawMarkers(s),e.restore(),e.beginPath(),R&&a.beginPath();var C={source:e,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return C}},A.prototype.renderSpline=function(t){function e(t){var e=_(t,2);if(e.length>0){i.beginPath(),R&&n.beginPath(),i.moveTo(e[0].x,e[0].y),R&&n.moveTo(e[0].x,e[0].y);for(var a=0;a<e.length-3;a+=3)i.bezierCurveTo(e[a+1].x,e[a+1].y,e[a+2].x,e[a+2].y,e[a+3].x,e[a+3].y),R&&n.bezierCurveTo(e[a+1].x,e[a+1].y,e[a+2].x,e[a+2].y,e[a+3].x,e[a+3].y),a>0&&a%3e3===0&&(i.stroke(),i.beginPath(),i.moveTo(e[a+3].x,e[a+3].y),R&&(n.stroke(),n.beginPath(),n.moveTo(e[a+3].x,e[a+3].y)));i.stroke(),R&&n.stroke()}}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx;i.save();var s=this.plotArea;i.beginPath(),i.rect(s.x1,s.y1,s.width,s.height),i.clip();for(var o=[],r=0;r<t.dataSeriesIndexes.length;r++){var l=t.dataSeriesIndexes[r],h=this.data[l];i.lineWidth=h.lineThickness;var c=h.dataPoints;i.setLineDash&&i.setLineDash(u(h.lineDashType,h.lineThickness));var x=h.id;this._eventManager.objectMap[x]={objectType:"dataSeries",dataSeriesIndex:l};var p=d(x);n.strokeStyle=p,n.lineWidth=h.lineThickness>0?Math.max(h.lineThickness,4):0;var m=h._colorSet,g=m[0];i.strokeStyle=g;var y,v,b,f=0,T=[];if(i.beginPath(),c.length>0)for(f=0;f<c.length;f++)if(b=c[f].getTime?c[f].x.getTime():c[f].x,!(b<t.axisX.dataInfo.viewPortMin||b>t.axisX.dataInfo.viewPortMax))if("number"==typeof c[f].y){y=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(b-t.axisX.conversionParameters.minimum)+.5<<0,v=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(c[f].y-t.axisY.conversionParameters.minimum)+.5<<0;var P=h.dataPointIds[f];if(this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:f,x1:y,y1:v},T[T.length]={x:y,y:v},c[f].markerSize>0||h.markerSize>0){var M=h.getMarkerProperties(f,y,v,i);o.push(M);var k=d(P);R&&o.push({x:y,y:v,ctx:n,type:M.type,size:M.size,color:k,borderColor:k,borderThickness:M.borderThickness})}(c[f].indexLabel||h.indexLabel||c[f].indexLabelFormatter||h.indexLabelFormatter)&&this._indexLabels.push({chartType:"spline",dataPoint:c[f],dataSeries:h,point:{x:y,y:v},direction:c[f].y>=0?1:-1,color:g})}else f>0&&(e(T),T=[]);e(T)}lt.drawMarkers(o),i.restore(),i.beginPath(),R&&n.beginPath();var S={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return S}};var st=function(t,e,i,a,n,s,o,r,l,h,d,c,x){"undefined"==typeof x&&(x=1),o=o||0,r=r||"black";var p=e,m=a,u=i,g=n;if(a-e>15&&n-i>15)var y=8;else var y=.35*Math.min(a-e,n-i);var v="rgba(255, 255, 255, .4)",b="rgba(255, 255, 255, 0.1)",f=s;if(t.beginPath(),t.moveTo(e,i),t.save(),t.fillStyle=f,t.globalAlpha=x,t.fillRect(e,i,a-e,n-i),t.globalAlpha=1,o>0){var T=o%2===0?0:.5;t.beginPath(),t.lineWidth=o,t.strokeStyle=r,t.moveTo(e,i),t.rect(e-T,i-T,a-e+2*T,n-i+2*T),t.stroke()}if(t.restore(),l===!0){t.save(),t.beginPath(),t.moveTo(e,i),t.lineTo(e+y,i+y),t.lineTo(a-y,i+y),t.lineTo(a,i),t.closePath();var P=t.createLinearGradient((a+e)/2,u+y,(a+e)/2,u);P.addColorStop(0,f),P.addColorStop(1,v),t.fillStyle=P,t.fill(),t.restore()}if(h===!0){t.save(),t.beginPath(),t.moveTo(e,n),t.lineTo(e+y,n-y),t.lineTo(a-y,n-y),t.lineTo(a,n),t.closePath();var P=t.createLinearGradient((a+e)/2,g-y,(a+e)/2,g);P.addColorStop(0,f),P.addColorStop(1,v),t.fillStyle=P,t.fill(),t.restore()}if(d===!0){t.save(),t.beginPath(),t.moveTo(e,i),t.lineTo(e+y,i+y),t.lineTo(e+y,n-y),t.lineTo(e,n),t.closePath();var P=t.createLinearGradient(p+y,(n+i)/2,p,(n+i)/2);P.addColorStop(0,f),P.addColorStop(1,b),t.fillStyle=P,t.fill(),t.restore()}if(c===!0){t.save(),t.beginPath(),t.moveTo(a,i),t.lineTo(a-y,i+y),t.lineTo(a-y,n-y),t.lineTo(a,n);var P=t.createLinearGradient(m-y,(n+i)/2,m,(n+i)/2);P.addColorStop(0,f),P.addColorStop(1,b),t.fillStyle=P,P.addColorStop(0,f),P.addColorStop(1,b),t.fillStyle=P,t.fill(),t.closePath(),t.restore()}};A.prototype.renderColumn=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=0,h=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,c=this.dataPointMaxWidth?this.dataPointMaxWidth:Math.min(.15*this.width,this.plotArea.width/t.plotType.totalDataSeries*.9)<<0,x=t.axisX.dataInfo.minDiff,p=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(x)/t.plotType.totalDataSeries*.9<<0;p>c?p=c:x===1/0?p=c/t.plotType.totalDataSeries*.9:p<1&&(p=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var m=0;m<t.dataSeriesIndexes.length;m++){var u=t.dataSeriesIndexes[m],g=this.data[u],y=g.dataPoints;if(y.length>0){var v=!!(p>5&&g.bevelEnabled);for(l=0;l<y.length;l++)if(s=y[l].getTime?y[l].x.getTime():y[l].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof y[l].y){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[l].y-t.axisY.conversionParameters.minimum)+.5<<0;var b,f,T=a-t.plotType.totalDataSeries*p/2+(t.previousDataSeriesCount+m)*p<<0,P=T+p<<0;if(y[l].y>=0){if(b=n,f=h,b>f){b=f,f=b}}else if(f=n,b=h,b>f){b=f,f=b}o=y[l].color?y[l].color:g._colorSet[l%g._colorSet.length],st(e,T,b,P,f,o,0,null,v&&y[l].y>=0,y[l].y<0&&v,!1,!1,g.fillOpacity);var M=g.dataPointIds[l];this._eventManager.objectMap[M]={id:M,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:l,x1:T,y1:b,x2:P,y2:f},o=d(M),R&&st(this._eventManager.ghostCtx,T,b,P,f,o,0,null,!1,!1,!1,!1),(y[l].indexLabel||g.indexLabel||y[l].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:y[l],dataSeries:g,point:{x:T+(P-T)/2,y:y[l].y>=0?b:f},direction:y[l].y>=0?1:-1,bounds:{x1:T,y1:Math.min(b,f),x2:P,y2:Math.max(b,f)},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var k=Math.min(h,t.axisY.boundingRect.y2),S={source:e,dest:this.plotArea.ctx,animationCallback:rt.yScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:k};return S}},A.prototype.renderStackedColumn=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=[],h=[],c=0,x=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,p=this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.width<<0,m=t.axisX.dataInfo.minDiff,u=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(m)/t.plotType.plotUnits.length*.9<<0;u>p?u=p:m===1/0?u=p:u<1&&(u=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var g=0;g<t.dataSeriesIndexes.length;g++){var y=t.dataSeriesIndexes[g],v=this.data[y],b=v.dataPoints;if(b.length>0){var f=!!(u>5&&v.bevelEnabled);for(e.strokeStyle="#4572A7 ",c=0;c<b.length;c++)if(s=b[c].x.getTime?b[c].x.getTime():b[c].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof b[c].y){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(b[c].y-t.axisY.conversionParameters.minimum);var T,P,M=a-t.plotType.plotUnits.length*u/2+t.index*u<<0,k=M+u<<0;if(b[c].y>=0){var S=l[s]?l[s]:0;T=n-S,P=x-S,l[s]=S+(P-T)}else{var S=h[s]?h[s]:0;P=n+S,T=x+S,h[s]=S+(P-T)}o=b[c].color?b[c].color:v._colorSet[c%v._colorSet.length],st(e,M,T,k,P,o,0,null,f&&b[c].y>=0,b[c].y<0&&f,!1,!1,v.fillOpacity);var C=v.dataPointIds[c];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:c,x1:M,y1:T,x2:k,y2:P},o=d(C),R&&st(this._eventManager.ghostCtx,M,T,k,P,o,0,null,!1,!1,!1,!1),(b[c].indexLabel||v.indexLabel||b[c].indexLabelFormatter||v.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:b[c],dataSeries:v,point:{x:a,y:b[c].y>=0?T:P},direction:b[c].y>=0?1:-1,bounds:{x1:M,y1:Math.min(T,P),x2:k,y2:Math.max(T,P)},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var A=Math.min(x,t.axisY.boundingRect.y2),_={source:e,dest:this.plotArea.ctx,animationCallback:rt.yScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:A};return _}},A.prototype.renderStackedColumn100=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=[],h=[],c=0,x=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,p=this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.width<<0,m=t.axisX.dataInfo.minDiff,u=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(m)/t.plotType.plotUnits.length*.9<<0;u>p?u=p:m===1/0?u=p:u<1&&(u=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var g=0;g<t.dataSeriesIndexes.length;g++){var y=t.dataSeriesIndexes[g],v=this.data[y],b=v.dataPoints;if(b.length>0){var f=!!(u>5&&v.bevelEnabled);for(c=0;c<b.length;c++)if(s=b[c].x.getTime?b[c].x.getTime():b[c].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof b[c].y){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0;var T;T=0!==t.dataPointYSums[s]?b[c].y/t.dataPointYSums[s]*100:0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(T-t.axisY.conversionParameters.minimum);var P,M,k=a-t.plotType.plotUnits.length*u/2+t.index*u<<0,S=k+u<<0;if(b[c].y>=0){var C=l[s]?l[s]:0;P=n-C,M=x-C,l[s]=C+(M-P)}else{var C=h[s]?h[s]:0;M=n+C,P=x+C,h[s]=C+(M-P)}o=b[c].color?b[c].color:v._colorSet[c%v._colorSet.length],st(e,k,P,S,M,o,0,null,f&&b[c].y>=0,b[c].y<0&&f,!1,!1,v.fillOpacity);var A=v.dataPointIds[c];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:c,x1:k,y1:P,x2:S,y2:M},o=d(A),R&&st(this._eventManager.ghostCtx,k,P,S,M,o,0,null,!1,!1,!1,!1),(b[c].indexLabel||v.indexLabel||b[c].indexLabelFormatter||v.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100",dataPoint:b[c],dataSeries:v,point:{x:a,y:b[c].y>=0?P:M},direction:b[c].y>=0?1:-1,bounds:{x1:k,y1:Math.min(P,M),x2:S,y2:Math.max(P,M)},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var _=Math.min(x,t.axisY.boundingRect.y2),w={source:e,dest:this.plotArea.ctx,animationCallback:rt.yScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:_};return w}},A.prototype.renderBar=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=0,h=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,c=this.dataPointMaxWidth?this.dataPointMaxWidth:Math.min(.15*this.height,this.plotArea.height/t.plotType.totalDataSeries*.9)<<0,x=t.axisX.dataInfo.minDiff,p=r.height/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(x)/t.plotType.totalDataSeries*.9<<0;p>c?p=c:x===1/0?p=c/t.plotType.totalDataSeries*.9:p<1&&(p=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var m=0;m<t.dataSeriesIndexes.length;m++){var u=t.dataSeriesIndexes[m],g=this.data[u],y=g.dataPoints;if(y.length>0){var v=!!(p>5&&g.bevelEnabled);for(e.strokeStyle="#4572A7 ",l=0;l<y.length;l++)if(s=y[l].getTime?y[l].x.getTime():y[l].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof y[l].y){n=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,a=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[l].y-t.axisY.conversionParameters.minimum)+.5<<0;var b,f,T=n-t.plotType.totalDataSeries*p/2+(t.previousDataSeriesCount+m)*p<<0,P=T+p<<0;y[l].y>=0?(b=h,f=a):(b=a,f=h),o=y[l].color?y[l].color:g._colorSet[l%g._colorSet.length],st(e,b,T,f,P,o,0,null,v,!1,!1,!1,g.fillOpacity);var M=g.dataPointIds[l];this._eventManager.objectMap[M]={id:M,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:l,x1:b,y1:T,x2:f,y2:P},o=d(M),R&&st(this._eventManager.ghostCtx,b,T,f,P,o,0,null,!1,!1,!1,!1),(y[l].indexLabel||g.indexLabel||y[l].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:y[l],dataSeries:g,point:{x:y[l].y>=0?f:b,y:T+(P-T)/2},direction:y[l].y>=0?1:-1,bounds:{x1:Math.min(b,f),y1:T,x2:Math.max(b,f),y2:P},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var k=Math.max(h,t.axisX.boundingRect.x2),S={source:e,dest:this.plotArea.ctx,animationCallback:rt.xScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:k};return S}},A.prototype.renderStackedBar=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=[],h=[],c=0,x=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,p=this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.height<<0,m=t.axisX.dataInfo.minDiff,u=r.height/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(m)/t.plotType.plotUnits.length*.9<<0;u>p?u=p:m===1/0?u=p:u<1&&(u=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var g=0;g<t.dataSeriesIndexes.length;g++){var y=t.dataSeriesIndexes[g],v=this.data[y],b=v.dataPoints;if(b.length>0){var f=!!(u>5&&v.bevelEnabled);for(e.strokeStyle="#4572A7 ",c=0;c<b.length;c++)if(s=b[c].x.getTime?b[c].x.getTime():b[c].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof b[c].y){n=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,a=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(b[c].y-t.axisY.conversionParameters.minimum);var T,P,M=n-t.plotType.plotUnits.length*u/2+t.index*u<<0,k=M+u<<0;if(b[c].y>=0){var S=l[s]?l[s]:0;T=x+S,P=a+S,l[s]=S+(P-T)}else{var S=h[s]?h[s]:0;T=a-S,P=x-S,h[s]=S+(P-T)}o=b[c].color?b[c].color:v._colorSet[c%v._colorSet.length],st(e,T,M,P,k,o,0,null,f,!1,!1,!1,v.fillOpacity);var C=v.dataPointIds[c];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:c,x1:T,y1:M,x2:P,y2:k},o=d(C),R&&st(this._eventManager.ghostCtx,T,M,P,k,o,0,null,!1,!1,!1,!1),(b[c].indexLabel||v.indexLabel||b[c].indexLabelFormatter||v.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:b[c],dataSeries:v,point:{x:b[c].y>=0?P:T,y:n},direction:b[c].y>=0?1:-1,bounds:{x1:Math.min(T,P),y1:M,x2:Math.max(T,P),y2:k},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var A=Math.max(x,t.axisX.boundingRect.x2),_={source:e,dest:this.plotArea.ctx,animationCallback:rt.xScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:A};return _}},A.prototype.renderStackedBar100=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=[],h=[],c=0,x=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,p=this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.height<<0,m=t.axisX.dataInfo.minDiff,u=r.height/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(m)/t.plotType.plotUnits.length*.9<<0;u>p?u=p:m===1/0?u=p:u<1&&(u=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var g=0;g<t.dataSeriesIndexes.length;g++){var y=t.dataSeriesIndexes[g],v=this.data[y],b=v.dataPoints;if(b.length>0){var f=!!(u>5&&v.bevelEnabled);for(e.strokeStyle="#4572A7 ",c=0;c<b.length;c++)if(s=b[c].x.getTime?b[c].x.getTime():b[c].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof b[c].y){n=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0;var T;T=0!==t.dataPointYSums[s]?b[c].y/t.dataPointYSums[s]*100:0,a=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(T-t.axisY.conversionParameters.minimum);var P,M,k=n-t.plotType.plotUnits.length*u/2+t.index*u<<0,S=k+u<<0;if(b[c].y>=0){var C=l[s]?l[s]:0;P=x+C,M=a+C,l[s]=C+(M-P)}else{var C=h[s]?h[s]:0;P=a-C,M=x-C,h[s]=C+(M-P)}o=b[c].color?b[c].color:v._colorSet[c%v._colorSet.length],st(e,P,k,M,S,o,0,null,f,!1,!1,!1,v.fillOpacity);var A=v.dataPointIds[c];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:c,x1:P,y1:k,x2:M,y2:S},o=d(A),R&&st(this._eventManager.ghostCtx,P,k,M,S,o,0,null,!1,!1,!1,!1),(b[c].indexLabel||v.indexLabel||b[c].indexLabelFormatter||v.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:b[c],dataSeries:v,point:{x:b[c].y>=0?M:P,y:n},direction:b[c].y>=0?1:-1,bounds:{x1:Math.min(P,M),y1:k,x2:Math.max(P,M),y2:S},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var _=Math.max(x,t.axisX.boundingRect.x2),w={source:e,dest:this.plotArea.ctx,animationCallback:rt.xScaleAnimation,easingFunction:rt.easing.easeOutQuart,animationBase:_};return w}},A.prototype.renderArea=function(t){function e(){k&&(x.lineThickness>0&&i.stroke(),t.axisY.minimum<=0&&t.axisY.maximum>=0?f=M:t.axisY.maximum<0?f=o.y1:t.axisY.minimum>0&&(f=s.y2),i.lineTo(y,f),i.lineTo(k.x,f),i.closePath(),i.globalAlpha=x.fillOpacity,i.fill(),i.globalAlpha=1,R&&(n.lineTo(y,f),n.lineTo(k.x,f),n.closePath(),n.fill()),i.beginPath(),i.moveTo(y,v),n.beginPath(),n.moveTo(y,v),k={x:y,y:v})}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx,s=t.axisX.lineCoordinates,o=t.axisY.lineCoordinates,r=[],l=this.plotArea;i.save(),R&&n.save(),i.beginPath(),i.rect(l.x1,l.y1,l.width,l.height),i.clip(),R&&(n.beginPath(),n.rect(l.x1,l.y1,l.width,l.height),n.clip());for(var h=0;h<t.dataSeriesIndexes.length;h++){var c=t.dataSeriesIndexes[h],x=this.data[c],p=x.dataPoints,m=x.id;this._eventManager.objectMap[m]={objectType:"dataSeries",dataSeriesIndex:c};var g=d(m);n.fillStyle=g,r=[];var y,v,b,f,T=!0,P=0,M=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)+.5<<0,k=null;if(p.length>0){var S=x._colorSet[P%x._colorSet.length];i.fillStyle=S,i.strokeStyle=S,i.lineWidth=x.lineThickness,i.setLineDash&&i.setLineDash(u(x.lineDashType,x.lineThickness));for(var C=!0;P<p.length;P++)if(b=p[P].x.getTime?p[P].x.getTime():p[P].x,!(b<t.axisX.dataInfo.viewPortMin||b>t.axisX.dataInfo.viewPortMax))if("number"==typeof p[P].y){y=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(b-t.axisX.conversionParameters.minimum)+.5<<0,v=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(p[P].y-t.axisY.conversionParameters.minimum)+.5<<0,T||C?(i.beginPath(),i.moveTo(y,v),k={x:y,y:v},R&&(n.beginPath(),n.moveTo(y,v)),T=!1,C=!1):(i.lineTo(y,v),R&&n.lineTo(y,v),P%250==0&&e());var A=x.dataPointIds[P];if(this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:c,dataPointIndex:P,x1:y,y1:v},0!==p[P].markerSize&&(p[P].markerSize>0||x.markerSize>0)){var _=x.getMarkerProperties(P,y,v,i);r.push(_);var w=d(A);R&&r.push({x:y,y:v,ctx:n,type:_.type,size:_.size,color:w,borderColor:w,borderThickness:_.borderThickness})}(p[P].indexLabel||x.indexLabel||p[P].indexLabelFormatter||x.indexLabelFormatter)&&this._indexLabels.push({chartType:"area",dataPoint:p[P],dataSeries:x,point:{x:y,y:v},direction:p[P].y>=0?1:-1,color:S})}else e(),C=!0;e(),lt.drawMarkers(r)}}i.restore(),R&&this._eventManager.ghostCtx.restore();var L={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return L}},A.prototype.renderSplineArea=function(t){function e(){var e=_(k,2);if(e.length>0){i.beginPath(),i.moveTo(e[0].x,e[0].y),R&&(n.beginPath(),n.moveTo(e[0].x,e[0].y));for(var a=0;a<e.length-3;a+=3)i.bezierCurveTo(e[a+1].x,e[a+1].y,e[a+2].x,e[a+2].y,e[a+3].x,e[a+3].y),R&&n.bezierCurveTo(e[a+1].x,e[a+1].y,e[a+2].x,e[a+2].y,e[a+3].x,e[a+3].y);x.lineThickness>0&&i.stroke(),t.axisY.minimum<=0&&t.axisY.maximum>=0?f=P:t.axisY.maximum<0?f=o.y1:t.axisY.minimum>0&&(f=s.y2),M={x:e[0].x,y:e[0].y},i.lineTo(e[e.length-1].x,f),i.lineTo(M.x,f),i.closePath(),i.globalAlpha=x.fillOpacity,i.fill(),i.globalAlpha=1,R&&(n.lineTo(e[e.length-1].x,f),n.lineTo(M.x,f),n.closePath(),n.fill())}}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx,s=t.axisX.lineCoordinates,o=t.axisY.lineCoordinates,r=[],l=this.plotArea;i.save(),R&&n.save(),i.beginPath(),i.rect(l.x1,l.y1,l.width,l.height),i.clip(),R&&(n.beginPath(),n.rect(l.x1,l.y1,l.width,l.height),n.clip());
  4. for(var h=0;h<t.dataSeriesIndexes.length;h++){var c=t.dataSeriesIndexes[h],x=this.data[c],p=x.dataPoints,m=x.id;this._eventManager.objectMap[m]={objectType:"dataSeries",dataSeriesIndex:c};var g=d(m);n.fillStyle=g,r=[];var y,v,b,f,T=0,P=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)+.5<<0,M=null,k=[];if(p.length>0){for(color=x._colorSet[T%x._colorSet.length],i.fillStyle=color,i.strokeStyle=color,i.lineWidth=x.lineThickness,i.setLineDash&&i.setLineDash(u(x.lineDashType,x.lineThickness));T<p.length;T++)if(b=p[T].x.getTime?p[T].x.getTime():p[T].x,!(b<t.axisX.dataInfo.viewPortMin||b>t.axisX.dataInfo.viewPortMax))if("number"==typeof p[T].y){y=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(b-t.axisX.conversionParameters.minimum)+.5<<0,v=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(p[T].y-t.axisY.conversionParameters.minimum)+.5<<0;var S=x.dataPointIds[T];if(this._eventManager.objectMap[S]={id:S,objectType:"dataPoint",dataSeriesIndex:c,dataPointIndex:T,x1:y,y1:v},k[k.length]={x:y,y:v},0!==p[T].markerSize&&(p[T].markerSize>0||x.markerSize>0)){var C=x.getMarkerProperties(T,y,v,i);r.push(C);var A=d(S);R&&r.push({x:y,y:v,ctx:n,type:C.type,size:C.size,color:A,borderColor:A,borderThickness:C.borderThickness})}(p[T].indexLabel||x.indexLabel||p[T].indexLabelFormatter||x.indexLabelFormatter)&&this._indexLabels.push({chartType:"splineArea",dataPoint:p[T],dataSeries:x,point:{x:y,y:v},direction:p[T].y>=0?1:-1,color:color})}else T>0&&(e(),k=[]);e(),lt.drawMarkers(r)}}i.restore(),R&&this._eventManager.ghostCtx.restore();var w={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return w}},A.prototype.renderStepArea=function(t){function e(){k&&(x.lineThickness>0&&i.stroke(),t.axisY.minimum<=0&&t.axisY.maximum>=0?f=M:t.axisY.maximum<0?f=o.y1:t.axisY.minimum>0&&(f=s.y2),i.lineTo(y,f),i.lineTo(k.x,f),i.closePath(),i.globalAlpha=x.fillOpacity,i.fill(),i.globalAlpha=1,R&&(n.lineTo(y,f),n.lineTo(k.x,f),n.closePath(),n.fill()),i.beginPath(),i.moveTo(y,v),n.beginPath(),n.moveTo(y,v),k={x:y,y:v})}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx,s=t.axisX.lineCoordinates,o=t.axisY.lineCoordinates,r=[],l=this.plotArea;i.save(),R&&n.save(),i.beginPath(),i.rect(l.x1,l.y1,l.width,l.height),i.clip(),R&&(n.beginPath(),n.rect(l.x1,l.y1,l.width,l.height),n.clip());for(var h=0;h<t.dataSeriesIndexes.length;h++){var c=t.dataSeriesIndexes[h],x=this.data[c],p=x.dataPoints,m=x.id;this._eventManager.objectMap[m]={objectType:"dataSeries",dataSeriesIndex:c};var g=d(m);n.fillStyle=g,r=[];var y,v,b,f,T=!0,P=0,M=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)+.5<<0,k=null,S=!1;if(p.length>0){var C=x._colorSet[P%x._colorSet.length];for(i.fillStyle=C,i.strokeStyle=C,i.lineWidth=x.lineThickness,i.setLineDash&&i.setLineDash(u(x.lineDashType,x.lineThickness));P<p.length;P++)if(b=p[P].x.getTime?p[P].x.getTime():p[P].x,!(b<t.axisX.dataInfo.viewPortMin||b>t.axisX.dataInfo.viewPortMax)){var A=v;if("number"==typeof p[P].y){y=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(b-t.axisX.conversionParameters.minimum)+.5<<0,v=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(p[P].y-t.axisY.conversionParameters.minimum)+.5<<0,T||S?(i.beginPath(),i.moveTo(y,v),k={x:y,y:v},R&&(n.beginPath(),n.moveTo(y,v)),T=!1,S=!1):(i.lineTo(y,A),R&&n.lineTo(y,A),i.lineTo(y,v),R&&n.lineTo(y,v),P%250==0&&e());var _=x.dataPointIds[P];if(this._eventManager.objectMap[_]={id:_,objectType:"dataPoint",dataSeriesIndex:c,dataPointIndex:P,x1:y,y1:v},0!==p[P].markerSize&&(p[P].markerSize>0||x.markerSize>0)){var w=x.getMarkerProperties(P,y,v,i);r.push(w);var L=d(_);R&&r.push({x:y,y:v,ctx:n,type:w.type,size:w.size,color:L,borderColor:L,borderThickness:w.borderThickness})}(p[P].indexLabel||x.indexLabel||p[P].indexLabelFormatter||x.indexLabelFormatter)&&this._indexLabels.push({chartType:"stepArea",dataPoint:p[P],dataSeries:x,point:{x:y,y:v},direction:p[P].y>=0?1:-1,color:C})}else e(),S=!0}e(),lt.drawMarkers(r)}}i.restore(),R&&this._eventManager.ghostCtx.restore();var I={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return I}},A.prototype.renderStackedArea=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=[],h=this.plotArea,c=[],x=[],p=0,m=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,g=(t.axisX.dataInfo.minDiff,this._eventManager.ghostCtx);R&&g.beginPath(),e.save(),R&&g.save(),e.beginPath(),e.rect(h.x1,h.y1,h.width,h.height),e.clip(),R&&(g.beginPath(),g.rect(h.x1,h.y1,h.width,h.height),g.clip()),xValuePresent=[];for(var y=0;y<t.dataSeriesIndexes.length;y++){var v,b=t.dataSeriesIndexes[y],f=this.data[b],T=f.dataPoints;for(f.dataPointIndexes=[],p=0;p<T.length;p++)v=T[p].x.getTime?T[p].x.getTime():T[p].x,f.dataPointIndexes[v]=p,xValuePresent[v]||(x.push(v),xValuePresent[v]=!0);x.sort(l)}for(var y=0;y<t.dataSeriesIndexes.length;y++){var b=t.dataSeriesIndexes[y],f=this.data[b],T=f.dataPoints,P=!0,M=[],k=f.id;this._eventManager.objectMap[k]={objectType:"dataSeries",dataSeriesIndex:b};var S=d(k);if(g.fillStyle=S,x.length>0){for(o=f._colorSet[0],e.fillStyle=o,e.strokeStyle=o,e.lineWidth=f.lineThickness,e.setLineDash&&e.setLineDash(u(f.lineDashType,f.lineThickness)),p=0;p<x.length;p++){s=x[p];var C=null;if(C=f.dataPointIndexes[s]>=0?T[f.dataPointIndexes[s]]:{x:s,y:0},!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof C.y){var a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(C.y-t.axisY.conversionParameters.minimum),A=c[s]?c[s]:0;if(n-=A,M.push({x:a,y:m-A}),c[s]=m-n,P)e.beginPath(),e.moveTo(a,n),R&&(g.beginPath(),g.moveTo(a,n)),P=!1;else if(e.lineTo(a,n),R&&g.lineTo(a,n),p%250==0){for(f.lineThickness>0&&e.stroke();M.length>0;){var _=M.pop();e.lineTo(_.x,_.y),R&&g.lineTo(_.x,_.y)}e.closePath(),e.globalAlpha=f.fillOpacity,e.fill(),e.globalAlpha=1,e.beginPath(),e.moveTo(a,n),R&&(g.closePath(),g.fill(),g.beginPath(),g.moveTo(a,n)),M.push({x:a,y:m-A})}if(f.dataPointIndexes[s]>=0){var w=f.dataPointIds[f.dataPointIndexes[s]];this._eventManager.objectMap[w]={id:w,objectType:"dataPoint",dataSeriesIndex:b,dataPointIndex:f.dataPointIndexes[s],x1:a,y1:n}}if(f.dataPointIndexes[s]>=0&&0!==C.markerSize&&(C.markerSize>0||f.markerSize>0)){var L=f.getMarkerProperties(p,a,n,e);r.push(L),markerColor=d(w),R&&r.push({x:a,y:n,ctx:g,type:L.type,size:L.size,color:markerColor,borderColor:markerColor,borderThickness:L.borderThickness})}(C.indexLabel||f.indexLabel||C.indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedArea",dataPoint:C,dataSeries:f,point:{x:a,y:n},direction:T[p].y>=0?1:-1,color:o})}}for(f.lineThickness>0&&e.stroke();M.length>0;){var _=M.pop();e.lineTo(_.x,_.y),R&&g.lineTo(_.x,_.y)}e.closePath(),e.globalAlpha=f.fillOpacity,e.fill(),e.globalAlpha=1,e.beginPath(),e.moveTo(a,n),R&&(g.closePath(),g.fill(),g.beginPath(),g.moveTo(a,n))}delete f.dataPointIndexes}lt.drawMarkers(r),e.restore(),R&&g.restore();var I={source:e,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return I}},A.prototype.renderStackedArea100=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,h=[],c=[],x=[],p=0,m=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,g=this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.width<<0,y=t.axisX.dataInfo.minDiff,v=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(y)*.9<<0,b=this._eventManager.ghostCtx;e.save(),R&&b.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(b.beginPath(),b.rect(r.x1,r.y1,r.width,r.height),b.clip()),xValuePresent=[];for(var f=0;f<t.dataSeriesIndexes.length;f++){var T,P=t.dataSeriesIndexes[f],M=this.data[P],k=M.dataPoints;for(M.dataPointIndexes=[],p=0;p<k.length;p++)T=k[p].x.getTime?k[p].x.getTime():k[p].x,M.dataPointIndexes[T]=p,xValuePresent[T]||(x.push(T),xValuePresent[T]=!0);x.sort(l)}for(var f=0;f<t.dataSeriesIndexes.length;f++){var P=t.dataSeriesIndexes[f],M=this.data[P],k=M.dataPoints,S=!0,C=M.id;this._eventManager.objectMap[C]={objectType:"dataSeries",dataSeriesIndex:P};var A=d(C);b.fillStyle=A,1==k.length&&(v=g),v<1?v=1:v>g&&(v=g);var _=[];if(x.length>0){o=M._colorSet[p%M._colorSet.length],e.fillStyle=o,e.strokeStyle=o,e.lineWidth=M.lineThickness,e.setLineDash&&e.setLineDash(u(M.lineDashType,M.lineThickness));for(p=0;p<x.length;p++){s=x[p];var w=null;if(w=M.dataPointIndexes[s]>=0?k[M.dataPointIndexes[s]]:{x:s,y:0},!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof w.y){var L;L=0!==t.dataPointYSums[s]?w.y/t.dataPointYSums[s]*100:0;var a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(L-t.axisY.conversionParameters.minimum),I=c[s]?c[s]:0;if(n-=I,_.push({x:a,y:m-I}),c[s]=m-n,S)e.beginPath(),e.moveTo(a,n),R&&(b.beginPath(),b.moveTo(a,n)),S=!1;else if(e.lineTo(a,n),R&&b.lineTo(a,n),p%250==0){for(M.lineThickness>0&&e.stroke();_.length>0;){var B=_.pop();e.lineTo(B.x,B.y),R&&b.lineTo(B.x,B.y)}e.closePath(),e.globalAlpha=M.fillOpacity,e.fill(),e.globalAlpha=1,e.beginPath(),e.moveTo(a,n),R&&(b.closePath(),b.fill(),b.beginPath(),b.moveTo(a,n)),_.push({x:a,y:m-I})}if(M.dataPointIndexes[s]>=0){var F=M.dataPointIds[M.dataPointIndexes[s]];this._eventManager.objectMap[F]={id:F,objectType:"dataPoint",dataSeriesIndex:P,dataPointIndex:M.dataPointIndexes[s],x1:a,y1:n}}if(M.dataPointIndexes[s]>=0&&0!==w.markerSize&&(w.markerSize>0||M.markerSize>0)){var X=M.getMarkerProperties(p,a,n,e);h.push(X),markerColor=d(F),R&&h.push({x:a,y:n,ctx:b,type:X.type,size:X.size,color:markerColor,borderColor:markerColor,borderThickness:X.borderThickness})}(w.indexLabel||M.indexLabel||w.indexLabelFormatter||M.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedArea100",dataPoint:w,dataSeries:M,point:{x:a,y:n},direction:k[p].y>=0?1:-1,color:o})}}for(M.lineThickness>0&&e.stroke();_.length>0;){var B=_.pop();e.lineTo(B.x,B.y),R&&b.lineTo(B.x,B.y)}e.closePath(),e.globalAlpha=M.fillOpacity,e.fill(),e.globalAlpha=1,e.beginPath(),e.moveTo(a,n),R&&(b.closePath(),b.fill(),b.beginPath(),b.moveTo(a,n))}delete M.dataPointIndexes}lt.drawMarkers(h),e.restore(),R&&b.restore();var z={source:e,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return z}},A.prototype.renderBubble=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=0,h=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.width<<0),c=t.axisX.dataInfo.minDiff,x=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(c)/i*.9<<0;e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var p=-(1/0),m=1/0,u=0;u<t.dataSeriesIndexes.length;u++)for(var g=t.dataSeriesIndexes[u],y=this.data[g],v=y.dataPoints,b=0,l=0;l<v.length;l++)s=s=v[l].getTime?v[l].x.getTime():v[l].x,s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax||"undefined"!=typeof v[l].z&&(b=v[l].z,b>p&&(p=b),b<m&&(m=b));for(var f=5*Math.PI*5,T=Math.max(Math.pow(.25*Math.min(r.height,r.width)/2,2)*Math.PI,f),u=0;u<t.dataSeriesIndexes.length;u++){var g=t.dataSeriesIndexes[u],y=this.data[g],v=y.dataPoints;if(1==v.length&&(x=h),x<1?x=1:x>h&&(x=h),v.length>0){e.strokeStyle="#4572A7 ";for(var l=0;l<v.length;l++)if(s=s=v[l].getTime?v[l].x.getTime():v[l].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof v[l].y){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(v[l].y-t.axisY.conversionParameters.minimum)+.5<<0;var b=v[l].z,P=p===m?T/2:f+(T-f)/(p-m)*(b-m),M=Math.max(Math.sqrt(P/Math.PI)<<0,1),k=2*M,S=y.getMarkerProperties(l,e);S.size=k,e.globalAlpha=y.fillOpacity,lt.drawMarker(a,n,e,S.type,S.size,S.color,S.borderColor,S.borderThickness),e.globalAlpha=1;var C=y.dataPointIds[l];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:g,dataPointIndex:l,x1:a,y1:n,size:k};var A=d(C);R&&lt.drawMarker(a,n,this._eventManager.ghostCtx,S.type,S.size,A,A,S.borderThickness),(v[l].indexLabel||y.indexLabel||v[l].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:v[l],dataSeries:y,point:{x:a,y:n},direction:1,bounds:{x1:a-S.size/2,y1:n-S.size/2,x2:a+S.size/2,y2:n+S.size/2},color:o})}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var _={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0};return _}},A.prototype.renderScatter=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o=null,r=this.plotArea,l=0,h=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,this.dataPointMaxWidth?this.dataPointMaxWidth:.15*this.width<<0),c=t.axisX.dataInfo.minDiff,x=r.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(c)/i*.9<<0;e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var p=0;p<t.dataSeriesIndexes.length;p++){var m=t.dataSeriesIndexes[p],u=this.data[m],g=u.dataPoints;if(1==g.length&&(x=h),x<1?x=1:x>h&&(x=h),g.length>0){e.strokeStyle="#4572A7 ";for(var y=(Math.pow(.3*Math.min(r.height,r.width)/2,2)*Math.PI,0),v=0,l=0;l<g.length;l++)if(s=s=g[l].getTime?g[l].x.getTime():g[l].x,!(s<t.axisX.dataInfo.viewPortMin||s>t.axisX.dataInfo.viewPortMax)&&"number"==typeof g[l].y){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(s-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(g[l].y-t.axisY.conversionParameters.minimum)+.5<<0;var b=u.getMarkerProperties(l,a,n,e);if(e.globalAlpha=u.fillOpacity,lt.drawMarker(b.x,b.y,b.ctx,b.type,b.size,b.color,b.borderColor,b.borderThickness),e.globalAlpha=1,!(Math.sqrt((y-a)*(y-a)+(v-n)*(v-n))<Math.min(b.size,5)&&g.length>Math.min(this.plotArea.width,this.plotArea.height))){var f=u.dataPointIds[l];this._eventManager.objectMap[f]={id:f,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:l,x1:a,y1:n};var T=d(f);R&&lt.drawMarker(b.x,b.y,this._eventManager.ghostCtx,b.type,b.size,T,T,b.borderThickness),(g[l].indexLabel||u.indexLabel||g[l].indexLabelFormatter||u.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:g[l],dataSeries:u,point:{x:a,y:n},direction:1,bounds:{x1:a-b.size/2,y1:n-b.size/2,x2:a+b.size/2,y2:n+b.size/2},color:o}),y=a,v=n}}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var P={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0};return P}},A.prototype.renderCandlestick=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=this._eventManager.ghostCtx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n,s,o,r,l,h,c=null,x=this.plotArea,p=0,m=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,this.dataPointMaxWidth?this.dataPointMaxWidth:.015*this.width),u=t.axisX.dataInfo.minDiff,g=x.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(u)*.7<<0;g>m?g=m:u===1/0?g=m:g<1&&(g=1),e.save(),R&&i.save(),e.beginPath(),e.rect(x.x1,x.y1,x.width,x.height),e.clip(),R&&(i.rect(x.x1,x.y1,x.width,x.height),i.clip());for(var y=0;y<t.dataSeriesIndexes.length;y++){var v=t.dataSeriesIndexes[y],b=this.data[v],f=b.dataPoints;if(f.length>0){var T=!!(g>5&&b.bevelEnabled);for(p=0;p<f.length;p++)if(h=f[p].getTime?f[p].x.getTime():f[p].x,!(h<t.axisX.dataInfo.viewPortMin||h>t.axisX.dataInfo.viewPortMax)&&null!==f[p].y&&f[p].y.length&&"number"==typeof f[p].y[0]&&"number"==typeof f[p].y[1]&&"number"==typeof f[p].y[2]&&"number"==typeof f[p].y[3]){n=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(h-t.axisX.conversionParameters.minimum)+.5<<0,s=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(f[p].y[0]-t.axisY.conversionParameters.minimum)+.5<<0,o=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(f[p].y[1]-t.axisY.conversionParameters.minimum)+.5<<0,r=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(f[p].y[2]-t.axisY.conversionParameters.minimum)+.5<<0,l=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(f[p].y[3]-t.axisY.conversionParameters.minimum)+.5<<0;var P=n-g/2<<0,M=P+g<<0;c=f[p].color?f[p].color:b._colorSet[0];var k=Math.round(Math.max(1,.15*g)),S=k%2===0?0:.5,C=b.dataPointIds[p];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:v,dataPointIndex:p,x1:P,y1:s,x2:M,y2:o,x3:n,y3:r,x4:n,y4:l,borderThickness:k,color:c},e.strokeStyle=c,e.beginPath(),e.lineWidth=k,i.lineWidth=Math.max(k,4),"candlestick"===b.type?(e.moveTo(n-S,o),e.lineTo(n-S,Math.min(s,l)),e.stroke(),e.moveTo(n-S,Math.max(s,l)),e.lineTo(n-S,r),e.stroke(),st(e,P,Math.min(s,l),M,Math.max(s,l),f[p].y[0]<=f[p].y[3]?b.risingColor:c,k,c,T,T,!1,!1,b.fillOpacity),R&&(c=d(C),i.strokeStyle=c,i.moveTo(n-S,o),i.lineTo(n-S,Math.min(s,l)),i.stroke(),i.moveTo(n-S,Math.max(s,l)),i.lineTo(n-S,r),i.stroke(),st(i,P,Math.min(s,l),M,Math.max(s,l),c,0,null,!1,!1,!1,!1))):"ohlc"===b.type&&(e.moveTo(n-S,o),e.lineTo(n-S,r),e.stroke(),e.beginPath(),e.moveTo(n,s),e.lineTo(P,s),e.stroke(),e.beginPath(),e.moveTo(n,l),e.lineTo(M,l),e.stroke(),R&&(c=d(C),i.strokeStyle=c,i.moveTo(n-S,o),i.lineTo(n-S,r),i.stroke(),i.beginPath(),i.moveTo(n,s),i.lineTo(P,s),i.stroke(),i.beginPath(),i.moveTo(n,l),i.lineTo(M,l),i.stroke())),(f[p].indexLabel||b.indexLabel||f[p].indexLabelFormatter||b.indexLabelFormatter)&&this._indexLabels.push({chartType:b.type,dataPoint:f[p],dataSeries:b,point:{x:P+(M-P)/2,y:o},direction:1,bounds:{x1:P,y1:Math.min(o,r),x2:M,y2:Math.max(o,r)},color:c})}}}e.restore(),R&&i.restore();var A={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0};return A}},A.prototype.renderRangeColumn=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o,r=null,l=this.plotArea,h=0,c=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,this.dataPointMaxWidth?this.dataPointMaxWidth:.03*this.width),x=t.axisX.dataInfo.minDiff,p=l.width/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(x)/t.plotType.totalDataSeries*.9<<0;p>c?p=c:x===1/0?p=c/t.plotType.totalDataSeries*.9:p<1&&(p=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.clip());for(var m=0;m<t.dataSeriesIndexes.length;m++){var u=t.dataSeriesIndexes[m],g=this.data[u],y=g.dataPoints;if(y.length>0){var v=!!(p>5&&g.bevelEnabled);for(h=0;h<y.length;h++)if(o=y[h].getTime?y[h].x.getTime():y[h].x,!(o<t.axisX.dataInfo.viewPortMin||o>t.axisX.dataInfo.viewPortMax)&&null!==y[h].y&&y[h].y.length&&"number"==typeof y[h].y[0]&&"number"==typeof y[h].y[1]){a=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(o-t.axisX.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[h].y[0]-t.axisY.conversionParameters.minimum)+.5<<0,s=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[h].y[1]-t.axisY.conversionParameters.minimum)+.5<<0;var n,s,b=a-t.plotType.totalDataSeries*p/2+(t.previousDataSeriesCount+m)*p<<0,f=b+p<<0;if(r=y[h].color?y[h].color:g._colorSet[h%g._colorSet.length],n>s){var T=n;n=s,s=T}var P=g.dataPointIds[h];this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:h,x1:b,y1:n,x2:f,y2:s};var M=0;st(e,b,n,f,s,r,M,r,v,v,!1,!1,g.fillOpacity),r=d(P),R&&st(this._eventManager.ghostCtx,b,n,f,s,r,0,null,!1,!1,!1,!1),(y[h].indexLabel||g.indexLabel||y[h].indexLabelFormatter||g.indexLabelFormatter)&&(this._indexLabels.push({chartType:"rangeColumn",dataPoint:y[h],dataSeries:g,indexKeyword:0,point:{x:b+(f-b)/2,y:y[h].y[1]>=y[h].y[0]?s:n},direction:y[h].y[1]>=y[h].y[0]?-1:1,bounds:{x1:b,y1:Math.min(n,s),x2:f,y2:Math.max(n,s)},color:r}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:y[h],dataSeries:g,indexKeyword:1,point:{x:b+(f-b)/2,y:y[h].y[1]>=y[h].y[0]?n:s},direction:y[h].y[1]>=y[h].y[0]?1:-1,bounds:{x1:b,y1:Math.min(n,s),x2:f,y2:Math.max(n,s)},color:r}))}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var k={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0};return k}},A.prototype.renderRangeBar=function(t){var e=t.targetCanvasCtx||this.plotArea.ctx,i=t.dataSeriesIndexes.length;if(!(i<=0)){var a,n,s,o,r=null,l=this.plotArea,h=0,c=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)<<0,this.dataPointMaxWidth?this.dataPointMaxWidth:Math.min(.15*this.height,this.plotArea.height/t.plotType.totalDataSeries*.9)<<0),x=t.axisX.dataInfo.minDiff,p=l.height/Math.abs(t.axisX.maximum-t.axisX.minimum)*Math.abs(x)/t.plotType.totalDataSeries*.9<<0;p>c?p=c:x===1/0?p=c/t.plotType.totalDataSeries*.9:p<1&&(p=1),e.save(),R&&this._eventManager.ghostCtx.save(),e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip(),R&&(this._eventManager.ghostCtx.rect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.clip());for(var m=0;m<t.dataSeriesIndexes.length;m++){var u=t.dataSeriesIndexes[m],g=this.data[u],y=g.dataPoints;if(y.length>0){var v=!!(p>5&&g.bevelEnabled);for(e.strokeStyle="#4572A7 ",h=0;h<y.length;h++)if(o=y[h].getTime?y[h].x.getTime():y[h].x,!(o<t.axisX.dataInfo.viewPortMin||o>t.axisX.dataInfo.viewPortMax)&&null!==y[h].y&&y[h].y.length&&"number"==typeof y[h].y[0]&&"number"==typeof y[h].y[1]){a=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[h].y[0]-t.axisY.conversionParameters.minimum)+.5<<0,n=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(y[h].y[1]-t.axisY.conversionParameters.minimum)+.5<<0,s=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(o-t.axisX.conversionParameters.minimum)+.5<<0;var b=s-t.plotType.totalDataSeries*p/2+(t.previousDataSeriesCount+m)*p<<0,f=b+p<<0;if(a>n){var T=a;a=n,n=T}r=y[h].color?y[h].color:g._colorSet[h%g._colorSet.length],st(e,a,b,n,f,r,0,null,v,!1,!1,!1,g.fillOpacity);var P=g.dataPointIds[h];this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:h,x1:a,y1:b,x2:n,y2:f},r=d(P),R&&st(this._eventManager.ghostCtx,a,b,n,f,r,0,null,!1,!1,!1,!1),(y[h].indexLabel||g.indexLabel||y[h].indexLabelFormatter||g.indexLabelFormatter)&&(this._indexLabels.push({chartType:"rangeBar",dataPoint:y[h],dataSeries:g,indexKeyword:0,point:{x:y[h].y[1]>=y[h].y[0]?a:n,y:b+(f-b)/2},direction:y[h].y[1]>=y[h].y[0]?-1:1,bounds:{x1:Math.min(a,n),y1:b,x2:Math.max(a,n),y2:f},color:r}),this._indexLabels.push({chartType:"rangeBar",dataPoint:y[h],dataSeries:g,indexKeyword:1,point:{x:y[h].y[1]>=y[h].y[0]?n:a,y:b+(f-b)/2},direction:y[h].y[1]>=y[h].y[0]?1:-1,bounds:{x1:Math.min(a,n),y1:b,x2:Math.max(a,n),y2:f},color:r}))}}}e.restore(),R&&this._eventManager.ghostCtx.restore();var M={source:e,dest:this.plotArea.ctx,animationCallback:rt.fadeInAnimation,easingFunction:rt.easing.easeInQuad,animationBase:0};return M}},A.prototype.renderRangeArea=function(t){function e(){if(P){var t=null;c.lineThickness>0&&i.stroke();for(var e=l.length-1;e>=0;e--)t=l[e],i.lineTo(t.x,t.y),n.lineTo(t.x,t.y);if(i.closePath(),i.globalAlpha=c.fillOpacity,i.fill(),i.globalAlpha=1,n.fill(),c.lineThickness>0){i.beginPath(),i.moveTo(t.x,t.y);for(var e=0;e<l.length;e++)t=l[e],i.lineTo(t.x,t.y);i.stroke()}i.beginPath(),i.moveTo(g,y),n.beginPath(),n.moveTo(g,y),P={x:g,y:y},l=[],l.push({x:g,y:v})}}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx,s=(t.axisX.lineCoordinates,t.axisY.lineCoordinates,[]),o=this.plotArea;i.save(),R&&n.save(),i.beginPath(),i.rect(o.x1,o.y1,o.width,o.height),i.clip(),R&&(n.beginPath(),n.rect(o.x1,o.y1,o.width,o.height),n.clip());for(var r=0;r<t.dataSeriesIndexes.length;r++){var l=[],h=t.dataSeriesIndexes[r],c=this.data[h],x=c.dataPoints,p=c.id;this._eventManager.objectMap[p]={objectType:"dataSeries",dataSeriesIndex:h};var m=d(p);n.fillStyle=m,s=[];var g,y,v,b,f=!0,T=0,P=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)+.5<<0,null);if(x.length>0){var M=c._colorSet[T%c._colorSet.length];i.fillStyle=M,i.strokeStyle=M,i.lineWidth=c.lineThickness,i.setLineDash&&i.setLineDash(u(c.lineDashType,c.lineThickness));for(var k=!0;T<x.length;T++)if(b=x[T].x.getTime?x[T].x.getTime():x[T].x,!(b<t.axisX.dataInfo.viewPortMin||b>t.axisX.dataInfo.viewPortMax))if(null!==x[T].y&&x[T].y.length&&"number"==typeof x[T].y[0]&&"number"==typeof x[T].y[1]){g=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(b-t.axisX.conversionParameters.minimum)+.5<<0,y=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(x[T].y[0]-t.axisY.conversionParameters.minimum)+.5<<0,v=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(x[T].y[1]-t.axisY.conversionParameters.minimum)+.5<<0,f||k?(i.beginPath(),i.moveTo(g,y),P={x:g,y:y},l=[],l.push({x:g,y:v}),R&&(n.beginPath(),n.moveTo(g,y)),f=!1,k=!1):(i.lineTo(g,y),l.push({x:g,y:v}),R&&n.lineTo(g,y),T%250==0&&e());var S=c.dataPointIds[T];if(this._eventManager.objectMap[S]={id:S,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:T,x1:g,y1:y,y2:v},0!==x[T].markerSize&&(x[T].markerSize>0||c.markerSize>0)){var C=c.getMarkerProperties(T,g,v,i);s.push(C);var A=d(S);R&&s.push({x:g,y:v,ctx:n,type:C.type,size:C.size,color:A,borderColor:A,borderThickness:C.borderThickness}),C=c.getMarkerProperties(T,g,y,i),s.push(C);var A=d(S);R&&s.push({x:g,y:y,ctx:n,type:C.type,size:C.size,color:A,borderColor:A,borderThickness:C.borderThickness})}(x[T].indexLabel||c.indexLabel||x[T].indexLabelFormatter||c.indexLabelFormatter)&&(this._indexLabels.push({chartType:"rangeArea",dataPoint:x[T],dataSeries:c,indexKeyword:0,point:{x:g,y:y},direction:x[T].y[0]<=x[T].y[1]?-1:1,color:M}),this._indexLabels.push({chartType:"rangeArea",dataPoint:x[T],dataSeries:c,indexKeyword:1,point:{x:g,y:v},direction:x[T].y[0]<=x[T].y[1]?1:-1,color:M}))}else e(),k=!0;e(),lt.drawMarkers(s)}}i.restore(),R&&this._eventManager.ghostCtx.restore();var _={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return _}},A.prototype.renderRangeSplineArea=function(t){function e(){var t=_(f,2);if(t.length>0){i.beginPath(),i.moveTo(t[0].x,t[0].y),R&&(n.beginPath(),n.moveTo(t[0].x,t[0].y));for(var e=0;e<t.length-3;e+=3)i.bezierCurveTo(t[e+1].x,t[e+1].y,t[e+2].x,t[e+2].y,t[e+3].x,t[e+3].y),R&&n.bezierCurveTo(t[e+1].x,t[e+1].y,t[e+2].x,t[e+2].y,t[e+3].x,t[e+3].y);h.lineThickness>0&&i.stroke(),t=_(T,2),i.lineTo(T[T.length-1].x,T[T.length-1].y);for(var e=t.length-1;e>2;e-=3)i.bezierCurveTo(t[e-1].x,t[e-1].y,t[e-2].x,t[e-2].y,t[e-3].x,t[e-3].y),R&&n.bezierCurveTo(t[e-1].x,t[e-1].y,t[e-2].x,t[e-2].y,t[e-3].x,t[e-3].y);if(i.closePath(),i.globalAlpha=h.fillOpacity,i.fill(),i.globalAlpha=1,h.lineThickness>0){i.beginPath(),i.moveTo(T[T.length-1].x,T[T.length-1].y);for(var e=t.length-1;e>2;e-=3)i.bezierCurveTo(t[e-1].x,t[e-1].y,t[e-2].x,t[e-2].y,t[e-3].x,t[e-3].y),R&&n.bezierCurveTo(t[e-1].x,t[e-1].y,t[e-2].x,t[e-2].y,t[e-3].x,t[e-3].y);i.stroke()}i.beginPath(),R&&(n.closePath(),n.fill())}}var i=t.targetCanvasCtx||this.plotArea.ctx,a=t.dataSeriesIndexes.length;if(!(a<=0)){var n=this._eventManager.ghostCtx,s=(t.axisX.lineCoordinates,t.axisY.lineCoordinates,[]),o=this.plotArea;i.save(),R&&n.save(),i.beginPath(),i.rect(o.x1,o.y1,o.width,o.height),i.clip(),R&&(n.beginPath(),n.rect(o.x1,o.y1,o.width,o.height),n.clip());for(var r=0;r<t.dataSeriesIndexes.length;r++){var l=t.dataSeriesIndexes[r],h=this.data[l],c=h.dataPoints,x=h.id;this._eventManager.objectMap[x]={objectType:"dataSeries",dataSeriesIndex:l};var p=d(x);n.fillStyle=p,s=[];var m,g,y,v,b=0,f=(t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(0-t.axisY.conversionParameters.minimum)+.5<<0,[]),T=[];if(c.length>0){for(color=h._colorSet[b%h._colorSet.length],i.fillStyle=color,i.strokeStyle=color,i.lineWidth=h.lineThickness,i.setLineDash&&i.setLineDash(u(h.lineDashType,h.lineThickness));b<c.length;b++)if(v=c[b].x.getTime?c[b].x.getTime():c[b].x,!(v<t.axisX.dataInfo.viewPortMin||v>t.axisX.dataInfo.viewPortMax))if(null!==c[b].y&&c[b].y.length&&"number"==typeof c[b].y[0]&&"number"==typeof c[b].y[1]){m=t.axisX.conversionParameters.reference+t.axisX.conversionParameters.pixelPerUnit*(v-t.axisX.conversionParameters.minimum)+.5<<0,g=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(c[b].y[0]-t.axisY.conversionParameters.minimum)+.5<<0,y=t.axisY.conversionParameters.reference+t.axisY.conversionParameters.pixelPerUnit*(c[b].y[1]-t.axisY.conversionParameters.minimum)+.5<<0;var P=h.dataPointIds[b];if(this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:b,x1:m,y1:g,y2:y},f[f.length]={x:m,y:g},T[T.length]={x:m,y:y},0!==c[b].markerSize&&(c[b].markerSize>0||h.markerSize>0)){var M=h.getMarkerProperties(b,m,g,i);s.push(M);var k=d(P);R&&s.push({x:m,y:g,ctx:n,type:M.type,size:M.size,color:k,borderColor:k,borderThickness:M.borderThickness});var M=h.getMarkerProperties(b,m,y,i);s.push(M);var k=d(P);R&&s.push({x:m,y:y,ctx:n,type:M.type,size:M.size,color:k,borderColor:k,borderThickness:M.borderThickness})}(c[b].indexLabel||h.indexLabel||c[b].indexLabelFormatter||h.indexLabelFormatter)&&(this._indexLabels.push({chartType:"splineArea",dataPoint:c[b],dataSeries:h,indexKeyword:0,point:{x:m,y:g},direction:c[b].y[0]<=c[b].y[1]?-1:1,color:color}),this._indexLabels.push({chartType:"splineArea",dataPoint:c[b],dataSeries:h,indexKeyword:1,point:{x:m,y:y},direction:c[b].y[0]<=c[b].y[1]?1:-1,color:color}))}else b>0&&(e(),f=[],T=[]);e(),lt.drawMarkers(s)}}i.restore(),R&&this._eventManager.ghostCtx.restore();var S={source:i,dest:this.plotArea.ctx,animationCallback:rt.xClipAnimation,easingFunction:rt.easing.linear,animationBase:0};return S}};var ot=function(t,e,i,a,n,s,o,r){if("undefined"==typeof r&&(r=1),!R){var l=Number((o%(2*Math.PI)).toFixed(8)),h=Number((s%(2*Math.PI)).toFixed(8));
  5. h===l&&(o-=1e-4)}if(t.save(),t.globalAlpha=r,"pie"===n)t.beginPath(),t.moveTo(e.x,e.y),t.arc(e.x,e.y,i,s,o,!1),t.fillStyle=a,t.strokeStyle="white",t.lineWidth=2,t.closePath(),t.fill();else if("doughnut"===n){var d=.6;t.beginPath(),t.arc(e.x,e.y,i,s,o,!1),t.arc(e.x,e.y,d*i,o,s,!0),t.closePath(),t.fillStyle=a,t.strokeStyle="white",t.lineWidth=2,t.fill()}t.globalAlpha=1,t.restore()};A.prototype.renderPie=function(t){function e(){if(g&&y){var t=0,e=0,i=0,a=0;for(B=0;B<y.length;B++){var n=y[B],s=g.dataPointIds[B],o={id:s,objectType:"dataPoint",dataPointIndex:B,dataSeriesIndex:0};P.push(o);var r={percent:null,total:null},l=null;r=x.getPercentAndTotal(g,n),(g.indexLabelFormatter||n.indexLabelFormatter)&&(l={chart:x._options,dataSeries:g,dataPoint:n,total:r.total,percent:r.percent});var h=n.indexLabelFormatter?n.indexLabelFormatter(l):n.indexLabel?x.replaceKeywordsWithValue(n.indexLabel,n,g,B):g.indexLabelFormatter?g.indexLabelFormatter(l):g.indexLabel?x.replaceKeywordsWithValue(g.indexLabel,n,g,B):n.label?n.label:"";x._eventManager.objectMap[s]=o,o.center={x:A.x,y:A.y},o.y=n.y,o.radius=_,o.indexLabelText=h,o.indexLabelPlacement=g.indexLabelPlacement,o.indexLabelLineColor=n.indexLabelLineColor?n.indexLabelLineColor:g.indexLabelLineColor?g.indexLabelLineColor:n.color?n.color:g._colorSet[B%g._colorSet.length],o.indexLabelLineThickness=n.indexLabelLineThickness?n.indexLabelLineThickness:g.indexLabelLineThickness,o.indexLabelLineDashType=n.indexLabelLineDashType?n.indexLabelLineDashType:g.indexLabelLineDashType,o.indexLabelFontColor=n.indexLabelFontColor?n.indexLabelFontColor:g.indexLabelFontColor,o.indexLabelFontStyle=n.indexLabelFontStyle?n.indexLabelFontStyle:g.indexLabelFontStyle,o.indexLabelFontWeight=n.indexLabelFontWeight?n.indexLabelFontWeight:g.indexLabelFontWeight,o.indexLabelFontSize=n.indexLabelFontSize?n.indexLabelFontSize:g.indexLabelFontSize,o.indexLabelFontFamily=n.indexLabelFontFamily?n.indexLabelFontFamily:g.indexLabelFontFamily,o.indexLabelBackgroundColor=n.indexLabelBackgroundColor?n.indexLabelBackgroundColor:g.indexLabelBackgroundColor?g.indexLabelBackgroundColor:null,o.indexLabelMaxWidth=n.indexLabelMaxWidth?n.indexLabelMaxWidth:g.indexLabelMaxWidth?g.indexLabelMaxWidth:.33*f.width,o.indexLabelWrap="undefined"!=typeof n.indexLabelWrap?n.indexLabelWrap:g.indexLabelWrap,o.startAngle=0===B?g.startAngle?g.startAngle/180*Math.PI:0:P[B-1].endAngle,o.startAngle=(o.startAngle+2*Math.PI)%(2*Math.PI),o.endAngle=o.startAngle+2*Math.PI/I*Math.abs(n.y);var d=(o.endAngle+o.startAngle)/2;d=(d+2*Math.PI)%(2*Math.PI),o.midAngle=d,o.midAngle>Math.PI/2-S&&o.midAngle<Math.PI/2+S?((0===t||P[i].midAngle>o.midAngle)&&(i=B),t++):o.midAngle>3*Math.PI/2-S&&o.midAngle<3*Math.PI/2+S&&((0===e||P[a].midAngle>o.midAngle)&&(a=B),e++),d>Math.PI/2&&d<=3*Math.PI/2?o.hemisphere="left":o.hemisphere="right",o.indexLabelTextBlock=new L(x.plotArea.ctx,{fontSize:o.indexLabelFontSize,fontFamily:o.indexLabelFontFamily,fontColor:o.indexLabelFontColor,fontStyle:o.indexLabelFontStyle,fontWeight:o.indexLabelFontWeight,horizontalAlign:"left",backgroundColor:o.indexLabelBackgroundColor,maxWidth:o.indexLabelMaxWidth,maxHeight:o.indexLabelWrap?5*o.indexLabelFontSize:1.5*o.indexLabelFontSize,text:o.indexLabelText,padding:0,textBaseline:"top"}),o.indexLabelTextBlock.measureText()}var c=0,p=0,m=!1;for(B=0;B<y.length;B++){var o=P[(i+B)%y.length];t>1&&o.midAngle>Math.PI/2-S&&o.midAngle<Math.PI/2+S&&(c<=t/2&&!m?(o.hemisphere="right",c++):(o.hemisphere="left",m=!0))}for(m=!1,B=0;B<y.length;B++){var o=P[(a+B)%y.length];e>1&&o.midAngle>3*Math.PI/2-S&&o.midAngle<3*Math.PI/2+S&&(p<=e/2&&!m?(o.hemisphere="left",p++):(o.hemisphere="right",m=!0))}}}function i(){var t=x.plotArea.ctx;t.fillStyle="black",t.strokeStyle="grey";t.textBaseline="middle",t.lineJoin="round";var e=0;for(e=0;e<y.length;e++){var i=P[e];if(i.indexLabelText){i.indexLabelTextBlock.y-=i.indexLabelTextBlock.height/2;var a=0;if("left"===i.hemisphere)var a="inside"!==g.indexLabelPlacement?-(i.indexLabelTextBlock.width+v):-i.indexLabelTextBlock.width/2;else var a="inside"!==g.indexLabelPlacement?v:-i.indexLabelTextBlock.width/2;if(i.indexLabelTextBlock.x+=a,i.indexLabelTextBlock.render(!0),i.indexLabelTextBlock.x-=a,i.indexLabelTextBlock.y+=i.indexLabelTextBlock.height/2,"inside"!==i.indexLabelPlacement){var n=i.center.x+_*Math.cos(i.midAngle),s=i.center.y+_*Math.sin(i.midAngle);t.strokeStyle=i.indexLabelLineColor,t.lineWidth=i.indexLabelLineThickness,t.setLineDash&&t.setLineDash(u(i.indexLabelLineDashType,i.indexLabelLineThickness)),t.beginPath(),t.moveTo(n,s),t.lineTo(i.indexLabelTextBlock.x,i.indexLabelTextBlock.y),t.lineTo(i.indexLabelTextBlock.x+("left"===i.hemisphere?-v:v),i.indexLabelTextBlock.y),t.stroke()}t.lineJoin="miter"}}}function a(t){var e=x.plotArea.ctx;e.clearRect(f.x1,f.y1,f.width,f.height),e.fillStyle=x.backgroundColor,e.fillRect(f.x1,f.y1,f.width,f.height);for(var i=P[0].startAngle+2*Math.PI*t,a=0;a<y.length;a++){var n=0===a?P[a].startAngle:s,s=n+(P[a].endAngle-P[a].startAngle),o=!1;s>i&&(s=i,o=!0);var r=y[a].color?y[a].color:g._colorSet[a%g._colorSet.length];if(s>n&&ot(x.plotArea.ctx,P[a].center,P[a].radius,r,g.type,n,s,g.fillOpacity),o)break}}function n(t){var e=x.plotArea.ctx;e.clearRect(f.x1,f.y1,f.width,f.height),e.fillStyle=x.backgroundColor,e.fillRect(f.x1,f.y1,f.width,f.height);for(var a=0;a<y.length;a++){var n=P[a].startAngle,s=P[a].endAngle;if(s>n){var o=.07*_*Math.cos(P[a].midAngle),r=.07*_*Math.sin(P[a].midAngle),l=!1;if(y[a].exploded?(Math.abs(P[a].center.x-(A.x+o))>1e-9||Math.abs(P[a].center.y-(A.y+r))>1e-9)&&(P[a].center.x=A.x+o*t,P[a].center.y=A.y+r*t,l=!0):(Math.abs(P[a].center.x-A.x)>0||Math.abs(P[a].center.y-A.y)>0)&&(P[a].center.x=A.x+o*(1-t),P[a].center.y=A.y+r*(1-t),l=!0),l){var h={};h.dataSeries=g,h.dataPoint=g.dataPoints[a],h.index=a,x._toolTip.highlightObjects([h])}var d=y[a].color?y[a].color:g._colorSet[a%g._colorSet.length];ot(x.plotArea.ctx,P[a].center,P[a].radius,d,g.type,n,s,g.fillOpacity)}}i()}function s(t,e){var i={x1:t.indexLabelTextBlock.x,y1:t.indexLabelTextBlock.y-t.indexLabelTextBlock.height/2,x2:t.indexLabelTextBlock.x+t.indexLabelTextBlock.width,y2:t.indexLabelTextBlock.y+t.indexLabelTextBlock.height/2},a={x1:e.indexLabelTextBlock.x,y1:e.indexLabelTextBlock.y-e.indexLabelTextBlock.height/2,x2:e.indexLabelTextBlock.x+e.indexLabelTextBlock.width,y2:e.indexLabelTextBlock.y+e.indexLabelTextBlock.height/2};return!(i.x2<a.x1-v||i.x1>a.x2+v||i.y1>a.y2+v||i.y2<a.y1-v)}function o(t,e){var i=0,a={y:t.indexLabelTextBlock.y,y1:t.indexLabelTextBlock.y-t.indexLabelTextBlock.height/2,y2:t.indexLabelTextBlock.y+t.indexLabelTextBlock.height/2},n={y:e.indexLabelTextBlock.y,y1:e.indexLabelTextBlock.y-e.indexLabelTextBlock.height/2,y2:e.indexLabelTextBlock.y+e.indexLabelTextBlock.height/2};return i=n.y>a.y?n.y1-a.y2:a.y1-n.y2}function r(t){for(var e=null,i=1;i<y.length;i++){if(e=(t+i+P.length)%P.length,P[e].hemisphere!==P[t].hemisphere){e=null;break}if(P[e].indexLabelText&&e!==t&&(o(P[e],P[t])<0||("right"===P[t].hemisphere?P[e].indexLabelTextBlock.y>=P[t].indexLabelTextBlock.y:P[e].indexLabelTextBlock.y<=P[t].indexLabelTextBlock.y)))break;e=null}return e}function l(t){for(var e=null,i=1;i<y.length;i++){if(e=(t-i+P.length)%P.length,P[e].hemisphere!==P[t].hemisphere){e=null;break}if(P[e].indexLabelText&&P[e].hemisphere===P[t].hemisphere&&e!==t&&(o(P[e],P[t])<0||("right"===P[t].hemisphere?P[e].indexLabelTextBlock.y<=P[t].indexLabelTextBlock.y:P[e].indexLabelTextBlock.y>=P[t].indexLabelTextBlock.y)))break;e=null}return e}function h(t,e){e=e||0;var i=0,a=A.y-1*w,n=A.y+1*w;if(t>=0&&t<y.length){var s=P[t];if(e<0&&s.indexLabelTextBlock.y<a||e>0&&s.indexLabelTextBlock.y>n)return 0;var o=e,d=0,c=0,x=0,p=0,m=0;o<0?s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2>a&&s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2+o<a&&(o=-(a-(s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2+o))):s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2<a&&s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2+o>n&&(o=s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2+o-n);var u=s.indexLabelTextBlock.y+o,g=0;g="right"===s.hemisphere?A.x+Math.sqrt(Math.pow(w,2)-Math.pow(u-A.y,2)):A.x-Math.sqrt(Math.pow(w,2)-Math.pow(u-A.y,2)),c=A.x+_*Math.cos(s.midAngle),x=A.y+_*Math.sin(s.midAngle),d=Math.sqrt(Math.pow(g-c,2)+Math.pow(u-x,2)),m=Math.acos(_/w),p=Math.acos((w*w+_*_-d*d)/(2*_*w)),o=p<m?u-s.indexLabelTextBlock.y:0;var v,b,f=l(t),k=r(t),L=0,I=0;if(o<0){if(v="right"===s.hemisphere?f:k,i=o,null!==v){var B=-o,b=s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2-(P[v].indexLabelTextBlock.y+P[v].indexLabelTextBlock.height/2);b-B<M&&(L=-B,T++,I=h(v,L),+I.toFixed(C)>+L.toFixed(C)&&(i=b>M?-(b-M):-(B-(I-L))))}}else if(o>0&&(v="right"===s.hemisphere?k:f,i=o,null!==v)){var B=o,b=P[v].indexLabelTextBlock.y-P[v].indexLabelTextBlock.height/2-(s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2);b-B<M&&(L=B,T++,I=h(v,L),+I.toFixed(C)<+L.toFixed(C)&&(i=b>M?b-M:B-(L-I)))}if(i){var F=s.indexLabelTextBlock.y+i,X=0;if(X="right"===s.hemisphere?A.x+Math.sqrt(Math.pow(w,2)-Math.pow(F-A.y,2)):A.x-Math.sqrt(Math.pow(w,2)-Math.pow(F-A.y,2)),s.midAngle>Math.PI/2-S&&s.midAngle<Math.PI/2+S){var z=(t-1+P.length)%P.length,D=P[z],Y=P[(t+1+P.length)%P.length];"left"===s.hemisphere&&"right"===D.hemisphere&&X>D.indexLabelTextBlock.x?X=D.indexLabelTextBlock.x-15:"right"===s.hemisphere&&"left"===Y.hemisphere&&X<Y.indexLabelTextBlock.x&&(X=Y.indexLabelTextBlock.x+15)}else if(s.midAngle>3*Math.PI/2-S&&s.midAngle<3*Math.PI/2+S){var z=(t-1+P.length)%P.length,D=P[z],Y=P[(t+1+P.length)%P.length];"right"===s.hemisphere&&"left"===D.hemisphere&&X<D.indexLabelTextBlock.x?X=D.indexLabelTextBlock.x+15:"left"===s.hemisphere&&"right"===Y.hemisphere&&X>Y.indexLabelTextBlock.x&&(X=Y.indexLabelTextBlock.x-15)}s.indexLabelTextBlock.y=F,s.indexLabelTextBlock.x=X,s.indexLabelAngle=Math.atan2(s.indexLabelTextBlock.y-A.y,s.indexLabelTextBlock.x-A.x)}}return i}function d(){function t(t,e,i){for(var a=[],n=0,s=e;!0&&(a.push(P[s]),s!==i);s=(s+1+y.length)%y.length);for(a.sort(function(t,e){return t.y-e.y}),s=0;s<a.length;s++){var o=a[s];if(!(n<t))break;n+=o.indexLabelTextBlock.height,o.indexLabelTextBlock.text="",o.indexLabelText="",o.indexLabelTextBlock.measureText()}}var e=x.plotArea.ctx;e.fillStyle="grey",e.strokeStyle="grey";var i=16;e.font=i+"px Arial",e.textBaseline="middle";var a=0,n=0,l=0;for(n=0;n<10&&(n<1||l>0);n++){if(_-=l,l=0,"inside"!==g.indexLabelPlacement){for(w=_*k,a=0;a<y.length;a++){var d=P[a];d.indexLabelTextBlock.x=A.x+w*Math.cos(d.midAngle),d.indexLabelTextBlock.y=A.y+w*Math.sin(d.midAngle),d.indexLabelAngle=d.midAngle,d.radius=_}var c,p;for(a=0;a<y.length;a++){var d=P[a],m=r(a);if(null!==m){c=P[a],p=P[m];var u=0;if(u=o(c,p)-M,u<0){for(var b=0,T=0,S=0;S<y.length;S++)S!==a&&P[S].hemisphere===d.hemisphere&&(P[S].indexLabelTextBlock.y<d.indexLabelTextBlock.y?b++:T++);var L=u/(b+T||1)*T,I=-1*(u-L),B=0,F=0;"right"===d.hemisphere?(B=h(a,L),I=-1*(u-B),F=h(m,I),+F.toFixed(C)<+I.toFixed(C)&&+B.toFixed(C)<=+L.toFixed(C)&&h(a,-(I-F))):(B=h(m,L),I=-1*(u-B),F=h(a,I),+F.toFixed(C)<+I.toFixed(C)&&+B.toFixed(C)<=+L.toFixed(C)&&h(m,-(I-F)))}}}}else for(a=0;a<y.length;a++){var d=P[a];w="pie"===g.type?.7*_:.8*_;var X=A.x+w*Math.cos(d.midAngle),z=A.y+w*Math.sin(d.midAngle);d.indexLabelTextBlock.x=X,d.indexLabelTextBlock.y=z}for(a=0;a<y.length;a++){d=P[a];var D=d.indexLabelTextBlock.measureText();if(0!==D.height&&0!==D.width){var Y=0,W=0;"right"===d.hemisphere?(Y=f.x2-(d.indexLabelTextBlock.x+d.indexLabelTextBlock.width+v),Y*=-1):Y=f.x1-(d.indexLabelTextBlock.x-d.indexLabelTextBlock.width-v),Y>0&&(Math.abs(d.indexLabelTextBlock.y-d.indexLabelTextBlock.height/2-A.y)<_||Math.abs(d.indexLabelTextBlock.y+d.indexLabelTextBlock.height/2-A.y)<_)&&(W=Y/Math.abs(Math.cos(d.indexLabelAngle)),W>9&&(W*=.3),W>l&&(l=W));var E=0,O=0;d.indexLabelAngle>0&&d.indexLabelAngle<Math.PI?(E=f.y2-(d.indexLabelTextBlock.y+d.indexLabelTextBlock.height/2+5),E*=-1):E=f.y1-(d.indexLabelTextBlock.y-d.indexLabelTextBlock.height/2-5),E>0&&Math.abs(d.indexLabelTextBlock.x-A.x)<_&&(O=E/Math.abs(Math.sin(d.indexLabelAngle)),O>9&&(O*=.3),O>l&&(l=O))}}for(var V=-1,U=-1,R=0,S=0;S<y.length;S++)if(c=P[S],c.indexLabelText){var H=r(S);if(null!==H){var p=P[H];u=0,u=o(c,p),u<0&&s(c,p)?(V<0&&(V=S),H!==V&&(U=H),R+=-u):R>0&&(t(R,V,U),V=-1,U=-1,R=0)}}R>0&&t(R,V,U)}}function c(){if(x.plotArea.layoutManager.reset(),x._title&&(x._title.dockInsidePlotArea||"center"===x._title.horizontalAlign&&"center"===x._title.verticalAlign)&&x._title.render(),x.subtitles)for(var t=0;t<x.subtitles.length;t++){var e=x.subtitles[t];(e.dockInsidePlotArea||"center"===e.horizontalAlign&&"center"===e.verticalAlign)&&e.render()}x.legend&&(x.legend.dockInsidePlotArea||"center"===x.legend.horizontalAlign&&"center"===x.legend.verticalAlign)&&x.legend.render()}var x=this,p=t.dataSeriesIndexes.length;if(!(p<=0)){for(var m=t.dataSeriesIndexes[0],g=this.data[m],y=g.dataPoints,v=10,b=500,f=this.plotArea,T=0,P=[],M=2,k=1.3,S=20/180*Math.PI,C=6,A={x:(f.x2+f.x1)/2,y:(f.y2+f.y1)/2},_="inside"===g.indexLabelPlacement?.92*Math.min(f.width,f.height)/2:.8*Math.min(f.width,f.height)/2,w=_*k,I=0,B=0;B<y.length;B++)I+=Math.abs(y[B].y);0!==I&&(this.pieDoughnutClickHandler=function(t){if(!x.isAnimating){var e=t.dataPointIndex,i=t.dataPoint,a=this;a.dataPointIds[e];t.chart.options.plotOptions.series.events.click(t),i.exploded?i.exploded=!1:i.exploded=!0,a.dataPoints.length>1&&x._animator.animate(0,b,function(t){n(t),c()})}},e(),d(),this.disableToolTip=!0,this._animator.animate(0,this.animatedRender?this.animationDuration:0,function(t){a(t),c()},function(){x.disableToolTip=!1,x._animator.animate(0,x.animatedRender?b:0,function(t){n(t),c()})}))}},A.prototype.animationRequestId=null,A.prototype.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),A.prototype.cancelRequestAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),w.prototype.registerSpace=function(t,e){"top"===t?this._topOccupied+=e.height:"bottom"===t?this._bottomOccupied+=e.height:"left"===t?this._leftOccupied+=e.width:"right"===t&&(this._rightOccupied+=e.width)},w.prototype.unRegisterSpace=function(t,e){"top"===t?this._topOccupied-=e.height:"bottom"===t?this._bottomOccupied-=e.height:"left"===t?this._leftOccupied-=e.width:"right"===t&&(this._rightOccupied-=e.width)},w.prototype.getFreeSpace=function(){return{x1:this._x1+this._leftOccupied,y1:this._y1+this._topOccupied,x2:this._x2-this._rightOccupied,y2:this._y2-this._bottomOccupied,width:this._x2-this._x1-this._rightOccupied-this._leftOccupied,height:this._y2-this._y1-this._bottomOccupied-this._topOccupied}},w.prototype.reset=function(){this._topOccupied=this._padding,this._bottomOccupied=this._padding,this._leftOccupied=this._padding,this._rightOccupied=this._padding},t(L,C),L.prototype.render=function(t){t&&this.ctx.save();var e=this.ctx.font;this.ctx.textBaseline=this.textBaseline;var i=0;this._isDirty&&this.measureText(this.ctx),this.ctx.translate(this.x,this.y+i),"middle"===this.textBaseline&&(i=-this._lineHeight/2),this.ctx.font=this._getFontString(),this.ctx.rotate(Math.PI/180*this.angle);var a=0,n=this.padding,s=null;(this.borderThickness>0&&this.borderColor||this.backgroundColor)&&this.ctx.roundRect(0,i,this.width,this.height,this.cornerRadius,this.borderThickness,this.backgroundColor,this.borderColor),this.ctx.fillStyle=this.fontColor;for(var o=0;o<this._wrappedText.lines.length;o++)s=this._wrappedText.lines[o],"right"===this.horizontalAlign?a=this.width-s.width-this.padding:"left"===this.horizontalAlign?a=this.padding:"center"===this.horizontalAlign&&(a=(this.width-2*this.padding)/2-s.width/2+this.padding),this.ctx.fillText(s.text,a,n),n+=s.height;this.ctx.font=e,t&&this.ctx.restore()},L.prototype.setText=function(t){this.text=t,this._isDirty=!0,this._wrappedText=null},L.prototype.measureText=function(){if(null===this.maxWidth)throw"Please set maxWidth and height for TextBlock";return this._wrapText(this.ctx),this._isDirty=!1,{width:this.width,height:this.height}},L.prototype._getLineWithWidth=function(t,e,i){if(t=String(t),i=i||!1,!t)return{text:"",width:0};var a=0,n=0,s=t.length-1,o=1/0;for(this.ctx.font=this._getFontString();n<=s;){o=Math.floor((n+s)/2);var r=t.substr(0,o+1);if(a=this.ctx.measureText(r).width,a<e)n=o+1;else{if(!(a>e))break;s=o-1}}a>e&&r.length>1&&(r=r.substr(0,r.length-1),a=this.ctx.measureText(r).width);var l=!0;if(r.length!==t.length&&" "!==t[r.length]||(l=!1),l){var h=r.split(" ");h.length>1&&h.pop(),r=h.join(" "),a=this.ctx.measureText(r).width}return{text:r,width:a}},L.prototype._wrapText=function(){var t=new String(o(String(this.text))),e=[],i=this.ctx.font,a=0,n=0;for(this.ctx.font=this._getFontString();t.length>0;){var s=this.maxWidth-2*this.padding,r=this.maxHeight-2*this.padding,l=this._getLineWithWidth(t,s,!1);if(l.height=this._lineHeight,e.push(l),n=Math.max(n,l.width),a+=l.height,t=o(t.slice(l.text.length,t.length)),r&&a>r){var l=e.pop();a-=l.height}}this._wrappedText={lines:e,width:n,height:a},this.width=n+2*this.padding,this.height=a+2*this.padding,this.ctx.font=i},L.prototype._getFontString=function(){return v("",this,null)},t(I,C),I.prototype.render=function(){if(this.text){var t,e,i=this.dockInsidePlotArea?this.chart.plotArea:this.chart,a=i.layoutManager.getFreeSpace(),n=a.x1,s=a.y1,o=0,r=0,l=2,h=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0;"top"===this.verticalAlign||"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=a.width-2*l-h*("center"===this.horizontalAlign?2:1)),r=.5*a.height-this.margin-l,o=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=a.height-2*l),r=.5*a.width-this.margin-l):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=a.width-2*l),r=.5*a.height-2*l)),this.wrap||(r=Math.min(r,Math.max(1.5*this.fontSize,this.fontSize+2.5*this.padding)));var d=new L(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:r,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"}),c=d.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(s=a.y1+l,e="top"):"bottom"===this.verticalAlign&&(s=a.y2-l-c.height,e="bottom"),"left"===this.horizontalAlign?n=a.x1+l:"center"===this.horizontalAlign?n=a.x1+a.width/2-c.width/2:"right"===this.horizontalAlign&&(n=a.x2-l-c.width-h),t=this.horizontalAlign,this.width=c.width,this.height=c.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(n=a.x1+l,s=a.y2-l-(this.maxWidth/2-c.width/2),o=-90,e="left",this.width=c.height,this.height=c.width):"right"===this.horizontalAlign?(n=a.x2-l,s=a.y1+l+(this.maxWidth/2-c.width/2),o=90,e="right",this.width=c.height,this.height=c.width):"center"===this.horizontalAlign&&(s=i.y1+(i.height/2-c.height/2),n=i.x1+(i.width/2-c.width/2),e="center",this.width=c.width,this.height=c.height),t="center"),d.x=n,d.y=s,d.angle=o,d.horizontalAlign=t,d.render(!0),i.layoutManager.registerSpace(e,{width:this.width+("left"===e||"right"===e?this.margin+l:0),height:this.height+("top"===e||"bottom"===e?this.margin+l:0)}),this.bounds={x1:n,y1:s,x2:n+this.width,y2:s+this.height},this.ctx.textBaseline="top"}},t(B,C),B.prototype.render=I.prototype.render,t(F,C),F.prototype.render=function(){var t=this.dockInsidePlotArea?this.chart.plotArea:this.chart,e=t.layoutManager.getFreeSpace(),i=null,a=0,n=0,s=0,o=0,r=[],l=[];"top"===this.verticalAlign||"bottom"===this.verticalAlign?(this.orientation="horizontal",i=this.verticalAlign,s=null!==this.maxWidth?this.maxWidth:.7*e.width,o=null!==this.maxHeight?this.maxHeight:.5*e.height):"center"===this.verticalAlign&&(this.orientation="vertical",i=this.horizontalAlign,s=null!==this.maxWidth?this.maxWidth:.5*e.width,o=null!==this.maxHeight?this.maxHeight:.7*e.height);for(var h=0;h<this.dataSeries.length;h++){var c=this.dataSeries[h];if("pie"!==c.type&&"doughnut"!==c.type&&"funnel"!==c.type){var x=c.legendMarkerType?c.legendMarkerType:"line"!==c.type&&"stepLine"!==c.type&&"spline"!==c.type&&"scatter"!==c.type&&"bubble"!==c.type||!c.markerType?z.getDefaultLegendMarker(c.type):c.markerType,p=c.legendText?c.legendText:this.itemTextFormatter?this.itemTextFormatter({chart:this.chart,legend:this._options,dataSeries:c,dataPoint:null}):c.name,m=c.legendMarkerColor?c.legendMarkerColor:c.markerColor?c.markerColor:c._colorSet[0],u=c.markerSize||"line"!==c.type&&"stepLine"!==c.type&&"spline"!==c.type?.6*this.lineHeight:0,g=c.legendMarkerBorderColor?c.legendMarkerBorderColor:c.markerBorderColor,y=c.legendMarkerBorderThickness?c.legendMarkerBorderThickness:c.markerBorderThickness?Math.max(1,Math.round(.2*u)):0;c._colorSet[0];p=this.chart.replaceKeywordsWithValue(p,c.dataPoints[0],c,h);var v={markerType:x,markerColor:m,text:p,textBlock:null,chartType:c.type,markerSize:u,lineColor:c._colorSet[0],dataSeriesIndex:c.index,dataPointIndex:null,markerBorderColor:g,markerBorderThickness:y};r.push(v)}else for(var b=0;b<c.dataPoints.length;b++){var f=c.dataPoints[b],x=f.legendMarkerType?f.legendMarkerType:c.legendMarkerType?c.legendMarkerType:z.getDefaultLegendMarker(c.type),p=f.legendText?f.legendText:c.legendText?c.legendText:this.itemTextFormatter?this.itemTextFormatter({chart:this.chart,legend:this._options,dataSeries:c,dataPoint:f}):f.name?f.name:"DataPoint: "+(b+1),m=f.legendMarkerColor?f.legendMarkerColor:c.legendMarkerColor?c.legendMarkerColor:f.color?f.color:c.color?c.color:c._colorSet[b%c._colorSet.length],u=.6*this.lineHeight,g=f.legendMarkerBorderColor?f.legendMarkerBorderColor:c.legendMarkerBorderColor?c.legendMarkerBorderColor:f.markerBorderColor?f.markerBorderColor:c.markerBorderColor,y=f.legendMarkerBorderThickness?f.legendMarkerBorderThickness:c.legendMarkerBorderThickness?c.legendMarkerBorderThickness:f.markerBorderThickness||c.markerBorderThickness?Math.max(1,Math.round(.2*u)):0;p=this.chart.replaceKeywordsWithValue(p,f,c,b);var v={markerType:x,markerColor:m,text:p,textBlock:null,chartType:c.type,markerSize:u,dataSeriesIndex:h,dataPointIndex:b,markerBorderColor:g,markerBorderThickness:y};(f.showInLegend||c.showInLegend&&f.showInLegend!==!1)&&r.push(v)}v=null}if(this.reversed===!0&&r.reverse(),r.length>0){var T=null,P=0,M=0,k=0;M=null!==this.itemWidth?null!==this.itemMaxWidth?Math.min(this.itemWidth,this.itemMaxWidth,s):Math.min(this.itemWidth,s):null!==this.itemMaxWidth?Math.min(this.itemMaxWidth,s):s,u=0===u?.6*this.lineHeight:u,M-=u+.1*this.horizontalSpacing;for(var h=0;h<r.length;h++){var v=r[h];"line"!==v.chartType&&"spline"!==v.chartType&&"stepLine"!==v.chartType||(M-=2*(.1*this.lineHeight)),o<=0||"undefined"==typeof o||M<=0||"undefined"==typeof M||("horizontal"===this.orientation?(v.textBlock=new L(this.ctx,{x:0,y:0,maxWidth:M,maxHeight:this.itemWrap?o:this.lineHeight,angle:0,text:v.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"top"}),v.textBlock.measureText(),null!==this.itemWidth&&(v.textBlock.width=this.itemWidth-(u+.1*this.horizontalSpacing+("line"===v.chartType||"spline"===v.chartType||"stepLine"===v.chartType?2*(.1*this.lineHeight):0))),(!T||T.width+Math.round(v.textBlock.width+.1*this.horizontalSpacing+u+(0===T.width?0:this.horizontalSpacing)+("line"===v.chartType||"spline"===v.chartType||"stepLine"===v.chartType?2*(.1*this.lineHeight):0))>s)&&(T={items:[],width:0},l.push(T),this.height+=k,k=0),k=Math.max(k,v.textBlock.height),v.textBlock.x=T.width,v.textBlock.y=0,T.width+=Math.round(v.textBlock.width+.1*this.horizontalSpacing+u+(0===T.width?0:this.horizontalSpacing)+("line"===v.chartType||"spline"===v.chartType||"stepLine"===v.chartType?2*(.1*this.lineHeight):0)),T.items.push(v),this.width=Math.max(T.width,this.width)):(v.textBlock=new L(this.ctx,{x:0,y:0,maxWidth:M,maxHeight:this.itemWrap===!0?o:1.5*this.fontSize,angle:0,text:v.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"top"}),v.textBlock.measureText(),null!==this.itemWidth&&(v.textBlock.width=this.itemWidth-(u+.1*this.horizontalSpacing+("line"===v.chartType||"spline"===v.chartType||"stepLine"===v.chartType?2*(.1*this.lineHeight):0))),this.height<=o?(T={items:[],width:0},l.push(T)):(T=l[P],P=(P+1)%l.length),this.height+=v.textBlock.height,v.textBlock.x=T.width,v.textBlock.y=0,T.width+=Math.round(v.textBlock.width+.1*this.horizontalSpacing+u+(0===T.width?0:this.horizontalSpacing)+("line"===v.chartType||"spline"===v.chartType||"stepLine"===v.chartType?2*(.1*this.lineHeight):0)),T.items.push(v),this.width=Math.max(T.width,this.width)))}this.itemWrap===!1?this.height=l.length*this.lineHeight:this.height+=k,this.height=Math.min(o,this.height),this.width=Math.min(s,this.width)}"top"===this.verticalAlign?(n="left"===this.horizontalAlign?e.x1:"right"===this.horizontalAlign?e.x2-this.width:e.x1+e.width/2-this.width/2,a=e.y1):"center"===this.verticalAlign?(n="left"===this.horizontalAlign?e.x1:"right"===this.horizontalAlign?e.x2-this.width:e.x1+e.width/2-this.width/2,a=e.y1+e.height/2-this.height/2):"bottom"===this.verticalAlign&&(n="left"===this.horizontalAlign?e.x1:"right"===this.horizontalAlign?e.x2-this.width:e.x1+e.width/2-this.width/2,a=e.y2-this.height),this.items=r;for(var h=0;h<this.items.length;h++){var v=r[h];v.id=++this.chart._eventManager.lastObjectId,this.chart._eventManager.objectMap[v.id]={id:v.id,objectType:"legendItem",legendItemIndex:h,dataSeriesIndex:v.dataSeriesIndex,dataPointIndex:v.dataPointIndex}}for(var S=0,h=0;h<l.length;h++){for(var T=l[h],k=0,C=0;C<T.items.length;C++){var v=T.items[C],A=v.textBlock.x+n+(0===C?.2*u:this.horizontalSpacing),_=a+S,w=A;this.chart.data[v.dataSeriesIndex].visible||(this.ctx.globalAlpha=.5),this.ctx.save(),this.ctx.rect(n,a,s,o),this.ctx.clip(),"line"!==v.chartType&&"stepLine"!==v.chartType&&"spline"!==v.chartType||(this.ctx.strokeStyle=v.lineColor,this.ctx.lineWidth=Math.ceil(this.lineHeight/8),this.ctx.beginPath(),this.ctx.moveTo(A-.1*this.lineHeight,_+this.lineHeight/2),this.ctx.lineTo(A+.7*this.lineHeight,_+this.lineHeight/2),this.ctx.stroke(),w-=.1*this.lineHeight),lt.drawMarker(A+u/2,_+this.lineHeight/2,this.ctx,v.markerType,v.markerSize,v.markerColor,v.markerBorderColor,v.markerBorderThickness),v.textBlock.x=A+.1*this.horizontalSpacing+u,"line"!==v.chartType&&"stepLine"!==v.chartType&&"spline"!==v.chartType||(v.textBlock.x=v.textBlock.x+.1*this.lineHeight),v.textBlock.y=_,v.textBlock.render(!0),this.ctx.restore(),k=C>0?Math.max(k,v.textBlock.height):v.textBlock.height,this.chart.data[v.dataSeriesIndex].visible||(this.ctx.globalAlpha=1);var I=d(v.id);this.ghostCtx.fillStyle=I,this.ghostCtx.beginPath(),this.ghostCtx.fillRect(w,v.textBlock.y,v.textBlock.x+v.textBlock.width-w,v.textBlock.height),v.x1=this.chart._eventManager.objectMap[v.id].x1=w,v.y1=this.chart._eventManager.objectMap[v.id].y1=v.textBlock.y,v.x2=this.chart._eventManager.objectMap[v.id].x2=v.textBlock.x+v.textBlock.width,v.y2=this.chart._eventManager.objectMap[v.id].y2=v.textBlock.y+v.textBlock.height}S+=k}t.layoutManager.registerSpace(i,{width:this.width+2+2,height:this.height+5+5}),this.bounds={x1:n,y1:a,x2:n+this.width,y2:a+this.height}},t(X,C),X.prototype.render=function(){var t=this.chart.layoutManager.getFreeSpace();this.ctx.fillStyle="red",this.ctx.fillRect(t.x1,t.y1,t.x2,t.y2)},t(z,C),z.prototype.getDefaultAxisPlacement=function(){var t=this.type;return"column"===t||"line"===t||"stepLine"===t||"spline"===t||"area"===t||"stepArea"===t||"splineArea"===t||"stackedColumn"===t||"stackedLine"===t||"bubble"===t||"scatter"===t||"stackedArea"===t||"stackedColumn100"===t||"stackedLine100"===t||"stackedArea100"===t||"candlestick"===t||"ohlc"===t||"rangeColumn"===t||"rangeArea"===t||"rangeSplineArea"===t?"normal":"bar"===t||"stackedBar"===t||"stackedBar100"===t||"rangeBar"===t?"xySwapped":"pie"===t||"doughnut"===t||"funnel"===t?"none":null},z.getDefaultLegendMarker=function(t){return"column"===t||"stackedColumn"===t||"stackedLine"===t||"bar"===t||"stackedBar"===t||"stackedBar100"===t||"bubble"===t||"scatter"===t||"stackedColumn100"===t||"stackedLine100"===t||"stepArea"===t||"candlestick"===t||"ohlc"===t||"rangeColumn"===t||"rangeBar"===t||"rangeArea"===t||"rangeSplineArea"===t?"square":"line"===t||"stepLine"===t||"spline"===t||"pie"===t||"doughnut"===t||"funnel"===t?"circle":"area"===t||"splineArea"===t||"stackedArea"===t||"stackedArea100"===t?"triangle":null},z.prototype.getDataPointAtX=function(t,e){if(!this.dataPoints||0===this.dataPoints.length)return null;var i={dataPoint:null,distance:1/0,index:NaN},a=null,n=0,s=0,o=1,r=1/0,l=0,h=0,d=1e3,c=0;if("none"!==this.chart.plotInfo.axisPlacement){var x=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x;c=x>0?Math.min(Math.max((this.dataPoints.length-1)/x*(t-this.dataPoints[0].x)>>0,0),this.dataPoints.length):0}for(;;){if(s=o>0?c+n:c-n,s>=0&&s<this.dataPoints.length){a=this.dataPoints[s];var p=Math.abs(a.x-t);p<i.distance&&(i.dataPoint=a,i.distance=p,i.index=s);var m=Math.abs(a.x-t);if(m<=r?r=m:o>0?l++:h++,l>d&&h>d)break}else if(c-n<0&&c+n>=this.dataPoints.length)break;o===-1?(n++,o=1):o=-1}return e||i.dataPoint.x!==t?e&&null!==i.dataPoint?i:null:i},z.prototype.getDataPointAtXY=function(t,e,i){if(!this.dataPoints||0===this.dataPoints.length)return null;i=i||!1;var a=[],n=0,s=0,o=1,r=!1,l=1/0,h=0,d=0,c=1e3,x=0;if("none"!==this.chart.plotInfo.axisPlacement){var p=this.chart.axisX.getXValueAt({x:t,y:e}),m=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x;x=m>0?Math.min(Math.max((this.dataPoints.length-1)/m*(p-this.dataPoints[0].x)>>0,0),this.dataPoints.length):0}for(;;){if(s=o>0?x+n:x-n,s>=0&&s<this.dataPoints.length){var u=this.dataPointIds[s],g=this.chart._eventManager.objectMap[u],y=this.dataPoints[s],v=null;if(g){switch(this.type){case"column":case"stackedColumn":case"stackedColumn100":case"bar":case"stackedBar":case"stackedBar100":case"rangeColumn":case"rangeBar":t>=g.x1&&t<=g.x2&&e>=g.y1&&e<=g.y2&&(a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:Math.min(Math.abs(g.x1-t),Math.abs(g.x2-t),Math.abs(g.y1-e),Math.abs(g.y2-e))}),r=!0);break;case"line":case"stepLine":case"spline":case"area":case"stepArea":case"stackedArea":case"stackedArea100":case"splineArea":case"scatter":var f=b("markerSize",y,this)||4,T=i?20:f;v=Math.sqrt(Math.pow(g.x1-t,2)+Math.pow(g.y1-e,2)),v<=T&&a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:v});var P=Math.abs(g.x1-t);P<=l?l=P:o>0?h++:d++,v<=f/2&&(r=!0);break;case"rangeArea":case"rangeSplineArea":var f=b("markerSize",y,this)||4,T=i?20:f;v=Math.min(Math.sqrt(Math.pow(g.x1-t,2)+Math.pow(g.y1-e,2)),Math.sqrt(Math.pow(g.x1-t,2)+Math.pow(g.y2-e,2))),v<=T&&a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:v});var P=Math.abs(g.x1-t);P<=l?l=P:o>0?h++:d++,v<=f/2&&(r=!0);break;case"bubble":var f=g.size;v=Math.sqrt(Math.pow(g.x1-t,2)+Math.pow(g.y1-e,2)),v<=f/2&&(a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:v}),r=!0);break;case"pie":case"doughnut":var M=g.center,k="doughnut"===this.type?.6*g.radius:0;if(v=Math.sqrt(Math.pow(M.x-t,2)+Math.pow(M.y-e,2)),v<g.radius&&v>k){var S=e-M.y,C=t-M.x,A=Math.atan2(S,C);A<0&&(A+=2*Math.PI),A=Number(((A/Math.PI*180%360+360)%360).toFixed(12));var _=Number(((g.startAngle/Math.PI*180%360+360)%360).toFixed(12)),w=Number(((g.endAngle/Math.PI*180%360+360)%360).toFixed(12));
  6. 0===w&&g.endAngle>1&&(w=360),_>=w&&0!==y.y&&(w+=360,A<_&&(A+=360)),A>_&&A<w&&(a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:0}),r=!0)}break;case"candlestick":(t>=g.x1-g.borderThickness/2&&t<=g.x2+g.borderThickness/2&&e>=g.y2-g.borderThickness/2&&e<=g.y3+g.borderThickness/2||Math.abs(g.x2-t+g.x1-t)<g.borderThickness&&e>=g.y1&&e<=g.y4)&&(a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:Math.min(Math.abs(g.x1-t),Math.abs(g.x2-t),Math.abs(g.y2-e),Math.abs(g.y3-e))}),r=!0);break;case"ohlc":(Math.abs(g.x2-t+g.x1-t)<g.borderThickness&&e>=g.y2&&e<=g.y3||t>=g.x1&&t<=(g.x2+g.x1)/2&&e>=g.y1-g.borderThickness/2&&e<=g.y1+g.borderThickness/2||t>=(g.x1+g.x2)/2&&t<=g.x2&&e>=g.y4-g.borderThickness/2&&e<=g.y4+g.borderThickness/2)&&(a.push({dataPoint:y,dataPointIndex:s,dataSeries:this,distance:Math.min(Math.abs(g.x1-t),Math.abs(g.x2-t),Math.abs(g.y2-e),Math.abs(g.y3-e))}),r=!0)}if(r||h>c&&d>c)break}}else if(x-n<0&&x+n>=this.dataPoints.length)break;o===-1?(n++,o=1):o=-1}for(var L=null,I=0;I<a.length;I++)L?a[I].distance<=L.distance&&(L=a[I]):L=a[I];return L},z.prototype.getMarkerProperties=function(t,e,i,a){var n=this.dataPoints,s=this,o=n[t].markerColor?n[t].markerColor:s.markerColor?s.markerColor:n[t].color?n[t].color:s.color?s.color:s._colorSet[t%s._colorSet.length],r=n[t].markerBorderColor?n[t].markerBorderColor:s.markerBorderColor?s.markerBorderColor:null,l=n[t].markerBorderThickness?n[t].markerBorderThickness:s.markerBorderThickness?s.markerBorderThickness:null,h=n[t].markerType?n[t].markerType:s.markerType,d=n[t].markerSize?n[t].markerSize:s.markerSize;return{x:e,y:i,ctx:a,type:h,size:d,color:o,borderColor:r,borderThickness:l}},t(D,C),D.prototype.createLabels=function(){var t,e,i=0,n=0,s=0,o=0;if("bottom"===this._position||"top"===this._position?(o=this.lineCoordinates.width/Math.abs(this.maximum-this.minimum)*this.interval,n=this.labelAutoFit?"undefined"==typeof this._options.labelMaxWidth?.9*o>>0:this.labelMaxWidth:"undefined"==typeof this._options.labelMaxWidth?.7*this.chart.width>>0:this.labelMaxWidth,s="undefined"==typeof this._options.labelWrap||this.labelWrap?.5*this.chart.height>>0:1.5*this.labelFontSize):"left"!==this._position&&"right"!==this._position||(o=this.lineCoordinates.height/Math.abs(this.maximum-this.minimum)*this.interval,n=this.labelAutoFit?"undefined"==typeof this._options.labelMaxWidth?.3*this.chart.width>>0:this.labelMaxWidth:"undefined"==typeof this._options.labelMaxWidth?.5*this.chart.width>>0:this.labelMaxWidth,s="undefined"==typeof this._options.labelWrap||this.labelWrap?2*o>>0:1.5*this.labelFontSize),"axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType)for(e=a(new Date(this.maximum),this.interval,this.intervalType),i=this.intervalstartTimePercent;i<e;a(i,this.interval,this.intervalType)){var r=i.getTime(),l=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this._options,value:i,label:this.labels[i]?this.labels[i]:null}):"axisX"===this.type&&this.labels[r]?this.labels[r]:Q(i,this.valueFormatString,this.chart._cultureInfo);t=new L(this.ctx,{x:0,y:0,maxWidth:n,maxHeight:s,angle:this.labelAngle,text:this.prefix+l+this.suffix,horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:i.getTime(),textBlock:t,effectiveHeight:null})}else{if(e=this.maximum,this.labels&&this.labels.length){var h=Math.ceil(this.interval),d=Math.ceil(this.intervalstartTimePercent),c=!1;for(i=d;i<this.maximum;i+=h){if(!this.labels[i]){c=!1;break}c=!0}c&&(this.interval=h,this.intervalstartTimePercent=d)}for(i=this.intervalstartTimePercent;i<=e;i=parseFloat((i+this.interval).toFixed(14))){var l=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this._options,value:i,label:this.labels[i]?this.labels[i]:null}):"axisX"===this.type&&this.labels[i]?this.labels[i]:Z(i,this.valueFormatString,this.chart._cultureInfo);t=new L(this.ctx,{x:0,y:0,maxWidth:n,maxHeight:s,angle:this.labelAngle,text:this.prefix+l+this.suffix,horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:i,textBlock:t,effectiveHeight:null})}}for(var i=0;i<this.stripLines.length;i++){var x=this.stripLines[i];t=new L(this.ctx,{x:0,y:0,backgroundColor:x.labelBackgroundColor,maxWidth:n,maxHeight:s,angle:this.labelAngle,text:x.labelFormatter?x.labelFormatter({chart:this.chart,axis:this,stripLine:x}):x.label,horizontalAlign:"left",fontSize:x.labelFontSize,fontFamily:x.labelFontFamily,fontWeight:x.labelFontWeight,fontColor:x._options.labelFontColor||x.color,fontStyle:x.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:x.value,textBlock:t,effectiveHeight:null,stripLine:x})}},D.prototype.createLabelsAndCalculateWidth=function(){var t=0;if(this._labels=[],"left"===this._position||"right"===this._position)for(this.createLabels(),i=0;i<this._labels.length;i++){var e=this._labels[i].textBlock,a=e.measureText(),n=0;n=0===this.labelAngle?a.width:a.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+a.height/2*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),t<n&&(t=n),this._labels[i].effectiveWidth=n}var s=this.title?m(this.titleFontFamily,this.titleFontSize,this.titleFontWeight)+2:0,o=s+t+this.tickLength+5;return o},D.prototype.createLabelsAndCalculateHeight=function(){var t=0;this._labels=[];var e,i=0;if(this.createLabels(),"bottom"===this._position||"top"===this._position)for(i=0;i<this._labels.length;i++){e=this._labels[i].textBlock;var a=e.measureText(),n=0;n=0===this.labelAngle?a.height:a.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+a.height/2*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),t<n&&(t=n),this._labels[i].effectiveHeight=n}var s=this.title?m(this.titleFontFamily,this.titleFontSize,this.titleFontWeight)+2:0;return s+t+this.tickLength+5},D.setLayoutAndRender=function(t,e,i,a,n){var s,o,r,l,h=t.chart,d=h.ctx;if(t.calculateAxisParameters(),e&&e.calculateAxisParameters(),i&&i.calculateAxisParameters(),e&&i&&"undefined"==typeof e._options.maximum&&"undefined"==typeof e._options.minimum&&"undefined"==typeof e._options.interval&&"undefined"==typeof i._options.maximum&&"undefined"==typeof i._options.minimum&&"undefined"==typeof i._options.interval){var c=(e.maximum-e.minimum)/e.interval,x=(i.maximum-i.minimum)/i.interval;c>x?i.maximum=i.interval*c+i.minimum:x>c&&(e.maximum=e.interval*x+e.minimum)}var p=(e&&e.lineThickness?e.lineThickness:0,i&&i.lineThickness?i.lineThickness:0,e&&e.gridThickness?e.gridThickness:0,i&&i.gridThickness?i.gridThickness:0,e?e.margin:0);e?e.margin:0;if("normal"===a){t.lineCoordinates={};var m=Math.ceil(e?e.createLabelsAndCalculateWidth():0);s=Math.round(n.x1+m+p),t.lineCoordinates.x1=s;var u=Math.ceil(i?i.createLabelsAndCalculateWidth():0);r=Math.round(n.x2-u>t.chart.width-10?t.chart.width-10:n.x2-u),t.lineCoordinates.x2=r,t.lineCoordinates.width=Math.abs(r-s);var g=Math.ceil(t.createLabelsAndCalculateHeight());o=Math.round(n.y2-g-t.margin),l=Math.round(n.y2-t.margin),t.lineCoordinates.y1=o,t.lineCoordinates.y2=o,t.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:l-o},e&&(s=Math.round(n.x1+e.margin),o=Math.round(n.y1<10?10:n.y1),r=Math.round(n.x1+m+e.margin),l=Math.round(n.y2-g-t.margin),e.lineCoordinates={x1:r,y1:o,x2:r,y2:l,height:Math.abs(l-o)},e.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:l-o}),i&&(s=Math.round(t.lineCoordinates.x2),o=Math.round(n.y1<10?10:n.y1),r=Math.round(s+u+i.margin),l=Math.round(n.y2-g-t.margin),i.lineCoordinates={x1:s,y1:o,x2:s,y2:l,height:Math.abs(l-o)},i.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:l-o}),t.calculateValueToPixelconversionParameters(),e&&e.calculateValueToPixelconversionParameters(),i&&i.calculateValueToPixelconversionParameters(),d.save(),d.rect(5,t.boundingRect.y1,t.chart.width-10,t.boundingRect.height),d.clip(),t.renderLabelsTicksAndTitle(),d.restore(),e&&e.renderLabelsTicksAndTitle(),i&&i.renderLabelsTicksAndTitle(),h.preparePlotArea();var y=t.chart.plotArea;d.save(),d.rect(y.x1,y.y1,Math.abs(y.x2-y.x1),Math.abs(y.y2-y.y1)),d.clip(),t.renderStripLinesOfThicknessType("value"),e&&e.renderStripLinesOfThicknessType("value"),i&&i.renderStripLinesOfThicknessType("value"),t.renderInterlacedColors(),e&&e.renderInterlacedColors(),i&&i.renderInterlacedColors(),d.restore(),t.renderGrid(),e&&e.renderGrid(),i&&i.renderGrid(),t.renderAxisLine(),e&&e.renderAxisLine(),i&&i.renderAxisLine(),t.renderStripLinesOfThicknessType("pixel"),e&&e.renderStripLinesOfThicknessType("pixel"),i&&i.renderStripLinesOfThicknessType("pixel")}else{var v=Math.ceil(t.createLabelsAndCalculateWidth());e&&(e.lineCoordinates={},s=Math.round(n.x1+v+t.margin),r=Math.round(n.x2>e.chart.width-10?e.chart.width-10:n.x2),e.lineCoordinates.x1=s,e.lineCoordinates.x2=r,e.lineCoordinates.width=Math.abs(r-s)),i&&(i.lineCoordinates={},s=Math.round(n.x1+v+t.margin),r=Math.round(n.x2>i.chart.width-10?i.chart.width-10:n.x2),i.lineCoordinates.x1=s,i.lineCoordinates.x2=r,i.lineCoordinates.width=Math.abs(r-s));var b=Math.ceil(e?e.createLabelsAndCalculateHeight():0),f=Math.ceil(i?i.createLabelsAndCalculateHeight():0);e&&(o=Math.round(n.y2-b-e.margin),l=Math.round(n.y2-p>e.chart.height-10?e.chart.height-10:n.y2-p),e.lineCoordinates.y1=o,e.lineCoordinates.y2=o,e.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:b}),i&&(o=Math.round(n.y1+i.margin),l=n.y1+i.margin+f,i.lineCoordinates.y1=l,i.lineCoordinates.y2=l,i.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:f}),s=Math.round(n.x1+t.margin),o=Math.round(i?i.lineCoordinates.y2:n.y1<10?10:n.y1),r=Math.round(n.x1+v+t.margin),l=Math.round(e?e.lineCoordinates.y1:n.y2-p>t.chart.height-10?t.chart.height-10:n.y2-p),t.lineCoordinates={x1:r,y1:o,x2:r,y2:l,height:Math.abs(l-o)},t.boundingRect={x1:s,y1:o,x2:r,y2:l,width:r-s,height:l-o},t.calculateValueToPixelconversionParameters(),e&&e.calculateValueToPixelconversionParameters(),i&&i.calculateValueToPixelconversionParameters(),e&&e.renderLabelsTicksAndTitle(),i&&i.renderLabelsTicksAndTitle(),t.renderLabelsTicksAndTitle(),h.preparePlotArea();var y=t.chart.plotArea;d.save(),d.rect(y.x1,y.y1,Math.abs(y.x2-y.x1),Math.abs(y.y2-y.y1)),d.clip(),t.renderStripLinesOfThicknessType("value"),e&&e.renderStripLinesOfThicknessType("value"),i&&i.renderStripLinesOfThicknessType("value"),t.renderInterlacedColors(),e&&e.renderInterlacedColors(),i&&i.renderInterlacedColors(),d.restore(),t.renderGrid(),e&&e.renderGrid(),i&&i.renderGrid(),t.renderAxisLine(),e&&e.renderAxisLine(),i&&i.renderAxisLine(),t.renderStripLinesOfThicknessType("pixel"),e&&e.renderStripLinesOfThicknessType("pixel"),i&&i.renderStripLinesOfThicknessType("pixel")}},D.prototype.renderLabelsTicksAndTitle=function(){var t=!1,e=0,i=1,a=0;this.conversionParameters.pixelPerUnit*this.interval;if(0!==this.labelAngle&&360!==this.labelAngle&&(i=1.2),"undefined"==typeof this._options.interval){if("bottom"===this._position||"top"===this._position){for(r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.stripLine)){var n=s.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+s.textBlock.height*Math.sin(Math.PI/180*this.labelAngle);e+=n}e>this.lineCoordinates.width*i&&(t=!0)}if("left"===this._position||"right"===this._position){for(r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.stripLine)){var n=s.textBlock.height*Math.cos(Math.PI/180*this.labelAngle)+s.textBlock.width*Math.sin(Math.PI/180*this.labelAngle);e+=n}e>this.lineCoordinates.height*i&&(t=!0)}}if("bottom"===this._position){var s,o,r=0;for(r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.position>this.maximum)){if(o=this.getPixelCoordinatesOnAxis(s.position),this.tickThickness&&!this._labels[r].stripLine||this._labels[r].stripLine&&"pixel"===this._labels[r].stripLine._thicknessType){this._labels[r].stripLine?(h=this._labels[r].stripLine,this.ctx.lineWidth=h.thickness,this.ctx.strokeStyle=h.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor);var l=this.ctx.lineWidth%2===1?(o.x<<0)+.5:o.x<<0;this.ctx.beginPath(),this.ctx.moveTo(l,o.y<<0),this.ctx.lineTo(l,o.y+this.tickLength<<0),this.ctx.stroke()}t&&a++%2!==0&&!this._labels[r].stripLine||(0===s.textBlock.angle?(o.x-=s.textBlock.width/2,o.y+=this.tickLength+s.textBlock.fontSize/2):(o.x-=this.labelAngle<0?s.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,o.y+=this.tickLength+Math.abs(this.labelAngle<0?s.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),s.textBlock.x=o.x,s.textBlock.y=o.y,s.textBlock.render(!0))}this.title&&(this._titleTextBlock=new L(this.ctx,{x:this.lineCoordinates.x1,y:this.boundingRect.y2-this.titleFontSize-5,maxWidth:this.lineCoordinates.width,maxHeight:1.5*this.titleFontSize,angle:0,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.boundingRect.y2-this._titleTextBlock.height-3,this._titleTextBlock.render(!0))}else if("top"===this._position){var s,o,h,r=0;for(r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.position>this.maximum)){if(o=this.getPixelCoordinatesOnAxis(s.position),this.tickThickness&&!this._labels[r].stripLine||this._labels[r].stripLine&&"pixel"===this._labels[r].stripLine._thicknessType){this._labels[r].stripLine?(h=this._labels[r].stripLine,this.ctx.lineWidth=h.thickness,this.ctx.strokeStyle=h.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor);var l=this.ctx.lineWidth%2===1?(o.x<<0)+.5:o.x<<0;this.ctx.beginPath(),this.ctx.moveTo(l,o.y<<0),this.ctx.lineTo(l,o.y-this.tickLength<<0),this.ctx.stroke()}t&&a++%2!==0&&!this._labels[r].stripLine||(0===s.textBlock.angle?(o.x-=s.textBlock.width/2,o.y-=this.tickLength+s.textBlock.height/2):(o.x-=this.labelAngle>0?s.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,o.y-=this.tickLength+Math.abs(this.labelAngle>0?s.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5:5)),s.textBlock.x=o.x,s.textBlock.y=o.y,s.textBlock.render(!0))}this.title&&(this._titleTextBlock=new L(this.ctx,{x:this.lineCoordinates.x1,y:this.boundingRect.y1+1,maxWidth:this.lineCoordinates.width,maxHeight:1.5*this.titleFontSize,angle:0,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.render(!0))}else if("left"===this._position){for(var s,o,r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.position>this.maximum)){if(o=this.getPixelCoordinatesOnAxis(s.position),this.tickThickness&&!this._labels[r].stripLine||this._labels[r].stripLine&&"pixel"===this._labels[r].stripLine._thicknessType){this._labels[r].stripLine?(h=this._labels[r].stripLine,this.ctx.lineWidth=h.thickness,this.ctx.strokeStyle=h.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor);var d=this.ctx.lineWidth%2===1?(o.y<<0)+.5:o.y<<0;this.ctx.beginPath(),this.ctx.moveTo(o.x<<0,d),this.ctx.lineTo(o.x-this.tickLength<<0,d),this.ctx.stroke()}t&&a++%2!==0&&!this._labels[r].stripLine||(s.textBlock.x=o.x-s.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-this.tickLength-5,0===this.labelAngle?s.textBlock.y=o.y:s.textBlock.y=o.y-s.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),s.textBlock.render(!0))}if(this.title){this._titleTextBlock=new L(this.ctx,{x:this.boundingRect.x1+1,y:this.lineCoordinates.y2,maxWidth:this.lineCoordinates.height,maxHeight:1.5*this.titleFontSize,angle:-90,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"});this._titleTextBlock.measureText();this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this._titleTextBlock.render(!0)}}else if("right"===this._position){for(var s,o,r=0;r<this._labels.length;r++)if(s=this._labels[r],!(s.position<this.minimum||s.position>this.maximum)){if(o=this.getPixelCoordinatesOnAxis(s.position),this.tickThickness&&!this._labels[r].stripLine||this._labels[r].stripLine&&"pixel"===this._labels[r].stripLine._thicknessType){this._labels[r].stripLine?(h=this._labels[r].stripLine,this.ctx.lineWidth=h.thickness,this.ctx.strokeStyle=h.color):(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor);var d=this.ctx.lineWidth%2===1?(o.y<<0)+.5:o.y<<0;this.ctx.beginPath(),this.ctx.moveTo(o.x<<0,d),this.ctx.lineTo(o.x+this.tickLength<<0,d),this.ctx.stroke()}t&&a++%2!==0&&!this._labels[r].stripLine||(s.textBlock.x=o.x+this.tickLength+5,0===this.labelAngle?s.textBlock.y=o.y:s.textBlock.y=o.y,s.textBlock.render(!0))}this.title&&(this._titleTextBlock=new L(this.ctx,{x:this.boundingRect.x2-1,y:this.lineCoordinates.y2,maxWidth:this.lineCoordinates.height,maxHeight:1.5*this.titleFontSize,angle:90,text:this.title,horizontalAlign:"center",fontSize:this.titleFontSize,fontFamily:this.titleFontFamily,fontWeight:this.titleFontWeight,fontColor:this.titleFontColor,fontStyle:this.titleFontStyle,textBaseline:"top"}),this._titleTextBlock.measureText(),this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this._titleTextBlock.render(!0))}},D.prototype.renderInterlacedColors=function(){var t,e,i=this.chart.plotArea.ctx,a=this.chart.plotArea,n=0,s=!0;if("bottom"!==this._position&&"top"!==this._position||!this.interlacedColor){if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(i.fillStyle=this.interlacedColor,n=0;n<this._labels.length;n++)this._labels[n].stripLine||(s?(e=this.getPixelCoordinatesOnAxis(this._labels[n].position),t=n+1>=this._labels.length-1?this.getPixelCoordinatesOnAxis(this.maximum):this.getPixelCoordinatesOnAxis(this._labels[n+1].position),i.fillRect(a.x1,t.y,Math.abs(a.x1-a.x2),Math.abs(t.y-e.y)),s=!1):s=!0)}else for(i.fillStyle=this.interlacedColor,n=0;n<this._labels.length;n++)this._labels[n].stripLine||(s?(t=this.getPixelCoordinatesOnAxis(this._labels[n].position),e=n+1>=this._labels.length-1?this.getPixelCoordinatesOnAxis(this.maximum):this.getPixelCoordinatesOnAxis(this._labels[n+1].position),i.fillRect(t.x,a.y1,Math.abs(e.x-t.x),Math.abs(a.y1-a.y2)),s=!1):s=!0);i.beginPath()},D.prototype.renderStripLinesOfThicknessType=function(t){if(this.stripLines&&this.stripLines.length>0&&t){var e=0;for(e=0;e<this.stripLines.length;e++){var i=this.stripLines[e];i._thicknessType===t&&("pixel"===t&&(i.value<this.minimum||i.value>this.maximum)||(i.showOnTop?this.chart.addEventListener("dataAnimationIterationEnd",i.render,i):i.render()))}}},D.prototype.renderGrid=function(){if(this.gridThickness&&this.gridThickness>0){var t,e=this.chart.ctx,i=this.chart.plotArea;if(e.lineWidth=this.gridThickness,e.strokeStyle=this.gridColor,e.setLineDash&&e.setLineDash(u(this.gridDashType,this.gridThickness)),"bottom"===this._position||"top"===this._position){for(n=0;n<this._labels.length&&!this._labels[n].stripLine;n++)if(!(this._labels[n].position<this.minimum||this._labels[n].position>this.maximum)){e.beginPath(),t=this.getPixelCoordinatesOnAxis(this._labels[n].position);var a=e.lineWidth%2===1?(t.x<<0)+.5:t.x<<0;e.moveTo(a,i.y1<<0),e.lineTo(a,i.y2<<0),e.stroke()}}else if("left"===this._position||"right"===this._position)for(var n=0;n<this._labels.length&&!this._labels[n].stripLine;n++)if(!(0===n&&"axisY"===this.type&&this.chart.axisX&&this.chart.axisX.lineThickness||this._labels[n].position<this.minimum||this._labels[n].position>this.maximum)){e.beginPath(),t=this.getPixelCoordinatesOnAxis(this._labels[n].position);var s=e.lineWidth%2===1?(t.y<<0)+.5:t.y<<0;e.moveTo(i.x1<<0,s),e.lineTo(i.x2<<0,s),e.stroke()}}},D.prototype.renderAxisLine=function(){var t=this.chart.ctx;if("bottom"===this._position||"top"===this._position){if(this.lineThickness){t.lineWidth=this.lineThickness,t.strokeStyle=this.lineColor?this.lineColor:"black",t.setLineDash&&t.setLineDash(u(this.lineDashType,this.lineThickness));var e=this.lineThickness%2===1?(this.lineCoordinates.y1<<0)+.5:this.lineCoordinates.y1<<0;t.beginPath(),t.moveTo(this.lineCoordinates.x1,e),t.lineTo(this.lineCoordinates.x2,e),t.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){t.lineWidth=this.lineThickness,t.strokeStyle=this.lineColor,t.setLineDash&&t.setLineDash(u(this.lineDashType,this.lineThickness));var i=this.lineThickness%2===1?(this.lineCoordinates.x1<<0)+.5:this.lineCoordinates.x1<<0;t.beginPath(),t.moveTo(i,this.lineCoordinates.y1),t.lineTo(i,this.lineCoordinates.y2),t.stroke()}},D.prototype.getPixelCoordinatesOnAxis=function(t){var e={},i=this.lineCoordinates.width,a=this.lineCoordinates.height;if("bottom"===this._position||"top"===this._position){var n=i/Math.abs(this.maximum-this.minimum);e.x=this.lineCoordinates.x1+n*(t-this.minimum),e.y=this.lineCoordinates.y1}if("left"===this._position||"right"===this._position){var n=a/Math.abs(this.maximum-this.minimum);e.y=this.lineCoordinates.y2-n*(t-this.minimum),e.x=this.lineCoordinates.x2}return e},D.prototype.getXValueAt=function(t){if(!t)return null;var e=null;return"left"===this._position?e=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-t.y)+this.chart.axisX.minimum:"bottom"===this._position&&(e=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(t.x-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.minimum),e},D.prototype.calculateValueToPixelconversionParameters=function(t){var e={pixelPerUnit:null,minimum:null,reference:null},i=this.lineCoordinates.width,a=this.lineCoordinates.height;e.minimum=this.minimum,"bottom"!==this._position&&"top"!==this._position||(e.pixelPerUnit=i/Math.abs(this.maximum-this.minimum),e.reference=this.lineCoordinates.x1),"left"!==this._position&&"right"!==this._position||(e.pixelPerUnit=-1*a/Math.abs(this.maximum-this.minimum),e.reference=this.lineCoordinates.y2),this.conversionParameters=e},D.prototype.calculateAxisParameters=function(){var t=this.chart.layoutManager.getFreeSpace(),e=!1;"bottom"===this._position||"top"===this._position?(this.maxWidth=t.width,this.maxHeight=t.height):(this.maxWidth=t.height,this.maxHeight=t.width);var i,a,n,s,o="axisX"===this.type?this.maxWidth<500?8:Math.max(6,Math.floor(this.maxWidth/62)):Math.max(Math.floor(this.maxWidth/40),2),r=0;if("axisX"===this.type?(i=null!==this.sessionVariables.internalMinimum?this.sessionVariables.internalMinimum:this.dataInfo.viewPortMin,a=null!==this.sessionVariables.internalMaximum?this.sessionVariables.internalMaximum:this.dataInfo.viewPortMax,a-i===0&&(r="undefined"==typeof this._options.interval?.4:this._options.interval,a+=r,i-=r),this.dataInfo.minDiff!==1/0?n=this.dataInfo.minDiff:a-i>1?n=.5*Math.abs(a-i):(n=1,"dateTime"===this.chart.plotInfo.axisXValueType&&(e=!0))):"axisY"===this.type&&(i="undefined"==typeof this._options.minimum||null===this._options.minimum?this.dataInfo.viewPortMin:this._options.minimum,a="undefined"==typeof this._options.maximum||null===this._options.maximum?this.dataInfo.viewPortMax:this._options.maximum,isFinite(i)||isFinite(a)?0===i&&0===a?(a+=9,i=0):a-i===0?(r=Math.min(Math.abs(.01*Math.abs(a)),5),a+=r,i-=r):i>a?(r=Math.min(Math.abs(.01*Math.abs(a-i)),5),a>=0?i=a-r:a=i+r):(r=Math.min(Math.abs(.01*Math.abs(a-i)),.05),0!==a&&(a+=r),0!==i&&(i-=r)):(a="undefined"==typeof this._options.interval?-(1/0):this._options.interval,i=0),!this.includeZero||"undefined"!=typeof this._options.minimum&&null!==this._options.minimum||i>0&&(i=0),!this.includeZero||"undefined"!=typeof this._options.maximum&&null!==this._options.maximum||a<0&&(a=0)),"axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType?(s=a-i,this.intervalType||(s/1<=o?(this.interval=1,this.intervalType="millisecond"):s/2<=o?(this.interval=2,this.intervalType="millisecond"):s/5<=o?(this.interval=5,this.intervalType="millisecond"):s/10<=o?(this.interval=10,this.intervalType="millisecond"):s/20<=o?(this.interval=20,this.intervalType="millisecond"):s/50<=o?(this.interval=50,this.intervalType="millisecond"):s/100<=o?(this.interval=100,this.intervalType="millisecond"):s/200<=o?(this.interval=200,this.intervalType="millisecond"):s/250<=o?(this.interval=250,this.intervalType="millisecond"):s/300<=o?(this.interval=300,this.intervalType="millisecond"):s/400<=o?(this.interval=400,this.intervalType="millisecond"):s/500<=o?(this.interval=500,this.intervalType="millisecond"):s/(1*G.secondDuration)<=o?(this.interval=1,this.intervalType="second"):s/(2*G.secondDuration)<=o?(this.interval=2,this.intervalType="second"):s/(5*G.secondDuration)<=o?(this.interval=5,this.intervalType="second"):s/(10*G.secondDuration)<=o?(this.interval=10,this.intervalType="second"):s/(15*G.secondDuration)<=o?(this.interval=15,this.intervalType="second"):s/(20*G.secondDuration)<=o?(this.interval=20,this.intervalType="second"):s/(30*G.secondDuration)<=o?(this.interval=30,this.intervalType="second"):s/(1*G.minuteDuration)<=o?(this.interval=1,this.intervalType="minute"):s/(2*G.minuteDuration)<=o?(this.interval=2,this.intervalType="minute"):s/(5*G.minuteDuration)<=o?(this.interval=5,this.intervalType="minute"):s/(10*G.minuteDuration)<=o?(this.interval=10,this.intervalType="minute"):s/(15*G.minuteDuration)<=o?(this.interval=15,this.intervalType="minute"):s/(20*G.minuteDuration)<=o?(this.interval=20,this.intervalType="minute"):s/(30*G.minuteDuration)<=o?(this.interval=30,this.intervalType="minute"):s/(1*G.hourDuration)<=o?(this.interval=1,this.intervalType="hour"):s/(2*G.hourDuration)<=o?(this.interval=2,this.intervalType="hour"):s/(3*G.hourDuration)<=o?(this.interval=3,this.intervalType="hour"):s/(6*G.hourDuration)<=o?(this.interval=6,this.intervalType="hour"):s/(1*G.dayDuration)<=o?(this.interval=1,this.intervalType="day"):s/(2*G.dayDuration)<=o?(this.interval=2,this.intervalType="day"):s/(4*G.dayDuration)<=o?(this.interval=4,this.intervalType="day"):s/(1*G.weekDuration)<=o?(this.interval=1,this.intervalType="week"):s/(2*G.weekDuration)<=o?(this.interval=2,this.intervalType="week"):s/(3*G.weekDuration)<=o?(this.interval=3,this.intervalType="week"):s/(1*G.monthDuration)<=o?(this.interval=1,this.intervalType="month"):s/(2*G.monthDuration)<=o?(this.interval=2,this.intervalType="month"):s/(3*G.monthDuration)<=o?(this.interval=3,this.intervalType="month"):s/(6*G.monthDuration)<=o?(this.interval=6,this.intervalType="month"):s/(1*G.yearDuration)<=o?(this.interval=1,this.intervalType="year"):s/(2*G.yearDuration)<=o?(this.interval=2,this.intervalType="year"):s/(4*G.yearDuration)<=o?(this.interval=4,this.intervalType="year"):(this.interval=Math.floor(D.getNiceNumber(s/(o-1),!0)/G.yearDuration),this.intervalType="year")),null!==this.sessionVariables.internalMinimum?this.minimum=this.sessionVariables.internalMinimum:this.minimum=i-n/2,null!==this.sessionVariables.internalMaximum?this.maximum=this.sessionVariables.internalMaximum:this.maximum=a+n/2,this.valueFormatString||(e?this.valueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.valueFormatString="YYYY":"month"===this.intervalType?this.valueFormatString="MMM YYYY":"week"===this.intervalType?this.valueFormatString="MMM DD YYYY":"day"===this.intervalType?this.valueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.valueFormatString="hh:mm TT":"minute"===this.intervalType?this.valueFormatString="hh:mm TT":"second"===this.intervalType?this.valueFormatString="hh:mm:ss TT":"millisecond"===this.intervalType&&(this.valueFormatString="fff'ms'")),this.intervalstartTimePercent=this.getLabelStartPoint(new Date(this.minimum),this.intervalType,this.interval)):(this.intervalType="number",s=D.getNiceNumber(a-i,!1),this._options&&this._options.interval?this.interval=this._options.interval:this.interval=D.getNiceNumber(s/(o-1),!0),null!==this.sessionVariables.internalMinimum?this.minimum=this.sessionVariables.internalMinimum:this.minimum=Math.floor(i/this.interval)*this.interval,null!==this.sessionVariables.internalMaximum?this.maximum=this.sessionVariables.internalMaximum:this.maximum=Math.ceil(a/this.interval)*this.interval,0===this.maximum&&0===this.minimum&&(0===this._options.minimum?this.maximum+=10:0===this._options.maximum&&(this.minimum-=10),this._options&&"undefined"==typeof this._options.interval&&(this.interval=D.getNiceNumber((this.maximum-this.minimum)/(o-1),!0))),"axisX"===this.type?(null===this.sessionVariables.internalMinimum&&(this.minimum=i-n/2),null===this.sessionVariables.internalMaximum&&(this.maximum=a+n/2),this.intervalstartTimePercent=Math.floor((this.minimum+.2*this.interval)/this.interval)*this.interval):"axisY"===this.type&&(this.intervalstartTimePercent=this.minimum)),"axisX"===this.type&&(this._absoluteMinimum=this._options&&"undefined"!=typeof this._options.minimum?this._options.minimum:this.dataInfo.min-n/2,this._absoluteMaximum=this._options&&"undefined"!=typeof this._options.maximum?this._options.maximum:this.dataInfo.max+n/2),!this.valueFormatString&&(this.valueFormatString="#,##0.##",s=Math.abs(this.maximum-this.minimum),s<1)){var l=Math.floor(Math.abs(Math.log(s)/Math.LN10))+2;if(!isNaN(l)&&isFinite(l)||(l=2),l>2)for(var h=0;h<l-2;h++)this.valueFormatString+="#"}},D.getNiceNumber=function(t,e){var i,a=Math.floor(Math.log(t)/Math.LN10),n=t/Math.pow(10,a);return i=e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10,Number((i*Math.pow(10,a)).toFixed(20))},D.prototype.getLabelStartPoint=function(){var t=n(this.interval,this.intervalType),e=Math.floor(this.minimum/t)*t,i=new Date(e);return"millisecond"===this.intervalType||("second"===this.intervalType?i.getMilliseconds()>0&&(i.setSeconds(i.getSeconds()+1),i.setMilliseconds(0)):"minute"===this.intervalType?(i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setMinutes(i.getMinutes()+1),i.setSeconds(0),i.setMilliseconds(0)):"hour"===this.intervalType?(i.getMinutes()>0||i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setHours(i.getHours()+1),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0)):"day"===this.intervalType?(i.getHours()>0||i.getMinutes()>0||i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setDate(i.getDate()+1),i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0)):"week"===this.intervalType?(i.getDay()>0||i.getHours()>0||i.getMinutes()>0||i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setDate(i.getDate()+(7-i.getDay())),i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0)):"month"===this.intervalType?(i.getDate()>1||i.getHours()>0||i.getMinutes()>0||i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setMonth(i.getMonth()+1),i.setDate(1),i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0)):"year"===this.intervalType&&(i.getMonth()>0||i.getDate()>1||i.getHours()>0||i.getMinutes()>0||i.getSeconds()>0||i.getMilliseconds()>0)&&(i.setFullYear(i.getFullYear()+1),i.setMonth(0),i.setDate(1),i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0))),i},t(Y,C),Y.prototype.render=function(){var t=this.parent.getPixelCoordinatesOnAxis(this.value),e=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*this.thickness);if(e>0){var i=null===this.opacity?1:this.opacity;this.ctx.strokeStyle=this.color,this.ctx.beginPath();var a=this.ctx.globalAlpha;this.ctx.globalAlpha=i;var n,s,o,r;d(this.id);
  7. if(this.ctx.lineWidth=e,this.ctx.setLineDash&&this.ctx.setLineDash(u(this.lineDashType,e)),"bottom"===this.parent._position||"top"===this.parent._position){var l=this.ctx.lineWidth%2===1?(t.x<<0)+.5:t.x<<0;n=s=l,o=this.chart.plotArea.y1,r=this.chart.plotArea.y2}else if("left"===this.parent._position||"right"===this.parent._position){var h=this.ctx.lineWidth%2===1?(t.y<<0)+.5:t.y<<0;o=r=h,n=this.chart.plotArea.x1,s=this.chart.plotArea.x2}this.ctx.moveTo(n,o),this.ctx.lineTo(s,r),this.ctx.stroke(),this.ctx.globalAlpha=a}},t(W,C),W.prototype._initialize=function(){if(this.enabled){this.container=document.createElement("div"),this.container.setAttribute("class","canvasjs-chart-tooltip"),this.container.style.position="absolute",this.container.style.height="auto",this.container.style.boxShadow="1px 1px 2px 2px rgba(0,0,0,0.1)",this.container.style.zIndex="1000",this.container.style.display="none";var t='<div style=" width: auto;';t+="height: auto;",t+="min-width: 50px;",t+="line-height: auto;",t+="margin: 0px 0px 0px 0px;",t+="padding: 5px;",t+="font-family: Calibri, Arial, Georgia, serif;",t+="font-weight: normal;",t+="font-style: "+(R?"italic;":"normal;"),t+="font-size: 14px;",t+="color: #000000;",t+="text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);",t+="text-align: left;",t+="border: 2px solid gray;",t+=R?"background: rgba(255,255,255,.9);":"background: rgb(255,255,255);",t+="text-indent: 0px;",t+="white-space: nowrap;",t+="border-radius: 5px;",t+="-moz-user-select:none;",t+="-khtml-user-select: none;",t+="-webkit-user-select: none;",t+="-ms-user-select: none;",t+="user-select: none;",R||(t+="filter: alpha(opacity = 90);",t+="filter: progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#666666');"),t+='} "> Sample Tooltip</div>',this.container.innerHTML=t,this.contentDiv=this.container.firstChild,this.container.style.borderRadius=this.contentDiv.style.borderRadius,this.chart._canvasJSContainer.appendChild(this.container)}},W.prototype.mouseMoveHandler=function(t,e){this._lastUpdated&&(new Date).getTime()-this._lastUpdated<40||(this._lastUpdated=(new Date).getTime(),this._updateToolTip(t,e))},W.prototype._updateToolTip=function(t,e){if(!this.chart.disableToolTip){if("undefined"==typeof t||"undefined"==typeof e){if(isNaN(this._prevX)||isNaN(this._prevY))return;t=this._prevX,e=this._prevY}else this._prevX=t,this._prevY=e;var i,a=null,n=null,s=[],o=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){o="xySwapped"===this.chart.plotInfo.axisPlacement?(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-e)+this.chart.axisX.minimum:(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(t-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.minimum;for(var r=[],l=0;l<this.chart.data.length;l++){var h=this.chart.data[l].getDataPointAtX(o,!0);h&&h.index>=0&&(h.dataSeries=this.chart.data[l],null!==h.dataPoint.y&&r.push(h))}if(0===r.length)return;r.sort(function(t,e){return t.distance-e.distance});var d=r[0];for(l=0;l<r.length;l++)r[l].dataPoint.x.valueOf()===d.dataPoint.x.valueOf()&&s.push(r[l]);r=null}else{var c=this.chart.getDataPointAtXY(t,e,!0);if(c)this.currentDataPointIndex=c.dataPointIndex,this.currentSeriesIndex=c.dataSeries.index;else if(R){var x=y(t,e,this.chart._eventManager.ghostCtx);if(x>0&&"undefined"!=typeof this.chart._eventManager.objectMap[x]){if(eventObject=this.chart._eventManager.objectMap[x],"legendItem"===eventObject.objectType)return;this.currentSeriesIndex=eventObject.dataSeriesIndex,this.currentDataPointIndex=eventObject.dataPointIndex>=0?eventObject.dataPointIndex:-1}else this.currentDataPointIndex=-1}else this.currentDataPointIndex=-1;if(this.currentSeriesIndex>=0){n=this.chart.data[this.currentSeriesIndex];var h={};if(this.currentDataPointIndex>=0)a=n.dataPoints[this.currentDataPointIndex],h.dataSeries=n,h.dataPoint=a,h.index=this.currentDataPointIndex,h.distance=Math.abs(a.x-o);else{if(!this.enabled||"line"!==n.type&&"stepLine"!==n.type&&"spline"!==n.type&&"area"!==n.type&&"stepArea"!==n.type&&"splineArea"!==n.type&&"stackedArea"!==n.type&&"stackedArea100"!==n.type&&"rangeArea"!==n.type&&"rangeSplineArea"!==n.type&&"candlestick"!==n.type&&"ohlc"!==n.type)return;var o=(this.chart.axisX.maximum-this.chart.axisX.minimum)/this.chart.axisX.lineCoordinates.width*(t-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.minimum.valueOf();h=n.getDataPointAtX(o,!0),h.dataSeries=n,this.currentDataPointIndex=h.index,a=h.dataPoint}null!==h.dataPoint.y&&s.push(h)}}if(s.length>0&&(this.highlightObjects(s),this.enabled)){var p="";if(p=this.getToolTipInnerHTML({entries:s}),null!==p){this.contentDiv.innerHTML=p,this.contentDiv.innerHTML=p;var m=!1;"none"===this.container.style.display&&(m=!0,this.container.style.display="block");try{this.contentDiv.style.background=this.backgroundColor?this.backgroundColor:R?"rgba(255,255,255,.9)":"rgb(255,255,255)",this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.borderColor?this.borderColor:s[0].dataPoint.color?s[0].dataPoint.color:s[0].dataSeries.color?s[0].dataSeries.color:s[0].dataSeries._colorSet[s[0].index%s[0].dataSeries._colorSet.length],this.contentDiv.style.borderWidth=this.borderThickness||0===this.borderThickness?this.borderThickness+"px":"2px",this.contentDiv.style.borderRadius=this.cornerRadius||0===this.cornerRadius?this.cornerRadius+"px":"5px",this.container.style.borderRadius=this.contentDiv.style.borderRadius,this.contentDiv.style.fontSize=this.fontSize||0===this.fontSize?this.fontSize+"px":"14px",this.contentDiv.style.color=this.fontColor?this.fontColor:"#000000",this.contentDiv.style.fontFamily=this.fontFamily?this.fontFamily:"Calibri, Arial, Georgia, serif;",this.contentDiv.style.fontWeight=this.fontWeight?this.fontWeight:"normal",this.contentDiv.style.fontStyle=this.fontStyle?this.fontStyle:R?"italic":"normal"}catch(t){}"pie"===s[0].dataSeries.type||"doughnut"===s[0].dataSeries.type||"funnel"===s[0].dataSeries.type||"bar"===s[0].dataSeries.type||"rangeBar"===s[0].dataSeries.type||"stackedBar"===s[0].dataSeries.type||"stackedBar100"===s[0].dataSeries.type?toolTipLeft=t-10-this.container.clientWidth:(toolTipLeft=this.chart.axisX.lineCoordinates.width/Math.abs(this.chart.axisX.maximum-this.chart.axisX.minimum)*Math.abs(s[0].dataPoint.x-this.chart.axisX.minimum)+this.chart.axisX.lineCoordinates.x1+.5-this.container.clientWidth<<0,toolTipLeft-=10),toolTipLeft<0&&(toolTipLeft+=this.container.clientWidth+20),toolTipLeft+this.container.clientWidth>this.chart._container.clientWidth&&(toolTipLeft=Math.max(0,this.chart._container.clientWidth-this.container.clientWidth)),toolTipLeft+="px",i=1!==s.length||this.shared||"line"!==s[0].dataSeries.type&&"stepLine"!==s[0].dataSeries.type&&"spline"!==s[0].dataSeries.type&&"area"!==s[0].dataSeries.type&&"stepArea"!==s[0].dataSeries.type&&"splineArea"!==s[0].dataSeries.type&&"stackedArea"!==s[0].dataSeries.type&&"stackedArea100"!==s[0].dataSeries.type?"bar"===s[0].dataSeries.type||"rangeBar"===s[0].dataSeries.type||"stackedBar"===s[0].dataSeries.type||"stackedBar100"===s[0].dataSeries.type?s[0].dataSeries.axisX.lineCoordinates.y2-s[0].dataSeries.axisX.lineCoordinates.height/Math.abs(s[0].dataSeries.axisX.maximum-s[0].dataSeries.axisX.minimum)*Math.abs(s[0].dataPoint.x-s[0].dataSeries.axisX.minimum)+.5<<0:e:s[0].dataSeries.axisY.lineCoordinates.y2-s[0].dataSeries.axisY.lineCoordinates.height/Math.abs(s[0].dataSeries.axisY.maximum-s[0].dataSeries.axisY.minimum)*Math.abs(s[0].dataPoint.y-s[0].dataSeries.axisY.minimum)+.5<<0,i=-i+10,i+this.container.clientHeight+5>0&&(i-=i+this.container.clientHeight+5-0),i+="px",this.container.style.left=toolTipLeft,this.container.style.bottom=i,!this.animationEnabled||m?this.disableAnimation():this.enableAnimation()}else this.hide(!1)}}},W.prototype.highlightObjects=function(t){var e=this.chart.overlaidCanvasCtx;this.chart.resetOverlayedCanvas(),e.save();for(var i=(this.chart.plotArea,0),a=0;a<t.length;a++){var n=t[a],s=this.chart._eventManager.objectMap[n.dataSeries.dataPointIds[n.index]];if(s&&s.objectType&&"dataPoint"===s.objectType){var o=this.chart.data[s.dataSeriesIndex],r=o.dataPoints[s.dataPointIndex],l=s.dataPointIndex;if(r.highlightEnabled!==!1&&(o.highlightEnabled===!0||r.highlightEnabled===!0))if("line"===o.type||"stepLine"===o.type||"spline"===o.type||"scatter"===o.type||"area"===o.type||"stepArea"===o.type||"splineArea"===o.type||"stackedArea"===o.type||"stackedArea100"===o.type||"rangeArea"===o.type||"rangeSplineArea"===o.type){var h=o.getMarkerProperties(l,s.x1,s.y1,this.chart.overlaidCanvasCtx);if(h.size=Math.max(1.5*h.size<<0,10),h.borderColor=h.borderColor||"#FFFFFF",h.borderThickness=h.borderThickness||Math.ceil(.1*h.size),lt.drawMarkers([h]),"undefined"!=typeof s.y2){var h=o.getMarkerProperties(l,s.x1,s.y2,this.chart.overlaidCanvasCtx);h.size=Math.max(1.5*h.size<<0,10),h.borderColor=h.borderColor||"#FFFFFF",h.borderThickness=h.borderThickness||Math.ceil(.1*h.size),lt.drawMarkers([h])}}else if("bubble"===o.type){var h=o.getMarkerProperties(l,s.x1,s.y1,this.chart.overlaidCanvasCtx);h.size=s.size,h.color="white",h.borderColor="white",e.globalAlpha=.3,lt.drawMarkers([h]),e.globalAlpha=1}else"column"===o.type||"stackedColumn"===o.type||"stackedColumn100"===o.type||"bar"===o.type||"rangeBar"===o.type||"stackedBar"===o.type||"stackedBar100"===o.type||"rangeColumn"===o.type?st(e,s.x1,s.y1,s.x2,s.y2,"white",0,null,!1,!1,!1,!1,.3):"pie"===o.type||"doughnut"===o.type?ot(e,s.center,s.radius,"white",o.type,s.startAngle,s.endAngle,.3):"candlestick"===o.type?(e.globalAlpha=1,e.strokeStyle=s.color,e.lineWidth=2*s.borderThickness,i=e.lineWidth%2===0?0:.5,e.beginPath(),e.moveTo(s.x3-i,s.y2),e.lineTo(s.x3-i,Math.min(s.y1,s.y4)),e.stroke(),e.beginPath(),e.moveTo(s.x3-i,Math.max(s.y1,s.y4)),e.lineTo(s.x3-i,s.y3),e.stroke(),st(e,s.x1,Math.min(s.y1,s.y4),s.x2,Math.max(s.y1,s.y4),"transparent",2*s.borderThickness,s.color,!1,!1,!1,!1),e.globalAlpha=1):"ohlc"===o.type&&(e.globalAlpha=1,e.strokeStyle=s.color,e.lineWidth=2*s.borderThickness,i=e.lineWidth%2===0?0:.5,e.beginPath(),e.moveTo(s.x3-i,s.y2),e.lineTo(s.x3-i,s.y3),e.stroke(),e.beginPath(),e.moveTo(s.x3,s.y1),e.lineTo(s.x1,s.y1),e.stroke(),e.beginPath(),e.moveTo(s.x3,s.y4),e.lineTo(s.x2,s.y4),e.stroke(),e.globalAlpha=1)}}e.globalAlpha=1,e.beginPath()},W.prototype.getToolTipInnerHTML=function(t){for(var e=t.entries,i=null,a=null,n=null,s=0,o="",r=!0,l=0;l<e.length;l++)if(e[l].dataSeries.toolTipContent||e[l].dataPoint.toolTipContent){r=!1;break}if(r&&(this.content&&"function"==typeof this.content||this.contentFormatter)){var h={chart:this.chart,toolTip:this._options,entries:e};i=this.contentFormatter?this.contentFormatter(h):this.content(h)}else if(this.shared&&"none"!==this.chart.plotInfo.axisPlacement){for(var d="",l=0;l<e.length;l++)a=e[l].dataSeries,n=e[l].dataPoint,s=e[l].index,o="",0===l&&r&&!this.content&&(d+="undefined"!=typeof this.chart.axisX.labels[n.x]?this.chart.axisX.labels[n.x]:"{x}",d+="</br>",d=this.chart.replaceKeywordsWithValue(d,n,a,s)),null===n.toolTipContent||"undefined"==typeof n.toolTipContent&&null===a._options.toolTipContent||("line"===a.type||"stepLine"===a.type||"spline"===a.type||"area"===a.type||"stepArea"===a.type||"splineArea"===a.type||"column"===a.type||"bar"===a.type||"scatter"===a.type||"stackedColumn"===a.type||"stackedColumn100"===a.type||"stackedBar"===a.type||"stackedBar100"===a.type||"stackedArea"===a.type||"stackedArea100"===a.type?o+=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span>&nbsp;&nbsp;{y}":"bubble"===a.type?o+=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span>&nbsp;&nbsp;{y}, &nbsp;&nbsp;{z}":"pie"===a.type||"doughnut"===a.type||"funnel"===a.type?o+=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"&nbsp;&nbsp;{y}":"rangeColumn"===a.type||"rangeBar"===a.type||"rangeArea"===a.type||"rangeSplineArea"===a.type?o+=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span>&nbsp;&nbsp;{y[0]},&nbsp;{y[1]}":"candlestick"!==a.type&&"ohlc"!==a.type||(o+=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>{name}:</span><br/>Open: &nbsp;&nbsp;{y[0]}<br/>High: &nbsp;&nbsp;&nbsp;{y[1]}<br/>Low:&nbsp;&nbsp;&nbsp;{y[2]}<br/>Close: &nbsp;&nbsp;{y[3]}"),null===i&&(i=""),this.reversed===!0?(i=this.chart.replaceKeywordsWithValue(o,n,a,s)+i,l<e.length-1&&(i="</br>"+i)):(i+=this.chart.replaceKeywordsWithValue(o,n,a,s),l<e.length-1&&(i+="</br>")));null!==i&&(i=d+i)}else{if(a=e[0].dataSeries,n=e[0].dataPoint,s=e[0].index,null===n.toolTipContent||"undefined"==typeof n.toolTipContent&&null===a._options.toolTipContent)return null;"line"===a.type||"stepLine"===a.type||"spline"===a.type||"area"===a.type||"stepArea"===a.type||"splineArea"===a.type||"column"===a.type||"bar"===a.type||"scatter"===a.type||"stackedColumn"===a.type||"stackedColumn100"===a.type||"stackedBar"===a.type||"stackedBar100"===a.type||"stackedArea"===a.type||"stackedArea100"===a.type?o=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(n.label?"{label}":"{x}")+" :</span>&nbsp;&nbsp;{y}":"bubble"===a.type?o=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(n.label?"{label}":"{x}")+":</span>&nbsp;&nbsp;{y}, &nbsp;&nbsp;{z}":"pie"===a.type||"doughnut"===a.type||"funnel"===a.type?o=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:(n.name?"{name}:&nbsp;&nbsp;":n.label?"{label}:&nbsp;&nbsp;":"")+"{y}":"rangeColumn"===a.type||"rangeBar"===a.type||"rangeArea"===a.type||"rangeSplineArea"===a.type?o=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(n.label?"{label}":"{x}")+" :</span>&nbsp;&nbsp;{y[0]}, &nbsp;{y[1]}":"candlestick"!==a.type&&"ohlc"!==a.type||(o=n.toolTipContent?n.toolTipContent:a.toolTipContent?a.toolTipContent:this.content&&"function"!=typeof this.content?this.content:"<span style='\"'color:{color};'\"'>"+(n.label?"{label}":"{x}")+"</span><br/>Open: &nbsp;&nbsp;{y[0]}<br/>High: &nbsp;&nbsp;&nbsp;{y[1]}<br/>Low: &nbsp;&nbsp;&nbsp;&nbsp;{y[2]}<br/>Close: &nbsp;&nbsp;{y[3]}"),null===i&&(i=""),i+=this.chart.replaceKeywordsWithValue(o,n,a,s)}return i},W.prototype.enableAnimation=function(){this.container.style.WebkitTransition||(this.container.style.WebkitTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.MozTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.MsTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.transition="left .2s ease-out, bottom .2s ease-out")},W.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition="",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")},W.prototype.hide=function(t){this.enabled&&(t="undefined"==typeof t||t,this.container.style.display="none",this.currentSeriesIndex=-1,this._prevX=NaN,this._prevY=NaN,t&&this.chart.resetOverlayedCanvas())},A.prototype.getPercentAndTotal=function(t,e){var a=null,n=null,s=null;if(t.type.indexOf("stacked")>=0)n=0,a=e.x.getTime?e.x.getTime():e.x,a in t.plotUnit.yTotals&&(n=t.plotUnit.yTotals[a],s=isNaN(e.y)?0:0===n?0:e.y/n*100);else if("pie"===t.type||"doughnut"===t.type){for(n=0,i=0;i<t.dataPoints.length;i++)isNaN(t.dataPoints[i].y)||(n+=t.dataPoints[i].y);s=isNaN(e.y)?0:e.y/n*100}return{percent:s,total:n}},A.prototype.replaceKeywordsWithValue=function(t,e,i,a,n){var s=/\{.*?\}|"[^"]*"|'[^']*'/g,r=this;if(n="undefined"==typeof n?0:n,(i.type.indexOf("stacked")>=0||"pie"===i.type||"doughnut"===i.type)&&(t.indexOf("#percent")>=0||t.indexOf("#total")>=0)){var l="#percent",h="#total",d=this.getPercentAndTotal(i,e);h=d.total?d.total:h,l=isNaN(d.percent)?l:d.percent;do{var c="";if(i.percentFormatString)c=i.percentFormatString;else{c="#,##0.";var x=Math.max(Math.ceil(Math.log(1/Math.abs(l))/Math.LN10),2);!isNaN(x)&&isFinite(x)||(x=2);for(var p=0;p<x;p++)c+="#"}t=t.replace("#percent",Z(l,c,r._cultureInfo)),t=t.replace("#total",Z(h,i.yValueFormatString?i.yValueFormatString:"#,##0.########"))}while(t.indexOf("#percent")>=0||t.indexOf("#total")>=0)}var m=function(t){if('"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1])return t.slice(1,t.length-1);var s=o(t.slice(1,t.length-1));s=s.replace("#index",n);var l=null;try{var h=s.match(/(.*?)\s*\[\s*(.*?)\s*\]/);h&&h.length>0&&(l=o(h[2]),s=o(h[1]))}catch(t){}var d=null;if("color"===s)return e.color?e.color:i.color?i.color:i._colorSet[a%i._colorSet.length];if(e.hasOwnProperty(s))d=e;else{if(!i.hasOwnProperty(s))return"";d=i}var c=d[s];return null!==l&&(c=c[l]),"x"===s?r.axisX&&"dateTime"===r.plotInfo.axisXValueType?Q(c,e.xValueFormatString?e.xValueFormatString:i.xValueFormatString?i.xValueFormatString:r.axisX&&r.axisX.valueFormatString?r.axisX.valueFormatString:"DD MMM YY",r._cultureInfo):Z(c,e.xValueFormatString?e.xValueFormatString:i.xValueFormatString?i.xValueFormatString:"#,##0.########",r._cultureInfo):"y"===s?Z(c,e.yValueFormatString?e.yValueFormatString:i.yValueFormatString?i.yValueFormatString:"#,##0.########",r._cultureInfo):"z"===s?Z(c,e.zValueFormatString?e.zValueFormatString:i.zValueFormatString?i.zValueFormatString:"#,##0.########",r._cultureInfo):c};return t.replace(s,m)},E.prototype.reset=function(){this.lastObjectId=0,this.objectMap=[],this.rectangularRegionEventSubscriptions=[],this.previousDataPointEventObject=null,this.eventObjects=[],R&&(this.ghostCtx.clearRect(0,0,this.chart.width,this.chart.height),this.ghostCtx.beginPath())},E.prototype.getNewObjectTrackingId=function(){return++this.lastObjectId},E.prototype.mouseEventHandler=function(t){if("mousemove"===t.type||"click"===t.type){var e=[],i=$(t),a=null;if(a=this.chart.getObjectAtXY(i.x,i.y,!1),a&&"undefined"!=typeof this.objectMap[a]){var n=this.objectMap[a];if("dataPoint"===n.objectType){var s=this.chart.data[n.dataSeriesIndex],o=s.dataPoints[n.dataPointIndex],r=n.dataPointIndex;n.eventParameter={x:i.x,y:i.y,dataPoint:o,dataSeries:s._options,dataPointIndex:r,dataSeriesIndex:s.index,chart:this.chart._publicChartReference},n.eventContext={context:o,userContext:o,mouseover:"mouseover",mousemove:"mousemove",mouseout:"mouseout",click:"click"},e.push(n),n=this.objectMap[s.id],n.eventParameter={x:i.x,y:i.y,dataPoint:o,dataSeries:s._options,dataPointIndex:r,dataSeriesIndex:s.index,chart:this.chart._publicChartReference},n.eventContext={context:s,userContext:s._options,mouseover:"mouseover",mousemove:"mousemove",mouseout:"mouseout",click:"click"},e.push(this.objectMap[s.id])}else if("legendItem"===n.objectType){var s=this.chart.data[n.dataSeriesIndex],o=null!==n.dataPointIndex?s.dataPoints[n.dataPointIndex]:null;n.eventParameter={x:i.x,y:i.y,dataSeries:s._options,dataPoint:o,dataPointIndex:n.dataPointIndex,dataSeriesIndex:n.dataSeriesIndex,chart:this.chart._publicChartReference},n.eventContext={context:this.chart.legend,userContext:this.chart.legend._options,mouseover:"itemmouseover",mousemove:"itemmousemove",mouseout:"itemmouseout",click:"itemclick"},e.push(n)}}for(var l=[],h=0;h<this.mouseoveredObjectMaps.length;h++){for(var d=!0,c=0;c<e.length;c++)if(e[c].id===this.mouseoveredObjectMaps[h].id){d=!1;break}d?this.fireEvent(this.mouseoveredObjectMaps[h],"mouseout",t):l.push(this.mouseoveredObjectMaps[h])}this.mouseoveredObjectMaps=l;for(var h=0;h<e.length;h++){for(var x=!1,c=0;c<this.mouseoveredObjectMaps.length;c++)if(e[h].id===this.mouseoveredObjectMaps[c].id){x=!0;break}x||(this.fireEvent(e[h],"mouseover",t),this.mouseoveredObjectMaps.push(e[h])),"click"===t.type?this.fireEvent(e[h],"click",t):"mousemove"===t.type&&this.fireEvent(e[h],"mousemove",t)}}},E.prototype.fireEvent=function(t,e,i){if(t&&e){var a=t.eventParameter,n=t.eventContext,s=t.eventContext.userContext;s&&n&&s[n[e]]&&s[n[e]].call(s,a),"mouseout"!==e?s.cursor&&s.cursor!==i.target.style.cursor&&(i.target.style.cursor=s.cursor):(i.target.style.cursor=this.chart._defaultCursor,delete t.eventParameter,delete t.eventContext),"click"===e&&"dataPoint"===t.objectType&&this.chart.pieDoughnutClickHandler&&this.chart.pieDoughnutClickHandler.call(this.chart.data[t.dataSeriesIndex],a)}},t(O,C),V.prototype.animate=function(t,e,i,a,n){var s=this;this.chart.isAnimating=!0,n=n||rt.easing.linear,i&&this.animations.push({startTime:(new Date).getTime()+(t?t:0),duration:e,animationCallback:i,onComplete:a});for(var o=[];this.animations.length>0;){var r=this.animations.shift(),l=(new Date).getTime(),h=0;r.startTime<=l&&(h=n(Math.min(l-r.startTime,r.duration),0,1,r.duration),h=Math.min(h,1),!isNaN(h)&&isFinite(h)||(h=1)),h<1&&o.push(r),r.animationCallback(h),h>=1&&r.onComplete&&r.onComplete()}this.animations=o,this.animations.length>0?this.animationRequestId=this.chart.requestAnimFrame.call(window,function(){s.animate.call(s)}):this.chart.isAnimating=!1},V.prototype.cancelAllAnimations=function(){this.animations=[],this.animationRequestId&&this.chart.cancelRequestAnimFrame.call(window,this.animationRequestId),this.animationRequestId=null,this.chart.isAnimating=!1};var rt={yScaleAnimation:function(t,e){if(0!==t){var i=e.dest,a=e.source.canvas,n=e.animationBase,s=n-n*t;i.drawImage(a,0,0,a.width,a.height,0,s,i.canvas.width/at,t*i.canvas.height/at)}},xScaleAnimation:function(t,e){if(0!==t){var i=e.dest,a=e.source.canvas,n=e.animationBase,s=n-n*t;i.drawImage(a,0,0,a.width,a.height,s,0,t*i.canvas.width/at,i.canvas.height/at)}},xClipAnimation:function(t,e){if(0!==t){var i=e.dest,a=e.source.canvas;i.save(),t>0&&i.drawImage(a,0,0,a.width*t,a.height,0,0,a.width*t/at,a.height/at),i.restore()}},fadeInAnimation:function(t,e){if(0!==t){var i=e.dest,a=e.source.canvas;i.save(),i.globalAlpha=t,i.drawImage(a,0,0,a.width,a.height,0,0,i.canvas.width/at,i.canvas.height/at),i.restore()}},easing:{linear:function(t,e,i,a){return i*t/a+e},easeOutQuad:function(t,e,i,a){return-i*(t/=a)*(t-2)+e},easeOutQuart:function(t,e,i,a){return-i*((t=t/a-1)*t*t*t-1)+e},easeInQuad:function(t,e,i,a){return i*(t/=a)*t+e},easeInQuart:function(t,e,i,a){return i*(t/=a)*t*t*t+e}}},lt={drawMarker:function(t,e,i,a,n,s,o,r){if(i){var l=1;i.fillStyle=s?s:"#000000",i.strokeStyle=o?o:"#000000",i.lineWidth=r?r:0,"circle"===a?(i.moveTo(t,e),i.beginPath(),i.arc(t,e,n/2,0,2*Math.PI,!1),s&&i.fill(),r&&(o?i.stroke():(l=i.globalAlpha,i.globalAlpha=.15,i.strokeStyle="black",i.stroke(),i.globalAlpha=l))):"square"===a?(i.beginPath(),i.rect(t-n/2,e-n/2,n,n),s&&i.fill(),r&&(o?i.stroke():(l=i.globalAlpha,i.globalAlpha=.15,i.strokeStyle="black",i.stroke(),i.globalAlpha=l))):"triangle"===a?(i.beginPath(),i.moveTo(t-n/2,e+n/2),i.lineTo(t+n/2,e+n/2),i.lineTo(t,e-n/2),i.closePath(),s&&i.fill(),r&&(o?i.stroke():(l=i.globalAlpha,i.globalAlpha=.15,i.strokeStyle="black",i.stroke(),i.globalAlpha=l)),i.beginPath()):"cross"===a&&(i.strokeStyle=s,r=n/4,i.lineWidth=r,i.beginPath(),i.moveTo(t-n/2,e-n/2),i.lineTo(t+n/2,e+n/2),i.stroke(),i.moveTo(t+n/2,e-n/2),i.lineTo(t-n/2,e+n/2),i.stroke())}},drawMarkers:function(t){for(var e=0;e<t.length;e++){var i=t[e];lt.drawMarker(i.x,i.y,i.ctx,i.type,i.size,i.color,i.borderColor,i.borderThickness)}}},ht={Chart:function(t,e){var i=new A(t,e,this);this.render=function(){i.render(this.options)},this.options=i._options},addColorSet:function(t,e){N[t]=e},addCultureInfo:function(t,e){j[t]=e},formatNumber:function(t,e,i){if(i=i||"en",e=e||"#,##0.##",j[i])return Z(t,e,new O(i));throw"Unknown Culture Name"},formatDate:function(t,e,i){if(i=i||"en",e=e||"DD MMM YYYY",j[i])return Q(t,e,new O(i));throw"Unknown Culture Name"}};ht.Chart.version="v1.7.0 GA",window.CanvasJS=ht}();