apexcharts
Version:
A JavaScript Chart Library
6 lines (5 loc) • 45.8 kB
JavaScript
/*!
* ApexCharts v5.15.0
* (c) 2018-2026 ApexCharts
*/
"use strict";var t=Object.defineProperty,e=Object.defineProperties,s=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(e,s,i)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[s]=i,l=(t,e)=>{for(var s in e||(e={}))a.call(e,s)&&o(t,s,e[s]);if(i)for(var s of i(e))r.call(e,s)&&o(t,s,e[s]);return t},n=(t,i)=>e(t,s(i));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("apexcharts/core");function d(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const s in t)if("default"!==s){const i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,i.get?i:{enumerable:!0,get:()=>t[s]})}return e.default=t,Object.freeze(e)}const b=d(h),g=b.__apex_Graphics,c=b.__apex_DataLabels;class p{constructor(t){this.w=t.w,this.barCtx=t,this.totalFormatter=this.w.config.plotOptions.bar.dataLabels.total.formatter,this.totalFormatter||(this.totalFormatter=this.w.config.dataLabels.formatter)}handleBarDataLabels(t){const{x:e,y:s,y1:i,y2:a,i:r,j:o,realIndex:h,columnGroupIndex:d,series:b,barHeight:c,barWidth:p,barXPosition:x,barYPosition:u,visibleSeries:f}=t,v=this.w,y=new g(this.barCtx.w),m=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[h]:this.barCtx.strokeWidth;let C,w;v.axisFlags.isXNumeric&&!v.globals.isBarHorizontal?(C=e+p*(f+1),w=s+c*(f+1)-m):(C=e+p*f,w=s+c*f);let I=null,P=null,H=e,R=s,W={};const L=v.config.dataLabels,k=this.barCtx.barOptions.dataLabels,D=this.barCtx.barOptions.dataLabels.total;void 0!==u&&(this.barCtx.isRangeBar||this.barCtx.isPyramid)&&(w=u,R=u),void 0!==x&&this.barCtx.isVerticalGroupedRangeBar&&(C=x,H=x);const X=L.offsetX,O=L.offsetY;let Y={width:0,height:0};if(v.config.dataLabels.enabled){const t=v.seriesData.series[r][o];Y=y.getTextRects(v.config.dataLabels.formatter?v.config.dataLabels.formatter(t,n(l({},v),{seriesIndex:r,dataPointIndex:o,w:v})):v.formatters.yLabelFormatters[0](t),parseFloat(L.style.fontSize).toString())}const F={x:e,y:s,i:r,j:o,realIndex:h,columnGroupIndex:d,bcx:C,bcy:w,barHeight:c,barWidth:p,textRects:Y,strokeWidth:m,dataLabelsX:H,dataLabelsY:R,dataLabelsConfig:L,barDataLabelsConfig:k,barTotalDataLabelsConfig:D,offX:X,offY:O};return W=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(F):this.calculateColumnsDataLabelsPosition(F),I=this.drawCalculatedDataLabels({x:W.dataLabelsX,y:W.dataLabelsY,val:this.barCtx.isRangeBar?[i,a]:"100%"===v.config.chart.stackType?b[h][o]:v.seriesData.series[h][o],i:h,j:o,barWidth:p,barHeight:c,textRects:Y,dataLabelsConfig:L}),v.config.chart.stacked&&D.enabled&&(P=this.drawTotalDataLabels({x:W.totalDataLabelsX,y:W.totalDataLabelsY,barWidth:p,barHeight:c,realIndex:h,textAnchor:W.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:h,j:o}),dataLabelsConfig:L,barTotalDataLabelsConfig:D})),{dataLabelsPos:W,dataLabels:I,totalDataLabels:P}}getStackedTotalDataLabel({realIndex:t,j:e}){const s=this.w;let i=this.barCtx.stackedSeriesTotals[e];return this.totalFormatter&&(i=this.totalFormatter(i,n(l({},s),{seriesIndex:t,dataPointIndex:e,w:s}))),i}calculateColumnsDataLabelsPosition(t){const e=this.w;let s,i,{i:a,j:r,realIndex:o,y:l,bcx:n,barWidth:h,barHeight:d,textRects:b,dataLabelsX:c,dataLabelsY:p,dataLabelsConfig:x,barDataLabelsConfig:u,barTotalDataLabelsConfig:f,strokeWidth:v,offX:y,offY:m}=t;const C=n;d=Math.abs(d);const w="vertical"===e.config.plotOptions.bar.dataLabels.orientation,{zeroEncounters:I}=this.barCtx.barHelpers.getZeroValueEncounters({i:a,j:r});n-=v/2;const P=e.layout.gridWidth/e.globals.dataPoints;if(this.barCtx.isVerticalGroupedRangeBar?c+=h/2:(c=e.axisFlags.isXNumeric?n-h/2+y:n-P+h/2+y,!e.config.chart.stacked&&I>0&&e.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(c-=h*I)),w){const t=2;c=c+b.height/2-v/2-t}const H=e.seriesData.series[a][r]<0;let R=l;switch(this.barCtx.isReversed&&(R=l+(H?d:-d)),u.position){case"center":p=w?H?R-d/2+m:R+d/2-m:H?R-d/2+b.height/2+m:R+d/2+b.height/2-m;break;case"bottom":p=w?H?R-d+m:R+d-m:H?R-d+b.height+v+m:R+d-b.height/2+v-m;break;case"top":p=w?H?R+m:R-m:H?R-b.height/2-m:R+b.height+m}let W=R;if(e.labelData.seriesGroups.forEach(t=>{var e;null==(e=this.barCtx[t.join(",")])||e.prevY.forEach(t=>{W=H?Math.max(t[r],W):Math.min(t[r],W)})}),this.barCtx.lastActiveBarSerieIndex===o&&f.enabled){const t=18,a=new g(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:o,j:r}),x.fontSize);s=H?W-a.height/2-m-f.offsetY+t:W+a.height+m+f.offsetY-t;const l=P;i=C+(e.axisFlags.isXNumeric?-h*e.globals.barGroups.length/2:e.globals.barGroups.length*h/2-(e.globals.barGroups.length-1)*h-l)+f.offsetX}return e.config.chart.stacked||(p<0?p=0+v:p+b.height/3>e.layout.gridHeight&&(p=e.layout.gridHeight-v)),{bcx:n,bcy:l,dataLabelsX:c,dataLabelsY:p,totalDataLabelsX:i,totalDataLabelsY:s,totalDataLabelsAnchor:"middle"}}calculateBarsDataLabelsPosition(t){var e;const s=this.w;let{x:i,i:a,j:r,realIndex:o,bcy:l,barHeight:n,barWidth:h,textRects:d,dataLabelsX:b,strokeWidth:c,dataLabelsConfig:p,barDataLabelsConfig:x,barTotalDataLabelsConfig:u,offX:f,offY:v}=t;const y=s.layout.gridHeight/s.globals.dataPoints,{zeroEncounters:m}=this.barCtx.barHelpers.getZeroValueEncounters({i:a,j:r});let C,w,I;if(h=Math.abs(h),this.barCtx.isPyramid){C=l+n/2+v-(null!=(e=d.centerOffset)?e:0)}else C=l-(this.barCtx.isRangeBar?0:y)+n/2+d.height/2+v-3;!s.config.chart.stacked&&m>0&&s.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(C-=n*m);let P="start";const H=s.seriesData.series[a][r]<0;let R=i;if(this.barCtx.isReversed&&(R=i+(H?-h:h),P=H?"start":"end"),this.barCtx.isPyramid)b=s.layout.gridWidth/2+f;else switch(x.position){case"center":b=H?R+h/2-f:Math.max(d.width/2,R-h/2)+f;break;case"bottom":b=H?R+h-c-f:R-h+c+f;break;case"top":b=H?R-c-f:R-c+f}let W=R;if(s.labelData.seriesGroups.forEach(t=>{var e;null==(e=this.barCtx[t.join(",")])||e.prevX.forEach(t=>{W=H?Math.min(t[r],W):Math.max(t[r],W)})}),this.barCtx.lastActiveBarSerieIndex===o&&u.enabled){const t=new g(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:o,j:r}),p.fontSize);H?(w=W-c-f-u.offsetX,P="end"):w=W+f+u.offsetX+(this.barCtx.isReversed?-(h+c):c),I=C-d.height/2+t.height/2+u.offsetY+c,s.globals.barGroups.length>1&&(I-=s.globals.barGroups.length/2*(n/2))}return s.config.chart.stacked||("start"===p.textAnchor?b-d.width<0?b=H?d.width+c:c:b+d.width>s.layout.gridWidth&&(b=H?s.layout.gridWidth-c:s.layout.gridWidth-d.width-c):"middle"===p.textAnchor?b-d.width/2<0?b=d.width/2+c:b+d.width/2>s.layout.gridWidth&&(b=s.layout.gridWidth-d.width/2-c):"end"===p.textAnchor&&(b<1?b=d.width+c:b+1>s.layout.gridWidth&&(b=s.layout.gridWidth-d.width-c))),{bcx:i,bcy:l,dataLabelsX:b,dataLabelsY:C,totalDataLabelsX:w,totalDataLabelsY:I,totalDataLabelsAnchor:P}}drawCalculatedDataLabels({x:t,y:e,val:s,i:i,j:a,textRects:r,barHeight:o,barWidth:h,dataLabelsConfig:d}){const b=this.w;let p="rotate(0)";"vertical"===b.config.plotOptions.bar.dataLabels.orientation&&(p=`rotate(-90, ${t}, ${e})`);const x=new c(this.barCtx.w,this.barCtx.ctx),u=new g(this.barCtx.w),f=d.formatter;let v=null;const y=b.globals.collapsedSeriesIndices.indexOf(i)>-1;if(d.enabled&&!y){v=u.group({class:"apexcharts-data-labels",transform:p});let g="";void 0!==s&&(g=f(s,n(l({},b),{seriesIndex:i,dataPointIndex:a,w:b}))),!s&&b.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(g="");const c=b.seriesData.series[i][a]<0,y=b.config.plotOptions.bar.dataLabels.position;if("vertical"===b.config.plotOptions.bar.dataLabels.orientation&&("top"===y&&(d.textAnchor=c?"end":"start"),"center"===y&&(d.textAnchor="middle"),"bottom"===y&&(d.textAnchor=c?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels){h<u.getTextRects(g,parseFloat(d.style.fontSize).toString()).width&&(g="")}b.config.chart.stacked&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels&&(this.barCtx.isHorizontal?r.width/1.6>Math.abs(h)&&(g=""):r.height/1.6>Math.abs(o)&&(g=""));const m=l({},d);this.barCtx.isHorizontal&&s<0&&("start"===d.textAnchor?m.textAnchor="end":"end"===d.textAnchor&&(m.textAnchor="start")),x.plotDataLabelsText({x:t,y:e,text:g,i:i,j:a,parent:v,dataLabelsConfig:m,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return v}drawTotalDataLabels({x:t,y:e,val:s,realIndex:i,textAnchor:a,barTotalDataLabelsConfig:r}){const o=new g(this.barCtx.w);let l;return r.enabled&&void 0!==t&&void 0!==e&&this.barCtx.lastActiveBarSerieIndex===i&&(l=o.drawText({x:t,y:e,foreColor:r.style.color,text:s,textAnchor:a,fontFamily:r.style.fontFamily,fontSize:r.style.fontSize,fontWeight:r.style.fontWeight})),l}}const x=b.__apex_Series,u=b.__apex_Fill,f=b.__apex_Utils;class v{constructor(t){this.w=t.w,this.barCtx=t}initVariables(t){const e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(let s=0;s<t.length;s++)if(t[s].length>0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[s].length),e.axisFlags.isXNumeric)for(let i=0;i<t[s].length;i++)e.seriesData.seriesX[s][i]>e.globals.minX&&e.seriesData.seriesX[s][i]<e.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=e.globals.dataPoints;this.arrBorderRadius=this.createBorderRadiusArr(e.seriesData.series),f.isSafari()&&(this.arrBorderRadius=this.arrBorderRadius.map(t=>t.map(t=>"none"))),0===this.barCtx.seriesLen&&(this.barCtx.seriesLen=1),this.barCtx.zeroSerieses=[],e.globals.comboCharts||this.checkZeroSeries({series:t})}initialPositions(t){const e=this.w;let s,i,a,r,o,l,n,h,d=e.globals.dataPoints;this.barCtx.isRangeBar&&(d=e.labelData.labels.length);let b=this.barCtx.seriesLen;if(e.config.plotOptions.bar.rangeBarGroupRows&&(b=1),this.barCtx.isHorizontal)a=e.layout.gridHeight/d,o=a/b,e.axisFlags.isXNumeric&&(a=e.layout.gridHeight/this.barCtx.totalItems,o=a/this.barCtx.seriesLen),o=o*parseInt(this.barCtx.barOptions.barHeight,10)/100,-1===String(this.barCtx.barOptions.barHeight).indexOf("%")&&(o=parseInt(this.barCtx.barOptions.barHeight,10)),h=this.barCtx.baseLineInvertedY+e.globals.padHorizontal+(this.barCtx.isReversed?e.layout.gridWidth:0)-(this.barCtx.isReversed?2*this.barCtx.baseLineInvertedY:0),this.barCtx.isFunnel&&(h=e.layout.gridWidth/2),i=(a-o*this.barCtx.seriesLen)/2;else{if(r=e.layout.gridWidth/this.barCtx.visibleItems,e.config.xaxis.convertedCatToNumeric&&(r=e.layout.gridWidth/e.globals.dataPoints),l=r/b*parseInt(this.barCtx.barOptions.columnWidth,10)/100,e.axisFlags.isXNumeric){const t=this.barCtx.xRatio;e.globals.minXDiff&&.5!==e.globals.minXDiff&&e.globals.minXDiff/t>0&&(r=e.globals.minXDiff/t),l=r/b*parseInt(this.barCtx.barOptions.columnWidth,10)/100,l<1&&(l=1)}if(-1===String(this.barCtx.barOptions.columnWidth).indexOf("%")&&(l=parseInt(this.barCtx.barOptions.columnWidth,10)),n=e.layout.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?e.layout.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.translationsIndex]:0),e.axisFlags.isXNumeric){s=this.barCtx.getBarXForNumericXAxis({x:s,j:0,realIndex:t,barWidth:l}).x}else s=e.globals.padHorizontal+f.noExponents(r-l*this.barCtx.seriesLen)/2}return e.globals.barHeight=o,e.globals.barWidth=l,{x:s,y:i,yDivision:a,xDivision:r,barHeight:o,barWidth:l,zeroH:n,zeroW:h}}initializeStackedPrevVars(t){t.w.labelData.seriesGroups.forEach(e=>{t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]})}initializeStackedXYVars(t){t.w.labelData.seriesGroups.forEach(e=>{t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]})}getPathFillColor(t,e,s,i){var a,r,o,l;const n=this.w,h=new u(this.barCtx.w);let d=null;const b=this.barCtx.barOptions.distributed?s:e;let g=!1;if(this.barCtx.barOptions.colors.ranges.length>0){this.barCtx.barOptions.colors.ranges.map(i=>{t[e][s]>=i.from&&t[e][s]<=i.to&&(d=i.color,g=!0)})}return{color:h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?b:i,dataPointIndex:s,color:d,value:t[e][s],fillConfig:null==(a=n.config.series[e].data[s])?void 0:a.fill,fillType:(null==(o=null==(r=n.config.series[e].data[s])?void 0:r.fill)?void 0:o.type)?null==(l=n.config.series[e].data[s])?void 0:l.fill.type:Array.isArray(n.config.fill.type)?n.config.fill.type[i]:n.config.fill.type}),useRangeColor:g}}getStrokeWidth(t,e,s){let i=0;const a=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]||"bar"===a.config.chart.type&&!this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,a.config.stroke.show&&(this.barCtx.isNullValue||(i=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[s]:this.barCtx.strokeWidth)),i}createBorderRadiusArr(t){var e;const s=this.w,i=!this.w.config.chart.stacked||s.config.plotOptions.bar.borderRadius<=0,a=t.length,r=0|(null==(e=t[0])?void 0:e.length),o=Array.from({length:a},()=>Array(r).fill(i?"top":"none"));if(i)return o;const l=this.w.config.chart.type;for(let e=0;e<r;e++){const s=[],i=[];let n=0;for(let r=0;r<a;r++){const a=t[r][e];a>0?(s.push(r),n++):a<0&&(i.push(r),n++)}if(s.length>0&&0===i.length)if(1===s.length)o[s[0]][e]="bar"===l&&1===r?"top":"both";else{const t=s[0],i=s[s.length-1];for(const a of s)o[a][e]=a===t?"bar"===l&&1===r?"top":"bottom":a===i?"top":"none"}else if(i.length>0&&0===s.length)if(1===i.length)o[i[0]][e]="both";else{const t=Math.max(...i),s=Math.min(...i);for(const a of i)o[a][e]=a===t?"bottom":a===s?"top":"none"}else if(s.length>0&&i.length>0){const t=s[s.length-1];for(const i of s)o[i][e]=i===t?"top":"none";const a=Math.max(...i);for(const t of i)o[t][e]=t===a?"bottom":"none"}else if(1===n){o[s[0]||i[0]][e]="both"}}return o}barBackground({j:t,i:e,x1:s,x2:i,y1:a,y2:r,elSeries:o}){const l=this.w,n=new g(this.barCtx.w),h=new x(this.barCtx.w).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&h===e){t>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(t%=this.barCtx.barOptions.colors.backgroundBarColors.length);const e=this.barCtx.barOptions.colors.backgroundBarColors[t],h=n.drawRect(void 0!==s?s:0,void 0!==a?a:0,void 0!==i?i:l.layout.gridWidth,void 0!==r?r:l.layout.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,e,this.barCtx.barOptions.colors.backgroundBarOpacity);o.add(h),h.node.classList.add("apexcharts-backgroundBar")}}getColumnPaths({barWidth:t,barXPosition:e,y1:s,y2:i,strokeWidth:a,isReversed:r,series:o,seriesGroup:l,realIndex:n,i:h,j:d,w:b}){var c,p,x;const u=new g(this.barCtx.w);(a=Array.isArray(a)?a[n]:a)||(a=0);let f=t,v=e;(null==(c=b.config.series[n].data[d])?void 0:c.columnWidthOffset)&&(v=e-b.config.series[n].data[d].columnWidthOffset/2,f=t+b.config.series[n].data[d].columnWidthOffset);const y=a/2,m=v+y,C=v+f-y,w=(o[h][d]>=0?1:-1)*(r?-1:1);s+=.001-y*w,i+=.001+y*w;const I=u.line(C,s),P="around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z";let H,R=u.move(m,s)+u.line(m,i)+u.line(C,i)+I+P;"none"!==this.arrBorderRadius[n][d]&&(R=u.roundPathCorners(R,b.config.plotOptions.bar.borderRadius));const W=null==(x=null==(p=this.barCtx.ctx)?void 0:p.morphTypeChange)?void 0:x.getInitialPathFor(n,d);if(H=W||(b.globals.previousPaths.length>0?this.barCtx.getPreviousPath(n,d,R):u.move(m,s)+u.line(m,s)+I+I+I+I+I+u.line(m,s)+P),b.config.chart.stacked){let t=this.barCtx;t=this.barCtx[l],t.yArrj.push(i-y*w),t.yArrjF.push(Math.abs(s-i+a*w)),t.yArrjVal.push(this.barCtx.series[h][d])}return{pathTo:R,pathFrom:H}}getFunnelTrapezoidPaths({barYPosition:t,barHeight:e,series:s,i:i,j:a,realIndex:r,strokeWidth:o,w:l}){var n,h;const d=new g(this.barCtx.w),b=l.layout.gridWidth/2,c=t=>Math.abs(t/this.barCtx.invertedYRatio)/2,p=c(s[i][a]),x=a===s[i].length-1,u="taper"===l.config.plotOptions.funnel.lastShape?"taper":"flat";let f;f=x?"taper"===u?0:p:c(s[i][a+1]);const v=o/2,y=t+v,m=t+e-v,C=b-p,w=b+p,I=b-f,P=b+f,H=d.move(C,y)+d.line(w,y)+d.line(P,m)+d.line(I,m)+" Z";let R;const W=null==(h=null==(n=this.barCtx.ctx)?void 0:n.morphTypeChange)?void 0:h.getInitialPathFor(r,a);return R=W||(l.globals.previousPaths.length>0?this.barCtx.getPreviousPath(r,a,H):d.move(b,y)+d.line(b,y)+d.line(b,m)+d.line(b,m)+" Z"),{pathTo:H,pathFrom:R,x:w,x1:C,barXPosition:b}}computePyramidLayout(t){const e=this.w,s=e.layout.gridHeight,i=e.layout.gridWidth,a=t.map(t=>Math.abs(Number(t)||0)),r=a.reduce((t,e)=>t+e,0);if(0===r||s<=0)return a.map(()=>({y:0,height:0,topHalf:0,bottomHalf:0}));const o=i/2;let l=0;const n=[];for(let t=0;t<a.length;t++){const e=l/r;l+=a[t];const i=l/r,h=e*s,d=i*s;n.push({y:h,height:d-h,topHalf:e*o,bottomHalf:i*o})}return n}getPyramidPaths({barYPosition:t,barHeight:e,topHalf:s,bottomHalf:i,realIndex:a,j:r,strokeWidth:o,w:l}){var n,h;const d=new g(this.barCtx.w),b=l.layout.gridWidth/2,c=o/2,p=t+c,x=t+e-c,u=b-s,f=b+s,v=b-i,y=b+i,m=d.move(u,p)+d.line(f,p)+d.line(y,x)+d.line(v,x)+" Z";let C;const w=null==(h=null==(n=this.barCtx.ctx)?void 0:n.morphTypeChange)?void 0:h.getInitialPathFor(a,r);return C=w||(l.globals.previousPaths.length>0?this.barCtx.getPreviousPath(a,r,m):d.move(b,p)+d.line(b,p)+d.line(b,x)+d.line(b,x)+" Z"),{pathTo:m,pathFrom:C,x:f,x1:u,barXPosition:b}}getBarpaths({barYPosition:t,barHeight:e,x1:s,x2:i,strokeWidth:a,isReversed:r,series:o,seriesGroup:l,realIndex:n,i:h,j:d,w:b}){var c,p,x;const u=new g(this.barCtx.w);(a=Array.isArray(a)?a[n]:a)||(a=0);let f=t,v=e;(null==(c=b.config.series[n].data[d])?void 0:c.barHeightOffset)&&(f=t-b.config.series[n].data[d].barHeightOffset/2,v=e+b.config.series[n].data[d].barHeightOffset);const y=a/2,m=f+y,C=f+v-y,w=(o[h][d]>=0?1:-1)*(r?-1:1);s+=.001+y*w,i+=.001-y*w;const I=this.barCtx.isFunnel,P=I?(s+i)/2:s,H=u.line(s,C),R="around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z";let W,L=u.move(s,m)+u.line(i,m)+u.line(i,C)+H+R;"none"!==this.arrBorderRadius[n][d]&&(L=u.roundPathCorners(L,b.config.plotOptions.bar.borderRadius));const k=null==(x=null==(p=this.barCtx.ctx)?void 0:p.morphTypeChange)?void 0:x.getInitialPathFor(n,d);if(k)W=k;else if(b.globals.previousPaths.length>0)W=this.barCtx.getPreviousPath(n,d,L);else{const t=I?u.line(P,C):H;W=u.move(P,m)+u.line(P,m)+t+t+t+t+t+u.line(P,m)+R}if(b.config.chart.stacked){let t=this.barCtx;t=this.barCtx[l],t.xArrj.push(i+y*w),t.xArrjF.push(Math.abs(s-i-a*w)),t.xArrjVal.push(this.barCtx.series[h][d])}return{pathTo:L,pathFrom:W}}checkZeroSeries({series:t}){const e=this.w;for(let s=0;s<t.length;s++){let i=0;for(let a=0;a<t[e.globals.maxValsInArrayIndex].length;a++)i+=t[s][a];0===i&&this.barCtx.zeroSerieses.push(s)}}getXForValue(t,e,s=!0){let i=s?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}getYForValue(t,e,s,i=!0){let a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[s]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[s]:0)),a}getGoalValues(t,e,s,i,a,r){const o=this.w,h=[],d=(i,a)=>{h.push({[t]:"x"===t?this.getXForValue(i,e,!1):this.getYForValue(i,s,r,!1),attrs:a})};if(o.seriesData.seriesGoals[i]&&o.seriesData.seriesGoals[i][a]&&Array.isArray(o.seriesData.seriesGoals[i][a])&&o.seriesData.seriesGoals[i][a].forEach(t=>{d(t.value,t)}),this.barCtx.barOptions.isDumbbell&&o.rangeData.seriesRange.length){const e=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:o.globals.colors,s={strokeHeight:"x"===t?0:o.globals.markers.size[i],strokeWidth:"x"===t?o.globals.markers.size[i]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(e[i])?e[i][0]:e[i]};d(o.rangeData.seriesRangeStart[i][a],s),d(o.rangeData.seriesRangeEnd[i][a],n(l({},s),{strokeColor:Array.isArray(e[i])?e[i][1]:e[i]}))}return h}drawGoalLine({barXPosition:t,barYPosition:e,goalX:s,goalY:i,barWidth:a,barHeight:r}){const o=new g(this.barCtx.w),l=o.group({className:"apexcharts-bar-goals-groups"});l.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr("clip-path",`url(#gridRectMarkerMask${this.barCtx.w.globals.cuid})`);let n=null;return this.barCtx.isHorizontal?Array.isArray(s)&&s.forEach(t=>{if(t.x>=-1&&t.x<=o.w.layout.gridWidth+1){const s=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:r/2,i=e+s+r/2;n=o.drawLine(t.x,i-2*s,t.x,i,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(n)}}):Array.isArray(i)&&i.forEach(e=>{if(e.y>=-1&&e.y<=o.w.layout.gridHeight+1){const s=void 0!==e.attrs.strokeWidth?e.attrs.strokeWidth:a/2,i=t+s+a/2;n=o.drawLine(i-2*s,e.y,i,e.y,e.attrs.strokeColor?e.attrs.strokeColor:void 0,e.attrs.strokeDashArray,e.attrs.strokeHeight?e.attrs.strokeHeight:2,e.attrs.strokeLineCap),l.add(n)}}),l}drawBarShadow({prevPaths:t,currPaths:e,color:s,realIndex:i,j:a}){const r=this.w,{x:o,x1:l,barYPosition:n}=t,{x:h,x1:d,barYPosition:b}=e,c=n+e.barHeight,p=new g(this.barCtx.w),x=new f,u=p.move(l,c)+p.line(o,c)+p.line(h,b)+p.line(d,b)+p.line(l,c)+("around"===r.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[i][a]?" Z":" z");return p.drawPath({d:u,fill:x.shadeColor(.5,f.rgb2hex(s)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadow apexcharts-decoration-element"})}getZeroValueEncounters({i:t,j:e}){var s;const i=this.w;let a=0,r=0;return(i.config.plotOptions.bar.horizontal?i.seriesData.series.map((t,e)=>e):(null==(s=i.globals.columnSeries)?void 0:s.i.map(t=>t))||[]).forEach(s=>{const o=i.globals.seriesPercent[s][e];o&&a++,s<t&&0===o&&r++}),{nonZeroColumns:a,zeroEncounters:r}}getGroupIndex(t){const e=this.w,s=e.labelData.seriesGroups.findIndex(s=>s.indexOf(e.seriesData.seriesNames[t])>-1),i=this.barCtx.columnGroupIndices;let a=i.indexOf(s);return a<0&&(i.push(s),a=i.length-1),{groupIndex:s,columnGroupIndex:a}}}const y=b.__apex_CoreUtils,m=b.__apex_Filters,C=b.__apex_Animations_computeStagger;class w{constructor(t,e,s){this.ctx=e,this.w=t,this.barOptions=t.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=t.config.stroke.width,this.isNullValue=!1,this.isRangeBar=t.rangeData.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!t.globals.isBarHorizontal&&t.rangeData.seriesRange.length&&t.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.isPyramid=this.barOptions.isPyramid,this.pyramidLayout=null,this.xyRatios=s,this.xRatio=0,this.yRatio=[],this.invertedXRatio=0,this.invertedYRatio=0,this.baseLineY=[],this.baseLineInvertedY=0,null!==this.xyRatios&&(this.xRatio=s.xRatio,this.yRatio=s.yRatio,this.invertedXRatio=s.invertedXRatio,this.invertedYRatio=s.invertedYRatio,this.baseLineY=s.baseLineY,this.baseLineInvertedY=s.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[],this.series=[],this.elSeries=null,this.visibleI=0,this.isReversed=!1;const i=new x(this.w);this.lastActiveBarSerieIndex=i.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];const a=i.getBarSeriesIndices(),r=new y(this.w);this.stackedSeriesTotals=r.getStackedSeriesTotals(this.w.config.series.map((t,e)=>-1===a.indexOf(e)?e:-1).filter(t=>-1!==t)),this.barHelpers=new v(this)}draw(t,e){var s,i;const a=this.w,r=new g(this.w),o=new y(this.w);t=o.getLogSeries(t),this.series=t,this.yRatio=o.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);const h=r.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&(this.totalItems,this.barOptions.dataLabels.maxItems);for(let o=0,d=0;o<t.length;o++,d++){let b,g;const c=[],p=[],u=a.globals.comboCharts?e[o]:o,{columnGroupIndex:v}=this.barHelpers.getGroupIndex(u),y=r.group({class:"apexcharts-series",rel:o+1,seriesName:f.escapeString(a.seriesData.seriesNames[u]),"data:realIndex":u});x.addCollapsedClassToSeries(this.w,y,u),t[o].length>0&&(this.visibleI=this.visibleI+1),this.yRatio.length>1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[u],this.translationsIndex=u);const C=this.translationsIndex;this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.isPyramid&&(this.pyramidLayout=this.barHelpers.computePyramidLayout(t[o]));const w=this.barHelpers.initialPositions(u),{y:I,yDivision:P,zeroW:H,x:R,xDivision:W,zeroH:L}=w;let k=w.barHeight,D=w.barWidth;g=I,b=R,this.isHorizontal||p.push(b+(null!=D?D:0)/2);const X=r.group({class:"apexcharts-datalabels","data:realIndex":u});a.globals.delayedElements.push({el:X.node}),X.node.classList.add("apexcharts-element-hidden");const O=r.group({class:"apexcharts-bar-goals-markers"}),Y=r.group({class:"apexcharts-bar-shadows"});a.globals.delayedElements.push({el:Y.node}),Y.node.classList.add("apexcharts-element-hidden");for(let e=0;e<t[o].length;e++){const r=this.barHelpers.getStrokeWidth(o,e,u);let h=null;const x={indexes:{i:o,j:e,realIndex:u,translationsIndex:C,bc:d},x:b,y:g,strokeWidth:r,elSeries:y};this.isHorizontal?(h=this.drawBarPaths(n(l({},x),{barHeight:k,zeroW:H,yDivision:P})),D=this.series[o][e]/this.invertedYRatio):(h=this.drawColumnPaths(n(l({},x),{xDivision:W,barWidth:D,zeroH:L})),k=this.series[o][e]/this.yRatio[C]);const w=this.barHelpers.getPathFillColor(t,o,e,u);if(this.isFunnel&&!this.isPyramid&&this.barOptions.isFunnel3d&&"trapezoid"!==(null==(s=a.config.plotOptions.funnel)?void 0:s.shape)&&this.pathArr.length&&e>0){const t=this.barHelpers.drawBarShadow({color:"string"==typeof w.color&&-1===(null==(i=w.color)?void 0:i.indexOf("url"))?w.color:f.hexToRgba(a.globals.colors[o]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:h,realIndex:u,j:e});if(Y.add(t),a.config.chart.dropShadow.enabled){new m(this.w).dropShadow(t,a.config.chart.dropShadow,u)}}this.pathArr.push(h);const I=this.barHelpers.drawGoalLine({barXPosition:h.barXPosition,barYPosition:h.barYPosition,goalX:h.goalX,goalY:h.goalY,barHeight:k,barWidth:D});I&&O.add(I),g=h.y,b=h.x,e>0&&p.push(b+(null!=D?D:0)/2),c.push(g),this.renderSeries(n(l({realIndex:u,pathFill:w.color},w.useRangeColor?{lineFill:w.color}:{}),{j:e,i:o,columnGroupIndex:v,pathFrom:h.pathFrom,pathTo:h.pathTo,strokeWidth:r,elSeries:y,x:b,y:g,series:t,barHeight:Math.abs(h.barHeight?h.barHeight:k),barWidth:Math.abs(h.barWidth?h.barWidth:D),elDataLabelsWrap:X,elGoalsMarkers:O,elBarShadows:Y,visibleSeries:this.visibleI,type:"bar"}))}a.globals.seriesXvalues[u]=p,a.globals.seriesYvalues[u]=c,h.add(y)}return h}renderSeries({realIndex:t,pathFill:e,lineFill:s,j:i,i:a,columnGroupIndex:r,pathFrom:o,pathTo:l,strokeWidth:n,elSeries:h,x:d,y:b,y1:c,y2:x,series:u,barHeight:f,barWidth:v,barXPosition:y,barYPosition:w,elDataLabelsWrap:I,elGoalsMarkers:P,elBarShadows:H,visibleSeries:R,type:W,classes:L}){var k;const D=this.w,X=new g(this.w,this.ctx);let O=!1;if(h._bindingsDelegated||(h._bindingsDelegated=!0,X.setupEventDelegation(h,`.apexcharts-${W}-area`)),!s){let e=function(t){const e=D.config.stroke.colors;let s;return Array.isArray(e)&&e.length>0&&(s=e[t],s||(s=""),"function"==typeof s)?s({value:D.seriesData.series[t][i],dataPointIndex:i,w:D}):s};const a="function"==typeof D.globals.stroke.colors[t]?e(t):D.globals.stroke.colors[t];s=this.barOptions.distributed?D.globals.stroke.colors[i]:a}const Y=new p(this).handleBarDataLabels({x:d,y:b,y1:c,y2:x,i:a,j:i,series:u,realIndex:t,columnGroupIndex:r,barHeight:f,barWidth:v,barXPosition:y,barYPosition:w,visibleSeries:R});D.globals.isBarHorizontal||(Y.dataLabelsPos.dataLabelsX+Math.max(v,D.globals.barPadForNumericAxis)<0||Y.dataLabelsPos.dataLabelsX-Math.max(v,D.globals.barPadForNumericAxis)>D.layout.gridWidth)&&(O=!0),D.config.series[a].data[i]&&D.config.series[a].data[i].strokeColor&&(s=D.config.series[a].data[i].strokeColor),this.isNullValue&&(e="none");const F=D.config.chart.animations,S=F.animateGradually;let A=0;if(S&&!1!==S.enabled){const t=D.globals.dataPoints||1,e=S.delay||0,s=Math.min(e,.5*F.speed/Math.max(1,t));let r=C({style:"sequential",index:i,baseDelay:s});D.config.chart.stacked&&(r+=a*s*.5);A=r/(e||1)}if(!O){const r=!0===(null==(k=this.ctx.morphTypeChange)?void 0:k.isActive())?this.ctx.morphTypeChange.getSpeed():D.config.chart.animations.dynamicAnimation.speed,d=X.renderPaths({i:a,j:i,realIndex:t,pathFrom:o,pathTo:l,stroke:s,strokeWidth:n,strokeLineCap:D.config.stroke.lineCap,fill:e,animationDelay:A,initialSpeed:D.config.chart.animations.speed,dataChangeSpeed:r,className:`apexcharts-${W}-area ${L}`,chartType:W,bindEventsOnPaths:!1});d.attr("clip-path",`url(#gridRectBarMask${D.globals.cuid})`);const b=D.config.forecastDataPoints;b.count>0&&i>=D.globals.dataPoints-b.count&&(d.node.setAttribute("stroke-dasharray",b.dashArray),d.node.setAttribute("stroke-width",b.strokeWidth),d.node.setAttribute("fill-opacity",b.fillOpacity)),void 0!==c&&void 0!==x&&(d.attr("data-range-y1",c),d.attr("data-range-y2",x));new m(this.w).setSelectionFilter(d,t,i),h.add(d),d.attr({cy:Y.dataLabelsPos.bcy,cx:Y.dataLabelsPos.bcx,j:i,val:D.seriesData.series[a][i],barHeight:f,barWidth:v}),null!==Y.dataLabels&&I.add(Y.dataLabels),Y.totalDataLabels&&I.add(Y.totalDataLabels),h.add(I),P&&h.add(P),H&&h.add(H)}return h}drawBarPaths({indexes:t,barHeight:e,strokeWidth:s,zeroW:i,x:a,y:r,yDivision:o,elSeries:l}){const n=this.w,h=t.i,d=t.j;let b;if(n.axisFlags.isXNumeric)b=(r=(n.seriesData.seriesX[h][d]-n.globals.minX)/this.invertedXRatio-e)+e*this.visibleI;else if(n.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:t,zeroEncounters:s}=this.barHelpers.getZeroValueEncounters({i:h,j:d});t>0&&(e=this.seriesLen*e/t),b=r+e*this.visibleI,b-=e*s}else b=r+e*this.visibleI;const g=this.isFunnel&&"trapezoid"===n.config.plotOptions.funnel.shape,c=this.isPyramid&&this.pyramidLayout?this.pyramidLayout[d]:null,p=!!c;if(c)b=c.y,e=c.height;else if(this.isFunnel&&!g){const t=null!=i?i:0;i=t-(this.barHelpers.getXForValue(this.series[h][d],t)-t)/2}let x;return a=this.barHelpers.getXForValue(this.series[h][d],null!=i?i:0),x=c?this.barHelpers.getPyramidPaths({barYPosition:b,barHeight:e,topHalf:c.topHalf,bottomHalf:c.bottomHalf,realIndex:t.realIndex,j:d,strokeWidth:s,w:n}):g?this.barHelpers.getFunnelTrapezoidPaths({barYPosition:b,barHeight:e,series:this.series,i:h,j:d,realIndex:t.realIndex,strokeWidth:s,w:n}):this.barHelpers.getBarpaths({barYPosition:b,barHeight:e,x1:i,x2:a,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:t.realIndex,i:h,j:d,w:n}),(g||p)&&(i=x.x1,a=x.x),n.axisFlags.isXNumeric||p||(r+=o),p&&(r=b),this.barHelpers.barBackground({j:d,i:h,y1:b-e*this.visibleI,y2:e*this.seriesLen,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x1:i,x:a,y:r,goalX:this.barHelpers.getGoalValues("x",i,null,h,d,0),barYPosition:b,barHeight:e}}drawColumnPaths({indexes:t,x:e,y:s,xDivision:i,barWidth:a,zeroH:r,strokeWidth:o,elSeries:l}){const n=this.w,h=t.realIndex,d=t.translationsIndex,b=t.i,g=t.j,c=t.bc;let p;if(n.axisFlags.isXNumeric){const t=this.getBarXForNumericXAxis({x:e,j:g,realIndex:h,barWidth:a});e=t.x,p=t.barXPosition}else if(n.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:t,zeroEncounters:s}=this.barHelpers.getZeroValueEncounters({i:b,j:g});t>0&&(a=this.seriesLen*a/t),p=e+a*this.visibleI,p-=a*s}else p=e+a*this.visibleI;s=this.barHelpers.getYForValue(this.series[b][g],r,d);const x=this.barHelpers.getColumnPaths({barXPosition:p,barWidth:a,y1:r,y2:s,strokeWidth:o,isReversed:this.isReversed,series:this.series,realIndex:h,i:b,j:g,w:n});return n.axisFlags.isXNumeric||(e+=i),this.barHelpers.barBackground({bc:c,j:g,i:b,x1:p-o/2-a*this.visibleI,x2:a*this.seriesLen+o/2,elSeries:l}),{pathTo:x.pathTo,pathFrom:x.pathFrom,x:e,y:s,goalY:this.barHelpers.getGoalValues("y",null,r,b,g,d),barXPosition:p,barWidth:a}}getBarXForNumericXAxis({x:t,barWidth:e,realIndex:s,j:i}){const a=this.w;let r=s;return a.seriesData.seriesX[s].length||(r=a.globals.maxValsInArrayIndex),f.isNumber(a.seriesData.seriesX[r][i])&&(t=(a.seriesData.seriesX[r][i]-a.globals.minX)/this.xRatio-e*this.seriesLen/2),{barXPosition:t+e*this.visibleI,x:t}}getPreviousPath(t,e,s){const i=this.w;let a=null;for(let s=0;s<i.globals.previousPaths.length;s++){const r=i.globals.previousPaths[s];r.paths&&r.paths.length>0&&parseInt(r.realIndex,10)===parseInt(String(t),10)&&void 0!==r.paths[e]&&(a=r.paths[e].d)}return a&&w.pathCommandCount(a)===w.pathCommandCount(s)?a:s}static pathCommandCount(t){if(!t)return 0;const e=t.match(/[A-Za-z]/g);return e?e.length:0}}h.use({bar:w,column:w,barStacked:class extends w{draw(t,e){const s=this.w;this.graphics=new g(this.w),this.bar=new w(this.w,this.ctx,this.xyRatios);const i=new y(this.w);t=i.getLogSeries(t),this.yRatio=i.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),"100%"===s.config.chart.stackType&&(t=s.globals.comboCharts?e.map(t=>s.globals.seriesPercent[t]):s.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);const a=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"});let r=0,o=0;for(let i=0,h=0;i<t.length;i++,h++){const d=s.globals.comboCharts?e[i]:i,{groupIndex:b,columnGroupIndex:g}=this.barHelpers.getGroupIndex(d);this.groupCtx=this[s.labelData.seriesGroups[b]];const c=[],p=[];let u=0;this.yRatio.length>1&&(this.yaxisIndex=s.globals.seriesYAxisReverseMap[d][0],u=d),this.isReversed=s.config.yaxis[this.yaxisIndex]&&s.config.yaxis[this.yaxisIndex].reversed;let v=this.graphics.group({class:"apexcharts-series",seriesName:f.escapeString(s.seriesData.seriesNames[d]),rel:i+1,"data:realIndex":d});x.addCollapsedClassToSeries(this.w,v,d);const y=this.graphics.group({class:"apexcharts-datalabels","data:realIndex":d}),m=this.graphics.group({class:"apexcharts-bar-goals-markers"}),C=this.initialPositions(r,o,void 0,void 0,void 0,void 0,u),{xDivision:w,yDivision:I,zeroH:P,zeroW:H}=C;let R=C.barHeight,W=C.barWidth;o=C.y,r=C.x,s.globals.barHeight=R,s.globals.barWidth=W,this.barHelpers.initializeStackedXYVars(this),1===this.groupCtx.prevY.length&&this.groupCtx.prevY[0].every(t=>isNaN(t))&&(this.groupCtx.prevY[0]=this.groupCtx.prevY[0].map(()=>P),this.groupCtx.prevYF[0]=this.groupCtx.prevYF[0].map(()=>0));for(let e=0;e<s.globals.dataPoints;e++){const a=this.barHelpers.getStrokeWidth(i,e,d),x={indexes:{i:i,j:e,realIndex:d,translationsIndex:u,bc:h},strokeWidth:a,x:r,y:o,elSeries:v,columnGroupIndex:g,seriesGroup:s.labelData.seriesGroups[b]};let f=null;this.isHorizontal?(f=this.drawStackedBarPaths(n(l({},x),{zeroW:H,barHeight:R,yDivision:I})),W=this.series[i][e]/this.invertedYRatio):(f=this.drawStackedColumnPaths(n(l({},x),{xDivision:w,barWidth:W,zeroH:P})),R=this.series[i][e]/this.yRatio[u]);const C=this.barHelpers.drawGoalLine({barXPosition:f.barXPosition,barYPosition:f.barYPosition,goalX:f.goalX,goalY:f.goalY,barHeight:R,barWidth:W});C&&m.add(C),o=f.y,r=f.x,c.push(r),p.push(o);const L=this.barHelpers.getPathFillColor(t,i,e,d);let k="";const D=s.globals.isBarHorizontal?"apexcharts-flip-x":"apexcharts-flip-y";("bottom"===this.barHelpers.arrBorderRadius[d][e]&&s.seriesData.series[d][e]>0||"top"===this.barHelpers.arrBorderRadius[d][e]&&s.seriesData.series[d][e]<0)&&(k=D),v=this.renderSeries(n(l({realIndex:d,pathFill:L.color},L.useRangeColor?{lineFill:L.color}:{}),{j:e,i:i,columnGroupIndex:g,pathFrom:f.pathFrom,pathTo:f.pathTo,strokeWidth:a,elSeries:v,x:r,y:o,series:t,barHeight:R,barWidth:W,elDataLabelsWrap:y,elGoalsMarkers:m,type:"bar",visibleSeries:g,classes:k}))}s.globals.seriesXvalues[d]=c,s.globals.seriesYvalues[d]=p,this.groupCtx.prevY.push(this.groupCtx.yArrj),this.groupCtx.prevYF.push(this.groupCtx.yArrjF),this.groupCtx.prevYVal.push(this.groupCtx.yArrjVal),this.groupCtx.prevX.push(this.groupCtx.xArrj),this.groupCtx.prevXF.push(this.groupCtx.xArrjF),this.groupCtx.prevXVal.push(this.groupCtx.xArrjVal),a.add(v)}return a}initialPositions(t,e,s,i,a,r,o){const l=this.w;let n,h;if(this.isHorizontal){i=l.layout.gridHeight/l.globals.dataPoints;const t=l.config.plotOptions.bar.barHeight;n=-1===String(t).indexOf("%")?parseInt(t,10):i*parseInt(t,10)/100,r=l.globals.padHorizontal+(this.isReversed?l.layout.gridWidth-this.baseLineInvertedY:this.baseLineInvertedY),e=(i-n)/2}else{h=s=l.layout.gridWidth/l.globals.dataPoints;const e=l.config.plotOptions.bar.columnWidth;l.axisFlags.isXNumeric&&l.globals.dataPoints>1?h=(s=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:-1===String(e).indexOf("%")?h=parseInt(e,10):h*=parseInt(e,10)/100,a=this.isReversed?this.baseLineY[o]:l.layout.gridHeight-this.baseLineY[o],t=l.globals.padHorizontal+(s-h)/2}const d=l.globals.barGroups.length||1;return{x:t,y:e,yDivision:i,xDivision:s,barHeight:(null!=n?n:0)/d,barWidth:(null!=h?h:0)/d,zeroH:a,zeroW:r}}drawStackedBarPaths({indexes:t,barHeight:e,strokeWidth:s,zeroW:i,x:a,y:r,columnGroupIndex:o,seriesGroup:l,yDivision:n,elSeries:h}){var d,b,g,c,p;const x=this.w,u=r+o*e;let f;const v=t.i,y=t.j,m=t.realIndex,C=t.translationsIndex;let w=0;for(let t=0;t<this.groupCtx.prevXF.length;t++)w+=this.groupCtx.prevXF[t][y];let I=v;if(x.config.series[m].name&&(I=l.indexOf(x.config.series[m].name)),I>0){let t=i;this.groupCtx.prevXVal[I-1][y]<0?t=(null==(d=this.series[v])?void 0:d[y])>=0?this.groupCtx.prevX[I-1][y]+w-2*(this.isReversed?w:0):this.groupCtx.prevX[I-1][y]:this.groupCtx.prevXVal[I-1][y]>=0&&(t=(null==(b=this.series[v])?void 0:b[y])>=0?this.groupCtx.prevX[I-1][y]:this.groupCtx.prevX[I-1][y]-w+2*(this.isReversed?w:0)),f=t}else f=i;a=null===(null==(g=this.series[v])?void 0:g[y])?f:f+(null==(c=this.series[v])?void 0:c[y])/this.invertedYRatio-2*(this.isReversed?(null==(p=this.series[v])?void 0:p[y])/this.invertedYRatio:0);const P=this.barHelpers.getBarpaths({barYPosition:u,barHeight:e,x1:f,x2:a,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:t.realIndex,seriesGroup:l,i:v,j:y,w:x});return this.barHelpers.barBackground({j:y,i:v,y1:u,y2:e,elSeries:h}),r+=n,{pathTo:P.pathTo,pathFrom:P.pathFrom,goalX:this.barHelpers.getGoalValues("x",i,null,v,y,C),barXPosition:f,barYPosition:u,x:a,y:r}}drawStackedColumnPaths({indexes:t,x:e,y:s,xDivision:i,barWidth:a,zeroH:r,columnGroupIndex:o,seriesGroup:l,elSeries:n}){var h,d,b,g,c,p,x,u,f;const v=this.w,y=t.i,m=t.j,C=t.bc,w=t.realIndex,I=t.translationsIndex;if(v.axisFlags.isXNumeric){let t=v.seriesData.seriesX[w][m];t||(t=0),e=(t-v.globals.minX)/this.xRatio-a/2*v.globals.barGroups.length}const P=e+o*a;let H,R=0;for(let t=0;t<this.groupCtx.prevYF.length;t++)R+=isNaN(this.groupCtx.prevYF[t][m])?0:this.groupCtx.prevYF[t][m];let W=y;if(l&&(W=l.indexOf(v.seriesData.seriesNames[w])),W>0&&!v.axisFlags.isXNumeric||W>0&&v.axisFlags.isXNumeric&&v.seriesData.seriesX[w-1][m]===v.seriesData.seriesX[w][m]){let t,e;const s=Math.min(this.yRatio.length+1,w+1);if(void 0!==this.groupCtx.prevY[W-1]&&this.groupCtx.prevY[W-1].length)for(let t=1;t<s;t++)if(!isNaN(null==(h=this.groupCtx.prevY[W-t])?void 0:h[m])){e=this.groupCtx.prevY[W-t][m];break}for(let i=1;i<s;i++){if((null==(d=this.groupCtx.prevYVal[W-i])?void 0:d[m])<0){t=(null==(b=this.series[y])?void 0:b[m])>=0?e-R+2*(this.isReversed?R:0):e;break}if((null==(g=this.groupCtx.prevYVal[W-i])?void 0:g[m])>=0){t=(null==(c=this.series[y])?void 0:c[m])>=0?e:e+R-2*(this.isReversed?R:0);break}}void 0===t&&(t=v.layout.gridHeight),H=(null==(p=this.groupCtx.prevYF[0])?void 0:p.every(t=>0===t))&&this.groupCtx.prevYF.slice(1,W).every(t=>t.every(t=>isNaN(t)))?r:t}else H=r;s=(null==(x=this.series[y])?void 0:x[m])?H-(null==(u=this.series[y])?void 0:u[m])/this.yRatio[I]+2*(this.isReversed?(null==(f=this.series[y])?void 0:f[m])/this.yRatio[I]:0):H;const L=this.barHelpers.getColumnPaths({barXPosition:P,barWidth:a,y1:H,y2:s,yRatio:this.yRatio[I],strokeWidth:this.strokeWidth,isReversed:this.isReversed,series:this.series,seriesGroup:l,realIndex:t.realIndex,i:y,j:m,w:v});return this.barHelpers.barBackground({bc:C,j:m,i:y,x1:P,x2:a,elSeries:n}),{pathTo:L.pathTo,pathFrom:L.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,r,y,m,0),barXPosition:P,x:v.axisFlags.isXNumeric?e:e+i,y:s}}},rangeBar:class extends w{draw(t,e){var s,i,a,r,o,n,h,d,b;const c=this.w,p=new g(this.w);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=c.rangeData.seriesRangeStart,this.seriesRangeEnd=c.rangeData.seriesRangeEnd,this.barHelpers.initVariables(t);const u=p.group({class:"apexcharts-rangebar-series apexcharts-plot-series"});for(let g=0;g<t.length;g++){let v,y;const m=c.globals.comboCharts?e[g]:g,{columnGroupIndex:C}=this.barHelpers.getGroupIndex(m),w=p.group({class:"apexcharts-series",seriesName:f.escapeString(c.seriesData.seriesNames[m]),rel:g+1,"data:realIndex":m});x.addCollapsedClassToSeries(this.w,w,m),t[g].length>0&&(this.visibleI=this.visibleI+1);let I=0;this.yRatio.length>1&&(this.yaxisIndex=c.globals.seriesYAxisReverseMap[m][0],I=m);const P=this.barHelpers.initialPositions(m),{y:H,zeroW:R,x:W,zeroH:L}=P;let k=null!=(s=P.barWidth)?s:0,D=null!=(i=P.barHeight)?i:0;const X=null!=(a=P.yDivision)?a:0,O=null!=(r=P.xDivision)?r:0;y=H,v=W;const Y=p.group({class:"apexcharts-datalabels","data:realIndex":m}),F=p.group({class:"apexcharts-rangebar-goals-markers"});for(let e=0;e<c.globals.dataPoints;e++){const s=this.barHelpers.getStrokeWidth(g,e,m),i=this.seriesRangeStart[g][e],a=this.seriesRangeEnd[g][e];let r=null,p=null,x=null;const u={x:v,y:y,strokeWidth:s,elSeries:w};let f=this.seriesLen;if(c.config.plotOptions.bar.rangeBarGroupRows&&(f=1),void 0===(null==(o=c.config.series[g].data)?void 0:o[e]))break;if(this.isHorizontal){x=y+D*this.visibleI;const t=(X-D*f)/2;if(null==(h=null==(n=c.config.series[g].data)?void 0:n[e])?void 0:h.x){const s=this.detectOverlappingBars({i:g,j:e,barYPosition:x,srty:t,barHeight:D,yDivision:X,initPositions:P});D=s.barHeight,x=s.barYPosition}r=this.drawRangeBarPaths(l({indexes:{i:g,j:e,realIndex:m},barHeight:D,barYPosition:x,zeroW:R,yDivision:X,y1:i,y2:a},u)),k=r.barWidth}else{c.axisFlags.isXNumeric&&(v=(c.seriesData.seriesX[g][e]-c.globals.minX)/this.xRatio-k/2),p=v+k*this.visibleI;const t=(O-k*f)/2;if(null==(b=null==(d=c.config.series[g].data)?void 0:d[e])?void 0:b.x){const s=this.detectOverlappingBars({i:g,j:e,barXPosition:p,srtx:t,barWidth:k,xDivision:O,initPositions:P});k=s.barWidth,p=s.barXPosition}r=this.drawRangeColumnPaths(l({indexes:{i:g,j:e,realIndex:m,translationsIndex:I},barWidth:k,barXPosition:p,zeroH:L,xDivision:O},u)),D=r.barHeight}const H=this.barHelpers.drawGoalLine({barXPosition:r.barXPosition,barYPosition:x,goalX:r.goalX,goalY:r.goalY,barHeight:D,barWidth:k});H&&F.add(H),y=r.y,v=r.x;const W=this.barHelpers.getPathFillColor(t,g,e,m);this.renderSeries({realIndex:m,pathFill:W.color,lineFill:W.useRangeColor?W.color:c.globals.stroke.colors[m],j:e,i:g,x:v,y:y,y1:i,y2:a,pathFrom:r.pathFrom,pathTo:r.pathTo,strokeWidth:s,elSeries:w,series:t,barHeight:D,barWidth:k,barXPosition:p,barYPosition:x,columnGroupIndex:C,elDataLabelsWrap:Y,elGoalsMarkers:F,visibleSeries:this.visibleI,type:"rangebar"})}u.add(w)}return u}detectOverlappingBars({i:t,j:e,barYPosition:s,barXPosition:i,srty:a,srtx:r,barHeight:o,barWidth:l,yDivision:n,xDivision:h,initPositions:d}){var b,g,c,p;const x=this.w;let u=[];const f=null==(g=null==(b=x.config.series[t].data)?void 0:b[e])?void 0:g.rangeName,v=null==(p=null==(c=x.config.series[t].data)?void 0:c[e])?void 0:p.x,y=Array.isArray(v)?v.join(" "):v,m=x.labelData.labels.map(t=>Array.isArray(t)?t.join(" "):t).indexOf(y),C=x.rangeData.seriesRange[t].findIndex(t=>{var e;return t.x===y&&(null==(e=t.overlaps)?void 0:e.size)>0});return this.isHorizontal?(s=x.config.plotOptions.bar.rangeBarGroupRows?a+n*m:a+o*this.visibleI+n*m,C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(u=Array.from(x.rangeData.seriesRange[t][C].overlaps),u.indexOf(f)>-1&&(s=(o=d.barHeight/u.length)*this.visibleI+n*(100-parseInt(this.barOptions.barHeight,10))/100/2+o*(this.visibleI+u.indexOf(f))+n*m))):(m>-1&&!x.labelData.timescaleLabels.length&&(i=x.config.plotOptions.bar.rangeBarGroupRows?r+h*m:r+l*this.visibleI+h*m),C>-1&&!x.config.plotOptions.bar.rangeBarOverlap&&(u=Array.from(x.rangeData.seriesRange[t][C].overlaps),u.indexOf(f)>-1&&(i=(l=d.barWidth/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(f))+h*m))),{barYPosition:s,barXPosition:i,barHeight:o,barWidth:l}}drawRangeColumnPaths({indexes:t,x:e,xDivision:s,barWidth:i,barXPosition:a,zeroH:r}){var o,l;const n=this.w,{i:h,j:d,realIndex:b,translationsIndex:g}=t,c=this.yRatio[g],p=this.getRangeValue(b,d);let x=Math.min(p.start,p.end),u=Math.max(p.start,p.end);void 0===(null==(o=this.series[h])?void 0:o[d])||null===(null==(l=this.series[h])?void 0:l[d])?x=r:(x=r-x/c,u=r-u/c);const f=Math.abs(u-x),v=this.barHelpers.getColumnPaths({barXPosition:a,barWidth:i,y1:x,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:b,i:b,j:d,w:n});if(n.axisFlags.isXNumeric){const t=this.getBarXForNumericXAxis({x:e,j:d,realIndex:b,barWidth:i});e=t.x,a=t.barXPosition}else e+=s;return{pathTo:v.pathTo,pathFrom:v.pathFrom,barHeight:f,x:e,y:p.start<0&&p.end<0?x:u,goalY:this.barHelpers.getGoalValues("y",null,r,h,d,g),barXPosition:a}}preventBarOverflow(t){const e=this.w;return t<0&&(t=0),t>e.layout.gridWidth&&(t=e.layout.gridWidth),t}drawRangeBarPaths({indexes:t,y:e,y1:s,y2:i,yDivision:a,barHeight:r,barYPosition:o,zeroW:l}){const n=this.w,{realIndex:h,j:d}=t,b=this.preventBarOverflow(l+s/this.invertedYRatio),g=this.preventBarOverflow(l+i/this.invertedYRatio),c=this.getRangeValue(h,d),p=Math.abs(g-b),x=this.barHelpers.getBarpaths({barYPosition:o,barHeight:r,x1:b,x2:g,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:h,realIndex:h,j:d,w:n});return n.axisFlags.isXNumeric||(e+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barWidth:p,x:c.start<0&&c.end<0?b:g,goalX:this.barHelpers.getGoalValues("x",l,null,h,d,0),y:e}}getRangeValue(t,e){const s=this.w;return{start:s.rangeData.seriesRangeStart[t][e],end:s.rangeData.seriesRangeEnd[t][e]}}}}),exports.default=h;