/* CanvasJS HTML5 & JavaScript Charts - v1.8.1 GA - http://canvasjs.com/ Copyright 2013 fenopix */ (function(){function T(a,c){a.prototype=Ja(c.prototype);a.prototype.constructor=a;a.base=c.prototype}function Ja(a){function c(){}c.prototype=a;return new c}function za(a,c,b){"millisecond"===b?a.setMilliseconds(a.getMilliseconds()+1*c):"second"===b?a.setSeconds(a.getSeconds()+1*c):"minute"===b?a.setMinutes(a.getMinutes()+1*c):"hour"===b?a.setHours(a.getHours()+1*c):"day"===b?a.setDate(a.getDate()+1*c):"week"===b?a.setDate(a.getDate()+7*c):"month"===b?a.setMonth(a.getMonth()+1*c):"year"===b&&a.setFullYear(a.getFullYear()+ 1*c);return a}function Q(a,c){var b=!1;0>a&&(b=!0,a*=-1);a=""+a;for(c=c?c:1;a.length>16).toString(16),b=((a&65280)>>8).toString(16);a=((a&255)>>0).toString(16);c=2>c.length?"0"+c:c;b=2>b.length?"0"+b:b;a=2>a.length?"0"+a:a;return"#"+c+b+a}function La(a,c){var b=this.length>>>0,d=Number(c)|| 0,d=0>d?Math.ceil(d):Math.floor(d);for(0>d&&(d+=b);db;b++)if(a[b]!==a[b+4]|a[b]!==a[b+8]|a[b]!==a[b+12]){c=!1;break}return c?a[0]<<16|a[1]<<8|a[2]:0}function R(a,c,b){return a in c?c[a]:b[a]} function ja(a,c,b){if(u&&Fa){var d=a.getContext("2d");ka=d.webkitBackingStorePixelRatio||d.mozBackingStorePixelRatio||d.msBackingStorePixelRatio||d.oBackingStorePixelRatio||d.backingStorePixelRatio||1;N=ta/ka;a.width=c*N;a.height=b*N;ta!==ka&&(a.style.width=c+"px",a.style.height=b+"px",d.scale(N,N))}else a.width=c,a.height=b}function $(a,c){var b=document.createElement("canvas");b.setAttribute("class","canvasjs-chart-canvas");ja(b,a,c);u||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(b); return b}function Ga(a,c,b){if(a&&c&&b){b=b+"."+c;var d="image/"+c;a=a.toDataURL(d);var e=!1,f=document.createElement("a");f.download=b;f.href=a;f.target="_blank";if("undefined"!==typeof Blob&&new Blob){for(var g=a.replace(/^data:[a-z/]*;base64,/,""),g=atob(g),k=new ArrayBuffer(g.length),k=new Uint8Array(k),q=0;q
Please right click on the image and save it to your device
"),c.document.close()}}}function U(a,c,b){c.getAttribute("state")!==b&&(c.setAttribute("state",b),c.setAttribute("type","button"),c.style.position= "relative",c.style.margin="0px 0px 0px 0px",c.style.padding="3px 4px 0px 4px",c.style.cssFloat="left",c.setAttribute("title",a._cultureInfo[b+"Text"]),c.innerHTML=""+a._cultureInfo[b+"Text"]+"")}function la(){for(var a=null,c=0;ca[f].x&&0q?{x:a[k].x+q/3,y:a[k].y+d/3}:{x:a[k].x,y:a[k].y+d/9};k=e;f=0===k?0:k-1; g=k===a.length-1?k:k+1;d=Math.abs((a[g].x-a[f].x)/(0===a[k].x-a[f].x?0.01:a[k].x-a[f].x))*(c-1)/2+1;q=(a[g].x-a[f].x)/d;d=(a[g].y-a[f].y)/d;b[b.length]=a[k].x>a[f].x&&0q?{x:a[k].x-q/3,y:a[k].y-d/3}:{x:a[k].x,y:a[k].y-d/9};b[b.length]=a[e]}return b}function Ha(a,c){if(null===a||"undefined"===typeof a)return c;var b=parseFloat(a.toString())*(0<=a.toString().indexOf("%")?c/100:1);return!isNaN(b)&&b<=c&&0<=b?b:c}function da(a,c,b,d,e){"undefined"===typeof e&&(e=0);this._padding=e; this._x1=a;this._y1=c;this._x2=b;this._y2=d;this._rightOccupied=this._leftOccupied=this._bottomOccupied=this._topOccupied=this._padding}function O(a,c){O.base.constructor.call(this,"TextBlock",c);this.ctx=a;this._isDirty=!0;this._wrappedText=null;this._lineHeight=Ca(this.fontFamily,this.fontSize,this.fontWeight)}function ga(a,c){ga.base.constructor.call(this,"Title",c,a.theme);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;if(x(this._options.margin)&&a._options.subtitles)for(var b=a._options.subtitles, d=0;d=this.labelAngle?this.labelAngle-=180:270=this.labelAngle&&(this.labelAngle-=360);if(this._options.stripLines&&0w?"a":"p";case "tt":return 12>w?"am":"pm";case "T":return 12>w?"A":"P";case "TT":return 12>w?"AM":"PM";case "K":return r?"UTC":(String(k).match(f)||[""]).pop().replace(g,""); case "z":return(0a?!0:!1;d&&(a*=-1);var e=b?b.decimalSeparator:".",f=b?b.digitGroupSeparator:",",g="";c=String(c);var g=1,k=b="",q=-1,h=[],n=[],m=0,l=0,p=0,r=!1,t=0,k=c.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g); c=null;for(var y=0;k&&yq)q=y;else{if("%"===c)g*=100;else if("\u2030"===c){g*=1E3;continue}else if(","===c[0]&&"."===c[c.length-1]){g/=Math.pow(1E3,c.length-1);q=y+c.length-1;continue}else"E"!==c[0]&&"e"!==c[0]||"0"!==c[c.length-1]||(r=!0);0>q?(h.push(c),"#"===c||"0"===c?m++:","===c&&p++):(n.push(c),"#"!==c&&"0"!==c||l++)}r&&(c=Math.floor(a),t=(0===c?"":String(c)).length-m,g/=Math.pow(10,t));0>q&&(q=y);g=(a*g).toFixed(l);c=g.split(".");g=(c[0]+"").split("");a=(c[1]+ "").split("");g&&"0"===g[0]&&g.shift();for(y=r=k=l=q=0;0t?c.replace("+","").replace("-",""):c.replace("-",""),b+=c.replace(/[0]+/,function(a){return Q(t,a.length)}));d="";for(f=!1;0t?c.replace("+","").replace("-",""):c.replace("-",""),d+=c.replace(/[0]+/,function(a){return Q(t,a.length)}));return b+((f?e:"")+d)},ra=function(a){var c=0,b=0;a=a||window.event;a.offsetX||0===a.offsetX?(c=a.offsetX,b=a.offsetY):a.layerX||0==a.layerX?(c=a.layerX,b=a.layerY):(c=a.pageX-a.target.offsetLeft,b=a.pageY-a.target.offsetTop);return{x:c,y:b}},Fa=!0,ta=window.devicePixelRatio||1,ka=1,N=Fa?ta/ka:1,Ma={reset:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAYAAAAAwr0iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAKRSURBVEiJrdY/iF1FFMfxzwnZrGISUSR/JLGIhoh/QiRNBLWxMLIWEkwbgiAoFgoW2mhlY6dgpY2IlRBRxBSKhSAKIklWJRYuMZKAhiyopAiaTY7FvRtmZ+/ed9/zHRjezLw5v/O9d86cuZGZpmURAfdn5o9DfdZNLXpjz+LziPgyIl6MiG0jPTJzZBuyDrP4BVm0P/AKbljTb4ToY/gGewYA7KyCl+1b3DUYANvwbiHw0gCAGRzBOzjTAXEOu0cC4Ch+r5x/HrpdrcZmvIDFSucMtnYCYC++6HmNDw8FKDT34ETrf639/azOr5vwRk/g5fbeuABtgC04XWk9VQLciMP4EH/3AFzErRNC7MXlQmsesSoHsGPE23hmEoBW+61K66HMXFmIMvN8myilXS36R01ub+KfYvw43ZXwYDX+AHP4BAci4pFJomfmr/ihmNofESsBImJGk7mlncrM45n5JPbhz0kAWpsv+juxaX21YIPmVJS2uNzJMS6ZNexC0d+I7fUWXLFyz2kSZlpWPvASlmqAf/FXNXf3FAF2F/1LuFifAlionB6dRuSI2IwHi6lzmXmp6xR8XY0fiIh7psAwh+3FuDkRHQVjl+a8lkXjo0kLUKH7XaV5oO86PmZ1FTzyP4K/XGl9v/zwfbW7BriiuETGCP5ch9bc9f97HF/vcFzCa5gdEPgWq+t/4v0V63oE1uF4h0DiFJ7HnSWMppDdh1dxtsPvJ2wcBNAKbsJXa0Ck5opdaBPsRNu/usba09i1KsaAVzmLt3sghrRjuK1Tf4xkegInxwy8gKf7dKMVH2QRsV5zXR/Cftyu+aKaKbbkQrsdH+PTzLzcqzkOQAVzM+7FHdiqqe2/YT4zF/t8S/sPmawyvC974vcAAAAASUVORK5CYII="}, pan:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAJVSURBVFiFvZe7a1RBGMV/x2hWI4JpfKCIiSBKOoOCkID/wP4BFqIIFkE02ChIiC8QDKlSiI3YqRBsBVGwUNAUdiIEUgjiAzQIIsuKJsfizsXr5t7d+8jmwLDfzHz3nLOzc7+ZxTZlGyDgZiWOCuJ9wH2gCUyuqQFgF/AGcKJNrYkBYBj40CIet+muGQi/96kM4WS7C/Tm5VUg7whJg8BkEGkCR4BDYfodsADUgP6wErO5iCtswsuJb32hdbXy8qzL5TIdmzJinHdZoZIBZcSFkGlAKs1Z3YCketZcBtouuaQNkrblMiBpBrhme7mAgU4wMCvpcFsDkq4C54DFVRTH9h+i6vlE0r5UA5ImgCuh28jB28iIs7BIVCOeStoZD64P4uPAjUTygKSx2FsK2TIwkugfk9Qkfd/E+yMWHQCeSRqx/R3gOp3LazfaS2C4B5gHDgD7U9x3E3uAH7KNpC3AHHAwTL4FHgM9GQ8vAaPA0dB/Abxqk2/gBLA9MXba9r1k/d4LfA3JtwueBeM58ucS+edXnAW23wP10N3advEi9CXizTnyN4bPS7Zn4sH/dq3t18AY4e1YLYSy3g/csj2VnFshZPuOpOeSKHCodUINuGj7YetE6je1PV9QoNPJ9StNHKodx7nRbiWrGHBGXAi5DUiqtQwtpcWK0Jubt8CltA5MEV1IfwO7+VffPwGfia5m34CT4bXujIIX0Qna1/cGMNqV/wUJE2czxD8CQ4X5Sl7Jz7SILwCDpbjKPBRMHAd+EtX4HWV5Spdc2w8kDQGPbH8py/MXMygM69/FKz4AAAAASUVORK5CYII="}, zoom:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAMqSURBVFiFvdfbj91TFMDxz57U6GUEMS1aYzyMtCSSDhWjCZMInpAI3khE/QHtgzdRkXgSCS8SES9epKLi0oRKNETjRahREq2KS1stdRujtDPtbA97n5zdn9+5zJxTK9k5v3POXmt991p7r71+IcaoGwkhTOIebMRqzOBTvIG3Y4zTXRmqSoyx5cAKbMJOHMFJnMZ8/jyFaXyMR7G6nb1aH22cP4BvcBxziG3GKfyTIR9D6BYg1KUghPBCDveFlb/24Av8iuUYw41YVsz5G7uxKcZ4aMEpwGt5NY3V/YbHsQ6rcAHOw/kYxigewr5CZw4fYGxBKcCLOFEYehXrMdRhr5yLETxVScsOLOkKAPfn1TYMPIvLFrShUlS2FDZm8XRHACzFAWl3R2xbqPMCYhmeLCAOYEMngAczbcTvuHYxzguIy/FesR9e6gSwU/OoPYHBHgHgviIKX2Flq7k34KhmcVnbi/PC8JX4MgMcxb118wZwdz5aISscqx7VRcox7MrPQ7i+btIAJrAkf9+bI9EPmZY2IAxiTSuAldLq4Y9+AcSUh78KP0tbAcwU35cXMD1JCIFUoGiehlqAz6TNB1f1C0DK+0h+nsNPrQC2a4bqGmlD9kOGcWt+Po6pVgDvSxfJaSkFd4UQBvoAsBYbCoB3a2flM7slA0R8iyt6rAFDeDPbm8eOTpVwGD9qVq7nLbIaZnmksPU1JtsCZMXNmpdRxFasWITzh6Xj3LCzra1OxcD2QjHiGVzdpfORnMqZio2PcF23ABdJF1Np4BPptlyPi6WzPYBzpJZtHe7A6xW9cnyP8TqA//SEIYRL8Bxul7rihvwgtVn78WcGGZXa9HGd5TDujDHuOePXNiHdKjWgZX/YbsxLx/ktqbjVzTlcjUSnvI5JrdlUVp6WesZZ6R1hRrpq9+EVTGS9jTjYAuKIouGpbcurEkIYxC051KNSamazsc+xK8b4S0VnEi/j0hqTP+M27O258egQwZuzs7pI7Mf4WQXIEDc5s9sux+5+1Py2EmP8UOq6GvWhIScxfdYjUERiAt9Jd84J6a16zf8JEKT3yCm8g1UxRv8CC4pyRhzR1uUAAAAASUVORK5CYII="}, menu:{image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK6wAACusBgosNWgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDcvMTUvMTTPsvU0AAAAP0lEQVRIie2SMQoAIBDDUvH/X667g8sJJ9KOhYYOkW0qGaU1MPdC0vGSbV19EACo3YMPAFH5BUBUjsqfAPpVXtNgGDfxEDCtAAAAAElFTkSuQmCC"}};L.prototype.setOptions=function(a,c){if(qa[this._defaultsKey]){var b=qa[this._defaultsKey],d;for(d in b)b.hasOwnProperty(d)&&(this[d]=a&&d in a?a[d]:c&&d in c?c[d]:b[d])}};L.prototype.updateOption=function(a){var c=qa[this._defaultsKey],b=this._options.theme?this._options.theme:this.chart&&this.chart._options.theme?this.chart._options.theme:"theme1",d={},e=this[a];b&&(ca[b]&&ca[b][this._defaultsKey])&&(d=ca[b][this._defaultsKey]);a in c&&(e=a in this._options?this._options[a]:d&&a in d?d[a]:c[a]);if(e===this[a])return!1;this[a]=e;return!0};L.prototype.trackChanges=function(a){if(!this.sessionVariables)throw"Session Variable Store not set";this.sessionVariables[a]= this._options[a]};L.prototype.isBeingTracked=function(a){this._options._oldOptions||(this._options._oldOptions={});return this._options._oldOptions[a]?!0:!1};L.prototype.hasOptionChanged=function(a){if(!this.sessionVariables)throw"Session Variable Store not set";return this.sessionVariables[a]!==this._options[a]};L.prototype.addEventListener=function(a,c,b){a&&c&&(this._eventListeners[a]=this._eventListeners[a]||[],this._eventListeners[a].push({context:b||this,eventHandler:c}))};L.prototype.removeEventListener= function(a,c){if(a&&c&&this._eventListeners[a])for(var b=this._eventListeners[a],d=0;d=(new Date).getTime()-a._dropDownCloseTime.getTime()||(a._dropdownMenu.style.display="block",a._menuButton.blur(),a._dropdownMenu.focus())},!0));if(!this._dropdownMenu&&this.exportEnabled&& u){this._dropdownMenu=document.createElement("div");this._dropdownMenu.setAttribute("tabindex",-1);this._dropdownMenu.style.cssText="position: absolute; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer;right: 1px;top: 25px;min-width: 120px;outline: 0;border: 1px solid silver;font-size: 14px;font-family: Calibri, Verdana, sans-serif;padding: 5px 0px 5px 0px;text-align: left;background-color: #fff;line-height: 20px;box-shadow: 2px 2px 10px #888888;"; a._dropdownMenu.style.display="none";this._toolBar.appendChild(this._dropdownMenu);J(this._dropdownMenu,"blur",function(){X(a._dropdownMenu);a._dropDownCloseTime=new Date},!0);var c=document.createElement("div");c.style.cssText="padding: 2px 15px 2px 10px";c.innerHTML=this._cultureInfo.saveJPGText;this._dropdownMenu.appendChild(c);J(c,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0);J(c,"mouseout",function(){this.style.backgroundColor="transparent"},!0);J(c,"click",function(){Ga(a.canvas, "jpeg",a.exportFileName);X(a._dropdownMenu)},!0);c=document.createElement("div");c.style.cssText="padding: 2px 15px 2px 10px";c.innerHTML=this._cultureInfo.savePNGText;this._dropdownMenu.appendChild(c);J(c,"mouseover",function(){this.style.backgroundColor="#EEEEEE"},!0);J(c,"mouseout",function(){this.style.backgroundColor="transparent"},!0);J(c,"click",function(){Ga(a.canvas,"png",a.exportFileName);X(a._dropdownMenu)},!0)}"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?U(a, a._zoomButton,"zoom"):U(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&U(a,a._resetButton,"reset"));if("undefined"===typeof qa.Chart.creditHref)this.creditHref="http://canvasjs.com/",this.creditText="CanvasJS.com";else var b=this.updateOption("creditText"),d=this.updateOption("creditHref");if(0===this.renderCount||b||d)this._creditLink.setAttribute("href",this.creditHref),this._creditLink.innerHTML=this.creditText;this.creditHref&&this.creditText?this._creditLink.parentElement|| this._canvasJSContainer.appendChild(this._creditLink):this._creditLink.parentElement&&this._canvasJSContainer.removeChild(this._creditLink);this._options.toolTip&&this._toolTip._options!==this._options.toolTip&&(this._toolTip._options=this._options.toolTip);for(var e in this._toolTip._options)this._toolTip._options.hasOwnProperty(e)&&this._toolTip.updateOption(e)};v.prototype._updateSize=function(){var a=0,c=0;this._options.width?a=this.width:this.width=a=0a&&"undefined"!==typeof g.startTimePercent?a>=g.startTimePercent&&g.animationCallback(g.easingFunction(a-g.startTimePercent,0,1,1-g.startTimePercent),g):g.animationCallback(g.easingFunction(a,0,1,1),g);q.dispatchEvent("dataAnimationIterationEnd",{chart:q})},function(){d=[];for(var a=0;aa.dataSeriesIndexes.length))for(var c=a.axisY.dataInfo,b=a.axisX.dataInfo,d,e,f=!1,g=0;gb.max&&(b.max=d);ec.max&&(c.max=e);if(0r&&(r*=-1);b.minDiff>r&&0!==r&&(b.minDiff=r);null!==e&&null!==k.dataPoints[q-1].y&&(r=e-k.dataPoints[q-1].y, 0>r&&(r*=-1),c.minDiff>r&&0!==r&&(c.minDiff=r))}if(dp&&!n)n=!0;else if(d>p&&n)continue;k.dataPoints[q].label&&(a.axisX.labels[d]=k.dataPoints[q].label);db.viewPortMax&&(b.viewPortMax=d);null===e?b.viewPortMin===d&&mc.viewPortMax&&(c.viewPortMax=e))}}this.plotInfo.axisXValueType=k.xValueType=f?"dateTime":"number"}};v.prototype._processStackedPlotUnit= function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var c=a.axisY.dataInfo,b=a.axisX.dataInfo,d,e,f=!1,g=[],k=[],q=Infinity,h=0;hb.max&&(b.max=d);if(0s&&(s*=-1);b.minDiff>s&&0!==s&&(b.minDiff=s);null!==e&&null!==n.dataPoints[m-1].y&&(s=e-n.dataPoints[m-1].y,0>s&&(s*=-1),c.minDiff>s&&0!==s&&(c.minDiff=s))}if(dy&&!p)p=!0;else if(d>y&&p)continue; n.dataPoints[m].label&&(a.axisX.labels[d]=n.dataPoints[m].label);db.viewPortMax&&(b.viewPortMax=d);null===n.dataPoints[m].y?b.viewPortMin===d&&rc.max&&(c.max=a),mb.viewPortMax|| (ac.viewPortMax&&(c.viewPortMax=a)));for(m in k)k.hasOwnProperty(m)&&!isNaN(m)&&(a=k[m],ac.max&&(c.max=a),mb.viewPortMax||(ac.viewPortMax&&(c.viewPortMax=a)))}};v.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var c=a.axisY.dataInfo,b=a.axisX.dataInfo,d,e,f=!1,g=!1,k=!1,q=[],h=0;hb.max&&(b.max=d); if(0s&&(s*=-1);b.minDiff>s&&0!==s&&(b.minDiff=s);x(e)||null===n.dataPoints[m-1].y||(s=e-n.dataPoints[m-1].y,0>s&&(s*=-1),c.minDiff>s&&0!==s&&(c.minDiff=s))}if(dy&&!p)p=!0;else if(d>y&&p)continue;n.dataPoints[m].label&&(a.axisX.labels[d]=n.dataPoints[m].label);db.viewPortMax&&(b.viewPortMax=d);null===e?b.viewPortMin===d&&re&&(k=!0),q[d]=q[d]?q[d]+Math.abs(e):Math.abs(e))}}this.plotInfo.axisXValueType=n.xValueType=f?"dateTime":"number"}g&&!k?(c.max=x(c.viewPortMax)?99:Math.max(c.viewPortMax,99),c.min=x(c.viewPortMin)?1:Math.min(c.viewPortMin,1)):g&&k?(c.max=x(c.viewPortMax)?99:Math.max(c.viewPortMax,99),c.min=x(c.viewPortMin)?-99:Math.min(c.viewPortMin,-99)):!g&&k&&(c.max=x(c.viewPortMax)?-1:Math.max(c.viewPortMax,-1),c.min=x(c.viewPortMin)?-99:Math.min(c.viewPortMin,-99));c.viewPortMin= c.min;c.viewPortMax=c.max;a.dataPointYSums=q}};v.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var c=a.axisY.dataInfo,b=a.axisX.dataInfo,d,e,f,g,k=!1,q=0;qb.max&&(b.max=d);fc.max&&(c.max=g);0r&&(r*=-1),b.minDiff>r&&0!==r&&(b.minDiff=r),e&&(null!==e[0]&&h.dataPoints[n-1].y&&null!==h.dataPoints[n-1].y[0])&& (r=e[0]-h.dataPoints[n-1].y[0],0>r&&(r*=-1),c.minDiff>r&&0!==r&&(c.minDiff=r)));if(!(ds&&!l)l=!0;else if(d>s&&l)continue;h.dataPoints[n].label&&(a.axisX.labels[d]=h.dataPoints[n].label);db.viewPortMax&&(b.viewPortMax=d);if(b.viewPortMin===d&&e)for(z=0;zc.viewPortMax&&(c.viewPortMax= g))}}this.plotInfo.axisXValueType=h.xValueType=k?"dateTime":"number"}};v.prototype.getDataPointAtXY=function(a,c,b){b=b||!1;for(var d=[],e=this._dataInRenderedOrder.length-1;0<=e;e--){var f=null;(f=this._dataInRenderedOrder[e].getDataPointAtXY(a,c,b))&&d.push(f)}a=null;c=!1;for(b=0;b=e.x1&&(a<= e.x2&&c>=e.y1&&c<=e.y2)&&(d=e.id)}return d};v.prototype.getAutoFontSize=function(a,c,b){a/=400;return Math.round(Math.min(this.width,this.height)*a)};v.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};v.prototype.clearCanvas=function(){this.ctx.clearRect(0,0,this.width,this.height);this.backgroundColor&&(this.ctx.fillStyle=this.backgroundColor,this.ctx.fillRect(0,0,this.width,this.height))};v.prototype.attachEvent=function(a){this._events.push(a)}; v.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var c=[],b=a.changedTouches,d=b?b[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":c=["mousemove","mousedown"];this._lastTouchData=ra(d);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":c=["mousemove"];break;case "touchend":case "MSPointerUp":c="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType?["mouseup","click"]:["mouseup"];break; default:return}if(!(b&&1g)){this._lastTouchData.scroll=!0;var k=window.parent||window;k&&k.scrollBy&&k.scrollBy(0,-f)}}catch(q){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(b=0;b= e.x1&&c.x<=e.x2&&c.y>=e.y1&&c.y<=e.y2){d[b].call(d.context,c.x,c.y);"mousedown"===b&&!0===d.capture?(v.capturedEventParam=d,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===b&&(d.chart.overlaidCanvas.releaseCapture?d.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else d=null;a.target.style.cursor=d&&d.cursor?d.cursor: this._defaultCursor}b=this.plotArea;if(c.xb.x2||c.yb.y2)this._toolTip&&this._toolTip.enabled?this._toolTip.hide():this.resetOverlayedCanvas();this.isDrag&&this.zoomEnabled||!this._eventManager||this._eventManager.mouseEventHandler(a)}};v.prototype._plotAreaMouseDown=function(a,c){this.isDrag=!0;this.dragStartPoint={x:a,y:c}};v.prototype._plotAreaMouseUp=function(a,c){if(("normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)&&this.isDrag){var b=c- this.dragStartPoint.y,d=a-this.dragStartPoint.x,e=0<=this.zoomType.indexOf("x"),f=0<=this.zoomType.indexOf("y"),g=!1;this.resetOverlayedCanvas();if("xySwapped"===this.plotInfo.axisPlacement)var k=f,f=e,e=k;if(this.panEnabled||this.zoomEnabled){if(this.panEnabled)for(e=f=0;e b.maximum&&(f=b.viewportMaximum-b.maximum,b.sessionVariables.newViewportMinimum=b.viewportMinimum-f,b.sessionVariables.newViewportMaximum=b.viewportMaximum-f,g=!0);else if((!e||2Math.abs(b)&&(this.panEnabled||this.zoomEnabled)?this._toolTip.hide():this.panEnabled||this.zoomEnabled||this._toolTip.mouseMoveHandler(a,c);if((!e||2l)var p=l,l=m,m=p;if(isFinite(g.dataInfo.minDiff))if(!(Math.abs(l- m)<3*Math.abs(g.dataInfo.minDiff)||mg.maximum))q.push(g),n.push({val1:m,val2:l}),k=!0;else if(!e){k=!1;break}}return{isValid:k,axesWithValidRange:q,axesRanges:n}};v.prototype.preparePlotArea=function(){var a=this.plotArea,c=this.axisY?this.axisY:this.axisY2;!u&&(0c.lineCoordinates.x2?this.axisX.lineCoordinates.x2:c.lineCoordinates.x2,a.y2=this.axisX.lineCoordinates.y2>this.axisX.lineCoordinates.y1?this.axisX.lineCoordinates.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1):(c=this.layoutManager.getFreeSpace(),a.x1=c.x1,a.x2=c.x2,a.y1=c.y1,a.y2=c.y2,a.width=c.width,a.height=c.height);u||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+ "px",a.canvas.style.top=a.y1+"px",(0W.viewportMaximum||h.dataPoint.yA.viewportMaximum)continue}else if(0<=n.indexOf("column")){if(h.dataPoint.xW.viewportMaximum||h.bounds.y1>c.y2||h.bounds.y2W.viewportMaximum||h.bounds.x1>c.x2||h.bounds.x2< c.x1)continue}else if(h.dataPoint.xW.viewportMaximum)continue;d=f=2;"horizontal"===z?(g=p.width,k=p.height):(k=p.width,g=p.height);if("normal"===this.plotInfo.axisPlacement){if(0<=n.indexOf("line")||0<=n.indexOf("area"))s="auto",f=4;else if(0<=n.indexOf("stacked"))"auto"===s&&(s="inside");else if("bubble"===n||"scatter"===n)s="inside";m=h.point.x-g/2;"inside"!==s?(d=c.y1,e=c.y2,0h.point.y)): (l=h.point.y+f+b,l>e-k-f-b&&(l="auto"===s?Math.min(h.point.y,e)-k-f-b:e-k-f-b,v=le-k-f&&("bubble"===n||"scatter"===n)&&(l=Math.min(h.point.y+ f,c.y2-k-f))),l=Math.min(l,e-k))}else 0<=n.indexOf("line")||0<=n.indexOf("area")||0<=n.indexOf("scatter")?(s="auto",d=4):0<=n.indexOf("stacked")?"auto"===s&&(s="inside"):"bubble"===n&&(s="inside"),l=h.point.y-k/2,"inside"!==s?(f=c.x1,e=c.x2,0>u?(m=h.point.x-g-d-b,mh.point.x)):(m=h.point.x+d+b,m>e-g-d-b&&(m="auto"===s?Math.min(h.point.x,e)-g-d-b:e-g-d-b,v=mu?Math.max(h.bounds.x1,c.x1)+g/2+d:Math.min(h.bounds.x2,c.x2)-g/2-d:(Math.max(h.bounds.x1,c.x1)+Math.min(h.bounds.x2,c.x2))/2,m=0>u?Math.max(h.point.x,b)-g/2:Math.min(h.point.x,b)-g/2,m=Math.max(m,f));"vertical"===z&&(l+=k);p.x=m;p.y=l;p.render(!0);y&&("inside"!==s&&(0>n.indexOf("bar")&&h.point.x>c.x1&&h.point.xn.indexOf("column")&&h.point.y>c.y1&&h.point.y=a.dataSeriesIndexes.length)){var b= this._eventManager.ghostCtx;c.save();var d=this.plotArea;c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();for(var d=[],e=0;ea.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!s)))if("number"!==typeof k[r].y)0=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var d=this.plotArea;c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();for(var d=[],e=0;ea.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!s)))if("number"!==typeof k[r].y)0=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx;b.save();var e=this.plotArea;b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();for(var e=[],f=0;fa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!y)))if("number"!==typeof q[r].y)0=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=0,f,g,k,q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,e=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth: Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth?this.dataPointWidth:0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(n)/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&e>h&&(e=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(d=0;da.axisX.dataInfo.viewPortMax)&&"number"===typeof l[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(k-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;f=f-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+d)*n<<0;var r=f+n<<0,t;0<=l[e].y?t=q:(t=g,g=q);g>t&&(t=g=t);b=l[e].color? l[e].color:m._colorSet[e%m._colorSet.length];M(c,f,g,r,t,b,0,null,p&&0<=l[e].y,0>l[e].y&&p,!1,!1,m.fillOpacity);b=m.dataPointIds[e];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:g,x2:r,y2:t};b=C(b);u&&M(this._eventManager.ghostCtx,f,g,r,t,b,0,null,!1,!1,!1,!1);(l[e].indexLabel||m.indexLabel||l[e].indexLabelFormatter||m.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:l[e],dataSeries:m,point:{x:f+(r-f)/2,y:0<=l[e].y? g:t},direction:0<=l[e].y?1:-1,bounds:{x1:f,y1:Math.min(g,t),x2:r,y2:Math.max(g,t)},color:b})}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.min(q,a.axisY.boundingRect.y2);return{source:c,dest:this.plotArea.ctx,animationCallback:B.yScaleAnimation,easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedColumn=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=[],f=[],g=0,k,q=a.axisY.conversionParameters.reference+ a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth?this.dataPointWidth:0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)* Math.abs(n)/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&g>h&&(g=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip()); for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof p[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(b-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+ a.axisY.conversionParameters.pixelPerUnit*(p[g].y-a.axisY.conversionParameters.minimum);var t=d-a.plotType.plotUnits.length*n/2+a.index*n<<0,y=t+n<<0,s;if(0<=p[g].y){var z=e[b]?e[b]:0;k-=z;s=q-z;e[b]=z+(s-k)}else z=f[b]?f[b]:0,s=k+z,k=q+z,f[b]=z+(s-k);b=p[g].color?p[g].color:l._colorSet[g%l._colorSet.length];M(c,t,k,y,s,b,0,null,r&&0<=p[g].y,0>p[g].y&&r,!1,!1,l.fillOpacity);b=l.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:g,x1:t,y1:k, x2:y,y2:s};b=C(b);u&&M(this._eventManager.ghostCtx,t,k,y,s,b,0,null,!1,!1,!1,!1);(p[g].indexLabel||l.indexLabel||p[g].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:p[g],dataSeries:l,point:{x:d,y:0<=p[g].y?k:s},direction:0<=p[g].y?1:-1,bounds:{x1:t,y1:Math.min(k,s),x2:y,y2:Math.max(k,s)},color:b})}}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.min(q,a.axisY.boundingRect.y2);return{source:c,dest:this.plotArea.ctx,animationCallback:B.yScaleAnimation, easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedColumn100=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=[],f=[],g=0,k,q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth? this.dataPointWidth:0.15*this.width<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth?this.dataPointWidth:0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(n)/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&g>h&&(g=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof p[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(b-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*((0!==a.dataPointYSums[b]?100*(p[g].y/a.dataPointYSums[b]):0)-a.axisY.conversionParameters.minimum);var t=d-a.plotType.plotUnits.length*n/2+a.index*n<<0,y=t+n<<0,s;if(0<=p[g].y){var z=e[b]?e[b]:0;k-=z;s=q-z;e[b]=z+(s-k)}else z=f[b]? f[b]:0,s=k+z,k=q+z,f[b]=z+(s-k);b=p[g].color?p[g].color:l._colorSet[g%l._colorSet.length];M(c,t,k,y,s,b,0,null,r&&0<=p[g].y,0>p[g].y&&r,!1,!1,l.fillOpacity);b=l.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:g,x1:t,y1:k,x2:y,y2:s};b=C(b);u&&M(this._eventManager.ghostCtx,t,k,y,s,b,0,null,!1,!1,!1,!1);(p[g].indexLabel||l.indexLabel||p[g].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100",dataPoint:p[g], dataSeries:l,point:{x:d,y:0<=p[g].y?k:s},direction:0<=p[g].y?1:-1,bounds:{x1:t,y1:Math.min(k,s),x2:y,y2:Math.max(k,s)},color:b})}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.min(q,a.axisY.boundingRect.y2);return{source:c,dest:this.plotArea.ctx,animationCallback:B.yScaleAnimation,easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderBar=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=0,f,g, k,q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,e=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth? this.dataPointWidth:0.9*(d.height/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(n)/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&e>h&&(e=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(), this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(d=0;da.axisX.dataInfo.viewPortMax)&&"number"===typeof l[e].y){g=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit* (k-a.axisX.conversionParameters.minimum)+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;g=g-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+d)*n<<0;var r=g+n<<0,t;0<=l[e].y?t=q:(t=f,f=q);b=l[e].color?l[e].color:m._colorSet[e%m._colorSet.length];M(c,t,g,f,r,b,0,null,p,!1,!1,!1,m.fillOpacity);b=m.dataPointIds[e];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e, x1:t,y1:g,x2:f,y2:r};b=C(b);u&&M(this._eventManager.ghostCtx,t,g,f,r,b,0,null,!1,!1,!1,!1);(l[e].indexLabel||m.indexLabel||l[e].indexLabelFormatter||m.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:l[e],dataSeries:m,point:{x:0<=l[e].y?f:t,y:g+(r-g)/2},direction:0<=l[e].y?1:-1,bounds:{x1:Math.min(t,f),y1:g,x2:Math.max(t,f),y2:r},color:b})}}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.max(q,a.axisX.boundingRect.x2);return{source:c,dest:this.plotArea.ctx,animationCallback:B.xScaleAnimation, easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedBar=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=[],f=[],g=0,k,q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth? this.dataPointWidth:0.15*this.height<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth?this.dataPointWidth:0.9*(d.height/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(n)/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&g>h&&(g=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof p[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(b-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(p[g].y-a.axisY.conversionParameters.minimum);var t=d-a.plotType.plotUnits.length*n/2+a.index*n<<0,y=t+n<<0,s;if(0<=p[g].y){var z=e[b]?e[b]:0;s=q+z;k+=z;e[b]=z+(k-s)}else z=f[b]?f[b]:0,s= k-z,k=q-z,f[b]=z+(k-s);b=p[g].color?p[g].color:l._colorSet[g%l._colorSet.length];M(c,s,t,k,y,b,0,null,r,!1,!1,!1,l.fillOpacity);b=l.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:g,x1:s,y1:t,x2:k,y2:y};b=C(b);u&&M(this._eventManager.ghostCtx,s,t,k,y,b,0,null,!1,!1,!1,!1);(p[g].indexLabel||l.indexLabel||p[g].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:p[g],dataSeries:l,point:{x:0<= p[g].y?k:s,y:d},direction:0<=p[g].y?1:-1,bounds:{x1:Math.min(s,k),y1:t,x2:Math.max(s,k),y2:y},color:b})}}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.max(q,a.axisX.boundingRect.x2);return{source:c,dest:this.plotArea.ctx,animationCallback:B.xScaleAnimation,easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderStackedBar100=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=[],f=[],g=0,k,q=a.axisY.conversionParameters.reference+ a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,g=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1,h=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));n=this.dataPointWidth?this.dataPointWidth:0.9*(d.height/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)* Math.abs(n)/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&g>h&&(g=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(n=h);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip()); for(h=0;ha.axisX.dataInfo.viewPortMax)&&"number"===typeof p[g].y){d=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(b-a.axisX.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+ a.axisY.conversionParameters.pixelPerUnit*((0!==a.dataPointYSums[b]?100*(p[g].y/a.dataPointYSums[b]):0)-a.axisY.conversionParameters.minimum);var t=d-a.plotType.plotUnits.length*n/2+a.index*n<<0,y=t+n<<0,s;if(0<=p[g].y){var z=e[b]?e[b]:0;s=q+z;k+=z;e[b]=z+(k-s)}else z=f[b]?f[b]:0,s=k-z,k=q-z,f[b]=z+(k-s);b=p[g].color?p[g].color:l._colorSet[g%l._colorSet.length];M(c,s,t,k,y,b,0,null,r,!1,!1,!1,l.fillOpacity);b=l.dataPointIds[g];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:m, dataPointIndex:g,x1:s,y1:t,x2:k,y2:y};b=C(b);u&&M(this._eventManager.ghostCtx,s,t,k,y,b,0,null,!1,!1,!1,!1);(p[g].indexLabel||l.indexLabel||p[g].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:p[g],dataSeries:l,point:{x:0<=p[g].y?k:s,y:d},direction:0<=p[g].y?1:-1,bounds:{x1:Math.min(s,k),y1:t,x2:Math.max(s,k),y2:y},color:b})}}}c.restore();u&&this._eventManager.ghostCtx.restore();a=Math.max(q,a.axisX.boundingRect.x2);return{source:c,dest:this.plotArea.ctx, animationCallback:B.xScaleAnimation,easingFunction:B.easing.easeOutQuart,animationBase:a}}};v.prototype.renderArea=function(a){function c(){z&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?s=y:0>a.axisY.viewportMaximum?s=f.y1:0=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;b.save();u&&d.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();u&&(d.beginPath(),d.rect(k.x1,k.y1,k.width,k.height),d.clip());for(k=0;ka.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!I)))if("number"!==typeof n[l].y)h.connectNullData||(I||m)||c(),I=!0;else{p=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(t-a.axisX.conversionParameters.minimum)+0.5<<0;r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(n[l].y-a.axisY.conversionParameters.minimum)+0.5<<0;m||I?(!m&&h.connectNullData?(b.setLineDash&& (h._options.nullDataLineDashType||A===h.lineDashType&&h.lineDashType!==h.nullDataLineDashType)&&(b.stroke(),A=h.nullDataLineDashType,b.setLineDash(H)),b.lineTo(p,r),u&&d.lineTo(p,r)):(b.beginPath(),b.moveTo(p,r),u&&(d.beginPath(),d.moveTo(p,r)),z={x:p,y:r}),I=m=!1):(b.lineTo(p,r),u&&d.lineTo(p,r),0==l%250&&c());l=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?t=r:0>a.axisY.viewportMaximum?t=f.y1:0=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;b.save();u&&d.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();u&&(d.beginPath(),d.rect(k.x1,k.y1,k.width,k.height),d.clip());for(k=0;ka.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!p)))if("number"!==typeof n[m].y)0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?s=y:0>a.axisY.viewportMaximum?s=f.y1:0=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=a.axisX.lineCoordinates,f=a.axisY.lineCoordinates,g=[],k=this.plotArea;b.save();u&&d.save();b.beginPath();b.rect(k.x1,k.y1,k.width,k.height);b.clip();u&&(d.beginPath(),d.rect(k.x1,k.y1,k.width,k.height),d.clip());for(k=0;ka.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!w))){var G=r;"number"!==typeof n[l].y?(h.connectNullData||(w||m)||c(),w=!0):(p=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(t-a.axisX.conversionParameters.minimum)+0.5<<0,r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(n[l].y- a.axisY.conversionParameters.minimum)+0.5<<0,m||w?(!m&&h.connectNullData?(b.setLineDash&&(h._options.nullDataLineDashType||H===h.lineDashType&&h.lineDashType!==h.nullDataLineDashType)&&(b.stroke(),H=h.nullDataLineDashType,b.setLineDash(K)),b.lineTo(p,G),b.lineTo(p,r),u&&(d.lineTo(p,G),d.lineTo(p,r))):(b.beginPath(),b.moveTo(p,r),u&&(d.beginPath(),d.moveTo(p,r)),z={x:p,y:r}),w=m=!1):(b.lineTo(p,G),u&&d.lineTo(p,G),b.lineTo(p,r),u&&d.lineTo(p,r),0==l%250&&c()),l k.length)){for(0=a.dataSeriesIndexes.length)){var d=null,e=[],f=this.plotArea,g=[],k=[],q=[],h=0,n,m,l,p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<< 0,r=this._eventManager.ghostCtx;u&&r.beginPath();b.save();u&&r.save();b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();u&&(r.beginPath(),r.rect(f.x1,f.y1,f.width,f.height),r.clip());for(var t=[],f=0;fa.axisX.dataInfo.viewPortMax&&(!s.connectNullData||!K)))if("number"!==typeof I.y)s.connectNullData||(K||t)||c(),K=!0;else{n=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(I.y-a.axisY.conversionParameters.minimum);var G=g[l]?g[l]:0;m-=G;k.push({x:n,y:p-G});g[l]=p-m;t||K?(!t&&s.connectNullData? (b.setLineDash&&(s._options.nullDataLineDashType||v===s.lineDashType&&s.lineDashType!==s.nullDataLineDashType)&&(b.stroke(),v=s.nullDataLineDashType,b.setLineDash(A)),b.lineTo(n,m),u&&r.lineTo(n,m)):(b.beginPath(),b.moveTo(n,m),u&&(r.beginPath(),r.moveTo(n,m))),K=t=!1):(b.lineTo(n,m),u&&r.lineTo(n,m),0==h%250&&(c(),b.moveTo(n,m),u&&r.moveTo(n,m),k.push({x:n,y:p-G})));h=a.dataSeriesIndexes.length)){var d=null,e=this.plotArea,f=[],g=[],k=[],q=[],h=0,n,m,l,p=a.axisY.conversionParameters.reference+ a.axisY.conversionParameters.pixelPerUnit*(0-a.axisY.conversionParameters.minimum)<<0,r=this.dataPointMaxWidth?this.dataPointMaxWidth:0.15*this.width<<0,t=a.axisX.dataInfo.minDiff,t=0.9*e.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(t)<<0,y=this._eventManager.ghostCtx;b.save();u&&y.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();u&&(y.beginPath(),y.rect(e.x1,e.y1,e.width,e.height),y.clip());for(var s=[],e=0;et?t=1:t>r&&(t=r);k=[];if(0a.axisX.dataInfo.viewPortMax&&(!w.connectNullData||!G)))if("number"!==typeof S.y)w.connectNullData||(G||s)||c(),G=!0;else{m=0!==a.dataPointYSums[l]? 100*(S.y/a.dataPointYSums[l]):0;n=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(l-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m-a.axisY.conversionParameters.minimum);var sa=g[l]?g[l]:0;m-=sa;k.push({x:n,y:p-sa});g[l]=p-m;s||G?(!s&&w.connectNullData?(b.setLineDash&&(w._options.nullDataLineDashType||H===w.lineDashType&&w.lineDashType!==w.nullDataLineDashType)&&(b.stroke(),H=w.nullDataLineDashType, b.setLineDash(K)),b.lineTo(n,m),u&&y.lineTo(n,m)):(b.beginPath(),b.moveTo(n,m),u&&(y.beginPath(),y.moveTo(n,m))),G=s=!1):(b.lineTo(n,m),u&&y.lineTo(n,m),0==h%250&&(c(),b.moveTo(n,m),u&&y.moveTo(n,m),k.push({x:n,y:p-sa})));h=b)){var d=this.plotArea,e=0,f,g,k=this.dataPointMaxWidth?this.dataPointMaxWidth:0.15*this.width<<0,e=a.axisX.dataInfo.minDiff,b=0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(e)/b)<<0;c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var q=-Infinity,h=Infinity, n=0;na.axisX.dataInfo.viewPortMax||"undefined"===typeof p[e].z||(r=p[e].z,r>q&&(q=r),rb?b= 1:b>k&&(b=k),0a.axisX.dataInfo.viewPortMax)&&"number"===typeof p[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(f-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(p[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;var r=p[e].z,y=2*Math.max(Math.sqrt((q=== h?d/2:t+(d-t)/(q-h)*(r-h))/Math.PI)<<0,1),r=l.getMarkerProperties(e,c);r.size=y;c.globalAlpha=l.fillOpacity;P.drawMarker(f,g,c,r.type,r.size,r.color,r.borderColor,r.borderThickness);c.globalAlpha=1;var s=l.dataPointIds[e];this._eventManager.objectMap[s]={id:s,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:e,x1:f,y1:g,size:y};y=C(s);u&&P.drawMarker(f,g,this._eventManager.ghostCtx,r.type,r.size,y,y,r.borderThickness);(p[e].indexLabel||l.indexLabel||p[e].indexLabelFormatter||l.indexLabelFormatter)&& this._indexLabels.push({chartType:"bubble",dataPoint:p[e],dataSeries:l,point:{x:f,y:g},direction:1,bounds:{x1:f-r.size/2,y1:g-r.size/2,x2:f+r.size/2,y2:g+r.size/2},color:null})}c.restore();u&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:B.fadeInAnimation,easingFunction:B.easing.easeInQuad,animationBase:0}}};v.prototype.renderScatter=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx,b=a.dataSeriesIndexes.length;if(!(0>=b)){var d=this.plotArea, e=0,f,g,k=this.dataPointMaxWidth?this.dataPointMaxWidth:0.15*this.width<<0,e=a.axisX.dataInfo.minDiff,b=0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(e)/b)<<0;c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var q=0;qb?b=1:b>k&&(b=k);if(0a.axisX.dataInfo.viewPortMax)&&"number"===typeof m[e].y){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(f-a.axisX.conversionParameters.minimum)+0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit* (m[e].y-a.axisY.conversionParameters.minimum)+0.5<<0;var r=n.getMarkerProperties(e,f,g,c);c.globalAlpha=n.fillOpacity;P.drawMarker(r.x,r.y,r.ctx,r.type,r.size,r.color,r.borderColor,r.borderThickness);c.globalAlpha=1;Math.sqrt((l-f)*(l-f)+(p-g)*(p-g))Math.min(this.plotArea.width,this.plotArea.height)||(l=n.dataPointIds[e],this._eventManager.objectMap[l]={id:l,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:g},l=C(l),u&&P.drawMarker(r.x,r.y,this._eventManager.ghostCtx, r.type,r.size,l,l,r.borderThickness),(m[e].indexLabel||n.indexLabel||m[e].indexLabelFormatter||n.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:m[e],dataSeries:n,point:{x:f,y:g},direction:1,bounds:{x1:f-r.size/2,y1:g-r.size/2,x2:f+r.size/2,y2:g+r.size/2},color:null}),l=f,p=g)}}}c.restore();u&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:B.fadeInAnimation,easingFunction:B.easing.easeInQuad,animationBase:0}}};v.prototype.renderCandlestick= function(a){var c=a.targetCanvasCtx||this.plotArea.ctx,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var d=null,d=this.plotArea,e=0,f,g,k,q,h,n,e=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1;f=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:0.015*this.width;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));m=this.dataPointWidth?this.dataPointWidth: 0.7*d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(m)<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(m=f);c.save();u&&b.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(b.beginPath(),b.rect(d.x1,d.y1,d.width,d.height),b.clip());for(var l=0;la.axisX.dataInfo.viewPortMax)&&null!==t[e].y&&t[e].y.length&&"number"===typeof t[e].y[0]&&"number"===typeof t[e].y[1]&&"number"===typeof t[e].y[2]&&"number"===typeof t[e].y[3]){f=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(n-a.axisX.conversionParameters.minimum)+ 0.5<<0;g=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(t[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;k=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(t[e].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;q=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(t[e].y[2]-a.axisY.conversionParameters.minimum)+0.5<<0;h=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit* (t[e].y[3]-a.axisY.conversionParameters.minimum)+0.5<<0;var s=f-m/2<<0,z=s+m<<0,d=t[e].color?t[e].color:r._colorSet[0],w=Math.round(Math.max(1,0.15*m)),x=0===w%2?0:0.5,v=r.dataPointIds[e];this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:e,x1:s,y1:g,x2:z,y2:k,x3:f,y3:q,x4:f,y4:h,borderThickness:w,color:d};c.strokeStyle=d;c.beginPath();c.lineWidth=w;b.lineWidth=Math.max(w,4);"candlestick"===r.type?(c.moveTo(f-x,k),c.lineTo(f-x,Math.min(g,h)),c.stroke(),c.moveTo(f- x,Math.max(g,h)),c.lineTo(f-x,q),c.stroke(),M(c,s,Math.min(g,h),z,Math.max(g,h),t[e].y[0]<=t[e].y[3]?r.risingColor:d,w,d,y,y,!1,!1,r.fillOpacity),u&&(d=C(v),b.strokeStyle=d,b.moveTo(f-x,k),b.lineTo(f-x,Math.min(g,h)),b.stroke(),b.moveTo(f-x,Math.max(g,h)),b.lineTo(f-x,q),b.stroke(),M(b,s,Math.min(g,h),z,Math.max(g,h),d,0,null,!1,!1,!1,!1))):"ohlc"===r.type&&(c.moveTo(f-x,k),c.lineTo(f-x,q),c.stroke(),c.beginPath(),c.moveTo(f,g),c.lineTo(s,g),c.stroke(),c.beginPath(),c.moveTo(f,h),c.lineTo(z,h),c.stroke(), u&&(d=C(v),b.strokeStyle=d,b.moveTo(f-x,k),b.lineTo(f-x,q),b.stroke(),b.beginPath(),b.moveTo(f,g),b.lineTo(s,g),b.stroke(),b.beginPath(),b.moveTo(f,h),b.lineTo(z,h),b.stroke()));(t[e].indexLabel||r.indexLabel||t[e].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:r.type,dataPoint:t[e],dataSeries:r,point:{x:s+(z-s)/2,y:k},direction:1,bounds:{x1:s,y1:Math.min(k,q),x2:z,y2:Math.max(k,q)},color:d})}}c.restore();u&&b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:B.fadeInAnimation, easingFunction:B.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeColumn=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=0,f,g,e=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1;f=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:0.03*this.width;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)); k=this.dataPointWidth?this.dataPointWidth:0.9*(d.width/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(k)/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(k=f);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&& (this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var q=0;qa.axisX.dataInfo.viewPortMax)&&null!==m[e].y&&m[e].y.length&&"number"===typeof m[e].y[0]&&"number"===typeof m[e].y[1]){b= a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(g-a.axisX.conversionParameters.minimum)+0.5<<0;d=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(m[e].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;var p=b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+q)*k<<0,r=p+k<<0,b=m[e].color? m[e].color:n._colorSet[e%n._colorSet.length];if(d>f){var t=d,d=f;f=t}t=n.dataPointIds[e];this._eventManager.objectMap[t]={id:t,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:p,y1:d,x2:r,y2:f};M(c,p,d,r,f,b,0,b,l,l,!1,!1,n.fillOpacity);b=C(t);u&&M(this._eventManager.ghostCtx,p,d,r,f,b,0,null,!1,!1,!1,!1);if(m[e].indexLabel||n.indexLabel||m[e].indexLabelFormatter||n.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn",dataPoint:m[e],dataSeries:n,indexKeyword:0,point:{x:p+ (r-p)/2,y:m[e].y[1]>=m[e].y[0]?f:d},direction:m[e].y[1]>=m[e].y[0]?-1:1,bounds:{x1:p,y1:Math.min(d,f),x2:r,y2:Math.max(d,f)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:m[e],dataSeries:n,indexKeyword:1,point:{x:p+(r-p)/2,y:m[e].y[1]>=m[e].y[0]?d:f},direction:m[e].y[1]>=m[e].y[0]?1:-1,bounds:{x1:p,y1:Math.min(d,f),x2:r,y2:Math.max(d,f)},color:b})}}c.restore();u&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:B.fadeInAnimation, easingFunction:B.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeBar=function(a){var c=a.targetCanvasCtx||this.plotArea.ctx;if(!(0>=a.dataSeriesIndexes.length)){var b=null,d=this.plotArea,e=0,f,g,k,e=this.dataPointMinWidth?this.dataPointMinWidth:this.dataPointWidth?this.dataPointWidth:1;f=this.dataPointMaxWidth?this.dataPointMaxWidth:this.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff; isFinite(q)||(q=0.3*Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum));q=this.dataPointWidth?this.dataPointWidth:0.9*(d.height/Math.abs(a.axisX.viewportMaximum-a.axisX.viewportMinimum)*Math.abs(q)/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(q=f);c.save();u&&this._eventManager.ghostCtx.save(); c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax)&& null!==l[e].y&&l[e].y.length&&"number"===typeof l[e].y[0]&&"number"===typeof l[e].y[1]){d=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[e].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;f=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(l[e].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;g=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(k-a.axisX.conversionParameters.minimum)+0.5<<0;g=g- a.plotType.totalDataSeries*q/2+(a.previousDataSeriesCount+h)*q<<0;var r=g+q<<0;d>f&&(b=d,d=f,f=b);b=l[e].color?l[e].color:m._colorSet[e%m._colorSet.length];M(c,d,g,f,r,b,0,null,p,!1,!1,!1,m.fillOpacity);b=m.dataPointIds[e];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:e,x1:d,y1:g,x2:f,y2:r};b=C(b);u&&M(this._eventManager.ghostCtx,d,g,f,r,b,0,null,!1,!1,!1,!1);if(l[e].indexLabel||m.indexLabel||l[e].indexLabelFormatter||m.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar", dataPoint:l[e],dataSeries:m,indexKeyword:0,point:{x:l[e].y[1]>=l[e].y[0]?d:f,y:g+(r-g)/2},direction:l[e].y[1]>=l[e].y[0]?-1:1,bounds:{x1:Math.min(d,f),y1:g,x2:Math.max(d,f),y2:r},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:l[e],dataSeries:m,indexKeyword:1,point:{x:l[e].y[1]>=l[e].y[0]?f:d,y:g+(r-g)/2},direction:l[e].y[1]>=l[e].y[0]?1:-1,bounds:{x1:Math.min(d,f),y1:g,x2:Math.max(d,f),y2:r},color:b})}}}c.restore();u&&this._eventManager.ghostCtx.restore();return{source:c,dest:this.plotArea.ctx, animationCallback:B.fadeInAnimation,easingFunction:B.easing.easeInQuad,animationBase:0}}};v.prototype.renderRangeArea=function(a){function c(){if(y){var a=null;0=a.dataSeriesIndexes.length)){var d=this._eventManager.ghostCtx,e=[],f=this.plotArea;b.save();u&&d.save();b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();u&&(d.beginPath(),d.rect(f.x1,f.y1,f.width,f.height),d.clip());for(f=0;fa.axisX.dataInfo.viewPortMax&&(!q.connectNullData||!H)))if(null!== h[m].y&&h[m].y.length&&"number"===typeof h[m].y[0]&&"number"===typeof h[m].y[1]){l=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit*(t-a.axisX.conversionParameters.minimum)+0.5<<0;p=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(h[m].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;r=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(h[m].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;n||H?(q.connectNullData&& !n?(b.setLineDash&&(q._options.nullDataLineDashType||x===q.lineDashType&&q.lineDashType!==q.nullDataLineDashType)&&(g[g.length-1].newLineDashArray=A,x=q.nullDataLineDashType,b.setLineDash(v)),b.lineTo(l,p),u&&d.lineTo(l,p),g.push({x:l,y:r})):(b.beginPath(),b.moveTo(l,p),y={x:l,y:p},g=[],g.push({x:l,y:r}),u&&(d.beginPath(),d.moveTo(l,p))),H=n=!1):(b.lineTo(l,p),g.push({x:l,y:r}),u&&d.lineTo(l,p),0==m%250&&c());t=q.dataPointIds[m];this._eventManager.objectMap[t]={id:t,objectType:"dataPoint",dataSeriesIndex:k, dataPointIndex:m,x1:l,y1:p,y2:r};m=a.dataSeriesIndexes.length)){var d= this._eventManager.ghostCtx,e=[],f=this.plotArea;b.save();u&&d.save();b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();u&&(d.beginPath(),d.rect(f.x1,f.y1,f.width,f.height),d.clip());for(f=0;fa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!m)))if(null!==q[h].y&&q[h].y.length&&"number"===typeof q[h].y[0]&&"number"===typeof q[h].y[1]){n=a.axisX.conversionParameters.reference+a.axisX.conversionParameters.pixelPerUnit* (n-a.axisX.conversionParameters.minimum)+0.5<<0;m=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(q[h].y[0]-a.axisY.conversionParameters.minimum)+0.5<<0;l=a.axisY.conversionParameters.reference+a.axisY.conversionParameters.pixelPerUnit*(q[h].y[1]-a.axisY.conversionParameters.minimum)+0.5<<0;var v=k.dataPointIds[h];this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:g,dataPointIndex:h,x1:n,y1:m,y2:l};p[p.length]={x:n,y:m};r[r.length]={x:n, y:l};hb)){"undefined"===typeof k&& (k=1);if(!u){var h=Number((g%(2*Math.PI)).toFixed(8));Number((f%(2*Math.PI)).toFixed(8))===h&&(g-=1E-4)}a.save();a.globalAlpha=k;"pie"===e?(a.beginPath(),a.moveTo(c.x,c.y),a.arc(c.x,c.y,b,f,g,!1),a.fillStyle=d,a.strokeStyle="white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(c.x,c.y,b,f,g,!1),0<=q&&a.arc(c.x,c.y,q*b,g,f,!0),a.closePath(),a.fillStyle=d,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};v.prototype.renderPie=function(a){function c(){if(h&& n){for(var a=0,b=0,c=0,d=0,e=0;eMath.PI/2-s&&k.midAnglek.midAngle)c=e;a++}else if(k.midAngle>3*Math.PI/2-s&&k.midAngle<3*Math.PI/2+s){if(0===b||p[d].midAngle>k.midAngle)d=e;b++}k.hemisphere=f>Math.PI/2&&f<=3*Math.PI/2?"left":"right";k.indexLabelTextBlock=new O(q.plotArea.ctx,{fontSize:k.indexLabelFontSize,fontFamily:k.indexLabelFontFamily,fontColor:k.indexLabelFontColor, fontStyle:k.indexLabelFontStyle,fontWeight:k.indexLabelFontWeight,horizontalAlign:"left",backgroundColor:k.indexLabelBackgroundColor,maxWidth:k.indexLabelMaxWidth,maxHeight:k.indexLabelWrap?5*k.indexLabelFontSize:1.5*k.indexLabelFontSize,text:k.indexLabelText,padding:0,textBaseline:"top"});k.indexLabelTextBlock.measureText()}g=f=0;m=!1;for(e=0;eMath.PI/2-s&&k.midAngle3*Math.PI/2-s&&k.midAngle<3*Math.PI/2+s)&&(g<=b/2&&!m?(k.hemisphere="left",g++):(k.hemisphere="right",m=!0))}}function b(a){var b=q.plotArea.ctx;b.clearRect(l.x1,l.y1,l.width,l.height);b.fillStyle=q.backgroundColor;b.fillRect(l.x1,l.y1,l.width,l.height);for(b=0;bc){var e=0.07*A*Math.cos(p[b].midAngle),f=0.07*A*Math.sin(p[b].midAngle),g=!1;if(n[b].exploded){if(1E-9a.indexLabelTextBlock.y?e-d:c-f}function e(a){for(var b=null,c=1;cd(p[b],p[a])|| ("right"===p[a].hemisphere?p[b].indexLabelTextBlock.y>=p[a].indexLabelTextBlock.y:p[b].indexLabelTextBlock.y<=p[a].indexLabelTextBlock.y)))break;else b=null;return b}function f(a,b,c){c=(c||0)+1;if(1E3b&&l.indexLabelTextBlock.yk)return 0;var m=0,q=0,q=m=m=0;0>b?l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2>h&&l.indexLabelTextBlock.y-l.indexLabelTextBlock.height/2+bk&&(b=l.indexLabelTextBlock.y+l.indexLabelTextBlock.height/2+b-k);b=l.indexLabelTextBlock.y+b;h=0;h="right"===l.hemisphere?w.x+Math.sqrt(Math.pow(t,2)-Math.pow(b-w.y,2)):w.x-Math.sqrt(Math.pow(t,2)-Math.pow(b-w.y,2));q=w.x+A*Math.cos(l.midAngle);m=w.y+A*Math.sin(l.midAngle);m=Math.sqrt(Math.pow(h-q,2)+Math.pow(b-m,2));q=Math.acos(A/ t);m=Math.acos((t*t+A*A-m*m)/(2*A*t));b=md(p[h],p[a])||("right"===p[a].hemisphere?p[h].indexLabelTextBlock.y<=p[a].indexLabelTextBlock.y:p[h].indexLabelTextBlock.y>=p[a].indexLabelTextBlock.y)))break;else h=null;q=h;m=e(a);k=h=0;0>b?(k="right"===l.hemisphere?q:m,g=b,null!==k&&(q=-b,b=l.indexLabelTextBlock.y- l.indexLabelTextBlock.height/2-(p[k].indexLabelTextBlock.y+p[k].indexLabelTextBlock.height/2),b-q+h.toFixed(u)&&(g=b>r?-(b-r):-(q-(k-h)))))):0r?b-r:q-(h-k)))));g&&(c=l.indexLabelTextBlock.y+g,b=0,b="right"===l.hemisphere?w.x+Math.sqrt(Math.pow(t, 2)-Math.pow(c-w.y,2)):w.x-Math.sqrt(Math.pow(t,2)-Math.pow(c-w.y,2)),l.midAngle>Math.PI/2-s&&l.midAngleh.indexLabelTextBlock.x?b=h.indexLabelTextBlock.x-15:"right"===l.hemisphere&&("left"===a.hemisphere&&b3*Math.PI/2-s&&l.midAngle<3*Math.PI/2+s&&(h=(a-1+p.length)%p.length,h=p[h],a=p[(a+1+p.length)%p.length], "right"===l.hemisphere&&"left"===h.hemisphere&&ba.indexLabelTextBlock.x)&&(b=a.indexLabelTextBlock.x-15)),l.indexLabelTextBlock.y=c,l.indexLabelTextBlock.x=b,l.indexLabelAngle=Math.atan2(l.indexLabelTextBlock.y-w.y,l.indexLabelTextBlock.x-w.x))}return g}function g(){var a=q.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var b=a=0,c=0,g=!0,b= 0;10>b&&(1>b||0B){for(var C=x=0,D=0;Dx?k.indexLabelText="":k.indexLabelTextBlock.maxWidth=0.85*x,0.3*k.indexLabelTextBlock.maxWidth< x&&(k.indexLabelTextBlock.x-="right"===k.hemisphere?2:-2)),Math.abs(k.indexLabelTextBlock.y-k.indexLabelTextBlock.height/2-w.y)c&&(c=v)),v=v=0,0c&&(c=v)));var F=function(a,b,c){for(var d=[],e=0;d.push(p[b]),b!==c;b=(b+1+n.length)%n.length);d.sort(function(a,b){return a.y-b.y});for(b=0;bB){l=s.indexLabelTextBlock.x;var q=s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2,r=s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2,t=h.indexLabelTextBlock.y-h.indexLabelTextBlock.height/2,u=h.indexLabelTextBlock.x+h.indexLabelTextBlock.width,y=h.indexLabelTextBlock.y+h.indexLabelTextBlock.height/2;l=s.indexLabelTextBlock.x+s.indexLabelTextBlock.widthu+m||q>y+m||ra&&(a=g),k!==a&&(b=k,c+=-B),0===g%Math.max(n.length/10,3)&&(f=!0)):f=!0;f&&(0=a.dataSeriesIndexes.length)){var h=this.data[a.dataSeriesIndexes[0]],n=h.dataPoints,m=10,l=this.plotArea,p=[],r=2,t,y=1.3,s=20/180*Math.PI,u=6,w={x:(l.x2+l.x1)/2,y:(l.y2+l.y1)/2},v=0;a=!1;for(var B=0;Ba&&(d=a,e=!0);var f=n[b].color?n[b].color:h._colorSet[b%h._colorSet.length];d>c&&ya(q.plotArea.ctx,p[b].center,p[b].radius,f,h.type,c,d,h.fillOpacity,p[b].percentInnerRadius);if(e)break}k()},function(){q.disableToolTip=!1;q._animator.animate(0,q.animatedRender?500:0,function(a){b(a);k()})})}}};v.prototype.animationRequestId=null;v.prototype.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame|| window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();v.prototype.cancelRequestAnimFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout;da.prototype.registerSpace=function(a,c){"top"===a?this._topOccupied+=c.height:"bottom"===a?this._bottomOccupied+=c.height:"left"===a?this._leftOccupied+=c.width: "right"===a&&(this._rightOccupied+=c.width)};da.prototype.unRegisterSpace=function(a,c){"top"===a?this._topOccupied-=c.height:"bottom"===a?this._bottomOccupied-=c.height:"left"===a?this._leftOccupied-=c.width:"right"===a&&(this._rightOccupied-=c.width)};da.prototype.getFreeSpace=function(){return{x1:this._x1+this._leftOccupied,y1:this._y1+this._topOccupied,x2:this._x2-this._rightOccupied,y2:this._y2-this._bottomOccupied,width:this._x2-this._x1-this._rightOccupied-this._leftOccupied,height:this._y2- this._y1-this._bottomOccupied-this._topOccupied}};da.prototype.reset=function(){this._rightOccupied=this._leftOccupied=this._bottomOccupied=this._topOccupied=this._padding};T(O,L);O.prototype.render=function(a){a&&this.ctx.save();var c=this.ctx.font;this.ctx.textBaseline=this.textBaseline;var b=0;this._isDirty&&this.measureText(this.ctx);this.ctx.translate(this.x,this.y+b);"middle"===this.textBaseline&&(b=-this._lineHeight/2);this.ctx.font=this._getFontString();this.ctx.rotate(Math.PI/180*this.angle); var d=0,e=this.padding,f=null;(0c)e=f-1;else break}b>c&&1f&&(g=c.pop(),d-=g.height)}this._wrappedText={lines:c,width:e,height:d};this.width=e+2*this.padding;this.height=d+2*this.padding;this.ctx.font=b};O.prototype._getFontString=function(){var a;a=""+(this.fontStyle?this.fontStyle+" ":""); a+=this.fontWeight?this.fontWeight+" ":"";a+=this.fontSize?this.fontSize+"px ":"";var c=this.fontFamily?this.fontFamily+"":"";!u&&c&&(c=c.split(",")[0],"'"!==c[0]&&'"'!==c[0]&&(c="'"+c+"'"));return a+=c};T(ga,L);ga.prototype.render=function(){if(this.text){var a=this.dockInsidePlotArea?this.chart.plotArea:this.chart,c=a.layoutManager.getFreeSpace(),b=c.x1,d=c.y1,e=0,f=0,g=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,k,q;"top"===this.verticalAlign||"bottom"===this.verticalAlign? (null===this.maxWidth&&(this.maxWidth=c.width-4-g*("center"===this.horizontalAlign?2:1)),f=0.5*c.height-this.margin-2,e=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=c.height-4),f=0.5*c.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=c.width-4),f=0.5*c.height-4));this.wrap||(f=Math.min(f,Math.max(1.5*this.fontSize,this.fontSize+2.5*this.padding)));var f=new O(this.ctx, {fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:f,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"}),h=f.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"=== this.verticalAlign?(d=c.y1+2,q="top"):"bottom"===this.verticalAlign&&(d=c.y2-2-h.height,q="bottom"),"left"===this.horizontalAlign?b=c.x1+2:"center"===this.horizontalAlign?b=c.x1+c.width/2-h.width/2:"right"===this.horizontalAlign&&(b=c.x2-2-h.width-g),k=this.horizontalAlign,this.width=h.width,this.height=h.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(b=c.x1+2,d=c.y2-2-(this.maxWidth/2-h.width/2),e=-90,q="left",this.width=h.height,this.height=h.width):"right"===this.horizontalAlign? (b=c.x2-2,d=c.y1+2+(this.maxWidth/2-h.width/2),e=90,q="right",this.width=h.height,this.height=h.width):"center"===this.horizontalAlign&&(d=a.y1+(a.height/2-h.height/2),b=a.x1+(a.width/2-h.width/2),q="center",this.width=h.width,this.height=h.height),k="center");f.x=b;f.y=d;f.angle=e;f.horizontalAlign=k;f.render(!0);a.layoutManager.registerSpace(q,{width:this.width+("left"===q||"right"===q?this.margin+2:0),height:this.height+("top"===q||"bottom"===q?this.margin+2:0)});this.bounds={x1:b,y1:d,x2:b+this.width, y2:d+this.height};this.ctx.textBaseline="top"}};T(na,L);na.prototype.render=ga.prototype.render;T(oa,L);oa.prototype.render=function(){var a=this.dockInsidePlotArea?this.chart.plotArea:this.chart,c=a.layoutManager.getFreeSpace(),b=null,d=0,e=0,f=0,g=0,k=this.chart._options.legend&&!x(this.chart._options.legend.markerMargin)?this.chart._options.legend.markerMargin:0.3*this.fontSize;this.height=0;var q=[],h=[];"top"===this.verticalAlign||"bottom"===this.verticalAlign?(this.orientation="horizontal", b=this.verticalAlign,f=null!==this.maxWidth?this.maxWidth:c.width,g=null!==this.maxHeight?this.maxHeight:0.5*c.height):"center"===this.verticalAlign&&(this.orientation="vertical",b=this.horizontalAlign,f=null!==this.maxWidth?this.maxWidth:0.5*c.width,g=null!==this.maxHeight?this.maxHeight:c.height);for(var n=0;n=g||"undefined"===typeof g|| 0>=p||"undefined"===typeof p)){if("horizontal"===this.orientation){l.textBlock=new O(this.ctx,{x:0,y:0,maxWidth:p,maxHeight:this.itemWrap?g:this.lineHeight,angle:0,text:l.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});l.textBlock.measureText();null!==this.itemWidth&&(l.textBlock.width=this.itemWidth-(t+k+("line"===l.chartType||"spline"===l.chartType||"stepLine"===l.chartType? 2*0.1*this.lineHeight:0)));if(!m||m.width+Math.round(l.textBlock.width+t+k+(0===m.width?0:this.horizontalSpacing)+("line"===l.chartType||"spline"===l.chartType||"stepLine"===l.chartType?2*0.1*this.lineHeight:0))>f)m={items:[],width:0},h.push(m),this.height+=v,v=0;v=Math.max(v,l.textBlock.height)}else l.textBlock=new O(this.ctx,{x:0,y:0,maxWidth:p,maxHeight:!0===this.itemWrap?g:1.5*this.fontSize,angle:0,text:l.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight, fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),l.textBlock.measureText(),null!==this.itemWidth&&(l.textBlock.width=this.itemWidth-(t+k+("line"===l.chartType||"spline"===l.chartType||"stepLine"===l.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0);for(;;){f= 0n-e&&n+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}return c||b.dataPoint.x!==a?c&&null!==b.dataPoint?b:null:b};Y.prototype.getDataPointAtXY=function(a,c,b){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||cthis.chart.plotArea.y2)return null;b=b||!1;var d=[],e=0,f=0,g=1,k=!1,q=Infinity,h=0,n=0,m=0;"none"!==this.chart.plotInfo.axisPlacement&&(m=this.chart.axisX.getXValueAt({x:a,y:c}),f=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,m=0>0,0),this.dataPoints.length):0);for(;;){f=0=l.x1&&(a<=l.x2&&c>=l.y1&&c<=l.y2)&&(d.push({dataPoint:p,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(l.x1-a),Math.abs(l.x2-a),Math.abs(l.y1-c),Math.abs(l.y2-c))}),k=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var t= R("markerSize",p,this)||4,u=b?20:t,r=Math.sqrt(Math.pow(l.x1-a,2)+Math.pow(l.y1-c,2));r<=u&&d.push({dataPoint:p,dataPointIndex:f,dataSeries:this,distance:r});f=Math.abs(l.x1-a);f<=q?q=f:0u&&(r=Math.atan2(c-t.y,a-t.x),0>r&&(r+=2*Math.PI),r=Number(((180*(r/Math.PI)%360+360)%360).toFixed(12)),t=Number(((180*(l.startAngle/Math.PI)%360+ 360)%360).toFixed(12)),u=Number(((180*(l.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===u&&1=u&&0!==p.y&&(u+=360,rt&&r=l.x1-l.borderThickness/2&&a<=l.x2+l.borderThickness/2&&c>=l.y2-l.borderThickness/2&&c<=l.y3+l.borderThickness/2||Math.abs(l.x2-a+l.x1-a)=l.y1&&c<=l.y4)d.push({dataPoint:p,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(l.x1- a),Math.abs(l.x2-a),Math.abs(l.y2-c),Math.abs(l.y3-c))}),k=!0;break;case "ohlc":if(Math.abs(l.x2-a+l.x1-a)=l.y2&&c<=l.y3||a>=l.x1&&a<=(l.x2+l.x1)/2&&c>=l.y1-l.borderThickness/2&&c<=l.y1+l.borderThickness/2||a>=(l.x1+l.x2)/2&&a<=l.x2&&c>=l.y4-l.borderThickness/2&&c<=l.y4+l.borderThickness/2)d.push({dataPoint:p,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(l.x1-a),Math.abs(l.x2-a),Math.abs(l.y2-c),Math.abs(l.y3-c))}),k=!0}if(k||1E3m-e&& m+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}a=null;for(c=0;c>0:this._options.labelMaxWidth,this.chart.panEnabled||(g="undefined"===typeof this._options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)q=this.lineCoordinates.height/Math.abs(this.viewportMaximum-this.viewportMinimum)*E[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(e="undefined"===typeof this._options.labelMaxWidth?0.3*this.chart.width>>0:this._options.labelMaxWidth), g="undefined"===typeof this._options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;if("axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType)for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),d=za(new Date(this.viewportMaximum),this.interval,this.intervalType),b=this.intervalStartPosition;b>0,x(this.labelAngle)||(this.labelAngle=(this.labelAngle%360+360)%360,90=this.labelAngle?this.labelAngle-=180:270=this.labelAngle&&(this.labelAngle-=360)),!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=e;this.sessionVariables.labelMaxHeight= g;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=!0;for(b=0;b>0>=2*e&&h.width+c.width>>0<2.4*e?(h=this.labelFontSize,this.sessionVariables.labelMaxWidth= 1.2*e,x(this._options.labelFontSize)&&12>0>=2.4*e&&h.width+c.width<2.8*e?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=2.5*e,this.sessionVariables.labelFontSize=this.labelFontSize):h.width+c.width>>0>=2.8*e&&h.width+c.width<3.2*e?(this.sessionVariables.labelMaxWidth= 1.2*e,this.sessionVariables.labelWrap=!0,x(this._options.labelFontSize)&&12>0>=3.2*e&&h.width+c.width<3.6*e?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=2.5*e,this.sessionVariables.labelFontSize= this.labelFontSize):h.width+c.width>3.6*e&&h.width+c.width<5*e?(x(this._options.labelFontSize)&&125*e&&(this.sessionVariables.labelWrap= !0,this.sessionVariables.labelMaxWidth=e,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelMaxHeight=g,this.sessionVariables.labelAngle=this.labelAngle)):this._options.labelMaxWidth0.3*this.chart.width>>0?0.3*this.chart.width>> 0:this._options.labelMaxWidth,this.sessionVariables.labelMaxHeight=2.5*this.labelFontSize)):this._options.labelWrap?(this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth:e,this.sessionVariables.labelAngle=this._options.labelMaxWidth>e?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxHeight=k):x(this._options.labelMaxWidth)?(this.sessionVariables.labelMaxWidth=e,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight= g):(this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth:e,this.sessionVariables.labelAngle=this._options.labelMaxWidth>e?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxHeight=g,this.sessionVariables.labelWrap=this.labelWrap):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?g:Math.min((k-e*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)), k),x(this._options.labelWrap))?x(this._options.labelWrap)&&(this.labelWrap&&!x(this._options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth>0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:e,this.sessionVariables.labelMaxHeight=g):(this.sessionVariables.labelMaxWidth=f>0.5*this.chart.height?0.5*this.chart.height:f,this.sessionVariables.labelMaxHeight=k<0.9*q?0.9* q:k0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:e):(x(this._options.labelMaxWidth),this.sessionVariables.labelMaxWidth= this._options.labelMaxWidth?this._options.labelMaxWidth>0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:f,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=g);for(b=0;b>0:this._options.labelMaxWidth,x(this.labelAngle)||(this.labelAngle=(this.labelAngle%360+360)%360,90=this.labelAngle?this.labelAngle-=180:270=this.labelAngle&&(this.labelAngle-=360)),!this.chart.panEnabled&& 1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=e;this.sessionVariables.labelMaxHeight=g;this.sessionVariables.labelAngle=x(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=!0;for(b=0;b>0>=2*this.labelMaxHeight&&h.height+c.height>>0<2.4*this.labelMaxHeight? (x(this._options.labelFontSize)&&12>0>=2.4*this.labelMaxHeight&&h.height+c.height<2.8*this.labelMaxHeight?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxHeight=k,this.sessionVariables.labelFontSize= this.labelFontSize,this.sessionVariables.labelWrap=!0):h.height+c.height>>0>=2.8*this.labelMaxHeight&&h.height+c.height<3.2*this.labelMaxHeight?(this.sessionVariables.labelMaxHeight=this.labelMaxHeight,this.sessionVariables.labelWrap=!0,x(this._options.labelFontSize)&&12>0>=3.2*this.labelMaxHeight&&h.height+c.height<3.6*this.labelMaxHeight?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxHeight=k,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):h.height+c.height>3.6*this.labelMaxHeight&&h.height+c.height<10*this.labelMaxHeight?(x(this._options.labelFontSize)&&1210*this.labelMaxHeight&&h.height+c.height<50*this.labelMaxHeight&&(x(this._options.labelFontSize)&&12 0.3*this.chart.width>>0?0.3*this.chart.width>>0:this._options.labelMaxWidth:this.sessionVariables.labelMaxWidth):this._options.labelWrap?this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth>0.3*this.chart.width>>0?0.3*this.chart.width>>0:this._options.labelMaxWidth:this.sessionVariables.labelMaxWidth:this._options.labelMaxWidth?this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth>0.3*this.chart.width>>0?0.3*this.chart.width>> 0:this._options.labelMaxWidth:this.sessionVariables.labelMaxWidth:(this.sessionVariables.labelMaxWidth=e,this.sessionVariables.labelAngle=-25):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=0===this.labelAngle?e:Math.min((k-g*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)),g),x(this._options.labelWrap))?x(this._options.labelWrap)&&(this.labelWrap&&!x(this._options.labelMaxWidth)?(this.sessionVariables.labelMaxWidth= this._options.labelMaxWidth?this._options.labelMaxWidth>0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:this.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=k):(this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth>0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:e,this.sessionVariables.labelMaxHeight=0===this.labelAngle?g:k,x(this._options.labelMaxWidth)&& (this.sessionVariables.labelAngle=this.labelAngle))):this._options.labelWrap?(this.sessionVariables.labelMaxHeight=0===this.labelAngle?g:k,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=e):(x(this._options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this._options.labelMaxWidth?this._options.labelMaxWidth>0.8*this.chart.height>>0?0.8*this.chart.height>>0:this._options.labelMaxWidth:this.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap); for(b=0;b>0:0.9*this.chart.height>>0,g="outside"===c.labelPlacement?x(c._options.labelBackgroundColor)?"#EEEEEE":c._options.labelBackgroundColor:x(c._options.labelBackgroundColor)?c.startValue?"#EEEEEE":"transparent":c._options.labelBackgroundColor,a=new O(this.ctx,{x:0,y:0,backgroundColor:g,maxWidth:c._options.labelMaxWidth?c._options.labelMaxWidth:e,maxHeight:"undefined"===typeof c._options.labelWrap||c.labelWrap?e:1.5*this.labelFontSize,angle:this.labelAngle, text:c.labelFormatter?c.labelFormatter({chart:this.chart._publicChartReference,axis:this,stripLine:c}):c.label,horizontalAlign:"left",fontSize:"outside"===c.labelPlacement?c._options.labelFontSize?c._options.labelFontSize:this.labelFontSize:c.labelFontSize,fontFamily:"outside"===c.labelPlacement?c._options.labelFontFamily?c._options.labelFontFamily:this.labelFontFamily:c.labelFontFamily,fontWeight:"outside"===c.labelPlacement?c._options.fontWeight?c._options.fontWeight:this.fontWeight:c.fontWeight, fontColor:c._options.labelFontColor||c.color,fontStyle:"outside"===c.labelPlacement?c._options.fontStyle?c._options.fontStyle:this.fontWeight:c.fontStyle,textBaseline:"middle",borderThickness:0}),this._stripLineLabels.push({position:c.value,textBlock:a,effectiveHeight:null,stripLine:c})};F.prototype.createLabelsAndCalculateWidth=function(){var a=0,c=0;this._labels=[];this._stripLineLabels=[];if("left"===this._position||"right"===this._position){this.createLabels();for(c=0;cl++;){a.lineCoordinates={};t=Math.ceil(c?c.createLabelsAndCalculateWidth():0);F.push(t);f=Math.round(e.x1+t+n);u=Math.ceil(b?b.createLabelsAndCalculateWidth():0);J.push(u);g=Math.round(e.x2-u-m>a.chart.width-10?a.chart.width-10:e.x2-u-m);!a.labelAutoFit||(x(w)||x(B))||(0g&&(C+=0a.labelAngle?w-pg&&(C=B+r/2-g-u),w-pa.labelAngle&&0e.y1?10:e.y1),g=Math.round(e.x1+t+c.margin),k=Math.round(e.y2-s-a.margin),c.lineCoordinates= {x1:g,y1:d,x2:g,y2:k,height:Math.abs(k-d)},c.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d},c.title&&(c._titleTextBlock.maxWidth=0e.y1?10:e.y1),g=Math.round(f+u),k=Math.round(e.y2-s-a.margin),b.lineCoordinates={x1:f,y1:d,x2:f,y2:k,height:Math.abs(k-d)},b.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d},b.title&&(b._titleTextBlock.maxWidth= 0l++;){C=Math.ceil(a.createLabelsAndCalculateWidth());m.push(C);c&&(c.lineCoordinates={},f=Math.round(e.x1+C+a.margin),g=Math.round(e.x2>c.chart.width-10?c.chart.width-10:e.x2),c.labelAutoFit&&!x(t)&&(f=0>c.labelAngle?Math.max(f,t):0===c.labelAngle?Math.max(f,t/2):f,g=0b.chart.width-10?b.chart.width-10:e.x2),c&&c.labelAutoFit&&!x(s)&&(f=0c.chart.height-10?c.chart.height-10:e.y2-n),c.lineCoordinates.y1=d,c.lineCoordinates.y2=d,c.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:A},c.title&&(c._titleTextBlock.maxWidth=0e.y1?10:e.y1);g=Math.round(e.x1+C+a.margin);k=Math.round(c?c.lineCoordinates.y1:e.y2-n>a.chart.height-10?a.chart.height-10:e.y2-n);c&&c.labelAutoFit&&(g=0>c.labelAngle?Math.max(g,t):0===c.labelAngle?Math.max(g,t/2):g,f=0>c.labelAngle||0===c.labelAngle? g-C:f);b&&b.labelAutoFit&&(g=b.lineCoordinates.x1,f=g-C);a.lineCoordinates={x1:g,y1:d,x2:g,y2:k,height:Math.abs(k-d)};a.boundingRect={x1:f,y1:d,x2:g,y2:k,width:g-f,height:k-d};a.title&&(a._titleTextBlock.maxWidth=0this.lineCoordinates.width*b&&this.labelAutoFit&&(a=!0)}if("left"===this._position||"right"===this._position){for(e=0;ethis.lineCoordinates.height*b&&this.labelAutoFit&&(a=!0)}}if("bottom"===this._position){for(var f,e=0;ethis.viewportMaximum||(c=this.getPixelCoordinatesOnAxis(f.position),this.tickThickness&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth% 2?(c.x<<0)+0.5:c.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,c.y<<0),this.ctx.lineTo(b,c.y+this.tickLength<<0),this.ctx.stroke()),a&&0!==d++%2&&this.labelAutoFit||(0===f.textBlock.angle?(c.x-=f.textBlock.width/2,c.y+=this.tickLength+f.textBlock.fontSize/2):(c.x-=0>this.labelAngle?f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,c.y+=this.tickLength+Math.abs(0>this.labelAngle?f.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),f.textBlock.x=c.x,f.textBlock.y=c.y,f.textBlock.render(!0))); this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.boundingRect.y2-this._titleTextBlock.height-3,this._titleTextBlock.render(!0))}else if("top"===this._position){for(e=0;ethis.viewportMaximum||(c=this.getPixelCoordinatesOnAxis(f.position),this.tickThickness&&(this.ctx.lineWidth=this.tickThickness, this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(c.x<<0)+0.5:c.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,c.y<<0),this.ctx.lineTo(b,c.y-this.tickLength<<0),this.ctx.stroke()),a&&0!==d++%2&&this.labelAutoFit||(0===f.textBlock.angle?(c.x-=f.textBlock.width/2,c.y-=this.tickLength+f.textBlock.height):(c.x+=(f.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.viewportMaximum||(c=this.getPixelCoordinatesOnAxis(f.position),this.tickThickness&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(c.y<<0)+0.5:c.y<<0,this.ctx.beginPath(),this.ctx.moveTo(c.x<<0,b),this.ctx.lineTo(c.x-this.tickLength<<0,b),this.ctx.stroke()),a&&0!==d++%2&&this.labelAutoFit||(0===this.labelAngle?(f.textBlock.y=c.y,f.textBlock.x=c.x-f.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)- this.tickLength-5):(f.textBlock.y=c.y-f.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),f.textBlock.x=0this.viewportMaximum||(c=this.getPixelCoordinatesOnAxis(f.position),this.tickThickness&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(c.y<<0)+0.5:c.y<<0,this.ctx.beginPath(),this.ctx.moveTo(c.x<<0,b), this.ctx.lineTo(c.x+this.tickLength<<0,b),this.ctx.stroke()),a&&0!==d++%2&&this.labelAutoFit||(0===this.labelAngle?(f.textBlock.y=c.y,f.textBlock.x=c.x+this.tickLength+5):(f.textBlock.y=0>this.labelAngle?c.y:c.y-(f.textBlock.height-f.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),f.textBlock.x=0=this._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(c.x,d.y1,Math.abs(b.x-c.x),Math.abs(d.y1-d.y2)),c=!1):c=!0);else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;e=this._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum): this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(d.x1,c.y,Math.abs(d.x1-d.x2),Math.abs(c.y-b.y)),c=!1):c=!0);a.beginPath()};F.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0this.viewportMaximum)||(e.showOnTop?this.chart.addEventListener("dataAnimationIterationEnd",function(){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();e.render();this.ctx.restore()},e):e.render()))}for(d=0;dthis.viewportMaximum))if(a=this.getPixelCoordinatesOnAxis(b.position),"outside"===b.stripLine.labelPlacement){e&&"pixel"===e._thicknessType&&(this.ctx.lineWidth=e.thickness, this.ctx.strokeStyle=e.color);if("bottom"===this._position){var f=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(f,a.y<<0);this.ctx.lineTo(f,a.y+this.tickLength<<0);this.ctx.stroke();0===this.labelAngle?(a.x-=b.textBlock.width/2,a.y+=this.tickLength+b.textBlock.fontSize/2):(a.x-=0>this.labelAngle?b.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?b.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5:5))}else"top"=== this._position?(f=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(f,a.y<<0),this.ctx.lineTo(f,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=b.textBlock.width/2,a.y-=this.tickLength+b.textBlock.height):(a.x+=(b.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(b.textBlock.height-b.textBlock.fontSize/2-5)*Math.cos(Math.PI/ 180*this.labelAngle),a.x=0this.chart.plotArea.x1?x(e.startValue)?a.x-=b.textBlock.height-b.textBlock.fontSize/2:a.x-=b.textBlock.height/2-b.textBlock.fontSize/2+3:(b.textBlock.angle=90,x(e.startValue)?a.x+=b.textBlock.height-b.textBlock.fontSize/2:a.x+=b.textBlock.height/2-b.textBlock.fontSize/2+3),a.y=-90===b.textBlock.angle?"near"===b.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+b.textBlock.width)/ 2:this.chart.plotArea.y1+b.textBlock.width+3:"near"===b.stripLine.labelAlign?this.chart.plotArea.y2-b.textBlock.width-3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-b.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(b.textBlock.maxWidth=this._options.stripLines[d].labelMaxWidth?this._options.stripLines[d].labelMaxWidth:this.chart.plotArea.height-3,b.textBlock.measureText(),a.x-b.textBlock.height>this.chart.plotArea.x1?x(e.startValue)?a.x-=b.textBlock.height- b.textBlock.fontSize/2:a.x-=b.textBlock.height/2-b.textBlock.fontSize/2+3:(b.textBlock.angle=90,x(e.startValue)?a.x+=b.textBlock.height-b.textBlock.fontSize/2:a.x+=b.textBlock.height/2-b.textBlock.fontSize/2+3),a.y=-90===b.textBlock.angle?"near"===b.stripLine.labelAlign?this.chart.plotArea.y1+b.textBlock.width+3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+b.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===b.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"=== b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-b.textBlock.width)/2:this.chart.plotArea.y2-b.textBlock.width-3):"left"===this._position?(b.textBlock.maxWidth=this._options.stripLines[d].labelMaxWidth?this._options.stripLines[d].labelMaxWidth:this.chart.plotArea.width-3,b.textBlock.angle=0,b.textBlock.measureText(),a.y-b.textBlock.height>this.chart.plotArea.y1?x(e.startValue)?a.y-=b.textBlock.height-b.textBlock.fontSize/2:a.y-=b.textBlock.height/2-b.textBlock.fontSize+3:a.y- b.textBlock.heightthis.chart.plotArea.y1?x(e.startValue)?a.y-=b.textBlock.height-b.textBlock.fontSize/2:a.y-=b.textBlock.height/2-b.textBlock.fontSize/2-3:a.y-b.textBlock.heightthis.viewportMaximum||(a.beginPath(),c=this.getPixelCoordinatesOnAxis(this._labels[d].position),c=1===a.lineWidth%2?(c.x<<0)+0.5:c.x<<0,a.moveTo(c,b.y1<<0),a.lineTo(c,b.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var d=0;d this.viewportMaximum||(a.beginPath(),c=this.getPixelCoordinatesOnAxis(this._labels[d].position),c=1===a.lineWidth%2?(c.y<<0)+0.5:c.y<<0,a.moveTo(b.x1<<0,c),a.lineTo(b.x2<<0,c),a.stroke());a.restore()}};F.prototype.renderAxisLine=function(){var a=this.chart.ctx;a.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){a.lineWidth=this.lineThickness;a.strokeStyle=this.lineColor?this.lineColor:"black";a.setLineDash&&a.setLineDash(D(this.lineDashType,this.lineThickness));var c= 1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;a.beginPath();a.moveTo(this.lineCoordinates.x1,c);a.lineTo(this.lineCoordinates.x2,c);a.stroke()}}else"left"!==this._position&&"right"!==this._position||!this.lineThickness||(a.lineWidth=this.lineThickness,a.strokeStyle=this.lineColor,a.setLineDash&&a.setLineDash(D(this.lineDashType,this.lineThickness)),c=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0,a.beginPath(),a.moveTo(c, this.lineCoordinates.y1),a.lineTo(c,this.lineCoordinates.y2),a.stroke());a.restore()};F.prototype.getPixelCoordinatesOnAxis=function(a){var c={};if("bottom"===this._position||"top"===this._position){var b=this.conversionParameters.pixelPerUnit;c.x=this.conversionParameters.reference+b*(a-this.viewportMinimum);c.y=this.lineCoordinates.y1}if("left"===this._position||"right"===this._position)b=-this.conversionParameters.pixelPerUnit,c.y=this.conversionParameters.reference-b*(a-this.viewportMinimum), c.x=this.lineCoordinates.x2;return c};F.prototype.convertPixelToValue=function(a){if(!a)return null;var c=0;return c=this.conversionParameters.minimum+(("left"===this._position||"right"===this._position?a.y:a.x)-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit};F.prototype.setViewPortRange=function(a,c){this.sessionVariables.newViewportMinimum=this.viewportMinimum=Math.min(a,c);this.sessionVariables.newViewportMaximum=this.viewportMaximum=Math.max(a,c)};F.prototype.getXValueAt= function(a){if(!a)return null;var c=null;"left"===this._position?c=(this.chart.axisX.viewportMaximum-this.chart.axisX.viewportMinimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-a.y)+this.chart.axisX.viewportMinimum:"bottom"===this._position&&(c=(this.chart.axisX.viewportMaximum-this.chart.axisX.viewportMinimum)/this.chart.axisX.lineCoordinates.width*(a.x-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.viewportMinimum);return c};F.prototype.calculateValueToPixelConversionParameters= function(a){this.reversed=!1;a={pixelPerUnit:null,minimum:null,reference:null};var c=this.lineCoordinates.width,b=this.lineCoordinates.height;a.minimum=this.viewportMinimum;if("bottom"===this._position||"top"===this._position)a.pixelPerUnit=(this.reversed?-1:1)*c/Math.abs(this.viewportMaximum-this.viewportMinimum),a.reference=this.reversed?this.lineCoordinates.x2:this.lineCoordinates.x1;if("left"===this._position||"right"===this._position)a.pixelPerUnit=(this.reversed?1:-1)*b/Math.abs(this.viewportMaximum- this.viewportMinimum),a.reference=this.reversed?this.lineCoordinates.y1:this.lineCoordinates.y2;this.conversionParameters=a};F.prototype.calculateAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(),c=!1;"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?8:Math.max(6,Math.floor(this.maxWidth/62)):Math.max(Math.floor(this.maxWidth/40),2),b,d, e,f;f=0;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,d=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0===d-b&&(f="undefined"===typeof this._options.interval?0.4:this._options.interval,d+=f,b-=f),Infinity!==this.dataInfo.minDiff?e=this.dataInfo.minDiff: 1d?(f= Math.min(Math.abs(0.01*Math.abs(d-b)),5),0<=d?b=d-f:d=b+f):(f=Math.min(Math.abs(0.01*Math.abs(d-b)),0.05),0!==d&&(d+=f),0!==b&&(b-=f)),e=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0));f=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?d:this.viewportMaximum)-(isNaN(this.viewportMinimum)|| null===this.viewportMinimum?b:this.viewportMinimum);if("axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType){this.intervalType||(f/1<=a?(this.interval=1,this.intervalType="millisecond"):f/2<=a?(this.interval=2,this.intervalType="millisecond"):f/5<=a?(this.interval=5,this.intervalType="millisecond"):f/10<=a?(this.interval=10,this.intervalType="millisecond"):f/20<=a?(this.interval=20,this.intervalType="millisecond"):f/50<=a?(this.interval=50,this.intervalType="millisecond"):f/100<=a? (this.interval=100,this.intervalType="millisecond"):f/200<=a?(this.interval=200,this.intervalType="millisecond"):f/250<=a?(this.interval=250,this.intervalType="millisecond"):f/300<=a?(this.interval=300,this.intervalType="millisecond"):f/400<=a?(this.interval=400,this.intervalType="millisecond"):f/500<=a?(this.interval=500,this.intervalType="millisecond"):f/(1*E.secondDuration)<=a?(this.interval=1,this.intervalType="second"):f/(2*E.secondDuration)<=a?(this.interval=2,this.intervalType="second"):f/ (5*E.secondDuration)<=a?(this.interval=5,this.intervalType="second"):f/(10*E.secondDuration)<=a?(this.interval=10,this.intervalType="second"):f/(15*E.secondDuration)<=a?(this.interval=15,this.intervalType="second"):f/(20*E.secondDuration)<=a?(this.interval=20,this.intervalType="second"):f/(30*E.secondDuration)<=a?(this.interval=30,this.intervalType="second"):f/(1*E.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):f/(2*E.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"): f/(5*E.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):f/(10*E.minuteDuration)<=a?(this.interval=10,this.intervalType="minute"):f/(15*E.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):f/(20*E.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):f/(30*E.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):f/(1*E.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):f/(2*E.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):f/(3* E.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):f/(6*E.hourDuration)<=a?(this.interval=6,this.intervalType="hour"):f/(1*E.dayDuration)<=a?(this.interval=1,this.intervalType="day"):f/(2*E.dayDuration)<=a?(this.interval=2,this.intervalType="day"):f/(4*E.dayDuration)<=a?(this.interval=4,this.intervalType="day"):f/(1*E.weekDuration)<=a?(this.interval=1,this.intervalType="week"):f/(2*E.weekDuration)<=a?(this.interval=2,this.intervalType="week"):f/(3*E.weekDuration)<=a?(this.interval=3,this.intervalType= "week"):f/(1*E.monthDuration)<=a?(this.interval=1,this.intervalType="month"):f/(2*E.monthDuration)<=a?(this.interval=2,this.intervalType="month"):f/(3*E.monthDuration)<=a?(this.interval=3,this.intervalType="month"):f/(6*E.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=f/(1*E.yearDuration)<=a?1:f/(2*E.yearDuration)<=a?2:f/(4*E.yearDuration)<=a?4:Math.floor(F.getNiceNumber(f/(a-1),!0)/E.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum= b-e/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=d+e/2;c?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";f=F.getNiceNumber(f,!1);this.interval=this._options&&0d?(f=Math.min(Math.abs(0.01*Math.abs(d-b)),5),0<=d?b=d-f:d=b+f):(f=Math.min(Math.abs(0.01*Math.abs(d-b)),0.05),0!==d&&(d+=f),0!==b&&(b-=f)):(d="undefined"===typeof this._options.interval?-Infinity:this._options.interval,b=0),e=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0)),"axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType){if(null===this.minimum||isNaN(this.minimum))this.minimum=b-e/2;if(null===this.maximum||isNaN(this.maximum))this.maximum=d+e/2}else this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b-e/2:Math.floor(b/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)), null===this.maximum&&(this.maximum="axisX"===this.type?d+e/2:Math.ceil(d/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this._options.minimum?this.maximum+=10:0===this._options.maximum&&(this.minimum-=10));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum, this.maximum);this.intervalStartPosition="axisX"===this.type&&"dateTime"===this.chart.plotInfo.axisXValueType?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",f=Math.abs(this.viewportMaximum-this.viewportMinimum),1>f)){c=Math.floor(Math.abs(Math.log(f)/Math.LN10))+2;if(isNaN(c)||!isFinite(c))c=2;if(2d?1:3>d?2:7>d?5:10:1>=d?1:2>=d?2:5>=d?5:10)*Math.pow(10,b)).toFixed(20))};F.prototype.getLabelStartPoint=function(){var a=E[this.intervalType+"Duration"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this._updateToolTip(a,c))};V.prototype._updateToolTip=function(a,c){if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof c){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;c=this._prevY}else this._prevX=a,this._prevY=c;var b=null,d=null,e=[],f=0;if(this.shared&& this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){f="xySwapped"===this.chart.plotInfo.axisPlacement?(this.chart.axisX.viewportMaximum-this.chart.axisX.viewportMinimum)/this.chart.axisX.lineCoordinates.height*(this.chart.axisX.lineCoordinates.y2-c)+this.chart.axisX.viewportMinimum:(this.chart.axisX.viewportMaximum-this.chart.axisX.viewportMinimum)/this.chart.axisX.lineCoordinates.width*(a-this.chart.axisX.lineCoordinates.x1)+this.chart.axisX.viewportMinimum;d=[];for(b=0;bg.dataSeries.axisY.viewportMaximum&&f++;f-g.dataPoint.y.length&&e.push(g)}else"column"===d.type||"bar"===d.type?0>g.dataPoint.y?0>g.dataSeries.axisY.viewportMinimum&&g.dataSeries.axisY.viewportMaximum>=g.dataPoint.y&&e.push(g):g.dataSeries.axisY.viewportMinimum<=g.dataPoint.y&& 0<=g.dataSeries.axisY.viewportMaximum&&e.push(g):"bubble"===d.type?(f=this.chart._eventManager.objectMap[d.dataPointIds[g.index]].size/2,g.dataPoint.y>=g.dataSeries.axisY.viewportMinimum-f&&g.dataPoint.y<=g.dataSeries.axisY.viewportMaximum+f&&e.push(g)):(0<=g.dataSeries.type.indexOf("100")||"stackedColumn"===d.type||"stackedBar"===d.type||g.dataPoint.y>=g.dataSeries.axisY.viewportMinimum&&g.dataPoint.y<=g.dataSeries.axisY.viewportMaximum)&&e.push(g);else e.push(g)}}if(0g&&(g+=this.container.clientWidth+20);g+this.container.clientWidth>Math.max(this.chart._container.clientWidth,this.chart.width)&&(g=Math.max(0,Math.max(this.chart._container.clientWidth, this.chart.width)-this.container.clientWidth));e=1!==e.length||this.shared||"line"!==e[0].dataSeries.type&&"stepLine"!==e[0].dataSeries.type&&"spline"!==e[0].dataSeries.type&&"area"!==e[0].dataSeries.type&&"stepArea"!==e[0].dataSeries.type&&"splineArea"!==e[0].dataSeries.type&&"stackedArea"!==e[0].dataSeries.type&&"stackedArea100"!==e[0].dataSeries.type?"bar"===e[0].dataSeries.type||"rangeBar"===e[0].dataSeries.type||"stackedBar"===e[0].dataSeries.type||"stackedBar100"===e[0].dataSeries.type?e[0].dataSeries.axisX.conversionParameters.reference+ e[0].dataSeries.axisX.conversionParameters.pixelPerUnit*(e[0].dataPoint.x-e[0].dataSeries.axisX.viewportMinimum)+0.5<<0:c:e[0].dataSeries.axisY.conversionParameters.reference+e[0].dataSeries.axisY.conversionParameters.pixelPerUnit*(e[0].dataPoint.y-e[0].dataSeries.axisY.viewportMinimum)+0.5<<0;e=-e+10;0{name}:  {y}";else if("bubble"===b.type)f+= d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}";else if("rangeColumn"===b.type||"rangeBar"===b.type||"rangeArea"===b.type||"rangeSplineArea"===b.type)f+=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}";else if("candlestick"===b.type||"ohlc"===b.type)f+=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}";null===c&&(c="");!0===this.reversed?(c=this.chart.replaceKeywordsWithValue(f, d,b,e)+c,k"+c)):(c+=this.chart.replaceKeywordsWithValue(f,d,b,e),k"))}null!==c&&(c=q+c)}else{b=a[0].dataSeries;d=a[0].dataPoint;e=a[0].index;if(null===d.toolTipContent||"undefined"===typeof d.toolTipContent&&null===b._options.toolTipContent)return null;if("line"===b.type||"stepLine"===b.type||"spline"===b.type||"area"===b.type||"stepArea"===b.type||"splineArea"===b.type||"column"===b.type||"bar"===b.type||"scatter"===b.type||"stackedColumn"===b.type||"stackedColumn100"=== b.type||"stackedBar"===b.type||"stackedBar100"===b.type||"stackedArea"===b.type||"stackedArea100"===b.type)f=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(d.label?"{label}":"{x}")+":  {y}";else if("bubble"===b.type)f=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content: ""+(d.label?"{label}":"{x}")+":  {y},   {z}";else if("pie"===b.type||"doughnut"===b.type||"funnel"===b.type)f=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(d.name?"{name}:  ":d.label?"{label}:  ":"")+"{y}";else if("rangeColumn"=== b.type||"rangeBar"===b.type||"rangeArea"===b.type||"rangeSplineArea"===b.type)f=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(d.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}";else if("candlestick"===b.type||"ohlc"===b.type)f=d.toolTipContent?d.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content? this.content:""+(d.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}";null===c&&(c="");c+=this.chart.replaceKeywordsWithValue(f,d,b,e)}return c};V.prototype.enableAnimation=function(){this.container.style.WebkitTransition||(this.container.style.WebkitTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.MozTransition= "left .2s ease-out, bottom .2s ease-out",this.container.style.MsTransition="left .2s ease-out, bottom .2s ease-out",this.container.style.transition="left .2s ease-out, bottom .2s ease-out")};V.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition="",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};V.prototype.hide=function(a){this.enabled&&(this.container.style.display="none", this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};v.prototype.getPercentAndTotal=function(a,c){var b=null,d=null,e=null;if(0<=a.type.indexOf("stacked"))d=0,b=c.x.getTime?c.x.getTime():c.x,b in a.plotUnit.yTotals&&(d=a.plotUnit.yTotals[b],e=isNaN(c.y)?0:0===d?0:100*(c.y/d));else if("pie"===a.type||"doughnut"===a.type){for(i=d=0;id&&a.push(c),c.animationCallback(d),1<=d&&c.onComplete)c.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}(); /* CanvasJS jQuery Charting Plugin - http://canvasjs.com/ Copyright 2013 fenopix */ (function(b,c,d,e){b.fn.CanvasJSChart=function(a){if(a){var b=this.first();a=new CanvasJS.Chart(this[0],a);b.children(".canvasjs-chart-container").data("canvasjsChartRef",a);a.render();return this}return this.first().children(".canvasjs-chart-container").data("canvasjsChartRef")}})(jQuery,window,document);