highcharts
Version:
JavaScript charting framework
18 lines (15 loc) • 4.18 kB
JavaScript
/*
Highcharts JS v7.1.2 (2019-06-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(c){a(c);a.Highcharts=c;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function c(a,c,t,n){a.hasOwnProperty(c)||(a[c]=n.apply(null,t))}a=a?a._modules:{};c(a,"mixins/indicator-required.js",[a["parts/Globals.js"]],function(a){var f=a.error;return{isParentLoaded:function(a,
c,l,p,m){if(a)return p?p(a):!0;f(m||this.generateMessage(l,c));return!1},generateMessage:function(a,f){return'Error: "'+a+'" indicator type requires "'+f+'" indicator loaded before. Please read docs: https://api.highcharts.com/highstock/plotOptions.'+a}}});c(a,"indicators/indicators.src.js",[a["parts/Globals.js"],a["mixins/indicator-required.js"]],function(a,c){var f=a.pick,n=a.error,l=a.Series,p=a.isArray,m=a.addEvent,u=a.seriesType,r=a.seriesTypes,q=a.seriesTypes.ohlc.prototype,v=c.generateMessage;
m(a.Series,"init",function(e){e=e.options;e.useOhlcData&&"highcharts-navigator-series"!==e.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 e=a.dataGrouping;e&&a.useOhlcData&&"highcharts-navigator-series"!==a.id&&(e.approximation="ohlc")});u("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,
d=this.linkedParent;l.prototype.processData.apply(this,arguments);d&&d.compareValue&&a&&(this.compareValue=d.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(e){r[e]?r[e].prototype.requireIndicators():(a.allLoaded=!1,a.needed=e)});return a},init:function(e,d){function c(){var e=
b.points||[],d=(b.xData||[]).length,c=b.getValues(b.linkedParent,b.options.params)||{values:[],xData:[],yData:[]},h=[],k=!0,g,f;if(d&&!b.hasGroupedData&&b.visible&&b.points)if(b.cropped){b.xAxis&&(g=b.xAxis.min,f=b.xAxis.max);d=b.cropData(c.xData,c.yData,g,f);for(g=0;g<d.xData.length;g++)h.push([d.xData[g]].concat(a.splat(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&&h[0][0]===e[0].x&&h.shift();b.updateData(h)}else c.xData.length!==
d-1&&c.xData.length!==d+1&&(k=!1,b.updateData(c.values));k&&(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 n(v(b.type,f.needed));l.prototype.init.call(b,e,d);e.linkSeries();b.dataEventsToUnbind=[];if(!b.linkedParent)return n("Series "+b.options.linkedTo+" not found! Check `linkedTo`.",!1,e);b.dataEventsToUnbind.push(m(b.bindTo.series?b.linkedParent:
b.linkedParent.xAxis,b.bindTo.eventName,c));if("init"===b.calculateOn)c();else var h=m(b.chart,b.calculateOn,function(){c();h()});return b},getName:function(){var a=this.name,d=[];a||((this.nameComponents||[]).forEach(function(a,b){d.push(this.options.params[a]+f(this.nameSuffixes[b],""))},this),a=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+d.join(", ")+")":""));return a},getValues:function(a,d){var c=d.period,b=a.xData;a=a.yData;var e=a.length,h=0,f=0,l=[],m=[],n=[],k=-1,g;
if(b.length<c)return!1;for(p(a[0])&&(k=d.index?d.index:0);h<c-1;)f+=0>k?a[h]:a[h][k],h++;for(d=h;d<e;d++)f+=0>k?a[d]:a[d][k],g=[b[d],f/c],l.push(g),m.push(g[0]),n.push(g[1]),f-=0>k?a[d-h]:a[d-h][k];return{values:l,xData:m,yData:n}},destroy:function(){this.dataEventsToUnbind.forEach(function(a){a()});l.prototype.destroy.call(this)}})});c(a,"masters/indicators/indicators.src.js",[],function(){})});
//# sourceMappingURL=indicators.js.map