!/**
 * Highstock JS v12.5.0 (2026-01-12)
 * @module highcharts/indicators/aroon
 * @requires highcharts
 * @requires highcharts/modules/stock
 *
 * Indicator series type for Highcharts Stock
 *
 * (c) 2010-2026 Highsoft AS
 * Author: Wojciech Chmiel
 *
 * A commercial license may be required depending on use.
 * See www.highcharts.com/license
 */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/aroon",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/aroon"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var o,r={512:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;var o=a[t]={exports:{}};return r[t](o,o.exports,i),o.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>b});var s=i(944),p=i.n(s),l=i(512),h=i.n(l);let{sma:{prototype:c}}=h().seriesTypes,{defined:u,error:f,merge:d}=p();!function(t){let e=["bottomLine"],o=["top","bottom"],r=["top"];function a(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function i(t,e){let o=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&o.push(a(t))}),o}function n(){let t=this,e=t.pointValKey,o=t.linesApiNames,r=t.areaLinesNames,n=t.points,s=t.options,p=t.graph,l={options:{gapSize:s.gapSize}},h=[],y=i(t,e),g=n.length,m;if(y.forEach((t,e)=>{for(h[e]=[];g--;)m=n[g],h[e].push({x:m.x,plotX:m.plotX,plotY:m[t],isNull:!u(m[t])});g=n.length}),t.userOptions.fillColor&&r.length){let e=h[y.indexOf(a(r[0]))],o=1===r.length?n:h[y.indexOf(a(r[1]))],i=t.color;t.points=o,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=d(n,l),t.graph=t.area,t.fillGraph=!0,c.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=i}o.forEach((e,o)=>{h[o]?(t.points=h[o],s[e]?t.options=d(s[e].styles,l):f('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],c.drawGraph.call(t),t["graph"+e]=t.graph):f('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=n,t.options=s,t.graph=p,c.drawGraph.call(t)}function s(t){let e,o=[],r=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=c.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",o=c.getGraphPath.call(this,t),r=e.slice(0,o.length);for(let t=r.length-1;t>=0;t--)o.push(r[t])}}else o=c.getGraphPath.apply(this,arguments);return o}function p(t){let e=[];return(this.pointArrayMap||[]).forEach(o=>{e.push(t[o])}),e}function l(){let t=this.pointArrayMap,e=[],o;e=i(this),c.translate.apply(this,arguments),this.points.forEach(r=>{t.forEach((t,a)=>{o=r[t],this.dataModify&&(o=this.dataModify.modifyValue(o)),null!==o&&(r[e[a]]=this.yAxis.toPixels(o,!0))})})}t.compose=function(t){let a=t.prototype;return a.linesApiNames=a.linesApiNames||e.slice(),a.pointArrayMap=a.pointArrayMap||o.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||r.slice(),a.drawGraph=n,a.getGraphPath=s,a.toYData=p,a.translate=l,t}}(o||(o={}));let y=o,{sma:g}=h().seriesTypes,{extend:m,merge:x,pick:A}=p();function v(t,e){let o=t[0],r=0,a;for(a=1;a<t.length;a++)("max"===e&&t[a]>=o||"min"===e&&t[a]<=o)&&(o=t[a],r=a);return r}class w extends g{getValues(t,e){let o,r,a,i,n,s=e.period,p=t.xData,l=t.yData,h=l?l.length:0,c=[],u=[],f=[];for(i=s-1;i<h;i++)a=v((n=l.slice(i-s+1,i+2)).map(function(t){return A(t[2],t)}),"min"),o=v(n.map(function(t){return A(t[1],t)}),"max")/s*100,r=a/s*100,p[i+1]&&(c.push([p[i+1],o,r]),u.push(p[i+1]),f.push([o,r]));return{values:c,xData:u,yData:f}}}w.defaultOptions=x(g.defaultOptions,{params:{index:void 0,period:25},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),m(w.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),y.compose(w),h().registerSeriesType("aroon",w);let b=p();return n.default})());