!/**
 * Highstock JS v12.6.0 (2026-04-13)
 * @module highcharts/indicators/acceleration-bands
 * @requires highcharts
 * @requires highcharts/modules/stock
 *
 * Indicator series type for Highcharts Stock
 *
 * (c) 2010-2026 Highsoft AS
 * Author: Daniel Studencki
 *
 * 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/acceleration-bands",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/acceleration-bands"]=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,a={512:t=>{t.exports=e},944:e=>{e.exports=t}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return a[t](r,r.exports,i),r.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 r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};i.d(n,{default:()=>D});var s=i(944),p=i.n(s),l=i(512),h=i.n(l);let{doc:c,win:u}=p();function f(t,e){return t>1e14?t:parseFloat(t.toPrecision(e||14))}function d(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 g(t,...e){let r,a=[t,...e],o={},i=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,a){if("__proto__"!==a&&"constructor"!==a){let o;!y(r,!0)||(o=r?.constructor,y(r,!0)&&!d(r)&&o?.name&&"Object"!==o.name)||d(r)?t[a]=e[a]:t[a]=i(t[a]||{},r)}}),t};!0===t&&(o=a[1],a=Array.prototype.slice.call(a,2));let n=a.length;for(r=0;r<n;r++)o=i(o,a[r]);return o}Array.prototype.find;let{sma:{prototype:m}}=h().seriesTypes;!function(t){let e=["bottomLine"],r=["top","bottom"],a=["top"];function o(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function i(t,e){let r=[];return(t.pointArrayMap||[]).forEach(t=>{t!==e&&r.push(o(t))}),r}function n(){let t=this,e=t.pointValKey,r=t.linesApiNames,a=t.areaLinesNames,n=t.points,p=t.options,l=t.graph,h={options:{gapSize:p.gapSize}},c=[],u=i(t,e),f=n.length,d;if(u.forEach((t,e)=>{for(c[e]=[];f--;)d=n[f],c[e].push({x:d.x,plotX:d.plotX,plotY:d[t],isNull:null==d[t]});f=n.length}),t.userOptions.fillColor&&a.length){let e=c[u.indexOf(o(a[0]))],r=1===a.length?n:c[u.indexOf(o(a[1]))],i=t.color;t.points=r,t.nextPoints=e,t.color=t.userOptions.fillColor,t.options=g(n,h),t.graph=t.area,t.fillGraph=!0,m.drawGraph.call(t),t.area=t.graph,delete t.nextPoints,delete t.fillGraph,t.color=i}r.forEach((e,r)=>{c[r]?(t.points=c[r],p[e]?t.options=g(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=n,t.options=p,t.graph=l,m.drawGraph.call(t)}function p(t){let e,r=[],a=[];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),a=e.slice(0,r.length);for(let t=a.length-1;t>=0;t--)r.push(a[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=i(this),m.translate.apply(this,arguments),this.points.forEach(a=>{t.forEach((t,o)=>{r=a[t],this.dataModify&&(r=this.dataModify.modifyValue(r)),null!==r&&(a[e[o]]=this.yAxis.toPixels(r,!0))})})}t.compose=function(t){let o=t.prototype;return o.linesApiNames=o.linesApiNames||e.slice(),o.pointArrayMap=o.pointArrayMap||r.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=n,o.getGraphPath=p,o.toYData=l,o.translate=h,t}}(r||(r={}));let x=r,{sma:b}=h().seriesTypes;class A extends b{getValues(t,e){let r,a,o,i,n,s,p,l,h,c,u,d=e.period,y=e.factor,g=e.index,m=t.xData,x=t.yData,b=x?x.length:0,A=[],D=[],O=[],v=[],P=[];if(!(b<d)){for(u=0;u<=b;u++){if(u<b){var j,G;j=x[u][2],G=x[u][1],n=f(G-j)/(f(G+j)/2)*1e3*y,A.push(x[u][1]*f(1+2*n)),D.push(x[u][2]*f(1-2*n))}u>=d&&(h=m.slice(u-d,u),c=x.slice(u-d,u),p=super.getValues.call(this,{xData:h,yData:A.slice(u-d,u)},{period:d}),l=super.getValues.call(this,{xData:h,yData:D.slice(u-d,u)},{period:d}),i=(s=super.getValues.call(this,{xData:h,yData:c},{period:d,index:g})).xData[0],a=p.yData[0],o=l.yData[0],r=s.yData[0],O.push([i,a,r,o]),v.push(i),P.push([a,r,o]))}return{values:O,xData:v,yData:P}}}}A.defaultOptions=g(b.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),function(t,e){let r;for(r in t||(t={}),e)t[r]=e[r]}(A.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),x.compose(A),h().registerSeriesType("abands",A);let D=p();return n.default})());