/** * Highcharts JS v11.2.0 (2023-10-30) * * Annotations module * * (c) 2009-2021 Torstein Honsi * * License: www.highcharts.com/license */!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/annotations",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function s(t,i,s,e){t.hasOwnProperty(i)||(t[i]=e.apply(null,s),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}s(i,"Extensions/Annotations/AnnotationChart.js",[i["Core/Utilities.js"]],function(t){var i;let{addEvent:s,erase:e,find:o,fireEvent:n,pick:a,wrap:r}=t,l=[];function h(t,i){let s=this.initAnnotation(t);return this.options.annotations.push(s.options),a(i,!0)&&(s.redraw(),s.graphic.attr({opacity:1})),s}function c(){let t=this;t.plotBoxClip=this.renderer.clipRect(this.plotBox),t.controlPointsGroup=t.renderer.g("control-points").attr({zIndex:99}).clip(t.plotBoxClip).add(),t.options.annotations.forEach((i,s)=>{if(!t.annotations.some(t=>t.options===i)){let e=t.initAnnotation(i);t.options.annotations[s]=e.options}}),t.drawAnnotations(),s(t,"redraw",t.drawAnnotations),s(t,"destroy",function(){t.plotBoxClip.destroy(),t.controlPointsGroup.destroy()}),s(t,"exportData",function(i){let s=t.annotations,e=(this.options.exporting&&this.options.exporting.csv||{}).columnHeaderFormatter,o=!i.dataRows[1].xValues,n=t.options.lang&&t.options.lang.exportData&&t.options.lang.exportData.annotationHeader,a=i.dataRows[0].length,r=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.itemDelimiter,l=t.options.exporting&&t.options.exporting.csv&&t.options.exporting.csv.annotations&&t.options.exporting.csv.annotations.join;s.forEach(t=>{t.options.labelOptions&&t.options.labelOptions.includeInDataExport&&t.labels.forEach(t=>{if(t.options.text){let s=t.options.text;t.points.forEach(t=>{let e=t.x,o=t.series.xAxis?t.series.xAxis.index:-1,n=!1;if(-1===o){let t=i.dataRows[0].length,a=Array(t);for(let i=0;i{!n&&t.xValues&&void 0!==o&&e===t.xValues[o]&&(l&&t.length>a?t[t.length-1]+=r+s:t.push(s),n=!0)}),!n){let t=i.dataRows[0].length,n=Array(t);for(let i=0;i{h=Math.max(h,t.length)});let c=h-i.dataRows[0].length;for(let t=0;t{t.redraw(),t.graphic.animate({opacity:1},t.animationConfig)})}function d(t){let i=this.annotations,s="annotations"===t.coll?t:o(i,function(i){return i.options.id===t});s&&(n(s,"remove"),e(this.options.annotations,s.options),e(i,s),s.destroy())}function u(){this.annotations=[],this.options.annotations||(this.options.annotations=[])}function g(t){this.chart.hasDraggedAnnotation||t.apply(this,Array.prototype.slice.call(arguments,1))}return(i||(i={})).compose=function(i,e,o){if(t.pushUnique(l,e)){s(e,"afterInit",u);let t=e.prototype;t.addAnnotation=h,t.callbacks.push(c),t.collectionsWithInit.annotations=[h],t.collectionsWithUpdate.push("annotations"),t.drawAnnotations=p,t.removeAnnotation=d,t.initAnnotation=function(t){let s=i.types[t.type]||i,e=new s(this,t);return this.annotations.push(e),e}}if(t.pushUnique(l,o)){let t=o.prototype;r(t,"onContainerMouseDown",g)}},i}),s(i,"Extensions/Annotations/AnnotationDefaults.js",[i["Core/Utilities.js"]],function(t){let{defined:i}=t;return{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 i(this.y)?""+this.y:"Annotation label"},includeInDataExport:!0,overflow:"justify",padding:5,shadow:!1,shape:"callout",style:{fontSize:"0.7em",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:{events:{},style:{cursor:"pointer",fill:"#ffffff",stroke:"#000000","stroke-width":2},height:10,symbol:"circle",visible:!1,width:10},events:{},zIndex:6}}),s(i,"Extensions/Annotations/EventEmitter.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let{doc:s,isTouchDevice:e}=t,{addEvent:o,fireEvent:n,objectEach:a,pick:r,removeEvent:l}=i;return class{addEvents(){let t=this,i=function(i){o(i,e?"touchstart":"mousedown",i=>{t.onMouseDown(i)},{passive:!1})};if(i(this.graphic.element),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&i(t.graphic.text.element)}),a(t.options.events,(i,s)=>{let e=function(e){"click"===s&&t.cancelClick||i.call(t,t.chart.pointer.normalize(e),t.target)};-1===(t.nonDOMEvents||[]).indexOf(s)?t.graphic.on(s,e):o(t,s,e,{passive:!1})}),t.options.draggable&&(o(t,"drag",t.onDrag),!t.graphic.renderer.styledMode)){let i={cursor:{x:"ew-resize",y:"ns-resize",xy:"move"}[t.options.draggable]};t.graphic.css(i),(t.labels||[]).forEach(t=>{t.options.useHTML&&t.graphic.text&&t.graphic.text.css(i)})}t.isUpdating||n(t,"add")}destroy(){this.removeDocEvents(),l(this),this.hcEvents=null}mouseMoveToRadians(t,i,s){let e=t.prevChartY-s,o=t.prevChartX-i,n=t.chartY-s,a=t.chartX-i,r;return this.chart.inverted&&(r=o,o=e,e=r,r=a,a=n,n=r),Math.atan2(n,a)-Math.atan2(e,o)}mouseMoveToScale(t,i,s){let e=t.prevChartX-i,o=t.prevChartY-s,n=t.chartX-i,a=t.chartY-s,r=(n||1)/(e||1),l=(a||1)/(o||1);if(this.chart.inverted){let t=l;l=r,r=t}return{x:r,y:l}}mouseMoveToTranslation(t){let i=t.chartX-t.prevChartX,s=t.chartY-t.prevChartY,e;return this.chart.inverted&&(e=s,s=i,i=e),{x:i,y:s}}onDrag(t){if(this.chart.isInsidePlot(t.chartX-this.chart.plotLeft,t.chartY-this.chart.plotTop,{visiblePlotOnly:!0})){let i=this.mouseMoveToTranslation(t);"x"===this.options.draggable&&(i.y=0),"y"===this.options.draggable&&(i.x=0),this.points.length?this.translate(i.x,i.y):(this.shapes.forEach(t=>t.translate(i.x,i.y)),this.labels.forEach(t=>t.translate(i.x,i.y))),this.redraw(!1)}}onMouseDown(t){if(t.preventDefault&&t.preventDefault(),2===t.button)return;let i=this,a=i.chart.pointer,l=t?.sourceCapabilities?.firesTouchEvents||!1,h=(t=a.normalize(t)).chartX,c=t.chartY;i.cancelClick=!1,i.chart.hasDraggedAnnotation=!0,i.removeDrag=o(s,e||l?"touchmove":"mousemove",function(t){i.hasDragged=!0,(t=a.normalize(t)).prevChartX=h,t.prevChartY=c,n(i,"drag",t),h=t.chartX,c=t.chartY},e||l?{passive:!1}:void 0),i.removeMouseUp=o(s,e||l?"touchend":"mouseup",function(t){let s=r(i.target&&i.target.annotation,i.target);s&&(s.cancelClick=i.hasDragged),i.cancelClick=i.hasDragged,i.hasDragged=!1,i.chart.hasDraggedAnnotation=!1,n(r(s,i),"afterUpdate"),i.onMouseUp(t)},e||l?{passive:!1}:void 0)}onMouseUp(t){let i=this.chart,s=this.target||this,e=i.options.annotations,o=i.annotations.indexOf(s);this.removeDocEvents(),e[o]=s.options}removeDocEvents(){this.removeDrag&&(this.removeDrag=this.removeDrag()),this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())}}}),s(i,"Extensions/Annotations/ControlPoint.js",[i["Extensions/Annotations/EventEmitter.js"],i["Core/Utilities.js"]],function(t,i){let{merge:s,pick:e}=i;return class extends t{constructor(t,i,s,o){super(),this.graphic=void 0,this.nonDOMEvents=["drag"],this.chart=t,this.target=i,this.options=s,this.index=e(s.index,o)}destroy(){super.destroy(),this.graphic&&(this.graphic=this.graphic.destroy()),this.chart=null,this.target=null,this.options=null}redraw(t){this.graphic[t?"animate":"attr"](this.options.positioner.call(this,this.target))}render(){let t=this.chart,i=this.options;this.graphic=t.renderer.symbol(i.symbol,0,0,i.width,i.height).add(t.controlPointsGroup).css(i.style),this.setVisibility(i.visible),this.addEvents()}setVisibility(t){this.graphic[t?"show":"hide"](),this.options.visible=t}update(t){let i=this.chart,e=this.target,o=this.index,n=s(!0,this.options,t);this.destroy(),this.constructor(i,e,n,o),this.render(i.controlPointsGroup),this.redraw()}}}),s(i,"Extensions/Annotations/MockPoint.js",[i["Core/Series/SeriesRegistry.js"],i["Core/Utilities.js"]],function(t,i){let{series:{prototype:s}}=t,{defined:e,fireEvent:o}=i;class n{static fromPoint(t){return new n(t.series.chart,null,{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis})}static pointToPixels(t,i){let s=t.series,e=s.chart,o=t.plotX||0,n=t.plotY||0,a;return e.inverted&&(t.mock?(o=t.plotY,n=t.plotX):(o=e.plotWidth-(t.plotY||0),n=e.plotHeight-(t.plotX||0))),s&&!i&&(o+=(a=s.getPlotBox()).translateX,n+=a.translateY),{x:o,y:n}}static pointToOptions(t){return{x:t.x,y:t.y,xAxis:t.series.xAxis,yAxis:t.series.yAxis}}constructor(t,i,e){this.plotX=void 0,this.plotY=void 0,this.mock=!0,this.series={visible:!0,chart:t,getPlotBox:s.getPlotBox},this.target=i||null,this.options=e,this.applyOptions(this.getOptions())}applyOptions(t){this.command=t.command,this.setAxis(t,"x"),this.setAxis(t,"y"),this.refresh()}getLabelConfig(){return{x:this.x,y:this.y,point:this}}getOptions(){return this.hasDynamicOptions()?this.options(this.target):this.options}hasDynamicOptions(){return"function"==typeof this.options}isInsidePlot(){let t=this.plotX,i=this.plotY,s=this.series.xAxis,n=this.series.yAxis,a={x:t,y:i,isInsidePlot:!0,options:{}};return s&&(a.isInsidePlot=e(t)&&t>=0&&t<=s.len),n&&(a.isInsidePlot=a.isInsidePlot&&e(i)&&i>=0&&i<=n.len),o(this.series.chart,"afterIsInsidePlot",a),a.isInsidePlot}refresh(){let t=this.series,i=t.xAxis,s=t.yAxis,e=this.getOptions();i?(this.x=e.x,this.plotX=i.toPixels(e.x,!0)):(this.x=void 0,this.plotX=e.x),s?(this.y=e.y,this.plotY=s.toPixels(e.y,!0)):(this.y=null,this.plotY=e.y),this.isInside=this.isInsidePlot()}refreshOptions(){let t=this.series,i=t.xAxis,s=t.yAxis;this.x=this.options.x=i?this.options.x=i.toValue(this.plotX,!0):this.plotX,this.y=this.options.y=s?s.toValue(this.plotY,!0):this.plotY}rotate(t,i,s){if(!this.hasDynamicOptions()){let e=Math.cos(s),o=Math.sin(s),n=this.plotX-t,a=this.plotY-i;this.plotX=n*e-a*o+t,this.plotY=n*o+a*e+i,this.refreshOptions()}}scale(t,i,s,e){if(!this.hasDynamicOptions()){let o=this.plotX*s,n=this.plotY*e;this.plotX=(1-s)*t+o,this.plotY=(1-e)*i+n,this.refreshOptions()}}setAxis(t,i){let s=i+"Axis",o=t[s],n=this.series.chart;this.series[s]="object"==typeof o?o:e(o)?n[s][o]||n.get(o):null}toAnchor(){let t=[this.plotX,this.plotY,0,0];return this.series.chart.inverted&&(t[0]=this.plotY,t[1]=this.plotX),t}translate(t,i,s,e){this.hasDynamicOptions()||(this.plotX+=s,this.plotY+=e,this.refreshOptions())}}return n}),s(i,"Extensions/Annotations/ControlTarget.js",[i["Extensions/Annotations/ControlPoint.js"],i["Extensions/Annotations/MockPoint.js"],i["Core/Utilities.js"]],function(t,i,s){var e;return function(e){let o=[];function n(){let i=this.controlPoints,e=this.options.controlPoints||[];e.forEach((o,n)=>{let a=s.merge(this.options.controlPointOptions,o);a.index||(a.index=n),e[n]=a,i.push(new t(this.chart,this,a))})}function a(t){let i=t.series.getPlotBox(),e=t.series.chart,o=t.mock?t.toAnchor():e.tooltip&&e.tooltip.getAnchor.call({chart:t.series.chart},t)||[0,0,0,0],n={x:o[0]+(this.options.x||0),y:o[1]+(this.options.y||0),height:o[2]||0,width:o[3]||0};return{relativePosition:n,absolutePosition:s.merge(n,{x:n.x+(t.mock?i.translateX:e.plotLeft),y:n.y+(t.mock?i.translateY:e.plotTop)})}}function r(){this.controlPoints.forEach(t=>t.destroy()),this.chart=null,this.controlPoints=null,this.points=null,this.options=null,this.annotation&&(this.annotation=null)}function l(){let t=this.options;return t.points||t.point&&s.splat(t.point)}function h(){let t,i;let s=this.getPointsOptions(),e=this.points,o=s&&s.length||0;for(t=0;ti.redraw(t))}function d(){this.controlPoints.forEach(t=>t.render())}function u(t,i,s,e,o){if(this.chart.inverted){let t=i;i=s,s=t}this.points.forEach((n,a)=>this.transformPoint(t,i,s,e,o,a),this)}function g(t,s,e,o,n,a){let r=this.points[a];r.mock||(r=this.points[a]=i.fromPoint(r)),r[t](s,e,o,n)}function f(t,i){this.transform("translate",null,null,t,i)}function m(t,i,s){this.transformPoint("translate",null,null,t,i,s)}e.compose=function(t){s.pushUnique(o,t)&&s.merge(!0,t.prototype,{addControlPoints:n,anchor:a,destroyControlTarget:r,getPointsOptions:l,linkPoints:h,point:c,redrawControlPoints:p,renderControlPoints:d,transform:u,transformPoint:g,translate:f,translatePoint:m})}}(e||(e={})),e}),s(i,"Extensions/Annotations/Controllables/Controllable.js",[i["Extensions/Annotations/ControlTarget.js"],i["Core/Utilities.js"]],function(t,i){let{merge:s}=i;class e{constructor(t,i,s,e){this.graphic=void 0,this.annotation=t,this.chart=t.chart,this.collection="label"===e?"labels":"shapes",this.controlPoints=[],this.options=i,this.points=[],this.index=s,this.itemType=e,this.init(t,i,s)}attr(...t){this.graphic.attr.apply(this.graphic,arguments)}attrsFromOptions(t){let i,s;let e=this.constructor.attrsMap,o={},n=this.chart.styledMode;for(i in t)s=e[i],void 0===e[i]||n&&-1!==["fill","stroke","stroke-width"].indexOf(s)||(o[s]=t[i]);return o}destroy(){this.graphic&&(this.graphic=this.graphic.destroy()),this.tracker&&(this.tracker=this.tracker.destroy()),this.destroyControlTarget()}init(t,i,s){this.annotation=t,this.chart=t.chart,this.options=i,this.points=[],this.controlPoints=[],this.index=s,this.linkPoints(),this.addControlPoints()}redraw(t){this.redrawControlPoints(t)}render(t){this.renderControlPoints()}rotate(t,i,s){this.transform("rotate",t,i,s)}scale(t,i,s,e){this.transform("scale",t,i,s,e)}setControlPointsVisibility(t){this.controlPoints.forEach(i=>{i.setVisibility(t)})}shouldBeDrawn(){return!!this.points.length}translateShape(t,i,s){let e=this.annotation.chart,o=this.annotation.userOptions,n=e.annotations.indexOf(this.annotation),a=e.options.annotations[n];this.translatePoint(t,i,0),s&&this.translatePoint(t,i,1),a[this.collection][this.index].point=this.options.point,o[this.collection][this.index].point=this.options.point}update(t){let i=this.annotation,e=s(!0,this.options,t),o=this.graphic.parentGroup,n=this.constructor;this.destroy();let a=new n(i,e,this.index,this.itemType);s(!0,this,a),this.render(o),this.redraw()}}return t.compose(e),e}),s(i,"Extensions/Annotations/Controllables/ControllableDefaults.js",[],function(){return{defaultMarkers:{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}}]}}}}),s(i,"Extensions/Annotations/Controllables/ControllablePath.js",[i["Extensions/Annotations/Controllables/Controllable.js"],i["Extensions/Annotations/Controllables/ControllableDefaults.js"],i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i,s,e){let{defaultMarkers:o}=i,{addEvent:n,defined:a,extend:r,merge:l,uniqueKey:h}=e,c=[],p=g("marker-end"),d=g("marker-start"),u="rgba(192,192,192,"+(s.svg?1e-4:.002)+")";function g(t){return function(i){this.attr(t,"url(#"+i+")")}}function f(){this.options.defs=l(o,this.options.defs||{})}function m(t,i){let s={attributes:{id:t}},e={stroke:i.color||"none",fill:i.color||"rgba(0, 0, 0, 0.75)"};s.children=i.children&&i.children.map(function(t){return l(e,t)});let o=l(!0,{attributes:{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:"auto"}},i,s),n=this.definition(o);return n.id=t,n}class x extends t{static compose(t,i){if(e.pushUnique(c,t)&&n(t,"afterGetContainer",f),e.pushUnique(c,i)){let t=i.prototype;t.addMarker=m}}constructor(t,i,s){super(t,i,s,"shape"),this.type="path"}toD(){let t=this.options.d;if(t)return"function"==typeof t?t.call(this):t;let i=this.points,s=i.length,e=[],o=s,n=i[0],a=o&&this.anchor(n).absolutePosition,r=0,l;if(a)for(e.push(["M",a.x,a.y]);++r{t.yAxis=i.yAxis}),o(i.xAxis)&&i.points.forEach(t=>{t.xAxis=i.xAxis}),super.init(t,i,s)}render(t){this.graphic=this.annotation.chart.renderer.createElement("ellipse").attr(this.attrsFromOptions(this.options)).add(t),super.render()}translate(t,i){super.translateShape(t,i,!0)}getDistanceFromLine(t,i,s,e){return Math.abs((i.y-t.y)*s-(i.x-t.x)*e+i.x*t.y-i.y*t.x)/Math.sqrt((i.y-t.y)*(i.y-t.y)+(i.x-t.x)*(i.x-t.x))}getAttrs(t,i){let s=t.x,e=t.y,o=i.x,n=i.y,a=(s+o)/2,r=180*Math.atan((n-e)/(o-s))/Math.PI;ai+e?l.push(["L",t+c,i+e]):rt+s&&l.push(["L",t+s,i+e/2])),l||[]}class c extends t{static alignedPosition(t,i){let s=t.align,e=t.verticalAlign,o=(i.x||0)+(t.x||0),n=(i.y||0)+(t.y||0),a,r;return"right"===s?a=1:"center"===s&&(a=2),a&&(o+=(i.width-(t.width||0))/a),"bottom"===e?r=1:"middle"===e&&(r=2),r&&(n+=(i.height-(t.height||0))/r),{x:Math.round(o),y:Math.round(n)}}static compose(t){if(e.pushUnique(l,t)){let i=t.prototype;i.symbols.connector=h}}static justifiedOptions(t,i,s,e){let o;let n=s.align,a=s.verticalAlign,r=i.box?0:i.padding||0,l=i.getBBox(),h={align:n,verticalAlign:a,x:s.x,y:s.y,width:i.width,height:i.height},c=(e.x||0)-t.plotLeft,p=(e.y||0)-t.plotTop;return(o=c+r)<0&&("right"===n?h.align="left":h.x=(h.x||0)-o),(o=c+l.width-r)>t.plotWidth&&("left"===n?h.align="right":h.x=(h.x||0)+t.plotWidth-o),(o=p+r)<0&&("bottom"===a?h.verticalAlign="top":h.y=(h.y||0)-o),(o=p+l.height-r)>t.plotHeight&&("top"===a?h.verticalAlign="bottom":h.y=(h.y||0)+t.plotHeight-o),h}constructor(t,i,s){super(t,i,s,"label")}translatePoint(t,i){super.translatePoint(t,i,0)}translate(t,i){let s=this.annotation.chart,e=this.annotation.userOptions,o=s.annotations.indexOf(this.annotation),n=s.options.annotations,a=n[o];if(s.inverted){let s=t;t=i,i=s}this.options.x+=t,this.options.y+=i,a[this.collection][this.index].x=this.options.x,a[this.collection][this.index].y=this.options.y,e[this.collection][this.index].x=this.options.x,e[this.collection][this.index].y=this.options.y}render(t){let i=this.options,s=this.attrsFromOptions(i),e=i.style;this.graphic=this.annotation.chart.renderer.label("",0,-9999,i.shape,null,null,i.useHTML,null,"annotation-label").attr(s).add(t),this.annotation.chart.styledMode||("contrast"===e.color&&(e.color=this.annotation.chart.renderer.getContrast(c.shapesWithoutBackground.indexOf(i.shape)>-1?"#FFFFFF":i.backgroundColor)),this.graphic.css(i.style).shadow(i.shadow)),i.className&&this.graphic.addClass(i.className),this.graphic.labelrank=i.labelrank,super.render()}redraw(t){let i=this.options,s=this.text||i.format||i.text,e=this.graphic,n=this.points[0];if(!e){this.redraw(t);return}e.attr({text:s?o(String(s),n.getLabelConfig(),this.annotation.chart):i.formatter.call(n,this)});let a=this.anchor(n),r=this.position(a);r?(e.alignAttr=r,r.anchorX=a.absolutePosition.x,r.anchorY=a.absolutePosition.y,e[t?"animate":"attr"](r)):e.attr({x:0,y:-9999}),e.placed=!!r,super.redraw(t)}anchor(t){let i=super.anchor.apply(this,arguments),s=this.options.x||0,e=this.options.y||0;return i.absolutePosition.x-=s,i.absolutePosition.y-=e,i.relativePosition.x-=s,i.relativePosition.y-=e,i}position(t){let i=this.graphic,e=this.annotation.chart,o=e.tooltip,a=this.points[0],l=this.options,h=t.absolutePosition,p=t.relativePosition,d,u,g,f,m=a.series.visible&&s.prototype.isInsidePlot.call(a);if(i&&m){let{width:t=0,height:s=0}=i;l.distance&&o?d=o.getPosition.call({chart:e,distance:r(l.distance,16),getPlayingField:o.getPlayingField},t,s,{plotX:p.x,plotY:p.y,negative:a.negative,ttBelow:a.ttBelow,h:p.height||p.width}):l.positioner?d=l.positioner.call(this):(u={x:h.x,y:h.y,width:0,height:0},d=c.alignedPosition(n(l,{width:t,height:s}),u),"justify"===this.options.overflow&&(d=c.alignedPosition(c.justifiedOptions(e,i,l,d),u))),l.crop&&(g=d.x-e.plotLeft,f=d.y-e.plotTop,m=e.isInsidePlot(g,f)&&e.isInsidePlot(g+t,f+s))}return m?d:null}}return c.attrsMap={backgroundColor:"fill",borderColor:"stroke",borderWidth:"stroke-width",zIndex:"zIndex",borderRadius:"r",padding:"padding"},c.shapesWithoutBackground=["connector"],c}),s(i,"Extensions/Annotations/Controllables/ControllableImage.js",[i["Extensions/Annotations/Controllables/Controllable.js"],i["Extensions/Annotations/Controllables/ControllableLabel.js"]],function(t,i){class s extends t{constructor(t,i,s){super(t,i,s,"shape"),this.type="image",this.translate=super.translateShape}render(t){let i=this.attrsFromOptions(this.options),s=this.options;this.graphic=this.annotation.chart.renderer.image(s.src,0,-9e9,s.width,s.height).attr(i).add(t),this.graphic.width=s.width,this.graphic.height=s.height,super.render()}redraw(t){if(this.graphic){let s=this.anchor(this.points[0]),e=i.prototype.position.call(this,s);e?this.graphic[t?"animate":"attr"]({x:e.x,y:e.y}):this.graphic.attr({x:0,y:-9e9}),this.graphic.placed=!!e}super.redraw(t)}}return s.attrsMap={width:"width",height:"height",zIndex:"zIndex"},s}),s(i,"Core/Chart/ChartNavigationComposition.js",[],function(){var t;return function(t){t.compose=function(t){return t.navigation||(t.navigation=new i(t)),t};class i{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(s=>{s.call(this.chart,t,i)})}}t.Additions=i}(t||(t={})),t}),s(i,"Extensions/Annotations/NavigationBindingsUtilities.js",[i["Core/Utilities.js"]],function(t){let{defined:i,isNumber:s,pick:e}=t,o={backgroundColor:"string",borderColor:"string",borderRadius:"string",color:"string",fill:"string",fontSize:"string",labels:"string",name:"string",stroke:"string",title:"string"};return{annotationsFieldsTypes:o,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),o=i.min,n=i.max,a=e(t.axis.minPointOffset,0);return s(o)&&s(n)&&t.value>=o-a&&t.value<=n+a&&!t.axis.options.isInternal})[0]},getFieldType:function(t,s){let e=o[t],n=typeof s;return i(e)&&(n=e),({string:"text",number:"number",boolean:"checkbox"})[n]}}}),s(i,"Extensions/Annotations/NavigationBindingsDefaults.js",[i["Extensions/Annotations/NavigationBindingsUtilities.js"],i["Core/Utilities.js"]],function(t,i){let{getAssignedAxis:s}=t,{isNumber:e,merge:o}=i;return{lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer.getCoordinates(t),e=s(i.xAxis),n=s(i.yAxis),a=this.chart.options.navigation;if(e&&n)return this.chart.addAnnotation(o({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:e.value,y:n.value,xAxis:e.axis.index,yAxis:n.axis.index},r:5}]},a.annotationsOptions,a.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let s;let o=i.options.shapes,n=o&&o[0]&&o[0].point||{};if(e(n.xAxis)&&e(n.yAxis)){let i=this.chart.inverted,e=this.chart.xAxis[n.xAxis].toPixels(n.x),o=this.chart.yAxis[n.yAxis].toPixels(n.y);s=Math.max(Math.sqrt(Math.pow(i?o-t.chartX:e-t.chartX,2)+Math.pow(i?e-t.chartY:o-t.chartY,2)),5)}i.update({shapes:[{r:s}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer.getCoordinates(t),e=s(i.xAxis),n=s(i.yAxis),a=this.chart.options.navigation;if(e&&n)return this.chart.addAnnotation(o({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:e.axis.index,yAxis:n.axis.index,points:[{x:e.value,y:n.value},{x:e.value,y:n.value}],ry:1}]},a.annotationsOptions,a.bindings.ellipseAnnotation.annotationOptions))},steps:[function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[1]);s.translatePoint(t.chartX-e.x,t.chartY-e.y,1),s.redraw(!1)},function(t,i){let s=i.shapes[0],e=s.getAbsolutePosition(s.points[0]),o=s.getAbsolutePosition(s.points[1]),n=s.getDistanceFromLine(e,o,t.chartX,t.chartY),a=s.getYAxis(),r=Math.abs(a.toValue(0)-a.toValue(n));s.setYRadius(r),s.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer.getCoordinates(t),e=s(i.xAxis),n=s(i.yAxis);if(!e||!n)return;let a=e.value,r=n.value,l=e.axis.index,h=n.axis.index,c=this.chart.options.navigation;return this.chart.addAnnotation(o({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:l,yAxis:h,x:a,y:r},{xAxis:l,yAxis:h,x:a,y:r},{xAxis:l,yAxis:h,x:a,y:r},{xAxis:l,yAxis:h,x:a,y:r},{command:"Z"}]}]},c.annotationsOptions,c.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,o=e&&e[0]&&e[0].points||[],n=this.chart.pointer.getCoordinates(t),a=s(n.xAxis),r=s(n.yAxis);if(a&&r){let t=a.value,s=r.value;o[1].x=t,o[2].x=t,o[2].y=s,o[3].y=s,i.update({shapes:[{points:o}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer.getCoordinates(t),e=s(i.xAxis),n=s(i.yAxis),a=this.chart.options.navigation;if(e&&n)return this.chart.addAnnotation(o({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:e.axis.index,yAxis:n.axis.index,x:e.value,y:n.value}}]},a.annotationsOptions,a.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}}}),s(i,"Extensions/Annotations/NavigationBindings.js",[i["Core/Chart/ChartNavigationComposition.js"],i["Core/Defaults.js"],i["Core/Templating.js"],i["Core/Globals.js"],i["Extensions/Annotations/NavigationBindingsDefaults.js"],i["Extensions/Annotations/NavigationBindingsUtilities.js"],i["Core/Utilities.js"]],function(t,i,s,e,o,n,a){let{setOptions:r}=i,{format:l}=s,{doc:h,win:c}=e,{getFieldType:p}=n,{addEvent:d,attr:u,defined:g,fireEvent:f,isArray:m,isFunction:x,isNumber:v,isObject:b,merge:y,objectEach:A,pick:C}=a,E=[];function P(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function k(){this.navigationBindings&&this.navigationBindings.destroy()}function w(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new N(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function j(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let s=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(s=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let e=this.navigationBindings.container[0];A(t.boundClassNames,(t,o)=>{let n=e.querySelectorAll("."+o);if(n)for(let e=0;e=4;e||o.call(this,t)}})}class N{static compose(t,i){a.pushUnique(E,t)&&(d(t,"remove",P),M(t),A(t.types,t=>{M(t)})),a.pushUnique(E,i)&&(d(i,"destroy",k),d(i,"load",w),d(i,"render",j)),a.pushUnique(E,N)&&(d(N,"closePopup",B),d(N,"deselectButton",O)),a.pushUnique(E,r)&&r(o)}constructor(t,i){this.boundClassNames=void 0,this.selectedButton=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=h.getElementsByClassName(this.options.bindingsClassName||""))}initEvents(){let t=this,i=t.chart,s=t.container,o=t.options;t.boundClassNames={},A(o.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(s,i=>{t.eventsToUnbind.push(d(i,"click",s=>{let e=t.getButtonEvents(i,s);e&&!e.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(e.button,e.events,s)}))}),A(o.events||{},(i,s)=>{x(i)&&t.eventsToUnbind.push(d(t,s,i,{passive:!1}))}),t.eventsToUnbind.push(d(i.container,"click",function(s){!i.cancelClick&&i.isInsidePlot(s.chartX-i.plotLeft,s.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,s)})),t.eventsToUnbind.push(d(i.container,e.isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},e.isTouchDevice?{passive:!1}:void 0))}initUpdate(){let i=this;t.compose(this.chart).navigation.addUpdate(t=>{i.update(t)})}bindingsButtonClick(t,i,s){let e=this.chart,o=e.renderer.boxWrapper,n=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(n=!1),f(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&e.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),n?(this.selectedButton=i,this.selectedButtonElement=t,f(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,s),(i.start||i.steps)&&e.renderer.boxWrapper.addClass("highcharts-draw-mode")):(e.stockTools&&e.stockTools.toggleButtonActiveClass(t),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let s=this.activeAnnotation,e=this.selectedButton,o=t.renderer.boxWrapper;s&&(s.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let s=c.Element.prototype,e=s.matches||s.msMatchesSelector||s.webkitMatchesSelector,o=null;if(s.closest)o=s.closest.call(t,i);else do{if(e.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return o}(i.target,".highcharts-popup")?s.cancelClick&&setTimeout(()=>{s.cancelClick=!1},0):f(this,"closePopup")),e&&e.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,e.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]:(f(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),e.end&&e.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=e.start.call(this,i),this.currentUserDetails&&e.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=e.steps[this.stepIndex]):(f(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,e.end&&e.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return A(t,(t,s)=>{let e=parseFloat(t),o=s.split("."),n=o.length-1;if(!v(e)||t.match(/px|em/g)||s.match(/format/g)||(t=e),"undefined"!==t){let s=i;o.forEach((i,e)=>{let a=C(o[e+1],"");n===e?s[i]=t:(s[i]||(s[i]=a.match(/\d/g)?[]:{}),s=s[i])})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,s=N.annotationsEditable,e=s.nestedOptions,o=C(i.type,i.shapes&&i.shapes[0]&&i.shapes[0].type,i.labels&&i.labels[0]&&i.labels[0].type,"label"),n=N.annotationsNonEditable[i.langKey]||[],a={langKey:i.langKey,type:o};function r(i,s,o,a,h){let c;o&&g(i)&&-1===n.indexOf(s)&&((o.indexOf&&o.indexOf(s))>=0||o[s]||!0===o)&&(m(i)?(a[s]=[],i.forEach((t,i)=>{b(t)?(a[s][i]={},A(t,(t,o)=>{r(t,o,e[s],a[s][i],s)})):r(t,0,e[s],a[s],s)})):b(i)?(c={},m(a)?(a.push(c),c[s]={},c=c[s]):a[s]=c,A(i,(t,i)=>{r(t,i,0===s?o:e[s],c,s)})):"format"===s?a[s]=[l(i,t.labels[0].points[0]).toString(),"text"]:m(a)?a.push([i,p(h,i)]):a[s]=[i,p(s,i)])}return A(i,(t,n)=>{"typeOptions"===n?(a[n]={},A(i[n],(t,i)=>{r(t,i,e,a[n],i)})):r(t,n,s[o],a,n)}),a}getClickedClassNames(t,i){let s=i.target,e=[],o;for(;s&&s.tagName&&((o=u(s,"class"))&&(e=e.concat(o.split(" ").map(t=>[t,s]))),(s=s.parentNode)!==t););return e}getButtonEvents(t,i){let s;let e=this,o=this.getClickedClassNames(t,i);return o.forEach(t=>{e.boundClassNames[t[0]]&&!s&&(s={events:e.boundClassNames[t[0]],button:t[1]})}),s}update(t){this.options=y(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}return N.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},N.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]},N}),s(i,"Shared/BaseForm.js",[i["Core/Renderer/HTML/AST.js"],i["Core/Utilities.js"]],function(t,i){let{addEvent:s,createElement:e}=i;return class{constructor(t,i){this.iconsURL=i,this.container=this.createPopupContainer(t),this.closeButton=this.addCloseButton()}createPopupContainer(t,i="highcharts-popup highcharts-no-tooltip"){return e("div",{className:i},void 0,t)}addCloseButton(t="highcharts-popup-close"){let i=this,o=this.iconsURL,n=e("div",{className:t},void 0,this.container);return n.style["background-image"]="url("+(o.match(/png|svg|jpeg|jpg|gif/ig)?o:o+"close.svg")+")",["click","touchstart"].forEach(t=>{s(n,t,i.closeButtonEvents.bind(i))}),s(document,"keydown",function(t){"Escape"===t.code&&i.closeButtonEvents()}),n}closeButtonEvents(){this.closePopup()}showPopup(i="highcharts-annotation-toolbar"){let s=this.container,e=this.closeButton;this.type=void 0,s.innerHTML=t.emptyHTML,s.className.indexOf(i)>=0&&(s.classList.remove(i),s.removeAttribute("style")),s.appendChild(e),s.style.display="block",s.style.height=""}closePopup(){this.container.style.display="none"}}}),s(i,"Extensions/Annotations/Popup/PopupAnnotations.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let{doc:s,isFirefox:e}=t,{createElement:o,isArray:n,isObject:a,objectEach:r,pick:l,stableSort:h}=i;function c(t,i,l,p,d,u){let g,f;if(!i)return;let m=this.addInput,x=this.lang;r(p,(s,e)=>{g=""!==l?l+"."+e:e,a(s)&&(!n(s)||n(s)&&a(s[0])?((f=x[e]||e).match(/\d/g)||d.push([!0,f,t]),c.call(this,t,i,g,s,d,!1)):d.push([this,g,"annotation",t,s]))}),u&&(h(d,t=>t[1].match(/format/g)?-1:1),e&&d.reverse(),d.forEach(t=>{!0===t[0]?o("span",{className:"highcharts-annotation-title"},void 0,t[2]).appendChild(s.createTextNode(t[1])):(t[4]={value:t[4][0],type:t[4][1]},m.apply(t[0],t.splice(1)))}))}return{addForm:function(t,i,e,n){if(!t)return;let a=this.container,r=this.lang,l=o("h2",{className:"highcharts-popup-main-title"},void 0,a);l.appendChild(s.createTextNode(r[i.langKey]||i.langKey||"")),l=o("div",{className:"highcharts-popup-lhs-col highcharts-popup-lhs-full"},void 0,a);let h=o("div",{className:"highcharts-popup-bottom-row"},void 0,a);c.call(this,l,t,"",i,[],!0),this.addButton(h,n?r.addButton||"Add":r.saveButton||"Save",n?"add":"save",a,e)},addToolbar:function(t,i,e){let n=this.lang,a=this.container,r=this.showForm,h="highcharts-annotation-toolbar";-1===a.className.indexOf(h)&&(a.className+=" "+h+" highcharts-no-mousewheel"),t&&(a.style.top=t.plotTop+10+"px"),o("span",void 0,void 0,a).appendChild(s.createTextNode(l(n[i.langKey]||i.langKey,i.shapes&&i.shapes[0].type,"")));let c=this.addButton(a,n.removeButton||"Remove","remove",a,e);c.className+=" highcharts-annotation-remove-button",c.style["background-image"]="url("+this.iconsURL+"destroy.svg)",c=this.addButton(a,n.editButton||"Edit","edit",a,()=>{r.call(this,"annotation-edit",t,i,e)}),c.className+=" highcharts-annotation-edit-button",c.style["background-image"]="url("+this.iconsURL+"edit.svg)"}}}),s(i,"Extensions/Annotations/Popup/PopupIndicators.js",[i["Core/Renderer/HTML/AST.js"],i["Core/Globals.js"],i["Extensions/Annotations/NavigationBindingsUtilities.js"],i["Core/Series/SeriesRegistry.js"],i["Core/Utilities.js"]],function(t,i,s,e,o){var n,a;let{doc:r}=i,{annotationsFieldsTypes:l}=s,{seriesTypes:h}=e,{addEvent:c,createElement:p,defined:d,isArray:u,isObject:g,objectEach:f,stableSort:m}=o;(a=n||(n={}))[a["params.algorithm"]=0]="params.algorithm",a[a["params.average"]=1]="params.average";let x={"algorithm-pivotpoints":["standard","fibonacci","camarilla"],"average-disparityindex":["sma","ema","dema","tema","wma"]};function v(t){let i=p("div",{className:"highcharts-popup-lhs-col"},void 0,t),s=p("div",{className:"highcharts-popup-rhs-col"},void 0,t);return p("div",{className:"highcharts-popup-rhs-col-wrapper"},void 0,s),{lhsCol:i,rhsCol:s}}function b(i,s,e,o){let n=s.params||s.options.params;o.innerHTML=t.emptyHTML,p("h3",{className:"highcharts-indicator-title"},void 0,o).appendChild(r.createTextNode(j(s,e).indicatorFullName)),p("input",{type:"hidden",name:"highcharts-type-"+e,value:e},void 0,o),B.call(this,e,"series",i,o,s,s.linkedParent&&s.linkedParent.options.id),n.volumeSeriesID&&B.call(this,e,"volume",i,o,s,s.linkedParent&&n.volumeSeriesID),A.call(this,i,"params",n,e,o)}function y(i,s,e,o){let n=this,a=n.lang,l=s.querySelectorAll(".highcharts-popup-lhs-col")[0],h=s.querySelectorAll(".highcharts-popup-rhs-col")[0],d="edit"===e,g=d?i.series:i.options.plotOptions||{};if(!i&&g)return;let f,x=[];d||u(g)?u(g)&&(x=w.call(this,g)):x=k.call(this,g,o),m(x,(t,i)=>{let s=t.indicatorFullName.toLowerCase(),e=i.indicatorFullName.toLowerCase();return se?1:0}),l.children[1]&&l.children[1].remove();let v=p("ul",{className:"highcharts-indicator-list"},void 0,l),y=h.querySelectorAll(".highcharts-popup-rhs-col-wrapper")[0];x.forEach(t=>{let{indicatorFullName:s,indicatorType:e,series:o}=t;(f=p("li",{className:"highcharts-indicator-list"},void 0,v)).appendChild(r.createTextNode(s)),["click","touchstart"].forEach(t=>{c(f,t,function(){let t=y.parentNode.children[1];b.call(n,i,o,e,y),t&&(t.style.display="block"),d&&o.options&&p("input",{type:"hidden",name:"highcharts-id-"+e,value:o.options.id},void 0,y).setAttribute("highcharts-data-series-id",o.options.id)})})}),v.childNodes.length>0?v.childNodes[0].click():d||(t.setElementHTML(y.parentNode.children[0],a.noFilterMatch||""),y.parentNode.children[1].style.display="none")}function A(t,i,s,e,o){if(!t)return;let a=this.addInput;f(s,(s,r)=>{l[r];let h=i+"."+r;if(d(s)&&h){if(g(s)&&(a.call(this,h,e,o,{}),A.call(this,t,h,s,e,o)),h in n){let n=E.call(this,e,h,o);P.call(this,t,i,n,e,r,s)}else"params.volumeSeriesID"===h||u(s)||a.call(this,h,e,o,{value:s,type:"number"})}})}function C(t,i){let s=this,e=i.querySelectorAll(".highcharts-popup-lhs-col")[0],o=this.lang.clearFilter,n=p("div",{className:"highcharts-input-wrapper"},void 0,e),a=function(i){y.call(s,t,s.container,"add",i)},r=this.addInput("searchIndicators","input",n,{value:"",type:"text",htmlFor:"search-indicators",labelClassName:"highcharts-input-search-indicators-label"}),l=p("a",{textContent:o},void 0,n);r.classList.add("highcharts-input-search-indicators"),l.classList.add("clear-filter-button"),c(r,"input",function(t){a(this.value),this.value.length?l.style.display="inline-block":l.style.display="none"}),["click","touchstart"].forEach(t=>{c(l,t,function(){r.value="",a(""),l.style.display="none"})})}function E(t,i,s){let e=i.split("."),o=e[e.length-1],n="highcharts-"+i+"-type-"+t,a=this.lang;p("label",{htmlFor:n},null,s).appendChild(r.createTextNode(a[o]||i));let l=p("select",{name:n,className:"highcharts-popup-field",id:"highcharts-select-"+i},null,s);return l.setAttribute("id","highcharts-select-"+i),l}function P(t,i,s,e,o,n,a){if("series"===i||"volume"===i)t.series.forEach(t=>{let e=t.options,o=e.name||e.params?t.name:e.id||"";"highcharts-navigator-series"!==e.id&&e.id!==(a&&a.options&&a.options.id)&&(d(n)||"volume"!==i||"column"!==t.type||(n=e.id),p("option",{value:e.id},void 0,s).appendChild(r.createTextNode(o)))});else if(e&&o){let t=x[o+"-"+e];t.forEach(t=>{p("option",{value:t},void 0,s).appendChild(r.createTextNode(t))})}d(n)&&(s.value=n)}function k(t,i){let s;this.indicators;let e=this.chart&&this.chart.options.lang,o=e&&e.navigation&&e.navigation.popup&&e.navigation.popup.indicatorAliases,n=[];return f(t,(t,e)=>{let a=t&&t.options;if(t.params||a&&a.params){let{indicatorFullName:a,indicatorType:r}=j(t,e);if(i){let e=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=RegExp(e,"i"),h=o&&o[r]&&o[r].join(" ")||"";(a.match(l)||h.match(l))&&(s={indicatorFullName:a,indicatorType:r,series:t},n.push(s))}else s={indicatorFullName:a,indicatorType:r,series:t},n.push(s)}}),n}function w(t){let i=[];return t.forEach(t=>{t.is("sma")&&i.push({indicatorFullName:t.name,indicatorType:t.type,series:t})}),i}function j(t,i){let s=t.options,e=h[i]&&h[i].prototype.nameBase||i.toUpperCase(),o=i;return s&&s.type&&(o=t.options.type,e=t.name),{indicatorFullName:e,indicatorType:o}}function B(t,i,s,e,o,n){if(this.indicators,!s)return;let a=E.call(this,t,i,e);P.call(this,s,i,a,void 0,void 0,void 0,o),d(n)&&(a.value=n)}return{addForm:function(t,i,s){let e;let o=this.lang;if(!t)return;this.tabs.init.call(this,t);let n=this.container.querySelectorAll(".highcharts-tab-item-content");v(n[0]),C.call(this,t,n[0]),y.call(this,t,n[0],"add"),e=n[0].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.addButton||"add","add",e,s),v(n[1]),y.call(this,t,n[1],"edit"),e=n[1].querySelectorAll(".highcharts-popup-rhs-col")[0],this.addButton(e,o.saveButton||"save","edit",e,s),this.addButton(e,o.removeButton||"remove","remove",e,s)},getAmount:function(){let t=0;return this.series.forEach(i=>{(i.params||i.options.params)&&t++}),t}}}),s(i,"Extensions/Annotations/Popup/PopupTabs.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let{doc:s}=t,{addEvent:e,createElement:o}=i;function n(){let t=this.container;return o("div",{className:"highcharts-tab-item-content highcharts-no-mousewheel"},void 0,t)}function a(t,i){let e=this.container,n=this.lang,a="highcharts-tab-item";0===i&&(a+=" highcharts-tab-disabled");let r=o("span",{className:a},void 0,e);return r.appendChild(s.createTextNode(n[t+"Button"]||t)),r.setAttribute("highcharts-data-tab-type",t),r}function r(){let t=this.container,i=t.querySelectorAll(".highcharts-tab-item"),s=t.querySelectorAll(".highcharts-tab-item-content");for(let t=0;t{(0!==t||"edit"!==s.getAttribute("highcharts-data-tab-type"))&&["click","touchstart"].forEach(t=>{e(s,t,function(){r.call(i),l.call(i,this,o)})})})}return{init:function(t){if(!t)return;let i=this.indicators.getAmount.call(t),s=a.call(this,"add");a.call(this,"edit",i),n.call(this),n.call(this),h.call(this,i),l.call(this,s,0)}}}),s(i,"Extensions/Annotations/Popup/Popup.js",[i["Shared/BaseForm.js"],i["Core/Globals.js"],i["Core/Defaults.js"],i["Extensions/Annotations/Popup/PopupAnnotations.js"],i["Extensions/Annotations/Popup/PopupIndicators.js"],i["Extensions/Annotations/Popup/PopupTabs.js"],i["Core/Utilities.js"]],function(t,i,s,e,o,n,a){let{doc:r}=i,{getOptions:l}=s,{addEvent:h,createElement:c,extend:p,fireEvent:d,pick:u}=a;class g extends t{constructor(t,i,s){super(t,i),this.chart=s,this.lang=(l().lang.navigation||{}).popup||{},h(this.container,"mousedown",()=>{let t=s&&s.navigationBindings&&s.navigationBindings.activeAnnotation;if(t){t.cancelClick=!0;let i=h(r,"click",()=>{setTimeout(()=>{t.cancelClick=!1},0),i()})}})}addInput(t,i,s,e){let o=t.split("."),n=o[o.length-1],a=this.lang,l="highcharts-"+i+"-"+u(e.htmlFor,n);n.match(/^\d+$/)||c("label",{htmlFor:l,className:e.labelClassName},void 0,s).appendChild(r.createTextNode(a[n]||n));let h=c("input",{name:l,value:e.value,type:e.type,className:"highcharts-popup-field"},void 0,s);return h.setAttribute("highcharts-data-name",t),h}closeButtonEvents(){if(this.chart){let t=this.chart.navigationBindings;d(t,"closePopup"),t&&t.selectedButtonElement&&d(t,"deselectButton",{button:t.selectedButtonElement})}else super.closeButtonEvents()}addButton(t,i,s,e,o){let n=c("button",void 0,void 0,t);return n.appendChild(r.createTextNode(i)),o&&["click","touchstart"].forEach(t=>{h(n,t,()=>(this.closePopup(),o(function(t,i){let s=Array.prototype.slice.call(t.querySelectorAll("input")),e=Array.prototype.slice.call(t.querySelectorAll("select")),o=t.querySelectorAll("#highcharts-select-series > option:checked")[0],n=t.querySelectorAll("#highcharts-select-volume > option:checked")[0],a={actionType:i,linkedTo:o&&o.getAttribute("value")||"",fields:{}};return s.forEach(t=>{let i=t.getAttribute("highcharts-data-name"),s=t.getAttribute("highcharts-data-series-id");s?a.seriesId=t.value:i?a.fields[i]=t.value:a.type=t.value}),e.forEach(t=>{let i=t.id;if("highcharts-select-series"!==i&&"highcharts-select-volume"!==i){let s=i.split("highcharts-select-")[1];a.fields[s]=t.value}}),n&&(a.fields["params.volumeSeriesID"]=n.getAttribute("value")||""),a}(e,s))))}),n}showForm(t,i,s,e){i&&(this.showPopup(),"indicators"===t&&this.indicators.addForm.call(this,i,s,e),"annotation-toolbar"===t&&this.annotations.addToolbar.call(this,i,s,e),"annotation-edit"===t&&this.annotations.addForm.call(this,i,s,e),"flag"===t&&this.annotations.addForm.call(this,i,s,e,!0),this.type=t,this.container.style.height=this.container.offsetHeight+"px")}}return p(g.prototype,{annotations:e,indicators:o,tabs:n}),g}),s(i,"Extensions/Annotations/Popup/PopupComposition.js",[i["Extensions/Annotations/Popup/Popup.js"],i["Core/Utilities.js"]],function(t,i){let{addEvent:s,wrap:e}=i,o=[];function n(){this.popup&&this.popup.closePopup()}function a(i){this.popup||(this.popup=new t(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||"https://code.highcharts.com/11.2.0/gfx/stock-icons/",this.chart)),this.popup.showForm(i.formType,this.chart,i.options,i.onSubmit)}function r(t,i){this.inClass(i.target,"highcharts-popup")||t.apply(this,Array.prototype.slice.call(arguments,1))}return{compose:function(t,l){i.pushUnique(o,t)&&(s(t,"closePopup",n),s(t,"showPopup",a)),i.pushUnique(o,l)&&e(l.prototype,"onContainerMouseDown",r)}}}),s(i,"Extensions/Annotations/Annotation.js",[i["Core/Animation/AnimationUtilities.js"],i["Extensions/Annotations/AnnotationChart.js"],i["Extensions/Annotations/AnnotationDefaults.js"],i["Extensions/Annotations/Controllables/ControllableRect.js"],i["Extensions/Annotations/Controllables/ControllableCircle.js"],i["Extensions/Annotations/Controllables/ControllableEllipse.js"],i["Extensions/Annotations/Controllables/ControllablePath.js"],i["Extensions/Annotations/Controllables/ControllableImage.js"],i["Extensions/Annotations/Controllables/ControllableLabel.js"],i["Extensions/Annotations/ControlPoint.js"],i["Extensions/Annotations/ControlTarget.js"],i["Extensions/Annotations/EventEmitter.js"],i["Extensions/Annotations/MockPoint.js"],i["Extensions/Annotations/NavigationBindings.js"],i["Extensions/Annotations/Popup/PopupComposition.js"],i["Core/Utilities.js"]],function(t,i,s,e,o,n,a,r,l,h,c,p,d,u,g,f){let{getDeferredAnimation:m}=t,{destroyObjectProperties:x,erase:v,fireEvent:b,merge:y,pick:A,splat:C}=f;function E(t,i){let s={};return["labels","shapes"].forEach(e=>{let o=t[e];o&&(i[e]?s[e]=C(i[e]).map(function(t,i){return y(o[i],t)}):s[e]=t[e])}),s}class P extends p{static compose(t,s,e){i.compose(P,t,s),l.compose(e),a.compose(t,e),u.compose(P,t),g.compose(u,s)}constructor(t,i){super(),this.coll="annotations",this.animationConfig=void 0,this.graphic=void 0,this.group=void 0,this.labelCollector=void 0,this.labelsGroup=void 0,this.shapesGroup=void 0,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.index=-1,this.labels=[],this.shapes=[],this.options=y(this.defaultOptions,i),this.userOptions=i;let s=E(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.init(t,this.options)}addClipPaths(){this.setClipAxes(),this.clipXAxis&&this.clipYAxis&&this.options.crop&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))}addLabels(){let t=this.options.labels||[];t.forEach((i,s)=>{let e=this.initLabel(i,s);y(!0,t[s],e.options)})}addShapes(){let t=this.options.shapes||[];t.forEach((i,s)=>{let e=this.initShape(i,s);y(!0,t[s],e.options)})}destroy(){let t=this.chart,i=function(t){t.destroy()};this.labels.forEach(i),this.shapes.forEach(i),this.clipXAxis=null,this.clipYAxis=null,v(t.labelCollectors,this.labelCollector),super.destroy(),this.destroyControlTarget(),x(this,t)}destroyItem(t){v(this[t.itemType+"s"],t),t.destroy()}getClipBox(){if(this.clipXAxis&&this.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}}initProperties(t,i){this.setOptions(i);let s=E(this.options,i);this.options.labels=s.labels,this.options.shapes=s.shapes,this.chart=t,this.points=[],this.controlPoints=[],this.coll="annotations",this.userOptions=i,this.labels=[],this.shapes=[]}init(t,i,s=this.index){let e=this.chart,o=this.options.animation;this.index=s,this.linkPoints(),this.addControlPoints(),this.addShapes(),this.addLabels(),this.setLabelCollector(),this.animationConfig=m(e,o)}initLabel(t,i){let s=y(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},t),e=new l(this,s,i);return e.itemType="label",this.labels.push(e),e}initShape(t,i){let s=y(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},t),e=new P.shapesMap[s.type](this,s,i);return e.itemType="shape",this.shapes.push(e),e}redraw(t){this.linkPoints(),this.graphic||this.render(),this.clipRect&&this.clipRect.animate(this.getClipBox()),this.redrawItems(this.shapes,t),this.redrawItems(this.labels,t),this.redrawControlPoints(t)}redrawItem(t,i){t.linkPoints(),t.shouldBeDrawn()?(t.graphic||this.renderItem(t),t.redraw(A(i,!0)&&t.graphic.placed),t.points.length&&function(t){let i=t.graphic,s=t.points.some(t=>!1!==t.series.visible&&!1!==t.visible);i&&(s?"hidden"===i.visibility&&i.show():i.hide())}(t)):this.destroyItem(t)}redrawItems(t,i){let s=t.length;for(;s--;)this.redrawItem(t[s],i)}remove(){return this.chart.removeAnnotation(this)}render(){let t=this.chart.renderer;this.graphic=t.g("annotation").attr({opacity:0,zIndex:this.options.zIndex,visibility:this.options.visible?"inherit":"hidden"}).add(),this.shapesGroup=t.g("annotation-shapes").add(this.graphic),this.options.crop&&this.shapesGroup.clip(this.chart.plotBoxClip),this.labelsGroup=t.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(),this.renderControlPoints()}renderItem(t){t.render("label"===t.itemType?this.labelsGroup:this.shapesGroup)}renderItems(t){let i=t.length;for(;i--;)this.renderItem(t[i])}setClipAxes(){let t=this.chart.xAxis,i=this.chart.yAxis,s=(this.options.labels||[]).concat(this.options.shapes||[]).reduce((s,e)=>{let o=e&&(e.point||e.points&&e.points[0]);return[t[o&&o.xAxis]||s[0],i[o&&o.yAxis]||s[1]]},[]);this.clipXAxis=s[0],this.clipYAxis=s[1]}setControlPointsVisibility(t){let i=function(i){i.setControlPointsVisibility(t)};this.controlPoints.forEach(i=>{i.setVisibility(t)}),this.shapes.forEach(i),this.labels.forEach(i)}setLabelCollector(){let t=this;t.labelCollector=function(){return t.labels.reduce(function(t,i){return i.options.allowOverlap||t.push(i.graphic),t},[])},t.chart.labelCollectors.push(t.labelCollector)}setOptions(t){this.options=y(this.defaultOptions,t)}setVisibility(t){let i=this.options,s=this.chart.navigationBindings,e=A(t,!i.visible);if(this.graphic.attr("visibility",e?"inherit":"hidden"),!e){let t=function(t){t.setControlPointsVisibility(e)};this.shapes.forEach(t),this.labels.forEach(t),s.activeAnnotation===this&&s.popup&&"annotation-toolbar"===s.popup.type&&b(s,"closePopup")}i.visible=e}update(t,i){let s=this.chart,e=E(this.userOptions,t),o=s.annotations.indexOf(this),n=y(!0,this.userOptions,t);n.labels=e.labels,n.shapes=e.shapes,this.destroy(),this.initProperties(s,n),this.init(s,n),s.options.annotations[o]=n,this.isUpdating=!0,A(i,!0)&&s.redraw(),b(this,"afterUpdate"),this.isUpdating=!1}}return P.ControlPoint=h,P.MockPoint=d,P.shapesMap={rect:e,circle:o,ellipse:n,path:a,image:r},P.types={},P.prototype.defaultOptions=s,P.prototype.nonDOMEvents=["add","afterUpdate","drag","remove"],c.compose(P),P}),s(i,"masters/modules/annotations.src.js",[i["Core/Globals.js"],i["Extensions/Annotations/Annotation.js"]],function(t,i){t.Annotation=i,i.compose(t.Chart,t.Pointer,t.SVGRenderer)})});//# sourceMappingURL=annotations.js.map