/* CanvasJS Chart - v3.15.3 GA - https://canvasjs.com/ Copyright 2025 fenopix --------------------- License Information -------------------- CanvasJS Chart is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. https://canvasjs.com/license/ */ /*tslint:disable*/ /*eslint-disable*/ /*jshint ignore:start*/ (function(){function sa(m,v){m.prototype=gb(v.prototype);m.prototype.constructor=m;m.base=v.prototype}function gb(m){function v(){}v.prototype=m;return new v}function Ua(m,v,l){"millisecond"===l?m.setMilliseconds(m.getMilliseconds()+1*v):"second"===l?m.setSeconds(m.getSeconds()+1*v):"minute"===l?m.setMinutes(m.getMinutes()+1*v):"hour"===l?m.setHours(m.getHours()+1*v):"day"===l?m.setDate(m.getDate()+1*v):"week"===l?m.setDate(m.getDate()+7*v):"month"===l?m.setMonth(m.getMonth()+1*v):"year"===l&&m.setFullYear(m.getFullYear()+ 1*v);return m}function ga(m,v){var l=!1;0>m&&(l=!0,m*=-1);m=""+m;for(v=v?v:1;m.length>16).toString(16),l=((m&65280)>>8).toString(16);m=((m&255)>>0).toString(16);v=2>v.length?"0"+v:v;l=2>l.length?"0"+l:l;m=2>m.length?"0"+m:m;return"#"+v+l+m}function hb(m,v){var l=this.length>>> 0,t=Number(v)||0,t=0>t?Math.ceil(t):Math.floor(t);for(0>t&&(t+=l);t=navigator.userAgent.search("MSIE")&&m._menuButton.childNodes[0]&&S(m._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"})):xa(m._menuButton);else if(m.exportEnabled&&t){var v=!1;m._menuButton=document.createElement("button");va(m,m._menuButton,"menu");m._toolBar.appendChild(m._menuButton); Q(m._menuButton,"touchstart",function(m){v=!0},m.allDOMEventHandlers);Q(m._menuButton,"click",function(){"none"!==m._dropdownMenu.style.display||m._dropDownCloseTime&&500>=(new Date).getTime()-m._dropDownCloseTime.getTime()||(m._dropdownMenu.style.display="block",m._menuButton.blur(),m._dropdownMenu.focus())},m.allDOMEventHandlers,!0);Q(m._menuButton,"mousemove",function(){v||(S(m._menuButton,{backgroundColor:m.toolbar.itemBackgroundColorOnHover,color:m.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&& S(m._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},m.allDOMEventHandlers,!0);Q(m._menuButton,"mouseout",function(){v||(S(m._menuButton,{backgroundColor:m.toolbar.itemBackgroundColor,color:m.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&S(m._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},m.allDOMEventHandlers,!0)}if(m.exportEnabled&&m._dropdownMenu){var l=m.theme&&-1!==m.theme.indexOf("dark")?"black":"#888888";S(m._dropdownMenu, {backgroundColor:m.toolbar.itemBackgroundColor,color:m.toolbar.fontColor,boxShadow:"2px 2px 10px "+l});for(var l=m._dropdownMenu.childNodes,D=[m._cultureInfo.printText,m._cultureInfo.saveJPGText,m._cultureInfo.savePNGText],X=0;Xl;l++)if(m[l]!==m[l+4]|m[l]!==m[l+8]|m[l]!==m[l+12]){v=!1;break}return v?m[0]<<16|m[1]<<8|m[2]:0}function ia(m,v,l){return m in v?v[m]:l[m]}function Pa(m,v,Aa,D){t&&db?(D=!l(D)&&D?m.getContext("2d",{willReadFrequently:!0}):m.getContext("2d"), Qa=D.webkitBackingStorePixelRatio||D.mozBackingStorePixelRatio||D.msBackingStorePixelRatio||D.oBackingStorePixelRatio||D.backingStorePixelRatio||1,ma=Wa/Qa,m.width=v*ma,m.height=Aa*ma,Wa!==Qa&&(m.style.width=v+"px",m.style.height=Aa+"px",D.scale(ma,ma))):(m.width=v,m.height=Aa)}function lb(m){if(!mb){var v=!1,l=!1;"undefined"===typeof ta.Chart.creditHref?(m.creditHref=na("iuuqr;..b`ow`rkr/bnl."),m.creditText=na("B`ow`rKR/bnl")):(v=m.updateOption("creditText"),l=m.updateOption("creditHref"));if(m.creditHref&& m.creditText){m._creditLink||(m._creditLink=document.createElement("a"),m._creditLink.setAttribute("class","canvasjs-chart-credit"),m._creditLink.setAttribute("title","JavaScript Charts"),S(m._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:m.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}),m._creditLink.setAttribute("tabIndex",-1),m._creditLink.setAttribute("target","_blank")); if(0===m.renderCount||v||l)m._creditLink.setAttribute("href",m.creditHref),m._creditLink.innerHTML=m.creditText;m._creditLink&&m.creditHref&&m.creditText?(m._creditLink.parentElement||m._canvasJSContainer.appendChild(m._creditLink),m._creditLink.style.top=m.height-14+"px"):m._creditLink.parentElement&&m._canvasJSContainer.removeChild(m._creditLink)}}}function wa(m,v,l){Ka&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var D=document.createElement("canvas");D.setAttribute("class","canvasjs-chart-canvas"); Pa(D,m,v,l);t||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(D);return D}function S(m,v){for(var l in v)m.style[l]=v[l]}function eb(m){return m.currentStyle?m.currentStyle:window&&window.getComputedStyle?window.getComputedStyle(m,null):m.style}function va(m,v,l){v.getAttribute("state")||(v.style.backgroundColor=m.toolbar.itemBackgroundColor,v.style.color=m.toolbar.fontColor,v.style.border="none",S(v,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"})); v.getAttribute("state")!==l&&(v.setAttribute("state",l),v.setAttribute("type","button"),S(v,{padding:"5px 12px",cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),v.innerHTML=""+m._cultureInfo[l+"Text"]+"",S(v.childNodes[0],{height:"95%",pointerEvents:"none"}));v.setAttribute("title",m._cultureInfo[l+"Text"])}function Oa(){for(var m=null,v=0;vd?"a":"p";case "tt":return 12>d?"am":"pm";case "T":return 12>d?"A":"P";case "TT":return 12>d?"AM":"PM";case "K":return U?"UTC":(String(C).match(u)|| [""]).pop().replace(z,"");case "z":return(0m;if(1>Math.abs(m)){var t=parseInt(m.toString().split("e-")[1]);t&&(m=(l?-1*m:m)*Math.pow(10,t-1),m="0."+Array(t).join("0")+m.toString().substring(2),m=l?"-"+m:m)}else t=parseInt(m.toString().split("+")[1]), 20m?!0:!1;D&&(m*=-1);var X=t?t.decimalSeparator:".",u=t?t.digitGroupSeparator:",",z="";l=String(l);var z=1,C=t="",E=-1,H=[],P=[],S=0,Q=0,J=0,U=!1,V=0,C=l.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);l=null;for(var K=0;C&&KE)E=K;else{if("%"===l)z*=100;else if("\u2030"===l){z*=1E3;continue}else if(","=== l[0]&&"."===l[l.length-1]){z/=Math.pow(1E3,l.length-1);E=K+l.length-1;continue}else"E"!==l[0]&&"e"!==l[0]||"0"!==l[l.length-1]||(U=!0);0>E?(H.push(l),"#"===l||"0"===l?S++:","===l&&J++):(P.push(l),"#"!==l&&"0"!==l||Q++)}U&&(l=Math.floor(m),C=-Math.floor(Math.log(m)/Math.LN10+1),V=0===m?0:0===l?-(S+C):rb(l).length-S,z/=Math.pow(10,V));0>E&&(E=K);z=(m*z).toFixed(Q);l=z.split(".");z=(l[0]+"").split("");m=(l[1]+"").split("");z&&"0"===z[0]&&z.shift();for(U=C=K=Q=E=0;0V?l.replace("+", "").replace("-",""):l.replace("-",""),t+=l.replace(/[0]+/,function(a){return ga(V,a.length)}));u="";for(H=!1;0V?l.replace("+","").replace("-",""):l.replace("-",""),u+=l.replace(/[0]+/,function(a){return ga(V, a.length)}));t+=(H?X:"")+u;return D?"-"+t:t},Sa=function(m){var l=0,t=0;m=m||window.event;m.offsetX||0===m.offsetX?(l=m.offsetX,t=m.offsetY):m.layerX||0==m.layerX?(l=m.layerX,t=m.layerY):(l=m.pageX-m.target.offsetLeft,t=m.pageY-m.target.offsetTop);return{x:l,y:t}},db=!0,Wa=window.devicePixelRatio||1,Qa=1,ma=db?Wa/Qa:1,Z=function(m,l,t,D,u,C,z,E,H,P,U,S,Q){"undefined"===typeof Q&&(Q=1);z=z||0;E=E||"black";var J=15t)C=E-1;else break}u>t&&1E&&(z=t.pop(),D-=z.height,C=H)}this._wrappedText={lines:t,width:C,height:D};this.width=C+(this.leftPadding+this.rightPadding);this.height=D+(this.topPadding+this.bottomPadding);this.ctx.font=u};ka.prototype._getFontString=function(){var l;l=""+(this.fontStyle?this.fontStyle+" ":"");l+=this.fontWeight?this.fontWeight+" ":"";l+=this.fontSize?this.fontSize+"px ":"";var v=this.fontFamily?this.fontFamily+"":"";!t&&v&&(v=v.split(",")[0],"'"!==v[0]&& '"'!==v[0]&&(v="'"+v+"'"));return l+=v};sa(Ya,V);sa(Da,V);Da.prototype.setLayout=function(){var m=this.dockInsidePlotArea?this.chart.plotArea:this.chart,t=m.layoutManager.getFreeSpace(),u=t.x1,D=t.y1,C=0,D=0,u=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?40:0,E;this.textAlign=l(this.options.textAlign)?this.horizontalAlign:this.textAlign;"center"===this.verticalAlign?"left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth= t.height-4),D=0.5*t.width-this.margin-2):(null===this.maxWidth&&(this.maxWidth=t.width-4),D=0.5*t.height-4):(null===this.maxWidth&&(this.maxWidth=t.width-4-u*("center"===this.horizontalAlign?2:1)),D=0.5*t.height-this.margin-2,C=0);if(this.text){l(this.padding)||"number"!==typeof this.padding?l(this.padding)||"object"!==typeof this.padding||(E=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,E+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0): E=2*this.padding;this.wrap||(D=Math.min(D,1.5*this.fontSize+E));var z=new ka(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,textAlign:this.textAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:D,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"middle"}), H=z.measureText();"center"===this.verticalAlign?("left"===this.horizontalAlign?(u=t.x1+2+z._lineHeight/2,D=t.y2-2-(this.maxWidth/2-H.width/2),C=-90,E="left",this.width=H.height,this.height=H.width):"right"===this.horizontalAlign?(u=t.x2-2-z._lineHeight/2,D=t.y1+2+(this.maxWidth/2-H.width/2),C=90,E="right",this.width=H.height,this.height=H.width):(D=t.y1+2+(t.height/2-H.height/2)+z._lineHeight/2,u=t.x1+2+(t.width/2-H.width/2),E="center",this.width=H.width,this.height=H.height),t="center"):("bottom"=== this.verticalAlign?(D=t.y2-2-H.height+z._lineHeight/2,E="bottom"):(D=t.y1+2+z._lineHeight/2,E="top"),u="left"===this.horizontalAlign?t.x1+2:"right"===this.horizontalAlign?t.x2-2-H.width-u:t.x1+t.width/2-H.width/2,t=this.horizontalAlign,this.width=H.width,this.height=H.height);z.x=u;z.y=D;z.angle=C;z.horizontalAlign=t;this._textBlock=z;m.layoutManager.registerSpace(E,{width:this.width+("left"===E||"right"===E?this.margin+2:0),height:this.height+("top"===E||"bottom"===E?this.margin+2:0)});this.bounds= {x1:u,y1:D-z._lineHeight/2,x2:u+this.width,y2:D+this.height-z._lineHeight/2};"center"===this.verticalAlign&&("left"===this.horizontalAlign&&(this.bounds={x1:u-z._lineHeight/2,y1:D-this.height,x2:u+this.width-z._lineHeight/2,y2:D}),"right"===this.horizontalAlign&&(this.bounds={x1:u-z._lineHeight/2,y1:D,x2:u+this.width-z._lineHeight/2,y2:D+this.height}));this.ctx.textBaseline="top"}};Da.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};sa(La,V);La.prototype.setLayout=Da.prototype.setLayout; La.prototype.render=Da.prototype.render;Za.prototype.get=function(l,t){var u=null;0a[g].x&&0l?{x:a[h].x+l/3,y:a[h].y+b/3}:{x:a[h].x,y:a[h].y+(1===c.length?0:b/9)};h=e;g=0===h?0:h-1;k=h===a.length-1?h:h+1;b=Math.abs((a[k].x-a[g].x)/(0===a[h].x-a[g].x?0.01:a[h].x-a[g].x))*(d-1)/2+1;l=(a[k].x-a[g].x)/b;b=(a[k].y-a[g].y)/b;c[c.length]=a[h].x>a[g].x&&0l?{x:a[h].x-l/3,y:a[h].y-b/3}:{x:a[h].x,y:a[h].y-b/9};c[c.length]=a[e]}return c}function D(a,d,c,b, e,g,k,h,l,n){var p=0;n?(k.color=g,h.color=g):n=1;p=l?Math.abs(e-c):Math.abs(b-d);p=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new ca(this.chart, this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+ 1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function ea(a,d,c,b,e,g){ea.base.constructor.call(this,"Break",d,c,b,g);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=g;this.optionsName=d;this.isOptionsInArray=!0;this.type=c.type?this.type:g.type;this.fillOpacity=l(c.fillOpacity)?g.fillOpacity:this.fillOpacity;this.lineThickness=l(c.lineThickness)?g.lineThickness:this.lineThickness; this.color=c.color?this.color:g.color;this.lineColor=c.lineColor?this.lineColor:g.lineColor;this.lineDashType=c.lineDashType?this.lineDashType:g.lineDashType;!l(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!l(this.endValue)&&this.endValue.getTime&&(this.endValue=this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&this._zoomButton.childNodes[0]&&S(this._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});else{var c=!1;xa(this._zoomButton=document.createElement("button"));va(this,this._zoomButton,"pan");this._toolBar.appendChild(this._zoomButton); S(this._zoomButton,{border:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,height:2*this.toolbar.buttonBorderThickness+25+"px",width:2*this.toolbar.buttonBorderThickness+40+"px",backgroundClip:"padding-box"});Q(this._zoomButton,"touchstart",function(a){c=!0},this.allDOMEventHandlers);Q(this._zoomButton,"click",function(){a.zoomEnabled?(a.zoomEnabled=!1,a.panEnabled=!0,va(a,a._zoomButton,"zoom")):(a.zoomEnabled=!0,a.panEnabled=!1,va(a,a._zoomButton,"pan"));a.render()}, this.allDOMEventHandlers);Q(this._zoomButton,"mousemove",function(){c?c=!1:(S(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&S(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);Q(this._zoomButton,"mouseout",function(){c||(S(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor, transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&S(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton?(S(this._resetButton,{border:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,borderLeft:"none",height:2*this.toolbar.buttonBorderThickness+25+"px",width:this.toolbar.buttonBorderThickness+40+"px",backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}), 0>=navigator.userAgent.search("MSIE")&&this._resetButton.childNodes[0]&&S(this._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}),this._resetButton.title=this._cultureInfo.resetText):(c=!1,xa(this._resetButton=document.createElement("button")),va(this,this._resetButton,"reset"),S(this._resetButton,{border:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,borderLeft:"none",height:2*this.toolbar.buttonBorderThickness+25+"px",width:this.toolbar.buttonBorderThickness+ 40+"px",backgroundClip:"padding-box"}),this._toolBar.appendChild(this._resetButton),Q(this._resetButton,"touchstart",function(a){c=!0},this.allDOMEventHandlers),Q(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,va(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled= !1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&S(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});xa(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null, maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging",a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.stockChart&&(a.stockChart.rangeUpdatedBy=!a.stockChart.navigator.slider||l(a.stockChart.navigator.slider.options.minimum)&&l(a.stockChart.navigator.slider.options.maximum)?!a.stockChart.rangeSelector.enabled||!a.stockChart.rangeSelector.inputFields.enabled|| l(a.stockChart.rangeSelector.inputFields.options.startValue)&&l(a.stockChart.rangeSelector.inputFields.options.endValue)?null:"inputFields":"navigator",a.stockChart.rangeUpdatedBy=null,a.stockChart.rangeSelector.sessionVariables._clickedRangeButtonIndex=null,a.syncCharts(null,null),!l(a.stockChart._selectedRangeButtonIndex)&&a.stockChart._selectedRangeButtonIndex=navigator.userAgent.search("MSIE")&&S(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),Q(this._resetButton,"mouseout",function(){c||(S(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor, transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&S(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),Oa(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled= !1))}else this.panEnabled=this.zoomEnabled=!1;kb(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?va(a,a._zoomButton,"zoom"):va(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&va(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(d in this.toolTip.options)this.toolTip.options.hasOwnProperty(d)&&this.toolTip.updateOption(d)};v.prototype._updateSize= function(){var a;a=[this.canvas,this.overlaidCanvas,this._eventManager.ghostCanvas];var d=0,c=0,b=eb(this.container);this.options.width?d=this.width:this.width=d=0b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&&(b.name="DataSeries "+a);null=== b.color?1a&&"undefined"!==typeof L.startTimePercent?a>=L.startTimePercent&&L.animationCallback(L.easingFunction(a-L.startTimePercent,0,1,1-L.startTimePercent),L):L.animationCallback(L.easingFunction(a,0,1,1),L);p.dispatchEvent("dataAnimationIterationEnd",{chart:p})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,g=!1,k=0;kc.max&&(c.max=b);ed.max&&"number"===typeof e&&(d.max=e);if(0R&&(R=1/R);c.minDiff>R&&1!==R&&(c.minDiff=R)}else R=b-h.dataPoints[l-1].x,0>R&&(R*=-1),c.minDiff>R&&0!==R&&(c.minDiff=R);null!==e&&null!==h.dataPoints[l-1].y&&(a.axisY.logarithmic?(R=e/h.dataPoints[l-1].y,1>R&&(R=1/R),d.minDiff>R&&1!==R&&(d.minDiff=R)):(R=e-h.dataPoints[l-1].y,0>R&& (R*=-1),d.minDiff>R&&0!==R&&(d.minDiff=R)))}if(bf&&!p)p=!0;else if(b>f&&p)continue;h.dataPoints[l].label&&(a.axisX.labels[b]=h.dataPoints[l].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&rd.viewPortMax&&"number"===typeof e&&(d.viewPortMax=e))}}h.axisX.valueType=h.xValueType=g?"dateTime":"number"}}; v.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,g=!1,k=[],h=[],L=Infinity,n=-Infinity,p={},r=0;rc.max&&(c.max=b);if(0w&&(w=1/w);c.minDiff>w&&1!==w&&(c.minDiff=w)}else w=b-q.dataPoints[f-1].x,0>w&&(w*=-1),c.minDiff>w&&0!==w&&(c.minDiff=w);null!==e&&null!==q.dataPoints[f-1].y&&(a.axisY.logarithmic?0w&&(w=1/w),d.minDiff>w&&1!==w&&(d.minDiff=w)):(w=e-q.dataPoints[f- 1].y,0>w&&(w*=-1),d.minDiff>w&&0!==w&&(d.minDiff=w)))}if(bx&&!m)m=!0;else if(b>x&&m)continue;q.dataPoints[f].label&&(a.axisX.labels[b]=q.dataPoints[f].label);bc.viewPortMax&&(c.viewPortMax=b);null===q.dataPoints[f].y?c.viewPortMin===b&&td.max&&(d.max=a),fc.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=a)));for(f in h)h.hasOwnProperty(f)&&!isNaN(f)&&(a=h[f],ad.max&&(d.max=Math.max(a,n)),fc.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=Math.max(a,n))))}};v.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d= a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,g=!1,k=!1,h=!1,L={},n=[],p=0;pc.max&&(c.max=b);if(0x&&(x=1/x);c.minDiff>x&&1!==x&&(c.minDiff=x)}else x=b-r.dataPoints[q-1].x,0>x&&(x*=-1),c.minDiff>x&&0!==x&&(c.minDiff=x);l(e)||null===r.dataPoints[q-1].y||(a.axisY.logarithmic?0x&&(x=1/x),d.minDiff>x&&1!==x&&(d.minDiff=x)):(x=e-r.dataPoints[q-1].y,0>x&&(x*=-1),d.minDiff>x&&0!==x&&(d.minDiff=x)))}n[b]=n[b]?n[b]+Math.abs(e):Math.abs(e);if(bs&&!R)R=!0;else if(b>s&&R)continue;r.dataPoints[q].label&&(a.axisX.labels[b]=r.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&me&&(h=!0))}}r.axisX.valueType=r.xValueType=g?"dateTime":"number"}a.axisY.logarithmic?(d.max=l(d.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(d.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),d.min=l(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):k&&!h?(d.max=l(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=l(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):k&&h?(d.max=l(d.viewPortMax)? 99:Math.max(d.viewPortMax,99),d.min=l(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99)):!k&&h&&(d.max=l(d.viewPortMax)?-1:Math.max(d.viewPortMax,-1),d.min=l(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99));d.viewPortMin=d.min;d.viewPortMax=d.max;a.dataPointYSums=n}};v.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,g,k,h=!1,l=0;lc.max&&(c.max=b);gd.max&&(d.max=k);0R&&(R=1/R),c.minDiff>R&&1!==R&&(c.minDiff=R)):(R=b-n.dataPoints[p-1].x,0>R&&(R*=-1),c.minDiff>R&&0!==R&&(c.minDiff=R)),e&&(null!==e[0]&&n.dataPoints[p-1].y&&null!==n.dataPoints[p-1].y[0])&&(a.axisY.logarithmic?(R=e[0]/n.dataPoints[p-1].y[0],1>R&&(R=1/R),d.minDiff>R&&1!==R&&(d.minDiff=R)):(R=e[0]-n.dataPoints[p-1].y[0],0>R&&(R*=-1),d.minDiff>R&&0!==R&&(d.minDiff= R))));if(!(bs&&!q)q=!0;else if(b>s&&q)continue;n.dataPoints[p].label&&(a.axisX.labels[b]=n.dataPoints[p].label);bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(x=0;xd.viewPortMax&&(d.viewPortMax=k))}}n.axisX.valueType=n.xValueType=h?"dateTime":"number"}}; v.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,g=!1,k=0;kc.max&&(c.max=b),h.dataPointEOs[l].cumulativeSum< d.min&&(d.min=h.dataPointEOs[l].cumulativeSum),h.dataPointEOs[l].cumulativeSum>d.max&&(d.max=h.dataPointEOs[l].cumulativeSum),0r&&(r=1/r),c.minDiff>r&&1!==r&&(c.minDiff=r)):(r=b-h.dataPoints[l-1].x,0>r&&(r*=-1),c.minDiff>r&&0!==r&&(c.minDiff=r)),null!==e&&null!==h.dataPoints[l-1].y&&(a.axisY.logarithmic?(e=h.dataPointEOs[l].cumulativeSum/h.dataPointEOs[l-1].cumulativeSum,1>e&&(e=1/e),d.minDiff>e&&1!==e&&(d.minDiff=e)):(e=h.dataPointEOs[l].cumulativeSum- h.dataPointEOs[l-1].cumulativeSum,0>e&&(e*=-1),d.minDiff>e&&0!==e&&(d.minDiff=e)))),!(bf&&!p)p=!0;else if(b>f&&p)continue;h.dataPoints[l].label&&(a.axisX.labels[b]=h.dataPoints[l].label);bc.viewPortMax&&(c.viewPortMax=b);0d.viewPortMax&&(d.viewPortMax=h.dataPointEOs[l-1].cumulativeSum)); h.dataPointEOs[l].cumulativeSumd.viewPortMax&&(d.viewPortMax=h.dataPointEOs[l].cumulativeSum)}h.axisX.valueType=h.xValueType=g?"dateTime":"number"}};v.prototype.calculateAutoBreaks=function(){function a(a,b,c,e){if(e)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*(0a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&&1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var f=a.axisY.dataInfo,d=a.axisX.dataInfo,g,k=d.min,n=d.max,p=f.min,r=f.max,d=d._dataRanges,f=f._dataRanges,h,q=0,L=0;Lm.dataPoints.length))for(q=0;qd[h].max&&(d[h].max=g)),c){var t=(r+1-p)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((g="waterfall"===a.type?m.dataPointEOs[q].cumulativeSum:m.dataPoints[q].y)&&g.length)for(var da=0;daf[h].max&&(f[h].max=g[da]);else l(g)||(h=Math.floor((g-p)/t),gf[h].max&&(f[h].max=g))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,f=b.max,d=b._dataRanges,g,k=0,n=0;np.dataPoints.length))for(k= 0;kd[g].max&&(d[g].max=b)}}for(var b,e=this,g=!1,k=0;kp[f].max&&(p[f].max=r)}delete this._axes[k].dataInfo.dataPointYPositiveSums}if(this._axes[k].dataInfo.dataPointYNegativeSums){q=this._axes[k].dataInfo.dataPointYNegativeSums;p=n;for(h in q)q.hasOwnProperty(h)&&!isNaN(h)&&(r=-1*q[h],l(r)||(f=Math.floor((r-L)/b),rp[f].max&&(p[f].max=r)));delete this._axes[k].dataInfo.dataPointYNegativeSums}for(h=0;hb&&g.push({diff:r,start:p,end:L});break}else h++;if(this._axes[k].scaleBreaks.customBreaks)for(h=0;hthis.plotArea.x1&&this.sessionVariables.mouseXthis.plotArea.y1&&this.sessionVariables.mouseYthis.plotArea.x1&&this.sessionVariables.mouseXthis.plotArea.y1&&this.sessionVariables.mouseYthis.plotArea.x1&&this.sessionVariables.mouseXthis.plotArea.y1&&this.sessionVariables.mouseYthis.plotArea.x1&&this.sessionVariables.mouseXthis.plotArea.y1&&this.sessionVariables.mouseY=e.x1&&(a<=e.x2&&d>=e.y1&&d<=e.y2)&&(b=e.id)}return b};v.prototype.getAutoFontSize=qb;v.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};v.prototype.clearCanvas=pb;v.prototype.attachEvent=function(a){this._events.push(a)}; v.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var d=[],c=a.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":d=["mousemove","mousedown"];this._lastTouchData=Sa(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":d=["mousemove"];break;case "touchend":case "MSPointerUp":var g=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,d="touchstart"===this._lastTouchEventType|| "MSPointerDown"===this._lastTouchEventType||300>g?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1g)this._lastTouchData.scroll=!0,this.stockChart&&(this.stockChart._chartScroll=!0)}catch(h){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag= !1;else for(c=0;c=k.x1&&c.x<=k.x2&&c.y>=k.y1&&c.y<=k.y2){e[b].call(e.context,c.x,c.y);"mousedown"===b&&!0===e.capture?(v.capturedEventParam=e,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler, !1)):"mouseup"===b&&(e.chart.overlaidCanvas.releaseCapture?e.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else e=null;a.target.style.cursor=e&&e.cursor?e.cursor:this._defaultCursor}g=this.plotArea;if(c.xg.x2||c.yg.y2||"mouseout"===b){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):(this.resetOverlayedCanvas(), this.sessionVariables._dataHighlighted=!1);for(g=0;gc.maximum&&(g=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/g,c.sessionVariables.newViewportMaximum=c.viewportMaximum/g,k=!0):c.viewportMinimum c.maximum&&(g=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-g,c.sessionVariables.newViewportMaximum=c.viewportMaximum-g,k=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var h=0;hf)var m=f,f=q,q=m;if(r.scaleBreaks)for(m=0;!g&&m= f;if(isFinite(r.dataInfo.minDiff))if(m=r.getApparentDifference(q,f,null,!0),!(g||!(this.panEnabled&&r.scaleBreaks&&r.scaleBreaks._appliedBreaks.length)&&(r.logarithmic&&mr.maximum))l.push(r),p.push({val1:q,val2:f}),h=!0;else if(!e){h=!1;break}}return{isValid:h,axesWithValidRange:l,axesRanges:p}};v.prototype.preparePlotArea=function(){var a=this.plotArea;!t&&(0c.lineCoordinates.x2?d.x2:c.lineCoordinates.x2;a.y2=d.y1>c.lineCoordinates.y2?d.y1:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0< this.axisY2.length&&this.axisY2[0]&&(c=this.axisY2[0],a.x1=d.x1c.lineCoordinates.x2?d.x2:c.lineCoordinates.x2,a.y2=d.y2>c.lineCoordinates.y2?d.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else d=this.layoutManager.getFreeSpace(),a.x1=d.x1,a.x2=d.x2,a.y1=d.y1,a.y2=d.y2,a.width=d.width,a.height=d.height;t||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left= a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||p.point.yc.y2+1)continue}else if("rangearea"===r||"rangesplinearea"===r){if(p.dataPoint.xI.viewportMaximum||Math.max.apply(null,p.dataPoint.y)O.viewportMaximum)continue}else if(0<= r.indexOf("line")||0<=r.indexOf("area")||0<=r.indexOf("bubble")||0<=r.indexOf("scatter")){if(p.dataPoint.xI.viewportMaximum||p.dataPoint.yO.viewportMaximum)continue}else if(0<=r.indexOf("column")){if(p.dataPoint.xI.viewportMaximum||(0O.viewportMaximum)continue}else if("waterfall"===r||"error"===r&&!p.axisSwapped){if(p.dataPoint.xI.viewportMaximum||p.bounds.y1>c.y2||p.bounds.y2I.viewportMaximum||p.bounds.x1>c.x2||p.bounds.x2I.viewportMaximum|| Math.max.apply(null,p.dataPoint.y)O.viewportMaximum)continue}else if(p.dataPoint.xI.viewportMaximum)continue;k=h=2;"horizontal"===A?(L=y.width,n=y.height):(n=y.width,L=y.height);if("normal"===this.plotInfo.axisPlacement){if(0<=r.indexOf("line")||0<=r.indexOf("area"))ja="auto",h=4;else if(0<=r.indexOf("stacked"))"auto"===ja&&(ja="inside");else if("bubble"===r||"scatter"===r)ja="inside";q=p.point.x-L/2+("horizontal"=== A?0:y._lineHeight/2);if("inside"!==ja)e=c.y1,g=c.y2,0p.point.y,!ba||(0<=r.indexOf("line")||0<=r.indexOf("area"))||(f-=b))):(f=p.point.y+y._lineHeight/2+h+b,f>g-n+y._lineHeight/2-h&&(f="auto"===ja?Math.min(p.point.y,g)+y._lineHeight/2-n-h-b:g+y._lineHeight/2-n-h-b,ba=f-("horizontal"===A?y._lineHeight/2:n)p.bounds.y2-p.bounds.y1&&(f-=n/2+h),0>f-y._lineHeight/2&&(f+=Math.abs(f-y._lineHeight/2)<=(p.bounds.y2- p.bounds.y1)/2+h?Math.abs(f-y._lineHeight/2):(p.bounds.y2-p.bounds.y1)/2+h)}else f=Math.min(p.point.y,b),f>g-n-h&&("bubble"===r||"scatter"===r)&&(f=Math.min(p.point.y+h,c.y2-n-h));f=Math.min(f,g)}}else 0<=r.indexOf("line")||0<=r.indexOf("area")||0<=r.indexOf("scatter")?(ja="auto",k=4):0<=r.indexOf("stacked")?"auto"===ja&&(ja="inside"):"bubble"===r&&(ja="inside"),f=p.point.y+y._lineHeight/2-n/2,"inside"!==ja?(g=c.x1,e=c.x2,0>u?(q=p.point.x-L+("horizontal"===A?0:y._lineHeight/2)-k-b,("horizontal"=== A?q:q-y._lineHeight/2)p.point.x)&&(q-=b))):(q=p.point.x+("horizontal"===A?0:y._lineHeight/2)+k+b,("horizontal"===A?q:q-y._lineHeight/2)>e-L-k-b&&(q="auto"===ja?Math.min(p.point.x,e)-("horizontal"===A?L:L-y._lineHeight/2)-k-b:e-L-k+("horizontal"===A?0:y._lineHeight/2),(ba=q-("horizontal"===A?0:y._lineHeight/2)u?Math.max(p.bounds.x1,c.x1):Math.min(p.bounds.x2,c.x2)-L-k+("horizontal"===A?0:y._lineHeight/2):(Math.max(p.bounds.x1,c.x1)+Math.min(p.bounds.x2,c.x2))/2-L/2+("horizontal"===A?0:y._lineHeight/2),q=0>u?b:Math.min(p.point.x,b),q=Math.max(q,g+("horizontal"===A?0:y._lineHeight/2+h)));"vertical"===A&&(f+=n-y._lineHeight/2,0<="ohlc candlestick boxandwhisker column rangecolumn stackedcolumn stackedcolumn100 error".split(" ").indexOf(r)&& (ba=0p.point.y:f-("horizontal"===A?y._lineHeight/2:n)r.indexOf("bar")&&("error"!==r||!p.axisSwapped)&&p.point.x>c.x1&&p.point.xc.y1&&p.point.yu&&f-n>p.point.y?f-n:p.point.y:0u&&f-y._lineHeight/2>p.point.y?f-y._lineHeight/2:p.point.y):d.lineTo(q+L/2-("horizontal"===A?0:y._lineHeight/2),f+("vertical"===A?f-n=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var g=[],k,h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!u)))if("number"!==typeof p[s].y)0p[s].y===a.axisY.reversed?1:-1,color:m})}c.stroke();t&&b.stroke()}}Y.drawMarkers(g);t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderStepLine=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var g= [],k,h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!u)))if("number"!==typeof p[s].y)0p[s].y===a.axisY.reversed?1:-1,color:m})}c.stroke();t&&b.stroke()}}Y.drawMarkers(g);t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderSpline=function(a){function d(a){a=u(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save();var g=this.plotArea;b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();for(var k=[],h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!x)))if("number"!==typeof p[B].y)0p[B].y===a.axisY.reversed?1:-1,color:m});x=!1}d(w)}Y.drawMarkers(k);t&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(g.x1,g.y1,g.width,g.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b= null,e=this.plotArea,g=0,k,h,l,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,r=a.axisX.dataInfo.minDiff,q=a.axisX.conversionParameters.range?a.axisX.conversionParameters.range:a.axisX.range; isFinite(r)||(r=0.3*Math.abs(q));r=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(r)/Math.log(q):Math.abs(r)/Math.abs(q))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>p&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(r=p);c.save();t&&this._eventManager.ghostCtx.save(); c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(p=0;pa.axisX.dataInfo.viewPortMax)&&"number"===typeof m[g].y){k= a.axisX.convertValueToPixel(l);h=a.axisY.convertValueToPixel(m[g].y);k=a.axisX.reversed?k+a.plotType.totalDataSeries*r/2-(a.previousDataSeriesCount+p)*r<<0:k-a.plotType.totalDataSeries*r/2+(a.previousDataSeriesCount+p)*r<<0;var B=a.axisX.reversed?k-r<<0:k+r<<0,s;if(0<=m[g].y){if(s=n,h>s){var x=h;h=s;s=x}}else s=h,h=n,h>s&&(x=h,h=s,s=x);var x=Math.max(h,e.y1),w=Math.min(s,e.y2),b=m[g].color?m[g].color:f._colorSet[g%f._colorSet.length];Z(c,a.axisX.reversed?B:k,x,a.axisX.reversed?k:B,w,b,0,null,y&&(a.axisY.reversed? 0>m[g].y:0<=m[g].y),(a.axisY.reversed?0<=m[g].y:0>m[g].y)&&y,!1,!1,f.fillOpacity);b=f.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:g,x1:k,y1:x,x2:B,y2:w};b=P(b);t&&Z(this._eventManager.ghostCtx,a.axisX.reversed?B:k,x,a.axisX.reversed?k:B,w,b,0,null,!1,!1,!1,!1);(m[g].indexLabel||f.indexLabel||m[g].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:m[g],dataSeries:f,point:{x:k+(B-k)/2,y:0> m[g].y===a.axisY.reversed?h:s},direction:0>m[g].y===a.axisY.reversed?1:-1,bounds:{x1:k,y1:Math.min(h,s),x2:B,y2:Math.max(h,s)},color:b})}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height), c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:na.axisY.bounds.y2?a.axisY.bounds.y2:n}}};v.prototype.renderStackedColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=[],k=[],h=[],l=[],n=0,p,r, q,f=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),n=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,y=a.axisX.dataInfo.minDiff,B=a.axisX.conversionParameters.range?a.axisX.conversionParameters.range:a.axisX.range;isFinite(y)||(y=0.3*Math.abs(B));y=this.options.dataPointWidth?this.dataPointWidth: 0.9*(e.width*(a.axisX.logarithmic?Math.log(y)/Math.log(B):Math.abs(y)/Math.abs(B))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&n>m&&(n=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(y=m);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(m=0;ma.axisX.dataInfo.viewPortMax)&&"number"===typeof x[n].y){p=a.axisX.convertValueToPixel(q);p=p-a.plotType.plotUnits.length*y/2+a.index* y<<0;var u=p+y<<0,A;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=x[n].y)l[q]=x[n].y+(l[q]?l[q]:0),A=a.axisY.convertValueToPixel(l[q]),r="undefined"!==typeof k[q]?k[q]:f,k[q]=A;else if(r=a.axisY.convertValueToPixel(x[n].y),0<=x[n].y){var M="undefined"!==typeof g[q]? g[q]:0;r-=M;A=f-M;g[q]=M+(A-r)}else M=k[q]?k[q]:0,A=r+M,r=f+M,k[q]=M+(A-r);b=x[n].color?x[n].color:s._colorSet[n%s._colorSet.length];q=Math.max(r,e.y1);M=Math.min(A,e.y2);Z(c,p,a.axisY.reversed?M:q,u,a.axisY.reversed?q:M,b,0,null,w&&(a.axisY.reversed?0>x[n].y:0<=x[n].y),(a.axisY.reversed?0<=x[n].y:0>x[n].y)&&w,!1,!1,s.fillOpacity);b=s.dataPointIds[n];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:B,dataPointIndex:n,x1:p,y1:q,x2:u,y2:M};b=P(b);t&&Z(this._eventManager.ghostCtx, p,q,u,M,b,0,null,!1,!1,!1,!1);(x[n].indexLabel||s.indexLabel||x[n].indexLabelFormatter||s.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:x[n],dataSeries:s,point:{x:p+(u-p)/2,y:0<=x[n].y?r:A},direction:0>x[n].y===a.axisY.reversed?1:-1,bounds:{x1:p,y1:Math.min(r,A),x2:u,y2:Math.max(r,A)},color:b,cumulativeY:s.dataPointEOs[n].cumulativeY})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:fa.axisY.bounds.y2? a.axisY.bounds.y2:f}}};v.prototype.renderStackedColumn100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=[],k=[],h=[],l=[],n=0,p,r,q,f=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),n=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;q=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth: 0.15*this.width<<0;var m=a.axisX.dataInfo.minDiff,y=a.axisX.conversionParameters.range?a.axisX.conversionParameters.range:a.axisX.range;isFinite(m)||(m=0.3*Math.abs(y));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(m)/Math.log(y):Math.abs(m)/Math.abs(y))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&n>q&&(n=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,q));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&qq&&(m=q);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(y=0;ya.axisX.dataInfo.viewPortMax)&&"number"===typeof x[n].y){p=a.axisX.convertValueToPixel(q);r=0!==a.dataPointYSums[q]?100*(x[n].y/a.dataPointYSums[q]):0;p=p-a.plotType.plotUnits.length*m/2+a.index*m<<0;var u=p+m<<0,A;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=h[q])continue;r=a.axisY.convertValueToPixel(h[q]);A=g[q]?g[q]:f;g[q]=r}else a.axisY.scaleBreaks&& 0=x[n].y?(l[q]=r+("undefined"!==typeof l[q]?l[q]:0),A=a.axisY.convertValueToPixel(l[q]),r=k[q]?k[q]:f,k[q]=A):(r=a.axisY.convertValueToPixel(r),0<=x[n].y?(b="undefined"!==typeof g[q]?g[q]:0,r-=b,A=f-b,a.dataSeriesIndexes.length-1===y&&1>=Math.abs(e.y1-r)&&(r=e.y1),g[q]=b+(A-r)):(b="undefined"!==typeof k[q]?k[q]:0,A=r+b,r=f+b,a.dataSeriesIndexes.length-1===y&&1>=Math.abs(e.y2-A)&&(A=e.y2),k[q]=b+(A-r)));b=x[n].color?x[n].color:s._colorSet[n%s._colorSet.length]; Z(c,p,a.axisY.reversed?A:r,u,a.axisY.reversed?r:A,b,0,null,w&&(a.axisY.reversed?0>x[n].y:0<=x[n].y),(a.axisY.reversed?0<=x[n].y:0>x[n].y)&&w,!1,!1,s.fillOpacity);b=s.dataPointIds[n];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:B,dataPointIndex:n,x1:p,y1:r,x2:u,y2:A};b=P(b);t&&Z(this._eventManager.ghostCtx,p,r,u,A,b,0,null,!1,!1,!1,!1);(x[n].indexLabel||s.indexLabel||x[n].indexLabelFormatter||s.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100", dataPoint:x[n],dataSeries:s,point:{x:p+(u-p)/2,y:0<=x[n].y?r:A},direction:0>x[n].y===a.axisY.reversed?1:-1,bounds:{x1:p,y1:Math.min(r,A),x2:u,y2:Math.max(r,A)},color:b,yCumulative:100*(s.dataPointEOs[n].cumulativeY/a.dataPointYSums[q])})}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:fa.axisY.bounds.y2?a.axisY.bounds.y2:f}}};v.prototype.renderBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx: d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=0,k,h,l,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,r=a.axisX.dataInfo.minDiff,q=a.axisX.conversionParameters.range? a.axisX.conversionParameters.range:a.axisX.range;isFinite(r)||(r=0.3*Math.abs(q));r=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(r)/Math.log(q):Math.abs(r)/Math.abs(q))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>p&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(r=p); c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(p=0;pa.axisX.dataInfo.viewPortMax)&&"number"===typeof m[g].y){h=a.axisX.convertValueToPixel(l);k=a.axisY.convertValueToPixel(m[g].y);h=a.axisX.reversed?h+a.plotType.totalDataSeries*r/2-(a.previousDataSeriesCount+p)*r<<0:h-a.plotType.totalDataSeries*r/2+(a.previousDataSeriesCount+p)*r<<0;var B=a.axisX.reversed?h-r<<0:h+r<<0,s;0<=m[g].y?s=n:(s=k,k=n);b=m[g].color?m[g].color:f._colorSet[g%f._colorSet.length];Z(c,a.axisY.reversed?k:s,a.axisX.reversed?B:h,a.axisY.reversed?s:k,a.axisX.reversed?h:B,b,0,null, y,!1,!1,!1,f.fillOpacity);b=f.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:g,x1:s,y1:h,x2:k,y2:B};b=P(b);t&&Z(this._eventManager.ghostCtx,s,a.axisX.reversed?B:h,k,a.axisX.reversed?h:B,b,0,null,!1,!1,!1,!1);(m[g].indexLabel||f.indexLabel||m[g].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:m[g],dataSeries:f,point:{x:0<=m[g].y?k:s,y:h+(B-h)/2},direction:0>m[g].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(s, k),y1:h,x2:Math.max(s,k),y2:B},color:b})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore(); return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:na.axisY.bounds.x2?a.axisY.bounds.x2:n}}};v.prototype.renderStackedBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=[],k=[],h=[],l=[],n=0,p,r,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),n=this.options.dataPointMinWidth? this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,m=a.axisX.dataInfo.minDiff,y=a.axisX.conversionParameters.range?a.axisX.conversionParameters.range:a.axisX.range;isFinite(m)||(m=0.3*Math.abs(y));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(m)/Math.log(y):Math.abs(m)/Math.abs(y))/a.plotType.plotUnits.length)<< 0;this.dataPointMaxWidth&&n>f&&(n=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(m=f);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip()); for(f=0;fa.axisX.dataInfo.viewPortMax)&&"number"===typeof s[n].y){r=a.axisX.convertValueToPixel(b);r=r-a.plotType.plotUnits.length*m/2+a.index*m<<0;var w=r+m<<0,u;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[n].y)l[b]=s[n].y+(l[b]?l[b]:0),p=k[b]?k[b]:q,k[b]=u=a.axisY.convertValueToPixel(l[b]);else if(p=a.axisY.convertValueToPixel(s[n].y),0<=s[n].y){var A=g[b]?g[b]:0;u=q+A;p+=A;g[b]=A+(p-u)}else A=k[b]?k[b]:0,u=p-A,p=q-A,k[b]=A+(p-u);b=s[n].color?s[n].color:B._colorSet[n%B._colorSet.length];Z(c,a.axisY.reversed?p:u,r,a.axisY.reversed? u:p,w,b,0,null,x,!1,!1,!1,B.fillOpacity);b=B.dataPointIds[n];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:n,x1:u,y1:r,x2:p,y2:w};b=P(b);t&&Z(this._eventManager.ghostCtx,u,r,p,w,b,0,null,!1,!1,!1,!1);(s[n].indexLabel||B.indexLabel||s[n].indexLabelFormatter||B.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:s[n],dataSeries:B,point:{x:0<=s[n].y?p:u,y:r+(w-r)/2},direction:0>s[n].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u, p),y1:r,x2:Math.max(u,p),y2:w},color:b})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore(); return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};v.prototype.renderStackedBar100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=[],k=[],h=[],l=[],n=0,p,r,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),n=this.options.dataPointMinWidth? this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,m=a.axisX.dataInfo.minDiff,y=a.axisX.conversionParameters.range?a.axisX.conversionParameters.range:a.axisX.range;isFinite(m)||(m=0.3*Math.abs(y));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(m)/Math.log(y):Math.abs(m)/Math.abs(y))/a.plotType.plotUnits.length)<< 0;this.dataPointMaxWidth&&n>f&&(n=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(m=f);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip()); for(f=0;fa.axisX.dataInfo.viewPortMax)&&"number"===typeof s[n].y){r=a.axisX.convertValueToPixel(b);var w;w=0!==a.dataPointYSums[b]?100*(s[n].y/a.dataPointYSums[b]):0;r=r-a.plotType.plotUnits.length*m/2+a.index*m<<0;var u=r+m<<0;if(a.axisY.logarithmic|| a.axisY.scaleBreaks&&0=h[b])continue;w=g[b]?g[b]:q;g[b]=p=a.axisY.convertValueToPixel(h[b])}else if(a.axisY.scaleBreaks&&0=s[n].y)l[b]=w+(l[b]?l[b]:0),p=k[b]?k[b]:q,k[b]=w=a.axisY.convertValueToPixel(l[b]);else if(p=a.axisY.convertValueToPixel(w),0<=s[n].y){var A=g[b]?g[b]:0;w=q+A;p+=A;a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.x2-p)&&(p=e.x2);g[b]=A+(p-w)}else A=k[b]? k[b]:0,w=p-A,p=q-A,a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.x1-w)&&(w=e.x1),k[b]=A+(p-w);b=s[n].color?s[n].color:B._colorSet[n%B._colorSet.length];Z(c,a.axisY.reversed?p:w,r,a.axisY.reversed?w:p,u,b,0,null,x,!1,!1,!1,B.fillOpacity);b=B.dataPointIds[n];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:y,dataPointIndex:n,x1:w,y1:r,x2:p,y2:u};b=P(b);t&&Z(this._eventManager.ghostCtx,w,r,p,u,b,0,null,!1,!1,!1,!1);(s[n].indexLabel||B.indexLabel||s[n].indexLabelFormatter|| B.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:s[n],dataSeries:B,point:{x:0<=s[n].y?p:w,y:r+(u-r)/2},direction:0>s[n].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(w,p),y1:r,x2:Math.max(w,p),y2:u},color:b})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};v.prototype.renderArea=function(a){var d,c;function b(){A&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?u=w:0>a.axisY.viewportMaximum?u=h.y1:0=a.dataSeriesIndexes.length)){var k=this._eventManager.ghostCtx,h=a.axisY.lineCoordinates, l=[],n=this.plotArea,p;g.save();t&&k.save();g.beginPath();g.rect(n.x1,n.y1,n.width,n.height);g.clip();t&&(k.beginPath(),k.rect(n.x1,n.y1,n.width,n.height),k.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax&&(!f.connectNullData||!ba)))if("number"!==typeof m[y].y)f.connectNullData||(ba||d)||b(),ba=!0; else{B=a.axisX.convertValueToPixel(x);s=a.axisY.convertValueToPixel(m[y].y);d||ba?(!d&&f.connectNullData?(g.setLineDash&&(f.options.nullDataLineDashType||c===f.lineDashType&&f.lineDashType!==f.nullDataLineDashType)&&(d=B,c=s,B=p.x,s=p.y,b(),g.moveTo(p.x,p.y),B=d,s=c,A=p,c=f.nullDataLineDashType,g.setLineDash(I)),g.lineTo(B,s),t&&k.lineTo(B,s)):(g.beginPath(),g.moveTo(B,s),t&&(k.beginPath(),k.moveTo(B,s)),A={x:B,y:s}),ba=d=!1):(g.lineTo(B,s),t&&k.lineTo(B,s),0==y%250&&b());p={x:B,y:s};ym[y].y===a.axisY.reversed?1:-1,color:M})}b();Y.drawMarkers(l)}}t&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&g.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), a.axisY.maskCanvas&&g.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.clearRect(n.x1,n.y1,n.width,n.height),this._eventManager.ghostCtx.restore());g.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderSplineArea=function(a){function d(){var c=u(x,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?B=y:0>a.axisY.viewportMaximum?B=g.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=a.axisY.lineCoordinates,k=[],h=this.plotArea;b.save();t&&e.save();b.beginPath();b.rect(h.x1,h.y1,h.width,h.height);b.clip();t&&(e.beginPath(),e.rect(h.x1,h.y1,h.width,h.height),e.clip());for(var l=0;la.axisX.dataInfo.viewPortMax&&(!p.connectNullData||!m)))if("number"!==typeof r[q].y)0r[q].y===a.axisY.reversed?1:-1,color:w});m=!1}d();Y.drawMarkers(k)}}t&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation= "source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderStepArea= function(a){var d,c;function b(){A&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?u=w:0>a.axisY.viewportMaximum?u=h.y1:0=a.dataSeriesIndexes.length)){var k=this._eventManager.ghostCtx,h=a.axisY.lineCoordinates,l=[],n=this.plotArea,p;g.save();t&&k.save();g.beginPath();g.rect(n.x1,n.y1,n.width,n.height);g.clip();t&&(k.beginPath(),k.rect(n.x1,n.y1,n.width,n.height),k.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax&&(!f.connectNullData||!c))){var $=s;"number"!== typeof m[y].y?(f.connectNullData||(c||d)||b(),c=!0):(B=a.axisX.convertValueToPixel(x),s=a.axisY.convertValueToPixel(m[y].y),d||c?(!d&&f.connectNullData?(g.setLineDash&&(f.options.nullDataLineDashType||I===f.lineDashType&&f.lineDashType!==f.nullDataLineDashType)&&(d=B,c=s,B=p.x,s=p.y,b(),g.moveTo(p.x,p.y),B=d,s=c,A=p,I=f.nullDataLineDashType,g.setLineDash(O)),g.lineTo(B,$),g.lineTo(B,s),t&&(k.lineTo(B,$),k.lineTo(B,s))):(g.beginPath(),g.moveTo(B,s),t&&(k.beginPath(),k.moveTo(B,s)),A={x:B,y:s}),c=d= !1):(g.lineTo(B,$),t&&k.lineTo(B,$),g.lineTo(B,s),t&&k.lineTo(B,s),0==y%250&&b()),p={x:B,y:s},ym[y].y===a.axisY.reversed?1:-1,color:v}))}b();Y.drawMarkers(l)}}t&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.globalCompositeOperation= "source-atop",a.axisX.maskCanvas&&g.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&g.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.clearRect(n.x1,n.y1,n.width,n.height),this._eventManager.ghostCtx.restore());g.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderStackedArea= function(a){function d(){if(!(1>n.length)){for(0=a.dataSeriesIndexes.length)){var e=null,g=null,k=[],h=this.plotArea,l=[],n=[],p=[],r=[],q=0,f,m,y=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum: 0),B=this._eventManager.ghostCtx,s,x,w;t&&B.beginPath();b.save();t&&B.save();b.beginPath();b.rect(h.x1,h.y1,h.width,h.height);b.clip();t&&(B.beginPath(),B.rect(h.x1,h.y1,h.width,h.height),B.clip());for(var e=[],u=0;ua.axisX.dataInfo.viewPortMax&&(!v.connectNullData||!$)))if("number"!==typeof da.y)v.connectNullData||($||x)||d(),$=!0;else{f=a.axisX.convertValueToPixel(g);var pa=l[g]?l[g]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=r[g]&&a.axisY.logarithmic)continue;m=a.axisY.convertValueToPixel(r[g])}else m=a.axisY.convertValueToPixel(da.y),m-=pa;n.push({x:f,y:y-pa});l[g]=y-m;x||$?(!x&& v.connectNullData?(b.setLineDash&&(v.options.nullDataLineDashType||w===v.lineDashType&&v.lineDashType!==v.nullDataLineDashType)&&(x=n.pop(),w=n[n.length-1],d(),b.moveTo(s.x,s.y),n.push(w),n.push(x),w=v.nullDataLineDashType,b.setLineDash(O)),b.lineTo(f,m),t&&B.lineTo(f,m)):(b.beginPath(),b.moveTo(f,m),t&&(B.beginPath(),B.moveTo(f,m))),$=x=!1):(b.lineTo(f,m),t&&B.lineTo(f,m),0==q%250&&(d(),b.moveTo(f,m),t&&B.moveTo(f,m),n.push({x:f,y:y-pa})));s={x:f,y:m};qda.y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(f,m);t&&B.moveTo(f,m)}delete v.dataPointIndexes}Y.drawMarkers(k); t&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(h.x1,h.y1,h.width,h.height),B.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation, easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderStackedArea100=function(a){function d(){for(0=a.dataSeriesIndexes.length)){var e=null,g=null,k=this.plotArea,h=[],l=[],n=[],p=[],r=[],q= 0,f,m,y,B,s,x=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),w=this._eventManager.ghostCtx;b.save();t&&w.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();t&&(w.beginPath(),w.rect(k.x1,k.y1,k.width,k.height),w.clip());for(var e=[],u=0;ua.axisX.dataInfo.viewPortMax&&(!M.connectNullData||!$)))if("number"!==typeof da.y)M.connectNullData||($||B)||d(),$=!0;else{var pa;pa=0!==a.dataPointYSums[g]?100*(da.y/a.dataPointYSums[g]):0;f=a.axisX.convertValueToPixel(g);var D=l[g]?l[g]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=r[g]&&a.axisY.logarithmic)continue;m=a.axisY.convertValueToPixel(r[g])}else m=a.axisY.convertValueToPixel(pa),m-=D;n.push({x:f,y:x-D});l[g]=x-m;B||$?(!B&&M.connectNullData?(b.setLineDash&&(M.options.nullDataLineDashType||s===M.lineDashType&&M.lineDashType!==M.nullDataLineDashType)&&(B=n.pop(),s=n[n.length-1],d(),b.moveTo(y.x,y.y),n.push(s),n.push(B),s=M.nullDataLineDashType,b.setLineDash(O)),b.lineTo(f,m),t&&w.lineTo(f,m)):(b.beginPath(),b.moveTo(f,m),t&&(w.beginPath(),w.moveTo(f, m))),$=B=!1):(b.lineTo(f,m),t&&w.lineTo(f,m),0==q%250&&(d(),b.moveTo(f,m),t&&w.moveTo(f,m),n.push({x:f,y:x-D})));y={x:f,y:m};qda.y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(f,m);t&&w.moveTo(f,m)}delete M.dataPointIndexes}Y.drawMarkers(h);t&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width, this.height),b.clearRect(k.x1,k.y1,k.width,k.height),w.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderBubble=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,g,k;c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var h=-Infinity,l=Infinity,n=0;na.axisX.dataInfo.viewPortMax||"undefined"===typeof q[e].z||(f=q[e].z,f>h&&(h=f),fa.axisX.dataInfo.viewPortMax)&&"number"===typeof q[e].y){g=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(q[e].y);var f=q[e].z,B=2*Math.max(Math.sqrt((h===l?y/2:m+(y-m)/(h-l)*(f-l))/Math.PI)<<0,1),f=r.getMarkerProperties(e,c);f.size=B;c.globalAlpha= r.fillOpacity;Y.drawMarker(g,k,c,f.type,f.size,f.color,f.borderColor,f.borderThickness);c.globalAlpha=1;var s=r.dataPointIds[e];this._eventManager.objectMap[s]={id:s,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:e,x1:g,y1:k,size:B};B=P(s);t&&Y.drawMarker(g,k,this._eventManager.ghostCtx,f.type,f.size,B,B,f.borderThickness);(q[e].indexLabel||r.indexLabel||q[e].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:q[e],dataSeries:r,point:{x:g,y:k}, direction:1,bounds:{x1:g-f.size/2,y1:k-f.size/2,x2:g+f.size/2,y2:k+f.size/2},color:null})}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore()); c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};v.prototype.renderScatter=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,g,k;c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1, b.width,b.height),this._eventManager.ghostCtx.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof p[e].y){g=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(p[e].y);var f=n.getMarkerProperties(e, g,k,c);c.globalAlpha=n.fillOpacity;Y.drawMarker(f.x,f.y,f.ctx,f.type,f.size,f.color,f.borderColor,f.borderThickness);c.globalAlpha=1;Math.sqrt((r-g)*(r-g)+(q-k)*(q-k))Math.min(this.plotArea.width,this.plotArea.height)||(r=n.dataPointIds[e],this._eventManager.objectMap[r]={id:r,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:e,x1:g,y1:k},r=P(r),t&&Y.drawMarker(f.x,f.y,this._eventManager.ghostCtx,f.type,f.size,r,r,f.borderThickness),(p[e].indexLabel||n.indexLabel|| p[e].indexLabelFormatter||n.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:p[e],dataSeries:n,point:{x:g,y:k},direction:1,bounds:{x1:g-f.size/2,y1:k-f.size/2,x2:g+f.size/2,y2:k+f.size/2},color:null}),r=g,q=k)}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};v.prototype.renderCandlestick=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e= null,g=null,k=this.plotArea,h=0,m,n,p,r,q,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,u=a.axisX.dataInfo.minDiff;isFinite(u)||(u=0.3*Math.abs(a.axisX.range));u=this.options.dataPointWidth?this.dataPointWidth:0.7*k.width*(a.axisX.logarithmic?Math.log(u)/Math.log(a.axisX.range):Math.abs(u)/Math.abs(a.axisX.range))<<0; this.dataPointMaxWidth&&e>g&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(u=g);c.save();t&&b.save();c.beginPath();c.rect(k.x1,k.y1,k.width,k.height);c.clip();t&&(b.beginPath(),b.rect(k.x1,k.y1,k.width,k.height),b.clip());for(var y=0;ya.axisX.dataInfo.viewPortMax)&&!l(x[h].y)&&x[h].y.length&&"number"===typeof x[h].y[0]&&"number"===typeof x[h].y[1]&&"number"===typeof x[h].y[2]&&"number"===typeof x[h].y[3]){m=a.axisX.convertValueToPixel(f);n=a.axisY.convertValueToPixel(x[h].y[0]);p=a.axisY.convertValueToPixel(x[h].y[1]);r=a.axisY.convertValueToPixel(x[h].y[2]);q=a.axisY.convertValueToPixel(x[h].y[3]); var v=m-u/2<<0,A=v+u<<0,g=s.options.fallingColor?s.fallingColor:s._colorSet[0],e=x[h].color?x[h].color:s._colorSet[0],z=Math.round(Math.max(1,0.15*u)),C=0===z%2?0:0.5,D=s.dataPointIds[h];this._eventManager.objectMap[D]={id:D,objectType:"dataPoint",dataSeriesIndex:B,dataPointIndex:h,x1:v,y1:n,x2:A,y2:p,x3:m,y3:r,x4:m,y4:q,borderThickness:z,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=z;b.lineWidth=Math.max(z,4);"candlestick"===s.type?(c.moveTo(m-C,p),c.lineTo(m-C,Math.min(n,q)),c.stroke(),c.moveTo(m- C,Math.max(n,q)),c.lineTo(m-C,r),c.stroke(),Z(c,v,Math.min(n,q),A,Math.max(n,q),x[h].y[0]<=x[h].y[3]?s.risingColor:g,z,e,w,w,!1,!1,s.fillOpacity),t&&(e=P(D),b.strokeStyle=e,b.beginPath(),b.moveTo(m-C,p),b.lineTo(m-C,Math.min(n,q)),b.stroke(),b.moveTo(m-C,Math.max(n,q)),b.lineTo(m-C,r),b.stroke(),Z(b,v,Math.min(n,q),A,Math.max(n,q),e,0,null,!1,!1,!1,!1))):"ohlc"===s.type&&(c.moveTo(m-C,p),c.lineTo(m-C,r),c.stroke(),c.beginPath(),c.moveTo(m,n),c.lineTo(v,n),c.stroke(),c.beginPath(),c.moveTo(m,q),c.lineTo(A, q),c.stroke(),t&&(b.beginPath(),e=P(D),b.strokeStyle=e,b.moveTo(m-C,p),b.lineTo(m-C,r),b.stroke(),b.beginPath(),b.moveTo(m,n),b.lineTo(v,n),b.stroke(),b.beginPath(),b.moveTo(m,q),b.lineTo(A,q),b.stroke()));(x[h].indexLabel||s.indexLabel||x[h].indexLabelFormatter||s.indexLabelFormatter)&&this._indexLabels.push({chartType:s.type,dataPoint:x[h],dataSeries:s,point:{x:v+(A-v)/2,y:a.axisY.reversed?r:p},direction:1,bounds:{x1:v,y1:Math.min(p,r),x2:A,y2:Math.max(p,r)},color:e})}}t&&(d.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(k.x1,k.y1,k.width,k.height),b.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad, animationBase:0}}};v.prototype.renderBoxAndWhisker=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,g=this.plotArea,k=0,h,m,n,p,r,q,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,k=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,u=a.axisX.dataInfo.minDiff;isFinite(u)|| (u=0.3*Math.abs(a.axisX.range));u=this.options.dataPointWidth?this.dataPointWidth:0.7*g.width*(a.axisX.logarithmic?Math.log(u)/Math.log(a.axisX.range):Math.abs(u)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>k&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&kk&&(u=k);c.save();t&&b.save();c.beginPath();c.rect(g.x1,g.y1,g.width, g.height);c.clip();t&&(b.beginPath(),b.rect(g.x1,g.y1,g.width,g.height),b.clip());for(var y=!1,y=!!a.axisY.reversed,B=0;Ba.axisX.dataInfo.viewPortMax)&&!l(w[k].y)&&w[k].y.length&&"number"===typeof w[k].y[0]&& "number"===typeof w[k].y[1]&&"number"===typeof w[k].y[2]&&"number"===typeof w[k].y[3]&&"number"===typeof w[k].y[4]&&5===w[k].y.length){h=a.axisX.convertValueToPixel(f);m=a.axisY.convertValueToPixel(w[k].y[0]);n=a.axisY.convertValueToPixel(w[k].y[1]);p=a.axisY.convertValueToPixel(w[k].y[2]);r=a.axisY.convertValueToPixel(w[k].y[3]);q=a.axisY.convertValueToPixel(w[k].y[4]);var A=h-u/2<<0,z=h+u/2<<0,e=w[k].color?w[k].color:x._colorSet[0],C=Math.round(Math.max(1,0.15*u)),D=0===C%2?0:0.5,I=w[k].whiskerColor? w[k].whiskerColor:w[k].color?x.whiskerColor?x.whiskerColor:w[k].color:x.whiskerColor?x.whiskerColor:e,O="number"===typeof w[k].whiskerThickness?w[k].whiskerThickness:"number"===typeof x.options.whiskerThickness?x.whiskerThickness:C,ba=w[k].whiskerDashType?w[k].whiskerDashType:x.whiskerDashType,$=l(w[k].whiskerLength)?l(x.options.whiskerLength)?u:x.whiskerLength:w[k].whiskerLength,$="number"===typeof $?0>=$?0:$>=u?u:$:"string"===typeof $?parseInt($)*u/100>u?u:parseInt($)*u/100:u,da=1===Math.round(O)% 2?0.5:0,pa=w[k].stemColor?w[k].stemColor:w[k].color?x.stemColor?x.stemColor:w[k].color:x.stemColor?x.stemColor:e,E="number"===typeof w[k].stemThickness?w[k].stemThickness:"number"===typeof x.options.stemThickness?x.stemThickness:C,F=1===Math.round(E)%2?0.5:0,J=w[k].stemDashType?w[k].stemDashType:x.stemDashType,Q=w[k].lineColor?w[k].lineColor:w[k].color?x.lineColor?x.lineColor:w[k].color:x.lineColor?x.lineColor:e,U="number"===typeof w[k].lineThickness?w[k].lineThickness:"number"===typeof x.options.lineThickness? x.lineThickness:C,S=w[k].lineDashType?w[k].lineDashType:x.lineDashType,aa=1===Math.round(U)%2?0.5:0,X=x.upperBoxColor,za=x.lowerBoxColor,ua=l(x.options.fillOpacity)?1:x.fillOpacity,N=x.dataPointIds[k];this._eventManager.objectMap[N]={id:N,objectType:"dataPoint",dataSeriesIndex:s,dataPointIndex:k,x1:A,y1:m,x2:z,y2:n,x3:h,y3:p,x4:h,y4:r,y5:q,borderThickness:C,color:e,stemThickness:E,stemColor:pa,whiskerThickness:O,whiskerLength:$,whiskerColor:I,lineThickness:U,lineColor:Q};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=0,k,h,m,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;k=this.options.dataPointMaxWidth? this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>k&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&& kk&&(n=k);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!l(f[g].y)&&f[g].y.length&&"number"===typeof f[g].y[0]&&"number"===typeof f[g].y[1]){b=a.axisX.convertValueToPixel(m);k=a.axisY.convertValueToPixel(f[g].y[0]);h=a.axisY.convertValueToPixel(f[g].y[1]);var y=a.axisX.reversed?b+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+p)*n<<0:b-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+p)*n<<0,B=a.axisX.reversed? y-n<<0:y+n<<0,b=f[g].color?f[g].color:q._colorSet[g%q._colorSet.length];if(k>h){var s=k;k=h;h=s}var s=Math.max(k,e.y1),x=Math.min(h,e.y2),w=q.dataPointIds[g];this._eventManager.objectMap[w]={id:w,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:g,x1:y,y1:s,x2:B,y2:x};Z(c,a.axisX.reversed?B:y,s,a.axisX.reversed?y:B,x,b,0,b,u,u,!1,!1,q.fillOpacity);b=P(w);t&&Z(this._eventManager.ghostCtx,a.axisX.reversed?B:y,s,a.axisX.reversed?y:B,x,b,0,null,!1,!1,!1,!1);if(f[g].indexLabel||q.indexLabel||f[g].indexLabelFormatter|| q.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn",dataPoint:f[g],dataSeries:q,indexKeyword:0,point:{x:y+(B-y)/2,y:f[g].y[1]>=f[g].y[0]?h:k},direction:f[g].y[1]>=f[g].y[0]?-1:1,bounds:{x1:y,y1:Math.min(k,h),x2:B,y2:Math.max(k,h)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:f[g],dataSeries:q,indexKeyword:1,point:{x:y+(B-y)/2,y:f[g].y[1]>=f[g].y[0]?k:h},direction:f[g].y[1]>=f[g].y[0]?1:-1,bounds:{x1:y,y1:Math.min(k,h),x2:B,y2:Math.max(k,h)},color:b})}}t&&(d.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad, animationBase:0}}};v.prototype.renderError=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=t?this._preRenderCtx:d,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,g=!1,k=this.plotArea,h=0,m,n,p,r,q,f,u,y=a.axisX.dataInfo.minDiff;isFinite(y)||(y=0.3*Math.abs(a.axisX.range));c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(k.x1,k.y1,k.width,k.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.clip());for(var B=0,s=0;sh&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(s=h);v.whiskerLength=l(v.options.whiskerLength)?s:v.options.whiskerLength;if(0=I.length?0:I.length>=s?s:I.length:"string"===typeof I.length?parseInt(I.length)*s/100>s?s:parseInt(I.length)*s/100>s:s;I.thickness="number"===typeof I.thickness?0>I.thickness?0:Math.round(I.thickness):2;var O={color:A[h].stemColor?A[h].stemColor:A[h].color?v.stemColor?v.stemColor:A[h].color:v.stemColor?v.stemColor:e,thickness:A[h].stemThickness?A[h].stemThickness: v.stemThickness,dashType:A[h].stemDashType?A[h].stemDashType:v.stemDashType};O.thickness="number"===typeof O.thickness?0>O.thickness?0:Math.round(O.thickness):2;A[h].getTime?u=A[h].x.getTime():u=A[h].x;if(!(ua.axisX.dataInfo.viewPortMax)&&!l(A[h].y)&&A[h].y.length&&"number"===typeof A[h].y[0]&&"number"===typeof A[h].y[1]){var ba=a.axisX.convertValueToPixel(u);b?n=ba:m=ba;ba=a.axisY.convertValueToPixel(A[h].y[0]);b?p=ba:q=ba;ba=a.axisY.convertValueToPixel(A[h].y[1]); b?r=ba:f=ba;b?(q=a.axisX.reversed?n+(z?B:1)*s/2-(z?C-1:0)*s<<0:n-(z?B:1)*s/2+(z?C-1:0)*s<<0,f=a.axisX.reversed?q-s<<0:q+s<<0):(p=a.axisX.reversed?m+(z?B:1)*s/2-(z?C-1:0)*s<<0:m-(z?B:1)*s/2+(z?C-1:0)*s<<0,r=a.axisX.reversed?p-s<<0:p+s<<0);!b&&q>f&&(ba=q,q=f,f=ba);b&&p>r&&(ba=p,p=r,r=ba);ba=v.dataPointIds[h];this._eventManager.objectMap[ba]={id:ba,objectType:"dataPoint",dataSeriesIndex:w,dataPointIndex:h,x1:Math.min(p,r),y1:Math.min(q,f),x2:Math.max(r,p),y2:Math.max(f,q),isXYSwapped:b,stemProperties:O, whiskerProperties:I};D(c,Math.min(p,r),Math.min(q,f),Math.max(r,p),Math.max(f,q),e,I,O,b);t&&D(this._eventManager.ghostCtx,p,q,r,f,e,I,O,b);if(A[h].indexLabel||v.indexLabel||A[h].indexLabelFormatter||v.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:A[h],dataSeries:v,indexKeyword:0,point:{x:b?A[h].y[1]>=A[h].y[0]?p:r:p+(r-p)/2,y:b?q+(f-q)/2:A[h].y[1]>=A[h].y[0]?f:q},direction:A[h].y[1]>=A[h].y[0]?-1:1,bounds:{x1:b?Math.min(p,r):p,y1:b?q:Math.min(q,f),x2:b?Math.max(p,r):r,y2:b? f:Math.max(q,f)},color:e,axisSwapped:b}),this._indexLabels.push({chartType:"error",dataPoint:A[h],dataSeries:v,indexKeyword:1,point:{x:b?A[h].y[1]>=A[h].y[0]?r:p:p+(r-p)/2,y:b?q+(f-q)/2:A[h].y[1]>=A[h].y[0]?q:f},direction:A[h].y[1]>=A[h].y[0]?1:-1,bounds:{x1:b?Math.min(p,r):p,y1:b?q:Math.min(q,f),x2:b?Math.max(p,r):r,y2:b?f:Math.max(q,f)},color:e,axisSwapped:b})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, 0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, c=t?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,g=0,k,h,m,n,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;k=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth? this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>k&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&kk&&(p=k);c.save();t&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&&!l(u[g].y)&&u[g].y.length&&"number"===typeof u[g].y[0]&& "number"===typeof u[g].y[1]){k=a.axisY.convertValueToPixel(u[g].y[0]);h=a.axisY.convertValueToPixel(u[g].y[1]);m=a.axisX.convertValueToPixel(n);m=a.axisX.reversed?m+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+r)*p<<0:m-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+r)*p<<0;var B=a.axisX.reversed?m-p<<0:m+p<<0;k>h&&(b=k,k=h,h=b);b=u[g].color?u[g].color:f._colorSet[g%f._colorSet.length];Z(c,k,a.axisX.reversed?B:m,h,a.axisX.reversed?m:B,b,0,null,y,!1,!1,!1,f.fillOpacity);b=f.dataPointIds[g]; this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:g,x1:k,y1:m,x2:h,y2:B};b=P(b);t&&Z(this._eventManager.ghostCtx,k,a.axisX.reversed?B:m,h,a.axisX.reversed?m:B,b,0,null,!1,!1,!1,!1);if(u[g].indexLabel||f.indexLabel||u[g].indexLabelFormatter||f.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:u[g],dataSeries:f,indexKeyword:0,point:{x:u[g].y[1]>=u[g].y[0]?k:h,y:m+(B-m)/2},direction:u[g].y[1]>=u[g].y[0]?-1:1,bounds:{x1:Math.min(k,h), y1:m,x2:Math.max(k,h),y2:B},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:u[g],dataSeries:f,indexKeyword:1,point:{x:u[g].y[1]>=u[g].y[0]?h:k,y:m+(B-m)/2},direction:u[g].y[1]>=u[g].y[0]?1:-1,bounds:{x1:Math.min(k,h),y1:m,x2:Math.max(k,h),y2:B},color:b})}}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, 0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeArea=function(a){function d(){if(x){for(var a=null,c=l.length-1;0<=c;c--)a=l[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath(); b.globalAlpha=p.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=[],k=this.plotArea; b.save();t&&e.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();t&&(e.beginPath(),e.rect(k.x1,k.y1,k.width,k.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!p.connectNullData||!I)))if(null!==r[f].y&&r[f].y.length&&"number"===typeof r[f].y[0]&&"number"===typeof r[f].y[1]){m=a.axisX.convertValueToPixel(s);y=a.axisY.convertValueToPixel(r[f].y[0]);B=a.axisY.convertValueToPixel(r[f].y[1]); q||I?(p.connectNullData&&!q?(b.setLineDash&&(p.options.nullDataLineDashType||z===p.lineDashType&&p.lineDashType!==p.nullDataLineDashType)&&(l[l.length-1].newLineDashArray=D,z=p.nullDataLineDashType,b.setLineDash(C)),b.lineTo(m,y),t&&e.lineTo(m,y),l.push({x:m,y1:y,y2:B})):(b.beginPath(),b.moveTo(m,y),x={x:m,y:y},l=[],l.push({x:m,y1:y,y2:B}),t&&(e.beginPath(),e.moveTo(m,y))),I=q=!1):(b.lineTo(m,y),l.push({x:m,y1:y,y2:B}),t&&e.lineTo(m,y),0==f%250&&d());s=p.dataPointIds[f];this._eventManager.objectMap[s]= {id:s,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:f,x1:m,y1:y,y2:B};fr[f].y[1]===a.axisY.reversed?-1:1,color:w}),this._indexLabels.push({chartType:"rangeArea",dataPoint:r[f],dataSeries:p,indexKeyword:1,point:{x:m,y:B},direction:r[f].y[0]>r[f].y[1]===a.axisY.reversed?1:-1,color:w})}else I||q||d(),I=!0;d();Y.drawMarkers(g)}}t&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};v.prototype.renderRangeSplineArea=function(a){function d(a,c){var f=u(y,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=[],k=this.plotArea;b.save();t&&e.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();t&&(e.beginPath(),e.rect(k.x1,k.y1,k.width, k.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!f)))if(null!==p[r].y&&p[r].y.length&&"number"===typeof p[r].y[0]&&"number"===typeof p[r].y[1]){q=a.axisX.convertValueToPixel(q);f=a.axisY.convertValueToPixel(p[r].y[0]);m=a.axisY.convertValueToPixel(p[r].y[1]);var C=n.dataPointIds[r];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:r, x1:q,y1:f,y2:m};y[y.length]={x:q,y:f};B[B.length]={x:q,y:m};r=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx,e=null,g=this.plotArea,k=0,h,l,n,p,r=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff; isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth?this.dataPointWidth:0.6*(g.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&k>l&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(q=l);c.save();t&&this._eventManager.ghostCtx.save(); c.beginPath();c.rect(g.x1,g.y1,g.width,g.height);c.clip();t&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(var f=0;fn&&(e=l,l=n,n=e);a.axisY.reversed&&(e=l,l=n,n=e);e=y.dataPointIds[k];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:k,x1:h,y1:l,x2:D,y2:n};var I=B[k].color?B[k].color:0B[k].y===a.axisY.reversed?1:-1,bounds:{x1:h,y1:Math.min(l,n),x2:D,y2:Math.max(l,n)},color:e})}}t&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, 0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};var na=function(a,d,c,b,e,g,k,l,m){if(!(0>c)){"undefined"===typeof l&&(l=1);if(!t){var n=Number((k%(2*Math.PI)).toFixed(8));Number((g%(2*Math.PI)).toFixed(8))===n&&(k-=1E-4)}a.save();a.globalAlpha=l;"pie"===e?(a.beginPath(),a.moveTo(d.x,d.y),a.arc(d.x,d.y, c,g,k,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(d.x,d.y,c,g,k,!1),0<=m&&a.arc(d.x,d.y,m*c,k,g,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};v.prototype.renderPie=function(a){function d(){if(n&&p){var a=0,b=0,c=0,e=0;l(n.options.indexLabelMaxWidth)&&(n.indexLabelMaxWidth=0.33*q.width);for(var d=0;dMath.PI/2-s&&h.midAngleh.midAngle)c=d;a++}else if(h.midAngle>3*Math.PI/2-s&&h.midAngle<3*Math.PI/2+s){if(0===b||f[e].midAngle>h.midAngle)e=d;b++}h.hemisphere=g>Math.PI/2&&g<=3*Math.PI/2?"left":"right";h.indexLabelTextBlock=new ka(m.plotArea.ctx,{fontSize:h.indexLabelFontSize,fontFamily:h.indexLabelFontFamily,fontColor:h.indexLabelFontColor, fontStyle:h.indexLabelFontStyle,fontWeight:h.indexLabelFontWeight,textAlign:h.indexLabelTextAlign,backgroundColor:h.indexLabelBackgroundColor,borderColor:h.indexLabelBorderColor,borderThickness:h.indexLabelBorderThickness,maxWidth:h.indexLabelMaxWidth,maxHeight:h.indexLabelWrap?5*h.indexLabelFontSize:1.5*h.indexLabelFontSize,text:h.indexLabelText,padding:h.indexLabelPadding,textBaseline:"middle"});h.indexLabelTextBlock.measureText()}k=g=0;r=!1;for(d=0;d Math.PI/2-s&&h.midAngle3*Math.PI/2-s&&h.midAngle<3*Math.PI/2+s)&&(k<=b/2&&!r?(h.hemisphere="left",k++):(h.hemisphere="right",r=!0))}}function c(a,b){var c=m.plotArea.ctx;c.clearRect(q.x1,q.y1,q.width,q.height);c.fillStyle=m.backgroundColor;c.fillRect(q.x1,q.y1,q.width,q.height);for(c=0;ce){var g= 0.07*z*Math.cos(f[c].midAngle),k=0.07*z*Math.sin(f[c].midAngle),h=!1;if(p[c].exploded){if(1E-9a.indexLabelTextBlock.y?d-f:c- e}function e(a){for(var c=null,d=1;db(f[c],f[a])||("right"===f[a].hemisphere?f[c].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y:f[c].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y)))break;else c=null;return c}function g(a,c,d){d=(d||0)+1;if(1E3c&&l.indexLabelTextBlock.y h)return 0;var r=0,q=0,q=r=r=0;0>c?l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2>n&&l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2+ch&&(c=l.indexLabelTextBlock.y+l.indexLabelTextBlock.height/2+c-h);c=l.indexLabelTextBlock.y+c;n=0;n="right"===l.hemisphere?w.x+Math.sqrt(Math.pow(y,2)-Math.pow(c-w.y, 2)):w.x-Math.sqrt(Math.pow(y,2)-Math.pow(c-w.y,2));q=w.x+z*Math.cos(l.midAngle);r=w.y+z*Math.sin(l.midAngle);r=Math.sqrt(Math.pow(n-q,2)+Math.pow(c-r,2));q=Math.acos(z/y);r=Math.acos((y*y+z*z-r*r)/(2*z*y));c=rb(f[n],f[a])||("right"===f[a].hemisphere?f[n].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y: f[n].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y)))break;else n=null;q=n;r=e(a);h=n=0;0>c?(h="right"===l.hemisphere?q:r,k=c,null!==h&&(q=-c,c=l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2-(f[h].indexLabelTextBlock.y+f[h].indexLabelTextBlock.height/2),c-q+n.toFixed(x)&&(k=c>t?-(c-t):-(q-(h-n)))))):0t?c-t:q-(n-h)))));k&&(d=l.indexLabelTextBlock.y+k,c=0,c="right"===l.hemisphere?w.x+Math.sqrt(Math.pow(y,2)-Math.pow(d-w.y,2)):w.x-Math.sqrt(Math.pow(y,2)-Math.pow(d-w.y,2)),l.midAngle>Math.PI/2-s&&l.midAnglen.indexLabelTextBlock.x?c=n.indexLabelTextBlock.x-15:"right"===l.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-s&&l.midAngle<3*Math.PI/2+s&&(n=(a-1+f.length)%f.length,n=f[n],a=f[(a+1+f.length)%f.length],"right"===l.hemisphere&&"left"===n.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),l.indexLabelTextBlock.y=d,l.indexLabelTextBlock.x=c,l.indexLabelAngle=Math.atan2(l.indexLabelTextBlock.y-w.y,l.indexLabelTextBlock.x-w.x))}return k} function k(){var a=m.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,d=0,k=!0,c=0;10>c&&(1>c||0A){for(var E=s=0,H=0;Hs?h.indexLabelText="":h.indexLabelTextBlock.maxWidth=0.85*s,0.3*h.indexLabelTextBlock.maxWidthd&&(d=v)),v=v=0,0d&&(d=v)));var ja=function(a,b,c){for(var d=[],e=0;d.push(f[b]),b!==c;b=(b+1+p.length)%p.length);d.sort(function(a,b){return a.y-b.y});for(b=0;bA){q=l.indexLabelTextBlock.x;var m=l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2,s=l.indexLabelTextBlock.y+l.indexLabelTextBlock.height/2,t=n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2,w=n.indexLabelTextBlock.x+n.indexLabelTextBlock.width, y=n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2;q=l.indexLabelTextBlock.x+l.indexLabelTextBlock.widthw+r||m>y+r||sa&&(a=k),h!==a&&(c=h,d+=-A),0===k%Math.max(p.length/10,3)&&(g=!0)):g=!0;g&&(0=a.dataSeriesIndexes.length)){var n=this.data[a.dataSeriesIndexes[0]],p=n.dataPoints,r=10,q=this.plotArea,f=n.dataPointEOs,t=2,y,u=1.3,s=20/180*Math.PI,x=6,w={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/ 2},v=0;a=!1;for(var A=0;Ab&&(e=b,g=!0);var k=p[c].color?p[c].color:n._colorSet[c%n._colorSet.length];e>d&&na(m.plotArea.ctx,f[c].center,f[c].radius,k,n.type,d,e,n.fillOpacity,f[c].percentInnerRadius);if(g)break}h(); m.dispatchEvent("dataAnimationIterationEnd",{chart:m});1<=a&&m.dispatchEvent("dataAnimationEnd",{chart:m})},function(){m.disableToolTip=!1;m._animator.animate(0,m.animatedRender?500:0,function(a){c(a,!1);h();m.dispatchEvent("dataAnimationIterationEnd",{chart:m})});m.dispatchEvent("dataAnimationEnd",{chart:m})});n.radius=z;"doughnut"===n.type&&(n.innerRadius=C)}}};var ta=function(a,d,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(d.y4-d.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(d.x1), Math.round(d.y1)),a.lineTo(Math.round(d.x2),Math.round(d.y2)),a.lineTo(Math.round(d.x3),Math.round(d.y3)),a.lineTo(Math.round(d.x4),Math.round(d.y4)),"undefined"!==d.x5&&(a.lineTo(Math.round(d.x5),Math.round(d.y5)),a.lineTo(Math.round(d.x6),Math.round(d.y6))),a.closePath(),a.fillStyle=b?b:d.color,a.fill(),a.globalAplha=1,a.restore())};v.prototype.renderFunnel=function(a){function d(){for(var a=0,b=[],c=0;cp?(p=c,n=(b+p)*(f-h)/2,a-=n,l=f-h,h+=f-h,l+=0==p?0:a/p,h+=a/p,n=!0):(l=(Math.abs(Z)*b-Math.sqrt(p))/2,p=b-2*l/Math.abs(Z),h+=l,h>f&&(h-=l,p=c,n=(b+p)*(f-h)/2,a-=n,l=f-h,h+=f-h,l+=a/p,h+=a/p,n=!0),b=p)),d.push(l);return d}function b(){if(s&&x){for(var a,b,c,d,e,g,k,h,n,p,r,q,m,w,y,v,L,z,A=[],C=[],D={percent:null,total:null},R=null,E=0;EA[E]&&(A[E]=E!==ea?s.reversed?N[E].x3-N[E].x4:N[E].x2-N[E].x1:N[E].x2-N[E].x1,A[E]/=2));v=b.indexLabelMaxWidth?b.indexLabelMaxWidth:s.options.indexLabelMaxWidth?s.indexLabelMaxWidth:A[E];if(v>A[E]||0>v)v=A[E];C[E]="inside"===s.indexLabelPlacement?y?Math.max(N[E].height,n):1.5*n+("object"===typeof k?(k.top||0)+(k.bottom||0):2*k):!1;D=u.getPercentAndTotal(s,b);if(s.indexLabelFormatter||b.indexLabelFormatter)R={chart:u,dataSeries:s,dataPoint:b,total:D.total,percent:D.percent}; b=b.indexLabelFormatter?b.indexLabelFormatter(R):b.indexLabel?u.replaceKeywordsWithValue(b.indexLabel,b,s,E):s.indexLabelFormatter?s.indexLabelFormatter(R):s.indexLabel?u.replaceKeywordsWithValue(s.indexLabel,b,s,E):b.label?b.label:"";0>=m&&(m=0);1E3>v&&1E3-vk?k:s.indexLabelMaxWidth:k,h=G.length-1;0<=h;h--){g=x[G[h].id];c=G[h];d=c.textBlock;b=(a=q(h)b.y&&(f=!0);c=g.indexLabelMaxWidth||k;if(c>k||0>c)c=k;e.push(c)}if(f)for(h=G.length-1;0<=h;h--)a=N[h],G[h].textBlock.maxWidth=e[e.length-(h+1)],G[h].textBlock.measureText(),G[h].textBlock.height=G[h].textBlock.height===2*G[h].textBlock.padding?0:G[h].textBlock.height, G[h].textBlock.width=G[h].textBlock.width===2*G[h].textBlock.padding?0:G[h].textBlock.width,G[h].textBlock.x=J-k,c=G[h].textBlock.heightra+z&&(G[h].textBlock.y=ra+z-G[h].height),G[h].textBlock.y< ua-z&&(G[h].textBlock.y=ua-z)):(G[h].textBlock.yua+z&&(G[h].textBlock.y=ua+z-G[h].height))}function g(){var a,b,c,d;if("inside"!==s.indexLabelPlacement)for(var e=0;eza?f(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?cra+z&&(G[e].textBlock.y=ra+z-G[e].height),G[e].textBlock.yua+z&&(G[e].textBlock.y=ua+z-G[e].height)));else for(e=0;e=c?(b=e!=ea?(a.x4+a.x3)/2-d/2:(a.x5+a.x4)/2-d/2,c=e!=ea?(a.y1+a.y3)/2- c/2:(a.y1+a.y4)/2-c/2,G[e].textBlock.x=b,G[e].textBlock.y=c):G[e].isDirty=!0)}function k(){function a(b,c){var d;if(0>b||b>=G.length)return 0;var e,f=G[b].textBlock;if(0>c){c*=-1;e=r(b);d=h(e,b);if(d>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==N.length-1)return 0e)&&(k=q(p),!(k>=G.length-1)&&G[p].textBlock.y+G[p].height+fa>G[k].textBlock.y&&(G[p].textBlock.y=G[p].textBlock.y+G[p].height-e>e-G[p].textBlock.y?e+1:e-G[p].height-1))}for(k=N.length-1;0e&&(e=0,G[e].isDirty))break;if(G[k].textBlock.y=f){f=0;h+=G[f].height;break}e=r(f);if(0>e){f=0;h+=G[f].height;break}}if(f!=k){g=G[f].textBlock.y;a-=g;a=h-a;g=c(a,d,f);break}}}return g}function c(a,b,d){var e=[],f=0,g=0;for(a=Math.abs(a);d<=b;d++)e.push(N[d]);e.sort(function(a,b){return a.height-b.height});for(d=0;d+n.y.toFixed(6))&&(d=g.y+d+fa-n.y,e=a(m,-d),ea?s.reversed?ua-z:ra-z:G[a].textBlock.y+G[a].height+fa)}function m(a,b,c){var d,e,f,h=[],k=z,l=[];-1!==b&&(0<=W.indexOf(b)?(e=W.indexOf(b),W.splice(e,1)):(W.push(b), W=W.sort(function(a,b){return a-b})));if(0===W.length)h=ia;else{e=z*(1!=W.length||0!=W[0]&&W[0]!=N.length-1?2:1)/n();for(var r=0;rl&&(l*=-1),c.y1+=b-l[d],c.y2+=b-l[d],c.y3+=b-l[d],c.y4+=b-l[d],c.y5&&(c.y5+=b-l[d],c.y6+=b-l[d]),l[d]=b}};a._animator.animate(0,c,function(c){var d=a.plotArea.ctx||a.ctx;ha=!0;d.clearRect(w.x1,w.y1,w.x2-w.x1,w.y2-w.y1);d.fillStyle=a.backgroundColor;d.fillRect(w.x1,w.y1,w.width,w.height);q.changeSection(c,b);var e={};e.dataSeries=s;e.dataPoint=s.reversed?s.dataPoints[x.length-1-b]: s.dataPoints[b];e.index=s.reversed?x.length-1-b:b;a.toolTip.highlightObjects([e]);for(e=0;ea){b=N[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function v(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var s= this.data[a.dataSeriesIndexes[0]],x=s.dataPoints,w=this.plotArea,z=0.025*w.width,A=0.01*w.width,C=0,D=w.height-2*z-4,E=Math.min(w.width-2*A,2.8*w.height),I=!1,O=0;OD?P=D:0>=P&&(P=0),F>a?F=a-0.5:0>=F&&(F=0)):"pyramid"===s.type&&(F=P=0,s.reversed=s.reversed?!1:!0);var A=O+a/2,V=O,ca=O+a,ra=s.reversed?Q:$,aa=A-F/2,Y=A+F/2,za=s.reversed?$+P:Q-P,ua=s.reversed?$:Q;F=s.valueRepresents=s.valueRepresents?s.valueRepresents:"height";O=[];a=[];var N=[],A=[],T=$,ea,Z=(za-ra)/(aa-V),ga=-Z,E="area"===F?c():d();if(-1!==E){if(s.reversed)for(A.push(T),F=E.length-1;0a&&(C=a));for(F=0;F
Please right click on the image and save it to your device
"),d.document.close()}}};v.prototype.print=function(){var a=this.exportChart({toDataURL:!0}), d=document.createElement("iframe");d.setAttribute("class","canvasjs-chart-print-frame");S(d,{position:"absolute",width:"100%",border:"0px",margin:"0px 0px 0px 0px",padding:"0px 0px 0px 0px"});d.style.height=this.height+"px";this._canvasJSContainer.appendChild(d);var c=this,b=d.contentWindow||d.contentDocument.document||d.contentDocument;b.document.open();b.document.write('\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin= "0px 0px 0px 0px",b.document.body.style.padding="0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(d)},1E3)},500)};v.prototype.getPercentAndTotal=function(a,d){var c=null,b=null,e=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=d.x.getTime?d.x.getTime():d.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],e=isNaN(d.y)?0:0===c?0:100*(d.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"=== a.type||"pyramid"===a.type){for(c=b=0;cMath.abs(f)||1E7=k||"undefined"===typeof k||0>=t||"undefined"===typeof t))if("horizontal"===this.orientation){q.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:t,maxHeight:this.itemWrap?k:this.lineHeight,angle:0,text:q.text,textAlign:this.itemTextAlign,fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(y+h+("line"===q.chartType|| "spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0)));if(!r||r.width+Math.round(q.textBlock.width+y+h+(0===r.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))>g)r={items:[],width:0},n.push(r),this.height+=f,f=0;f=Math.max(f,q.textBlock.height?q.textBlock.height:this.lineHeight);q.textBlock.x=r.width;q.textBlock.y=0;r.width+=Math.round(q.textBlock.width+y+h+(0===r.width?0:this.horizontalSpacing)+("line"=== q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0));r.items.push(q);this.width=Math.max(r.width,this.width)}else q.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:w,maxHeight:!0===this.itemWrap?k:1.5*this.fontSize,angle:0,text:q.text,textAlign:this.itemTextAlign,fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width= this.itemWidth-(y+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))),this.height=this.lineHeight?Math.min(k,this.height):0;this.width=Math.min(g,this.width)}"top"===this.verticalAlign?(e="left"===this.horizontalAlign?d.x1:"right"===this.horizontalAlign?d.x2-this.width-2:d.x1+d.width/2-this.width/2,b=d.y1):"center"===this.verticalAlign?(e="left"===this.horizontalAlign?d.x1:"right"===this.horizontalAlign?d.x2-this.width-2:d.x1+d.width/ 2-this.width/2,b=d.y1+d.height/2-this.height/2):"bottom"===this.verticalAlign&&(e="left"===this.horizontalAlign?d.x1:"right"===this.horizontalAlign?d.x2-this.width-2:d.x1+d.width/2-this.width/2,b=d.y2-this.height);this.items=m;for(p=0;p>0,0),this.dataPoints.length):0):(r=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,r=0>0,0),this.dataPoints.length):0));for(;;){k=0a?e.x/a:a/e.x:Math.abs(e.x-a);qr-g&&r+g>=this.dataPoints.length)break;-1===h?(g++,h=1):h=-1}return d||(b.dataPoint.x.getTime?b.dataPoint.x.getTime():b.dataPoint.x)!==(a.getTime?a.getTime():a)?d&&null!==b.dataPoint?b:null:b};E.prototype.getDataPointAtXY=function(a,d,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||dthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e= 0,g=0,k=1,h=!1,m=Infinity,n=0,p=0,r=0;if("none"!==this.chart.plotInfo.axisPlacement)if(r=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:d}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),r=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,r=0>0,0),this.dataPoints.length):0;for(;;){g=0=q.x1&&(a<=q.x2&&d>=q.y1&&d<=q.y2)&&(b.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(q.x1- a),Math.abs(q.x2-a),Math.abs(q.y1-d),Math.abs(q.y2-d))}),h=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var y=ia("markerSize",f,this)||4,u=c?20:y,t=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-d,2));t<=u&&b.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:t});q=Math.abs(q.x1-a);q<=m?m=q:0u&&(t=Math.atan2(d-y.y,a-y.x),0>t&&(t+=2*Math.PI),t=Number(((180*(t/Math.PI)%360+360)%360).toFixed(12)),y=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),u=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===u&&1=u&&(0!==f.y&&!l(f.y))&&(u+=360,ty&&t=t.y1&&d=t.y6?(g=t.x6+(t.x5-t.x6)/(t.y5-t.y6)*(d-t.y6),t=t.x3+(t.x4-t.x3)/(t.y4-t.y3)*(d-t.y3)):(g=t.x1+(t.x6-t.x1)/(t.y6-t.y1)*(d-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(d-t.y2)):(g=t.x1+(t.x4-t.x1)/(t.y4-t.y1)*(d-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(d-t.y2)),a>g&&a=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y4-q.borderThickness/2&&d<=q.y1+ q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "candlestick":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y2-q.borderThickness/2&&d<=q.y3+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(q.x1- a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "ohlc":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&d<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&d>=q.y1-q.borderThickness/2&&d<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&d>=q.y4-q.borderThickness/2&&d<=q.y4+q.borderThickness/2)b.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0}if(h||1E3r-e&& r+e>=this.dataPoints.length)break;-1===k?(e++,k=1):k=-1}a=null;for(d=0;dr[f].endValue;f++);a=f=r[f].startValue&&c<=r[f].endValue;p=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:p,label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:fa(p,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:g,maxHeight:k,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor, cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:this.labelBorderThickness,padding:this.labelPadding}),this._labels.push({position:p,textBlock:a,effectiveHeight:null}))}f=q;for(c=this.intervalStartPosition;c<=e;c=parseFloat(this.logarithmic&&this.equidistantInterval?1E-12>c*Math.pow(this.logarithmBase, this.interval)?c*Math.pow(this.logarithmBase,this.interval):(c*Math.pow(this.logarithmBase,this.interval)).toFixed(12):1E-12>this.interval?c+this.interval:(c+this.interval).toFixed(12))){for(;fr[f].endValue;f++);a=f=r[f].startValue&&c<=r[f].endValue;p=c;a?(a=Math.floor((r[f].endValue-c)/this.interval),c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval*a):c+this.interval*a:(this.logarithmic&&this.equidistantInterval? c*Math.pow(this.logarithmBase,this.interval*a):c+this.interval*a).toFixed(12))):(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:p,label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:fa(p,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:g,maxHeight:k,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor, borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",padding:this.labelPadding}),this._labels.push({position:p,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),e=Ua(new Date(this.viewportMaximum), this.interval,this.intervalType),f=q,c=this.intervalStartPosition;cr[f].endValue;f++);p=q;(a=f=r[f].startValue&&q<=r[f].endValue)?Ua(c,b*Math.floor((r[f].endValue-q)/b),this.intervalType):(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(p),label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:Fa(p,this.valueFormatString,this.chart._cultureInfo), a=new ka(this.ctx,{x:0,y:0,maxWidth:g,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:k,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",padding:this.labelPadding}),this._labels.push({position:p, textBlock:a,effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)l(this.conversionParameters)&&this.calculateValueToPixelConversionParameters(),c=this.conversionParameters&&this.conversionParameters.range?this.conversionParameters.range:this.range,h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/ this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(c)/Math.log(this.logarithmBase):Math.abs(c))*J[this.intervalType+"Duration"]*this.interval,g="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(k="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize+("object"===typeof this.labelPadding?(this.labelPadding.top|| 0)+(this.labelPadding.bottom||0):2*this.labelPadding));else if("left"===this._position||"right"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase): Math.abs(this.range))*J[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(g="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),k="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;for(b=0;b=g&&(g="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth);a.maxWidth= g;!this.labelAutoFit&&0>=k&&(k="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize+("object"===typeof this.labelPadding?(this.labelPadding.top||0)+(this.labelPadding.bottom||0):2*this.labelPadding));a.maxHeight=k;var u=a.measureText();m=u.height}e=[];q=r=0;if(this.labelAutoFit||this.options.labelAutoFit)if(l(this.labelAngle)||(this.labelAngle=(this.labelAngle%360+360)%360,90this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&& 360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position||"top"===this._position)if(g=Math.floor(0.9*h),q=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=g;this.sessionVariables.labelMaxHeight=k;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(y=c,q=p.width)}c=0;for(c=this.intervalStartPosition>0>2*g&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth> g?-25:this.sessionVariables.labelAngle):l(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=k,this.sessionVariables.labelMaxWidth=g,d&&u.width+d.width>>0>2*g&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=p)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>g?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight= k,this.sessionVariables.labelWrap=this.labelWrap);else{if(l(this.options.labelWrap))if(!l(this.options.labelMaxWidth))this.options.labelMaxWidth>0,f=this.labelFontSize,qr&&(r=b-2*g,b>=2*g&&b<2.2*g?(this.sessionVariables.labelMaxWidth= g,l(this.options.labelFontSize)&&12=2.2*g&&b<2.8*g?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelFontSize=f):b>=2.8*g&&b<3.2*g?(this.sessionVariables.labelMaxWidth=Math.max(g,q),this.sessionVariables.labelWrap=!0,l(this.options.labelFontSize)&&12=3.2*g&&b<3.6*g?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*g&&b<5*g?(l(this.options.labelFontSize)&&125*g&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=g,this.sessionVariables.labelFontSize=f,this.sessionVariables.labelMaxHeight=k,this.sessionVariables.labelAngle=this.labelAngle));else if(y===c&&(0===y&&q+this._labels[y+1].textBlock.measureText().width-2*g>r||y===this._labels.length-1&&q+this._labels[y- 1].textBlock.measureText().width-2*g>r||0r&&q+this._labels[y-1].textBlock.measureText().width-2*g>r))r=0===y?q+this._labels[y+1].textBlock.measureText().width-2*g:q+this._labels[y-1].textBlock.measureText().width-2*g,this.sessionVariables.labelFontSize=l(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth= p;else if(0===r)for(this.sessionVariables.labelFontSize=l(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,b=0;b>0>2*g&&(this.sessionVariables.labelAngle= -25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?k:Math.min((b-g*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),p=0!=this.labelAngle?(n-(m+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):g,this.sessionVariables.labelMaxHeight=this.labelWrap?(n-p*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)): 1.5*this.labelFontSize,l(this.options.labelWrap))?l(this.options.labelWrap)&&(this.labelWrap&&!l(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p,this.sessionVariables.labelMaxHeight=k):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelMaxHeight=Math.max(b,0.9*h),this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap? (this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p):(l(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=k)}this.sessionVariables.labelMaxHeight=Math.max(this.sessionVariables.labelMaxHeight,1.5*this.labelFontSize);for(b=0;b>0:this.options.labelMaxWidth,k="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&& 1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=g;this.sessionVariables.labelMaxHeight=k;this.sessionVariables.labelAngle=l(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,m-2*k>q&&(q=m-2*k,m>=2*k&&m<2.4*k?(l(this.options.labelFontSize)&&12=2.4*k&&m<2.8*k?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):m>=2.8*k&&m<3.2*k?(this.sessionVariables.labelMaxHeight= k,this.sessionVariables.labelWrap=!0,l(this.options.labelFontSize)&&12=3.2*k&&m<3.6*k?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize= this.labelFontSize):m>3.6*k&&m<10*k?(l(this.options.labelFontSize)&&1210*k&&m<50*k&&(l(this.options.labelFontSize)&& 12>0:1.5*k.labelFontSize+("object"===typeof k.labelPadding?(k.labelPadding.top||0)+(k.labelPadding.bottom||0):2*k.labelPadding);if("left"===this._position||"right"===this._position)l(k.options.labelWrap)&&!l(this.sessionVariables.stripLineLabelMaxHeight)? v=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=v=k.labelWrap?0.8*this.chart.width>>0:1.5*k.labelFontSize+("object"===typeof k.labelPadding?(k.labelPadding.top||0)+(k.labelPadding.bottom||0):2*k.labelPadding);l(k.labelBackgroundColor)&&(k.labelBackgroundColor="#EEEEEE")}else d="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,v=l(k.options.labelWrap)||k.labelWrap?"bottom"===this._position||"top"===this._position? 0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*k.labelFontSize+("object"===typeof k.labelPadding?(k.labelPadding.top||0)+(k.labelPadding.bottom||0):2*k.labelPadding),l(k.labelBackgroundColor)&&(l(k.startValue)&&0!==k.startValue?k.labelBackgroundColor=t?"transparent":null:k.labelBackgroundColor="#EEEEEE");a=new ka(this.ctx,{x:0,y:0,backgroundColor:k.labelBackgroundColor,borderColor:k.labelBorderColor,borderThickness:k.labelBorderThickness,cornerRadius:k.labelCornerRadius,maxWidth:k.options.labelMaxWidth? k.options.labelMaxWidth:d,maxHeight:v,angle:this.labelAngle,text:k.labelFormatter?k.labelFormatter({chart:this.chart,axis:this,stripLine:k.options}):k.label,textAlign:k.labelTextAlign,fontSize:k.labelFontSize,fontFamily:k.labelFontFamily,fontWeight:k.labelFontWeight,fontColor:k.labelFontColor||k.color,fontStyle:k.labelFontStyle,textBaseline:"middle",padding:k.labelPadding});this._stripLineLabels.push({position:k.value,textBlock:a,effectiveHeight:null,stripLine:k})}};z.prototype.createLabelsAndCalculateWidth= function(){var a=0,d=0;this._labels=[];this._stripLineLabels=[];var c=0,b=[],e=this.chart.isNavigator?0:5;this.labelEffectiveWidth=l(this.labelEffectiveWidth)?0:this.labelEffectiveWidth;if("left"===this._position||"right"===this._position){this.createLabels();for(d=0;dthis.viewportMaximum)){var g=this._labels[d].textBlock,g=g.measureText(),k=0,k=0===this.labelAngle?g.width:g.width*Math.cos(Math.PI/ 180*Math.abs(this.labelAngle))+g.height*Math.sin(Math.PI/180*Math.abs(this.labelAngle));a<=k&&(this.labelEffectiveWidth=a=k);this._labels[d].effectiveWidth=k}for(d=0;d=this.viewportMinimum&&this._stripLineLabels[d].stripLine.value<=this.viewportMaximum)&&(g=this._stripLineLabels[d].textBlock,g=g.measureText(),k=0===this.labelAngle?g.width:g.width*Math.cos(Math.PI/ 180*Math.abs(this.labelAngle))+g.height*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),c=Math.max(c,this._stripLineLabels[d].stripLine.tickLength),"inside"===this.labelPlacement&&(a-=0this.viewportMaximum)){c=this._labels[b].textBlock;c=c.measureText();var k=0,k=0===this.labelAngle?c.height:c.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+c.height*Math.cos(Math.PI/180*Math.abs(this.labelAngle));a<=k&&(this.labelEffectiveHeight=a=k);this._labels[b].effectiveHeight=k}for(b=0;b=this.viewportMinimum&& this._stripLineLabels[b].stripLine.value<=this.viewportMaximum)&&(c=this._stripLineLabels[b].textBlock,c=c.measureText(),k=0===this.labelAngle?c.height:c.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+c.height*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),d=Math.max(d,this._stripLineLabels[b].stripLine.tickLength),"inside"===this.labelPlacement&&(a-=0q[f].viewportMaximum);u++)t[u].endValue=q[f].viewPortMinimum&&(q[f].scaleBreaks.lastBreakIndex=u));for(var v=u=0,s=0,x=0,w=0,z=0,A=0,C,D,E=h=0,I,H,K,t= I=H=K=!1,f=0;fu;){var U=0,X=0,V=0,W=0,aa=J=e=0,ca=0,Y=0,Z=0,N=k=0;if(c&&0m&&(a[f].convertPixelToValue(D)>=a[f].viewportMinimum&&a[f].convertPixelToValue(D)<=a[f].viewportMaximum)&&(h+=D+n-m-N)):0>a[f].labelAngle?C-vm&&(a[f].convertPixelToValue(D)>=a[f].viewportMinimum&&a[f].convertPixelToValue(D)<=a[f].viewportMaximum)&&(h=D+s/2-m-N),C-va[f].labelAngle&&0a[0].lineCoordinates.x2&&(a[0].lineCoordinates.x2=a[f].lineCoordinates.x2):(a[0].lineCoordinates.x2=a[f].lineCoordinates.x2,aa=!0),a[0].lineCoordinates.width=a[0].lineCoordinates.x2-a[0].lineCoordinates.x1)}if(d&&0 u;){Y=W=V=ca=aa=J=e=F=S=X=Z=0;if(a&&0c[f].labelAngle?Math.max(k,x):0===c[f].labelAngle?Math.max(k,x/2):k),0c[f].chart.height?c[f].chart.height:g.y2)-("inside"!==c[c.length-1].labelPlacement||c[c.length-1].title||c[c.length-1].stripLineLabelEffectiveHeight||p.isNavigator? 0:5),c[f].lineCoordinates.y1=h-(r[f]+c[f].margin+Z),c[f].lineCoordinates.y2=h-(r[f]+c[f].margin+Z),"inside"===c[f].labelPlacement&&(c[f].lineCoordinates.y1=c[f].lineCoordinates.y1+c[f].labelEffectiveHeight+(p.isNavigator?0:2),c[f].lineCoordinates.y2=c[f].lineCoordinates.y1+c[f].lineThickness/2),"inside"===c[f].tickPlacement&&(c[f].lineCoordinates.y1+=c[f].tickLength,c[f].lineCoordinates.y2=c[f].lineCoordinates.y1+c[f].lineThickness/2),c[f].bounds={x1:k,y1:h-(r[f]+Z+c[f].margin),x2:m,y2:n-(Z+c[f].margin), width:m-k,height:r[f]},c[f].title&&(c[f]._titleTextBlock.maxWidth=0p.height-Math.max(aa,10)?p.height-Math.max(aa,10):g.y2-V):g.y2>p.height-Math.max(aa,10)?p.height-Math.max(aa,10):g.y2;if(c&&0c[T].labelAngle||0===c[T].labelAngle?m-W:k);if(b&&0p.height-Math.max(aa,10)?p.height-Math.max(aa,10):g.y2-V):g.y2>p.height-Math.max(aa,10)?p.height-Math.max(aa,10):g.y2;if(c&&0c[T].labelAngle||0===c[T].labelAngle?k+Y:k);if(b&&0d[g].spacing?0:Math.abs(d[g].spacing/c),this.logarithmic&&(d[g].size=Math.pow(this.logarithmBase,d[g].size))};z.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a= this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var d=0;dthis.conversionParameters.maximum);d++)a[d].endValue=this.conversionParameters.minimum&&(a[d].startPixel=this.convertValueToPixel(a[d].startValue),this.scaleBreaks.lastBreakIndex=d),a[d].endValue<=this.conversionParameters.maximum&& (a[d].endPixel=this.convertValueToPixel(a[d].endValue)))}};z.prototype.renderLabelsTicksAndTitle=function(){var a=this,d=!1,c=0,b=0,e=1,g=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,k,h=this.viewportMaximum,l=this.lineCoordinates.width/Math.log(this.range),n=this._labels.length- 1;0<=n;n--){r=this._labels[n];if(r.positionthis.viewportMaximum||!(n===this._labels.length-1||kthis.lineCoordinates.width*e&&this.labelAutoFit&&(d=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],m,h=this.viewportMaximum,l=this.lineCoordinates.height/Math.log(this.range),n=this._labels.length-1;0<=n;n--){r=this._labels[n];if(r.positionthis.viewportMaximum||!(n===this._labels.length-1||mthis.lineCoordinates.height*e&&this.labelAutoFit&&(d=!0)}}this.logarithmic&&(!this.equidistantInterval&& this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var n=0,r,q;if("bottom"===this._position){for(n=0;nthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(r.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<< 0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),d&&0!==g++%2&&this.labelAutoFit||(0===r.textBlock.angle?(q.x-=r.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+r.textBlock.height-r.textBlock._lineHeight/2+2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+r.textBlock._lineHeight/2+5):0>this.labelAngle?(q.x=q.x-("inside"===this.labelPlacement?0:r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle))+r.textBlock.topPadding* Math.sin(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y-("inside"===this.tickPlacement?this.tickLength:0)-2-(r.textBlock.height-r.textBlock._lineHeight/2)*Math.cos(Math.PI/180*this.labelAngle):q.y+("inside"===this.tickPlacement?0:this.tickLength)+5+Math.abs(r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-r.textBlock._lineHeight/2*Math.cos(Math.PI/180*this.labelAngle))):(q.x=q.x-("inside"===this.labelPlacement?r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0)+ r.textBlock.topPadding*Math.sin(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y-("inside"===this.tickPlacement?this.tickLength:0)-2-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-(r.textBlock.height-r.textBlock._lineHeight/2)*Math.cos(Math.PI/180*this.labelAngle):q.y+("inside"===this.tickPlacement?0:this.tickLength)+5+Math.abs(r.textBlock._lineHeight/2*Math.cos(Math.PI/180*this.labelAngle))),r.textBlock.x=q.x,r.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd", function(){for(n=0;na.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(r.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+ this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height+this._titleTextBlock._lineHeight/2-1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(n=0;nthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(r.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth= this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),d&&0!==g++%2&&this.labelAutoFit||(0===r.textBlock.angle?(q.x-=r.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+r.textBlock._lineHeight/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+r.textBlock.height-r.textBlock._lineHeight/ 2)-2):0>this.labelAngle?(q.x=q.x-("inside"===this.labelPlacement?r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0)+r.textBlock.topPadding*Math.sin(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y+("inside"===this.tickPlacement?this.tickLength:0)+5-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+r.textBlock._lineHeight/2*Math.cos(Math.PI/180*this.labelAngle):q.y-("inside"===this.tickPlacement?0:this.tickLength)-2-(r.textBlock.height-r.textBlock._lineHeight/2)*Math.cos(Math.PI/ 180*this.labelAngle)):(q.x=q.x-("inside"===this.labelPlacement?0:r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle))+r.textBlock.topPadding*Math.sin(Math.PI/180*this.labelAngle),q.y="inside"===this.labelPlacement?q.y+("inside"===this.tickPlacement?this.tickLength:0)+5+r.textBlock._lineHeight/2*Math.cos(Math.PI/180*this.labelAngle):q.y-("inside"===this.tickPlacement?0:this.tickLength)-2-((r.textBlock.height-r.textBlock._lineHeight/2)*Math.cos(Math.PI/180*this.labelAngle)+r.textBlock.width*Math.sin(Math.PI/ 180*this.labelAngle))),r.textBlock.x=q.x,r.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(n=0;na.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(r.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b, q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+this._titleTextBlock._lineHeight/2+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(n=0;nthis.viewportMaximum|| (q=this.getPixelCoordinatesOnAxis(r.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),d&&0!==g++%2&&this.labelAutoFit||(0===this.labelAngle?(r.textBlock.y=q.y-r.textBlock.topPadding,r.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement? this.tickLength:0)+5:q.x-r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):0>this.labelAngle?(r.textBlock.y=("inside"===this.labelPlacement?q.y:q.y-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle))-r.textBlock.topPadding*Math.cos(Math.PI/180*this.labelAngle),r.textBlock.x="inside"===this.labelPlacement?q.x-r.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-r.textBlock.width* Math.cos(Math.PI/180*this.labelAngle)+(r.textBlock.height-r.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(r.textBlock.y=("inside"===this.labelPlacement?q.y:q.y-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle))-r.textBlock.topPadding*Math.cos(Math.PI/180*this.labelAngle),r.textBlock.x="inside"===this.labelPlacement?q.x+(r.textBlock.height-r.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement? this.tickLength:0)+5:q.x-r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-r.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5)));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(n=0;na.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(r.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+this._titleTextBlock._lineHeight/2,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== this._position){for(n=0;nthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(r.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),d&&0!==g++%2&&this.labelAutoFit||(0===this.labelAngle? (r.textBlock.y=q.y-r.textBlock.topPadding,r.textBlock.x="inside"===this.labelPlacement?q.x-r.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):0>this.labelAngle?(r.textBlock.y=("inside"===this.labelPlacement?q.y-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):q.y)-r.textBlock.topPadding*Math.cos(Math.PI/180*this.labelAngle),r.textBlock.x="inside"===this.labelPlacement?q.x-r.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+ (r.textBlock.height-r.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x-r.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?0:this.tickLength)+5):(r.textBlock.y=("inside"===this.labelPlacement?q.y-r.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):q.y)-r.textBlock.topPadding*Math.cos(Math.PI/180*this.labelAngle),r.textBlock.x="inside"===this.labelPlacement?q.x-r.textBlock.width*Math.cos(Math.PI/ 180*this.labelAngle)-r.textBlock.fontSize/2*Math.sin(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+(r.textBlock.height-r.textBlock.fontSize/2)*Math.sin(Math.PI/180*this.labelAngle)+("inside"===this.tickPlacement?0:this.tickLength)+5)));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(n=0;na.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(r.position), a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-this._titleTextBlock._lineHeight/2,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth= this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}g=0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationIterationEnd",function(){for(n=0;na.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),r.textBlock.render(!0),a.ctx.restore())},this);else for(n=0;nthis.viewportMaximum|| d&&0!==g++%2&&this.labelAutoFit)||r.textBlock.render(!0)};z.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,d,c,b=this.chart.plotArea,e=0;d=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+ 1].position),a.fillRect(Math.min(c.x,d.x),b.y1,Math.abs(c.x-d.x),Math.abs(b.y1-b.y2)),d=!1):d=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,d.y),Math.abs(b.x1-b.x2), Math.abs(d.y-c.y)),d=!1):d=!0;a.beginPath()};z.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0this.viewportMaximum||l(r.value)||isNaN(this.range))||"value"===a&&(r.startValue<=this.viewportMinimum&&r.endValue<=this.viewportMinimum||r.startValue>=this.viewportMaximum&& r.endValue>=this.viewportMaximum||l(r.startValue)||l(r.endValue)||isNaN(this.range))||h.push(r))}for(e=0;ethis.viewportMaximum||isNaN(this.range)))if(b=this.getPixelCoordinatesOnAxis(c.position),"outside"===c.stripLine.labelPlacement){r&&(this.ctx.strokeStyle=r.tickColor?r.tickColor:r.color,this.ctx.lineWidth=r.tickThickness=l(r.tickThickness)?"pixel"===r._thicknessType? r.thickness:this.thickness:r.tickThickness,l(r.opacity)||"pixel"!==r._thicknessType||(p=r.ctx.globalAlpha,r.ctx.globalAlpha=r.opacity),l(r.opacity)&&(r.opacity=r.ctx.globalAlpha));if("bottom"===this._position){var q=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0;0this.labelAngle? c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0)-c.textBlock.topPadding*Math.sin(Math.PI/180*this.labelAngle),b.y+=r.tickLength+5+(0>this.labelAngle?Math.abs(c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-c.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle)):Math.abs(c.textBlock.fontSize/2*Math.cos(Math.PI/180*this.labelAngle))))}else"top"===this._position?(q=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,0this.chart.plotArea.x1?l(r.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,l(r.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90=== c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth? this.options.stripLines[e].labelMaxWidth:this.chart.plotArea.height-3,c.textBlock.measureText(),b.x-c.textBlock.height-r.thickness/2>this.chart.plotArea.x1?l(r.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,l(r.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+ c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position?(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth?this.options.stripLines[e].labelMaxWidth:this.chart.plotArea.width- 3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-r.thickness/2>this.chart.plotArea.y1?l(r.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:l(r.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.y+=c.textBlock.height/2-c.textBlock.fontSize+3,b.x="near"===c.stripLine.labelAlign?this.chart.plotArea.x1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/ 2-c.textBlock.width/2:this.chart.plotArea.x2-c.textBlock.width-3):"right"===this._position&&(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth?this.options.stripLines[e].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-r.thickness/2>this.chart.plotArea.y1?l(r.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+r.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:l(r.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/ 2+r.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2+3,b.x="near"===c.stripLine.labelAlign?this.chart.plotArea.x2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x1+3),c.textBlock.x=b.x,c.textBlock.y=b.y,m.push(c));if(!n){b=!1;this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height);this.ctx.clip(); for(e=0;ethis.viewportMaximum||isNaN(this.range))||a[d].render(this.maskCtx);this.maskCtx.restore()}};z.prototype.renderCrosshair=function(a,d){isFinite(this.minimum)&&isFinite(this.maximum)&&this.crosshair.render(a,d)};z.prototype.showCrosshair=function(a){l(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position?this.crosshair.render(this.convertValueToPixel(a),null,a):this.crosshair.render(null,this.convertValueToPixel(a), a))};z.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(), d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d=1===a.lineWidth%2?(d.x<<0)+0.5:d.x<<0,a.moveTo(d,c.y1<<0),a.lineTo(d,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d=1===a.lineWidth%2?(d.y<<0)+0.5:d.y<<0,a.moveTo(c.x1<< 0,d),a.lineTo(c.x2<<0,d),a.stroke());a.restore()}};z.prototype.renderAxisLine=function(){var a=this.chart.ctx,d=t?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,g;d.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,g=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,g=this.lineCoordinates.x2);d.lineWidth=this.lineThickness;d.strokeStyle= this.lineColor?this.lineColor:"black";d.setLineDash&&d.setLineDash(H(this.lineDashType,this.lineThickness));var k=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;d.beginPath();if(this.scaleBreaks&&!l(this.scaleBreaks.firstBreakIndex))if(l(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(e,k),d.lineTo(this.scaleBreaks._appliedBreaks[h].startPixel+ c,k),e=this.scaleBreaks._appliedBreaks[h].endPixel+b;e&&(d.moveTo(e,k),d.lineTo(g,k));d.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,g=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,g=this.lineCoordinates.y1);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor;d.setLineDash&&d.setLineDash(H(this.lineDashType,this.lineThickness));k=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<< 0;d.beginPath();if(this.scaleBreaks&&!l(this.scaleBreaks.firstBreakIndex))if(l(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(k,e),d.lineTo(k,this.scaleBreaks._appliedBreaks[h].startPixel+b),e=this.scaleBreaks._appliedBreaks[h].endPixel+c;e&&(d.moveTo(k,e),d.lineTo(k,g));d.stroke()}t&&(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width, this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),d.clearRect(0,0,this.chart.width,this.chart.height));d.restore()};z.prototype.getPixelCoordinatesOnAxis=function(a){var d={};if("bottom"===this._position||"top"===this._position)d.x=this.convertValueToPixel(a),d.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)d.y=this.convertValueToPixel(a),d.x=this.lineCoordinates.x2; return d};z.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var d=0,c=0,b,d=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c< e.length;c++){if(!(e[c].endValuee[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c-1].endValue){b/=e[c].startValue/e[c-1].endValue; if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum){if(1e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue, Math.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));d=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/ e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;d=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;d=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit; if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum-e[c].size*(e[c].endValue- this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);d=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c-1].endValue){b-=e[c].startValue- e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+= e[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),d=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size; d=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;d=this.conversionParameters.minimum+a}return d};z.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit* Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};z.prototype.getApparentDifference=function(a,d,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];if(this.logarithmic){c=l(c)?d/a:c;for(var g= 0;ge[g].endValue||(a<=e[g].startValue&&d>=e[g].endValue?c=c/e[g].endValue*e[g].startValue*e[g].size:a>=e[g].startValue&&d>=e[g].endValue?c=c/e[g].endValue*a*Math.pow(e[g].size,Math.log(e[g].endValue/a)/Math.log(e[g].endValue/e[g].startValue)):a<=e[g].startValue&&d<=e[g].endValue?c=c/d*e[g].startValue*Math.pow(e[g].size,Math.log(d/e[g].startValue)/Math.log(e[g].endValue/e[g].startValue)):!b&&(a>e[g].startValue&&de[g].endValue||(a<=e[g].startValue&&d>=e[g].endValue?c=c-e[g].endValue+e[g].startValue+e[g].size:a>e[g].startValue&&d>=e[g].endValue?c=c-e[g].endValue+a+e[g].size*(e[g].endValue-a)/(e[g].endValue-e[g].startValue):a<=e[g].startValue&&de[g].startValue&&da[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&& this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,g,k,b=0;!l(this.options.viewportMinimum)&&(!l(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); if(l(this.options.viewportMinimum)&&!l(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(l(this.options.viewportMaximum)&&!l(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;!l(this.minimum)&&this.viewportMinimumthis.maximum&&(this.viewportMaximum=this.maximum);if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!l(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue|| !l(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!l(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!l(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!l(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&& 0g?(b=Math.min(0.01*Math.abs(this.getApparentDifference(g,e,null,!0)),5),0<=g?e=g-b:g=isFinite(e)?e+b:0):(e>=k||g>=k||e<=-k||g<=-k)&&10>g-e?g+=9:(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,g,null,!0)),0.05),0!==g&&(g+=b),0!==e&&(e-=b)),k=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1g&&(g=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?g:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.valueType="dateTime";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"): b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"):b/250<=a?(this.interval=250,this.intervalType="millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*J.secondDuration)<= a?(this.interval=1,this.intervalType="second"):b/(2*J.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*J.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*J.secondDuration)<=a?(this.interval=10,this.intervalType="second"):b/(15*J.secondDuration)<=a?(this.interval=15,this.intervalType="second"):b/(20*J.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*J.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*J.minuteDuration)<= a?(this.interval=1,this.intervalType="minute"):b/(2*J.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*J.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*J.minuteDuration)<=a?(this.interval=10,this.intervalType="minute"):b/(15*J.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):b/(20*J.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*J.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*J.hourDuration)<= a?(this.interval=1,this.intervalType="hour"):b/(2*J.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*J.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*J.hourDuration)<=a?(this.interval=6,this.intervalType="hour"):b/(1*J.dayDuration)<=a?(this.interval=1,this.intervalType="day"):b/(2*J.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*J.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*J.weekDuration)<=a?(this.interval=1,this.intervalType="week"): b/(2*J.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*J.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*J.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*J.monthDuration)<=a?(this.interval=2,this.intervalType="month"):b/(3*J.monthDuration)<=a?(this.interval=3,this.intervalType="month"):b/(6*J.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*J.yearDuration)<=a?1:b/(2*J.yearDuration)<=a?2:b/(4*J.yearDuration)<=a? 4:Math.floor(z.getNiceNumber(b/(a-1),!0)/J.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-k/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=g+k/2;d?this.autoValueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY": "day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString="hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString="fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=z.getNiceNumber(b,!1);this.interval=this.options&& 0g?(b=Math.min(0.01*Math.abs(this.getApparentDifference(g,e,null,!0)),5),0<=g?e=g-b:g=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,g,null,!0)),0.05),0!==g&&(g+=b),0!==e&&(e-=b)):(g="undefined"===typeof this.options.interval? -Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),k=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1g&&(g=0)),Math.abs(this.getApparentDifference(e,g,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum= e-k/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum=g+k/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"=== this.type?e-k/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,l(this.sessionVariables.newViewportMinimum)||isNaN(this.sessionVariables.newViewportMinimum)?l(this.sessionVariables.viewportMinimum)||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum:this.sessionVariables.newViewportMinimum)),null===this.maximum&&(this.maximum="axisX"===this.type?g+k/2:Math.ceil(g/this.interval)*this.interval,this.maximum=Math.max(this.maximum,l(this.sessionVariables.newViewportMaximum)|| isNaN(this.sessionVariables.newViewportMaximum)?l(this.sessionVariables.viewportMaximum)||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum:this.sessionVariables.newViewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));l(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));l(this.sessionVariables.newViewportMaximum)&& (this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=z.generateValueFormatString(this.range,2))}};z.prototype.calculateLogarithmicAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(), d=Math.log(this.logarithmBase),c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,e,g,k;k=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum; if(this.scaleBreaks)for(k=0;k=this.scaleBreaks._appliedBreaks[k].startValue||!l(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[k].startValue||!l(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[k].startValue)&&(!l(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[k].endValue|| !l(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[k].endValue||!l(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[k].endValue)){this.scaleBreaks._appliedBreaks.splice(k,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,1===e/b&&(k=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval? 0.4:this.options.interval),e*=k,b/=k),g=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(e)?(e="undefined"===typeof this.options.interval?0:this.options.interval,b=1):0>=b?b=e:isFinite(e)||(e=b),1===b&&1===e?(e*=this.logarithmBase- 1/this.logarithmBase,b=1):1===e/b?(k=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=k,b/=k):b>e?(k=Math.min(b/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?b=e/k:e=b*k):(k=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=k),1!==b&&(b/=k)),g=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null=== this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));k=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var h=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType= "number";k=Math.pow(this.logarithmBase,z.getNiceNumber(Math.abs(Math.log(k)/d),!1));this.options&&0this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum? this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(e)?1===b&&1===e?(e*=this.logarithmBase,b/=this.logarithmBase):1===e/b?(k=Math.pow(this.logarithmBase,this.interval),e*=k,b/=k):b>e?(k=Math.min(0.01*(b/e),5),1<=e?b=e/k:e=b*k):(k=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=k),1!==b&&(b/=k)):(e="undefined"===typeof this.options.interval?0:this.options.interval,b=1),g=Infinity!==this.dataInfo.minDiff? this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(g):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/d/this.interval)),l(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)? "undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?e*Math.sqrt(g): Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/d/this.interval)),l(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum? 0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum|| this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval);this.range= this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(d=Math.floor(this.viewportMinimum/c+0.5)*c;dthis.interval&&(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval))), this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){d=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(d)||!isFinite(d))d=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/Math.LN10)),isNaN(b)||!isFinite(b))&&(b=d);for(var e=0;ec?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};z.getNiceNumber=function(a,d){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=d?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};z.prototype.getLabelStartPoint=function(){var a=J[this.intervalType+"Duration"]*this.interval,a= new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,h),this.ctx.lineTo(k,h),this.ctx.lineTo(k,e);else if("wavy"===this.type){l=b;n=e;g=0.5;m=(h-n)/a/3;for(var q=0;q=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(k,e),this.ctx.lineTo(k,h),this.ctx.lineTo(b,h);else if("wavy"===this.type){l=b;n=e;g=0.5;m=(k-l)/a/3;for(q=0;q=b[e].viewportMinimum&&a<=b[e].viewportMaximum?a:null);b=["axisX","axisX2","axisY","axisY2"];for(e=0;e=h.viewportMinimum&&m<=h.viewportMaximum?(h.showCrosshair(m),this===h.crosshair&&(c=!0)):void 0!==m&&(h.sessionVariables.crosshairValue=null,h.crosshair._updatedValue=null))}this.chart.toolTip&&(this.chart.toolTip._entries&&this.chart.sessionVariables._dataHighlighted)&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};ga.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.toolTip&& (this.chart.toolTip._entries&&this.chart.sessionVariables._dataHighlighted)&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);this.chart.renderCrosshairs(this.parent,!1);this.parent.sessionVariables._crosshairHidden=this._hidden=!0};ga.prototype.render=function(a,d,c){var b,e,g,k,h=null,m=null,n=null,p="";this.valueFormatString||("dateTime"===this.parent.valueType?this.valueFormatString=this.parent.valueFormatString:(n=0,n="xySwapped"===this.chart.plotInfo.axisPlacement?50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0),this.valueFormatString=z.generateValueFormatString(this.parent.range,n)));var r=null===this.opacity?1:this.opacity,q=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit* this.thickness),f=this.chart.overlaidCanvasCtx,t=f.globalAlpha;f.beginPath();f.strokeStyle=this.color;f.lineWidth=q;f.save();this.labelFontSize=Math.abs(l(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=l(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=l(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:1.5*this.labelFontSize+("object"===typeof this.labelPadding?(this.labelPadding.top||0)+(this.labelPadding.bottom|| 0):2*this.labelPadding);n=new ka(f,{x:0,y:0,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxWidth:this.labelMaxWidth,maxHeight:this.labelMaxHeight,angle:this.labelAngle,text:p,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,padding:this.labelPadding,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}); if(this.snapToDataPoint){var u=0,p=[];if("xySwapped"===this.chart.plotInfo.axisPlacement){var v=null;if("bottom"===this.parent._position||"top"===this.parent._position)u=this.parent.dataSeries[0].axisX.convertPixelToValue({y:this.parent.sessionVariables.crosshairShownByPixel?this.chart.sessionVariables.mouseY:d});else if("left"===this.parent._position||"right"===this.parent._position)u=this.parent.convertPixelToValue({y:d});for(var s=0;sthis.parent.range?2:10>this.parent.range? 1:0)));n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.y[s]}):l(this.options.label)?fa(w.dataPoint.y[s],this.valueFormatString,this.chart._cultureInfo):this.label}else"stackedBar"===w.dataSeries.type?(u=Math.abs(a-this.parent.convertValueToPixel(p[0].dataPoint.y)),cumulativeY=w.dataSeries.dataPointEOs[w.index].cumulativeY,h=1===f.lineWidth%2?(this.parent.convertValueToPixel(cumulativeY)<<0)+0.5:this.parent.convertValueToPixel(cumulativeY)<< 0,this.value=cumulativeY,0!==cumulativeY%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:cumulativeY}):l(this.options.label)?fa(cumulativeY,this.valueFormatString,this.chart._cultureInfo):this.label):"stackedBar100"===w.dataSeries.type? (u=Math.abs(a-this.parent.convertValueToPixel(p[0].dataPoint.y)),cumulativeY=w.dataSeries.dataPointEOs[w.index].cumulativeY,x=w.dataPoint.x.getTime?w.dataPoint.x.getTime():w.dataPoint.x,yPercent=100*(cumulativeY/w.dataSeries.plotUnit.dataPointYSums[x]),h=1===f.lineWidth%2?(this.parent.convertValueToPixel(yPercent)<<0)+0.5:this.parent.convertValueToPixel(yPercent)<<0,this.value=yPercent,0!==yPercent%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range, Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:yPercent}):l(this.options.label)?fa(yPercent,this.valueFormatString,this.chart._cultureInfo):this.label):(h=1===f.lineWidth%2?(this.parent.convertValueToPixel(w.dataPoint.y)<<0)+0.5:this.parent.convertValueToPixel(w.dataPoint.y)<<0,this.value=w.dataPoint.y,0!==w.dataPoint.y%1&&l(this.options.valueFormatString)&& (this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.y}):l(this.options.label)?fa(w.dataPoint.y,this.valueFormatString,this.chart._cultureInfo):this.label);b=e=h;g=this.chart.plotArea.y1;k=this.chart.plotArea.y2;this.bounds={x1:b-q/2,y1:g,x2:e+q/2,y2:k}; n.x=b-n.measureText().width/2;n.x+n.width>this.chart.bounds.x2?n.x=this.chart.bounds.x2-n.width:n.xthis.chart.bounds.y2?n.y=this.chart.bounds.y2-n.height:n.ythis.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter? this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.x}):l(this.options.label)?fa(w.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label):n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.x}):l(this.options.label)?Fa(w.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label;this.value=w.dataPoint.x;n.y=k+n.fontSize/2-n.measureText().height/2+2;n.y-n.fontSize/ 2this.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.measureText().height+n.fontSize/2);"left"===this.parent._position?n.x=this.parent.lineCoordinates.x2-n.measureText().width:"right"===this.parent._position&&(n.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){u=this.parent.convertPixelToValue({x:a});for(s=0;sthis.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.x}):l(this.options.label)?fa(w.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label):n.text=this.labelFormatter? this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.x}):l(this.options.label)?Fa(w.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label;this.value=w.dataPoint.x;n.x=b-n.measureText().width/2;n.x+n.width>this.chart.bounds.x2&&(n.x=this.chart.bounds.x2-n.width);n.xthis.parent.range?2:10>this.parent.range?1:0)));n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.y[s]}):l(this.options.label)?fa(w.dataPoint.y[s],this.valueFormatString,this.chart._cultureInfo):this.label;this.value=w.dataPoint.y[s]}else"stackedColumn"=== w.dataSeries.type?(a=w.dataSeries.dataPointEOs[w.index].cumulativeY,m=1===f.lineWidth%2?(this.parent.convertValueToPixel(a)<<0)+0.5:this.parent.convertValueToPixel(a)<<0,0!==a%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:a}): l(this.options.label)?fa(a,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=a):"stackedArea"===w.dataSeries.type?(a=w.dataSeries.dataPointEOs[w.index].cumulativeY,m=1===f.lineWidth%2?(this.parent.convertValueToPixel(a)<<0)+0.5:this.parent.convertValueToPixel(a)<<0,0!==a%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range? 1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:a}):l(this.options.label)?fa(a,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=a):"stackedColumn100"===w.dataSeries.type?(m=w.dataSeries.dataPointEOs[w.index].cumulativeY,x=w.dataPoint.x.getTime?w.dataPoint.x.getTime():w.dataPoint.x,a=100*(m/w.dataSeries.plotUnit.dataPointYSums[x]),m=1===f.lineWidth%2?(this.parent.convertValueToPixel(a)<<0)+0.5:this.parent.convertValueToPixel(a)<< 0,0!==a%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:a}):l(this.options.label)?fa(a,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=a):"stackedArea100"===w.dataSeries.type?(m=w.dataSeries.dataPointEOs[w.index].cumulativeY, x=w.dataPoint.x.getTime?w.dataPoint.x.getTime():w.dataPoint.x,a=100*(m/w.dataSeries.plotUnit.dataPointYSums[x]),m=1===f.lineWidth%2?(this.parent.convertValueToPixel(a)<<0)+0.5:this.parent.convertValueToPixel(a)<<0,0!==a%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart, axis:this.parent,crosshair:this.options,value:a}):l(this.options.label)?fa(a,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=a):"waterfall"===w.dataSeries.type?(m=1===f.lineWidth%2?(this.parent.convertValueToPixel(w.dataSeries.dataPointEOs[w.index].cumulativeSum)<<0)+0.5:this.parent.convertValueToPixel(w.dataSeries.dataPointEOs[w.index].cumulativeSum)<<0,0!==w.dataSeries.dataPointEOs[w.index].cumulativeSum%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range, Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataSeries.dataPointEOs[w.index].cumulativeSum}):l(this.options.label)?fa(w.dataSeries.dataPointEOs[w.index].cumulativeSum,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=w.dataSeries.dataPointEOs[w.index].cumulativeSum):(m=1===f.lineWidth%2?(this.parent.convertValueToPixel(w.dataPoint.y)<< 0)+0.5:this.parent.convertValueToPixel(w.dataPoint.y)<<0,0!==w.dataPoint.y%1&&l(this.options.valueFormatString)&&(this.valueFormatString=z.generateValueFormatString(this.parent.range,Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0))),n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options,value:w.dataPoint.y}):l(this.options.label)?fa(w.dataPoint.y,this.valueFormatString,this.chart._cultureInfo): this.label,this.value=w.dataPoint.y);g=k=m;b=this.chart.plotArea.x1;e=this.chart.plotArea.x2;this.bounds={x1:b,y1:g-q/2,x2:e,y2:k+q/2};n.y=k+n.fontSize/2-n.measureText().height/2+2;n.y-n.fontSize/2this.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.measureText().height+n.fontSize/2);"left"===this.parent._position?n.x=this.parent.lineCoordinates.x2-n.measureText().width:"right"===this.parent._position&& (n.x=this.parent.lineCoordinates.x2)}p=null;f.globalAlpha=r;0this.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.height+n.fontSize/2+2),this.value>=Math.min(this.parent.viewportMinimum, this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.x2&&(n.x=this.chart.bounds.x2-n.measureText().width),this.value>= Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.measureText().height+n.fontSize/2);"left"===this.parent._position?n.x=this.parent.lineCoordinates.x1-n.measureText().width:"right"===this.parent._position&&(n.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)n.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent,crosshair:this.options, value:l(c)?this.parent.convertPixelToValue(a):c}):l(this.options.label)?fa(l(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,n.x=b-n.measureText().width/2,n.x+n.width>this.chart.bounds.x2&&(n.x=this.chart.bounds.x2-n.width),n.xthis.chart.bounds.x2&&(n.x=this.chart.bounds.x2-n.width);n.xthis.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.measureText().height+n.fontSize/2),"left"===this.parent._position?n.x=this.parent.lineCoordinates.x2-n.measureText().width:"right"===this.parent._position&&(n.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&n.xthis.chart.bounds.x2?n.x=this.chart.bounds.x2- n.measureText().width:"top"===this.parent._position&&n.y-n.fontSize/2this.chart.bounds.y2&&(n.y=this.chart.bounds.y2-n.height+n.fontSize/2+2);f.globalAlpha=r;0=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&(l(this._textBlock)||(l(this._textBlock.text)||!("number"===typeof this._textBlock.text.valueOf()||0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d),this.enabled&&this._updatedEventParameters&&!isNaN(this._prevX)&&!isNaN(this._prevY)&&this.container&&this.container.style&&this.dispatchEvent("none"===this.container.style.display?"hidden":"updated",this._updatedEventParameters,this))}; oa.prototype._updateToolTip=function(a,d,c){c="undefined"===typeof c?!0:c;this._updateOptions();this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var b=null,e=null,g=[],k=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){var h=[];if(this.chart.axisX)for(var m=0;mn.dataSeries.axisY.viewportMaximum&&c++;c-n.dataPoint.y.length&&g.push(n)}else"column"=== e.type||"bar"===e.type?0>n.dataPoint.y?0>n.dataSeries.axisY.viewportMinimum&&n.dataSeries.axisY.viewportMaximum>=n.dataPoint.y&&g.push(n):n.dataSeries.axisY.viewportMinimum<=n.dataPoint.y&&0<=n.dataSeries.axisY.viewportMaximum&&g.push(n):"bubble"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[n.index]].size/2,n.dataPoint.y>=n.dataSeries.axisY.viewportMinimum-c&&n.dataPoint.y<=n.dataSeries.axisY.viewportMaximum+c&&g.push(n)):"waterfall"===e.type?(c=0,n.cumulativeSumYStartValuen.dataSeries.axisY.viewportMaximum&&c++,n.cumulativeSumn.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2=n.dataSeries.axisY.viewportMinimum&&n.dataPoint.y<=n.dataSeries.axisY.viewportMaximum)&&g.push(n);else g.push(n)}}if(0a&&(a=Math.max(0,a+this.container.clientWidth+20));a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==g.length||this.shared||"line"!==g[0].dataSeries.type&&"stepLine"!==g[0].dataSeries.type&&"spline"!==g[0].dataSeries.type&&"area"!==g[0].dataSeries.type&&"stepArea"!==g[0].dataSeries.type&&"splineArea"!==g[0].dataSeries.type? "bar"===g[0].dataSeries.type||"rangeBar"===g[0].dataSeries.type||"stackedBar"===g[0].dataSeries.type||"stackedBar100"===g[0].dataSeries.type?g[0].dataSeries.axisX.convertValueToPixel(g[0].dataPoint.x):d:g[0].dataSeries.axisY.convertValueToPixel(g[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),g+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}",h=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=b.toolTipContent?b.toolTipContent:c.toolTipContent? c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&&(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent: this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}"),null===d&&(d=""),c.visible&&(!0===this.reversed? (d=this.chart.replaceKeywordsWithValue(g,b,c,e)+d,k"+d)):(d+=this.chart.replaceKeywordsWithValue(g,b,c,e),k"))))}null!==d&&(d=l+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"column"===c.type||"bar"===c.type||"scatter"=== c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?g=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type?g=b.toolTipContent?b.toolTipContent:c.toolTipContent? c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?g=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ": b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?g=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"===c.type||"ohlc"===c.type?g=b.toolTipContent?b.toolTipContent: c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}":"boxAndWhisker"===c.type&&(g=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}");null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(g,b,c,e)}return d};oa.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a= this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};oa.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition="",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};oa.prototype.hide=function(a){if(this.container){var d= "undefined"===typeof a||-1!==this.chart.clearedOverlayedCanvas.indexOf("axis");this.chart.sessionVariables._dataHighlighted=!1;this.container.style.display="none";this.currentSeriesIndex=-1;this._entries=this._dataSeriesIndex=this._xValue=null;this._prevY=this._prevX=NaN;this._updatedEventParameters=null;if("undefined"===typeof a||a)this.chart.resetOverlayedCanvas(),d&&this.chart.renderCrosshairs(null,!1)}};oa.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};oa.prototype.showAtIndex= function(a,d){};oa.prototype.showAtX=function(a,d){if(!this.enabled)return!1;!l(this.chart.clearedOverlayedCanvas)&&this.chart.clearedOverlayedCanvas.indexOf("axis")&&(this.chart.clearedOverlayedCanvas=null);this._updateOptions();var c,b,e,g=[];e=!1;d=!l(d)&&0<=d&&d=b.dataSeries.axisX.viewportMinimum&&b.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){e=!1;break}else if(b.dataSeries.axisX&&b.dataSeries.axisY&& (b.dataPoint.xb.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum))e=!0;else{e=!1;break}if(e)return this.hide(),!1;this.highlightObjects(g);"toolTip"===this.chart.clearedOverlayedCanvas&&this.chart.renderCrosshairs(null,!1);this._entries=g;k="";k=this.getToolTipInnerHTML({entries:g});if(null!==k){this.contentDiv.innerHTML=k;if(this.isToolTipDefinedInData&&l(this.options.content)&& l(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),k=0;kc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth, this.chart.width)-this.container.clientWidth));1!==g.length||this.shared||"line"!==g[0].dataSeries.type&&"stepLine"!==g[0].dataSeries.type&&"spline"!==g[0].dataSeries.type&&"area"!==g[0].dataSeries.type&&"stepArea"!==g[0].dataSeries.type&&"splineArea"!==g[0].dataSeries.type?"pie"===g[0].dataSeries.type||"doughnut"===g[0].dataSeries.type?(b=g[0].dataSeries.dataPointEOs[g[0].index].center.y+g[0].dataSeries.radius*Math.sin(g[0].dataSeries.dataPointEOs[g[0].index].midAngle),bb&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: 1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= {};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": "left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, {x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= 13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); /*tslint:enable*/ /*eslint-enable*/ /*jshint ignore:end*/