/**
 * Highstock JS v11.3.0 (2024-01-10)
 *
 * Indicator series type for Highcharts Stock
 *
 * (c) 2010-2024 Wojciech Chmiel
 *
 * 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/indicators/aroon-oscillator",["highcharts","highcharts/modules/stock"],function(o){return t(o),t.Highcharts=o,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var o=t?t._modules:{};function e(t,o,e,n){t.hasOwnProperty(o)||(t[o]=n.apply(null,e),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:o,module:t[o]}})))}e(o,"Stock/Indicators/MultipleLinesComposition.js",[o["Core/Series/SeriesRegistry.js"],o["Core/Utilities.js"]],function(t,o){var e,n=t.seriesTypes.sma.prototype,i=o.defined,r=o.error,a=o.merge;return function(t){var o=["bottomLine"],e=["top","bottom"],s=["top"];function p(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function l(t,o){var e=[];return(t.pointArrayMap||[]).forEach(function(t){t!==o&&e.push(p(t))}),e}function c(){var t,o=this,e=o.pointValKey,s=o.linesApiNames,c=o.areaLinesNames,h=o.points,u=o.options,f=o.graph,y={options:{gapSize:u.gapSize}},d=[],g=l(o,e),m=h.length;if(g.forEach(function(o,e){for(d[e]=[];m--;)t=h[m],d[e].push({x:t.x,plotX:t.plotX,plotY:t[o],isNull:!i(t[o])});m=h.length}),o.userOptions.fillColor&&c.length){var v=d[g.indexOf(p(c[0]))],A=1===c.length?h:d[g.indexOf(p(c[1]))],x=o.color;o.points=A,o.nextPoints=v,o.color=o.userOptions.fillColor,o.options=a(h,y),o.graph=o.area,o.fillGraph=!0,n.drawGraph.call(o),o.area=o.graph,delete o.nextPoints,delete o.fillGraph,o.color=x}s.forEach(function(t,e){d[e]?(o.points=d[e],u[t]?o.options=a(u[t].styles,y):r('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),o.graph=o["graph"+t],n.drawGraph.call(o),o["graph"+t]=o.graph):r('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),o.points=h,o.options=u,o.graph=f,n.drawGraph.call(o)}function h(t){var o,e=[],i=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((o=n.getGraphPath.call(this,this.nextPoints))&&o.length){o[0][0]="L",e=n.getGraphPath.call(this,t),i=o.slice(0,e.length);for(var r=i.length-1;r>=0;r--)e.push(i[r])}}else e=n.getGraphPath.apply(this,arguments);return e}function u(t){var o=[];return(this.pointArrayMap||[]).forEach(function(e){o.push(t[e])}),o}function f(){var t,o=this,e=this.pointArrayMap,i=[];i=l(this),n.translate.apply(this,arguments),this.points.forEach(function(n){e.forEach(function(e,r){t=n[e],o.dataModify&&(t=o.dataModify.modifyValue(t)),null!==t&&(n[i[r]]=o.yAxis.toPixels(t,!0))})})}t.compose=function(t){var n=t.prototype;return n.linesApiNames=n.linesApiNames||o.slice(),n.pointArrayMap=n.pointArrayMap||e.slice(),n.pointValKey=n.pointValKey||"top",n.areaLinesNames=n.areaLinesNames||s.slice(),n.drawGraph=c,n.getGraphPath=h,n.toYData=u,n.translate=f,t}}(e||(e={})),e}),e(o,"Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js",[o["Stock/Indicators/MultipleLinesComposition.js"],o["Core/Series/SeriesRegistry.js"],o["Core/Utilities.js"]],function(t,o,e){var n,i=this&&this.__extends||(n=function(t,o){return(n=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&(t[e]=o[e])})(t,o)},function(t,o){if("function"!=typeof o&&null!==o)throw TypeError("Class extends value "+String(o)+" is not a constructor or null");function e(){this.constructor=t}n(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}),r=o.seriesTypes.aroon,a=e.extend,s=e.merge,p=function(t){function o(){return null!==t&&t.apply(this,arguments)||this}return i(o,t),o.prototype.getValues=function(o,e){var n,i,r=[],a=[],s=[],p=t.prototype.getValues.call(this,o,e);for(i=0;i<p.yData.length;i++)n=p.yData[i][0]-p.yData[i][1],r.push([p.xData[i],n]),a.push(p.xData[i]),s.push(n);return{values:r,xData:a,yData:s}},o.defaultOptions=s(r.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b>: {point.y}'}}),o}(r);return a(p.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),t.compose(r),o.registerSeriesType("aroonoscillator",p),p}),e(o,"masters/indicators/aroon-oscillator.src.js",[],function(){})});