UNPKG

highcharts

Version:
107 lines (104 loc) 98 kB
/* Highcharts JS v10.0.0 (2022-03-07) Annotations module (c) 2009-2021 Torstein Honsi License: www.highcharts.com/license */ (function(c){"object"===typeof module&&module.exports?(c["default"]=c,module.exports=c):"function"===typeof define&&define.amd?define("highcharts/modules/annotations-advanced",["highcharts"],function(v){c(v);c.Highcharts=v;return c}):c("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(c){function v(g,c,n,k){g.hasOwnProperty(c)||(g[c]=k.apply(null,n),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:c,module:g[c]}})))}c=c?c._modules: {};v(c,"Extensions/Annotations/Mixins/EventEmitterMixin.js",[c["Core/Globals.js"],c["Core/Utilities.js"]],function(g,c){var l=c.addEvent,k=c.fireEvent,r=c.objectEach,m=c.pick,e=c.removeEvent;return{addEvents:function(){var a=this,b=function(b){l(b,g.isTouchDevice?"touchstart":"mousedown",function(b){a.onMouseDown(b)},{passive:!1})};b(this.graphic.element);(a.labels||[]).forEach(function(d){d.options.useHTML&&d.graphic.text&&b(d.graphic.text.element)});r(a.options.events,function(b,d){var f=function(f){"click"=== d&&a.cancelClick||b.call(a,a.chart.pointer.normalize(f),a.target)};if(-1===(a.nonDOMEvents||[]).indexOf(d))a.graphic.on(d,f);else l(a,d,f,{passive:!1})});if(a.options.draggable&&(l(a,"drag",a.onDrag),!a.graphic.renderer.styledMode)){var d={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[a.options.draggable]};a.graphic.css(d);(a.labels||[]).forEach(function(b){b.options.useHTML&&b.graphic.text&&b.graphic.text.css(d)})}a.isUpdating||k(a,"add")},removeDocEvents:function(){this.removeDrag&&(this.removeDrag= this.removeDrag());this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())},onMouseDown:function(a){var b=this,d=b.chart.pointer;a.preventDefault&&a.preventDefault();if(2!==a.button){a=d.normalize(a);var f=a.chartX;var h=a.chartY;b.cancelClick=!1;b.chart.hasDraggedAnnotation=!0;b.removeDrag=l(g.doc,g.isTouchDevice?"touchmove":"mousemove",function(a){b.hasDragged=!0;a=d.normalize(a);a.prevChartX=f;a.prevChartY=h;k(b,"drag",a);f=a.chartX;h=a.chartY},g.isTouchDevice?{passive:!1}:void 0);b.removeMouseUp= l(g.doc,g.isTouchDevice?"touchend":"mouseup",function(d){var a=m(b.target&&b.target.annotation,b.target);a&&(a.cancelClick=b.hasDragged);b.cancelClick=b.hasDragged;b.hasDragged=!1;b.chart.hasDraggedAnnotation=!1;k(m(a,b),"afterUpdate");b.onMouseUp(d)},g.isTouchDevice?{passive:!1}:void 0)}},onMouseUp:function(a){var b=this.chart;a=this.target||this;var d=b.options.annotations;b=b.annotations.indexOf(a);this.removeDocEvents();d[b]=a.options},onDrag:function(a){if(this.chart.isInsidePlot(a.chartX-this.chart.plotLeft, a.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){var b=this.mouseMoveToTranslation(a);"x"===this.options.draggable&&(b.y=0);"y"===this.options.draggable&&(b.x=0);this.points.length?this.translate(b.x,b.y):(this.shapes.forEach(function(d){d.translate(b.x,b.y)}),this.labels.forEach(function(d){d.translate(b.x,b.y)}));this.redraw(!1)}},mouseMoveToRadians:function(a,b,d){var f=a.prevChartY-d,h=a.prevChartX-b;d=a.chartY-d;a=a.chartX-b;this.chart.inverted&&(b=h,h=f,f=b,b=a,a=d,d=b);return Math.atan2(d, a)-Math.atan2(f,h)},mouseMoveToTranslation:function(a){var b=a.chartX-a.prevChartX;a=a.chartY-a.prevChartY;if(this.chart.inverted){var d=a;a=b;b=d}return{x:b,y:a}},mouseMoveToScale:function(a,b,d){b=(a.chartX-b||1)/(a.prevChartX-b||1);a=(a.chartY-d||1)/(a.prevChartY-d||1);this.chart.inverted&&(d=a,a=b,b=d);return{x:b,y:a}},destroy:function(){this.removeDocEvents();e(this);this.hcEvents=null}}});v(c,"Extensions/Annotations/ControlPoint.js",[c["Core/Utilities.js"],c["Extensions/Annotations/Mixins/EventEmitterMixin.js"]], function(g,c){var l=g.merge,k=g.pick;return function(){function g(g,e,a,b){this.addEvents=c.addEvents;this.graphic=void 0;this.mouseMoveToRadians=c.mouseMoveToRadians;this.mouseMoveToScale=c.mouseMoveToScale;this.mouseMoveToTranslation=c.mouseMoveToTranslation;this.onDrag=c.onDrag;this.onMouseDown=c.onMouseDown;this.onMouseUp=c.onMouseUp;this.removeDocEvents=c.removeDocEvents;this.nonDOMEvents=["drag"];this.chart=g;this.target=e;this.options=a;this.index=k(a.index,b)}g.prototype.setVisibility=function(g){this.graphic.attr("visibility", g?"visible":"hidden");this.options.visible=g};g.prototype.render=function(){var g=this.chart,e=this.options;this.graphic=g.renderer.symbol(e.symbol,0,0,e.width,e.height).add(g.controlPointsGroup).css(e.style);this.setVisibility(e.visible);this.addEvents()};g.prototype.redraw=function(g){this.graphic[g?"animate":"attr"](this.options.positioner.call(this,this.target))};g.prototype.destroy=function(){c.destroy.call(this);this.graphic&&(this.graphic=this.graphic.destroy());this.options=this.target=this.chart= null};g.prototype.update=function(g){var e=this.chart,a=this.target,b=this.index;g=l(!0,this.options,g);this.destroy();this.constructor(e,a,g,b);this.render(e.controlPointsGroup);this.redraw()};return g}()});v(c,"Extensions/Annotations/MockPoint.js",[c["Core/Series/Series.js"],c["Core/Utilities.js"],c["Core/Axis/Axis.js"]],function(g,c,n){var l=c.defined,r=c.fireEvent;return function(){function c(e,a,b){this.y=this.x=this.ttBelow=this.plotY=this.plotX=this.negative=this.isInside=void 0;this.mock= !0;this.series={visible:!0,chart:e,getPlotBox:g.prototype.getPlotBox};this.target=a||null;this.options=b;this.applyOptions(this.getOptions())}c.fromPoint=function(e){return new c(e.series.chart,null,{x:e.x,y:e.y,xAxis:e.series.xAxis,yAxis:e.series.yAxis})};c.pointToPixels=function(e,a){var b=e.series,d=b.chart,f=e.plotX,h=e.plotY;d.inverted&&(e.mock?(f=e.plotY,h=e.plotX):(f=d.plotWidth-e.plotY,h=d.plotHeight-e.plotX));b&&!a&&(e=b.getPlotBox(),f+=e.translateX,h+=e.translateY);return{x:f,y:h}};c.pointToOptions= function(e){return{x:e.x,y:e.y,xAxis:e.series.xAxis,yAxis:e.series.yAxis}};c.prototype.hasDynamicOptions=function(){return"function"===typeof this.options};c.prototype.getOptions=function(){return this.hasDynamicOptions()?this.options(this.target):this.options};c.prototype.applyOptions=function(e){this.command=e.command;this.setAxis(e,"x");this.setAxis(e,"y");this.refresh()};c.prototype.setAxis=function(e,a){a+="Axis";e=e[a];var b=this.series.chart;this.series[a]=e instanceof n?e:l(e)?b[a][e]||b.get(e): null};c.prototype.toAnchor=function(){var e=[this.plotX,this.plotY,0,0];this.series.chart.inverted&&(e[0]=this.plotY,e[1]=this.plotX);return e};c.prototype.getLabelConfig=function(){return{x:this.x,y:this.y,point:this}};c.prototype.isInsidePlot=function(){var e=this.plotX,a=this.plotY,b=this.series.xAxis,d=this.series.yAxis,f={x:e,y:a,isInsidePlot:!0};b&&(f.isInsidePlot=l(e)&&0<=e&&e<=b.len);d&&(f.isInsidePlot=f.isInsidePlot&&l(a)&&0<=a&&a<=d.len);r(this.series.chart,"afterIsInsidePlot",f);return f.isInsidePlot}; c.prototype.refresh=function(){var e=this.series,a=e.xAxis;e=e.yAxis;var b=this.getOptions();a?(this.x=b.x,this.plotX=a.toPixels(b.x,!0)):(this.x=void 0,this.plotX=b.x);e?(this.y=b.y,this.plotY=e.toPixels(b.y,!0)):(this.y=null,this.plotY=b.y);this.isInside=this.isInsidePlot()};c.prototype.translate=function(e,a,b,d){this.hasDynamicOptions()||(this.plotX+=b,this.plotY+=d,this.refreshOptions())};c.prototype.scale=function(e,a,b,d){if(!this.hasDynamicOptions()){var f=this.plotY*d;this.plotX=(1-b)*e+ this.plotX*b;this.plotY=(1-d)*a+f;this.refreshOptions()}};c.prototype.rotate=function(e,a,b){if(!this.hasDynamicOptions()){var d=Math.cos(b);b=Math.sin(b);var f=this.plotX,h=this.plotY;f-=e;h-=a;this.plotX=f*d-h*b+e;this.plotY=f*b+h*d+a;this.refreshOptions()}};c.prototype.refreshOptions=function(){var e=this.series,a=e.xAxis;e=e.yAxis;this.x=this.options.x=a?this.options.x=a.toValue(this.plotX,!0):this.plotX;this.y=this.options.y=e?e.toValue(this.plotY,!0):this.plotY};return c}()});v(c,"Extensions/Annotations/Mixins/ControllableMixin.js", [c["Extensions/Annotations/ControlPoint.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Tooltip.js"],c["Core/Utilities.js"]],function(g,c,n,k){var l=k.isObject,m=k.isString,e=k.merge,a=k.splat;return{init:function(b,d,a){this.annotation=b;this.chart=b.chart;this.options=d;this.points=[];this.controlPoints=[];this.index=a;this.linkPoints();this.addControlPoints()},attr:function(){this.graphic.attr.apply(this.graphic,arguments)},getPointsOptions:function(){var b=this.options;return b.points|| b.point&&a(b.point)},attrsFromOptions:function(b){var d=this.constructor.attrsMap,a={},h,q=this.chart.styledMode;for(h in b){var e=d[h];!e||q&&-1!==["fill","stroke","stroke-width"].indexOf(e)||(a[e]=b[h])}return a},anchor:function(b){var d=b.series.getPlotBox(),a=b.series.chart,h=b.mock?b.toAnchor():n.prototype.getAnchor.call({chart:b.series.chart},b);h={x:h[0]+(this.options.x||0),y:h[1]+(this.options.y||0),height:h[2]||0,width:h[3]||0};return{relativePosition:h,absolutePosition:e(h,{x:h.x+(b.mock? d.translateX:a.plotLeft),y:h.y+(b.mock?d.translateY:a.plotTop)})}},point:function(b,d){if(b&&b.series)return b;d&&null!==d.series||(l(b)?d=new c(this.chart,this,b):m(b)?d=this.chart.get(b)||null:"function"===typeof b&&(d=b.call(d,this),d=d.series?d:new c(this.chart,this,b)));return d},linkPoints:function(){var b=this.getPointsOptions(),d=this.points,a=b&&b.length||0,h;for(h=0;h<a;h++){var q=this.point(b[h],d[h]);if(!q){d.length=0;return}q.mock&&q.refresh();d[h]=q}return d},addControlPoints:function(){var b= this.options.controlPoints;(b||[]).forEach(function(d,a){d=e(this.options.controlPointOptions,d);d.index||(d.index=a);b[a]=d;this.controlPoints.push(new g(this.chart,this,d))},this)},shouldBeDrawn:function(){return!!this.points.length},render:function(b){this.controlPoints.forEach(function(b){b.render()})},redraw:function(b){this.controlPoints.forEach(function(d){d.redraw(b)})},transform:function(b,d,a,h,q){if(this.chart.inverted){var f=d;d=a;a=f}this.points.forEach(function(f,e){this.transformPoint(b, d,a,h,q,e)},this)},transformPoint:function(b,d,a,h,q,e){var f=this.points[e];f.mock||(f=this.points[e]=c.fromPoint(f));f[b](d,a,h,q)},translate:function(b,a){this.transform("translate",null,null,b,a)},translatePoint:function(b,a,f){this.transformPoint("translate",null,null,b,a,f)},translateShape:function(b,a,f){var d=this.annotation.chart,q=this.annotation.userOptions,e=d.annotations.indexOf(this.annotation);d=d.options.annotations[e];this.translatePoint(b,a,0);f&&this.translatePoint(b,a,1);d[this.collection][this.index].point= this.options.point;q[this.collection][this.index].point=this.options.point},rotate:function(b,a,f){this.transform("rotate",b,a,f)},scale:function(b,a,f,h){this.transform("scale",b,a,f,h)},setControlPointsVisibility:function(b){this.controlPoints.forEach(function(a){a.setVisibility(b)})},destroy:function(){this.graphic&&(this.graphic=this.graphic.destroy());this.tracker&&(this.tracker=this.tracker.destroy());this.controlPoints.forEach(function(b){b.destroy()});this.options=this.controlPoints=this.points= this.chart=null;this.annotation&&(this.annotation=null)},update:function(b){var a=this.annotation;b=e(!0,this.options,b);var f=this.graphic.parentGroup;this.destroy();this.constructor(a,b,this.index);this.render(f);this.redraw()}}});v(c,"Extensions/Annotations/Mixins/MarkerMixin.js",[c["Core/Chart/Chart.js"],c["Core/Renderer/SVG/SVGRenderer.js"],c["Core/Utilities.js"]],function(g,c,n){function l(b){return function(a){this.attr(b,"url(#"+a+")")}}var r=n.addEvent,m=n.defined,e=n.merge,a=n.uniqueKey, b={arrow:{tagName:"marker",attributes:{id:"arrow",refY:5,refX:9,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 0 L 10 5 L 0 10 Z","stroke-width":0}}]},"reverse-arrow":{tagName:"marker",attributes:{id:"reverse-arrow",refY:5,refX:1,markerWidth:10,markerHeight:10},children:[{tagName:"path",attributes:{d:"M 0 5 L 10 0 L 10 10 Z","stroke-width":0}}]}};c.prototype.addMarker=function(b,a){var d={attributes:{id:b}},f={stroke:a.color||"none",fill:a.color||"rgba(0, 0, 0, 0.75)"}; d.children=a.children&&a.children.map(function(b){return e(f,b)});a=e(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},a,d);a=this.definition(a);a.id=b;return a};c={markerEndSetter:l("marker-end"),markerStartSetter:l("marker-start"),setItemMarkers:function(b){var d=b.options,h=b.chart,q=h.options.defs,p=d.fill,g=m(p)&&"none"!==p?p:d.stroke;["markerStart","markerEnd"].forEach(function(f){var p=d[f],c;if(p){for(c in q){var u=q[c];if((p===(u.attributes&&u.attributes.id)|| p===u.id)&&"marker"===u.tagName){var G=u;break}}G&&(p=b[f]=h.renderer.addMarker((d.id||a())+"-"+p,e(G,{color:g})),b.attr(f,p.getAttribute("id")))}})}};r(g,"afterGetContainer",function(){this.options.defs=e(b,this.options.defs||{})});return c});v(c,"Extensions/Annotations/Controllables/ControllablePath.js",[c["Extensions/Annotations/Mixins/ControllableMixin.js"],c["Core/Globals.js"],c["Extensions/Annotations/Mixins/MarkerMixin.js"],c["Core/Utilities.js"]],function(g,c,n,k){var l=k.extend,m="rgba(192,192,192,"+ (c.svg?.0001:.002)+")";return function(){function e(a,b,d){this.addControlPoints=g.addControlPoints;this.anchor=g.anchor;this.attr=g.attr;this.attrsFromOptions=g.attrsFromOptions;this.destroy=g.destroy;this.getPointsOptions=g.getPointsOptions;this.init=g.init;this.linkPoints=g.linkPoints;this.point=g.point;this.rotate=g.rotate;this.scale=g.scale;this.setControlPointsVisibility=g.setControlPointsVisibility;this.setMarkers=n.setItemMarkers;this.transform=g.transform;this.transformPoint=g.transformPoint; this.translate=g.translate;this.translatePoint=g.translatePoint;this.translateShape=g.translateShape;this.update=g.update;this.type="path";this.init(a,b,d);this.collection="shapes"}e.prototype.toD=function(){var a=this.options.d;if(a)return"function"===typeof a?a.call(this):a;a=this.points;var b=a.length,d=b,f=a[0],h=d&&this.anchor(f).absolutePosition,q=0,e=[];if(h)for(e.push(["M",h.x,h.y]);++q<b&&d;)f=a[q],d=f.command||"L",h=this.anchor(f).absolutePosition,"M"===d?e.push([d,h.x,h.y]):"L"===d?e.push([d, h.x,h.y]):"Z"===d&&e.push([d]),d=f.series.visible;return d?this.chart.renderer.crispLine(e,this.graphic.strokeWidth()):null};e.prototype.shouldBeDrawn=function(){return g.shouldBeDrawn.call(this)||!!this.options.d};e.prototype.render=function(a){var b=this.options,d=this.attrsFromOptions(b);this.graphic=this.annotation.chart.renderer.path([["M",0,0]]).attr(d).add(a);b.className&&this.graphic.addClass(b.className);this.tracker=this.annotation.chart.renderer.path([["M",0,0]]).addClass("highcharts-tracker-line").attr({zIndex:2}).add(a); this.annotation.chart.styledMode||this.tracker.attr({"stroke-linejoin":"round",stroke:m,fill:m,"stroke-width":this.graphic.strokeWidth()+2*b.snap});g.render.call(this);l(this.graphic,{markerStartSetter:n.markerStartSetter,markerEndSetter:n.markerEndSetter});this.setMarkers(this)};e.prototype.redraw=function(a){var b=this.toD(),d=a?"animate":"attr";b?(this.graphic[d]({d:b}),this.tracker[d]({d:b})):(this.graphic.attr({d:"M 0 -9000000000"}),this.tracker.attr({d:"M 0 -9000000000"}));this.graphic.placed= this.tracker.placed=!!b;g.redraw.call(this,a)};e.attrsMap={dashStyle:"dashstyle",strokeWidth:"stroke-width",stroke:"stroke",fill:"fill",zIndex:"zIndex"};return e}()});v(c,"Extensions/Annotations/Controllables/ControllableRect.js",[c["Extensions/Annotations/Mixins/ControllableMixin.js"],c["Extensions/Annotations/Controllables/ControllablePath.js"],c["Core/Utilities.js"]],function(g,c,n){var l=n.merge;return function(){function k(c,e,a){this.addControlPoints=g.addControlPoints;this.anchor=g.anchor; this.attr=g.attr;this.attrsFromOptions=g.attrsFromOptions;this.destroy=g.destroy;this.getPointsOptions=g.getPointsOptions;this.init=g.init;this.linkPoints=g.linkPoints;this.point=g.point;this.rotate=g.rotate;this.scale=g.scale;this.setControlPointsVisibility=g.setControlPointsVisibility;this.shouldBeDrawn=g.shouldBeDrawn;this.transform=g.transform;this.transformPoint=g.transformPoint;this.translatePoint=g.translatePoint;this.translateShape=g.translateShape;this.update=g.update;this.type="rect";this.translate= g.translateShape;this.init(c,e,a);this.collection="shapes"}k.prototype.render=function(c){var e=this.attrsFromOptions(this.options);this.graphic=this.annotation.chart.renderer.rect(0,-9E9,0,0).attr(e).add(c);g.render.call(this)};k.prototype.redraw=function(c){var e=this.anchor(this.points[0]).absolutePosition;if(e)this.graphic[c?"animate":"attr"]({x:e.x,y:e.y,width:this.options.width,height:this.options.height});else this.attr({x:0,y:-9E9});this.graphic.placed=!!e;g.redraw.call(this,c)};k.attrsMap= l(c.attrsMap,{width:"width",height:"height"});return k}()});v(c,"Extensions/Annotations/Controllables/ControllableCircle.js",[c["Extensions/Annotations/Mixins/ControllableMixin.js"],c["Extensions/Annotations/Controllables/ControllablePath.js"],c["Core/Utilities.js"]],function(c,l,n){var g=n.merge;return function(){function k(g,e,a){this.addControlPoints=c.addControlPoints;this.anchor=c.anchor;this.attr=c.attr;this.attrsFromOptions=c.attrsFromOptions;this.destroy=c.destroy;this.getPointsOptions=c.getPointsOptions; this.init=c.init;this.linkPoints=c.linkPoints;this.point=c.point;this.rotate=c.rotate;this.scale=c.scale;this.setControlPointsVisibility=c.setControlPointsVisibility;this.shouldBeDrawn=c.shouldBeDrawn;this.transform=c.transform;this.transformPoint=c.transformPoint;this.translatePoint=c.translatePoint;this.translateShape=c.translateShape;this.update=c.update;this.type="circle";this.translate=c.translateShape;this.init(g,e,a);this.collection="shapes"}k.prototype.render=function(g){var e=this.attrsFromOptions(this.options); this.graphic=this.annotation.chart.renderer.circle(0,-9E9,0).attr(e).add(g);c.render.call(this)};k.prototype.redraw=function(g){var e=this.anchor(this.points[0]).absolutePosition;if(e)this.graphic[g?"animate":"attr"]({x:e.x,y:e.y,r:this.options.r});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!e;c.redraw.call(this,g)};k.prototype.setRadius=function(c){this.options.r=c};k.attrsMap=g(l.attrsMap,{r:"r"});return k}()});v(c,"Extensions/Annotations/Controllables/ControllableEllipse.js",[c["Extensions/Annotations/Mixins/ControllableMixin.js"], c["Extensions/Annotations/Controllables/ControllablePath.js"],c["Core/Utilities.js"]],function(c,l,n){var g=n.merge,r=n.defined;return function(){function m(e,a,b){this.addControlPoints=c.addControlPoints;this.anchor=c.anchor;this.attr=c.attr;this.attrsFromOptions=c.attrsFromOptions;this.destroy=c.destroy;this.getPointsOptions=c.getPointsOptions;this.linkPoints=c.linkPoints;this.point=c.point;this.scale=c.scale;this.setControlPointsVisibility=c.setControlPointsVisibility;this.shouldBeDrawn=c.shouldBeDrawn; this.transform=c.transform;this.translatePoint=c.translatePoint;this.transformPoint=c.transformPoint;this.type="ellipse";this.init(e,a,b);this.collection="shapes"}m.prototype.init=function(e,a,b){r(a.yAxis)&&a.points.forEach(function(b){b.yAxis=a.yAxis});r(a.xAxis)&&a.points.forEach(function(b){b.xAxis=a.xAxis});c.init.call(this,e,a,b)};m.prototype.render=function(e){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(e);c.render.call(this)}; m.prototype.translate=function(e,a){c.translateShape.call(this,e,a,!0)};m.prototype.getDistanceFromLine=function(e,a,b,d){return Math.abs((a.y-e.y)*b-(a.x-e.x)*d+a.x*e.y-a.y*e.x)/Math.sqrt((a.y-e.y)*(a.y-e.y)+(a.x-e.x)*(a.x-e.x))};m.prototype.getAttrs=function(e,a){var b=e.x,d=e.y,f=a.x,h=a.y;a=(b+f)/2;e=(d+h)/2;var q=Math.sqrt((b-f)*(b-f)/4+(d-h)*(d-h)/4);d=180*Math.atan((h-d)/(f-b))/Math.PI;a<b&&(d+=180);b=this.getRY();return{cx:a,cy:e,rx:q,ry:b,angle:d}};m.prototype.getRY=function(){var e=this.getYAxis(); return r(e)?Math.abs(e.toPixels(this.options.ry)-e.toPixels(0)):this.options.ry};m.prototype.getYAxis=function(){return this.chart.yAxis[this.options.yAxis]};m.prototype.getAbsolutePosition=function(e){return this.anchor(e).absolutePosition};m.prototype.redraw=function(e){var a=this.getAbsolutePosition(this.points[0]),b=this.getAbsolutePosition(this.points[1]);b=this.getAttrs(a,b);if(a)this.graphic[e?"animate":"attr"]({cx:b.cx,cy:b.cy,rx:b.rx,ry:b.ry,rotation:b.angle,rotationOriginX:b.cx,rotationOriginY:b.cy}); else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!a;c.redraw.call(this,e)};m.prototype.setYRadius=function(e){this.options.ry=e;this.annotation.userOptions.shapes[0].ry=e;this.annotation.options.shapes[0].ry=e};m.attrsMap=g(l.attrsMap,{ry:"ry"});return m}()});v(c,"Extensions/Annotations/Controllables/ControllableLabel.js",[c["Extensions/Annotations/Mixins/ControllableMixin.js"],c["Core/FormatUtilities.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Renderer/SVG/SVGRenderer.js"],c["Core/Tooltip.js"], c["Core/Utilities.js"]],function(c,l,n,k,r,m){var e=l.format;l=k.prototype.symbols;var a=m.extend,b=m.isNumber,d=m.pick;m=function(){function b(b,a,d){this.addControlPoints=c.addControlPoints;this.attr=c.attr;this.attrsFromOptions=c.attrsFromOptions;this.destroy=c.destroy;this.getPointsOptions=c.getPointsOptions;this.init=c.init;this.linkPoints=c.linkPoints;this.point=c.point;this.rotate=c.rotate;this.scale=c.scale;this.setControlPointsVisibility=c.setControlPointsVisibility;this.shouldBeDrawn=c.shouldBeDrawn; this.transform=c.transform;this.transformPoint=c.transformPoint;this.translateShape=c.translateShape;this.update=c.update;this.init(b,a,d);this.collection="labels"}b.alignedPosition=function(b,a){var d=b.align,f=b.verticalAlign,q=(a.x||0)+(b.x||0),h=(a.y||0)+(b.y||0),e,c;"right"===d?e=1:"center"===d&&(e=2);e&&(q+=(a.width-(b.width||0))/e);"bottom"===f?c=1:"middle"===f&&(c=2);c&&(h+=(a.height-(b.height||0))/c);return{x:Math.round(q),y:Math.round(h)}};b.justifiedOptions=function(b,a,d,f){var h=d.align, q=d.verticalAlign,e=a.box?0:a.padding||0,c=a.getBBox();a={align:h,verticalAlign:q,x:d.x,y:d.y,width:a.width,height:a.height};d=(f.x||0)-b.plotLeft;f=(f.y||0)-b.plotTop;var p=d+e;0>p&&("right"===h?a.align="left":a.x=(a.x||0)-p);p=d+c.width-e;p>b.plotWidth&&("left"===h?a.align="right":a.x=(a.x||0)+b.plotWidth-p);p=f+e;0>p&&("bottom"===q?a.verticalAlign="top":a.y=(a.y||0)-p);p=f+c.height-e;p>b.plotHeight&&("top"===q?a.verticalAlign="bottom":a.y=(a.y||0)+b.plotHeight-p);return a};b.prototype.translatePoint= function(b,a){c.translatePoint.call(this,b,a,0)};b.prototype.translate=function(b,a){var d=this.annotation.chart,f=this.annotation.userOptions,h=d.annotations.indexOf(this.annotation);h=d.options.annotations[h];d.inverted&&(d=b,b=a,a=d);this.options.x+=b;this.options.y+=a;h[this.collection][this.index].x=this.options.x;h[this.collection][this.index].y=this.options.y;f[this.collection][this.index].x=this.options.x;f[this.collection][this.index].y=this.options.y};b.prototype.render=function(a){var d= this.options,f=this.attrsFromOptions(d),h=d.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,d.shape,null,null,d.useHTML,null,"annotation-label").attr(f).add(a);this.annotation.chart.styledMode||("contrast"===h.color&&(h.color=this.annotation.chart.renderer.getContrast(-1<b.shapesWithoutBackground.indexOf(d.shape)?"#FFFFFF":d.backgroundColor)),this.graphic.css(d.style).shadow(d.shadow));d.className&&this.graphic.addClass(d.className);this.graphic.labelrank=d.labelrank;c.render.call(this)}; b.prototype.redraw=function(b){var a=this.options,d=this.text||a.format||a.text,f=this.graphic,h=this.points[0];f.attr({text:d?e(d,h.getLabelConfig(),this.annotation.chart):a.formatter.call(h,this)});a=this.anchor(h);(d=this.position(a))?(f.alignAttr=d,d.anchorX=a.absolutePosition.x,d.anchorY=a.absolutePosition.y,f[b?"animate":"attr"](d)):f.attr({x:0,y:-9999});f.placed=!!d;c.redraw.call(this,b)};b.prototype.anchor=function(b){var a=c.anchor.apply(this,arguments),d=this.options.x||0,f=this.options.y|| 0;a.absolutePosition.x-=d;a.absolutePosition.y-=f;a.relativePosition.x-=d;a.relativePosition.y-=f;return a};b.prototype.position=function(f){var h=this.graphic,e=this.annotation.chart,c=this.points[0],g=this.options,l=f.absolutePosition,m=f.relativePosition,k=c.series.visible&&n.prototype.isInsidePlot.call(c);f=h.width;f=void 0===f?0:f;var y=h.height;y=void 0===y?0:y;if(k){if(g.distance)var A=r.prototype.getPosition.call({chart:e,distance:d(g.distance,16)},f,y,{plotX:m.x,plotY:m.y,negative:c.negative, ttBelow:c.ttBelow,h:m.height||m.width});else g.positioner?A=g.positioner.call(this):(c={x:l.x,y:l.y,width:0,height:0},A=b.alignedPosition(a(g,{width:f,height:y}),c),"justify"===this.options.overflow&&(A=b.alignedPosition(b.justifiedOptions(e,h,g,A),c)));g.crop&&(h=A.x-e.plotLeft,g=A.y-e.plotTop,k=e.isInsidePlot(h,g)&&e.isInsidePlot(h+f,g+y))}return k?A:null};b.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"};b.shapesWithoutBackground= ["connector"];return b}();l.connector=function(a,d,e,c,u){var f=u&&u.anchorX;u=u&&u.anchorY;var h=e/2;if(b(f)&&b(u)){var q=[["M",f,u]];var p=d-u;0>p&&(p=-c-p);p<e&&(h=f<a+e/2?p:e-p);u>d+c?q.push(["L",a+h,d+c]):u<d?q.push(["L",a+h,d]):f<a?q.push(["L",a,d+c/2]):f>a+e&&q.push(["L",a+e,d+c/2])}return q||[]};return m});v(c,"Extensions/Annotations/Controllables/ControllableImage.js",[c["Extensions/Annotations/Controllables/ControllableLabel.js"],c["Extensions/Annotations/Mixins/ControllableMixin.js"]], function(c,l){return function(){function g(c,g,m){this.addControlPoints=l.addControlPoints;this.anchor=l.anchor;this.attr=l.attr;this.attrsFromOptions=l.attrsFromOptions;this.destroy=l.destroy;this.getPointsOptions=l.getPointsOptions;this.init=l.init;this.linkPoints=l.linkPoints;this.point=l.point;this.rotate=l.rotate;this.scale=l.scale;this.setControlPointsVisibility=l.setControlPointsVisibility;this.shouldBeDrawn=l.shouldBeDrawn;this.transform=l.transform;this.transformPoint=l.transformPoint;this.translatePoint= l.translatePoint;this.translateShape=l.translateShape;this.update=l.update;this.type="image";this.translate=l.translateShape;this.init(c,g,m);this.collection="shapes"}g.prototype.render=function(c){var g=this.attrsFromOptions(this.options),m=this.options;this.graphic=this.annotation.chart.renderer.image(m.src,0,-9E9,m.width,m.height).attr(g).add(c);this.graphic.width=m.width;this.graphic.height=m.height;l.render.call(this)};g.prototype.redraw=function(g){var k=this.anchor(this.points[0]);if(k=c.prototype.position.call(this, k))this.graphic[g?"animate":"attr"]({x:k.x,y:k.y});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!k;l.redraw.call(this,g)};g.attrsMap={width:"width",height:"height",zIndex:"zIndex"};return g}()});v(c,"Extensions/Annotations/Annotations.js",[c["Core/Animation/AnimationUtilities.js"],c["Core/Chart/Chart.js"],c["Extensions/Annotations/Mixins/ControllableMixin.js"],c["Extensions/Annotations/Controllables/ControllableRect.js"],c["Extensions/Annotations/Controllables/ControllableCircle.js"], c["Extensions/Annotations/Controllables/ControllableEllipse.js"],c["Extensions/Annotations/Controllables/ControllablePath.js"],c["Extensions/Annotations/Controllables/ControllableImage.js"],c["Extensions/Annotations/Controllables/ControllableLabel.js"],c["Extensions/Annotations/ControlPoint.js"],c["Extensions/Annotations/Mixins/EventEmitterMixin.js"],c["Core/Globals.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Pointer.js"],c["Core/Utilities.js"]],function(c,l,n,k,r,m,e,a,b,d,f,h,q,p,u){var g= c.getDeferredAnimation;c=l.prototype;var B=u.addEvent,C=u.defined,z=u.destroyObjectProperties,y=u.erase,A=u.extend,D=u.find,w=u.fireEvent,x=u.merge,t=u.pick,F=u.splat;u=u.wrap;var E=function(){function h(a,b){this.annotation=void 0;this.coll="annotations";this.shapesGroup=this.labelsGroup=this.labelCollector=this.group=this.graphic=this.animationConfig=this.collection=void 0;this.chart=a;this.points=[];this.controlPoints=[];this.coll="annotations";this.labels=[];this.shapes=[];this.options=x(this.defaultOptions, b);this.userOptions=b;b=this.getLabelsAndShapesOptions(this.options,b);this.options.labels=b.labels;this.options.shapes=b.shapes;this.init(a,this.options)}h.prototype.init=function(){var a=this.chart,b=this.options.animation;this.linkPoints();this.addControlPoints();this.addShapes();this.addLabels();this.setLabelCollector();this.animationConfig=g(a,b)};h.prototype.getLabelsAndShapesOptions=function(a,b){var d={};["labels","shapes"].forEach(function(f){a[f]&&(d[f]=b[f]?F(b[f]).map(function(b,d){return x(a[f][d], b)}):a[f])});return d};h.prototype.addShapes=function(){(this.options.shapes||[]).forEach(function(a,b){a=this.initShape(a,b);x(!0,this.options.shapes[b],a.options)},this)};h.prototype.addLabels=function(){(this.options.labels||[]).forEach(function(a,b){a=this.initLabel(a,b);x(!0,this.options.labels[b],a.options)},this)};h.prototype.addClipPaths=function(){this.setClipAxes();this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))};h.prototype.setClipAxes= function(){var a=this.chart.xAxis,b=this.chart.yAxis,d=(this.options.labels||[]).concat(this.options.shapes||[]).reduce(function(d,f){f=f&&(f.point||f.points&&f.points[0]);return[a[f&&f.xAxis]||d[0],b[f&&f.yAxis]||d[1]]},[]);this.clipXAxis=d[0];this.clipYAxis=d[1]};h.prototype.getClipBox=function(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}};h.prototype.setLabelCollector=function(){var a=this;a.labelCollector= function(){return a.labels.reduce(function(a,b){b.options.allowOverlap||a.push(b.graphic);return a},[])};a.chart.labelCollectors.push(a.labelCollector)};h.prototype.setOptions=function(a){this.options=x(this.defaultOptions,a)};h.prototype.redraw=function(a){this.linkPoints();this.graphic||this.render();this.clipRect&&this.clipRect.animate(this.getClipBox());this.redrawItems(this.shapes,a);this.redrawItems(this.labels,a);n.redraw.call(this,a)};h.prototype.redrawItems=function(a,b){for(var d=a.length;d--;)this.redrawItem(a[d], b)};h.prototype.renderItems=function(a){for(var b=a.length;b--;)this.renderItem(a[b])};h.prototype.render=function(){var a=this.chart.renderer;this.graphic=a.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"visible":"hidden"}).add();this.shapesGroup=a.g("annotation-shapes").add(this.graphic);this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip);this.labelsGroup=a.g("annotation-labels").attr({translateX:0,translateY:0}).add(this.graphic);this.addClipPaths(); this.clipRect&&this.graphic.clip(this.clipRect);this.renderItems(this.shapes);this.renderItems(this.labels);this.addEvents();n.render.call(this)};h.prototype.setVisibility=function(a){var b=this.options,d=this.chart.navigationBindings;a=t(a,!b.visible);this.graphic.attr("visibility",a?"visible":"hidden");a||(this.setControlPointsVisibility(!1),d.activeAnnotation===this&&d.popup&&"annotation-toolbar"===d.popup.formType&&w(d,"closePopup"));b.visible=a};h.prototype.setControlPointsVisibility=function(a){var b= function(b){b.setControlPointsVisibility(a)};n.setControlPointsVisibility.call(this,a);this.shapes.forEach(b);this.labels.forEach(b)};h.prototype.destroy=function(){var a=this.chart,b=function(a){a.destroy()};this.labels.forEach(b);this.shapes.forEach(b);this.clipYAxis=this.clipXAxis=null;y(a.labelCollectors,this.labelCollector);f.destroy.call(this);n.destroy.call(this);z(this,a)};h.prototype.remove=function(){return this.chart.removeAnnotation(this)};h.prototype.update=function(a,b){var d=this.chart, f=this.getLabelsAndShapesOptions(this.userOptions,a),h=d.annotations.indexOf(this);a=x(!0,this.userOptions,a);a.labels=f.labels;a.shapes=f.shapes;this.destroy();this.constructor(d,a);d.options.annotations[h]=a;this.isUpdating=!0;t(b,!0)&&d.redraw();w(this,"afterUpdate");this.isUpdating=!1};h.prototype.initShape=function(a,b){a=x(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},a);b=new h.shapesMap[a.type](this,a,b);b.itemType="shape";this.shapes.push(b);return b};h.prototype.initLabel= function(a,d){a=x(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},a);d=new b(this,a,d);d.itemType="label";this.labels.push(d);return d};h.prototype.redrawItem=function(a,b){a.linkPoints();a.shouldBeDrawn()?(a.graphic||this.renderItem(a),a.redraw(t(b,!0)&&a.graphic.placed),a.points.length&&this.adjustVisibility(a)):this.destroyItem(a)};h.prototype.adjustVisibility=function(a){var b=!1,d=a.graphic;a.points.forEach(function(a){!1!==a.series.visible&&!1!==a.visible&&(b= !0)});b?"hidden"===d.visibility&&d.show():d.hide()};h.prototype.destroyItem=function(a){y(this[a.itemType+"s"],a);a.destroy()};h.prototype.renderItem=function(a){a.render("label"===a.itemType?this.labelsGroup:this.shapesGroup)};h.ControlPoint=d;h.MockPoint=q;h.shapesMap={rect:k,circle:r,ellipse:m,path:e,image:a};h.types={};return h}();x(!0,E.prototype,n,f,x(E.prototype,{nonDOMEvents:["add","afterUpdate","drag","remove"],defaultOptions:{visible:!0,animation:{},crop:!0,draggable:"xy",labelOptions:{align:"center", allowOverlap:!1,backgroundColor:"rgba(0, 0, 0, 0.75)",borderColor:"#000000",borderRadius:3,borderWidth:1,className:"highcharts-no-tooltip",crop:!1,formatter:function(){return C(this.y)?this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"11px",fontWeight:"normal",color:"contrast"},useHTML:!1,verticalAlign:"bottom",x:0,y:-16},shapeOptions:{stroke:"rgba(0, 0, 0, 0.75)",strokeWidth:1,fill:"rgba(0, 0, 0, 0.75)",r:0,snap:2},controlPointOptions:{symbol:"circle", width:10,height:10,style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},visible:!1,events:{}},events:{},zIndex:6}}));h.extendAnnotation=function(a,b,d,f){b=b||E;A(a.prototype,x(b.prototype,d));a.prototype.defaultOptions=x(a.prototype.defaultOptions,f||{})};A(c,{initAnnotation:function(a){a=new (E.types[a.type]||E)(this,a);this.annotations.push(a);return a},addAnnotation:function(a,b){a=this.initAnnotation(a);this.options.annotations.push(a.options);t(b,!0)&&(a.redraw(),a.graphic.attr({opacity:1})); return a},removeAnnotation:function(a){var b=this.annotations,d="annotations"===a.coll?a:D(b,function(b){return b.options.id===a});d&&(w(d,"remove"),y(this.options.annotations,d.options),y(b,d),d.destroy())},drawAnnotations:function(){this.plotBoxClip.attr(this.plotBox);this.annotations.forEach(function(a){a.redraw();a.graphic.animate({opacity:1},a.animationConfig)})}});c.collectionsWithUpdate.push("annotations");c.collectionsWithInit.annotations=[c.addAnnotation];B(l,"afterInit",function(){this.annotations= [];this.options.annotations||(this.options.annotations=[])});c.callbacks.push(function(a){a.plotBoxClip=this.renderer.clipRect(this.plotBox);a.controlPointsGroup=a.renderer.g("control-points").attr({zIndex:99}).clip(a.plotBoxClip).add();a.options.annotations.forEach(function(b,d){if(!a.annotations.some(function(a){return a.options===b})){var f=a.initAnnotation(b);a.options.annotations[d]=f.options}});a.drawAnnotations();B(a,"redraw",a.drawAnnotations);B(a,"destroy",function(){a.plotBoxClip.destroy(); a.controlPointsGroup.destroy()});B(a,"exportData",function(b){var d=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,f=!b.dataRows[1].xValues,h=a.options.lang&&a.options.lang.exportData&&a.options.lang.exportData.annotationHeader,c=function(a){if(d){var b=d(a);if(!1!==b)return b}b=h+" "+a;return f?{columnTitle:b,topLevelColumnTitle:b}:b},e=b.dataRows[0].length,q=a.options.exporting&&a.options.exporting.csv&&a.options.exporting.csv.annotations&&a.options.exporting.csv.annotations.itemDelimiter, x=a.options.exporting&&a.options.exporting.csv&&a.options.exporting.csv.annotations&&a.options.exporting.csv.annotations.join;a.annotations.forEach(function(a){a.options.labelOptions.includeInDataExport&&a.labels.forEach(function(a){if(a.options.text){var d=a.options.text;a.points.forEach(function(a){var f=a.x,h=a.series.xAxis?a.series.xAxis.options.index:-1,c=!1;if(-1===h){a=b.dataRows[0].length;for(var t=Array(a),p=0;p<a;++p)t[p]="";t.push(d);t.xValues=[];t.xValues[h]=f;b.dataRows.push(t);c=!0}c|| b.dataRows.forEach(function(a){!c&&a.xValues&&void 0!==h&&f===a.xValues[h]&&(x&&a.length>e?a[a.length-1]+=q+d:a.push(d),c=!0)});if(!c){a=b.dataRows[0].length;t=Array(a);for(p=0;p<a;++p)t[p]="";t[0]=f;t.push(d);t.xValues=[];void 0!==h&&(t.xValues[h]=f);b.dataRows.push(t)}})}})});var t=0;b.dataRows.forEach(function(a){t=Math.max(t,a.length)});for(var p=t-b.dataRows[0].length,F=0;F<p;F++){var g=c(F+1);f?(b.dataRows[0].push(g.topLevelColumnTitle),b.dataRows[1].push(g.columnTitle)):b.dataRows[0].push(g)}})}); u(p.prototype,"onContainerMouseDown",function(a){this.chart.hasDraggedAnnotation||a.apply(this,Array.prototype.slice.call(arguments,1))});h.Annotation=E;"";return E});v(c,"Extensions/Annotations/Types/BasicAnnotation.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Utilities.js"]],function(c,l,n){var g=this&&this.__extends||function(){var c=function(e,a){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,d){a.__proto__=d}||function(a, d){for(var b in d)d.hasOwnProperty(b)&&(a[b]=d[b])};return c(e,a)};return function(e,a){function b(){this.constructor=e}c(e,a);e.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}}();n=n.merge;var r=function(m){function e(a,b){return m.call(this,a,b)||this}g(e,m);e.prototype.addControlPoints=function(){var a=this.options,b=e.basicControlPoints,d=this.basicType;(a.labels||a.shapes).forEach(function(a){a.controlPoints=b[d]})};e.prototype.init=function(){var a=this.options;a.shapes? (delete a.labelOptions,this.basicType=(a=a.shapes[0].type)&&"path"!==a?a:"rectangle"):(delete a.shapes,this.basicType="label");c.prototype.init.apply(this,arguments)};e.basicControlPoints={label:[{symbol:"triangle-down",positioner:function(a){if(!a.graphic.placed)return{x:0,y:-9E7};a=l.pointToPixels(a.points[0]);return{x:a.x-this.graphic.width/2,y:a.y-this.graphic.height/2}},events:{drag:function(a,b){a=this.mouseMoveToTranslation(a);b.translatePoint(a.x,a.y);b.annotation.userOptions.labels[0].point= b.options.point;b.redraw(!1)}}},{symbol:"square",positioner:function(a){return a.graphic.placed?{x:a.graphic.alignAttr.x-this.graphic.width/2,y:a.graphic.alignAttr.y-this.graphic.height/2}:{x:0,y:-9E7}},events:{drag:function(a,b){a=this.mouseMoveToTranslation(a);b.translate(a.x,a.y);b.annotation.userOptions.labels[0].point=b.options.point;b.redraw(!1)}}}],rectangle:[{positioner:function(a){a=l.pointToPixels(a.points[2]);return{x:a.x-4,y:a.y-4}},events:{drag:function(a,b){var d=b.annotation,f=this.chart.pointer.getCoordinates(a); a=f.xAxis[0].value;f=f.yAxis[0].value;var h=b.options.points;h[1].x=a;h[2].x=a;h[2].y=f;h[3].y=f;d.userOptions.shapes[0].points=b.options.points;d.redraw(!1)}}}],circle:[{positioner:function(a){var b=l.pointToPixels(a.points[0]);a=a.options.r;return{x:b.x+a*Math.cos(Math.PI/4)-this.graphic.width/2,y:b.y+a*Math.sin(Math.PI/4)-this.graphic.height/2}},events:{drag:function(a,b){var d=b.annotation;a=this.mouseMoveToTranslation(a);b.setRadius(Math.max(b.options.r+a.y/Math.sin(Math.PI/4),5));d.userOptions.shapes[0].r= b.options.r;d.userOptions.shapes[0].point=b.options.point;b.redraw(!1)}}}],ellipse:[{positioner:function(a){a=a.getAbsolutePosition(a.points[0]);return{x:a.x-this.graphic.width/2,y:a.y-this.graphic.height/2}},events:{drag:function(a,b){var d=b.getAbsolutePosition(b.points[0]);b.translatePoint(a.chartX-d.x,a.chartY-d.y,0);b.redraw(!1)}}},{positioner:function(a){a=a.getAbsolutePosition(a.points[1]);return{x:a.x-this.graphic.width/2,y:a.y-this.graphic.height/2}},events:{drag:function(a,b){var d=b.getAbsolutePosition(b.points[1]); b.translatePoint(a.chartX-d.x,a.chartY-d.y,1);b.redraw(!1)}}},{positioner:function(a){var b=a.getAbsolutePosition(a.points[0]),d=a.getAbsolutePosition(a.points[1]);a=a.getAttrs(b,d);return{x:a.cx-this.graphic.width/2+a.ry*Math.sin(a.angle*Math.PI/180),y:a.cy-this.graphic.height/2-a.ry*Math.cos(a.angle*Math.PI/180)}},events:{drag:function(a,b){var d=b.getAbsolutePosition(b.points[0]),f=b.getAbsolutePosition(b.points[1]);a=b.getDistanceFromLine(d,f,a.chartX,a.chartY);d=b.getYAxis();a=Math.abs(d.toValue(0)- d.toValue(a));b.setYRadius(a);b.redraw(!1)}}}]};return e}(c);r.prototype.defaultOptions=n(c.prototype.defaultOptions,{});return c.types.basicAnnotation=r});v(c,"Extensions/Annotations/Types/CrookedLine.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/ControlPoint.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Utilities.js"]],function(c,l,n,k){var g=this&&this.__extends||function(){var c=function(a,b){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a, b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return c(a,b)};return function(a,b){function d(){this.constructor=a}c(a,b);a.prototype=null===b?Object.create(b):(d.prototype=b.prototype,new d)}}(),m=k.merge;k=function(c){function a(a,d){return c.call(this,a,d)||this}g(a,c);a.prototype.setClipAxes=function(){this.clipXAxis=this.chart.xAxis[this.options.typeOptions.xAxis];this.clipYAxis=this.chart.yAxis[this.options.typeOptions.yAxis]};a.prototype.getPointsOptions= function(){var a=this.options.typeOptions;return(a.points||[]).map(function(b){b.xAxis=a.xAxis;b.yAxis=a.yAxis;return b})};a.prototype.getControlPointsOptions=function(){return this.getPointsOptions()};a.prototype.addControlPoints=function(){this.getControlPointsOptions().forEach(function(a,d){d=new l(this.chart,this,m(this.options.controlPointOptions,a.controlPoint),d);this.controlPoints.push(d);a.controlPoint=d.options},this)};a.prototype.addShapes=function(){var a=this.options.typeOptions,d=this.initShape(m(a.line, {type:"path",points:this.points.map(function(a,b){return function(a){return a.annotation.points[b]}})}),0);a.line=d.options};return a}(c);k.prototype.defaultOptions=m(c.prototype.defaultOptions,{typeOptions:{xAxis:0,yAxis:0,line:{fill:"none"}},controlPointOptions:{positioner:function(c){var a=this.graphic;c=n.pointToPixels(c.points[this.index]);return{x:c.x-a.width/2,y:c.y-a.height/2}},events:{drag:function(c,a){a.chart.isInsidePlot(c.chartX-a.chart.plotLeft,c.chartY-a.chart.plotTop,{visiblePlotOnly:!0})&& (c=this.mouseMoveToTranslation(c),a.translatePoint(c.x,c.y,this.index),a.options.typeOptions.points[this.index].x=a.points[this.index].x,a.options.typeOptions.points[this.index].y=a.points[this.index].y,a.redraw(!1))}}}});return c.types.crookedLine=k});v(c,"Extensions/Annotations/Types/ElliottWave.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/Types/CrookedLine.js"],c["Core/Utilities.js"]],function(c,l,n){var g=this&&this.__extends||function(){var c=function(e,a){c=Object.setPrototypeOf|| {__proto__:[]}instanceof Array&&function(a,d){a.__proto__=d}||function(a,d){for(var b in d)d.hasOwnProperty(b)&&(a[b]=d[b])};return c(e,a)};return function(e,a){function b(){this.constructor=e}c(e,a);e.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}}(),r=n.merge;n=function(c){function e(a,b){return c.call(this,a,b)||this}g(e,c);e.prototype.addLabels=function(){this.getPointsOptions().forEach(function(a,b){var d=this.initLabel(r(a.label,{text:this.options.typeOptions.labels[b], point:function(a){return a.annotation.points[b]}}),!1);a.label=d.options},this)};return e}(l);n.prototype.defaultOptions=r(l.prototype.defaultOptions,{typeOptions:{labels:"(0) (A) (B) (C) (D) (E)".split(" "),line:{strokeWidth:1}},labelOptions:{align:"center",allowOverlap:!0,crop:!0,overflow:"none",type:"rect",backgroundColor:"none",borderWidth:0,y:-5}});return c.types.elliottWave=n});v(c,"Extensions/Annotations/Types/Tunnel.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/ControlPoint.js"], c["Extensions/Annotations/Types/CrookedLine.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Utilities.js"]],function(c,l,n,k,r){var g=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return a(b,d)};return function(b,d){function f(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(f.prototype=d.prototype,new f)}}(),e=r.merge; r=function(a){function b(b,f){return a.call(this,b,f)||this}g(b,a);b.prototype.getPointsOptions=function(){var a=n.prototype.getPointsOptions.call(this);a[2]=this.heightPointOptions(a[1]);a[3]=this.heightPointOptions(a[0]);return a};b.prototype.getControlPointsOptions=function(){return this.getPointsOptions().slice(0,2)};b.prototype.heightPointOptions=function(a){a=e(a);a.y+=this.options.typeOptions.height;return a};b.prototype.addControlPoints=function(){n.prototype.addControlPoints.call(this);var a= this.options,b=a.typeOptions;a=new l(this.chart,this,e(a.controlPointOptions,b.heightControlPoint),2);this.controlPoints.push(a);b.heightControlPoint=a.options};b.prototype.addShapes=function(){this.addLine();this.addBackground()};b.prototype.addLine=function(){var a=this.initShape(e(this.options.typeOptions.line,{type:"path",points:[this.points[0],this.points[1],function(a){a=k.pointToOptions(a.annotation.points[2]);a.command="M";return a},this.points[3]]}),0);this.options.typeOptions.line=a.options}; b.prototype.addBackground=function(){var a=this.initShape(e(this.options.typeOptions.background,{type:"path",points:this.points.slice()}),1);this.options.typeOptions.background=a.options};b.prototype.translateSide=function(a,b,c){c=Number(c);var d=0===c?3:2;this.translatePoint(a,b,c);this.translatePoint(a,b,d)};b.prototype.translateHeight=function(a){this.translatePoint(0,a,2);this.translatePoint(0,a,3);this.options.typeOptions.height=this.points[3].y-this.points[0].y};return b}(n);r.prototype.defaultOptions= e(n.prototype.defaultOptions,{typeOptions:{background:{fill:"rgba(130, 170, 255, 0.4)",strokeWidth:0},line:{strokeWidth:1},height:-2,heightControlPoint:{positioner:function(a){var b=k.pointToPixels(a.points[2]);a=k.pointToPixels(a.points[3]);var d=(b.x+a.x)/2;return{x:d-this.graphic.width/2,y:(a.y-b.y)/(a.x-b.x)*(d-b.x)+b.y-this.graphic.height/2}},events:{drag:function(a,b){b.chart.isInsidePlot(a.chartX-b.chart.plotLeft,a.chartY-b.chart.plotTop,{visiblePlotOnly:!0})&&(b.translateHeight(this.mouseMoveToTranslation(a).y), b.redraw(!1))}}}},controlPointOptions:{events:{drag:function(a,b){b.chart.isInsidePlot(a.chartX-b.chart.plotLeft,a.chartY-b.chart.plotTop,{visiblePlotOnly:!0})&&(a=this.mouseMoveToTranslation(a),b.translateSide(a.x,a.y,!!this.index),b.redraw(!1))}}}});return c.types.tunnel=r});v(c,"Extensions/Annotations/Types/InfinityLine.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/Types/CrookedLine.js"],c["Extensions/Annotations/MockPoint.js"],c["Core/Utilities.js"]],function(c,l,n, k){var g=this&&this.__extends||function(){var c=function(a,b){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return c(a,b)};return function(a,b){function d(){this.constructor=a}c(a,b);a.prototype=null===b?Object.create(b):(d.prototype=b.prototype,new d)}}(),m=k.merge;k=function(c){function a(a,d){return c.call(this,a,d)||this}g(a,c);a.edgePoint=function(b,d){return function(c){c=c.annotation;var f= c.points,e=c.options.typeOptions.type;if("horizontalLine"===e||"verticalLine"===e)f=[f[0],new n(c.chart,f[0].target,{x:f[0].x+ +("horizontalLine"===e),y:f[0].y+ +("verticalLine"===e),xAxis:f[0].options.xAxis,yAxis:f[0].options.yAxis})];return a.findEdgePoint(f[b],f[d])}};a.findEdgeCoordinate=function(a,d,c,h){var b="x"===c?"y":"x";return(d[c]-a[c])*(h-a[b])/(d[b]-a[b])+a[c]};a.findEdgePoint=function(b,d){var c=b.series.chart,h=b.series.xAxis,e=d.series.yAxis,p=n.pointToPixels(b);d=n.pointToPixels(d); var g=d.x-p.x,l=d.y-p.y,k=h.left,m=k+h.width;h=e.top;e=h+e.height;m=0>g?k:m;var r=0>l?h:e;k={x:0===g?p.x:m,y:0===l?p.y:r};0!==g&&0!==l&&(g=a.findEdgeCoordinate(p,d,"y",m),p=a.findEdgeCoordinate(p,d,"x",r),g>=h&&g<=e?(k.x=m,k.y=g):(k.x=p,k.y=r));k.x-=c.plotLeft;k.y-=c.plotTop;b.series.chart.inverted&&(b=k.x,k.x=k.y,k.y=b);return k};a.prototype.addShapes=function(){var b=this.options.typeOptions,d=[this.points[0],a.endEdgePoint];b.type.match(/line/gi)&&(d[0]=a.startEdgePoint);d=this.initShape(m(b.line, {type:"path",points:d}),0);b.line=d.options};a.endEdgePoint=a.edgePoint(0,1);a.startEdgePoint=a.edgePoint(1,0);return a}(l);k.prototype.defaultOptions=m(l.prototype.defaultOptions,{});c.types.infinityLine=k;"";return k});v(c,"Extensions/Annotations/Types/TimeCycles.js",[c["Extensions/Annotations/Annotations.js"],c["Extensions/Annotations/Types/CrookedLine.js"],c["Extensions/Annotations/ControlPoint.js"],c["Core/Utilities.js"]],function(c,l,n,k){function g(a,b,c,e){for(var d=[],f=1;f<=b;f++)d.push(["A", a/2,a/2,0,1,1,c+f*a,e]);return d}var m=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return a(b,d)};return function(b,d){function c(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(c.prototype=d.prototype,new c)}}(),e=k.merge,a=k.isNumber,b=k.defined;k=function(d){function c(){return null!==d&&d.apply(this,arguments)||this}m(c, d);c.prototype.init=function(a,c,f){b(c.yAxis)&&c.points.forEach(function(a){a.yAxis=c.yAxis});b(c.xAxis)&&c.points.forEach(function(a){a.xAxis=c.xAxis});d.prototype.init.call(this,a,c,f)};c.prototype.setPath=function(){this.shapes[0].options.d=this.getPath()};c.prototype.getPath=function(){return[["M",this.startX,this.y]].concat(g(this.pixelInterval,this.numberOfCircles,this.startX,this.y))};c.prototype.addShapes=function(){var a=this.options.typeOptions;this.setPathProperties();var b=this.initShape(e(a.line, {type:"path",d:this.getPath()