!/**
 * Highstock JS v13.0.0 (2026-06-11)
 * @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,function(t,e){return function(){"use strict";var r,o,a={512:function(t){t.exports=e},944:function(e){e.exports=t}},i={};function n(t){var e=i[t];if(void 0!==e)return e.exports;var r=i[t]={exports:{}};return a[t](r,r.exports,n),r.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var s={};n.d(s,{default:function(){return m}});var p=n(944),l=n.n(p),c=n(512),h=n.n(c),u=h().seriesTypes.sma.prototype;!function(t){var e=["bottomLine"],r=["top","bottom"],o=["top"];function a(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function i(t,e){var r=[];return(t.pointArrayMap||[]).forEach(function(t){t!==e&&r.push(a(t))}),r}function n(){var t,e=this,r=e.pointValKey,o=e.linesApiNames,n=e.areaLinesNames,s=e.points,l=e.options,c=e.graph,h={options:{gapSize:l.gapSize}},f=[],d=i(e,r),y=s.length;if(d.forEach(function(e,r){for(f[r]=[];y--;)t=s[y],f[r].push({x:t.x,plotX:t.plotX,plotY:t[e],isNull:!(0,p.defined)(t[e])});y=s.length}),e.userOptions.fillColor&&n.length){var g=f[d.indexOf(a(n[0]))],m=1===n.length?s:f[d.indexOf(a(n[1]))],x=e.color;e.points=m,e.nextPoints=g,e.color=e.userOptions.fillColor,e.options=(0,p.merge)(s,h),e.graph=e.area,e.fillGraph=!0,u.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=x}o.forEach(function(t,r){f[r]?(e.points=f[r],l[t]?e.options=(0,p.merge)(l[t].styles,h):(0,p.error)('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],u.drawGraph.call(e),e["graph"+t]=e.graph):(0,p.error)('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=l,e.graph=c,u.drawGraph.call(e)}function s(t){var e,r=[],o=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=u.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",r=u.getGraphPath.call(this,t),o=e.slice(0,r.length);for(var a=o.length-1;a>=0;a--)r.push(o[a])}}else r=u.getGraphPath.apply(this,arguments);return r}function l(t){var e=[];return(this.pointArrayMap||[]).forEach(function(r){e.push(t[r])}),e}function c(){var t,e=this,r=this.pointArrayMap,o=[];o=i(this),u.translate.apply(this,arguments),this.points.forEach(function(a){r.forEach(function(r,i){t=a[r],e.dataModify&&(t=e.dataModify.modifyValue(t)),null!==t&&(a[o[i]]=e.yAxis.toPixels(t,!0))})})}t.compose=function(t){var a=t.prototype;return a.linesApiNames=a.linesApiNames||e.slice(),a.pointArrayMap=a.pointArrayMap||r.slice(),a.pointValKey=a.pointValKey||"top",a.areaLinesNames=a.areaLinesNames||o.slice(),a.drawGraph=n,a.getGraphPath=s,a.toYData=l,a.translate=c,t}}(o||(o={}));var f=o,d=(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),y=h().seriesTypes.sma,g=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return d(e,t),e.prototype.getValues=function(e,r){var o,a,i,n,s,l,c,h,u,f,d,y,g,m,x,v=r.period,A=r.factor,b=r.index,D=e.xData,O=e.yData,_=O?O.length:0,P=[],w=[],G=[],M=[],N=[];if(!(_<v)){for(x=0;x<=_;x++)x<_&&(o=O[x][2],a=O[x][1],u=(0,p.correctFloat)(a-o)/((0,p.correctFloat)(a+o)/2)*1e3*A,P.push((i=O[x][1],i*(0,p.correctFloat)(1+2*u))),w.push((n=O[x][2],n*(0,p.correctFloat)(1-2*u)))),x>=v&&(g=D.slice(x-v,x),m=O.slice(x-v,x),d=t.prototype.getValues.call(this,{xData:g,yData:P.slice(x-v,x)},{period:v}),y=t.prototype.getValues.call(this,{xData:g,yData:w.slice(x-v,x)},{period:v}),h=(f=t.prototype.getValues.call(this,{xData:g,yData:m},{period:v,index:b})).xData[0],l=d.yData[0],c=y.yData[0],s=f.yData[0],G.push([h,l,s,c]),M.push(h),N.push([l,s,c]));return{values:G,xData:M,yData:N}}},e.defaultOptions=(0,p.merge)(y.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),e}(y);(0,p.extend)(g.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),f.compose(g),h().registerSeriesType("abands",g);var m=l();return s.default}()});