UNPKG

highcharts

Version:
107 lines (104 loc) 104 kB
/* Highstock JS v10.0.0 (2022-03-07) Highcharts Stock as a plugin for Highcharts (c) 2010-2021 Torstein Honsi License: www.highcharts.com/license */ (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/stock",["highcharts"],function(L){a(L);a.Highcharts=L;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function L(a,r,y,t){a.hasOwnProperty(r)||(a[r]=t.apply(null,y),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:r,module:a[r]}})))}a=a?a._modules:{};L(a,"Core/Axis/OrdinalAxis.js", [a["Core/Axis/Axis.js"],a["Core/Globals.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,r,y,t){var l=t.addEvent,D=t.correctFloat,E=t.css,x=t.defined,b=t.error,m=t.pick,d=t.timeUnits,z=[],h;(function(h){function G(f,e,c,p,n,g,u){void 0===n&&(n=[]);void 0===g&&(g=0);var w={},Q=this.options.tickPixelInterval,N=this.chart.time,B=[],H,A,k=0,v=[],h=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!n||3>n.length||"undefined"===typeof e)return N.getTimeTicks.apply(N,arguments); var m=n.length;for(H=0;H<m;H++){var F=H&&n[H-1]>c;n[H]<e&&(k=H);if(H===m-1||n[H+1]-n[H]>5*g||F){if(n[H]>h){for(A=N.getTimeTicks(f,n[k],n[H],p);A.length&&A[0]<=h;)A.shift();A.length&&(h=A[A.length-1]);B.push(v.length);v=v.concat(A)}k=H+1}if(F)break}if(A){A=A.info;if(u&&A.unitRange<=d.hour){H=v.length-1;for(k=1;k<H;k++)if(N.dateFormat("%d",v[k])!==N.dateFormat("%d",v[k-1])){w[v[k]]="day";var q=!0}q&&(w[v[0]]="day");A.higherRanks=w}A.segmentStarts=B;v.info=A}else b(12,!1,this.chart);if(u&&x(Q)){A=v.length; N=[];k=[];H=void 0;for(q=A;q--;)B=this.translate(v[q]),H&&(k[q]=H-B),N[q]=H=B;k.sort();k=k[Math.floor(k.length/2)];k<.6*Q&&(k=null);q=v[A-1]>c?A-1:A;for(H=void 0;q--;)B=N[q],A=Math.abs(H-B),H&&A<.8*Q&&(null===k||A<.8*k)?(w[v[q]]&&!w[v[q+1]]?(A=q+1,H=B):A=q,v.splice(A,1)):H=B}return v}function J(f){var e=this.ordinal.positions;if(!e)return f;var c=e.length-1;if(0>f)f=e[0];else if(f>c)f=e[c];else{c=Math.floor(f);var p=f-c}return"undefined"!==typeof p&&"undefined"!==typeof e[c]?e[c]+(p?p*(e[c+1]-e[c]): 0):f}function C(f){var e=this.ordinal,c=e.positions;if(!c)return f;var p=(f-(this.old?this.old.min:this.min))*(this.old?this.old.transA:this.transA)+this.minPixelPadding;0<p&&p<this.left+this.len||(e.extendedOrdinalPositions||(e.extendedOrdinalPositions=e.getExtendedPositions()),c=e.extendedOrdinalPositions);if(c&&c.length){f=e.getIndexOfPoint(p,c);e=D(f%1);if(0<=f&&f<c.length-1)return c[Math.floor(f)]+e*(c[Math.ceil(f)]-c[Math.floor(f)]);e=c.length;p=c[0];c=c[e-1];var n=(c-p)/(e-1);return 0>f?p+ n*f:c+n*(f-e)}return f}function q(f,e){var c=h.Additions.findIndexOf(f,e,!0);return f[c]===e?c:c+(e-f[c])/(f[c+1]-f[c])}function K(){this.ordinal||(this.ordinal=new h.Additions(this))}function a(){this.isXAxis&&x(this.options.overscroll)&&this.max===this.dataMax&&(!this.chart.mouseIsDown||this.isInternal)&&(!this.eventArgs||this.eventArgs&&"navigator"!==this.eventArgs.trigger)&&(this.max+=this.options.overscroll,!this.isInternal&&x(this.userMin)&&(this.min+=this.options.overscroll))}function F(){this.horiz&& !this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function M(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function v(f){var e=this.xAxis[0],c=e.options.overscroll,p=f.originalEvent.chartX,n=this.options.chart.panning,g=!1;if(n&&"y"!==n.type&&e.options.ordinal&&e.series.length){var u=this.mouseDownX,w=e.getExtremes(),Q=w.dataMax,N=w.min,B=w.max,H=this.hoverPoints, A=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange;u=(u-p)/(e.translationSlope*(e.ordinal.slope||A));A={ordinal:{positions:e.ordinal.getExtendedPositions()}};var k=e.index2val,v=e.val2lin,d=void 0,h=d=void 0,q=void 0;A.ordinal.positions?1<Math.abs(u)&&(H&&H.forEach(function(g){g.setState()}),0>u?(h=A,q=e.ordinal.positions?e:A):(h=e.ordinal.positions?e:A,q=A),d=q.ordinal.positions,Q>d[d.length-1]&&d.push(Q),this.fixedRange=B-N,d=e.navigatorAxis.toFixedRange(void 0,void 0,k.apply(h,[v.apply(h, [N,!0])+u]),k.apply(q,[v.apply(q,[B,!0])+u])),d.min>=Math.min(w.dataMin,N)&&d.max<=Math.max(Q,B)+c&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=p,E(this.container,{cursor:"move"})):g=!0}else g=!0;g||n&&/y/.test(n.type)?c&&(e.max=e.dataMax+c):f.preventDefault()}function P(){var f=this.xAxis;f&&f.options.ordinal&&(delete f.ordinal.index,delete f.ordinal.extendedOrdinalPositions)}function k(f,e){var c=this.ordinal,p=c.positions,n=c.slope,g=c.extendedOrdinalPositions;if(!p)return f; var u=p.length;if(p[0]<=f&&p[u-1]>=f)f=q(p,f);else{g||(g=c.getExtendedPositions&&c.getExtendedPositions(),c.extendedOrdinalPositions=g);if(!g||!g.length)return f;u=g.length;n||(n=(g[u-1]-g[0])/u);p=q(g,p[0]);f>=g[0]&&f<=g[u-1]?f=q(g,f)-p:f<g[0]?(f=g[0]-f,f=-p-f/n):(f-=g[u-1],f=f/n+u-p)}return e?f:n*(f||0)+c.offset}h.compose=function(f,e,c){if(-1===z.indexOf(f)){z.push(f);var p=f.prototype;p.getTimeTicks=G;p.index2val=J;p.lin2val=C;p.val2lin=k;p.ordinal2lin=p.val2lin;l(f,"afterInit",K);l(f,"foundExtremes", a);l(f,"afterSetScale",F);l(f,"initialAxisTranslation",M)}-1===z.indexOf(c)&&(z.push(c),l(c,"pan",v));-1===z.indexOf(e)&&(z.push(e),l(e,"updatedData",P));return f};var I=function(){function f(e){this.index={};this.axis=e}f.prototype.beforeSetTickPositions=function(){var e=this.axis,c=e.ordinal,p=e.getExtremes(),n=p.min,g=p.max,u=e.isXAxis&&!!e.options.breaks;p=e.options.ordinal;var w=e.chart.options.chart.ignoreHiddenSeries,f,N,B=[],H=Number.MAX_VALUE,A=!1;if(p||u){e.series.forEach(function(g,c){f= [];if(!(w&&!1===g.visible||!1===g.takeOrdinalPosition&&!u)&&(B=B.concat(g.processedXData),k=B.length,B.sort(function(g,c){return g-c}),H=Math.min(H,m(g.closestPointRange,H)),k)){for(c=0;c<k-1;)B[c]!==B[c+1]&&f.push(B[c+1]),c++;f[0]!==B[0]&&f.unshift(B[0]);B=f}});var k=B.length;if(2<k){var d=B[1]-B[0];for(N=k-1;N--&&!A;)B[N+1]-B[N]!==d&&(A=!0);!e.options.keepOrdinalPadding&&(B[0]-n>d||g-B[B.length-1]>d)&&(A=!0)}else e.options.overscroll&&(2===k?H=B[1]-B[0]:1===k?(H=e.options.overscroll,B=[B[0],B[0]+ H]):H=c.overscrollPointsRange);A||e.forceOrdinal?(e.options.overscroll&&(c.overscrollPointsRange=H,B=B.concat(c.getOverscrollPositions())),c.positions=B,d=e.ordinal2lin(Math.max(n,B[0]),!0),N=Math.max(e.ordinal2lin(Math.min(g,B[B.length-1]),!0),1),c.slope=g=(g-n)/(N-d),c.offset=n-d*g):(c.overscrollPointsRange=m(e.closestPointRange,c.overscrollPointsRange),c.positions=e.ordinal.slope=c.offset=void 0)}e.isOrdinal=p&&A;c.groupIntervalFactor=null};f.findIndexOf=function(e,c,p){for(var n=0,g=e.length- 1,u;n<g;)u=Math.ceil((n+g)/2),e[u]<=c?n=u:g=u-1;return e[n]===c?n:p?n:-1};f.prototype.getExtendedPositions=function(){var e=this,c=e.axis,p=c.constructor.prototype,n=c.chart,g=c.series[0].currentDataGrouping,u=g?g.count+g.unitName:"raw",w=c.options.overscroll,f=c.getExtremes(),k=void 0,B=e.index;B||(B=e.index={});if(!B[u]){var H={series:[],chart:n,forceOrdinal:!1,getExtremes:function(){return{min:f.dataMin,max:f.dataMax+w}},getGroupPixelWidth:p.getGroupPixelWidth,getTimeTicks:p.getTimeTicks,options:{ordinal:!0}, ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:p.ordinal2lin,getIndexOfPoint:p.getIndexOfPoint,val2lin:p.val2lin};H.ordinal.axis=H;c.series.forEach(function(c){k={xAxis:H,xData:c.xData.slice(),chart:n,destroyGroupedData:r.noop,getProcessedData:y.prototype.getProcessedData,applyGrouping:y.prototype.applyGrouping};k.xData=k.xData.concat(e.getOverscrollPositions());k.options={dataGrouping:g?{firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",enabled:!0,forced:!0, approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};H.series.push(k);c.processData.apply(k)});k.closestPointRange!==k.basePointRange&&k.currentDataGrouping&&(H.forceOrdinal=!0);c.ordinal.beforeSetTickPositions.apply({axis:H});B[u]=H.ordinal.positions}return B[u]};f.prototype.getGroupIntervalFactor=function(e,c,p){p=p.processedXData;var n=p.length,g=[];var u=this.groupIntervalFactor;if(!u){for(u=0;u<n-1;u++)g[u]=p[u+1]-p[u];g.sort(function(g,c){return g-c});g=g[Math.floor(n/2)];e=Math.max(e, p[0]);c=Math.min(c,p[n-1]);this.groupIntervalFactor=u=n*g/(c-e)}return u};f.prototype.getIndexOfPoint=function(e,c){var p=this.axis,n=this.positions?this.positions[0]:0,g=p.series[0].points&&p.series[0].points[0]&&p.series[0].points[0].plotX||p.minPixelPadding;1<p.series.length&&p.series.forEach(function(c){c.points&&x(c.points[0])&&x(c.points[0].plotX)&&c.points[0].plotX<g&&(g=c.points[0].plotX)});e=(e-g)/(p.translationSlope*(this.slope||p.closestPointRange||this.overscrollPointsRange));return f.findIndexOf(c, n)+e};f.prototype.getOverscrollPositions=function(){var e=this.axis,c=e.options.overscroll,p=this.overscrollPointsRange,n=[],g=e.dataMax;if(x(p))for(;g<=e.dataMax+c;)g+=p,n.push(g);return n};f.prototype.postProcessTickInterval=function(e){var c=this.axis,p=this.slope;return p?c.options.breaks?c.closestPointRange||e:e/(p/c.closestPointRange):e};return f}();h.Additions=I})(h||(h={}));return h});L(a,"Series/DataModifyComposition.js",[a["Core/Axis/Axis.js"],a["Core/Series/Point.js"],a["Core/Series/Series.js"], a["Core/Utilities.js"]],function(a,r,y,t){var l=r.prototype.tooltipFormatter,D=t.addEvent,E=t.arrayMax,x=t.arrayMin,b=t.correctFloat,m=t.defined,d=t.isArray,z=t.isNumber,h=t.isString,K=t.pick,G;(function(J){function C(e,c,p){this.isXAxis||(this.series.forEach(function(n){"compare"===e&&"boolean"!==typeof c?n.setCompare(c,!1):"cumulative"!==e||h(c)||n.setCumulative(c,!1)}),K(p,!0)&&this.chart.redraw())}function q(e){var c=this,p=c.series.chart.numberFormatter,n=function(g){e=e.replace("{point."+g+ "}",(0<c[g]&&"change"===g?"+":"")+p(c[g],K(c.series.tooltipOptions.changeDecimals,2)))};m(c.change)&&n("change");m(c.cumulativeSum)&&n("cumulativeSum");return l.apply(this,[e])}function a(){var e=this.options.compare;if("percent"===e||"value"===e||this.options.cumulative){var c=new f(this);"percent"===e||"value"===e?c.initCompare(e):c.initCumulative()}this.dataModify=c}function G(e){e=e.dataExtremes;var c=e.activeYData;if(this.dataModify&&e){var p=void 0;this.options.compare?p=[this.dataModify.modifyValue(e.dataMin), this.dataModify.modifyValue(e.dataMax)]:this.options.cumulative&&d(c)&&2<=c.length&&(p=f.getCumulativeExtremes(c));p&&(e.dataMin=x(p),e.dataMax=E(p))}}function F(e,c){this.options.compare=this.userOptions.compare=e;this.update({},K(c,!0));!this.dataModify||"value"!==e&&"percent"!==e?this.points.forEach(function(c){delete c.change}):this.dataModify.initCompare(e)}function M(){if(this.xAxis&&this.processedYData&&this.dataModify){var e=this.processedXData,c=this.processedYData,p=c.length,n=!0===this.options.compareStart? 0:1,g=-1,u;this.pointArrayMap&&(g=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y"));for(u=0;u<p-n;u++){var w=c[u]&&-1<g?c[u][g]:c[u];if(z(w)&&0!==w&&e[u+n]>=(this.xAxis.min||0)){this.dataModify.compareValue=w;break}}}}function v(e,c){this.setModifier("compare",e,c)}function P(e,c){e=K(e,!1);this.options.cumulative=this.userOptions.cumulative=e;this.update({},K(c,!0));this.dataModify?this.dataModify.initCumulative():this.points.forEach(function(c){delete c.cumulativeSum})} function k(e,c){this.setModifier("cumulative",e,c)}var I=[];J.compose=function(e,c,p){if(-1===I.indexOf(e)){I.push(e);var n=e.prototype;n.setCompare=F;n.setCumulative=P;D(e,"afterInit",a);D(e,"afterGetExtremes",G);D(e,"afterProcessData",M)}-1===I.indexOf(c)&&(I.push(c),c=c.prototype,c.setCompare=v,c.setModifier=C,c.setCumulative=k);-1===I.indexOf(p)&&(I.push(p),p.prototype.tooltipFormatter=q);return e};var f=function(){function e(c){this.series=c}e.prototype.modifyValue=function(){return 0};e.getCumulativeExtremes= function(c){var e=Infinity,n=-Infinity;c.reduce(function(g,c){c=g+c;e=Math.min(e,c,g);n=Math.max(n,c,g);return c});return[e,n]};e.prototype.initCompare=function(c){this.modifyValue=function(e,n){null===e&&(e=0);var g=this.compareValue;return"undefined"!==typeof e&&"undefined"!==typeof g?(e="value"===c?e-g:e/g*100-(100===this.series.options.compareBase?0:100),"undefined"!==typeof n&&(n=this.series.points[n])&&(n.change=e),e):0}};e.prototype.initCumulative=function(){this.modifyValue=function(c,e){null=== c&&(c=0);if(void 0!==c&&void 0!==e){var n=0<e?this.series.points[e-1]:null;n&&n.cumulativeSum&&(c=b(n.cumulativeSum+c));if(e=this.series.points[e])e.cumulativeSum=c;return c}return 0}};return e}();J.Additions=f})(G||(G={}));"";return G});L(a,"Core/Axis/BrokenAxis.js",[a["Extensions/Stacking.js"],a["Core/Utilities.js"]],function(a,r){var y=r.addEvent,t=r.find,l=r.fireEvent,D=r.isArray,E=r.isNumber,x=r.pick,b;(function(m){function d(){"undefined"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks, !1)}function b(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)}function h(){var d=this.brokenAxis;if(d&&d.hasBreaks){for(var q=this.tickPositions,v=this.tickPositions.info,h=[],k=0;k<q.length;k++)d.isInAnyBreak(q[k])||h.push(q[k]);this.tickPositions=h;this.tickPositions.info=v}}function K(){this.brokenAxis||(this.brokenAxis=new S(this))}function G(){var d=this.options.connectNulls,q=this.points,v=this.xAxis,h=this.yAxis;if(this.isDirty)for(var k=q.length;k--;){var b=q[k],f= !(null===b.y&&!1===d)&&(v&&v.brokenAxis&&v.brokenAxis.isInAnyBreak(b.x,!0)||h&&h.brokenAxis&&h.brokenAxis.isInAnyBreak(b.y,!0));b.visible=f?!1:!1!==b.options.visible}}function J(){this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,x(this.pointArrayMap,["y"]))}function C(d,q){var v=this,h=v.points,k,b,f,e;if(d&&d.brokenAxis&&d.brokenAxis.hasBreaks){var c=d.brokenAxis;q.forEach(function(p){k=c&&c.breakArray||[];b=d.isXAxis?d.min:x(v.options.threshold,d.min);h.forEach(function(c){e=x(c["stack"+ p.toUpperCase()],c[p]);k.forEach(function(g){if(E(b)&&E(e)){f=!1;if(b<g.from&&e>g.to||b>g.from&&e<g.from)f="pointBreak";else if(b<g.from&&e>g.from&&e<g.to||b>g.from&&e>g.to&&e<g.from)f="pointInBreak";f&&l(d,f,{point:c,brk:g})}})})})}}function q(){var d=this.currentDataGrouping,q=d&&d.gapSize;d=this.points.slice();var v=this.yAxis,h=this.options.gapSize,k=d.length-1,b;if(h&&0<k)for("value"!==this.options.gapUnit&&(h*=this.basePointRange),q&&q>h&&q>=this.basePointRange&&(h=q),b=void 0;k--;)b&&!1!== b.visible||(b=d[k+1]),q=d[k],!1!==b.visible&&!1!==q.visible&&(b.x-q.x>h&&(b=(q.x+b.x)/2,d.splice(k+1,0,{isNull:!0,x:b}),v.stacking&&this.options.stacking&&(b=v.stacking.stacks[this.stackKey][b]=new a(v,v.options.stackLabels,!1,b,this.stack),b.total=0)),b=q);return this.getGraphPath(d)}var R=[];m.compose=function(m,a){-1===R.indexOf(m)&&(R.push(m),m.keepProps.push("brokenAxis"),y(m,"init",K),y(m,"afterInit",d),y(m,"afterSetTickPositions",h),y(m,"afterSetOptions",b));if(-1===R.indexOf(a)){R.push(a); var v=a.prototype;v.drawBreaks=C;v.gappedPath=q;y(a,"afterGeneratePoints",G);y(a,"afterRender",J)}return m};var S=function(){function d(d){this.hasBreaks=!1;this.axis=d}d.isInBreak=function(d,b){var q=d.repeat||Infinity,k=d.from,h=d.to-d.from;b=b>=k?(b-k)%q:q-(k-b)%q;return d.inclusive?b<=h:b<h&&0!==b};d.lin2Val=function(b){var q=this.brokenAxis;q=q&&q.breakArray;if(!q||!E(b))return b;var h;for(h=0;h<q.length;h++){var k=q[h];if(k.from>=b)break;else k.to<b?b+=k.len:d.isInBreak(k,b)&&(b+=k.len)}return b}; d.val2Lin=function(b){var q=this.brokenAxis;q=q&&q.breakArray;if(!q||!E(b))return b;var h=b,k;for(k=0;k<q.length;k++){var m=q[k];if(m.to<=b)h-=m.len;else if(m.from>=b)break;else if(d.isInBreak(m,b)){h-=b-m.from;break}}return h};d.prototype.findBreakAt=function(d,b){return t(b,function(b){return b.from<d&&d<b.to})};d.prototype.isInAnyBreak=function(b,q){var h=this.axis,k=h.options.breaks||[],m=k.length,f;if(m&&E(b)){for(;m--;)if(d.isInBreak(k[m],b)){var e=!0;f||(f=x(k[m].showPoints,!h.isXAxis))}var c= e&&q?e&&!f:e}return c};d.prototype.setBreaks=function(b,q){var h=this,k=h.axis,m=D(b)&&!!b.length;k.isDirty=h.hasBreaks!==m;h.hasBreaks=m;k.options.breaks=k.userOptions.breaks=b;k.forceRedraw=!0;k.series.forEach(function(f){f.isDirty=!0});m||k.val2lin!==d.val2Lin||(delete k.val2lin,delete k.lin2val);m&&(k.userOptions.ordinal=!1,k.lin2val=d.lin2Val,k.val2lin=d.val2Lin,k.setExtremes=function(f,e,c,p,n){if(h.hasBreaks){for(var g=this.options.breaks||[],u;u=h.findBreakAt(f,g);)f=u.to;for(;u=h.findBreakAt(e, g);)e=u.from;e<f&&(e=f)}k.constructor.prototype.setExtremes.call(this,f,e,c,p,n)},k.setAxisTranslation=function(){k.constructor.prototype.setAxisTranslation.call(this);h.unitLength=void 0;if(h.hasBreaks){var f=k.options.breaks||[],e=[],c=[],p=x(k.pointRangePadding,0),n=0,g,u=k.userMin||k.min,w=k.userMax||k.max,b;f.forEach(function(c){g=c.repeat||Infinity;E(u)&&E(w)&&(d.isInBreak(c,u)&&(u+=c.to%g-u%g),d.isInBreak(c,w)&&(w-=w%g-c.from%g))});f.forEach(function(c){B=c.from;g=c.repeat||Infinity;if(E(u)&& E(w)){for(;B-g>u;)B-=g;for(;B<u;)B+=g;for(b=B;b<w;b+=g)e.push({value:b,move:"in"}),e.push({value:b+c.to-c.from,move:"out",size:c.breakSize})}});e.sort(function(g,c){return g.value===c.value?("in"===g.move?0:1)-("in"===c.move?0:1):g.value-c.value});var q=0;var B=u;e.forEach(function(g){q+="in"===g.move?1:-1;1===q&&"in"===g.move&&(B=g.value);0===q&&E(B)&&(c.push({from:B,to:g.value,len:g.value-B-(g.size||0)}),n+=g.value-B-(g.size||0))});h.breakArray=c;E(u)&&E(w)&&E(k.min)&&(h.unitLength=w-u-n+p,l(k, "afterBreaks"),k.staticScale?k.transA=k.staticScale:h.unitLength&&(k.transA*=(w-k.min+p)/h.unitLength),p&&(k.minPixelPadding=k.transA*(k.minPointOffset||0)),k.min=u,k.max=w)}});x(q,!0)&&k.chart.redraw()};return d}();m.Additions=S})(b||(b={}));return b});L(a,"masters/modules/broken-axis.src.js",[a["Core/Globals.js"],a["Core/Axis/BrokenAxis.js"]],function(a,r){r.compose(a.Axis,a.Series)});L(a,"Extensions/DataGrouping.js",[a["Core/Axis/Axis.js"],a["Core/Axis/DateTimeAxis.js"],a["Core/FormatUtilities.js"], a["Core/Globals.js"],a["Core/Series/Point.js"],a["Core/Series/Series.js"],a["Core/Tooltip.js"],a["Core/DefaultOptions.js"],a["Core/Utilities.js"]],function(a,r,y,t,l,D,E,x,b){var m=y.format,d=D.prototype;y=b.addEvent;var z=b.arrayMax,h=b.arrayMin,K=b.correctFloat,G=b.defined,J=b.error,C=b.extend,q=b.isNumber,R=b.merge,S=b.pick;"";var F=t.approximations={sum:function(f){var e=f.length;if(!e&&f.hasNulls)var c=null;else if(e)for(c=0;e--;)c+=f[e];return c},average:function(f){var e=f.length;f=F.sum(f); q(f)&&e&&(f=K(f/e));return f},averages:function(){var f=[];[].forEach.call(arguments,function(e){f.push(F.average(e))});return"undefined"===typeof f[0]?void 0:f},open:function(f){return f.length?f[0]:f.hasNulls?null:void 0},high:function(f){return f.length?z(f):f.hasNulls?null:void 0},low:function(f){return f.length?h(f):f.hasNulls?null:void 0},close:function(f){return f.length?f[f.length-1]:f.hasNulls?null:void 0},hlc:function(f,e,c){f=F.high(f);e=F.low(e);c=F.close(c);if(q(f)||q(e)||q(c))return[f, e,c]},ohlc:function(f,e,c,p){f=F.open(f);e=F.high(e);c=F.low(c);p=F.close(p);if(q(f)||q(e)||q(c)||q(p))return[f,e,c,p]},range:function(f,e){f=F.low(f);e=F.high(e);if(q(f)||q(e))return[f,e];if(null===f&&null===e)return null}};b=function(f,e,c,p){var n=this,g=n.data,u=n.options&&n.options.data,w=[],d=[],b=[],B=f.length,H=!!e,A=[],h=n.pointArrayMap,k=h&&h.length,m=["x"].concat(h||["y"]),v=this.options.dataGrouping&&this.options.dataGrouping.groupAll,a=0,J=0,C;p="function"===typeof p?p:F[p]?F[p]:F[n.getDGApproximation&& n.getDGApproximation()||"average"];k?h.forEach(function(){A.push([])}):A.push([]);var K=k||1;for(C=0;C<=B&&!(f[C]>=c[0]);C++);for(C;C<=B;C++){for(;"undefined"!==typeof c[a+1]&&f[C]>=c[a+1]||C===B;){var z=c[a];n.dataGroupInfo={start:v?J:n.cropStart+J,length:A[0].length};var l=p.apply(n,A);n.pointClass&&!G(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=R(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+J])),m.forEach(function(g){delete n.dataGroupInfo.options[g]})); "undefined"!==typeof l&&(w.push(z),d.push(l),b.push(n.dataGroupInfo));J=C;for(z=0;z<K;z++)A[z].length=0,A[z].hasNulls=!1;a+=1;if(C===B)break}if(C===B)break;if(h){z=n.options.dataGrouping&&n.options.dataGrouping.groupAll?C:n.cropStart+C;l=g&&g[z]||n.pointClass.prototype.applyOptions.apply({series:n},[u[z]]);var x=void 0;for(z=0;z<k;z++)x=l[h[z]],q(x)?A[z].push(x):null===x&&(A[z].hasNulls=!0)}else z=H?e[C]:null,q(z)?A[0].push(z):null===z&&(A[0].hasNulls=!0)}return{groupedXData:w,groupedYData:d,groupMap:b}}; var O={approximations:F,groupData:b},v=d.generatePoints,P={groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y", "%Y","-%Y"]}},k={line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},I=t.defaultDataGroupingUnits=[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]];d.getDGApproximation=function(){return this.is("arearange")? "range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")?"sum":"average"};d.groupData=b;d.applyGrouping=function(f){var e=this.chart,c=this.options.dataGrouping,p=!1!==this.allowDG&&c&&S(c.enabled,e.options.isStock),n=this.visible||!e.options.chart.ignoreHiddenSeries,g,u=this.currentDataGrouping,w=!1;p&&!this.requireSorting&&(this.requireSorting=w=!0);f=!1===!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!f)||!p;w&&(this.requireSorting=!1);if(!f){this.destroyGroupedData(); p=c.groupAll?this.xData:this.processedXData;var b=c.groupAll?this.yData:this.processedYData;f=e.plotSizeX;w=this.xAxis;var h=w.options.ordinal,B=this.groupPixelWidth;if(B&&p&&p.length){this.isDirty=g=!0;this.points=null;var k=w.getExtremes();var A=k.min;k=k.max;h=h&&w.ordinal&&w.ordinal.getGroupIntervalFactor(A,k,this)||1;f=w.getTimeTicks(r.Additions.prototype.normalizeTimeTickInterval(B*(k-A)/f*h,c.units||I),Math.min(A,p[0]),Math.max(k,p[p.length-1]),w.options.startOfWeek,p,this.closestPointRange); B=d.groupData.apply(this,[p,b,f,c.approximation]);p=B.groupedXData;b=B.groupedYData;h=0;c&&c.smoothed&&p.length&&(c.firstAnchor="firstPoint",c.anchor="middle",c.lastAnchor="lastPoint",J(32,!1,e,{"dataGrouping.smoothed":"use dataGrouping.anchor"}));e=p;var m=this.options.dataGrouping;A=this.currentDataGrouping&&this.currentDataGrouping.gapSize;if(m&&this.xData&&A&&this.groupMap){var v=e.length-1;var a=m.anchor;var C=S(m.firstAnchor,a);m=S(m.lastAnchor,a);if(a&&"start"!==a){var z=A*{middle:.5,end:1}[a]; for(a=e.length-1;a--&&0<a;)e[a]+=z}if(C&&"start"!==C&&this.xData[0]>=e[0]){a=this.groupMap[0].start;z=this.groupMap[0].length;var K=void 0;q(a)&&q(z)&&(K=a+(z-1));e[0]={middle:e[0]+.5*A,end:e[0]+A,firstPoint:this.xData[0],lastPoint:K&&this.xData[K]}[C]}m&&"start"!==m&&A&&e[v]>=k-A&&(k=this.groupMap[this.groupMap.length-1].start,e[v]={middle:e[v]+.5*A,end:e[v]+A,firstPoint:k&&this.xData[k],lastPoint:this.xData[this.xData.length-1]}[m])}for(k=1;k<f.length;k++)f.info.segmentStarts&&-1!==f.info.segmentStarts.indexOf(k)|| (h=Math.max(f[k]-f[k-1],h));k=f.info;k.gapSize=h;this.closestPointRange=f.info.totalRange;this.groupMap=B.groupMap;if(n){n=p;if(G(n[0])&&q(w.min)&&q(w.dataMin)&&n[0]<w.min){if(!G(w.options.min)&&w.min<=w.dataMin||w.min===w.dataMin)w.min=Math.min(n[0],w.min);w.dataMin=Math.min(n[0],w.dataMin)}if(G(n[n.length-1])&&q(w.max)&&q(w.dataMax)&&n[n.length-1]>w.max){if(!G(w.options.max)&&q(w.dataMax)&&w.max>=w.dataMax||w.max===w.dataMax)w.max=Math.max(n[n.length-1],w.max);w.dataMax=Math.max(n[n.length-1],w.dataMax)}}c.groupAll&& (this.allGroupedData=b,c=this.cropData(p,b,w.min,w.max,1),p=c.xData,b=c.yData,this.cropStart=c.start);this.processedXData=p;this.processedYData=b}else this.groupMap=null;this.hasGroupedData=g;this.currentDataGrouping=k;this.preventGraphAnimation=(u&&u.totalRange)!==(k&&k.totalRange)}};d.destroyGroupedData=function(){this.groupedData&&(this.groupedData.forEach(function(f,e){f&&(this.groupedData[e]=f.destroy?f.destroy():null)},this),this.groupedData.length=0)};d.generatePoints=function(){v.apply(this); this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};a.prototype.applyGrouping=function(f){var e=this;e.series.forEach(function(c){c.groupPixelWidth=void 0;c.groupPixelWidth=e.getGroupPixelWidth&&e.getGroupPixelWidth();c.groupPixelWidth&&(c.hasProcessed=!0);c.applyGrouping(!!f.hasExtemesChanged)})};a.prototype.getGroupPixelWidth=function(){var f=this.series,e=f.length,c,p=0,n=!1,g;for(c=e;c--;)(g=f[c].options.dataGrouping)&&(p=Math.max(p,S(g.groupPixelWidth,P.groupPixelWidth))); for(c=e;c--;)if(g=f[c].options.dataGrouping)if(e=(f[c].processedXData||f[c].data).length,f[c].groupPixelWidth||e>this.chart.plotSizeX/p||e&&g.forced)n=!0;return n?p:0};a.prototype.setDataGrouping=function(f,e){var c;e=S(e,!0);f||(f={forced:!1,units:null});if(this instanceof a)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:f},!1);else this.chart.options.series.forEach(function(c){c.dataGrouping="boolean"===typeof f?f:R(f,c.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0); e&&this.chart.redraw()};y(a,"postProcessData",a.prototype.applyGrouping);y(l,"update",function(){if(this.dataGroup)return J(24,!1,this.series.chart),!1});y(E,"headerFormatter",function(f){var e=this.chart,c=e.time,p=f.labelConfig,n=p.series,g=n.tooltipOptions,u=n.options.dataGrouping,w=g.xDateFormat,d=n.xAxis,b=g[f.isFooter?"footerFormat":"headerFormat"];if(d&&"datetime"===d.options.type&&u&&q(p.key)){var k=n.currentDataGrouping;u=u.dateTimeLabelFormats||P.dateTimeLabelFormats;if(k)if(g=u[k.unitName], 1===k.count)w=g[0];else{w=g[1];var h=g[2]}else!w&&u&&d.dateTime&&(w=d.dateTime.getXDateFormat(p.x,g.dateTimeLabelFormats));w=c.dateFormat(w,p.key);h&&(w+=c.dateFormat(h,p.key+k.totalRange-1));n.chart.styledMode&&(b=this.styledModeFormat(b));f.text=m(b,{point:C(p.point,{key:w}),series:n},e);f.preventDefault()}});y(D,"destroy",d.destroyGroupedData);y(D,"afterSetOptions",function(f){f=f.options;var e=this.type,c=this.chart.options.plotOptions,p=x.defaultOptions.plotOptions[e].dataGrouping,n=this.useCommonDataGrouping&& P;if(c&&(k[e]||n)){p||(p=R(P,k[e]));var g=this.chart.rangeSelector;f.dataGrouping=R(n,p,c.series&&c.series.dataGrouping,c[e].dataGrouping,this.userOptions.dataGrouping,!f.isInternal&&g&&q(g.selected)&&g.buttonOptions[g.selected].dataGrouping)}});y(a,"afterSetScale",function(){this.series.forEach(function(f){f.hasProcessed=!1})});t.dataGrouping=O;"";return O});L(a,"Series/HLC/HLCPoint.js",[a["Core/Series/SeriesRegistry.js"]],function(a){var r=this&&this.__extends||function(){var a=function(t,l){a= Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,l){a.__proto__=l}||function(a,l){for(var x in l)l.hasOwnProperty(x)&&(a[x]=l[x])};return a(t,l)};return function(t,l){function D(){this.constructor=t}a(t,l);t.prototype=null===l?Object.create(l):(D.prototype=l.prototype,new D)}}();return function(a){function t(){var l=null!==a&&a.apply(this,arguments)||this;l.close=void 0;l.high=void 0;l.low=void 0;l.options=void 0;l.plotClose=void 0;l.series=void 0;return l}r(t,a);return t}(a.seriesTypes.column.prototype.pointClass)}); L(a,"Series/HLC/HLCSeries.js",[a["Series/HLC/HLCPoint.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,r,y){var t=this&&this.__extends||function(){var a=function(b,m){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var h in b)b.hasOwnProperty(h)&&(d[h]=b[h])};return a(b,m)};return function(b,m){function d(){this.constructor=b}a(b,m);b.prototype=null===m?Object.create(m):(d.prototype=m.prototype,new d)}}(),l=r.seriesTypes.column, D=y.extend,E=y.merge;y=function(a){function b(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;b.yData=void 0;return b}t(b,a);b.prototype.extendStem=function(b,d,a){var h=b[0];b=b[1];"number"===typeof h[2]&&(h[2]=Math.max(a+d,h[2]));"number"===typeof b[2]&&(b[2]=Math.min(a-d,b[2]))};b.prototype.getPointPath=function(b,d){d=d.strokeWidth();var a=b.series,h=d%2/2,m=Math.round(b.plotX)-h,G=Math.round(b.shapeArgs.width/2);var J=[["M",m,Math.round(b.yBottom)], ["L",m,Math.round(b.plotHigh)]];null!==b.close&&(b=Math.round(b.plotClose)+h,J.push(["M",m,b],["L",m+G,b]),a.extendStem(J,d/2,b));return J};b.prototype.drawSinglePoint=function(b){var d=b.series,a=d.chart,h=b.graphic,m=!h;"undefined"!==typeof b.plotY&&(h||(b.graphic=h=a.renderer.path().add(d.group)),a.styledMode||h.attr(d.pointAttribs(b,b.selected&&"select")),d=d.getPointPath(b,h),h[m?"attr":"animate"]({d:d}).addClass(b.getClassName(),!0))};b.prototype.drawPoints=function(){this.points.forEach(this.drawSinglePoint)}; b.prototype.init=function(){a.prototype.init.apply(this,arguments);this.options.stacking=void 0};b.prototype.pointAttribs=function(b,d){b=a.prototype.pointAttribs.call(this,b,d);delete b.fill;return b};b.prototype.toYData=function(b){return[b.high,b.low,b.close]};b.prototype.translate=function(){var b=this,d=b.yAxis,z=this.pointArrayMap&&this.pointArrayMap.slice()||[],h=z.map(function(b){return"plot"+(b.charAt(0).toUpperCase()+b.slice(1))});h.push("yBottom");z.push("low");a.prototype.translate.apply(b); b.points.forEach(function(a){z.forEach(function(m,J){m=a[m];null!==m&&(b.dataModify&&(m=b.dataModify.modifyValue(m)),a[h[J]]=d.toPixels(m,!0))});a.tooltipPos[1]=a.plotHigh+d.pos-b.chart.plotTop})};b.defaultOptions=E(l.defaultOptions,{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0});return b}(l);D(y.prototype, {animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"});y.prototype.pointClass=a;r.registerSeriesType("hlc",y);"";return y});L(a,"Series/OHLC/OHLCPoint.js",[a["Core/Series/SeriesRegistry.js"]],function(a){var r=this&&this.__extends||function(){var a=function(t,l){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,l){a.__proto__=l}||function(a,l){for(var t in l)l.hasOwnProperty(t)&&(a[t]= l[t])};return a(t,l)};return function(t,l){function D(){this.constructor=t}a(t,l);t.prototype=null===l?Object.create(l):(D.prototype=l.prototype,new D)}}();return function(a){function t(){var l=null!==a&&a.apply(this,arguments)||this;l.open=void 0;l.options=void 0;l.plotOpen=void 0;l.series=void 0;return l}r(t,a);t.prototype.getClassName=function(){return a.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")};t.prototype.resolveUpColor=function(){this.open< this.close&&!this.options.color&&this.series.options.upColor&&(this.color=this.series.options.upColor)};t.prototype.resolveColor=function(){a.prototype.resolveColor.call(this);this.resolveUpColor()};t.prototype.getZone=function(){var l=a.prototype.getZone.call(this);this.resolveUpColor();return l};t.prototype.applyOptions=function(){a.prototype.applyOptions.apply(this,arguments);this.resolveColor&&this.resolveColor();return this};return t}(a.seriesTypes.hlc.prototype.pointClass)});L(a,"Series/OHLC/OHLCSeries.js", [a["Series/OHLC/OHLCPoint.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,r,y){var t=this&&this.__extends||function(){var b=function(d,a){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var a in d)d.hasOwnProperty(a)&&(b[a]=d[a])};return b(d,a)};return function(d,a){function h(){this.constructor=d}b(d,a);d.prototype=null===a?Object.create(a):(h.prototype=a.prototype,new h)}}(),l=r.series,D=r.seriesTypes.hlc,E=y.addEvent, x=y.extend,b=y.merge,m=function(d){function a(){var b=null!==d&&d.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}t(a,d);a.prototype.getPointPath=function(b,a){var h=d.prototype.getPointPath.call(this,b,a);a=a.strokeWidth();var m=a%2/2,C=Math.round(b.plotX)-m,q=Math.round(b.shapeArgs.width/2);null!==b.open&&(b=Math.round(b.plotOpen)+m,h.push(["M",C,b],["L",C-q,b]),d.prototype.extendStem.call(this,h,a/2,b));return h};a.prototype.pointAttribs=function(b,a){a=d.prototype.pointAttribs.call(this, b,a);var h=this.options;delete a.fill;!b.options.color&&h.upColor&&b.open<b.close&&(a.stroke=h.upColor);return a};a.prototype.toYData=function(b){return[b.open,b.high,b.low,b.close]};a.defaultOptions=b(D.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'}});return a}(D);x(m.prototype,{pointArrayMap:["open","high","low","close"]});m.prototype.pointClass= a;r.registerSeriesType("ohlc",m);E(l,"init",function(b){b=b.options;b.useOhlcData&&"highcharts-navigator-series"!==b.id&&x(this,{pointValKey:m.prototype.pointValKey,pointArrayMap:m.prototype.pointArrayMap,toYData:m.prototype.toYData})});E(l,"afterSetOptions",function(b){b=b.options;var a=b.dataGrouping;a&&b.useOhlcData&&"highcharts-navigator-series"!==b.id&&(a.approximation="ohlc")});"";return m});L(a,"Series/Candlestick/CandlestickSeries.js",[a["Core/DefaultOptions.js"],a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]],function(a,r,y){var t=this&&this.__extends||function(){var b=function(a,d){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d])};return b(a,d)};return function(a,d){function m(){this.constructor=a}b(a,d);a.prototype=null===d?Object.create(d):(m.prototype=d.prototype,new m)}}(),l=a.defaultOptions;a=r.seriesTypes;var D=a.column,E=a.ohlc,x=y.merge;y=function(b){function a(){var a=null!== b&&b.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}t(a,b);a.prototype.pointAttribs=function(b,a){var d=D.prototype.pointAttribs.call(this,b,a),m=this.options,l=b.open<b.close,J=m.lineColor||this.color,C=b.color||this.color;d["stroke-width"]=m.lineWidth;d.fill=b.options.color||(l?m.upColor||C:C);d.stroke=b.options.lineColor||(l?m.upLineColor||J:J);a&&(b=m.states[a],d.fill=b.color||d.fill,d.stroke=b.lineColor||d.stroke,d["stroke-width"]=b.lineWidth||d["stroke-width"]); return d};a.prototype.drawPoints=function(){var b=this,a=b.chart,h=b.yAxis.reversed;b.points.forEach(function(d){var m=d.graphic,J=!m;if("undefined"!==typeof d.plotY){m||(d.graphic=m=a.renderer.path().add(b.group));b.chart.styledMode||m.attr(b.pointAttribs(d,d.selected&&"select")).shadow(b.options.shadow);var C=m.strokeWidth()%2/2;var q=Math.round(d.plotX)-C;var l=d.plotOpen;var t=d.plotClose;var F=Math.min(l,t);l=Math.max(l,t);var z=Math.round(d.shapeArgs.width/2);t=h?l!==d.yBottom:Math.round(F)!== Math.round(d.plotHigh);var v=h?Math.round(F)!==Math.round(d.plotHigh):l!==d.yBottom;F=Math.round(F)+C;l=Math.round(l)+C;C=[];C.push(["M",q-z,l],["L",q-z,F],["L",q+z,F],["L",q+z,l],["Z"],["M",q,F],["L",q,t?Math.round(h?d.yBottom:d.plotHigh):F],["M",q,l],["L",q,v?Math.round(h?d.plotHigh:d.yBottom):l]);m[J?"attr":"animate"]({d:C}).addClass(d.getClassName(),!0)}})};a.defaultOptions=x(E.defaultOptions,l.plotOptions,{states:{hover:{lineWidth:2}},tooltip:l.plotOptions.ohlc.tooltip,threshold:null,lineColor:"#000000", lineWidth:1,upColor:"#ffffff",stickyTracking:!0});return a}(E);r.registerSeriesType("candlestick",y);"";return y});L(a,"Series/Flags/FlagsPoint.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,r){var y=this&&this.__extends||function(){var a=function(l,t){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var m in b)b.hasOwnProperty(m)&&(a[m]=b[m])};return a(l,t)};return function(l,t){function x(){this.constructor=l}a(l, t);l.prototype=null===t?Object.create(t):(x.prototype=t.prototype,new x)}}(),t=r.isNumber;return function(a){function l(){var l=null!==a&&a.apply(this,arguments)||this;l.options=void 0;l.series=void 0;return l}y(l,a);l.prototype.isValid=function(){return t(this.y)||"undefined"===typeof this.y};l.prototype.hasNewShapeType=function(){var a=this.options.shape||this.series.options.shape;return this.graphic&&a&&a!==this.graphic.symbolKey};return l}(a.seriesTypes.column.prototype.pointClass)});L(a,"Series/OnSeriesComposition.js", [a["Series/Column/ColumnSeries.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,r,y){var t=a.prototype,l=r.prototype,D=y.defined,E=y.stableSort,x;(function(b){function a(){return l.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this)}function d(){t.translate.apply(this);var b=this,a=b.options,d=b.chart,m=b.points,C=a.onSeries,q=(C=C&&d.get(C))&&C.options.step,l=C&&C.points,z=d.inverted,F=b.xAxis,x=b.yAxis;d=m.length-1;var v;a=a.onKey||"y";var r=l&& l.length,k=0,I;if(C&&C.visible&&r){k=(C.pointXOffset||0)+(C.barW||0)/2;var f=C.currentDataGrouping;var e=l[r-1].x+(f?f.totalRange:0);E(m,function(c,g){return c.x-g.x});for(a="plot"+a[0].toUpperCase()+a.substr(1);r--&&m[d];){var c=l[r];f=m[d];f.y=c.y;if(c.x<=f.x&&"undefined"!==typeof c[a]){if(f.x<=e&&(f.plotY=c[a],c.x<f.x&&!q&&(I=l[r+1])&&"undefined"!==typeof I[a])){var p=(f.x-c.x)/(I.x-c.x);f.plotY+=p*(I[a]-c[a]);f.y+=p*(I.y-c.y)}d--;r++;if(0>d)break}}}m.forEach(function(c,g){c.plotX+=k;if("undefined"=== typeof c.plotY||z)0<=c.plotX&&c.plotX<=F.len?z?(c.plotY=F.translate(c.x,0,1,0,1),c.plotX=D(c.y)?x.translate(c.y,0,0,0,1):0):c.plotY=(F.opposite?0:b.yAxis.len)+F.offset:c.shapeArgs={};if((v=m[g-1])&&v.plotX===c.plotX){"undefined"===typeof v.stackIndex&&(v.stackIndex=0);var u=v.stackIndex+1}c.stackIndex=u});this.onSeries=C}var z=[];b.compose=function(b){if(-1===z.indexOf(b)){z.push(b);var h=b.prototype;h.getPlotBox=a;h.translate=d}return b};b.getPlotBox=a;b.translate=d})(x||(x={}));return x});L(a,"Series/Flags/FlagsSymbols.js", [a["Core/Renderer/RendererRegistry.js"],a["Core/Renderer/SVG/SVGRenderer.js"]],function(a,r){function y(a){t[a+"pin"]=function(l,r,x,b,m){var d=m&&m.anchorX;m=m&&m.anchorY;"circle"===a&&b>x&&(l-=Math.round((b-x)/2),x=b);var z=t[a](l,r,x,b);if(d&&m){var h=d;"circle"===a?h=l+x/2:(l=z[0],x=z[1],"M"===l[0]&&"L"===x[0]&&(h=(l[1]+x[1])/2));z.push(["M",h,r>m?r:r+b],["L",d,m]);z=z.concat(t.circle(d-1,m-1,2,2))}return z}}var t=r.prototype.symbols;t.flag=function(a,r,y,x,b){var m=b&&b.anchorX||a;b=b&&b.anchorY|| r;var d=t.circle(m-1,b-1,2,2);d.push(["M",m,b],["L",a,r+x],["L",a,r],["L",a+y,r],["L",a+y,r+x],["L",a,r+x],["Z"]);return d};y("circle");y("square");a=a.getRendererType();a!==r&&(a.prototype.symbols.circlepin=t.circlepin,a.prototype.symbols.flag=t.flag,a.prototype.symbols.squarepin=t.squarepin);return t});L(a,"Series/Flags/FlagsSeries.js",[a["Series/Flags/FlagsPoint.js"],a["Core/Globals.js"],a["Series/OnSeriesComposition.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Series/SeriesRegistry.js"], a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,r,y,t,l,D,E){var x=this&&this.__extends||function(){var b=function(a,d){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d])};return b(a,d)};return function(a,d){function q(){this.constructor=a}b(a,d);a.prototype=null===d?Object.create(d):(q.prototype=d.prototype,new q)}}();r=r.noop;var b=t.distribute,m=l.series,d=l.seriesTypes.column, z=E.addEvent,h=E.defined;t=E.extend;var K=E.merge,G=E.objectEach,J=E.wrap;E=function(a){function q(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}x(q,a);q.prototype.animate=function(b){b&&this.setClip()};q.prototype.drawPoints=function(){var a=this.points,d=this.chart,q=d.renderer,m=d.inverted,v=this.options,l=v.y,k,C=this.yAxis,f={},e=[];for(k=a.length;k--;){var c=a[k];var p=(m?c.plotY:c.plotX)>this.xAxis.len;var n=c.plotX;var g=c.stackIndex; var u=c.options.shape||v.shape;var w=c.plotY;"undefined"!==typeof w&&(w=c.plotY+l-("undefined"!==typeof g&&g*v.stackDistance));c.anchorX=g?void 0:c.plotX;var Q=g?void 0:c.plotY;var N="flag"!==u;g=c.graphic;"undefined"!==typeof w&&0<=n&&!p?(g&&c.hasNewShapeType()&&(g=g.destroy()),g||(g=c.graphic=q.label("",null,null,u,null,null,v.useHTML).addClass("highcharts-point").add(this.markerGroup),c.graphic.div&&(c.graphic.div.point=c),g.isNew=!0),g.attr({align:N?"center":"left",width:v.width,height:v.height, "text-align":v.textAlign}),d.styledMode||g.attr(this.pointAttribs(c)).css(K(v.style,c.style)).shadow(v.shadow),0<n&&(n-=g.strokeWidth()%2),u={y:w,anchorY:Q},v.allowOverlapX&&(u.x=n,u.anchorX=c.anchorX),g.attr({text:c.options.title||v.title||"A"})[g.isNew?"attr":"animate"](u),v.allowOverlapX||(f[c.plotX]?f[c.plotX].size=Math.max(f[c.plotX].size,g.width):f[c.plotX]={align:N?.5:0,size:g.width,target:n,anchorX:n}),c.tooltipPos=[n,w+C.pos-d.plotTop]):g&&(c.graphic=g.destroy())}if(!v.allowOverlapX){var B= 100;G(f,function(g){g.plotX=g.anchorX;e.push(g);B=Math.max(g.size,B)});b(e,m?C.len:this.xAxis.len,B);a.forEach(function(g){var c=g.graphic&&f[g.plotX];c&&(g.graphic[g.graphic.isNew?"attr":"animate"]({x:c.pos+c.align*c.size,anchorX:g.anchorX}),h(c.pos)?g.graphic.isNew=!1:(g.graphic.attr({x:-9999,anchorX:-9999}),g.graphic.isNew=!0))})}v.useHTML&&J(this.markerGroup,"on",function(g){return D.prototype.on.apply(g.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})};q.prototype.drawTracker= function(){var b=this.points;a.prototype.drawTracker.call(this);b.forEach(function(a){var d=a.graphic;d&&(a.unbindMouseOver&&a.unbindMouseOver(),a.unbindMouseOver=z(d.element,"mouseover",function(){0<a.stackIndex&&!a.raised&&(a._y=d.y,d.attr({y:a._y-8}),a.raised=!0);b.forEach(function(b){b!==a&&b.raised&&b.graphic&&(b.graphic.attr({y:b._y}),b.raised=!1)})}))})};q.prototype.pointAttribs=function(b,a){var d=this.options,q=b&&b.color||this.color,h=d.lineColor,m=b&&b.lineWidth;b=b&&b.fillColor||d.fillColor; a&&(b=d.states[a].fillColor,h=d.states[a].lineColor,m=d.states[a].lineWidth);return{fill:b||q,stroke:h||q,"stroke-width":m||d.lineWidth||0}};q.prototype.setClip=function(){m.prototype.setClip.apply(this,arguments);!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])};q.defaultOptions=K(d.defaultOptions,{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null, y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd6eb"}},style:{fontSize:"11px",fontWeight:"bold"}});return q}(d);y.compose(E);t(E.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:a,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:r,init:m.prototype.init,invertGroups:r});l.registerSeriesType("flags",E);"";"";return E});L(a,"Core/Axis/ScrollbarAxis.js",[a["Core/Utilities.js"]],function(a){var r=a.addEvent, y=a.defined,t=a.pick;return function(){function a(){}a.compose=function(l,E){if(-1===a.composed.indexOf(l))a.composed.push(l);else return l;var x=function(b){var a=t(b.options&&b.options.min,b.min),d=t(b.options&&b.options.max,b.max);return{axisMin:a,axisMax:d,scrollMin:y(b.dataMin)?Math.min(a,b.min,b.dataMin,t(b.threshold,Infinity)):a,scrollMax:y(b.dataMax)?Math.max(d,b.max,b.dataMax,t(b.threshold,-Infinity)):d}};r(l,"afterInit",function(){var b=this;b.options&&b.options.scrollbar&&b.options.scrollbar.enabled&& (b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new E(b.chart.renderer,b.options.scrollbar,b.chart),r(b.scrollbar,"changed",function(a){var d=x(b),m=d.axisMax,h=d.scrollMin,l=d.scrollMax-h;y(d.axisMin)&&y(m)&&(b.horiz&&!b.reversed||!b.horiz&&b.reversed?(d=h+l*this.to,h+=l*this.from):(d=h+l*(1-this.from),h+=l*(1-this.to)),this.shouldUpdateExtremes(a.DOMType)?b.setExtremes(h,d,!0,"mousemove"!==a.DOMType&&"touchmove"!==a.DOMType,a):this.setRange(this.from, this.to))}))});r(l,"afterRender",function(){var b=x(this),a=b.scrollMin,d=b.scrollMax;b=this.scrollbar;var l=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets,t=this.options.margin||0;b&&(this.horiz?(this.opposite||(h[1]+=l),b.position(this.left,this.top+this.height+2+h[1]-(this.opposite?t:0),this.width,this.height),this.opposite||(h[1]+=t),l=1):(this.opposite&&(h[0]+=l),b.position(b.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:t):this.opposite?0:t,this.top, this.width,this.height),this.opposite&&(h[0]+=t),l=0),h[l]+=b.size+b.options.margin,isNaN(a)||isNaN(d)||!y(this.min)||!y(this.max)||this.min===this.max?b.setRange(0,1):(h=(this.min-a)/(d-a),a=(this.max-a)/(d-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?b.setRange(h,a):b.setRange(1-a,1-h)))});r(l,"afterGetOffset",function(){var b=this.scrollbar&&!this.scrollbar.options.opposite;b=this.horiz?2:b?3:1;var a=this.scrollbar;a&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=a.size+ a.options.margin)});return l};a.composed=[];return a}()});L(a,"Core/ScrollbarDefaults.js",[a["Core/Globals.js"]],function(a){return{height:a.isTouchDevice?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:void 0,margin:10,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", trackBorderWidth:1}});L(a,"Core/Scrollbar.js",[a["Core/DefaultOptions.js"],a["Core/Globals.js"],a["Core/Axis/ScrollbarAxis.js"],a["Core/ScrollbarDefaults.js"],a["Core/Utilities.js"]],function(a,r,y,t,l){var D=a.defaultOptions,E=l.addEvent,x=l.correctFloat,b=l.defined,m=l.destroyObjectProperties,d=l.fireEvent,z=l.merge,h=l.pick,K=l.removeEvent;a=function(){function a(a,b,d){this._events=[];this.chart=void 0;this.from=this.chartY=this.chartX=0;this.scrollbar=this.renderer=this.options=this.group=void 0; this.scrollbarButtons=[];this.scrollbarGroup=void 0;this.scrollbarLeft=0;this.scrollbarRifles=void 0;this.scrollbarStrokeWidth=1;this.to=this.size=this.scrollbarTop=0;this.track=void 0;this.trackBorderWidth=1;this.userOptions=void 0;this.y=this.x=0;this.init(a,b,d)}a.compose=function(b){y.compose(b,a)};a.swapXY=function(a,b){b&&a.forEach(function(a){for(var b=a.length,d,q=0;q<b;q+=2)d=a[q+1],"number"===typeof d&&(a[q+1]=a[q+2],a[q+2]=d)});return a};a.prototype.addEvents=function(){var a=this.options.inverted? [1,0]:[0,1],b=this.scrollbarButtons,d=this.scrollbarGroup.element,h=this.track.element,l=this.mouseDownHandler.bind(this),m=this.mouseMoveHandler.bind(this),t=this.mouseUpHandler.bind(this);a=[[b[a[0]].element,"click",this.buttonToMinClick.bind(this)],[b[a[1]].element,"click",this.buttonToMaxClick.bind(this)],[h,"click",this.trackClick.bind(this)],[d,"mousedown",l],[d.ownerDocument,"mousemove",m],[d.ownerDocument,"mouseup",t]];r.hasTouch&&a.push([d,"touchstart",l],[d.ownerDocument,"touchmove",m], [d.ownerDocument,"touchend",t]);a.forEach(function(a){E.apply(null,a)});this._events=a};a.prototype.buttonToMaxClick=function(a){var b=(this.to-this.from)*h(this.options.step,.2);this.updatePosition(this.from+b,this.to+b);d(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:a})};a.prototype.buttonToMinClick=function(a){var b=x(this.to-this.from)*h(this.options.step,.2);this.updatePosition(x(this.from-b),x(this.to-b));d(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar", DOMEvent:a})};a.prototype.cursorToScrollbarPosition=function(a){var b=this.options;b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}};a.prototype.destroy=function(){var a=this,b=a.chart.scroller;a.removeEvents();["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(b){a[b]&&a[b].destroy&&(a[b]=a[b].destroy())});b&&a===b.scrollbar&&(b.scrollbar=null,m(b.scrollbarButtons))}; a.prototype.drawScrollbarButton=function(b){var d=this.renderer,q=this.scrollbarButtons,h=this.options,l=this.size,m=d.g().add(this.group);q.push(m);m=d.rect().addClass("highcharts-scrollbar-button").add(m);this.chart.styledMode||m.attr({stroke:h.buttonBorderColor,"stroke-width":h.buttonBorderWidth,fill:h.buttonBackgroundColor});m.attr(m.crisp({x:-.5,y:-.5,width:l+1,height:l+1,r:h.buttonBorderRadius},m.strokeWidth()));m=d.path(a.swapXY([["M",l/2+(b?-1:1),l/2-3],["L",l/2+(b?-1:1),l/2+3],["L",l/2+(b? 2:-2),l/2]],h.vertical)).addClass("highcharts-scrollbar-arrow").add(q[b]);this.chart.styledMode||m.attr({fill:h.buttonArrowColor})};a.prototype.init=function(a,b,d){this.scrollbarButtons=[];this.renderer=a;this.userOptions=b;this.options=z(t,D.scrollbar,b);this.chart=d;this.size=h(this.options.size,this.options.height);b.enabled&&(this.render(),this.addEvents())};a.prototype.mouseDownHandler=function(a){a=this.chart.pointer.normalize(a);a=this.cursorToScrollbarPosition(a);this.chartX=a.chartX;this.chartY= a.chartY;this.initPositions=[this.from,this.to];this.grabbedCenter=!0};a.prototype.mouseMoveHandler=function(a){var b=this.chart.pointer.normalize(a),q=this.options.vertical?"chartY":"chartX",h=this.initPositions||[];!this.grabbedCenter||a.touches&&0===a.touches[0][q]||(b=this.cu