UNPKG

apexcharts

Version:

A JavaScript Chart Library

6 lines (5 loc) 33.1 kB
/*! * ApexCharts v7.0.0 * (c) 2018-2026 ApexCharts */ "use strict";var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,a=(t,s,i)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[s]=i,l=(e,t)=>{for(var s in t||(t={}))r.call(t,s)&&a(e,s,t[s]);if(i)for(var s of i(t))n.call(t,s)&&a(e,s,t[s]);return e},o=(e,i)=>t(e,s(i));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});function h(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const s in e)if("default"!==s){const i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i.get?i:{enumerable:!0,get:()=>e[s]})}return t.default=e,Object.freeze(t)}const u=h(require("apexcharts/core")),c=u.__apex_CoreUtils,p=u.__apex_Graphics,d=u.__apex_Fill,g=u.__apex_DataLabels,f=u.__apex_Markers,m=u.__apex_charts_Scatter,y=u.__apex_Series,x=u.__apex_Utils;class b{constructor(e){this.w=e.w,this.lineCtx=e}sameValueSeriesFix(e,t){const s=this.w;if("gradient"===s.config.fill.type||"gradient"===s.config.fill.type[e]){if(new c(this.lineCtx.w).seriesHaveSameValues(e)){const s=t[e].slice();s[s.length-1]=s[s.length-1]+1e-6,t[e]=s}}return t}calculatePoints({series:e,realIndex:t,x:s,y:i,i:r,j:n,prevY:a}){const l=this.w,o=[],h=[];let u=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;return l.axisFlags.isXNumeric&&(u=(l.seriesData.seriesX[t][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),0===n&&(o.push(u),h.push(x.isNumber(e[r][0])?a+l.config.markers.offsetY:null)),o.push(s+l.config.markers.offsetX),h.push(x.isNumber(e[r][n+1])?i+l.config.markers.offsetY:null),{x:o,y:h}}checkPreviousPaths({pathFromLine:e,pathFromArea:t,realIndex:s}){const i=this.w;for(let r=0;r<i.globals.previousPaths.length;r++){const n=i.globals.previousPaths[r];("line"===n.type||"area"===n.type)&&n.paths.length>0&&parseInt(n.realIndex,10)===parseInt(s,10)&&("line"===n.type?(this.lineCtx.appendPathFrom=!1,e=i.globals.previousPaths[r].paths[0].d):"area"===n.type&&(this.lineCtx.appendPathFrom=!1,t=i.globals.previousPaths[r].paths[0].d,i.config.stroke.show&&i.globals.previousPaths[r].paths[1]&&(e=i.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:t}}determineFirstPrevY({i:e,realIndex:t,series:s,prevY:i,lineYPosition:r,translationsIndex:n}){var a,l,o;const h=this.w,u=h.config.chart.stacked&&!h.globals.comboCharts||h.config.chart.stacked&&h.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||"bar"===(null==(a=this.w.config.series[t])?void 0:a.type)||"column"===(null==(l=this.w.config.series[t])?void 0:l.type));if(void 0!==(null==(o=s[e])?void 0:o[0])){if(u)if(e>0){const e=this.lineCtx.stackTopAt(t,0);r=void 0===e?this.lineCtx.zeroY:e}else r=this.lineCtx.zeroY;else r=this.lineCtx.zeroY;i=r-s[e][0]/this.lineCtx.yRatio[n]+2*(this.lineCtx.isReversed?s[e][0]/this.lineCtx.yRatio[n]:0)}else if(u&&e>0&&void 0===s[e][0])for(let t=e-1;t>=0;t--)if(null!==s[t][0]&&void 0!==s[t][0]){i=r=this.lineCtx.prevSeriesY[t][0];break}return{prevY:i,lineYPosition:r}}}function v(e){let t=(2654435769^e)>>>0;return t=Math.imul(t^t>>>16,73244475),t=Math.imul(t^t>>>16,73244475),((t^t>>>16)>>>0)/4294967296}const P=e=>{const t=function(e){const t=[];let s=e[0],i=e[1],r=t[0]=w(s,i),n=1;for(let a=e.length-1;n<a;n++)s=i,i=e[n+1],t[n]=.5*(r+(r=w(s,i)));return t[n]=r,t}(e),s=e.length-1,i=[];let r,n,a,l;for(let i=0;i<s;i++)a=w(e[i],e[i+1]),Math.abs(a)<1e-6?t[i]=t[i+1]=0:(r=t[i]/a,n=t[i+1]/a,l=r*r+n*n,l>9&&(l=3*a/Math.sqrt(l),t[i]=l*r,t[i+1]=l*n));for(let r=0;r<=s;r++)l=(e[Math.min(s,r+1)][0]-e[Math.max(0,r-1)][0])/(6*(1+t[r]*t[r])),i.push([l||0,t[r]*l||0]);return i},A={points(e){const t=P(e),s=e[1],i=e[0],r=[],n=t[1],a=t[0];r.push(i,[i[0]+a[0],i[1]+a[1],s[0]-n[0],s[1]-n[1],s[0],s[1]]);for(let s=2,i=t.length;s<i;s++){const i=e[s],n=t[s];r.push([i[0]-n[0],i[1]-n[1],i[0],i[1]])}return r},slice(e,t,s){const i=e.slice(t,s);if(t){if(s-t>1&&i[1].length<6){const e=i[0].length;i[1]=[2*i[0][e-2]-i[0][e-4],2*i[0][e-1]-i[0][e-3]].concat(i[1])}i[0]=i[0].slice(-2)}return i}};function w(e,t){return(t[1]-e[1])/(t[0]-e[0])}const k=/[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi;function Y(e,t){const{ax:s,bx:i,ay:r,by:n}=t,a=[],l=/([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;let o;for(;null!==(o=l.exec(e));){const e=o[1].toUpperCase(),t=(o[2].match(k)||[]).map(parseFloat);if("Z"===e){a.push("z");continue}if("H"===e){for(const e of t)a.push(`H ${s*e+i}`);continue}if("V"===e){for(const e of t)a.push(`V ${r*e+n}`);continue}if("A"===e){for(let e=0;e+6<t.length;e+=7)a.push(`A ${t[e]} ${t[e+1]} ${t[e+2]} ${t[e+3]} ${t[e+4]} ${s*t[e+5]+i} ${r*t[e+6]+n}`);continue}const l=[];for(let e=0;e+1<t.length;e+=2)l.push(`${s*t[e]+i} ${r*t[e+1]+n}`);l.length&&a.push(`${e} ${l.join(" ")}`)}return a.join(" ")}const S=u.__apex_BrowserAPIs_BrowserAPIs,F=u.__apex_Environment_Environment;function M(e){return-Math.cos(e*Math.PI)/2+.5}function I(e,t,s,i){e=Math.min(Math.max(e,0),1),s=Math.min(Math.max(s,0),1);const r=3*e,n=3*(s-e)-r,a=1-r-n,l=3*t,o=3*(i-t)-l,h=1-l-o,u=e=>((a*e+n)*e+r)*e;return e=>e<=0?0:e>=1?1:(e=>((h*e+o)*e+l)*e)((e=>{let t=0,s=1,i=e;if(i<t)return t;if(i>s)return s;for(;t<s;){const r=u(i);if(Math.abs(r-e)<1e-4)return i;e>r?t=i:s=i,i=(t+s)/2}return i})(e))}const C=new Map;function _(e){return"function"==typeof e?j(e):(t=e,Array.isArray(t)&&4===t.length&&t.every(e=>"number"==typeof e)?I(e[0],e[1],e[2],e[3]):"string"==typeof e&&C.has(e)?j(C.get(e)):M);var t}function j(e){return t=>{const s=e(t);return"number"==typeof s&&isFinite(s)?s:t}}C.set("linear",e=>e),C.set("easeInOutSine",M),C.set("easeInSine",e=>1-Math.cos(e*Math.PI/2)),C.set("easeOutSine",e=>Math.sin(e*Math.PI/2)),C.set("easeInQuad",e=>e*e),C.set("easeOutQuad",e=>1-(1-e)*(1-e)),C.set("easeInOutQuad",e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2),C.set("easeInCubic",e=>e*e*e),C.set("easeOutCubic",e=>1-Math.pow(1-e,3)),C.set("easeInOutCubic",e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2),C.set("easeOutBack",e=>{const t=1.70158;return 1+2.70158*Math.pow(e-1,3)+t*Math.pow(e-1,2)}),C.set("easeInOutBack",e=>{const t=2.5949095;return e<.5?Math.pow(2*e,2)*(7.189819*e-t)/2:(Math.pow(2*e-2,2)*((t+1)*(2*e-2)+t)+2)/2});const L=u.__apex_PathMorphing_parsePath,X=u.__apex_PathMorphing_arrayToPath;function R(e,t,s){if(!e||"string"!=typeof e)return null;const i=L(e);if(!i.length||"M"!==i[0][0])return null;for(let e=1;e<i.length;e++)if("M"===i[e][0])return null;let r=i,n=null;if(s){if(i.length<5)return null;if(n=i.slice(-3),r=i.slice(0,-3),"Z"!==n[2][0])return null;if("L"!==n[1][0])return null;if("L"!==n[0][0]&&"C"!==n[0][0])return null}else if("Z"===i[i.length-1][0])return null;if(r.length!==t||r.length<2)return null;const a=r[1][0];if("L"!==a&&"C"!==a)return null;for(let e=2;e<r.length;e++)if(r[e][0]!==a)return null;const l=r.map(e=>"C"===e[0]?[Number(e[5]),Number(e[6])]:[Number(e[1]),Number(e[2])]);for(const e of l)if(!isFinite(e[0])||!isFinite(e[1]))return null;return{body:r,closing:n,segType:a,anchors:l}}function z(e,t,s){return[e[0]+(t[0]-e[0])*s,e[1]+(t[1]-e[1])*s]}function D(e,t,s){const i=e,r=[t[1],t[2]],n=[t[3],t[4]],a=[t[5],t[6]],l=z(i,r,s),o=z(r,n,s),h=z(n,a,s),u=z(l,o,s),c=z(o,h,s),p=z(u,c,s);return{first:["C",l[0],l[1],u[0],u[1],p[0],p[1]],second:["C",c[0],c[1],h[0],h[1],a[0],a[1]],mid:p}}function N(e,t,s){const i=[t[1],t[2]],r=z(e,i,s);return{first:["L",r[0],r[1]],second:["L",i[0],i[1]],mid:r}}function O(e,t){const{body:s,closing:i,segType:r,anchors:n}=e,a=n.length,l=t.length,o=e=>"C"===r?["C",e[0],e[1],e[0],e[1],e[0],e[1]]:["L",e[0],e[1]],h=[["M",n[0][0],n[0][1]]];let u=0;for(;u<l&&0!==t[u];)u++;for(let e=1;e<=u;e++)h.push(o(n[0]));let c=u+1;for(let e=0;e<a-1;e++){let i=0;for(;c+i<l&&-1===t[c+i];)i++;const a=s[e+1];if(i){const t=i+1;let s=n[e],l=a;for(let e=0;e<i;e++){const i=1/(t-e),n="C"===r?D(s,l,i):N(s,l,i);h.push(n.first),s=n.mid,l=n.second}h.push(l)}else h.push(a.slice());c+=i+1}for(;c<l;)h.push(o(n[a-1])),c++;return i&&i.forEach(e=>h.push(e.slice())),h}function $(e,t,s,i,r,n){const a=R(e,i,n);if(!a)return null;const l=R(t,r,n);if(!l)return null;if(a.segType!==l.segType)return null;if((a.closing||l.closing)&&(!a.closing||!l.closing||a.closing[0][0]!==l.closing[0][0]))return null;const o=s.map(e=>e.oldJ),h=s.map(e=>e.newJ);return{from:X(O(a,o)),toInterp:X(O(l,h))}}function B(e){const t=new Map;return e.map(e=>{const s=t.get(e)||0;return t.set(e,s+1),0===s?e:`${e}#${s}`})}function T(e,t,s=!1,i=!1){var r,n;if(!function(e){var t;const s=e.config.chart.animations;if(!s||!1===s.enabled)return!1;if(!s.dynamicAnimation||!1===s.dynamicAnimation.enabled)return!1;const i=null!=(t=s.largeDatasetThreshold)?t:0;return!(i>0&&e.globals.dataPoints>i||!(F.isBrowser()&&e.globals.dataChanged&&e.globals.shouldAnimate))}(e))return null;const a=e.globals.prevStreamFrame;if(!a)return null;const l=null==(r=a.seriesY)?void 0:r[t],o=null==(n=e.seriesData.series)?void 0:n[t];if(!Array.isArray(l)||!Array.isArray(o))return null;if(!l.length||!o.length)return null;const h=B(l.map((e,s)=>function(e,t,s){var i,r;if(e.isXNumeric){const r=null==(i=e.seriesX)?void 0:i[t];if(r&&r.length&&null!=r[s])return"x:"+r[s]}const n=null==(r=e.labels)?void 0:r[s];return null!=n&&""!==String(n)?"c:"+(Array.isArray(n)?n.join(" "):String(n)):"j:"+s}(a,t,s))),u=B(o.map((s,i)=>function(e,t,s){var i,r,n,a;if(null==(i=e.axisFlags)?void 0:i.isXNumeric){const i=null==(n=null==(r=e.seriesData)?void 0:r.seriesX)?void 0:n[t];if(i&&i.length&&null!=i[s])return"x:"+i[s]}const l=null==(a=e.globals.labels)?void 0:a[s];return null!=l&&""!==String(l)?"c:"+(Array.isArray(l)?l.join(" "):String(l)):"j:"+s}(e,t,i))),c=function(e,t){const s=new Map;e.forEach((e,t)=>{s.has(e)||s.set(e,t)});const i=new Array(t.length),r=new Set;let n=-1,a=!0,l=e.length===t.length;t.forEach((e,t)=>{const o=s.has(e)&&!r.has(s.get(e))?s.get(e):-1;i[t]=o,-1!==o&&(r.add(o),o<n&&(a=!1),n=o),o!==t&&(l=!1)});const o=[];for(let t=0;t<e.length;t++)r.has(t)||o.push(t);return{toOld:i,exits:o,ordered:a,changed:!l}}(h,u);return(c.ordered||i)&&(c.changed||s)?{join:c,oldKeys:h,newKeys:u}:null}function W(e,t,s,i,r){const n=performance.now(),a=l=>{if(e.globals.isDestroyed)return;const o=Math.max(0,Math.min(1,(l-n)/t));i(s(o),o),o<1?S.requestAnimationFrame(a):r&&r()};S.requestAnimationFrame(a)}function H(e,{elPointsMain:t,realIndex:s,speed:i}){var r,n,a,l;if(!(null==t?void 0:t.node))return!1;const o=T(e,s,!0);if(!o)return!1;const h=e.globals.prevStreamFrame;if(!h)return!1;const u=null==(r=h.xPixels)?void 0:r[s],c=null==(n=h.yPixels)?void 0:n[s];if(!u||!c)return!1;const p=t.node.querySelectorAll(".apexcharts-marker");if(!p.length)return!1;const d=(null==(a=e.globals.seriesXvalues)?void 0:a[s])||[],g=(null==(l=e.globals.seriesYvalues)?void 0:l[s])||[],f=function(e){var t,s;const i=e.config.chart.animations;return _(null!=(s=null==(t=i.dynamicAnimation)?void 0:t.easing)?s:i.easing)}(e),m=Math.max(1,i||1);return t.node.classList.remove("apexcharts-element-hidden"),p.forEach(t=>{var i,r,n,a,l,p,y,x,b;const v=parseInt(null!=(r=null!=(i=t.getAttribute("j"))?i:t.getAttribute("rel"))?r:"",10);if(!isFinite(v)||v<0||v>=o.join.toOld.length)return;const P=o.join.toOld[v],A=null!=d[v]&&null!=g[v]?[d[v],g[v]]:null;if(-1===P||!A){const s=t.style;return s.opacity="0",void W(e,m,f,e=>{s.opacity=String(e)},()=>{s.opacity=""})}const w=(null!=(n=u[P])?n:NaN)-A[0],k=(null!=(a=c[P])?a:NaN)-A[1];if(!isFinite(w)||!isFinite(k))return;const Y=null!=(y=null==(p=null==(l=h.rPixels)?void 0:l[s])?void 0:p[P])?y:NaN,S=parseFloat(null!=(b=null!=(x=t.getAttribute("r"))?x:t.getAttribute("default-marker-size"))?b:""),F=isFinite(Y)&&isFinite(S)&&S>0&&Math.abs(Y-S)>.25;if(!(Math.abs(w)>=.5||Math.abs(k)>=.5)&&!F)return;const M=e=>{const s=w*(1-e),i=k*(1-e);if(F){const r=(Y+(S-Y)*e)/S;t.setAttribute("transform",`translate(${s+A[0]*(1-r)}, ${i+A[1]*(1-r)}) scale(${r})`)}else t.setAttribute("transform",`translate(${s}, ${i})`)};M(0),W(e,m,f,M,()=>{t.removeAttribute("transform")})}),!0}function V(e,{type:t,realIndex:s,pathFromLine:i,pathFromArea:r,linePaths:n,areaPaths:a}){var l,o;const h=T(e,s);if(!h)return null;const{join:u,oldKeys:c,newKeys:p}=h,d=e.globals.prevStreamFrame;if(!d)return null;const g=null==(l=d.seriesY)?void 0:l[s],f=null==(o=e.seriesData.series)?void 0:o[s];if(g.length<2||f.length<2)return null;if(g.some(e=>null===e)||f.some(e=>null===e))return null;const m=function(e,t){const s=new Set(e.exits),i=[];let r=0;for(let t=0;t<e.toOld.length;t++){const n=e.toOld[t];if(-1!==n){for(;r<n;)s.has(r)&&i.push({oldJ:r,newJ:-1}),r++;i.push({oldJ:n,newJ:t}),r=n+1}else i.push({oldJ:-1,newJ:t})}for(;r<t;)s.has(r)&&i.push({oldJ:r,newJ:-1}),r++;return i}(u,c.length),y={};return Array.isArray(n)&&1===n.length&&i&&(y.line=$(i,n[0],m,c.length,p.length,!1)),"area"===t&&Array.isArray(a)&&1===a.length&&r&&(y.area=$(r,a[0],m,c.length,p.length,!0)),y.line||y.area?y:null}class E{constructor(e,t,s,i){this.ctx=t,this.w=e,this.xyRatios=s,this.xRatio=0,this.yRatio=[],this.zRatio=0,this.baseLineY=[],this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||i,this.scatter=new m(this.w,this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new b(this),this.markers=new f(this.w,this.ctx),this.prevSeriesY=[],this.prevSeriesYByX=new Map,this.categoryAxisCorrection=0,this.yaxisIndex=0,this.xDivision=0,this.zeroY=0,this.areaBottomY=0,this.strokeWidth=0,this.isReversed=!1,this.appendPathFrom=!1,this.elSeries=null,this.elPointsMain=null,this.elDataLabelsWrap=null,this._elLastPointsWrap=null}draw(e,t,s,i){var r;const n=this.w,a=new p(this.w),h=n.globals.comboCharts?t:n.config.chart.type,u=a.group({class:`apexcharts-${h}-series apexcharts-plot-series`}),d=new c(this.w);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,e=d.getLogSeries(e),this.yRatio=d.getLogYRatios(this.yRatio),this.prevSeriesY=[],this.prevSeriesYByX=new Map;const g=[];for(let t=0;t<e.length;t++){e=this.lineHelpers.sameValueSeriesFix(t,e);const r=n.globals.comboCharts?s[t]:t,a=this.yRatio.length>1?r:0;this._initSerieVariables(e,t,r);const u=[],c=[],p=[];let d=n.globals.padHorizontal+this.categoryAxisCorrection;const f=1,m=[],x=[];y.addCollapsedClassToSeries(this.w,this.elSeries,r),n.axisFlags.isXNumeric&&n.seriesData.seriesX.length>0&&(d=(n.seriesData.seriesX[r][0]-n.globals.minX)/this.xRatio),p.push(d);const b=d;let v;const P=b;let A=this.zeroY,w=this.zeroY;const k=0;A=this.lineHelpers.determineFirstPrevY({i:t,realIndex:r,series:e,prevY:A,lineYPosition:k,translationsIndex:a}).prevY,"monotoneCubic"===n.config.stroke.curve&&null===e[t][0]?u.push(null):u.push(A);const Y=A;let S;"rangeArea"===h&&(S=this.lineHelpers.determineFirstPrevY({i:t,realIndex:r,series:i,prevY:w,lineYPosition:k,translationsIndex:a}),w=S.prevY,v=w,c.push(null!==u[0]?w:null));const F=this._calculatePathsFrom({type:h,series:e,i:t,realIndex:r,translationsIndex:a,prevX:P,prevY:A,prevY2:w}),M=[u[0]],I=[c[0]],C={type:h,series:e,realIndex:r,translationsIndex:a,i:t,x:d,y:f,pX:b,pY:Y,pathsFrom:F,linePaths:m,areaPaths:x,seriesIndex:s,lineYPosition:k,xArrj:p,yArrj:u,y2Arrj:c,seriesRangeEnd:i},_=this._iterateOverDataPoints(o(l({},C),{iterations:"rangeArea"===h?e[t].length-1:void 0,isRangeStart:!0}));if("rangeArea"===h){const e=this._calculatePathsFrom({series:i,i:t,realIndex:r,prevX:P,prevY:w}),s=this._iterateOverDataPoints(o(l({},C),{series:i,xArrj:[d],yArrj:M,y2Arrj:I,pY:v,areaPaths:_.areaPaths,pathsFrom:e,iterations:i[t].length-1,isRangeStart:!1})),n=_.linePaths.length/2;for(let e=0;e<n;e++)_.linePaths[e]=s.linePaths[e+n]+_.linePaths[e];_.linePaths.splice(n),_.pathFromLine=s.pathFromLine+_.pathFromLine}else/z\s*$/i.test(_.pathFromArea)||(_.pathFromArea+="z");this._handlePaths({type:h,realIndex:r,i:t,paths:_}),this.markers.flushBatch(this.elPointsMain,r),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),g.push(this.elSeries)}if(void 0!==(null==(r=n.config.series[0])?void 0:r.zIndex)&&g.sort((e,t)=>Number(e.node.getAttribute("zIndex"))-Number(t.node.getAttribute("zIndex"))),n.config.chart.stacked)for(let e=g.length-1;e>=0;e--)u.add(g[e]);else for(let e=0;e<g.length;e++)u.add(g[e]);return u}_initSerieVariables(e,t,s){const i=this.w,r=new p(this.w);this.xDivision=i.layout.gridWidth/(i.globals.dataPoints-("on"===i.config.xaxis.tickPlacement?1:0)),this.strokeWidth=Array.isArray(i.config.stroke.width)?i.config.stroke.width[s]:i.config.stroke.width;let n=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[s],n=s),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed,this.zeroY=i.layout.gridHeight-this.baseLineY[n]-(this.isReversed?i.layout.gridHeight:0)+(this.isReversed?2*this.baseLineY[n]:0),this.areaBottomY=this.zeroY,(this.zeroY>i.layout.gridHeight||"end"===i.config.plotOptions.area.fillTo)&&(this.areaBottomY=i.layout.gridHeight),this.categoryAxisCorrection=this.xDivision/2;const a=i.config.series[s];if(this.elSeries=r.group({class:"apexcharts-series",zIndex:void 0!==a.zIndex?a.zIndex:s,seriesName:x.escapeString(i.seriesData.seriesNames[s])}),this.elPointsMain=r.group({class:"apexcharts-series-markers-wrap","data:realIndex":s}),this.markers.resetSeriesWrapCache(),this._elLastPointsWrap=null,i.globals.hasNullValues){const e=this.markers.plotChartMarkers({pointsPos:{x:[0],y:[i.layout.gridHeight+i.globals.markers.largestSize]},seriesIndex:t,j:0,pSize:.1,alwaysDrawMarker:!0,isVirtualPoint:!0});null!==e&&this.elPointsMain.add(e)}this.elDataLabelsWrap=r.group({class:"apexcharts-datalabels","data:realIndex":s});const l=e[t].length===i.globals.dataPoints;this.elSeries.attr({"data:longestSeries":l,rel:t+1,"data:realIndex":s}),this.appendPathFrom=!0}_calculatePathsFrom({type:e,series:t,i:s,realIndex:i,translationsIndex:r,prevX:n,prevY:a,prevY2:l}){const o=this.w,h=new p(this.w);let u,c,d,g;if(null===t[s][0]){for(let e=0;e<t[s].length;e++)if(null!==t[s][e]){n=this.xDivision*e,a=this.zeroY-t[s][e]/this.yRatio[r],u=h.move(n,a),c=h.move(n,this.areaBottomY);break}}else u=h.move(n,a),"rangeArea"===e&&(u=h.move(n,l)+h.line(n,a)),c=h.move(n,this.areaBottomY)+h.line(n,a);if(d=h.move(0,this.areaBottomY)+h.line(0,this.areaBottomY),g=h.move(0,this.areaBottomY)+h.line(0,this.areaBottomY),o.globals.previousPaths.length>0){const e=this.lineHelpers.checkPreviousPaths({pathFromLine:d,pathFromArea:g,realIndex:i});d=e.pathFromLine,g=e.pathFromArea}return{prevX:n,prevY:a,linePath:u,areaPath:c,pathFromLine:d,pathFromArea:g}}_stackKey(e,t){if(!this.w.axisFlags.isXNumeric)return t;const s=this.w.seriesData.seriesX[e];return s?s[t]:void 0}stackTopAt(e,t){const s=this._stackKey(e,t);if(null!=s)return this.prevSeriesYByX.get(s)}_recordStackTops(e,t){const s=this.w;if(Array.isArray(t)&&-1===s.globals.collapsedSeriesIndices.indexOf(e)&&-1===s.globals.ancillaryCollapsedSeriesIndices.indexOf(e))for(let s=0;s<t.length;s++){const i=this._stackKey(e,s);if(null==i)continue;const r=t[s];x.isNumber(r)&&this.prevSeriesYByX.set(i,r)}}_handlePaths({type:e,realIndex:t,i:s,paths:i}){var r,n,a,h,u,c,g;const f=this.w,m=new p(this.w),y=function(e,t){const s=e&&e.renderer;return s&&s.kind&&"svg"!==s.kind?s:t}(this.ctx,m),x=new d(this.w);this.prevSeriesY.push(i.yArrj),this._recordStackTops(t,i.yArrj);let b=null;"line"!==e&&"area"!==e||!f.globals.dataChanged||(b=function(e,t,s,i){var r;const n=e.globals,a=n.prevStreamFrame;if(!a||!n.dataChanged||!(null==(r=e.axisFlags)?void 0:r.isXNumeric))return null;const l=a.seriesX[t],o=a.seriesY[t],h=e.seriesData.seriesX[t],u=e.seriesData.series[t];if(!(l&&o&&h&&u))return null;if(l.length<3||h.length<3)return null;let c=-1;for(let e=0;e<l.length;e++)if(l[e]===h[0]){c=e;break}if(-1===c)return null;const p=Math.min(l.length-c,h.length);if(p<2)return null;const d=h.length-p;if(0===c&&0===d)return null;for(let e=0;e<p;e++){if(l[c+e]!==h[e])return null;const t=o[c+e],s=u[e];if(t!==s&&(null!=t||null!=s))return null}const g=a.xPixels[t],f=a.yPixels[t];if(!g||!f)return null;let m=-1,y=-1;for(let e=0;e<p;e++)null!=g[c+e]&&null!=f[c+e]&&null!=s[e]&&null!=i[e]&&(-1===m&&(m=e),y=e);if(-1===m||y<=m)return null;const x=s[m],b=s[y],v=g[c+m],P=g[c+y];if(Math.abs(b-x)<1e-6)return null;const A=(P-v)/(b-x),w=v-A*x;if(!isFinite(A)||!isFinite(w))return null;if(Math.abs(A-1)>.02)return null;if(Math.abs(w)<.5)return null;let k=m,Y=m;for(let e=m;e<=y;e++){const t=i[e];null!=t&&null!=f[c+e]&&(t<i[k]&&(k=e),t>i[Y]&&(Y=e))}let S=1,F=0;const M=i[k],I=i[Y];if(Math.abs(I-M)>1e-6?(S=(f[c+Y]-f[c+k])/(I-M),F=f[c+k]-S*M):F=f[c+k]-M,!isFinite(S)||!isFinite(F)||S<.2||S>5)return null;const C=Math.floor((m+y)/2);if(C!==m&&C!==y&&null!=s[C]&&null!=g[c+C]){const e=A*s[C]+w;if(Math.abs(e-g[c+C])>1.5)return null;if(null!=i[C]&&null!=f[c+C]){const e=S*i[C]+F;if(Math.abs(e-f[c+C])>1.5)return null}}return n.streamScrolled=!0,{ax:A,bx:w,ay:S,by:F}}(f,t,i.xArrj,i.yArrj));let v=null;b||"line"!==e&&"area"!==e||(v=V(f,{type:e,realIndex:t,pathFromLine:i.pathFromLine,pathFromArea:i.pathFromArea,linePaths:i.linePaths,areaPaths:i.areaPaths})),f.globals.seriesXvalues[t]=i.xArrj,f.globals.seriesYvalues[t]=i.yArrj;const P=f.config.forecastDataPoints;if(P.count>0&&"rangeArea"!==e){const e=f.globals.seriesXvalues[t][f.globals.seriesXvalues[t].length-P.count-1],s=m.drawRect(e,0,f.layout.gridWidth,f.layout.gridHeight,0);f.dom.elForecastMask.appendChild(s.node);const i=m.drawRect(0,0,e,f.layout.gridHeight,0);f.dom.elNonForecastMask.appendChild(i.node)}this.pointsChart?H(f,{elPointsMain:this.elPointsMain,realIndex:t,speed:f.config.chart.animations.dynamicAnimation.speed}):(f.globals.delayedElements.push({el:this.elPointsMain.node,index:t}),H(f,{elPointsMain:this.elPointsMain,realIndex:t,speed:f.config.chart.animations.dynamicAnimation.speed}),T(f,t)&&(null==(r=this.elDataLabelsWrap)?void 0:r.node)&&(this.elDataLabelsWrap.node.classList.add("apexcharts-element-hidden"),f.globals.delayedElements.push({el:this.elDataLabelsWrap.node,holdUntilComplete:!0})));const A={i:s,realIndex:t,animationDelay:s,initialSpeed:f.config.chart.animations.speed,dataChangeSpeed:f.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${e}`},w=i.numericXY,k="line"===e||"area"===e,S=k&&i.linePaths.length>1?[i.linePaths.join(" ")]:i.linePaths,F=k&&i.areaPaths.length>1?[i.areaPaths.join(" ")]:i.areaPaths;if("area"===e){const e=x.fillPath({seriesNumber:t});for(let t=0;t<F.length;t++){const s=y.renderPaths(o(l({},A),{pathFrom:b?Y(i.areaPaths[t],b):null!=(a=null==(n=null==v?void 0:v.area)?void 0:n.from)?a:i.pathFromArea,pathTo:F[t],pathToNumeric:w?{xs:w.xs,ys:w.ys,closeY:w.areaCloseY}:void 0,pathToInterp:null==(h=null==v?void 0:v.area)?void 0:h.toInterp,scrollMorph:!!b,stroke:"none",strokeWidth:0,strokeLineCap:null,fill:e}));this.elSeries.add(s)}}if(f.config.stroke.show&&!this.pointsChart){let r=null;if("line"===e)r=x.fillPath({seriesNumber:t,i:s});else if("solid"===f.config.stroke.fill.type)r=f.globals.stroke.colors[t];else{const e=f.config.fill;f.config.fill=f.config.stroke.fill,r=x.fillPath({seriesNumber:t,i:s}),f.config.fill=e}for(let s=0;s<S.length;s++){let n=r;"rangeArea"===e&&(n=x.fillPath({seriesNumber:t}));const a=o(l({},A),{pathFrom:b?Y(i.linePaths[s],b):null!=(c=null==(u=null==v?void 0:v.line)?void 0:u.from)?c:i.pathFromLine,pathTo:S[s],pathToNumeric:w?{xs:w.xs,ys:w.ys}:void 0,pathToInterp:null==(g=null==v?void 0:v.line)?void 0:g.toInterp,scrollMorph:!!b,stroke:r,strokeWidth:this.strokeWidth,strokeLineCap:f.config.stroke.lineCap,fill:"rangeArea"===e?n:"none"}),h=y.renderPaths(a);if(this.elSeries.add(h),h.attr("fill-rule","evenodd"),P.count>0&&"rangeArea"!==e){const e=y.renderPaths(a);e.node.setAttribute("stroke-dasharray",P.dashArray),P.strokeWidth&&e.node.setAttribute("stroke-width",P.strokeWidth),this.elSeries.add(e),e.attr("clip-path",`url(#forecastMask${f.globals.cuid})`),h.attr("clip-path",`url(#nonForecastMask${f.globals.cuid})`)}}}}_iterateOverDataPoints({type:e,series:t,iterations:s,realIndex:i,translationsIndex:r,i:n,x:a,y:l,pX:o,pY:h,pathsFrom:u,linePaths:c,areaPaths:d,seriesIndex:g,lineYPosition:f,xArrj:m,yArrj:y,y2Arrj:b,isRangeStart:P,seriesRangeEnd:A}){var w,k;const Y=this.w,S=new p(this.w),F=this.yRatio;let{prevY:M,linePath:I,areaPath:C,pathFromLine:_,pathFromArea:j}=u;const L=x.isNumber(Y.globals.minYArr[i])?Y.globals.minYArr[i]:Y.globals.minY;s||(s=Y.globals.dataPoints>1?Y.globals.dataPoints-1:Y.globals.dataPoints);const X=(e,t)=>t-e/F[r]+2*(this.isReversed?e/F[r]:0);let R=l;const z=Y.config.chart.stacked&&!Y.globals.comboCharts||Y.config.chart.stacked&&Y.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||"bar"===(null==(w=this.w.config.series[i])?void 0:w.type)||"column"===(null==(k=this.w.config.series[i])?void 0:k.type));let D=Y.config.stroke.curve;Array.isArray(D)&&(D=Array.isArray(g)?D[g[n]]:D[n]);let N,O=0;const $=this.pointsChart?this._scatterJitterPx(i):null;if("straight"===D&&!this.pointsChart){const p=this._fastStraightPath({type:e,series:t,i:n,realIndex:i,translationsIndex:r,iterations:s,x:a,y:l,pX:o,pY:h,pathsFrom:u,linePaths:c,areaPaths:d,xArrj:m,yArrj:y,y2Arrj:b,stackSeries:z});if(p)return p}for(let r=0;r<s&&0!==t[n].length;r++){const u=void 0===t[n][r+1]||null===t[n][r+1];if(Y.axisFlags.isXNumeric){let e=Y.seriesData.seriesX[i][r+1];void 0===Y.seriesData.seriesX[i][r+1]&&(e=Y.seriesData.seriesX[i][s-1]),a=(e-Y.globals.minX)/this.xRatio}else a+=this.xDivision;if(z)if(n>0&&Y.globals.collapsedSeries.length<Y.config.series.length-1){if((e=>{var t;for(let s=e;s>=0;s--){const e=null!=(t=null==g?void 0:g[s])?t:s;if(-1===Y.globals.collapsedSeriesIndices.indexOf(e)&&-1===Y.globals.ancillaryCollapsedSeriesIndices.indexOf(e))return s}return-1})(n-1)<0)f=this.zeroY;else{const e=this.stackTopAt(i,r+1);f=void 0===e?this.zeroY:e}}else f=this.zeroY;else f=this.zeroY;u?l=X(L,f):(l=X(t[n][r+1],f),"rangeArea"===e&&(R=X(A[n][r+1],f)));let p=a,x=l;if($){const e=100003*i+(r+1);$.x&&(p=a+2*(v(7919*e+13)-.5)*$.x),$.y&&(x=l+2*(v(6271*e+97)-.5)*$.y)}m.push(null===t[n][r+1]?null:p),!u||"smooth"!==Y.config.stroke.curve&&"monotoneCubic"!==Y.config.stroke.curve?(y.push(x),b.push(R)):(y.push(null),b.push(null));const w=this.lineHelpers.calculatePoints({series:t,x:p,y:x,realIndex:i,i:n,j:r,prevY:M}),k=this._createPaths({type:e,series:t,i:n,j:r,x:a,y:l,y2:R,xArrj:m,yArrj:y,y2Arrj:b,pX:o,pY:h,pathState:O,segmentStartX:N,linePath:I,areaPath:C,linePaths:c,areaPaths:d,curve:D,isRangeStart:P});d=k.areaPaths,c=k.linePaths,o=k.pX,h=k.pY,O=k.pathState,N=k.segmentStartX,C=k.areaPath,I=k.linePath,!this.appendPathFrom||Y.globals.hasNullValues||"monotoneCubic"===D&&"rangeArea"===e||(_+=S.line(a,this.areaBottomY),j+=S.line(a,this.areaBottomY)),this.handleNullDataPoints(t,w,n,r,i),this._handleMarkersAndLabels({type:e,pointsPos:w,i:n,j:r,realIndex:i,isRangeStart:P})}return{yArrj:y,xArrj:m,pathFromArea:j,areaPaths:d,pathFromLine:_,linePaths:c,linePath:I,areaPath:C}}_handleMarkersAndLabels({type:e,pointsPos:t,isRangeStart:s,i:i,j:r,realIndex:n}){const a=this.w,l=new g(this.w,this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:n,pointsPos:t,zRatio:this.zRatio,elParent:this.elPointsMain});else{!(!a.globals.dataChanged&&!a.globals.resized&&!a.globals.markers.batched)&&a.seriesData.series[i].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");const e=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:n,j:r+1});null!==e&&e!==this._elLastPointsWrap&&(this.elPointsMain.add(e),this._elLastPointsWrap=e)}const o=l.drawDataLabel({type:e,isRangeStart:s,pos:t,i:n,j:r+1});null!==o&&this.elDataLabelsWrap.add(o)}_scatterJitterPx(e){var t;const s=this.w,i=null==(t=s.config.plotOptions.scatter)?void 0:t.jitter;if(!i||!i.enabled||!i.x&&!i.y)return null;const r=s.axisFlags.isXNumeric&&this.xRatio?1/this.xRatio:this.xDivision,n=this.yRatio.length>1?e:0,a=this.yRatio[n]?1/this.yRatio[n]:0;return{x:(i.x||0)*r,y:(i.y||0)*a}}_fastStraightPath({type:e,series:t,i:s,realIndex:i,translationsIndex:r,iterations:n,x:a,y:l,pX:o,pY:h,pathsFrom:u,linePaths:c,areaPaths:p,xArrj:d,yArrj:g,y2Arrj:f,stackSeries:m}){const y=this.w;if("line"!==e&&"area"!==e)return null;if(y.globals.comboCharts||m)return null;if(y.config.dataLabels.enabled)return null;if(y.config.markers.discrete.length)return null;if(y.globals.markers.size[i]>0)return null;const x=t[s],b=x.length;if(!n||b<2||b-1!==n)return null;for(let e=0;e<=n;e++){const t=x[e];if(null==t)return null}const v=y.axisFlags.isXNumeric,P=v?y.seriesData.seriesX[i]:null;if(v&&(!P||P.length<b))return null;const A=this.yRatio[r],w=this.isReversed,k=this.zeroY,Y=this.areaBottomY,S=this.xRatio,F=y.globals.minX,M=this.xDivision,I=y.config.markers.offsetX,C=y.config.markers.offsetY,_=this.appendPathFrom&&!y.globals.hasNullValues;let{pathFromLine:j,pathFromArea:L}=u;const X=this.ctx&&this.ctx.renderer,R=!(!X||!X.kind||"svg"===X.kind),z=!R||y.globals.dataChanged&&!!y.globals.prevStreamFrame,D=R?new Float64Array(b):null,N=R?new Float64Array(b):null;D&&N&&(D[0]=o,N[0]=h),void 0===y.globals.pointsArray[i]&&(y.globals.pointsArray[i]=[]);const O=y.globals.pointsArray[i],$=P?(P[0]-F)/S+I:this.categoryAxisCorrection+I;O.push([$,u.prevY+C]);const B=z?new Array(n+1):[];z&&(B[0]="M "+o+" "+h);const T=z&&_?new Array(n):null;let W=a,H=o,V=h;for(let e=0;e<n;e++){P?H=(P[e+1]-F)/S:(W+=M,H=W);const t=x[e+1];V=k-t/A+2*(w?t/A:0),d.push(H),g.push(V),f.push(l),O.push([H+I,V+C]),z&&(B[e+1]=" L "+H+" "+V,T&&(T[e]=" L "+H+" "+Y)),D&&N&&(D[e+1]=H,N[e+1]=V)}let E="",J="";if(z&&(E=B.join(""),J=E+" L "+H+" "+Y+" L "+o+" "+Y+"z"),T){const e=T.join("");j+=e,L+=e}else!z&&_&&(j+=" L "+H+" "+Y,L+=" L "+H+" "+Y);return c.push(E),p.push(J),{yArrj:g,xArrj:d,pathFromArea:L,areaPaths:p,pathFromLine:j,linePaths:c,linePath:E,areaPath:J,numericXY:D?{xs:D,ys:N,areaCloseY:Y}:void 0}}_createPaths({type:e,series:t,i:s,j:i,x:r,y:n,xArrj:a,yArrj:l,y2:o,y2Arrj:h,pX:u,pY:c,pathState:d,segmentStartX:g,linePath:f,areaPath:m,linePaths:y,areaPaths:x,curve:b,isRangeStart:v}){const P=new p(this.w),w=this.areaBottomY,k="rangeArea"===e,Y="rangeArea"===e&&v;switch(b){case"monotoneCubic":{const e=v?l:h,r=(e,t)=>e.map((e,s)=>[e,t[s]]).filter(e=>null!==e[1]),n=e=>{const t=[];let s=0;return e.forEach(e=>{null!==e?s++:s>0&&(t.push(s),s=0)}),s>0&&t.push(s),t},o=(e,t)=>{const s=n(e),i=[];for(let e=0,r=0;e<s.length;r+=s[e++])i[e]=A.slice(t,r,r+s[e]);return i};switch(d){case 0:if(null===e[i+1])break;d=1;case 1:if(!(k?a.length===t[s].length:i===t[s].length-2))break;case 2:{const t=v?a:a.slice().reverse(),s=v?e:e.slice().reverse(),i=r(t,s),n=i.length>1?A.points(i):i;let l=[];k&&(Y?x=i:l=x.reverse());let h=0,u=0;if(o(s,n).forEach(e=>{h++;const t=(e=>{let t="";for(let s=0;s<e.length;s++){const i=e[s],r=i.length;r>4?(t+=`C${i[0]}, ${i[1]}`,t+=`, ${i[2]}, ${i[3]}`,t+=`, ${i[4]}, ${i[5]}`):r>2&&(t+=`S${i[0]}, ${i[1]}`,t+=`, ${i[2]}, ${i[3]}`)}return t})(e),s=u;u+=e.length;const r=u-1;Y?f=P.move(i[s][0],i[s][1])+t:k?f=P.move(l[s][0],l[s][1])+P.line(i[s][0],i[s][1])+t+P.line(l[r][0],l[r][1]):(f=P.move(i[s][0],i[s][1])+t,m=f+P.line(i[r][0],w)+P.line(i[s][0],w)+"z",x.push(m)),y.push(f)}),k&&h>1&&!Y){const e=y.slice(h).reverse();y.splice(h),e.forEach(e=>y.push(e))}d=0;break}}break}case"smooth":{const e=.35*(r-u);if(null===t[s][i])d=0;else switch(d){case 0:if(g=u,f=Y?P.move(u,h[i])+P.line(u,c):P.move(u,c),m=P.move(u,c),null===t[s][i+1]||void 0===t[s][i+1]){y.push(f),x.push(m);break}if(d=1,i<t[s].length-2){const t=P.curve(u+e,c,r-e,n,r,n);f+=t,m+=t;break}case 1:if(null===t[s][i+1])f+=Y?P.line(u,o):P.move(u,c),m+=P.line(u,w)+P.line(g,w)+"z",y.push(f),x.push(m),d=-1;else{const a=P.curve(u+e,c,r-e,n,r,n);f+=a,m+=a,i>=t[s].length-2&&(Y&&(f+=P.curve(r,n,r,n,r,o)+P.move(r,o)),m+=P.curve(r,n,r,n,r,w)+P.line(g,w)+"z",y.push(f),x.push(m),d=-1)}}u=r,c=n;break}default:{const e=(e,t,s)=>{let i="";switch(e){case"stepline":i=P.line(t,null,"H")+P.line(null,s,"V");break;case"linestep":i=P.line(null,s,"V")+P.line(t,null,"H");break;case"straight":i=P.line(t,s)}return i};if(null===t[s][i])d=0;else switch(d){case 0:if(g=u,f=Y?P.move(u,h[i])+P.line(u,c):P.move(u,c),m=P.move(u,c),null===t[s][i+1]||void 0===t[s][i+1]){y.push(f),x.push(m);break}if(d=1,i<t[s].length-2){const t=e(b,r,n);f+=t,m+=t;break}case 1:if(null===t[s][i+1])f+=Y?P.line(u,o):P.move(u,c),m+=P.line(u,w)+P.line(g,w)+"z",y.push(f),x.push(m),d=-1;else{const a=e(b,r,n);f+=a,m+=a,i>=t[s].length-2&&(Y&&(f+=P.line(r,o)),m+=P.line(r,w)+P.line(g,w)+"z",y.push(f),x.push(m),d=-1)}}u=r,c=n;break}}return{linePaths:y,areaPaths:x,pX:u,pY:c,pathState:d,segmentStartX:g,linePath:f,areaPath:m}}handleNullDataPoints(e,t,s,i,r){const n=this.w;if(null===e[s][i]&&n.config.markers.showNullDataPoints||1===e[s].length){let e=this.strokeWidth-n.config.markers.strokeWidth/2;e>0||(e=0);const s=this.markers.plotChartMarkers({pointsPos:t,seriesIndex:r,j:i+1,pSize:e,alwaysDrawMarker:!0});null!==s&&this.elPointsMain.add(s)}}}u.default.use({line:E,area:E,scatter:E,bubble:E,rangeArea:E}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>u.default});