!/**
 * Highstock JS v12.6.0 (2026-04-13)
 * @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 r,o={512:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var r=n[t]={exports:{}};return o[t](r,r.exports,a),r.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var i={};a.d(i,{default:()=>v});var s=a(944),p=a.n(s),l=a(512),h=a.n(l);let{doc:c,win:u}=p();function f(t){return y(t)&&"number"==typeof t.nodeType}function y(t,e){let r;return!!t&&"object"==typeof t&&(!e||"[object Array]"!==(r=Object.prototype.toString.call(t))&&"[object Array Iterator]"!==r)}function d(t,...e){let r,o=[t,...e],n={},a=function(t,e){return"object"!=typeof t&&(t={}),function(t,e,r){for(let r in t)Object.hasOwnProperty.call(t,r)&&e.call((0,t[r]),t[r],r,t)}(e,function(r,o){if("__proto__"!==o&&"constructor"!==o){let n;!y(r,!0)||(n=r?.constructor,y(r,!0)&&!f(r)&&n?.name&&"Object"!==n.name)||f(r)?t[o]=e[o]:t[o]=a(t[o]||{},r)}}),t};!0===t&&(n=o[1],o=Array.prototype.slice.call(o,2));let i=o.length;for(r=0;r<i;r++)n=a(n,o[r]);return n}function g(){let t=arguments,e=t.length;for(let r=0;r<e;r++){let e=t[r];if(null!=e)return e}}Array.prototype.find;let{sma:{prototype:m}}=h().seriesTypes;!function(t){let e=["bottomLine"],r=["top","bottom"],o=["top"];function n(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function a(t,e){let r=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&r.push(n(t))}),r}function i(){let t=this,e=t.pointValKey,r=t.linesApiNames,o=t.areaLinesNames,i=t.points,p=t.options,l=t.graph,h={options:{gapSize:p.gapSize}},c=[],u=a(t,e),f=i.length,y;if(u.forEach((t,e)=>{for(c[e]=[];f--;)y=i[f],c[e].push({x:y.x,plotX:y.plotX,plotY:y[t],isNull:null==y[t]});f=i.length}),t.userOptions.fillColor&&o.length){let e=c[u.indexOf(n(o[0]))],r=1===o.length?i:c[u.indexOf(n(o[1]))],a=t.color;t.points=r,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=d(i,h),t.graph=t.area,t.fillGraph=!0,m.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=a}r.forEach((e,r)=>{c[r]?(t.points=c[r],p[e]?t.options=d(p[e].styles,h):(0,s.error)('Error: "There is no '+e+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),t.graph=t["graph"+e],m.drawGraph.call(t),t["graph"+e]=t.graph):(0,s.error)('Error: "'+e+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),t.points=i,t.options=p,t.graph=l,m.drawGraph.call(t)}function p(t){let e,r=[],o=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=m.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",r=m.getGraphPath.call(this,t),o=e.slice(0,r.length);for(let t=o.length-1;t>=0;t--)r.push(o[t])}}else r=m.getGraphPath.apply(this,arguments);return r}function l(t){let e=[];return(this.pointArrayMap||[]).forEach(r=>{e.push(t[r])}),e}function h(){let t=this.pointArrayMap,e=[],r;e=a(this),m.translate.apply(this,arguments),this.points.forEach(o=>{t.forEach((t,n)=>{r=o[t],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(o[e[n]]=this.yAxis.toPixels(r,!0))})})}t.compose=function(t){let n=t.prototype;return n.linesApiNames=n.linesApiNames||e.slice(),n.pointArrayMap=n.pointArrayMap||r.slice(),n.pointValKey=n.pointValKey||"top",n.areaLinesNames=n.areaLinesNames||o.slice(),n.drawGraph=i,n.getGraphPath=p,n.toYData=l,n.translate=h,t}}(r||(r={}));let x=r,{sma:A}=h().seriesTypes;function b(t,e){let r=t[0],o=0,n;for(n=1;n<t.length;n++)("max"===e&&t[n]>=r||"min"===e&&t[n]<=r)&&(r=t[n],o=n);return o}class w extends A{getValues(t,e){let r,o,n,a,i,s=e.period,p=t.xData,l=t.yData,h=l?l.length:0,c=[],u=[],f=[];for(a=s-1;a<h;a++)n=b((i=l.slice(a-s+1,a+2)).map(function(t){return g(t[2],t)}),"min"),r=b(i.map(function(t){return g(t[1],t)}),"max")/s*100,o=n/s*100,p[a+1]&&(c.push([p[a+1],r,o]),u.push(p[a+1]),f.push([r,o]));return{values:c,xData:u,yData:f}}}w.defaultOptions=d(A.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"}}),function(t,e){let r;for(r in t||(t={}),e)t[r]=e[r]}(w.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),x.compose(w),h().registerSeriesType("aroon",w);let v=p();return i.default})());