UNPKG

highcharts

Version:
107 lines (104 loc) 104 kB
/* Highstock JS v10.2.0 (2022-07-05) 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(J){a(J);a.Highcharts=J;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function J(a,v,A,l){a.hasOwnProperty(v)||(a[v]=l.apply(null,A),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:v,module:a[v]}})))}a=a?a._modules:{};J(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,v,A,l){var y=l.addEvent,r=l.correctFloat,D=l.css,t=l.defined,b=l.error,m=l.pick,d=l.timeUnits,C=[],k;(function(k){function E(f,e,c,p,n,h,u){void 0===n&&(n=[]);void 0===h&&(h=0);var w={},P=this.options.tickPixelInterval,Q=this.chart.time,B=[],G,z,g=0,x=[],k=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!n||3>n.length||"undefined"===typeof e)return Q.getTimeTicks.apply(Q,arguments); var m=n.length;for(G=0;G<m;G++){var F=G&&n[G-1]>c;n[G]<e&&(g=G);if(G===m-1||n[G+1]-n[G]>5*h||F){if(n[G]>k){for(z=Q.getTimeTicks(f,n[g],n[G],p);z.length&&z[0]<=k;)z.shift();z.length&&(k=z[z.length-1]);B.push(x.length);x=x.concat(z)}g=G+1}if(F)break}if(z){z=z.info;if(u&&z.unitRange<=d.hour){G=x.length-1;for(g=1;g<G;g++)if(Q.dateFormat("%d",x[g])!==Q.dateFormat("%d",x[g-1])){w[x[g]]="day";var q=!0}q&&(w[x[0]]="day");z.higherRanks=w}z.segmentStarts=B;x.info=z}else b(12,!1,this.chart);if(u&&t(P)){z=x.length; Q=[];g=[];G=void 0;for(q=z;q--;)B=this.translate(x[q]),G&&(g[q]=G-B),Q[q]=G=B;g.sort();g=g[Math.floor(g.length/2)];g<.6*P&&(g=null);q=x[z-1]>c?z-1:z;for(G=void 0;q--;)B=Q[q],z=Math.abs(G-B),G&&z<.8*P&&(null===g||z<.8*g)?(w[x[q]]&&!w[x[q+1]]?(z=q+1,G=B):z=q,x.splice(z,1)):G=B}return x}function L(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 K(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=r(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=k.Additions.findIndexOf(f,e,!0);return f[c]===e?c:c+(e-f[c])/(f[c+1]-f[c])}function a(){this.ordinal||(this.ordinal=new k.Additions(this))}function l(){this.isXAxis&&t(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&&t(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 g(f){var e=this.xAxis[0],c=e.options.overscroll,p=f.originalEvent.chartX,n=this.options.chart.panning,h=!1;if(n&&"y"!==n.type&&e.options.ordinal&&e.series.length){var u=this.mouseDownX,w=e.getExtremes(),P=w.dataMax,Q=w.min,B=w.max,G=this.hoverPoints, z=e.closestPointRange||e.ordinal&&e.ordinal.overscrollPointsRange;u=(u-p)/(e.translationSlope*(e.ordinal.slope||z));z=e.ordinal.getExtendedPositions();z={ordinal:{positions:z,extendedOrdinalPositions:z}};var g=e.index2val,x=e.val2lin,d=void 0,q=d=void 0,k=void 0;z.ordinal.positions?1<Math.abs(u)&&(G&&G.forEach(function(h){h.setState()}),0>u?(q=z,k=e.ordinal.positions?e:z):(q=e.ordinal.positions?e:z,k=z),d=k.ordinal.positions,P>d[d.length-1]&&d.push(P),this.fixedRange=B-Q,d=e.navigatorAxis.toFixedRange(void 0, void 0,g.apply(q,[x.apply(q,[Q,!0])+u]),g.apply(k,[x.apply(k,[B,!0])+u])),d.min>=Math.min(w.dataMin,Q)&&d.max<=Math.max(P,B)+c&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=p,D(this.container,{cursor:"move"})):h=!0}else h=!0;h||n&&/y/.test(n.type)?c&&(e.max=e.dataMax+c):f.preventDefault()}function O(){var f=this.xAxis;f&&f.options.ordinal&&(delete f.ordinal.index,delete f.ordinal.extendedOrdinalPositions)}function x(f,e){var c=this.ordinal,p=c.positions,n=c.slope,h=c.extendedOrdinalPositions; if(!p)return f;var u=p.length;if(p[0]<=f&&p[u-1]>=f)f=q(p,f);else{h||(h=c.getExtendedPositions&&c.getExtendedPositions(),c.extendedOrdinalPositions=h);if(!h||!h.length)return f;u=h.length;n||(n=(h[u-1]-h[0])/u);p=q(h,p[0]);f>=h[0]&&f<=h[u-1]?f=q(h,f)-p:f<h[0]?(f=h[0]-f,f=-p-f/n):(f-=h[u-1],f=f/n+u-p)}return e?f:n*(f||0)+c.offset}k.compose=function(f,e,c){if(-1===C.indexOf(f)){C.push(f);var p=f.prototype;p.getTimeTicks=E;p.index2val=L;p.lin2val=K;p.val2lin=x;p.ordinal2lin=p.val2lin;y(f,"afterInit", a);y(f,"foundExtremes",l);y(f,"afterSetScale",F);y(f,"initialAxisTranslation",M)}-1===C.indexOf(c)&&(C.push(c),y(c,"pan",g));-1===C.indexOf(e)&&(C.push(e),y(e,"updatedData",O));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,h=p.max,u=e.isXAxis&&!!e.options.breaks;p=e.options.ordinal;var w=e.chart.options.chart.ignoreHiddenSeries,f,g,B=[],G=Number.MAX_VALUE,z=!1,x=!1,d=!1;if(p||u){var k= 0;e.series.forEach(function(h,c){f=[];0<c&&"highcharts-navigator-series"!==h.options.id&&(x=k!==h.processedXData[1]-h.processedXData[0]);k=h.processedXData[1]-h.processedXData[0];h.isSeriesBoosting&&(d=h.isSeriesBoosting);if(!(w&&!1===h.visible||!1===h.takeOrdinalPosition&&!u)&&(B=B.concat(h.processedXData),q=B.length,B.sort(function(h,c){return h-c}),G=Math.min(G,m(h.closestPointRange,G)),q)){for(c=0;c<q-1;)B[c]!==B[c+1]&&f.push(B[c+1]),c++;f[0]!==B[0]&&f.unshift(B[0]);B=f}});x&&d&&(B.pop(),B.shift()); var q=B.length;if(2<q){var b=B[1]-B[0];for(g=q-1;g--&&!z;)B[g+1]-B[g]!==b&&(z=!0);!e.options.keepOrdinalPadding&&(B[0]-n>b||h-B[B.length-1]>b)&&(z=!0)}else e.options.overscroll&&(2===q?G=B[1]-B[0]:1===q?(G=e.options.overscroll,B=[B[0],B[0]+G]):G=c.overscrollPointsRange);z||e.forceOrdinal?(e.options.overscroll&&(c.overscrollPointsRange=G,B=B.concat(c.getOverscrollPositions())),c.positions=B,b=e.ordinal2lin(Math.max(n,B[0]),!0),g=Math.max(e.ordinal2lin(Math.min(h,B[B.length-1]),!0),1),c.slope=h=(h- n)/(g-b),c.offset=n-b*h):(c.overscrollPointsRange=m(e.closestPointRange,c.overscrollPointsRange),c.positions=e.ordinal.slope=c.offset=void 0)}e.isOrdinal=p&&z;c.groupIntervalFactor=null};f.findIndexOf=function(e,c,p){for(var n=0,h=e.length-1,u;n<h;)u=Math.ceil((n+h)/2),e[u]<=c?n=u:h=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,h=c.series[0].currentDataGrouping,u=h?h.count+h.unitName:"raw",w=c.options.overscroll,f= c.getExtremes(),g=void 0,B=e.index;B||(B=e.index={});if(!B[u]){var G={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};G.ordinal.axis=G;c.series.forEach(function(c){g={xAxis:G,xData:c.xData.slice(),chart:n,destroyGroupedData:v.noop, getProcessedData:A.prototype.getProcessedData,applyGrouping:A.prototype.applyGrouping};g.xData=g.xData.concat(e.getOverscrollPositions());g.options={dataGrouping:h?{firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",enabled:!0,forced:!0,approximation:"open",units:[[h.unitName,[h.count]]]}:{enabled:!1}};G.series.push(g);c.processData.apply(g)});g.closestPointRange!==g.basePointRange&&g.currentDataGrouping&&(G.forceOrdinal=!0);c.ordinal.beforeSetTickPositions.apply({axis:G});B[u]=G.ordinal.positions}return B[u]}; f.prototype.getGroupIntervalFactor=function(e,c,p){p=p.processedXData;var n=p.length,h=[];var u=this.groupIntervalFactor;if(!u){for(u=0;u<n-1;u++)h[u]=p[u+1]-p[u];h.sort(function(h,c){return h-c});h=h[Math.floor(n/2)];e=Math.max(e,p[0]);c=Math.min(c,p[n-1]);this.groupIntervalFactor=u=n*h/(c-e)}return u};f.prototype.getIndexOfPoint=function(e,c){var p=this.axis,n=this.positions?this.positions[0]:0,h=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&&t(c.points[0])&&t(c.points[0].plotX)&&c.points[0].plotX<h&&(h=c.points[0].plotX)});e=(e-h)/(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=[],h=e.dataMax;if(t(p))for(;h<=e.dataMax+c;)h+=p,n.push(h);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}();k.Additions=I})(k||(k={}));return k});J(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,v,A,l){var y=v.prototype.tooltipFormatter,r=l.addEvent,D=l.arrayMax,t=l.arrayMin,b=l.correctFloat,m=l.defined,d=l.isArray,C=l.isNumber,k=l.isString,K=l.pick,E;(function(L){function a(e,c,p){this.isXAxis||(this.series.forEach(function(n){"compare"=== e&&"boolean"!==typeof c?n.setCompare(c,!1):"cumulative"!==e||k(c)||n.setCumulative(c,!1)}),K(p,!0)&&this.chart.redraw())}function q(e){var c=this,p=c.series.chart.numberFormatter,n=function(h){e=e.replace("{point."+h+"}",(0<c[h]&&"change"===h?"+":"")+p(c[h],K(c.series.tooltipOptions.changeDecimals,2)))};m(c.change)&&n("change");m(c.cumulativeSum)&&n("cumulativeSum");return y.apply(this,[e])}function E(){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 l(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=t(p),e.dataMax=D(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,h=-1,u;this.pointArrayMap&&(h=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y"));for(u=0;u<p-n;u++){var w=c[u]&&-1<h?c[u][h]:c[u];if(C(w)&&0!==w&&e[u+n]>=(this.xAxis.min||0)){this.dataModify.compareValue=w;break}}}}function g(e, c){this.setModifier("compare",e,c)}function O(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 x(e,c){this.setModifier("cumulative",e,c)}var I=[];L.compose=function(e,c,p){if(-1===I.indexOf(e)){I.push(e);var n=e.prototype;n.setCompare=F;n.setCumulative=O;r(e,"afterInit",E);r(e,"afterGetExtremes",l);r(e,"afterProcessData",M)}-1===I.indexOf(c)&& (I.push(c),c=c.prototype,c.setCompare=g,c.setModifier=a,c.setCumulative=x);-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(h,c){c=h+c;e=Math.min(e,c,h);n=Math.max(n,c,h);return c});return[e,n]};e.prototype.initCompare=function(c){this.modifyValue=function(e,n){null===e&&(e=0);var h=this.compareValue;return"undefined"!== typeof e&&"undefined"!==typeof h?(e="value"===c?e-h:e/h*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}();L.Additions=f})(E||(E={}));"";return E});J(a,"Core/Axis/BrokenAxis.js", [a["Extensions/Stacking.js"],a["Core/Utilities.js"]],function(a,v){var A=v.addEvent,l=v.find,y=v.fireEvent,r=v.isArray,D=v.isNumber,t=v.pick,b;(function(b){function d(){"undefined"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function m(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)}function k(){var d=this.brokenAxis;if(d&&d.hasBreaks){for(var q=this.tickPositions,g=this.tickPositions.info,k=[],x=0;x<q.length;x++)d.isInAnyBreak(q[x])||k.push(q[x]); this.tickPositions=k;this.tickPositions.info=g}}function K(){this.brokenAxis||(this.brokenAxis=new N(this))}function E(){var d=this.options.connectNulls,q=this.points,g=this.xAxis,k=this.yAxis;if(this.isDirty)for(var x=q.length;x--;){var b=q[x],f=!(null===b.y&&!1===d)&&(g&&g.brokenAxis&&g.brokenAxis.isInAnyBreak(b.x,!0)||k&&k.brokenAxis&&k.brokenAxis.isInAnyBreak(b.y,!0));b.visible=f?!1:!1!==b.options.visible}}function L(){this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,t(this.pointArrayMap, ["y"]))}function H(d,q){var g=this,k=g.points,x,b,f,e;if(d&&d.brokenAxis&&d.brokenAxis.hasBreaks){var c=d.brokenAxis;q.forEach(function(p){x=c&&c.breakArray||[];b=d.isXAxis?d.min:t(g.options.threshold,d.min);k.forEach(function(c){e=t(c["stack"+p.toUpperCase()],c[p]);x.forEach(function(h){if(D(b)&&D(e)){f=!1;if(b<h.from&&e>h.to||b>h.from&&e<h.from)f="pointBreak";else if(b<h.from&&e>h.from&&e<h.to||b>h.from&&e>h.to&&e<h.from)f="pointInBreak";f&&y(d,f,{point:c,brk:h})}})})})}}function q(){var d=this.currentDataGrouping, q=d&&d.gapSize;d=this.points.slice();var g=this.yAxis,b=this.options.gapSize,x=d.length-1,k;if(b&&0<x)for("value"!==this.options.gapUnit&&(b*=this.basePointRange),q&&q>b&&q>=this.basePointRange&&(b=q),k=void 0;x--;)k&&!1!==k.visible||(k=d[x+1]),q=d[x],!1!==k.visible&&!1!==q.visible&&(k.x-q.x>b&&(k=(q.x+k.x)/2,d.splice(x+1,0,{isNull:!0,x:k}),g.stacking&&this.options.stacking&&(k=g.stacking.stacks[this.stackKey][k]=new a(g,g.options.stackLabels,!1,k,this.stack),k.total=0)),k=q);return this.getGraphPath(d)} var R=[];b.compose=function(b,a){-1===R.indexOf(b)&&(R.push(b),b.keepProps.push("brokenAxis"),A(b,"init",K),A(b,"afterInit",d),A(b,"afterSetTickPositions",k),A(b,"afterSetOptions",m));if(-1===R.indexOf(a)){R.push(a);var g=a.prototype;g.drawBreaks=H;g.gappedPath=q;A(a,"afterGeneratePoints",E);A(a,"afterRender",L)}return b};var N=function(){function d(d){this.hasBreaks=!1;this.axis=d}d.isInBreak=function(d,g){var b=d.repeat||Infinity,k=d.from,q=d.to-d.from;g=g>=k?(g-k)%b:b-(k-g)%b;return d.inclusive? g<=q:g<q&&0!==g};d.lin2Val=function(b){var g=this.brokenAxis;g=g&&g.breakArray;if(!g||!D(b))return b;var k;for(k=0;k<g.length;k++){var q=g[k];if(q.from>=b)break;else q.to<b?b+=q.len:d.isInBreak(q,b)&&(b+=q.len)}return b};d.val2Lin=function(b){var g=this.brokenAxis;g=g&&g.breakArray;if(!g||!D(b))return b;var k=b,q;for(q=0;q<g.length;q++){var m=g[q];if(m.to<=b)k-=m.len;else if(m.from>=b)break;else if(d.isInBreak(m,b)){k-=b-m.from;break}}return k};d.prototype.findBreakAt=function(d,b){return l(b,function(b){return b.from< d&&d<b.to})};d.prototype.isInAnyBreak=function(b,q){var k=this.axis,g=k.options.breaks||[],m=g.length,f;if(m&&D(b)){for(;m--;)if(d.isInBreak(g[m],b)){var e=!0;f||(f=t(g[m].showPoints,!k.isXAxis))}var c=e&&q?e&&!f:e}return c};d.prototype.setBreaks=function(b,k){var q=this,g=q.axis,m=r(b)&&!!b.length;g.isDirty=q.hasBreaks!==m;q.hasBreaks=m;g.options.breaks=g.userOptions.breaks=b;g.forceRedraw=!0;g.series.forEach(function(f){f.isDirty=!0});m||g.val2lin!==d.val2Lin||(delete g.val2lin,delete g.lin2val); m&&(g.userOptions.ordinal=!1,g.lin2val=d.lin2Val,g.val2lin=d.val2Lin,g.setExtremes=function(f,e,c,p,n){if(q.hasBreaks){for(var h=this.options.breaks||[],u;u=q.findBreakAt(f,h);)f=u.to;for(;u=q.findBreakAt(e,h);)e=u.from;e<f&&(e=f)}g.constructor.prototype.setExtremes.call(this,f,e,c,p,n)},g.setAxisTranslation=function(){g.constructor.prototype.setAxisTranslation.call(this);q.unitLength=void 0;if(q.hasBreaks){var f=g.options.breaks||[],e=[],c=[],p=t(g.pointRangePadding,0),n=0,h,u=g.userMin||g.min,w= g.userMax||g.max,b;f.forEach(function(c){h=c.repeat||Infinity;D(u)&&D(w)&&(d.isInBreak(c,u)&&(u+=c.to%h-u%h),d.isInBreak(c,w)&&(w-=w%h-c.from%h))});f.forEach(function(c){B=c.from;h=c.repeat||Infinity;if(D(u)&&D(w)){for(;B-h>u;)B-=h;for(;B<u;)B+=h;for(b=B;b<w;b+=h)e.push({value:b,move:"in"}),e.push({value:b+c.to-c.from,move:"out",size:c.breakSize})}});e.sort(function(h,c){return h.value===c.value?("in"===h.move?0:1)-("in"===c.move?0:1):h.value-c.value});var k=0;var B=u;e.forEach(function(h){k+="in"=== h.move?1:-1;1===k&&"in"===h.move&&(B=h.value);0===k&&D(B)&&(c.push({from:B,to:h.value,len:h.value-B-(h.size||0)}),n+=h.value-B-(h.size||0))});q.breakArray=c;D(u)&&D(w)&&D(g.min)&&(q.unitLength=w-u-n+p,y(g,"afterBreaks"),g.staticScale?g.transA=g.staticScale:q.unitLength&&(g.transA*=(w-g.min+p)/q.unitLength),p&&(g.minPixelPadding=g.transA*(g.minPointOffset||0)),g.min=u,g.max=w)}});t(k,!0)&&g.chart.redraw()};return d}();b.Additions=N})(b||(b={}));return b});J(a,"masters/modules/broken-axis.src.js",[a["Core/Globals.js"], a["Core/Axis/BrokenAxis.js"]],function(a,v){v.compose(a.Axis,a.Series)});J(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,v,A,l,y,r,D,t,b){var m=A.format,d=r.prototype;A=b.addEvent;var C=b.arrayMax,k=b.arrayMin,K=b.correctFloat,E=b.defined,L=b.error,H=b.extend,q=b.isNumber,R= b.merge,N=b.pick;"";var F=l.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?C(f):f.hasNulls?null:void 0},low:function(f){return f.length? k(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,h=n.data,u=n.options&&n.options.data,w=[],g=[],d=[],b=f.length, k=!!e,z=[],m=n.pointArrayMap,a=m&&m.length,L=["x"].concat(m||["y"]),x=this.options.dataGrouping&&this.options.dataGrouping.groupAll,K=0,H=0,C;p="function"===typeof p?p:F[p]?F[p]:F[n.getDGApproximation&&n.getDGApproximation()||"average"];a?m.forEach(function(){z.push([])}):z.push([]);var y=a||1;for(C=0;C<=b&&!(f[C]>=c[0]);C++);for(C;C<=b;C++){for(;"undefined"!==typeof c[K+1]&&f[C]>=c[K+1]||C===b;){var t=c[K];n.dataGroupInfo={start:x?H:n.cropStart+H,length:z[0].length};var l=p.apply(n,z);n.pointClass&& !E(n.dataGroupInfo.options)&&(n.dataGroupInfo.options=R(n.pointClass.prototype.optionsToObject.call({series:n},n.options.data[n.cropStart+H])),L.forEach(function(h){delete n.dataGroupInfo.options[h]}));"undefined"!==typeof l&&(w.push(t),g.push(l),d.push(n.dataGroupInfo));H=C;for(t=0;t<y;t++)z[t].length=0,z[t].hasNulls=!1;K+=1;if(C===b)break}if(C===b)break;if(m){t=n.options.dataGrouping&&n.options.dataGrouping.groupAll?C:n.cropStart+C;l=h&&h[t]||n.pointClass.prototype.applyOptions.apply({series:n}, [u[t]]);var r=void 0;for(t=0;t<a;t++)r=l[m[t]],q(r)?z[t].push(r):null===r&&(z[t].hasNulls=!0)}else t=k?e[C]:null,q(t)?z[0].push(t):null===t&&(z[0].hasNulls=!0)}return{groupedXData:w,groupedYData:g,groupMap:d}};var M={approximations:F,groupData:b},g=d.generatePoints,O={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"]}},x={line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},I=l.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&&N(c.enabled,e.options.isStock),n=this.visible||!e.options.chart.ignoreHiddenSeries, h,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 g=c.groupAll?this.yData:this.processedYData;f=e.plotSizeX;w=this.xAxis;var b=w.options.ordinal,B=this.groupPixelWidth;if(B&&p&&p.length){this.isDirty=h=!0;this.points=null;var k=w.getExtremes();var z=k.min;k=k.max; b=b&&w.ordinal&&w.ordinal.getGroupIntervalFactor(z,k,this)||1;f=w.getTimeTicks(v.Additions.prototype.normalizeTimeTickInterval(B*(k-z)/f*b,c.units||I),Math.min(z,p[0]),Math.max(k,p[p.length-1]),w.options.startOfWeek,p,this.closestPointRange);B=d.groupData.apply(this,[p,g,f,c.approximation]);p=B.groupedXData;g=B.groupedYData;b=0;c&&c.smoothed&&p.length&&(c.firstAnchor="firstPoint",c.anchor="middle",c.lastAnchor="lastPoint",L(32,!1,e,{"dataGrouping.smoothed":"use dataGrouping.anchor"}));e=p;var m=this.options.dataGrouping; z=this.currentDataGrouping&&this.currentDataGrouping.gapSize;if(m&&this.xData&&z&&this.groupMap){var a=e.length-1;var x=m.anchor;var K=N(m.firstAnchor,x);m=N(m.lastAnchor,x);if(x&&"start"!==x){var C=z*{middle:.5,end:1}[x];for(x=e.length-1;x--&&0<x;)e[x]+=C}if(K&&"start"!==K&&this.xData[0]>=e[0]){x=this.groupMap[0].start;C=this.groupMap[0].length;var H=void 0;q(x)&&q(C)&&(H=x+(C-1));e[0]={middle:e[0]+.5*z,end:e[0]+z,firstPoint:this.xData[0],lastPoint:H&&this.xData[H]}[K]}m&&"start"!==m&&z&&e[a]>=k- z&&(k=this.groupMap[this.groupMap.length-1].start,e[a]={middle:e[a]+.5*z,end:e[a]+z,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)||(b=Math.max(f[k]-f[k-1],b));k=f.info;k.gapSize=b;this.closestPointRange=f.info.totalRange;this.groupMap=B.groupMap;if(n){n=p;if(E(n[0])&&q(w.min)&&q(w.dataMin)&&n[0]<w.min){if(!E(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(E(n[n.length-1])&&q(w.max)&&q(w.dataMax)&&n[n.length-1]>w.max){if(!E(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=g,c=this.cropData(p,g,w.min,w.max,1),p=c.xData,g=c.yData,this.cropStart=c.start);this.processedXData=p;this.processedYData=g}else this.groupMap=null;this.hasGroupedData=h;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(){g.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};a.prototype.applyGrouping=function(f){var e=this,c=e.series;c.forEach(function(c){c.groupPixelWidth=void 0});c.forEach(function(c){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,h;for(c=e;c--;)(h=f[c].options.dataGrouping)&&(p=Math.max(p,N(h.groupPixelWidth,O.groupPixelWidth)));for(c=e;c--;)if(h=f[c].options.dataGrouping)if(e=(f[c].processedXData||f[c].data).length,f[c].groupPixelWidth||e>this.chart.plotSizeX/p||e&&h.forced)n=!0;return n?p:0};a.prototype.setDataGrouping=function(f,e){var c; e=N(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()};A(a,"postProcessData",a.prototype.applyGrouping);A(y,"update",function(){if(this.dataGroup)return L(24,!1,this.series.chart),!1});A(D,"headerFormatter",function(f){var e=this.chart,c=e.time, p=f.labelConfig,n=p.series,h=n.tooltipOptions,u=n.options.dataGrouping,w=h.xDateFormat,g=n.xAxis,b=h[f.isFooter?"footerFormat":"headerFormat"];if(g&&"datetime"===g.options.type&&u&&q(p.key)){var d=n.currentDataGrouping;u=u.dateTimeLabelFormats||O.dateTimeLabelFormats;if(d)if(h=u[d.unitName],1===d.count)w=h[0];else{w=h[1];var k=h[2]}else!w&&u&&g.dateTime&&(w=g.dateTime.getXDateFormat(p.x,h.dateTimeLabelFormats));w=c.dateFormat(w,p.key);k&&(w+=c.dateFormat(k,p.key+d.totalRange-1));n.chart.styledMode&& (b=this.styledModeFormat(b));f.text=m(b,{point:H(p.point,{key:w}),series:n},e);f.preventDefault()}});A(r,"destroy",d.destroyGroupedData);A(r,"afterSetOptions",function(f){f=f.options;var e=this.type,c=this.chart.options.plotOptions,p=t.defaultOptions.plotOptions[e].dataGrouping,n=this.useCommonDataGrouping&&O;if(c&&(x[e]||n)){p||(p=R(O,x[e]));var h=this.chart.rangeSelector;f.dataGrouping=R(n,p,c.series&&c.series.dataGrouping,c[e].dataGrouping,this.userOptions.dataGrouping,!f.isInternal&&h&&q(h.selected)&& h.buttonOptions[h.selected].dataGrouping)}});A(a,"afterSetScale",function(){this.series.forEach(function(f){f.hasProcessed=!1})});l.dataGrouping=M;"";return M});J(a,"Series/HLC/HLCPoint.js",[a["Core/Series/SeriesRegistry.js"]],function(a){var v=this&&this.__extends||function(){var a=function(l,y){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(l,y)};return function(l,y){function r(){this.constructor= l}a(l,y);l.prototype=null===y?Object.create(y):(r.prototype=y.prototype,new r)}}();return function(a){function l(){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}v(l,a);return l}(a.seriesTypes.column.prototype.pointClass)});J(a,"Series/HLC/HLCSeries.js",[a["Series/HLC/HLCPoint.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,v,A){var l=this&&this.__extends||function(){var a= function(b,m){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,m){b.__proto__=m}||function(b,m){for(var d in m)m.hasOwnProperty(d)&&(b[d]=m[d])};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)}}(),y=v.seriesTypes.column,r=A.extend,D=A.merge;A=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} l(b,a);b.prototype.extendStem=function(b,d,a){var k=b[0];b=b[1];"number"===typeof k[2]&&(k[2]=Math.max(a+d,k[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,k=d%2/2,m=Math.round(b.plotX)-k,E=Math.round(b.shapeArgs.width/2);var L=[["M",m,Math.round(b.yBottom)],["L",m,Math.round(b.plotHigh)]];null!==b.close&&(b=Math.round(b.plotClose)+k,L.push(["M",m,b],["L",m+E,b]),a.extendStem(L,d/2,b));return L};b.prototype.drawSinglePoint= function(b){var d=b.series,a=d.chart,k=b.graphic,m=!k;"undefined"!==typeof b.plotY&&(k||(b.graphic=k=a.renderer.path().add(d.group)),a.styledMode||k.attr(d.pointAttribs(b,b.selected&&"select")),d=d.getPointPath(b,k),k[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,l=this.pointArrayMap&&this.pointArrayMap.slice()||[],k=l.map(function(b){return"plot".concat(b.charAt(0).toUpperCase()+b.slice(1))});k.push("yBottom");l.push("low");a.prototype.translate.apply(b);b.points.forEach(function(a){l.forEach(function(m,L){m=a[m];null!==m&&(b.dataModify&&(m=b.dataModify.modifyValue(m)),a[k[L]]=d.toPixels(m,!0))});a.tooltipPos[1]= a.plotHigh+d.pos-b.chart.plotTop})};b.defaultOptions=D(y.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}(y);r(A.prototype,{animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"});A.prototype.pointClass= a;v.registerSeriesType("hlc",A);"";return A});J(a,"Series/OHLC/OHLCPoint.js",[a["Core/Series/SeriesRegistry.js"]],function(a){var v=this&&this.__extends||function(){var a=function(l,y){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(l,y)};return function(l,y){function r(){this.constructor=l}a(l,y);l.prototype=null===y?Object.create(y):(r.prototype=y.prototype,new r)}}();return function(a){function l(){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}v(l,a);l.prototype.getClassName=function(){return a.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")};l.prototype.resolveUpColor=function(){this.open<this.close&&!this.options.color&&this.series.options.upColor&&(this.color=this.series.options.upColor)};l.prototype.resolveColor=function(){a.prototype.resolveColor.call(this);this.resolveUpColor()}; l.prototype.getZone=function(){var l=a.prototype.getZone.call(this);this.resolveUpColor();return l};l.prototype.applyOptions=function(){a.prototype.applyOptions.apply(this,arguments);this.resolveColor&&this.resolveColor();return this};return l}(a.seriesTypes.hlc.prototype.pointClass)});J(a,"Series/OHLC/OHLCSeries.js",[a["Series/OHLC/OHLCPoint.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,v,A){var l=this&&this.__extends||function(){var b=function(d,k){b=Object.setPrototypeOf|| {__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var k in d)d.hasOwnProperty(k)&&(b[k]=d[k])};return b(d,k)};return function(d,k){function a(){this.constructor=d}b(d,k);d.prototype=null===k?Object.create(k):(a.prototype=k.prototype,new a)}}(),y=v.series,r=v.seriesTypes.hlc,D=A.addEvent,t=A.extend,b=A.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}l(a,d);a.prototype.getPointPath=function(b, a){var k=d.prototype.getPointPath.call(this,b,a);a=a.strokeWidth();var m=a%2/2,l=Math.round(b.plotX)-m,q=Math.round(b.shapeArgs.width/2);null!==b.open&&(b=Math.round(b.plotOpen)+m,k.push(["M",l,b],["L",l-q,b]),d.prototype.extendStem.call(this,k,a/2,b));return k};a.prototype.pointAttribs=function(b,a){a=d.prototype.pointAttribs.call(this,b,a);var k=this.options;delete a.fill;!b.options.color&&k.upColor&&b.open<b.close&&(a.stroke=k.upColor);return a};a.prototype.toYData=function(b){return[b.open,b.high, b.low,b.close]};a.defaultOptions=b(r.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}(r);t(m.prototype,{pointArrayMap:["open","high","low","close"]});m.prototype.pointClass=a;v.registerSeriesType("ohlc",m);D(y,"init",function(b){b=b.options;b.useOhlcData&&"highcharts-navigator-series"!==b.id&&t(this,{pointValKey:m.prototype.pointValKey, pointArrayMap:m.prototype.pointArrayMap,toYData:m.prototype.toYData})});D(y,"afterSetOptions",function(b){b=b.options;var d=b.dataGrouping;d&&b.useOhlcData&&"highcharts-navigator-series"!==b.id&&(d.approximation="ohlc")});"";return m});J(a,"Series/Candlestick/CandlestickSeries.js",[a["Core/DefaultOptions.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,v,A){var l=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)}}(),y=a.defaultOptions;a=v.seriesTypes;var r=a.column,D=a.ohlc,t=A.merge;A=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}l(a,b);a.prototype.pointAttribs=function(b,a){var d=r.prototype.pointAttribs.call(this, b,a),m=this.options,l=b.open<b.close,L=m.lineColor||this.color,H=b.color||this.color;d["stroke-width"]=m.lineWidth;d.fill=b.options.color||(l?m.upColor||H:H);d.stroke=b.options.lineColor||(l?m.upLineColor||L:L);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,k=b.yAxis.reversed;b.points.forEach(function(d){var m=d.graphic,l=!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 H=m.strokeWidth()%2/2;var q=Math.round(d.plotX)-H;var t=d.plotOpen;var r=d.plotClose;var F=Math.min(t,r);t=Math.max(t,r);var y=Math.round(d.shapeArgs.width/2);r=k?t!==d.yBottom:Math.round(F)!==Math.round(d.plotHigh);var g=k?Math.round(F)!==Math.round(d.plotHigh):t!==d.yBottom;F=Math.round(F)+H;t=Math.round(t)+H;H=[];H.push(["M",q-y,t],["L",q-y,F],["L",q+y,F], ["L",q+y,t],["Z"],["M",q,F],["L",q,r?Math.round(k?d.yBottom:d.plotHigh):F],["M",q,t],["L",q,g?Math.round(k?d.plotHigh:d.yBottom):t]);m[l?"attr":"animate"]({d:H}).addClass(d.getClassName(),!0)}})};a.defaultOptions=t(D.defaultOptions,y.plotOptions,{states:{hover:{lineWidth:2}},tooltip:y.plotOptions.ohlc.tooltip,threshold:null,lineColor:"#000000",lineWidth:1,upColor:"#ffffff",stickyTracking:!0});return a}(D);v.registerSeriesType("candlestick",A);"";return A});J(a,"Series/Flags/FlagsPoint.js",[a["Core/Series/SeriesRegistry.js"], a["Core/Utilities.js"]],function(a,v){var A=this&&this.__extends||function(){var a=function(l,y){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,y)};return function(l,y){function t(){this.constructor=l}a(l,y);l.prototype=null===y?Object.create(y):(t.prototype=y.prototype,new t)}}(),l=v.isNumber;return function(a){function r(){var l=null!==a&&a.apply(this,arguments)||this;l.options=void 0; l.series=void 0;l.ttBelow=!1;return l}A(r,a);r.prototype.isValid=function(){return l(this.y)||"undefined"===typeof this.y};r.prototype.hasNewShapeType=function(){var a=this.options.shape||this.series.options.shape;return this.graphic&&a&&a!==this.graphic.symbolKey};return r}(a.seriesTypes.column.prototype.pointClass)});J(a,"Series/OnSeriesComposition.js",[a["Series/Column/ColumnSeries.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,v,A){var l=a.prototype,y=v.prototype,r=A.defined, D=A.stableSort,t;(function(b){function a(){return y.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this)}function d(){l.translate.apply(this);var b=this,a=b.options,d=b.chart,m=b.points,H=a.onSeries,q=(H=H&&d.get(H))&&H.options.step,t=H&&H.points,y=d.inverted,F=b.xAxis,v=b.yAxis;d=m.length-1;var g;a=a.onKey||"y";var C=t&&t.length,x=0,I;if(H&&H.visible&&C){x=(H.pointXOffset||0)+(H.barW||0)/2;var f=H.currentDataGrouping;var e=t[C-1].x+(f?f.totalRange:0);D(m,function(c, h){return c.x-h.x});for(a="plot"+a[0].toUpperCase()+a.substr(1);C--&&m[d];){var c=t[C];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=t[C+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--;C++;if(0>d)break}}}m.forEach(function(c,h){c.plotX+=x;if("undefined"===typeof c.plotY||y)0<=c.plotX&&c.plotX<=F.len?y?(c.plotY=F.translate(c.x,0,1,0,1),c.plotX=r(c.y)?v.translate(c.y,0,0,0,1):0):c.plotY=(F.opposite? 0:b.yAxis.len)+F.offset:c.shapeArgs={};if((g=m[h-1])&&g.plotX===c.plotX){"undefined"===typeof g.stackIndex&&(g.stackIndex=0);var u=g.stackIndex+1}c.stackIndex=u});this.onSeries=H}var t=[];b.compose=function(b){if(-1===t.indexOf(b)){t.push(b);var k=b.prototype;k.getPlotBox=a;k.translate=d}return b};b.getPlotBox=a;b.translate=d})(t||(t={}));return t});J(a,"Series/Flags/FlagsSymbols.js",[a["Core/Renderer/RendererRegistry.js"],a["Core/Renderer/SVG/SVGRenderer.js"]],function(a,v){function A(a){l[a+"pin"]= function(r,y,t,b,m){var d=m&&m.anchorX;m=m&&m.anchorY;"circle"===a&&b>t&&(r-=Math.round((b-t)/2),t=b);var C=l[a](r,y,t,b);if(d&&m){var k=d;"circle"===a?k=r+t/2:(r=C[0],t=C[1],"M"===r[0]&&"L"===t[0]&&(k=(r[1]+t[1])/2));C.push(["M",k,y>m?y:y+b],["L",d,m]);C=C.concat(l.circle(d-1,m-1,2,2))}return C}}var l=v.prototype.symbols;l.flag=function(a,r,v,t,b){var m=b&&b.anchorX||a;b=b&&b.anchorY||r;var d=l.circle(m-1,b-1,2,2);d.push(["M",m,b],["L",a,r+t],["L",a,r],["L",a+v,r],["L",a+v,r+t],["L",a,r+t],["Z"]); return d};A("circle");A("square");a=a.getRendererType();a!==v&&(a.prototype.symbols.circlepin=l.circlepin,a.prototype.symbols.flag=l.flag,a.prototype.symbols.squarepin=l.squarepin);return l});J(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,v,A,l,y,r,D){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 q(){this.constructor=a}b(a,d);a.prototype=null===d?Object.create(d):(q.prototype=d.prototype,new q)}}();v=v.noop;var b=l.distribute,m=y.series,d=y.seriesTypes.column,C=D.addEvent,k=D.defined;l=D.extend;var K=D.merge,E=D.objectEach,L=D.wrap;D=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}t(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,g=this.options,l=g.y,x,t=this.yAxis,f={},e=[];for(x=a.length;x--;){var c=a[x];var p=(m?c.plotY:c.plotX)>this.xAxis.len;var n=c.plotX;var h=c.stackIndex;var u=c.options.shape||g.shape;var w=c.plotY;"undefined"!==typeof w&&(w=c.plotY+l-("undefined"!==typeof h&&h*g.stackDistance)); c.anchorX=h?void 0:c.plotX;var P=h?void 0:c.plotY;var Q="flag"!==u;h=c.graphic;"undefined"!==typeof w&&0<=n&&!p?(h&&c.hasNewShapeType()&&(h=h.destroy()),h||(h=c.graphic=q.label("",null,null,u,null,null,g.useHTML).addClass("highcharts-point").add(this.markerGroup),c.graphic.div&&(c.graphic.div.point=c),h.isNew=!0),h.attr({align:Q?"center":"left",width:g.width,height:g.height,"text-align":g.textAlign}),d.styledMode||h.attr(this.pointAttribs(c)).css(K(g.style,c.style)).shadow(g.shadow),0<n&&(n-=h.strokeWidth()% 2),u={y:w,anchorY:P},g.allowOverlapX&&(u.x=n,u.anchorX=c.anchorX),h.attr({text:c.options.title||g.title||"A"})[h.isNew?"attr":"animate"](u),g.allowOverlapX||(f[c.plotX]?f[c.plotX].size=Math.max(f[c.plotX].size,h.width):f[c.plotX]={align:Q?.5:0,size:h.width,target:n,anchorX:n}),c.tooltipPos=[n,w+t.pos-d.plotTop]):h&&(c.graphic=h.destroy())}if(!g.allowOverlapX){var B=100;E(f,function(h){h.plotX=h.anchorX;e.push(h);B=Math.max(h.size,B)});b(e,m?t.len:this.xAxis.len,B);a.forEach(function(h){var c=h.plotX, u=h.graphic;(c=u&&f[c])&&u&&(k(c.pos)?u[u.isNew?"attr":"animate"]({x:c.pos+(c.align||0)*c.size,anchorX:h.anchorX}).show().isNew=!1:u.hide().isNew=!0)})}g.useHTML&&L(this.markerGroup,"on",function(h){return r.prototype.on.apply(h.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=C(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,g=d.lineColor,k=b&&b.lineWidth;b=b&&b.fillColor||d.fillColor;a&&(b=d.states[a].fillColor,g=d.states[a].lineColor,k=d.states[a].lineWidth);return{fill:b||q,stroke:g||q,"stroke-width":k||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);A.compose(D);l(D.prototype,{allowDG:!1,forceCrop:!0, invertible:!1,noSharedTooltip:!0,pointClass:a,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:v,init:m.prototype.init,invertGroups:v});y.registerSeriesType("flags",D);"";"";return D});J(a,"Core/Axis/ScrollbarAxis.js",[a["Core/Utilities.js"]],function(a){var v=a.addEvent,A=a.defined,l=a.pick;return function(){function a(){}a.compose=function(r,y){if(-1===a.composed.indexOf(r))a.composed.push(r);else return r;var t=function(b){var a=l(b.options&&b.options.min,b.min),d=l(b.options&& b.options.max,b.max);return{axisMin:a,axisMax:d,scrollMin:A(b.dataMin)?Math.min(a,b.min,b.dataMin,l(b.threshold,Infinity)):a,scrollMax:A(b.dataMax)?Math.max(d,b.max,b.dataMax,l(b.threshold,-Infinity)):d}};v(r,"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 y(b.chart.renderer,b.options.scrollbar,b.chart),v(b.scrollbar,"changed",function(a){var d=t(b),m= d.axisMax,k=d.scrollMin,l=d.scrollMax-k;A(d.axisMin)&&A(m)&&(b.horiz&&!b.reversed||!b.horiz&&b.reversed?(d=k+l*this.to,k+=l*this.from):(d=k+l*(1-this.from),k+=l*(1-this.to)),this.shouldUpdateExtremes(a.DOMType)?b.setExtremes(k,d,!0,"mousemove"!==a.DOMType&&"touchmove"!==a.DOMType,a):this.setRange(this.from,this.to))}))});v(r,"afterRender",function(){var b=t(this),a=b.scrollMin,d=b.scrollMax;b=this.scrollbar;var l=this.axisTitleMargin+(this.titleOffset||0),k=this.chart.scrollbarsOffsets,r=this.options.margin|| 0;b&&(this.horiz?(this.opposite||(k[1]+=l),b.position(this.left,this.top+this.height+2+k[1]-(this.opposite?r:0),this.width,this.height),this.opposite||(k[1]+=r),l=1):(this.opposite&&(k[0]+=l),b.position(b.options.opposite?this.left+this.width+2+k[0]-(this.opposite?0:r):this.opposite?0:r,this.top,this.width,this.height),this.opposite&&(k[0]+=r),l=0),k[l]+=b.size+b.options.margin,isNaN(a)||isNaN(d)||!A(this.min)||!A(this.max)||this.min===this.max?b.setRange(0,1):(k=(this.min-a)/(d-a),a=(this.max-a)/ (d-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?b.setRange(k,a):b.setRange(1-a,1-k)))});v(r,"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 r};a.composed=[];return a}()});J(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}});J(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,v,A,l,y){var r=a.defaultOptions,D=y.addEvent,t=y.correctFloat,b=y.defined,m=y.destroyObjectProperties,d=y.fireEvent,C=y.merge,k=y.pick,K=y.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){A.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,k=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)],[k,"click",this.trackClick.bind(this)],[d,"mousedown",l],[d.ownerDocument,"mousemove",m],[d.ownerDocument,"mouseup",t]];v.hasTouch&&a.push([d,"touchstart",l],[d.ownerDocument,"touchmove",m],[d.ownerDocument,"touchend",t]);a.forEach(function(a){D.apply(null,a)});this._events=a};a.prototype.buttonToMaxClick=function(a){var b=(this.to-this.from)*k(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=t(this.to-this.from)*k(this.options.step,.2);this.updatePosition(t(this.from-b),t(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,k=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:k.buttonBorderColor,"stroke-width":k.buttonBorderWidth,fill:k.buttonBackgroundColor});m.attr(m.crisp({x:-.5,y:-.5,width:l+1,height:l+1,r:k.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]],k.vertical)).addClass("highcharts-scrollbar-arrow").add(q[b]);this.chart.styledMode||m.attr({fill:k.buttonArrowColor})};a.prototype.init=function(a,b,d){this.scrollbarButtons=[];this.renderer=a; this.userOptions=b;this.options=C(l,r.scrollbar,b);this.chart=d;this.size=k(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.initPo