File: /var/www/quadcode/frontend/node_modules/highcharts/indicators/price-channel.js
/*
Highstock JS v10.3.3 (2023-01-20)
Indicator series type for Highcharts Stock
(c) 2010-2021 Daniel Studencki
License: www.highcharts.com/license
*/
(function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/indicators/price-channel",["highcharts","highcharts/modules/stock"],function(k){a(k);a.Highcharts=k;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function k(a,c,g,f){a.hasOwnProperty(c)||(a[c]=f.apply(null,g),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:c,module:a[c]}})))}
a=a?a._modules:{};k(a,"Stock/Indicators/ArrayUtilities.js",[],function(){return{getArrayExtremes:function(a,c,g){return a.reduce(function(a,l){return[Math.min(a[0],l[c]),Math.max(a[1],l[g])]},[Number.MAX_VALUE,-Number.MAX_VALUE])}}});k(a,"Stock/Indicators/MultipleLinesComposition.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,c){var g=a.seriesTypes.sma.prototype,k=c.defined,l=c.error,v=c.merge,h;(function(a){function c(b){return"plot"+b.charAt(0).toUpperCase()+b.slice(1)}
function w(b,a){var p=[];(b.pointArrayMap||[]).forEach(function(b){b!==a&&p.push(c(b))});return p}function t(){var b=this,a=b.linesApiNames,n=b.areaLinesNames,e=b.points,d=b.options,u=b.graph,t={options:{gapSize:d.gapSize}},q=[],r=w(b,b.pointValKey),h=e.length,f;r.forEach(function(b,a){for(q[a]=[];h--;)f=e[h],q[a].push({x:f.x,plotX:f.plotX,plotY:f[b],isNull:!k(f[b])});h=e.length});if(b.userOptions.fillColor&&n.length){var m=r.indexOf(c(n[0]));m=q[m];n=1===n.length?e:q[r.indexOf(c(n[1]))];r=b.color;
b.points=n;b.nextPoints=m;b.color=b.userOptions.fillColor;b.options=v(e,t);b.graph=b.area;b.fillGraph=!0;g.drawGraph.call(b);b.area=b.graph;delete b.nextPoints;delete b.fillGraph;b.color=r}a.forEach(function(a,p){q[p]?(b.points=q[p],d[a]?b.options=v(d[a].styles,t):l('Error: "There is no '+a+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),b.graph=b["graph"+a],g.drawGraph.call(b),b["graph"+a]=b.graph):l('Error: "'+a+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")});
b.points=e;b.options=d;b.graph=u;g.drawGraph.call(b)}function d(b){var a,d=[];b=b||this.points;if(this.fillGraph&&this.nextPoints){if((a=g.getGraphPath.call(this,this.nextPoints))&&a.length){a[0][0]="L";d=g.getGraphPath.call(this,b);a=a.slice(0,d.length);for(var e=a.length-1;0<=e;e--)d.push(a[e])}}else d=g.getGraphPath.apply(this,arguments);return d}function u(b){var a=[];(this.pointArrayMap||[]).forEach(function(d){a.push(b[d])});return a}function q(){var b=this,a=this.pointArrayMap,d=[],e;d=w(this);
g.translate.apply(this,arguments);this.points.forEach(function(p){a.forEach(function(a,c){e=p[a];b.dataModify&&(e=b.dataModify.modifyValue(e));null!==e&&(p[d[c]]=b.yAxis.toPixels(e,!0))})})}var r=[],h=["bottomLine"],f=["top","bottom"],y=["top"];a.compose=function(b){if(-1===r.indexOf(b)){r.push(b);var a=b.prototype;a.linesApiNames=a.linesApiNames||h.slice();a.pointArrayMap=a.pointArrayMap||f.slice();a.pointValKey=a.pointValKey||"top";a.areaLinesNames=a.areaLinesNames||y.slice();a.drawGraph=t;a.getGraphPath=
d;a.toYData=u;a.translate=q}return b}})(h||(h={}));return h});k(a,"Stock/Indicators/PC/PCIndicator.js",[a["Stock/Indicators/ArrayUtilities.js"],a["Stock/Indicators/MultipleLinesComposition.js"],a["Core/Color/Palettes.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,c,g,f,l){var k=this&&this.__extends||function(){var a=function(c,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,d){a.__proto__=d}||function(a,d){for(var c in d)d.hasOwnProperty(c)&&(a[c]=
d[c])};return a(c,d)};return function(c,d){function g(){this.constructor=c}a(c,d);c.prototype=null===d?Object.create(d):(g.prototype=d.prototype,new g)}}(),h=f.seriesTypes.sma,x=l.merge;l=l.extend;var m=function(c){function f(){var a=null!==c&&c.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}k(f,c);f.prototype.getValues=function(d,c){c=c.period;var g=d.xData,f=(d=d.yData)?d.length:0,h=[],k=[],l=[],b;if(!(f<c)){for(b=c;b<=f;b++){var p=g[b-1];var n=d.slice(b-c,b);
var e=a.getArrayExtremes(n,2,1);n=e[1];var m=e[0];e=(n+m)/2;h.push([p,n,e,m]);k.push(p);l.push([n,e,m])}return{values:h,xData:k,yData:l}}};f.defaultOptions=x(h.defaultOptions,{params:{index:void 0,period:20},lineWidth:1,topLine:{styles:{lineColor:g.colors[2],lineWidth:1}},bottomLine:{styles:{lineColor:g.colors[8],lineWidth:1}},dataGrouping:{approximation:"averages"}});return f}(h);l(m.prototype,{areaLinesNames:["top","bottom"],nameBase:"Price Channel",nameComponents:["period"],linesApiNames:["topLine",
"bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"});c.compose(m);f.registerSeriesType("pc",m);"";return m});k(a,"masters/indicators/price-channel.src.js",[],function(){})});
//# sourceMappingURL=price-channel.js.map