apexcharts
Version:
A JavaScript Chart Library
6 lines (5 loc) • 35.3 kB
JavaScript
/*!
* ApexCharts v5.10.5
* (c) 2018-2026 ApexCharts
*/
"use strict";var t=Object.defineProperty,e=Object.defineProperties,s=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(e,s,a)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[s]=a,l=(t,e)=>{for(var s in e||(e={}))i.call(e,s)&&o(t,s,e[s]);if(a)for(var s of a(e))r.call(e,s)&&o(t,s,e[s]);return t},n=(t,a)=>e(t,s(a));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 a=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>t[s]})}return e.default=t,Object.freeze(e)}const b=d(h),c=b.__apex_CoreUtils,g=b.__apex_Graphics,x=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:a,y2:i,i:r,j:o,realIndex:h,columnGroupIndex:d,series:b,barHeight:c,barWidth:x,barXPosition:p,barYPosition:u,visibleSeries:f}=t,C=this.w,y=new g(this.barCtx.w),m=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[h]:this.barCtx.strokeWidth;let v,w;C.axisFlags.isXNumeric&&!C.globals.isBarHorizontal?(v=e+x*(f+1),w=s+c*(f+1)-m):(v=e+x*f,w=s+c*f);let L=null,I=null,P=e,k=s,D={};const H=C.config.dataLabels,R=this.barCtx.barOptions.dataLabels,O=this.barCtx.barOptions.dataLabels.total;void 0!==u&&this.barCtx.isRangeBar&&(w=u,k=u),void 0!==p&&this.barCtx.isVerticalGroupedRangeBar&&(v=p,P=p);const W=H.offsetX,X=H.offsetY;let A={width:0,height:0};if(C.config.dataLabels.enabled){const t=C.seriesData.series[r][o];A=y.getTextRects(C.config.dataLabels.formatter?C.config.dataLabels.formatter(t,n(l({},C),{seriesIndex:r,dataPointIndex:o,w:C})):C.formatters.yLabelFormatters[0](t),parseFloat(H.style.fontSize).toString())}const S={x:e,y:s,i:r,j:o,realIndex:h,columnGroupIndex:d,bcx:v,bcy:w,barHeight:c,barWidth:x,textRects:A,strokeWidth:m,dataLabelsX:P,dataLabelsY:k,dataLabelsConfig:H,barDataLabelsConfig:R,barTotalDataLabelsConfig:O,offX:W,offY:X};return D=this.barCtx.isHorizontal?this.calculateBarsDataLabelsPosition(S):this.calculateColumnsDataLabelsPosition(S),L=this.drawCalculatedDataLabels({x:D.dataLabelsX,y:D.dataLabelsY,val:this.barCtx.isRangeBar?[a,i]:"100%"===C.config.chart.stackType?b[h][o]:C.seriesData.series[h][o],i:h,j:o,barWidth:x,barHeight:c,textRects:A,dataLabelsConfig:H}),C.config.chart.stacked&&O.enabled&&(I=this.drawTotalDataLabels({x:D.totalDataLabelsX,y:D.totalDataLabelsY,barWidth:x,barHeight:c,realIndex:h,textAnchor:D.totalDataLabelsAnchor,val:this.getStackedTotalDataLabel({realIndex:h,j:o}),dataLabelsConfig:H,barTotalDataLabelsConfig:O})),{dataLabelsPos:D,dataLabels:L,totalDataLabels:I}}getStackedTotalDataLabel({realIndex:t,j:e}){const s=this.w;let a=this.barCtx.stackedSeriesTotals[e];return this.totalFormatter&&(a=this.totalFormatter(a,n(l({},s),{seriesIndex:t,dataPointIndex:e,w:s}))),a}calculateColumnsDataLabelsPosition(t){const e=this.w;let s,a,{i:i,j:r,realIndex:o,y:l,bcx:n,barWidth:h,barHeight:d,textRects:b,dataLabelsX:c,dataLabelsY:x,dataLabelsConfig:p,barDataLabelsConfig:u,barTotalDataLabelsConfig:f,strokeWidth:C,offX:y,offY:m}=t;const v=n;d=Math.abs(d);const w="vertical"===e.config.plotOptions.bar.dataLabels.orientation,{zeroEncounters:L}=this.barCtx.barHelpers.getZeroValueEncounters({i:i,j:r});n-=C/2;const I=e.layout.gridWidth/e.globals.dataPoints;if(this.barCtx.isVerticalGroupedRangeBar?c+=h/2:(c=e.axisFlags.isXNumeric?n-h/2+y:n-I+h/2+y,!e.config.chart.stacked&&L>0&&e.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(c-=h*L)),w){const t=2;c=c+b.height/2-C/2-t}const P=e.seriesData.series[i][r]<0;let k=l;switch(this.barCtx.isReversed&&(k=l+(P?d:-d)),u.position){case"center":x=w?P?k-d/2+m:k+d/2-m:P?k-d/2+b.height/2+m:k+d/2+b.height/2-m;break;case"bottom":x=w?P?k-d+m:k+d-m:P?k-d+b.height+C+m:k+d-b.height/2+C-m;break;case"top":x=w?P?k+m:k-m:P?k-b.height/2-m:k+b.height+m}let D=k;if(e.labelData.seriesGroups.forEach(t=>{var e;null==(e=this.barCtx[t.join(",")])||e.prevY.forEach(t=>{D=P?Math.max(t[r],D):Math.min(t[r],D)})}),this.barCtx.lastActiveBarSerieIndex===o&&f.enabled){const t=18,i=new g(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:o,j:r}),p.fontSize);s=P?D-i.height/2-m-f.offsetY+t:D+i.height+m+f.offsetY-t;const l=I;a=v+(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||(x<0?x=0+C:x+b.height/3>e.layout.gridHeight&&(x=e.layout.gridHeight-C)),{bcx:n,bcy:l,dataLabelsX:c,dataLabelsY:x,totalDataLabelsX:a,totalDataLabelsY:s,totalDataLabelsAnchor:"middle"}}calculateBarsDataLabelsPosition(t){const e=this.w;let{x:s,i:a,j:i,realIndex:r,bcy:o,barHeight:l,barWidth:n,textRects:h,dataLabelsX:d,strokeWidth:b,dataLabelsConfig:c,barDataLabelsConfig:x,barTotalDataLabelsConfig:p,offX:u,offY:f}=t;const C=e.layout.gridHeight/e.globals.dataPoints,{zeroEncounters:y}=this.barCtx.barHelpers.getZeroValueEncounters({i:a,j:i});n=Math.abs(n);let m,v,w=o-(this.barCtx.isRangeBar?0:C)+l/2+h.height/2+f-3;!e.config.chart.stacked&&y>0&&e.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(w-=l*y);let L="start";const I=e.seriesData.series[a][i]<0;let P=s;switch(this.barCtx.isReversed&&(P=s+(I?-n:n),L=I?"start":"end"),x.position){case"center":d=I?P+n/2-u:Math.max(h.width/2,P-n/2)+u;break;case"bottom":d=I?P+n-b-u:P-n+b+u;break;case"top":d=I?P-b-u:P-b+u}let k=P;if(e.labelData.seriesGroups.forEach(t=>{var e;null==(e=this.barCtx[t.join(",")])||e.prevX.forEach(t=>{k=I?Math.min(t[i],k):Math.max(t[i],k)})}),this.barCtx.lastActiveBarSerieIndex===r&&p.enabled){const t=new g(this.barCtx.w).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:i}),c.fontSize);I?(m=k-b-u-p.offsetX,L="end"):m=k+u+p.offsetX+(this.barCtx.isReversed?-(n+b):b),v=w-h.height/2+t.height/2+p.offsetY+b,e.globals.barGroups.length>1&&(v-=e.globals.barGroups.length/2*(l/2))}return e.config.chart.stacked||("start"===c.textAnchor?d-h.width<0?d=I?h.width+b:b:d+h.width>e.layout.gridWidth&&(d=I?e.layout.gridWidth-b:e.layout.gridWidth-h.width-b):"middle"===c.textAnchor?d-h.width/2<0?d=h.width/2+b:d+h.width/2>e.layout.gridWidth&&(d=e.layout.gridWidth-h.width/2-b):"end"===c.textAnchor&&(d<1?d=h.width+b:d+1>e.layout.gridWidth&&(d=e.layout.gridWidth-h.width-b))),{bcx:s,bcy:o,dataLabelsX:d,dataLabelsY:w,totalDataLabelsX:m,totalDataLabelsY:v,totalDataLabelsAnchor:L}}drawCalculatedDataLabels({x:t,y:e,val:s,i:a,j:i,textRects:r,barHeight:o,barWidth:h,dataLabelsConfig:d}){const b=this.w;let c="rotate(0)";"vertical"===b.config.plotOptions.bar.dataLabels.orientation&&(c=`rotate(-90, ${t}, ${e})`);const p=new x(this.barCtx.w,this.barCtx.ctx),u=new g(this.barCtx.w),f=d.formatter;let C=null;const y=b.globals.collapsedSeriesIndices.indexOf(a)>-1;if(d.enabled&&!y){C=u.group({class:"apexcharts-data-labels",transform:c});let g="";void 0!==s&&(g=f(s,n(l({},b),{seriesIndex:a,dataPointIndex:i,w:b}))),!s&&b.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(g="");const x=b.seriesData.series[a][i]<0,y=b.config.plotOptions.bar.dataLabels.position;if("vertical"===b.config.plotOptions.bar.dataLabels.orientation&&("top"===y&&(d.textAnchor=x?"end":"start"),"center"===y&&(d.textAnchor="middle"),"bottom"===y&&(d.textAnchor=x?"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")),p.plotDataLabelsText({x:t,y:e,text:g,i:a,j:i,parent:C,dataLabelsConfig:m,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return C}drawTotalDataLabels({x:t,y:e,val:s,realIndex:a,textAnchor:i,barTotalDataLabelsConfig:r}){const o=new g(this.barCtx.w);let l;return r.enabled&&void 0!==t&&void 0!==e&&this.barCtx.lastActiveBarSerieIndex===a&&(l=o.drawText({x:t,y:e,foreColor:r.style.color,text:s,textAnchor:i,fontFamily:r.style.fontFamily,fontSize:r.style.fontSize,fontWeight:r.style.fontWeight})),l}}const u=b.__apex_Series,f=b.__apex_Fill,C=b.__apex_Utils;class y{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 a=0;a<t[s].length;a++)e.seriesData.seriesX[s][a]>e.globals.minX&&e.seriesData.seriesX[s][a]<e.globals.maxX&&this.barCtx.visibleItems++;else this.barCtx.visibleItems=e.globals.dataPoints;this.arrBorderRadius=this.createBorderRadiusArr(e.seriesData.series),C.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,a,i,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)i=e.layout.gridHeight/d,o=i/b,e.axisFlags.isXNumeric&&(i=e.layout.gridHeight/this.barCtx.totalItems,o=i/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),a=(i-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+C.noExponents(r-l*this.barCtx.seriesLen)/2}return e.globals.barHeight=o,e.globals.barWidth=l,{x:s,y:a,yDivision:i,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,a){var i,r,o,l;const n=this.w,h=new f(this.barCtx.w);let d=null;const b=this.barCtx.barOptions.distributed?s:e;let c=!1;if(this.barCtx.barOptions.colors.ranges.length>0){this.barCtx.barOptions.colors.ranges.map(a=>{t[e][s]>=a.from&&t[e][s]<=a.to&&(d=a.color,c=!0)})}return{color:h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?b:a,dataPointIndex:s,color:d,value:t[e][s],fillConfig:null==(i=n.config.series[e].data[s])?void 0:i.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[a]:n.config.fill.type}),useRangeColor:c}}getStrokeWidth(t,e,s){let a=0;const i=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]||"bar"===i.config.chart.type&&!this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,i.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[s]:this.barCtx.strokeWidth)),a}createBorderRadiusArr(t){var e;const s=this.w,a=!this.w.config.chart.stacked||s.config.plotOptions.bar.borderRadius<=0,i=t.length,r=0|(null==(e=t[0])?void 0:e.length),o=Array.from({length:i},()=>Array(r).fill(a?"top":"none"));if(a)return o;const l=this.w.config.chart.type;for(let e=0;e<r;e++){const s=[],a=[];let n=0;for(let r=0;r<i;r++){const i=t[r][e];i>0?(s.push(r),n++):i<0&&(a.push(r),n++)}if(s.length>0&&0===a.length)if(1===s.length)o[s[0]][e]="bar"===l&&1===r?"top":"both";else{const t=s[0],a=s[s.length-1];for(const i of s)o[i][e]=i===t?"bar"===l&&1===r?"top":"bottom":i===a?"top":"none"}else if(a.length>0&&0===s.length)if(1===a.length)o[a[0]][e]="both";else{const t=Math.max(...a),s=Math.min(...a);for(const i of a)o[i][e]=i===t?"bottom":i===s?"top":"none"}else if(s.length>0&&a.length>0){const t=s[s.length-1];for(const a of s)o[a][e]=a===t?"top":"none";const i=Math.max(...a);for(const t of a)o[t][e]=t===i?"bottom":"none"}else if(1===n){o[s[0]||a[0]][e]="both"}}return o}barBackground({j:t,i:e,x1:s,x2:a,y1:i,y2:r,elSeries:o}){const l=this.w,n=new g(this.barCtx.w),h=new u(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!==i?i:0,void 0!==a?a: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:a,strokeWidth:i,isReversed:r,series:o,seriesGroup:l,realIndex:n,i:h,j:d,w:b}){var c;const x=new g(this.barCtx.w);(i=Array.isArray(i)?i[n]:i)||(i=0);let p=t,u=e;(null==(c=b.config.series[n].data[d])?void 0:c.columnWidthOffset)&&(u=e-b.config.series[n].data[d].columnWidthOffset/2,p=t+b.config.series[n].data[d].columnWidthOffset);const f=i/2,C=u+f,y=u+p-f,m=(o[h][d]>=0?1:-1)*(r?-1:1);s+=.001-f*m,a+=.001+f*m;let v=x.move(C,s),w=x.move(C,s);const L=x.line(y,s);if(b.globals.previousPaths.length>0&&(w=this.barCtx.getPreviousPath(n,d,!1)),v=v+x.line(C,a)+x.line(y,a)+L+("around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z"),w=w+x.line(C,s)+L+L+L+L+L+x.line(C,s)+("around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z"),"none"!==this.arrBorderRadius[n][d]&&(v=x.roundPathCorners(v,b.config.plotOptions.bar.borderRadius)),b.config.chart.stacked){let t=this.barCtx;t=this.barCtx[l],t.yArrj.push(a-f*m),t.yArrjF.push(Math.abs(s-a+i*m)),t.yArrjVal.push(this.barCtx.series[h][d])}return{pathTo:v,pathFrom:w}}getBarpaths({barYPosition:t,barHeight:e,x1:s,x2:a,strokeWidth:i,isReversed:r,series:o,seriesGroup:l,realIndex:n,i:h,j:d,w:b}){var c;const x=new g(this.barCtx.w);(i=Array.isArray(i)?i[n]:i)||(i=0);let p=t,u=e;(null==(c=b.config.series[n].data[d])?void 0:c.barHeightOffset)&&(p=t-b.config.series[n].data[d].barHeightOffset/2,u=e+b.config.series[n].data[d].barHeightOffset);const f=i/2,C=p+f,y=p+u-f,m=(o[h][d]>=0?1:-1)*(r?-1:1);s+=.001+f*m,a+=.001-f*m;let v=x.move(s,C),w=x.move(s,C);b.globals.previousPaths.length>0&&(w=this.barCtx.getPreviousPath(n,d,!1));const L=x.line(s,y);if(v=v+x.line(a,C)+x.line(a,y)+L+("around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z"),w=w+x.line(s,C)+L+L+L+L+L+x.line(s,C)+("around"===b.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[n][d]?" Z":" z"),"none"!==this.arrBorderRadius[n][d]&&(v=x.roundPathCorners(v,b.config.plotOptions.bar.borderRadius)),b.config.chart.stacked){let t=this.barCtx;t=this.barCtx[l],t.xArrj.push(a+f*m),t.xArrjF.push(Math.abs(s-a-i*m)),t.xArrjVal.push(this.barCtx.series[h][d])}return{pathTo:v,pathFrom:w}}checkZeroSeries({series:t}){const e=this.w;for(let s=0;s<t.length;s++){let a=0;for(let i=0;i<t[e.globals.maxValsInArrayIndex].length;i++)a+=t[s][i];0===a&&this.barCtx.zeroSerieses.push(s)}}getXForValue(t,e,s=!0){let a=s?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}getYForValue(t,e,s,a=!0){let i=a?e:null;return null!=t&&(i=e-t/this.barCtx.yRatio[s]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[s]:0)),i}getGoalValues(t,e,s,a,i,r){const o=this.w,h=[],d=(a,i)=>{h.push({[t]:"x"===t?this.getXForValue(a,e,!1):this.getYForValue(a,s,r,!1),attrs:i})};if(o.seriesData.seriesGoals[a]&&o.seriesData.seriesGoals[a][i]&&Array.isArray(o.seriesData.seriesGoals[a][i])&&o.seriesData.seriesGoals[a][i].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[a],strokeWidth:"x"===t?o.globals.markers.size[a]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(e[a])?e[a][0]:e[a]};d(o.rangeData.seriesRangeStart[a][i],s),d(o.rangeData.seriesRangeEnd[a][i],n(l({},s),{strokeColor:Array.isArray(e[a])?e[a][1]:e[a]}))}return h}drawGoalLine({barXPosition:t,barYPosition:e,goalX:s,goalY:a,barWidth:i,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,a=e+s+r/2;n=o.drawLine(t.x,a-2*s,t.x,a,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(a)&&a.forEach(e=>{if(e.y>=-1&&e.y<=o.w.layout.gridHeight+1){const s=void 0!==e.attrs.strokeWidth?e.attrs.strokeWidth:i/2,a=t+s+i/2;n=o.drawLine(a-2*s,e.y,a,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:a,j:i}){const r=this.w,{x:o,x1:l,barYPosition:n}=t,{x:h,x1:d,barYPosition:b}=e,c=n+e.barHeight,x=new g(this.barCtx.w),p=new C,u=x.move(l,c)+x.line(o,c)+x.line(h,b)+x.line(d,b)+x.line(l,c)+("around"===r.config.plotOptions.bar.borderRadiusApplication||"both"===this.arrBorderRadius[a][i]?" Z":" z");return x.drawPath({d:u,fill:p.shadeColor(.5,C.rgb2hex(s)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadow apexcharts-decoration-element"})}getZeroValueEncounters({i:t,j:e}){var s;const a=this.w;let i=0,r=0;return(a.config.plotOptions.bar.horizontal?a.seriesData.series.map((t,e)=>e):(null==(s=a.globals.columnSeries)?void 0:s.i.map(t=>t))||[]).forEach(s=>{const o=a.globals.seriesPercent[s][e];o&&i++,s<t&&0===o&&r++}),{nonZeroColumns:i,zeroEncounters:r}}getGroupIndex(t){const e=this.w,s=e.labelData.seriesGroups.findIndex(s=>s.indexOf(e.seriesData.seriesNames[t])>-1),a=this.barCtx.columnGroupIndices;let i=a.indexOf(s);return i<0&&(a.push(s),i=a.length-1),{groupIndex:s,columnGroupIndex:i}}}const m=b.__apex_Filters;class v{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.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 a=new u(this.w);this.lastActiveBarSerieIndex=a.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];const i=a.getBarSeriesIndices(),r=new c(this.w);this.stackedSeriesTotals=r.getStackedSeriesTotals(this.w.config.series.map((t,e)=>-1===i.indexOf(e)?e:-1).filter(t=>-1!==t)),this.barHelpers=new y(this)}draw(t,e){var s;const a=this.w,i=new g(this.w),r=new c(this.w);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);const o=i.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&(this.totalItems,this.barOptions.dataLabels.maxItems);for(let r=0,h=0;r<t.length;r++,h++){let d,b;const c=[],g=[],x=a.globals.comboCharts?e[r]:r,{columnGroupIndex:p}=this.barHelpers.getGroupIndex(x),f=i.group({class:"apexcharts-series",rel:r+1,seriesName:C.escapeString(a.seriesData.seriesNames[x]),"data:realIndex":x});u.addCollapsedClassToSeries(this.w,f,x),t[r].length>0&&(this.visibleI=this.visibleI+1),this.yRatio.length>1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[x],this.translationsIndex=x);const y=this.translationsIndex;this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;const v=this.barHelpers.initialPositions(x),{y:w,yDivision:L,zeroW:I,x:P,xDivision:k,zeroH:D}=v;let H=v.barHeight,R=v.barWidth;b=w,d=P,this.isHorizontal||g.push(d+(null!=R?R:0)/2);const O=i.group({class:"apexcharts-datalabels","data:realIndex":x});a.globals.delayedElements.push({el:O.node}),O.node.classList.add("apexcharts-element-hidden");const W=i.group({class:"apexcharts-bar-goals-markers"}),X=i.group({class:"apexcharts-bar-shadows"});a.globals.delayedElements.push({el:X.node}),X.node.classList.add("apexcharts-element-hidden");for(let e=0;e<t[r].length;e++){const i=this.barHelpers.getStrokeWidth(r,e,x);let o=null;const u={indexes:{i:r,j:e,realIndex:x,translationsIndex:y,bc:h},x:d,y:b,strokeWidth:i,elSeries:f};this.isHorizontal?(o=this.drawBarPaths(n(l({},u),{barHeight:H,zeroW:I,yDivision:L})),R=this.series[r][e]/this.invertedYRatio):(o=this.drawColumnPaths(n(l({},u),{xDivision:k,barWidth:R,zeroH:D})),H=this.series[r][e]/this.yRatio[y]);const v=this.barHelpers.getPathFillColor(t,r,e,x);if(this.isFunnel&&this.barOptions.isFunnel3d&&this.pathArr.length&&e>0){const t=this.barHelpers.drawBarShadow({color:"string"==typeof v.color&&-1===(null==(s=v.color)?void 0:s.indexOf("url"))?v.color:C.hexToRgba(a.globals.colors[r]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:o,realIndex:x,j:e});if(X.add(t),a.config.chart.dropShadow.enabled){new m(this.w).dropShadow(t,a.config.chart.dropShadow,x)}}this.pathArr.push(o);const w=this.barHelpers.drawGoalLine({barXPosition:o.barXPosition,barYPosition:o.barYPosition,goalX:o.goalX,goalY:o.goalY,barHeight:H,barWidth:R});w&&W.add(w),b=o.y,d=o.x,e>0&&g.push(d+(null!=R?R:0)/2),c.push(b),this.renderSeries(n(l({realIndex:x,pathFill:v.color},v.useRangeColor?{lineFill:v.color}:{}),{j:e,i:r,columnGroupIndex:p,pathFrom:o.pathFrom,pathTo:o.pathTo,strokeWidth:i,elSeries:f,x:d,y:b,series:t,barHeight:Math.abs(o.barHeight?o.barHeight:H),barWidth:Math.abs(o.barWidth?o.barWidth:R),elDataLabelsWrap:O,elGoalsMarkers:W,elBarShadows:X,visibleSeries:this.visibleI,type:"bar"}))}a.globals.seriesXvalues[x]=g,a.globals.seriesYvalues[x]=c,o.add(f)}return o}renderSeries({realIndex:t,pathFill:e,lineFill:s,j:a,i:i,columnGroupIndex:r,pathFrom:o,pathTo:l,strokeWidth:n,elSeries:h,x:d,y:b,y1:c,y2:x,series:u,barHeight:f,barWidth:C,barXPosition:y,barYPosition:v,elDataLabelsWrap:w,elGoalsMarkers:L,elBarShadows:I,visibleSeries:P,type:k,classes:D}){const H=this.w,R=new g(this.w,this.ctx);let O=!1;if(h._bindingsDelegated||(h._bindingsDelegated=!0,R.setupEventDelegation(h,`.apexcharts-${k}-area`)),!s){let e=function(t){const e=H.config.stroke.colors;let s;return Array.isArray(e)&&e.length>0&&(s=e[t],s||(s=""),"function"==typeof s)?s({value:H.seriesData.series[t][a],dataPointIndex:a,w:H}):s};const i="function"==typeof H.globals.stroke.colors[t]?e(t):H.globals.stroke.colors[t];s=this.barOptions.distributed?H.globals.stroke.colors[a]:i}const W=new p(this).handleBarDataLabels({x:d,y:b,y1:c,y2:x,i:i,j:a,series:u,realIndex:t,columnGroupIndex:r,barHeight:f,barWidth:C,barXPosition:y,barYPosition:v,visibleSeries:P});H.globals.isBarHorizontal||(W.dataLabelsPos.dataLabelsX+Math.max(C,H.globals.barPadForNumericAxis)<0||W.dataLabelsPos.dataLabelsX-Math.max(C,H.globals.barPadForNumericAxis)>H.layout.gridWidth)&&(O=!0),H.config.series[i].data[a]&&H.config.series[i].data[a].strokeColor&&(s=H.config.series[i].data[a].strokeColor),this.isNullValue&&(e="none");const X=a/H.config.chart.animations.animateGradually.delay*(H.config.chart.animations.speed/H.globals.dataPoints)/2.4;if(!O){const r=R.renderPaths({i:i,j:a,realIndex:t,pathFrom:o,pathTo:l,stroke:s,strokeWidth:n,strokeLineCap:H.config.stroke.lineCap,fill:e,animationDelay:X,initialSpeed:H.config.chart.animations.speed,dataChangeSpeed:H.config.chart.animations.dynamicAnimation.speed,className:`apexcharts-${k}-area ${D}`,chartType:k,bindEventsOnPaths:!1});r.attr("clip-path",`url(#gridRectBarMask${H.globals.cuid})`);const d=H.config.forecastDataPoints;d.count>0&&a>=H.globals.dataPoints-d.count&&(r.node.setAttribute("stroke-dasharray",d.dashArray),r.node.setAttribute("stroke-width",d.strokeWidth),r.node.setAttribute("fill-opacity",d.fillOpacity)),void 0!==c&&void 0!==x&&(r.attr("data-range-y1",c),r.attr("data-range-y2",x));new m(this.w).setSelectionFilter(r,t,a),h.add(r),r.attr({cy:W.dataLabelsPos.bcy,cx:W.dataLabelsPos.bcx,j:a,val:H.seriesData.series[i][a],barHeight:f,barWidth:C}),null!==W.dataLabels&&w.add(W.dataLabels),W.totalDataLabels&&w.add(W.totalDataLabels),h.add(w),L&&h.add(L),I&&h.add(I)}return h}drawBarPaths({indexes:t,barHeight:e,strokeWidth:s,zeroW:a,x:i,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;if(this.isFunnel){const t=null!=a?a:0;a=t-(this.barHelpers.getXForValue(this.series[h][d],t)-t)/2}i=this.barHelpers.getXForValue(this.series[h][d],null!=a?a:0);const c=this.barHelpers.getBarpaths({barYPosition:b,barHeight:e,x1:a,x2:i,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:t.realIndex,i:h,j:d,w:n});return n.axisFlags.isXNumeric||(r+=o),this.barHelpers.barBackground({j:d,i:h,y1:b-e*this.visibleI,y2:e*this.seriesLen,elSeries:l}),{pathTo:c.pathTo,pathFrom:c.pathFrom,x1:a,x:i,y:r,goalX:this.barHelpers.getGoalValues("x",a,null,h,d,0),barYPosition:b,barHeight:e}}drawColumnPaths({indexes:t,x:e,y:s,xDivision:a,barWidth:i,zeroH:r,strokeWidth:o,elSeries:l}){const n=this.w,h=t.realIndex,d=t.translationsIndex,b=t.i,c=t.j,g=t.bc;let x;if(n.axisFlags.isXNumeric){const t=this.getBarXForNumericXAxis({x:e,j:c,realIndex:h,barWidth:i});e=t.x,x=t.barXPosition}else if(n.config.plotOptions.bar.hideZeroBarsWhenGrouped){const{nonZeroColumns:t,zeroEncounters:s}=this.barHelpers.getZeroValueEncounters({i:b,j:c});t>0&&(i=this.seriesLen*i/t),x=e+i*this.visibleI,x-=i*s}else x=e+i*this.visibleI;s=this.barHelpers.getYForValue(this.series[b][c],r,d);const p=this.barHelpers.getColumnPaths({barXPosition:x,barWidth:i,y1:r,y2:s,strokeWidth:o,isReversed:this.isReversed,series:this.series,realIndex:h,i:b,j:c,w:n});return n.axisFlags.isXNumeric||(e+=a),this.barHelpers.barBackground({bc:g,j:c,i:b,x1:x-o/2-i*this.visibleI,x2:i*this.seriesLen+o/2,elSeries:l}),{pathTo:p.pathTo,pathFrom:p.pathFrom,x:e,y:s,goalY:this.barHelpers.getGoalValues("y",null,r,b,c,d),barXPosition:x,barWidth:i}}getBarXForNumericXAxis({x:t,barWidth:e,realIndex:s,j:a}){const i=this.w;let r=s;return i.seriesData.seriesX[s].length||(r=i.globals.maxValsInArrayIndex),C.isNumber(i.seriesData.seriesX[r][a])&&(t=(i.seriesData.seriesX[r][a]-i.globals.minX)/this.xRatio-e*this.seriesLen/2),{barXPosition:t+e*this.visibleI,x:t}}getPreviousPath(t,e){const s=this.w;let a="M 0 0";for(let i=0;i<s.globals.previousPaths.length;i++){const r=s.globals.previousPaths[i];r.paths&&r.paths.length>0&&parseInt(r.realIndex,10)===parseInt(String(t),10)&&void 0!==s.globals.previousPaths[i].paths[e]&&(a=s.globals.previousPaths[i].paths[e].d)}return a}}class w extends v{draw(t,e,s){const a=this.w,i=new g(this.w),r=a.globals.comboCharts?e:a.config.chart.type,o=new f(this.w);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=a.config.plotOptions.bar.horizontal,this.isOHLC=this.candlestickOptions&&"ohlc"===this.candlestickOptions.type,this.coreUtils=new c(this.w),t=this.coreUtils.getLogSeries(t),this.series=t,this.yRatio=this.coreUtils.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);const h=i.group({class:`apexcharts-${r}-series apexcharts-plot-series`});for(let e=0;e<t.length;e++){let r,d;this.isBoxPlot="boxPlot"===a.config.chart.type||"boxPlot"===a.config.series[e].type;const b=[],c=[],g=a.globals.comboCharts?s[e]:e,{columnGroupIndex:x}=this.barHelpers.getGroupIndex(g),p=i.group({class:"apexcharts-series",seriesName:C.escapeString(a.seriesData.seriesNames[g]),rel:e+1,"data:realIndex":g});u.addCollapsedClassToSeries(this.w,p,g),t[e].length>0&&(this.visibleI=this.visibleI+1);let f=0;this.yRatio.length>1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[g][0],f=g);const y=this.barHelpers.initialPositions(g),{y:m,barHeight:v,yDivision:w,zeroW:L,x:I,barWidth:P,xDivision:k,zeroH:D}=y;d=m,r=I,c.push(r+(null!=P?P:0)/2);const H=i.group({class:"apexcharts-datalabels","data:realIndex":g}),R=i.group({class:"apexcharts-bar-goals-markers"});for(let s=0;s<a.globals.dataPoints;s++){const i=this.barHelpers.getStrokeWidth(e,s,g);let h=null;const u={indexes:{i:e,j:s,realIndex:g,translationsIndex:f},x:r,y:d,strokeWidth:i,elSeries:p};h=this.isHorizontal?this.drawHorizontalBoxPaths(n(l({},u),{yDivision:w,barHeight:v,zeroW:L})):this.drawVerticalBoxPaths(n(l({},u),{xDivision:k,barWidth:P,zeroH:D})),d=h.y,r=h.x;const C=this.barHelpers.drawGoalLine({barXPosition:h.barXPosition,barYPosition:h.barYPosition,goalX:h.goalX,goalY:h.goalY,barHeight:v,barWidth:P});C&&R.add(C),s>0&&c.push(r+(null!=P?P:0)/2),b.push(d),h.pathTo.forEach((l,n)=>{const b=!this.isBoxPlot&&this.candlestickOptions.wick.useFillColor?h.color[n]:a.globals.stroke.colors[e],c=o.fillPath({seriesNumber:g,dataPointIndex:s,color:h.color[n],value:t[e][s]});this.renderSeries({realIndex:g,pathFill:c,lineFill:b,j:s,i:e,pathFrom:h.pathFrom,pathTo:l,strokeWidth:i,elSeries:p,x:r,y:d,series:t,columnGroupIndex:x,barHeight:v,barWidth:P,elDataLabelsWrap:H,elGoalsMarkers:R,visibleSeries:this.visibleI,type:a.config.chart.type})})}a.globals.seriesXvalues[g]=c,a.globals.seriesYvalues[g]=b,h.add(p)}return h}drawVerticalBoxPaths({indexes:t,x:e,xDivision:s,barWidth:a,zeroH:i,strokeWidth:r}){var o,l;const n=this.w,h=new g(this.w),d=t.i,b=t.j,{colors:c}=n.config.plotOptions.candlestick,{colors:x}=this.boxOptions,p=t.realIndex,u=t=>Array.isArray(t)?t[p]:t,f=u(c.upward),C=u(c.downward),y=this.yRatio[t.translationsIndex],m=this.getOHLCValue(p,b);let v=i,w=i,L=m.o<m.c?[f]:[C];this.isBoxPlot&&(L=[u(x.lower),u(x.upper)]);let I=Math.min(m.o,m.c),P=Math.max(m.o,m.c),k=m.m;n.axisFlags.isXNumeric&&(e=(n.seriesData.seriesX[p][b]-n.globals.minX)/this.xRatio-a/2);const D=e+a*this.visibleI;let H;void 0===(null==(o=this.series[d])?void 0:o[b])||null===(null==(l=this.series[d])?void 0:l[b])?(I=i,P=i):(I=i-I/y,P=i-P/y,v=i-m.h/y,w=i-m.l/y,k=i-m.m/y);let R=h.move(D+a/2,I);if(n.globals.previousPaths.length>0&&(R=this.getPreviousPath(p,b)),this.isOHLC){const t=D+a/2,e=i-m.o/y,s=i-m.c/y;H=[h.move(t,v)+h.line(t,w)+h.move(t,e)+h.line(D,e)+h.move(t,s)+h.line(D+a,s)]}else H=this.isBoxPlot?[h.move(D,I)+h.line(D+a/2,I)+h.line(D+a/2,v)+h.line(D+a/4,v)+h.line(D+a-a/4,v)+h.line(D+a/2,v)+h.line(D+a/2,I)+h.line(D+a,I)+h.line(D+a,k)+h.line(D,k)+h.line(D,I+r/2),h.move(D,k)+h.line(D+a,k)+h.line(D+a,P)+h.line(D+a/2,P)+h.line(D+a/2,w)+h.line(D+a-a/4,w)+h.line(D+a/4,w)+h.line(D+a/2,w)+h.line(D+a/2,P)+h.line(D,P)+h.line(D,k)+"z"]:[h.move(D,P)+h.line(D+a/2,P)+h.line(D+a/2,v)+h.line(D+a/2,P)+h.line(D+a,P)+h.line(D+a,I)+h.line(D+a/2,I)+h.line(D+a/2,w)+h.line(D+a/2,I)+h.line(D,I)+h.line(D,P-r/2)];return R+=h.move(D,I),n.axisFlags.isXNumeric||(e+=s),{pathTo:H,pathFrom:R,x:e,y:P,goalY:this.barHelpers.getGoalValues("y",null,i,d,b,t.translationsIndex),barXPosition:D,color:L}}drawHorizontalBoxPaths({indexes:t,y:e,yDivision:s,barHeight:a,zeroW:i,strokeWidth:r}){var o,l;const n=this.w,h=new g(this.w),d=t.i,b=t.j,c=t.realIndex,{colors:x}=n.config.plotOptions.candlestick,{colors:p}=this.boxOptions,u=t=>Array.isArray(t)?t[c]:t,f=this.invertedYRatio,C=this.getOHLCValue(c,b);let y=C.o<C.c?[u(x.upward)]:[u(x.downward)];this.isBoxPlot&&(y=[u(p.lower),u(p.upper)]);let m=i,v=i,w=Math.min(C.o,C.c),L=Math.max(C.o,C.c),I=C.m;n.axisFlags.isXNumeric&&(e=(n.seriesData.seriesX[c][b]-n.globals.minX)/this.invertedXRatio-a/2);const P=e+a*this.visibleI;void 0===(null==(o=this.series[d])?void 0:o[b])||null===(null==(l=this.series[d])?void 0:l[b])?(w=i,L=i):(w=i+w/f,L=i+L/f,m=i+C.h/f,v=i+C.l/f,I=i+C.m/f);let k=h.move(w,P+a/2);n.globals.previousPaths.length>0&&(k=this.getPreviousPath(c,b));const D=[h.move(w,P)+h.line(w,P+a/2)+h.line(m,P+a/2)+h.line(m,P+a/2-a/4)+h.line(m,P+a/2+a/4)+h.line(m,P+a/2)+h.line(w,P+a/2)+h.line(w,P+a)+h.line(I,P+a)+h.line(I,P)+h.line(w+r/2,P),h.move(I,P)+h.line(I,P+a)+h.line(L,P+a)+h.line(L,P+a/2)+h.line(v,P+a/2)+h.line(v,P+a-a/4)+h.line(v,P+a/4)+h.line(v,P+a/2)+h.line(L,P+a/2)+h.line(L,P)+h.line(I,P)+"z"];return k+=h.move(w,P),n.axisFlags.isXNumeric||(e+=s),{pathTo:D,pathFrom:k,x:L,y:e,goalX:this.barHelpers.getGoalValues("x",i,null,d,b,0),barYPosition:P,color:y}}getOHLCValue(t,e){const s=this.w,a=this.coreUtils,i=s=>s[t]&&null!=s[t][e]?a.getLogValAtSeriesIndex(s[t][e],t):0,r=i(s.candleData.seriesCandleH),o=i(s.candleData.seriesCandleO),l=i(s.candleData.seriesCandleM),n=i(s.candleData.seriesCandleC),h=i(s.candleData.seriesCandleL);return{o:this.isBoxPlot?r:o,h:this.isBoxPlot?o:r,m:l,l:this.isBoxPlot?n:h,c:this.isBoxPlot?h:n}}}h.use({candlestick:w,boxPlot:w}),exports.default=h;