/* Highstock JS v9.1.1 (2021-06-03) Indicator series type for Highcharts Stock (c) 2010-2021 Pawe Dalek License: www.highcharts.com/license */ 'use strict';(function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/indicators/volume-by-price",["highcharts","highcharts/modules/stock"],function(n){a(n);a.Highcharts=n;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function n(a,n,p,h){a.hasOwnProperty(n)||(a[n]=h.apply(null,p))}a=a?a._modules:{};n(a,"Stock/Indicators/VBP/VBPIndicator.js",[a["Core/Animation/AnimationUtilities.js"], a["Core/Globals.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,n,p,h){var E=this&&this.__extends||function(){var a=function(e,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,m){b.__proto__=m}||function(b,m){for(var c in m)m.hasOwnProperty(c)&&(b[c]=m[c])};return a(e,b)};return function(e,b){function d(){this.constructor=e}a(e,b);e.prototype=null===b?Object.create(b):(d.prototype=b.prototype,new d)}}(),F=a.animObject;a=n.noop;var A=p.seriesTypes.sma, B=h.addEvent,C=h.arrayMax,G=h.arrayMin,y=h.correctFloat,z=h.error,D=h.extend,H=h.isArray,I=h.merge,u=Math.abs,x=p.seriesTypes.column.prototype;h=function(a){function e(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.negWidths=void 0;b.options=void 0;b.points=void 0;b.posWidths=void 0;b.priceZones=void 0;b.rangeStep=void 0;b.volumeDataArray=void 0;b.zoneStarts=void 0;b.zoneLinesSVG=void 0;return b}E(e,a);e.prototype.init=function(b){n.seriesTypes.sma.prototype.init.apply(this,arguments); var d=this.options.params;var m=this.linkedParent;d=b.get(d.volumeSeriesID);this.addCustomEvents(m,d);return this};e.prototype.addCustomEvents=function(b,d){function m(){c.chart.redraw();c.setData([]);c.zoneStarts=[];c.zoneLinesSVG&&(c.zoneLinesSVG=c.zoneLinesSVG.destroy())}var c=this;c.dataEventsToUnbind.push(B(b,"remove",function(){m()}));d&&c.dataEventsToUnbind.push(B(d,"remove",function(){m()}));return c};e.prototype.animate=function(b){var d=this,m=d.chart.inverted,c=d.group,a={};!b&&c&&(b=m? d.yAxis.top:d.xAxis.left,m?(c["forceAnimate:translateY"]=!0,a.translateY=b):(c["forceAnimate:translateX"]=!0,a.translateX=b),c.animate(a,D(F(d.options.animation),{step:function(b,c){d.group.attr({scaleX:Math.max(.001,c.pos)})}})))};e.prototype.drawPoints=function(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),x.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1));x.drawPoints.apply(this,arguments)};e.prototype.posNegVolume=function(b,d){var a=d?["positive","negative"]:["negative", "positive"],c=this.options.volumeDivision,q=this.points.length,t=[],f=[],k=0,l;b?(this.posWidths=t,this.negWidths=f):(t=this.posWidths,f=this.negWidths);for(;kd.pointPadding?d.pointPadding:.1;d=b.volumeDataArray;var n=C(d);var r=a.plotWidth/2;var J=a.plotTop;var w=u(c.toPixels(q)-c.toPixels(q+b.rangeStep));var p=u(c.toPixels(q)-c.toPixels(q+b.rangeStep));h&&(q=u(w*(1-2*h)),k=u((w-q)/2),w=u(q));v.forEach(function(a, d){g=a.barX=a.plotX=0;e=a.plotY=c.toPixels(f[d].start)-J-(c.reversed?w-p:w)-k;l=y(r*f[d].wholeVolumeData/n);a.pointWidth=l;a.shapeArgs=b.crispCol.apply(b,[g,e,l,w]);a.volumeNeg=f[d].negativeVolumeData;a.volumePos=f[d].positiveVolumeData;a.volumeAll=f[d].wholeVolumeData});t.enabled&&b.drawZones(a,c,b.zoneStarts,t.styles)}};e.prototype.getValues=function(b,a){var d=b.processedXData,c=b.processedYData,e=this.chart,t=a.ranges,f=[],k=[],l=[],g;if(b.chart)if(g=e.get(a.volumeSeriesID))if((a=H(c[0]))&&4!== c[0].length)z("Type of "+b.name+" series is different than line, OHLC or candlestick.",!0,e);else return(this.priceZones=this.specifyZones(a,d,c,t,g)).forEach(function(b,a){f.push([b.x,b.end]);k.push(f[a][0]);l.push(f[a][1])}),{values:f,xData:k,yData:l};else z("Series "+a.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e);else z("Base series not found! In case it has been removed, add a new one.",!0,e)};e.prototype.specifyZones=function(b,a,e,c,q){if(b){var d=e.length;for(var f=e[0][3],k= f,l=1,g;lk&&(k=g);d={min:f,max:k}}else d=!1;d=(f=d)?f.min:G(e);g=f?f.max:C(e);f=this.zoneStarts=[];k=[];var m=0;l=1;if(!d||!g)return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];var h=this.rangeStep=y(g-d)/c;for(f.push(d);m=a.end&&a.index===l&&(q=!0),(p>a.start||n)&&(pp?a.negativeVolumeData+=k[r]: a.positiveVolumeData+=k[r]);d.volumeDataArray.push(a.wholeVolumeData)});return a};e.prototype.drawZones=function(a,d,e,c){var b=a.renderer,h=this.zoneLinesSVG,f=[],k=a.plotWidth,l=a.plotTop,g;e.forEach(function(b){g=d.toPixels(b)-l;f=f.concat(a.renderer.crispLine([["M",0,g],["L",k,g]],c.lineWidth))});h?h.animate({d:f}):h=this.zoneLinesSVG=b.path(f).attr({"stroke-width":c.lineWidth,stroke:c.color,dashstyle:c.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)};e.defaultOptions=I(A.defaultOptions, {params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1E3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"7px"}, verticalAlign:"top"}});return e}(A);D(h.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],bindTo:{series:!1,eventName:"afterSetExtremes"},calculateOn:"render",markerAttribs:a,drawGraph:a,getColumnMetrics:x.getColumnMetrics,crispCol:x.crispCol});p.registerSeriesType("vbp",h);"";return h});n(a,"masters/indicators/volume-by-price.src.js",[],function(){})}); //# sourceMappingURL=volume-by-price.js.map