"use strict";import Axis from"../Core/Axis/Axis.js";import DateTimeAxis from"../Core/Axis/DateTimeAxis.js";import H from"../Core/Globals.js";import O from"../Core/Options.js";import Point from"../Core/Series/Point.js";import Series from"../Core/Series/Series.js";var seriesProto=Series.prototype;import Tooltip from"../Core/Tooltip.js";import U from"../Core/Utilities.js";var addEvent=U.addEvent,arrayMax=U.arrayMax,arrayMin=U.arrayMin,correctFloat=U.correctFloat,defined=U.defined,error=U.error,extend=U.extend,format=U.format,isNumber=U.isNumber,merge=U.merge,pick=U.pick;import"../Core/Axis/Axis.js";var approximations=H.approximations={sum:function(t){var o,i=t.length;if(!i&&t.hasNulls)o=null;else if(i)for(o=0;i--;)o+=t[i];return o},average:function(t){var o=t.length,i=approximations.sum(t);return isNumber(i)&&o&&(i=correctFloat(i/o)),i},averages:function(){var t=[];return[].forEach.call(arguments,function(o){t.push(approximations.average(o))}),void 0===t[0]?void 0:t},open:function(t){return t.length?t[0]:t.hasNulls?null:void 0},high:function(t){return t.length?arrayMax(t):t.hasNulls?null:void 0},low:function(t){return t.length?arrayMin(t):t.hasNulls?null:void 0},close:function(t){return t.length?t[t.length-1]:t.hasNulls?null:void 0},ohlc:function(t,o,i,e){if(t=approximations.open(t),o=approximations.high(o),i=approximations.low(i),e=approximations.close(e),isNumber(t)||isNumber(o)||isNumber(i)||isNumber(e))return[t,o,i,e]},range:function(t,o){return t=approximations.low(t),o=approximations.high(o),isNumber(t)||isNumber(o)?[t,o]:null===t&&null===o?null:void 0}},groupData=function(t,o,i,e){var a,r,s,n,p,u,l,h,d=this,m=d.data,g=d.options&&d.options.data,c=[],f=[],x=[],D=t.length,G=!!o,y=[],v=d.pointArrayMap,b=v&&v.length,A=["x"].concat(v||["y"]),M=0,P=0;for(n="function"==typeof(h=e)?h:approximations[h]?approximations[h]:approximations[d.getDGApproximation&&d.getDGApproximation()||"average"],b?v.forEach(function(){y.push([])}):y.push([]),p=b||1,u=0;u<=D&&!(t[u]>=i[0]);u++);for(;u<=D;u++){for(;void 0!==i[M+1]&&t[u]>=i[M+1]||u===D;){for(a=i[M],d.dataGroupInfo={start:d.cropStart+P,length:y[0].length},s=n.apply(d,y),d.pointClass&&!defined(d.dataGroupInfo.options)&&(d.dataGroupInfo.options=merge(d.pointClass.prototype.optionsToObject.call({series:d},d.options.data[d.cropStart+P])),A.forEach(function(t){delete d.dataGroupInfo.options[t]})),void 0!==s&&(c.push(a),f.push(s),x.push(d.dataGroupInfo)),P=u,l=0;l
0;)A[l]+=y/2;A[0]=Math.max(A[0],D)}for(l=1;l