indicators.js 4.12 KB
/*
 Highstock JS v7.2.0 (2019-09-03)

 Indicator series type for Highstock

 (c) 2010-2019 Pawel Fus, Sebastian Bochan

 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/indicators",["highcharts","highcharts/modules/stock"],function(f){a(f);a.Highcharts=f;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function f(a,e,r,u){a.hasOwnProperty(e)||(a[e]=u.apply(null,r))}a=a?a._modules:{};f(a,"mixins/indicator-required.js",[a["parts/Globals.js"]],function(a){var p=a.error;return{isParentLoaded:function(a,
e,f,h,k){if(a)return h?h(a):!0;p(k||this.generateMessage(f,e));return!1},generateMessage:function(a,p){return'Error: "'+a+'" indicator type requires "'+p+'" indicator loaded before. Please read docs: https://api.highcharts.com/highstock/plotOptions.'+a}}});f(a,"indicators/indicators.src.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["mixins/indicator-required.js"]],function(a,e,f){var p=e.isArray,r=e.splat,h=a.pick,k=a.error,l=a.Series,m=a.addEvent;e=a.seriesType;var t=a.seriesTypes,q=a.seriesTypes.ohlc.prototype,
v=f.generateMessage;m(a.Series,"init",function(d){d=d.options;d.useOhlcData&&"highcharts-navigator-series"!==d.id&&a.extend(this,{pointValKey:q.pointValKey,keys:q.keys,pointArrayMap:q.pointArrayMap,toYData:q.toYData})});m(l,"afterSetOptions",function(a){a=a.options;var d=a.dataGrouping;d&&a.useOhlcData&&"highcharts-navigator-series"!==a.id&&(d.approximation="ohlc")});e("sma","line",{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:0,period:14}},{processData:function(){var a=
this.options.compareToMain,c=this.linkedParent;l.prototype.processData.apply(this,arguments);c&&c.compareValue&&a&&(this.compareValue=c.compareValue)},bindTo:{series:!0,eventName:"updatedData"},hasDerivedData:!0,useCommonDataGrouping:!0,nameComponents:["period"],nameSuffixes:[],calculateOn:"init",requiredIndicators:[],requireIndicators:function(){var a={allLoaded:!0};this.requiredIndicators.forEach(function(d){t[d]?t[d].prototype.requireIndicators():(a.allLoaded=!1,a.needed=d)});return a},init:function(a,
c){function d(){var a=b.points||[],d=(b.xData||[]).length,c=b.getValues(b.linkedParent,b.options.params)||{values:[],xData:[],yData:[]},f=[],e=!0;if(d&&!b.hasGroupedData&&b.visible&&b.points)if(b.cropped){if(b.xAxis){var g=b.xAxis.min;var w=b.xAxis.max}d=b.cropData(c.xData,c.yData,g,w);for(g=0;g<d.xData.length;g++)f.push([d.xData[g]].concat(r(d.yData[g])));d=c.xData.indexOf(b.xData[0]);g=c.xData.indexOf(b.xData[b.xData.length-1]);-1===d&&g===c.xData.length-2&&f[0][0]===a[0].x&&f.shift();b.updateData(f)}else c.xData.length!==
d-1&&c.xData.length!==d+1&&(e=!1,b.updateData(c.values));e&&(b.xData=c.xData,b.yData=c.yData,b.options.data=c.values);!1===b.bindTo.series&&(delete b.processedXData,b.isDirty=!0,b.redraw());b.isDirtyData=!1}var b=this,f=b.requireIndicators();if(!f.allLoaded)return k(v(b.type,f.needed));l.prototype.init.call(b,a,c);a.linkSeries();b.dataEventsToUnbind=[];if(!b.linkedParent)return k("Series "+b.options.linkedTo+" not found! Check `linkedTo`.",!1,a);b.dataEventsToUnbind.push(m(b.bindTo.series?b.linkedParent:
b.linkedParent.xAxis,b.bindTo.eventName,d));if("init"===b.calculateOn)d();else var e=m(b.chart,b.calculateOn,function(){d();e()});return b},getName:function(){var a=this.name,c=[];a||((this.nameComponents||[]).forEach(function(a,b){c.push(this.options.params[a]+h(this.nameSuffixes[b],""))},this),a=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+c.join(", ")+")":""));return a},getValues:function(a,c){var d=c.period,b=a.xData;a=a.yData;var f=a.length,e=0,h=0,k=[],l=[],m=[],n=-1;if(b.length<
d)return!1;for(p(a[0])&&(n=c.index?c.index:0);e<d-1;)h+=0>n?a[e]:a[e][n],e++;for(c=e;c<f;c++){h+=0>n?a[c]:a[c][n];var g=[b[c],h/d];k.push(g);l.push(g[0]);m.push(g[1]);h-=0>n?a[c-e]:a[c-e][n]}return{values:k,xData:l,yData:m}},destroy:function(){this.dataEventsToUnbind.forEach(function(a){a()});l.prototype.destroy.call(this)}})});f(a,"masters/indicators/indicators.src.js",[],function(){})});
//# sourceMappingURL=indicators.js.map