apexcharts
Version:
A JavaScript Chart Library
6 lines (5 loc) • 43.4 kB
JavaScript
/*!
* ApexCharts v7.0.0
* (c) 2018-2026 ApexCharts
*/
"use strict";var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable,r=(t,a,i)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,l=(e,t)=>{for(var a in t||(t={}))s.call(t,a)&&r(e,a,t[a]);if(i)for(var a of i(t))n.call(t,a)&&r(e,a,t[a]);return e},o=(e,i)=>t(e,a(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 a in e)if("default"!==a){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>e[a]})}return t.default=e,Object.freeze(t)}const c=h(require("apexcharts/core")),d=c.__apex_Animations,g=c.__apex_Fill,p=c.__apex_Utils,f=c.__apex_Graphics,u=c.__apex_Filters,b=c.__apex_Scales;class m{constructor(e){this.w=e}drawYAxisTexts(e,t,a,i){const s=this.w,n=s.config.yaxis[0],r=s.formatters.yLabelFormatters[0];return new f(this.w).drawText({x:e+n.labels.offsetX,y:t+n.labels.offsetY,text:r(i,a),textAnchor:"middle",fontSize:n.labels.style.fontSize,fontFamily:n.labels.style.fontFamily,foreColor:Array.isArray(n.labels.style.colors)?n.labels.style.colors[a]:n.labels.style.colors})}getMaxLabelWidth(e,{fontSize:t,fontFamily:a}={}){const i=new f(this.w);let s=0;return e.forEach(e=>{if(null==e||""===e)return;const n=i.getTextRects(`${e}`,t||"12px",a,"");s=Math.max(s,n.width)}),s}drawExternalLabel(e){return function(e,t){const{lines:a,lineHeight:i,anchor:s,elbow:n,labelX:r,labelY:l,side:o,connector:h,style:c,foreColor:d}=t,g=new f(e),p=g.group({class:t.groupClass||"apexcharts-outer-label-group"});if(h.show){const e=`M ${s.x} ${s.y} L ${n.x} ${n.y} L ${r} ${l}`,a=g.drawPath({d:e,stroke:h.color,strokeWidth:h.width,fill:"none",strokeLinecap:"round"});a.node.classList.add(t.connectorClass||"apexcharts-outer-label-connector"),p.add(a)}const u="right"===o?r+4:r-4,b=a.length,m=l-(b-1)*i/2,A=g.drawText({x:u,y:m,text:1===b?a[0]:a,textAnchor:"right"===o?"start":"end",fontSize:c.fontSize,fontFamily:c.fontFamily,fontWeight:c.fontWeight,foreColor:d,dominantBaseline:"central",cssClass:t.textClass||"apexcharts-outer-label"});if(b>1){const e=A.node.getElementsByTagName("tspan");for(let t=0;t<e.length;t++)e[t].setAttribute("x",`${u}`),e[t].setAttribute("dy",0===t?"0":`${i}`)}return p.add(A),p}(this.w,o(l({},e),{groupClass:"apexcharts-pie-name-label-group",textClass:"apexcharts-pie-name-label",connectorClass:"apexcharts-pie-label-connector"}))}}const A=c.__apex_Environment_Environment,x=Math.PI/180,w=180/Math.PI;function y(e,t,a,i){return{x:e+a*Math.cos((i-90)*x),y:t+a*Math.sin((i-90)*x)}}const S=e=>`${e.x} ${e.y}`;function L({cx:e,cy:t,rIn:a,rOut:i,a0:s,a1:n,r:r,spanDeg:l}){const o=(a,i)=>y(e,t,a,i),h=r/i*w,c=r/a*w,d=o(i,s+h),g=o(i,n-h),p=l-2*h>180?1:0,f=o(i,n),u=o(i-r,n),b=o(i,s),m=o(i-r,s),A=o(a,n-c),x=o(a,s+c),L=l-2*c>180?1:0,v=o(a,n),O=o(a+r,n),z=o(a,s),C=o(a+r,s);return["M",S(d),"A",i,i,0,p,1,S(g),"Q",S(f),S(u),"L",S(O),"Q",S(v),S(A),"A",a,a,0,L,0,S(x),"Q",S(z),S(C),"L",S(m),"Q",S(b),S(d),"Z"].join(" ")}class v{constructor(e,t){this.ctx=t,this.w=e,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels,this.lineColorArr=void 0!==e.globals.stroke.colors?e.globals.stroke.colors:e.globals.colors,this.defaultSize=Math.min(e.layout.gridWidth,e.layout.gridHeight),this.centerY=this.defaultSize/2,this.centerX=e.layout.gridWidth/2,"radialBar"===e.config.chart.type?this.fullAngle=360:this.fullAngle=Math.abs(e.config.plotOptions.pie.endAngle-e.config.plotOptions.pie.startAngle),this.initialAngle=e.config.plotOptions.pie.startAngle%this.fullAngle,e.globals.radialSize=this.defaultSize/2.05-e.config.stroke.width-(e.config.chart.sparkline.enabled?0:e.config.chart.dropShadow.blur),this.externalCfg=e.config.plotOptions.pie.dataLabels.external;const a=e.config.dataLabels.style;this.externalLabelStyle={fontSize:this.externalCfg.fontSize||a.fontSize,fontFamily:this.externalCfg.fontFamily||a.fontFamily,fontWeight:this.externalCfg.fontWeight||a.fontWeight},this.externalLabels=[],this.externalLabelMaxLines=1,this.externalLabelLineH=parseFloat(this.externalLabelStyle.fontSize)||12,e.globals.pieExternalLabelMarginY=0,this.showExternalLabels=this.externalCfg.show&&"polarArea"!==this.chartType,this.showExternalLabels&&!e.globals.noData&&this.reserveExternalLabelSpace(),this.donutSize=e.globals.radialSize*parseInt(e.config.plotOptions.pie.donut.size,10)/100;const i=e.config.plotOptions.pie.customScale,s=e.layout.gridWidth/2,n=e.layout.gridHeight/2;this.translateX=s-s*i,this.translateY=n-n*i,this.dataLabelsGroup=new f(this.w).group({class:"apexcharts-datalabels-group",transform:`translate(${this.translateX}, ${this.translateY}) scale(${i})`}),this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSliceSizes=[],this.sliceLabelGroups={},this.externalLabelGroups={},this.elHoverOutline=null,this.elHoverOutlinePath=null,this.hoverOutlineIndex=-1,this.prevSectorAngleArr=[]}getExternalLabelText(e){var t,a,i;const s=this.w,n=s.seriesData.seriesNames[e],r=this.externalCfg.formatter;return"function"==typeof r?r(n,{seriesIndex:e,percent:null==(a=null==(t=s.globals.seriesPercent)?void 0:t[e])?void 0:a[0],value:null==(i=s.globals.seriesTotals)?void 0:i[e],w:s}):null==n?"":`${n}`}getExternalLabelLines(e){const t=this.getExternalLabelText(e);return(Array.isArray(t)?t:`${null==t?"":t}`.split("\n")).map(e=>null==e?"":`${e}`)}reserveExternalLabelSpace(){const e=this.w,t=new m(e),a=(e.seriesData.seriesNames||[]).map((e,t)=>this.getExternalLabelLines(t)),i=t.getMaxLabelWidth(a.flat(),{fontSize:this.externalLabelStyle.fontSize,fontFamily:this.externalLabelStyle.fontFamily});this.externalLabelMaxLines=a.reduce((e,t)=>Math.max(e,t.length),1),this.externalLabelLineH=Math.round(1.35*(parseFloat(this.externalLabelStyle.fontSize)||12));const s=this.externalCfg.connector,n=this.externalLabelMaxLines*this.externalLabelLineH,r=i+(s.length||0)+(s.gap||0)+12,l=n/2+(s.gap||0)+6,o=Math.min(e.globals.radialSize,e.layout.gridWidth/2-r,e.layout.gridHeight/2-l);e.globals.radialSize=Math.max(o,.15*this.defaultSize),e.globals.pieExternalLabelMarginY=l;const h=e.config.chart.height?String(e.config.chart.height):"",c=""!==h&&"auto"!==h;this.centerY=c?e.layout.gridHeight/2:e.globals.radialSize+l}draw(e){var t;const a=this.w,i=new f(this.w),s=i.group({class:"apexcharts-pie"});if(a.globals.noData)return s;let n=0;for(let t=0;t<e.length;t++)n+=p.negToZero(e[t]);const r=[],l=i.group();0===n&&(n=1e-5),e.forEach(e=>{this.maxY=Math.max(this.maxY,e)}),a.config.yaxis[0].max&&(this.maxY=a.config.yaxis[0].max),"back"===a.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(s);const o=a.globals.collapsedSeriesIndices||[];let h=1;if("polarArea"===this.chartType){let t=0;for(let a=0;a<e.length;a++)-1===o.indexOf(a)&&t++;h=Math.max(1,t)}for(let t=0;t<e.length;t++){const i=this.fullAngle*p.negToZero(e[t])/n;r.push(i),"polarArea"===this.chartType?(r[t]=o.indexOf(t)>-1?0:this.fullAngle/h,this.sliceSizes.push(a.globals.radialSize*e[t]/(this.maxY||1))):this.sliceSizes.push(a.globals.radialSize)}const c=!0===(null==(t=this.ctx.morphTypeChange)?void 0:t.isActive());if(a.globals.dataChanged&&!c)if("polarArea"===this.chartType){const e=a.globals.previousPaths,t=a.globals.prevPolarAngles;if(Array.isArray(t)&&t.length===e.length)this.prevSectorAngleArr=t.slice();else for(let t=0;t<e.length;t++)this.prevSectorAngleArr.push(this.fullAngle/Math.max(1,e.length));let i=0;for(let t=0;t<e.length;t++)i=Math.max(i,p.negToZero(e[t]));a.config.yaxis[0].max&&(i=a.config.yaxis[0].max),this.prevSliceSizes=e.map(e=>a.globals.radialSize*p.negToZero(e)/(i||1))}else{let e,t=0;for(let e=0;e<a.globals.previousPaths.length;e++)t+=p.negToZero(a.globals.previousPaths[e]);for(let i=0;i<a.globals.previousPaths.length;i++)e=this.fullAngle*p.negToZero(a.globals.previousPaths[i])/t,this.prevSectorAngleArr.push(e)}if("polarArea"===this.chartType&&(a.globals.prevPolarAngles=r.slice()),this.donutSize<0&&(this.donutSize=0),"donut"===this.chartType){const e=i.drawCircle(this.donutSize);e.attr({cx:this.centerX,cy:this.centerY,fill:a.config.plotOptions.pie.donut.background?a.config.plotOptions.pie.donut.background:"transparent"}),l.add(e)}const d=this.drawArcs(r,e);if(this.sliceLabels.forEach(e=>{d.add(e)}),l.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${a.config.plotOptions.pie.customScale})`}),l.add(d),s.add(l),this.donutDataLabels.show){const e=this.initialAnim&&!a.globals.resized&&!a.globals.dataChanged&&this.animDur>0,t=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:e?0:this.donutDataLabels.show});if(e){const e=this.dataLabelsGroup.node;e.style.transition="opacity 280ms ease-out",setTimeout(()=>{e.style.opacity="1"},this.animDur)}s.add(t)}return"front"===a.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(s),s}drawArcs(e,t){var a,i,s,n,r;const l=this.w,o=new u(this.w),h=new f(this.w),c=new g(this.w),d=h.group({class:"apexcharts-slices"});this.elHoverOutline=h.group({class:"apexcharts-pie-hover-outline"}),this.elHoverOutline.node.style.pointerEvents="none",this.elHoverOutline.node.style.opacity="0",l.config.chart.animations.enabled&&(this.elHoverOutline.node.style.transition="opacity 180ms ease-out"),d.add(this.elHoverOutline);let b=this.initialAngle,x=this.initialAngle,w=this.initialAngle,y=this.initialAngle;this.strokeWidth=l.config.stroke.show?l.config.stroke.width:0;const S=!0===(null==(a=this.ctx.morphTypeChange)?void 0:a.isActive());for(let a=0;a<e.length;a++){const g=h.group({class:"apexcharts-series apexcharts-pie-series",seriesName:p.escapeString(l.seriesData.seriesNames[a]),rel:a+1,"data:realIndex":a});d.add(g),b=w,x=y,w=b+e[a],y=x+this.prevSectorAngleArr[a];const m=w<b?this.fullAngle+w-b:w-b,A=c.fillPath({seriesNumber:a,size:this.sliceSizes[a],value:t[a]}),L=S?this.ctx.morphTypeChange.getInitialPathFor(a,0):null,v="polarArea"===this.chartType&&l.globals.dataChanged&&!S?this.prevSliceSizes[a]||0:void 0,O=L||this.getChangedPath(x,y,v),z=h.drawPath({d:O,stroke:Array.isArray(this.lineColorArr)?null!=(i=this.lineColorArr[a])?i:this.lineColorArr[a%this.lineColorArr.length]:this.lineColorArr,strokeWidth:0,fill:A,fillOpacity:l.config.fill.opacity,classes:`apexcharts-pie-area apexcharts-${this.chartType.toLowerCase()}-slice-${a}`});if(z.attr({index:0,j:a}),o.setSelectionFilter(z,0,a),l.config.chart.dropShadow.enabled){const e=l.config.chart.dropShadow;o.dropShadow(z,e,a)}this.addListeners(z,this.donutDataLabels,a);let C={x:0,y:0};const k=(b+m/2)%this.fullAngle;let P={x:this.centerX,y:this.centerY};"pie"===this.chartType||"polarArea"===this.chartType?(C=p.polarToCartesian(this.centerX,this.centerY,l.globals.radialSize/1.25+l.config.plotOptions.pie.dataLabels.offset,k),P=p.polarToCartesian(this.centerX,this.centerY,l.globals.radialSize/2,k)):"donut"===this.chartType&&(C=p.polarToCartesian(this.centerX,this.centerY,(l.globals.radialSize+this.donutSize)/2+l.config.plotOptions.pie.dataLabels.offset,k),P=p.polarToCartesian(this.centerX,this.centerY,(l.globals.radialSize+this.donutSize)/2,k)),f.setAttrs(z.node,{"data:angle":m,"data:startAngle":b,"data:strokeWidth":this.strokeWidth,"data:value":t[a],"data:cx":P.x,"data:cy":P.y}),g.add(z);let T=!1;if(S){const e=this.getPiePath({me:this,startAngle:b,angle:m,size:this.sliceSizes[a]});z.node.setAttribute("data:pathFinal",e),T=!0===(null==(n=(s=this.ctx.morphTypeChange).claimsTargetMark)?void 0:n.call(s,a,0)),T&&(z.attr({d:e}),z.node.setAttribute("data:pathOrig",e),z.node.setAttribute("opacity","0"),z.node.setAttribute("data-piece-hidden","1"))}let Y=0;if(!this.initialAnim||l.globals.resized||l.globals.dataChanged?this.animBeginArr.push(0):(Y=m/this.fullAngle*l.config.chart.animations.speed,0===Y&&(Y=1),this.animDur=Y+this.animDur,this.animBeginArr.push(this.animDur)),T);else if(S&&L){const e=this.getPiePath({me:this,startAngle:b,angle:m,size:this.sliceSizes[a]}),t=this.ctx.morphTypeChange.getSpeed(),i=this.ctx.animations;z.node.setAttribute("data:pathOrig",e);const s=z.animate(t).plot(e,"polygons").attr({"stroke-width":this.strokeWidth});s&&"function"==typeof s.after?s.after(()=>i.animationCompleted(z)):i.animationCompleted(z)}else this.dynamicAnim&&l.globals.dataChanged?this.animatePaths(z,{size:this.sliceSizes[a],prevSize:v,endAngle:w,startAngle:b,prevStartAngle:x,prevEndAngle:y,animateStartingPos:!0,i:a,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:l.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(z,{size:this.sliceSizes[a],endAngle:w,startAngle:b,i:a,totalItems:e.length-1,animBeginArr:this.animBeginArr,dur:Y});if(this.getExpandOffset()>0?z.node.addEventListener("mouseup",this.pieClicked.bind(this,a)):0===a&&u.drilldownBlocksSliceOffset(l)&&(null==(r=this.ctx.drilldown)||r.warnSliceOffsetDisabled()),void 0!==l.interact.selectedDataPoints[0]&&l.interact.selectedDataPoints[0].indexOf(a)>-1)if(this.initialAnim&&!l.globals.resized&&!l.globals.dataChanged&&this.animDur>0){const e=this,t=a;setTimeout(()=>e.pieClicked(t,{animate:!1}),this.animDur)}else this.pieClicked(a,{animate:!1});if(l.config.dataLabels.enabled){const t=C.x,i=C.y;let s=100*m/this.fullAngle+"%";if(0!==m&&l.config.plotOptions.pie.dataLabels.minAngleToShowLabel<e[a]){const e=l.config.dataLabels.formatter;void 0!==e&&(s=e(l.globals.seriesPercent[a][0],{seriesIndex:a,w:l}));const n=l.globals.dataLabels.style.colors[a],r=h.group({class:"apexcharts-datalabels"}),c=h.drawText({x:t,y:i,text:s,textAnchor:"middle",fontSize:l.config.dataLabels.style.fontSize,fontFamily:l.config.dataLabels.style.fontFamily,fontWeight:l.config.dataLabels.style.fontWeight,foreColor:n});if(r.add(c),l.config.dataLabels.dropShadow.enabled){const e=l.config.dataLabels.dropShadow;o.dropShadow(c,e)}c.node.classList.add("apexcharts-pie-label"),l.config.chart.animations.animate&&!1===l.globals.resized&&(c.node.classList.add("apexcharts-pie-label-delay"),c.node.style.animationDelay=l.config.chart.animations.speed/940+"s"),this.sliceLabels.push(r),this.sliceLabelGroups[a]=r.node}}if(this.showExternalLabels&&0!==m){const e=this.getExternalLabelLines(a);if(e.some(e=>""!==e)){const t=p.polarToCartesian(this.centerX,this.centerY,l.globals.radialSize,k),i=p.polarToCartesian(this.centerX,this.centerY,l.globals.radialSize+(this.externalCfg.connector.gap||0),k),s=i.x>=this.centerX,n=s?i.x+(this.externalCfg.connector.length||0):i.x-(this.externalCfg.connector.length||0);this.externalLabels.push({i:a,lines:e,anchor:t,elbow:i,side:s?"right":"left",labelX:n+parseFloat(this.externalCfg.offsetX||0),idealY:i.y+parseFloat(this.externalCfg.offsetY||0),connectorColor:this.externalCfg.connector.color||l.globals.colors[a],foreColor:this.externalCfg.color||l.config.chart.foreColor})}}}if(this.showExternalLabels&&this.externalLabels.length){this.placeExternalLabels();const e=A.isBrowser()&&(S||this.dynamicAnim&&l.globals.dataChanged||this.initialAnim&&!l.globals.resized&&!l.globals.dataChanged);this.externalLabels.forEach(t=>{const a=new m(l).drawExternalLabel({lines:t.lines,lineHeight:this.externalLabelLineH,anchor:t.anchor,elbow:t.elbow,labelX:t.labelX,labelY:t.labelY,side:t.side,connector:{show:this.externalCfg.connector.show,width:this.externalCfg.connector.width,color:t.connectorColor},style:this.externalLabelStyle,foreColor:t.foreColor});e&&(a.node.classList.add("apexcharts-element-hidden"),l.globals.delayedElements.push({el:a.node})),this.externalLabelGroups[t.i]=a.node,d.add(a)})}return d}placeExternalLabels(){const e=this.w,t=this.externalLabelMaxLines*this.externalLabelLineH+2,a=this.centerY+e.globals.radialSize+e.globals.pieExternalLabelMarginY;["left","right"].forEach(e=>{!function(e,t,a){const i=e.slice().sort((e,t)=>e.idealY-t.idealY);i.forEach(e=>{e.labelY=e.idealY});for(let e=1;e<i.length;e++)i[e].labelY-i[e-1].labelY<t&&(i[e].labelY=i[e-1].labelY+t);const s=i[i.length-1],n=s?s.labelY-a:0;if(n>0)for(let e=i.length-1;e>=0;e--)i[e].labelY-=n,e<i.length-1&&i[e+1].labelY-i[e].labelY<t&&(i[e].labelY=i[e+1].labelY-t)}(this.externalLabels.filter(t=>t.side===e),t,a)})}addListeners(e,t,a){const i=new f(this.w,this.ctx);e.node.addEventListener("mouseenter",i.pathMouseEnter.bind(i,e)),e.node.addEventListener("mouseleave",i.pathMouseLeave.bind(i,e)),e.node.addEventListener("mouseleave",this.revertDataLabelsInner.bind(this)),"number"==typeof a&&(e.node.addEventListener("mouseenter",this.showHoverOutline.bind(this,a)),e.node.addEventListener("mouseleave",this.hideHoverOutline.bind(this))),e.node.addEventListener("mousedown",i.pathMouseDown.bind(i,e)),this.donutDataLabels.total.showAlways||(e.node.addEventListener("mouseenter",this.printDataLabelsInner.bind(this,e.node,t)),e.node.addEventListener("mousedown",this.printDataLabelsInner.bind(this,e.node,t)))}animatePaths(e,t){const a=this.w;let i=t.endAngle<t.startAngle?this.fullAngle+t.endAngle-t.startAngle:t.endAngle-t.startAngle,s=i,n=t.startAngle;const r=t.startAngle;void 0!==t.prevStartAngle&&void 0!==t.prevEndAngle&&(n=t.prevEndAngle,s=t.prevEndAngle<t.prevStartAngle?this.fullAngle+t.prevEndAngle-t.prevStartAngle:t.prevEndAngle-t.prevStartAngle),t.i===a.config.series.length-1&&(i+r>this.fullAngle?t.endAngle=t.endAngle-(i+r):i+r<this.fullAngle&&(t.endAngle=t.endAngle+(this.fullAngle-(i+r)))),i===this.fullAngle&&(i=this.fullAngle-.01),this.animateArc(e,n,r,i,s,t)}animateArc(e,t,a,i,s,n){const r=this,l=this.w,o=new d(this.w),h=n.size;let c;(isNaN(t)||isNaN(s))&&(t=a,s=i,n.dur=0);let g=i,p=a;const f=t<a?this.fullAngle+t-a:t-a,u="number"==typeof n.prevSize;l.globals.dataChanged&&n.shouldSetPrevPaths&&n.prevEndAngle&&(c=r.getPiePath({me:r,startAngle:n.prevStartAngle,angle:n.prevEndAngle<n.prevStartAngle?this.fullAngle+n.prevEndAngle-n.prevStartAngle:n.prevEndAngle-n.prevStartAngle,size:u?n.prevSize:h}),e.attr({d:c})),0!==n.dur?e.animate(n.dur,n.animBeginArr[n.i]).after(function(){"pie"!==r.chartType&&"donut"!==r.chartType&&"polarArea"!==r.chartType||this.animate(l.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width":r.strokeWidth}),n.i===l.config.series.length-1&&o.animationCompleted(e)}).during(l=>{g=f+(i-f)*l,n.animateStartingPos&&(g=s+(i-s)*l,p=t-s+(a-(t-s))*l),c=r.getPiePath({me:r,startAngle:p,angle:g,size:u?n.prevSize+(h-n.prevSize)*l:h}),e.node.setAttribute("data:pathOrig",c),e.attr({d:c})}):(c=r.getPiePath({me:r,startAngle:p,angle:i,size:h}),n.isTrack||(l.globals.animationEnded=!0),e.node.setAttribute("data:pathOrig",c),e.attr({d:c,"stroke-width":r.strokeWidth}))}pieClicked(e,t){const a=this.w,i=!(t&&!1===t.animate),s=a.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`);if(!s)return;if("true"===s.attr("data:pieClicked"))return s.attr({"data:pieClicked":"false"}),this.revertDataLabelsInner(),void this.offsetSlice(e,0,i);const n=a.dom.baseEl.getElementsByClassName("apexcharts-pie-area");Array.prototype.forEach.call(n,e=>{const t="true"===e.getAttribute("data:pieClicked");e.setAttribute("data:pieClicked","false"),t&&this.offsetSlice(parseInt(e.getAttribute("j"),10),0,i)}),a.interact.capturedDataPointIndex=e,s.attr("data:pieClicked","true"),this.offsetSlice(e,this.getExpandOffset(),i)}getExpandOffset(){const e=this.w.config.plotOptions.pie;if(!e.expandOnClick||"polarArea"===this.chartType)return 0;if(u.drilldownBlocksSliceOffset(this.w))return 0;const t=Number(e.expandOffset);return Number.isFinite(t)&&t>0?t:0}getSliceMovers(e){const t=this.w.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`);return[t?t.node:null,this.sliceLabelGroups[e],this.externalLabelGroups[e],this.hoverOutlineIndex===e&&this.elHoverOutlinePath?this.elHoverOutlinePath.node:null].filter(Boolean)}offsetSlice(e,t,a=!0){const i=this.w;if(!i.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`))return;const{dx:s,dy:n}=this.getSliceOffsetVector(e,t),r=`translate(${s} ${n})`,l=a&&i.config.chart.animations.enabled?"transform 320ms cubic-bezier(0.25, 0.8, 0.3, 1)":"";this.getSliceMovers(e).forEach(e=>{e.style.transition=l,e.setAttribute("transform",r)})}getSliceOffsetVector(e,t){const a=this.w.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`),i=a?parseFloat(a.attr("data:angle")):NaN;if(!t||!Number.isFinite(i)||i>=this.fullAngle)return{dx:0,dy:0};const s=parseFloat(a.attr("data:startAngle")),n=Math.PI*(s+i/2-90)/180;return{dx:t*Math.cos(n),dy:t*Math.sin(n)}}showHoverOutline(e){const t=this.w;if(!u.hoverOutlineOwnsHoverState(t))return;if(!this.elHoverOutline)return;const a=this.getHoverOutlinePath(e);if(!a)return;const i=t.config.plotOptions.pie.hoverOutline,s=i.color||t.globals.colors[e];if(!this.elHoverOutlinePath){const e=new f(t);this.elHoverOutlinePath=e.drawPath({d:a,fill:s,strokeWidth:0,classes:"apexcharts-pie-hover-outline-band"}),this.elHoverOutline.add(this.elHoverOutlinePath)}this.elHoverOutlinePath.attr({d:a,fill:s,"fill-opacity":i.opacity});const{dx:n,dy:r}=this.getSliceOffsetVector(e,this.isSliceOut(e)?this.getExpandOffset():0);this.elHoverOutlinePath.node.style.transition="",this.elHoverOutlinePath.node.setAttribute("transform",`translate(${n} ${r})`),this.hoverOutlineIndex=e,this.elHoverOutline.node.style.opacity="1"}hideHoverOutline(){this.elHoverOutline&&(this.elHoverOutline.node.style.opacity="0")}isSliceOut(e){const t=this.w.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`);return!!t&&"true"===t.attr("data:pieClicked")}getHoverOutlinePath(e){const t=this.w,a=t.config.plotOptions.pie.hoverOutline,i=t.dom.Paper.findOne(`.apexcharts-${this.chartType.toLowerCase()}-slice-${e}`);if(!i)return null;const s=parseFloat(i.attr("data:angle"));if(!Number.isFinite(s)||s<=0)return null;const n=this.sliceSizes[e],r=Number(a.size);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return null;const{startDeg:h,spanDeg:c}=this.getSliceExtent({me:this,startAngle:parseFloat(i.attr("data:startAngle")),angle:s,size:n});if(!(c>0))return null;const d=n+(this.strokeWidth||0)/2+(Number(a.gap)||0),g=d+r,p={cx:this.centerX,cy:this.centerY,rIn:d,rOut:g,a0:h,a1:h+c,spanDeg:c},f=Math.min(r/2,c*Math.PI/180/2*d);return f>.5?L(o(l({},p),{r:f})):function({cx:e,cy:t,rIn:a,rOut:i,a0:s,a1:n,spanDeg:r}){const l=(a,i)=>y(e,t,a,i),o=r>180?1:0,h=l(i,s),c=l(i,n),d=l(a,n),g=l(a,s);return["M",S(h),"A",i,i,0,o,1,S(c),"L",S(d),"A",a,a,0,o,0,S(g),"Z"].join(" ")}(p)}getChangedPath(e,t,a){let i="";return this.dynamicAnim&&this.w.globals.dataChanged&&(i=this.getPiePath({me:this,startAngle:e,angle:t-e,size:"number"==typeof a?a:this.size})),i}getSliceExtent({me:e,startAngle:t,angle:a,size:i}){const s=this.w;let n=t,r=a+t;Math.ceil(r)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(r=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01);let l=r-n;const o="pie"===e.chartType||"donut"===e.chartType||"polarArea"===e.chartType,h=s.config.plotOptions.pie.spacing;if(o&&h>0&&l>0){const t="donut"===e.chartType?(i+e.donutSize)/2:i,a=t>0?h/t*(180/Math.PI):0,s=Math.min(a/2,Math.max(0,l/2-.5));n+=s,l-=2*s}return r=n+l,Math.ceil(r)>this.fullAngle&&(r-=this.fullAngle),{startDeg:n,spanDeg:l,endDeg:r}}getPiePath({me:e,startAngle:t,angle:a,size:i}){let s;const n=this.w,r=new f(this.w),{startDeg:l,spanDeg:o,endDeg:h}=this.getSliceExtent({me:e,startAngle:t,angle:a,size:i}),c="pie"===e.chartType||"donut"===e.chartType||"polarArea"===e.chartType,d=Math.PI*(l-90)/180,g=n.config.plotOptions.pie.borderRadius;if(g>0&&c){const t=this.getRoundedSlicePath({me:e,startDeg:l,spanDeg:o,size:i,borderRadius:g});if(t)return t}const u=Math.PI*(h-90)/180,b=e.centerX+i*Math.cos(d),m=e.centerY+i*Math.sin(d),A=e.centerX+i*Math.cos(u),x=e.centerY+i*Math.sin(u),w=p.polarToCartesian(e.centerX,e.centerY,e.donutSize,h),y=p.polarToCartesian(e.centerX,e.centerY,e.donutSize,l),S=o>180?1:0,L=["M",b,m,"A",i,i,0,S,1,A,x];return s="donut"===e.chartType?[...L,"L",w.x,w.y,"A",e.donutSize,e.donutSize,0,S,0,y.x,y.y,"L",b,m,"z"].join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[...L,"L",e.centerX,e.centerY,"L",b,m].join(" "):[...L].join(" "),r.roundPathCorners(s,2*this.strokeWidth)}getRoundedSlicePath({me:e,startDeg:t,spanDeg:a,size:i,borderRadius:s}){if(!(a>0))return null;const n=Math.PI/180,r=e.centerX,l=e.centerY,o="donut"===e.chartType,h=i,c=o?e.donutSize:0,d=a*n;let g=s;if(g=Math.min(g,d*h/2),o?(g=Math.min(g,d*c/2),g=Math.min(g,(h-c)/2)):g=Math.min(g,h/2),!(g>.5))return null;const p=t,f=t+a;return o?L({cx:r,cy:l,rIn:c,rOut:h,a0:p,a1:f,r:g,spanDeg:a}):function({cx:e,cy:t,rOut:a,a0:i,a1:s,r:n,spanDeg:r}){const l=(a,i)=>y(e,t,a,i),o=n/a*w,h=l(a,i+o),c=l(a,s-o),d=r-2*o>180?1:0,g=l(a,s),p=l(a-n,s),f=l(a,i),u=l(a-n,i);return["M",S(h),"A",a,a,0,d,1,S(c),"Q",S(g),S(p),"L",`${e} ${t}`,"L",S(u),"Q",S(f),S(h),"Z"].join(" ")}({cx:r,cy:l,rOut:h,a0:p,a1:f,r:g,spanDeg:a})}drawPolarElements(e){const t=this.w,a=new b(this.w),i=new f(this.w),s=new m(this.w),n=i.group(),r=i.group(),l=a.niceScale(0,Math.ceil(this.maxY),0),o=l.result.reverse(),h=l.result.length;this.maxY=l.niceMax;let c=t.globals.radialSize;const d=c/(h-1);for(let e=0;e<h-1;e++){const a=i.drawCircle(c);if(a.attr({cx:this.centerX,cy:this.centerY,fill:"none","stroke-width":t.config.plotOptions.polarArea.rings.strokeWidth,stroke:t.config.plotOptions.polarArea.rings.strokeColor}),t.config.yaxis[0].show){const a=s.drawYAxisTexts(this.centerX,this.centerY-c+parseInt(t.config.yaxis[0].labels.style.fontSize,10)/2,e,o[e]);r.add(a)}n.add(a),c-=d}this.drawSpokes(e),e.add(n),e.add(r)}renderInnerDataLabels(e,t,a){const i=this.w,s=new f(this.w),n=t.total.show;e.node.innerHTML="",e.node.style.opacity=a.opacity;const r=a.centerX,l=this.donutDataLabels.total.label?a.centerY:a.centerY-a.centerY/6;let o,h;o=void 0===t.name.color?i.globals.colors[0]:t.name.color;let c=t.name.fontSize,d=t.name.fontFamily,g=t.name.fontWeight;h=void 0===t.value.color?i.config.chart.foreColor:t.value.color;const p=t.value.formatter;let u="",b="";if(n?(o=t.total.color,c=t.total.fontSize,d=t.total.fontFamily,g=t.total.fontWeight,b=this.donutDataLabels.total.label?t.total.label:"",u=t.total.formatter(i)):1===i.seriesData.series.length&&(u=p(i.seriesData.series[0],i),b=i.seriesData.seriesNames[0]),b&&(b=t.name.formatter(b,t.total.show,i)),t.name.show){const a=s.drawText({x:r,y:l+parseFloat(t.name.offsetY),text:b,textAnchor:"middle",foreColor:o,fontSize:c,fontWeight:g,fontFamily:d});a.node.classList.add("apexcharts-datalabel-label"),e.add(a)}if(t.value.show){const a=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,i=s.drawText({x:r,y:l+a,text:u,textAnchor:"middle",foreColor:h,fontWeight:t.value.fontWeight,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});i.node.classList.add("apexcharts-datalabel-value"),e.add(i)}return e}printInnerLabels(e,t,a,i){const s=this.w;let n;i?n=void 0===e.name.color?s.globals.colors[parseInt(i.parentNode.getAttribute("rel"),10)-1]:e.name.color:s.seriesData.series.length>1&&e.total.show&&(n=e.total.color);const r=s.dom.baseEl.querySelector(".apexcharts-datalabel-label"),l=s.dom.baseEl.querySelector(".apexcharts-datalabel-value");a=(0,e.value.formatter)(a,s),i||"function"!=typeof e.total.formatter||(a=e.total.formatter(s));const o=t===e.total.label;if(t=this.donutDataLabels.total.label?e.name.formatter(t,o,s):"",null!==r&&(r.textContent=t),null!==l&&(l.textContent=a),null!==r){r.style.fill=n}}printDataLabelsInner(e,t){const a=this.w,i=e.getAttribute("data:value"),s=a.seriesData.seriesNames[parseInt(e.parentNode.getAttribute("rel"),10)-1];a.seriesData.series.length>1&&this.printInnerLabels(t,s,i,e);const n=a.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(null!==n){n.style.opacity="1"}}drawSpokes(e){const t=this.w,a=new f(this.w),i=t.config.plotOptions.polarArea.spokes;if(0===i.strokeWidth)return;const s=[],n=360/t.seriesData.series.length;for(let e=0;e<t.seriesData.series.length;e++)s.push(p.polarToCartesian(this.centerX,this.centerY,t.globals.radialSize,t.config.plotOptions.pie.startAngle+n*e));s.forEach((t,s)=>{const n=a.drawLine(t.x,t.y,this.centerX,this.centerY,Array.isArray(i.connectorColors)?i.connectorColors[s]:i.connectorColors);e.add(n)})}revertDataLabelsInner(){const e=this.w;if(this.donutDataLabels.show){const t=e.dom.Paper.findOne(".apexcharts-datalabels-group"),a=this.renderInnerDataLabels(t,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});e.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(a)}}}const O=c.__apex_Series,z=c.__apex_BrowserAPIs_BrowserAPIs;c.default.use({radialBar:class extends v{constructor(e,t){super(e,t),this.ctx=t,this.w=e,this.animBeginArr=[0],this.animDur=0,this.startAngle=e.config.plotOptions.radialBar.startAngle,this.endAngle=e.config.plotOptions.radialBar.endAngle,this.totalAngle=Math.abs(e.config.plotOptions.radialBar.endAngle-e.config.plotOptions.radialBar.startAngle),this.trackStartAngle=e.config.plotOptions.radialBar.track.startAngle,this.trackEndAngle=e.config.plotOptions.radialBar.track.endAngle,this.barLabels=this.w.config.plotOptions.radialBar.barLabels,this.donutDataLabels=this.w.config.plotOptions.radialBar.dataLabels,this.radialDataLabels=this.donutDataLabels,this.trackStartAngle||(this.trackStartAngle=this.startAngle),this.trackEndAngle||(this.trackEndAngle=this.endAngle),360===this.endAngle&&(this.endAngle=359.99),this.margin=parseInt(e.config.plotOptions.radialBar.track.margin,10),this.onBarLabelClick=this.onBarLabelClick.bind(this)}draw(e){var t;const a=this.w,i=new f(this.w),s=i.group({class:"apexcharts-radialbar"});if(a.globals.noData)return s;const n=i.group(),r=this.defaultSize/2,l=a.layout.gridWidth/2;let o=this.defaultSize/2.05;a.config.chart.sparkline.enabled||(o=o-a.config.stroke.width-a.config.chart.dropShadow.blur);const h=a.globals.fill.colors,c=a.config.plotOptions.radialBar,d=Array.isArray(c.bands)&&c.bands.length>0,g=d&&c.bandsStyle&&c.bandsStyle.hideTrackWhenPresent,p="needle"===c.shape;if(c.track.show&&!g){const t=this.drawTracks({size:o,centerX:l,centerY:r,colorArr:h,series:e});n.add(t)}if(d){const t=this.drawBands({size:o,centerX:l,centerY:r,series:e});n.add(t)}const u=this.drawArcs({size:o,centerX:l,centerY:r,colorArr:h,series:e,skipValueArc:p&&!(null==(t=c.needle)?void 0:t.showValueArc)});if(c.ticks&&c.ticks.show){const t=this.drawTicks({size:o,centerX:l,centerY:r,series:e});if(this.initialAnim&&!a.globals.dataChanged&&!a.globals.resized&&A.isBrowser()&&a.globals.shouldAnimate){const e=t.node;e.style.opacity="0",e.style.transition="opacity 280ms ease-out";const i=a.config.chart.animations.speed||800;setTimeout(()=>{e.style.opacity="1"},i)}n.add(t)}if(p){const t=this.drawNeedle({size:o,centerX:l,centerY:r,series:e});n.add(t)}let b=360;a.config.plotOptions.radialBar.startAngle<0&&(b=this.totalAngle);const m=(360-b)/360;if(a.globals.radialSize=o-o*m,this.radialDataLabels.value.show){const e=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);a.globals.radialSize+=e*m}return n.add(u.g),"front"===a.config.plotOptions.radialBar.hollow.position&&(u.g.add(u.elHollow),u.dataLabels&&u.g.add(u.dataLabels)),s.add(n),s}drawTracks(e){const t=this.w,a=new f(this.w),i=a.group({class:"apexcharts-tracks"}),s=new u(this.w),n=new g(this.w),r=this.getStrokeWidth(e);e.size=e.size-r/2;for(let l=0;l<e.series.length;l++){const o=a.group({class:"apexcharts-radialbar-track apexcharts-track"});i.add(o),o.attr({rel:l+1}),e.size=e.size-r-this.margin;const h=t.config.plotOptions.radialBar.track,c=n.fillPath({seriesNumber:0,size:e.size,fillColors:Array.isArray(h.background)?h.background[l]:h.background,solid:!0}),d=this.trackStartAngle;let g=this.trackEndAngle;Math.abs(g)+Math.abs(d)>=360&&(g=360-Math.abs(this.startAngle)-.1);const p=a.drawPath({d:"",stroke:c,strokeWidth:r*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){const e=h.dropShadow;s.dropShadow(p,e)}o.add(p),p.attr("id","apexcharts-radialbarTrack-"+l),this.animatePaths(p,{centerX:e.centerX,centerY:e.centerY,endAngle:g,startAngle:d,size:e.size,i:l,totalItems:2,animBeginArr:0,dur:0,isTrack:!0})}return i}drawArcs(e){var t;const a=this.w,i=new f(this.w),s=new g(this.w),n=new u(this.w),r=i.group(),l=this.getStrokeWidth(e);e.size=e.size-l/2;let o=a.config.plotOptions.radialBar.hollow.background;const h=e.size-l*e.series.length-this.margin*e.series.length-l*parseInt(a.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,c=h-a.config.plotOptions.radialBar.hollow.margin;void 0!==a.config.plotOptions.radialBar.hollow.image&&(o=this.drawHollowImage(e,r,h,o));const d=this.drawHollow({size:c,centerX:e.centerX,centerY:e.centerY,fill:o||"transparent"});if(a.config.plotOptions.radialBar.hollow.dropShadow.enabled){const e=a.config.plotOptions.radialBar.hollow.dropShadow;n.dropShadow(d,e)}let b=1;!this.radialDataLabels.total.show&&a.seriesData.series.length>1&&(b=0);let m=null;if(this.radialDataLabels.show){const t=a.dom.Paper.findOne(".apexcharts-datalabels-group");m=this.renderInnerDataLabels(t,this.radialDataLabels,{hollowSize:h,centerX:e.centerX,centerY:e.centerY,opacity:b})}"back"===a.config.plotOptions.radialBar.hollow.position&&(r.add(d),m&&r.add(m));let A=!1;a.config.plotOptions.radialBar.inverseOrder&&(A=!0);const x=!0===(null==(t=this.ctx.morphTypeChange)?void 0:t.isActive());for(let t=A?e.series.length-1:0;A?t>=0:t<e.series.length;A?t--:t++){const o=i.group({class:"apexcharts-series apexcharts-radial-series",seriesName:p.escapeString(a.seriesData.seriesNames[t])});r.add(o),o.attr({rel:t+1,"data:realIndex":t}),O.addCollapsedClassToSeries(this.w,o,t),e.size=e.size-l-this.margin;const h=s.fillPath({seriesNumber:t,size:e.size,value:e.series[t]}),c=this.startAngle;let d;const g=a.config.plotOptions.radialBar,u="number"==typeof g.min?g.min:0,b="number"==typeof g.max?g.max:100,m=b===u?1:b-u,A=e=>{const t=Math.min(Math.max(e,u),b);return Math.max(0,(t-u)/m)},w=A(p.negToZero(e.series[t]));let y,S=Math.round(this.totalAngle*w)+this.startAngle;a.globals.dataChanged&&(d=this.startAngle,y=Math.round(this.totalAngle*A(p.negToZero(a.globals.previousPaths[t])))+d);Math.abs(S)+Math.abs(c)>360&&(S-=.01);Math.abs(y)+Math.abs(d)>360&&(y-=.01);const L=S-c,v=Array.isArray(a.config.stroke.dashArray)?a.config.stroke.dashArray[t]:a.config.stroke.dashArray,z=x?this.ctx.morphTypeChange.getInitialPathFor(t,0):null,C=x?this.ctx.morphTypeChange.getFromType():null,k=!!z&&("bar"===C||"funnel"===C||"pyramid"===C||"pie"===C||"donut"===C||"polarArea"===C),P=i.drawPath({d:z||"",stroke:k||e.skipValueArc?"transparent":h,strokeWidth:k||e.skipValueArc?0:l,fill:k?h:"none",fillOpacity:a.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+t,strokeDashArray:v}),T=c+L/2,Y=p.polarToCartesian(e.centerX,e.centerY,e.size,T);if(f.setAttrs(P.node,{"data:angle":L,"data:value":e.series[t],"data:cx":Y.x,"data:cy":Y.y}),a.config.chart.dropShadow.enabled){const e=a.config.chart.dropShadow;n.dropShadow(P,e,t)}if(n.setSelectionFilter(P,0,t),this.addListeners(P,this.radialDataLabels),o.add(P),P.attr({index:0,j:t}),this.barLabels.enabled){const s=p.polarToCartesian(e.centerX,e.centerY,e.size,c),n=this.barLabels.formatter(a.seriesData.seriesNames[t],{seriesIndex:t,w:a}),r=["apexcharts-radialbar-label"];this.barLabels.onClick||r.push("apexcharts-no-click");let l=this.barLabels.useSeriesColors?a.globals.colors[t]:a.config.chart.foreColor;l||(l=a.config.chart.foreColor);const h=s.x+this.barLabels.offsetX,d=s.y+this.barLabels.offsetY,g=i.drawText({x:h,y:d,text:n,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:l,cssClass:r.join(" ")});g.on("click",this.onBarLabelClick),g.attr({rel:t+1}),0!==c&&g.attr({"transform-origin":`${h} ${d}`,transform:`rotate(${c} 0 0)`}),o.add(g)}let D=0;if(!this.initialAnim||a.globals.resized||a.globals.dataChanged||(D=a.config.chart.animations.speed),a.globals.dataChanged&&(D=a.config.chart.animations.dynamicAnimation.speed),this.animDur=D/(1.2*e.series.length)+this.animDur,this.animBeginArr.push(this.animDur),x&&z){const t=this.ctx.morphTypeChange.getSpeed(),a=this.getPiePath({me:this,startAngle:c,angle:L,size:e.size});if(k){const i=this.ctx.morphTypeChange.buildRingSegmentPath(e.centerX,e.centerY,e.size,l,c,c+L);P.animate(t).plot(i,"polygons").after(function(){this.attr({d:a,fill:"none",stroke:e.skipValueArc?"transparent":h,"stroke-width":e.skipValueArc?0:l})})}else P.animate(t).plot(a,"polygons").attr({"stroke-width":l})}else this.animatePaths(P,{centerX:e.centerX,centerY:e.centerY,endAngle:S,startAngle:c,prevEndAngle:y,prevStartAngle:d,size:e.size,i:t,totalItems:2,animBeginArr:this.animBeginArr,dur:D,shouldSetPrevPaths:!0})}return{g:r,elHollow:d,dataLabels:m}}_angleAtValue(e){const t=this.w.config.plotOptions.radialBar,a="number"==typeof t.min?t.min:0,i="number"==typeof t.max?t.max:100,s=i===a?a+1:i,n=(Math.max(a,Math.min(s,Number(e)))-a)/(s-a);return this.startAngle+n*(this.endAngle-this.startAngle)}_describeArc(e,t,a,i,s){const n=p.polarToCartesian(e,t,a,s),r=p.polarToCartesian(e,t,a,i),l=s-i,o=Math.abs(l)>180?1:0;return`M ${n.x} ${n.y} A ${a} ${a} 0 ${o} 0 ${r.x} ${r.y}`}drawBands(e){const t=this.w,a=new f(this.w),i=t.config.plotOptions.radialBar,s=i.bands||[],n=a.group({class:"apexcharts-gauge-bands"}),r=this.getStrokeWidth(e),l=e.size-r/2-r-this.margin,o=r*parseInt(i.bandsStyle.strokeWidth,10)/100,h="number"==typeof i.min?i.min:0,c="number"==typeof i.max?i.max:100,d=c===h?0:(i.bandsStyle.gap||0)*((this.endAngle-this.startAngle)/(c-h));for(let t=0;t<s.length;t++){const r=s[t];if(void 0===r.from||void 0===r.to)continue;const h=this._angleAtValue(r.from),c=this._angleAtValue(r.to),g=Math.min(h,c)+d/2,p=Math.max(h,c)-d/2;if(p-g<=0)continue;const f=a.drawPath({d:this._describeArc(e.centerX,e.centerY,l,g,p),stroke:r.color||"#ccc",strokeWidth:o,fill:"none",strokeLinecap:i.bandsStyle.linecap||"butt",classes:"apexcharts-gauge-band"});f.node.setAttribute("data-band-index",String(t)),n.add(f)}return n}drawTicks(e){var t,a,i,s;const n=this.w,r=new f(this.w),l=n.config.plotOptions.radialBar,o=l.ticks,h=r.group({class:"apexcharts-gauge-ticks"}),c=this.getStrokeWidth(e),d=e.size-c/2-c-this.margin,g="number"==typeof l.min?l.min:0,u="number"==typeof l.max?l.max:100,b=Math.max(2,null!=(a=null==(t=o.major)?void 0:t.count)?a:11),m=Math.max(0,null!=(s=null==(i=o.minor)?void 0:i.count)?s:0),A=(t,a,i)=>{var s,n,l;const c=this._angleAtValue(t),g=null!=(s=a.length)?s:8,f="inside"===a.placement?d-g:d,u="inside"===a.placement?d:d+g,b=p.polarToCartesian(e.centerX,e.centerY,f,c),m=p.polarToCartesian(e.centerX,e.centerY,u,c),A=r.drawLine(b.x,b.y,m.x,m.y,a.color||(i?"#666":"#999"),0,a.width||(i?2:1));if(h.add(A),i&&(null==(n=o.labels)?void 0:n.show)){const i=("inside"===a.placement?f:u)+("inside"===a.placement?-1:1)*(null!=(l=o.labels.offset)?l:6),s=p.polarToCartesian(e.centerX,e.centerY,i,c),n="function"==typeof o.labels.formatter?o.labels.formatter(t):String(t),d=r.drawText({x:s.x,y:s.y,text:n,textAnchor:"middle",dominantBaseline:"middle",fontFamily:o.labels.fontFamily,fontSize:o.labels.fontSize,fontWeight:o.labels.fontWeight,foreColor:o.labels.color,cssClass:"apexcharts-gauge-tick-label"});h.add(d)}};for(let e=0;e<b;e++){if(A(g+e/(b-1)*(u-g),o.major||{},!0),e<b-1&&m>0)for(let t=1;t<=m;t++){A(g+(e+t/(m+1))/(b-1)*(u-g),o.minor||{},!1)}}return h}drawNeedle(e){var t,a,i,s,n;const r=this.w,l=new f(this.w),o=r.config.plotOptions.radialBar.needle||{},h=l.group({class:"apexcharts-gauge-needle"});if(!e.series||0===e.series.length)return h;const c=this.getStrokeWidth(e),d=e.size-c/2-c-this.margin,g="string"==typeof o.length&&o.length.endsWith("%")?d*parseInt(o.length,10)/100:Number(o.length||.85*d),p=null!=(t=o.baseWidth)?t:4,u=null!=(a=o.tipWidth)?a:1,b=o.color||"#333",m=e.centerX,x=Number(null!=(i=o.offsetY)?i:0),w=e.centerY+x,y=`M ${m+p/2} ${w} A ${p/2} ${p/2} 0 0 1 ${m-p/2} ${w} L ${m-u/2} ${w-g} L ${m+u/2} ${w-g} Z`,S=l.drawPath({d:y,stroke:b,strokeWidth:0,fill:b,classes:"apexcharts-gauge-needle-shape"});h.add(S);const L=Number(e.series[0]),v=this._angleAtValue(L),O=this.initialAnim&&!r.globals.dataChanged&&!r.globals.resized,C=this.ctx,k="number"==typeof C._lastNeedleAngle?C._lastNeedleAngle:this.startAngle;C._lastNeedleAngle=v;if(A.isBrowser()&&r.globals.shouldAnimate&&(O||r.globals.dataChanged)&&k!==v){const e=h.node;e.setAttribute("transform-origin",`${m} ${w}`),e.setAttribute("transform",`rotate(${k})`);const t=(null==(s=o.animation)?void 0:s.duration)&&Number(o.animation.duration)||o.animationSpeed&&Number(o.animationSpeed)||(null==(n=r.config.chart.animations.dynamicAnimation)?void 0:n.speed)||r.config.chart.animations.speed||800,a=1.70158,i=a+1,l=O?e=>1+i*Math.pow(e-1,3)+a*Math.pow(e-1,2):e=>1-Math.pow(1-e,3);null!=r.globals.radialNeedleRAF&&(z.cancelAnimationFrame(r.globals.radialNeedleRAF),r.globals.radialNeedleRAF=null);const c=performance.now(),d=a=>{if(this.w.globals.isDestroyed)return void(r.globals.radialNeedleRAF=null);const i=Math.max(0,Math.min(1,(a-c)/t)),s=k+(v-k)*l(i);e.setAttribute("transform",`rotate(${s})`),r.globals.radialNeedleRAF=i<1?z.requestAnimationFrame(d):null};r.globals.radialNeedleRAF=z.requestAnimationFrame(d)}else h.attr({"transform-origin":`${m} ${w}`,transform:`rotate(${v})`});return h}drawHollow(e){var t;const a=new f(this.w),i=this.w.config.plotOptions.radialBar.hollow,s=a.drawCircle(2*e.size),n={class:"apexcharts-radialbar-hollow",cx:e.centerX,cy:e.centerY,r:e.size,fill:e.fill};return(i.stroke||i.strokeDasharray)&&(n.stroke=i.stroke||"transparent",n["stroke-width"]=null!=(t=i.strokeWidth)?t:1,i.strokeDasharray&&(n["stroke-dasharray"]=i.strokeDasharray)),s.attr(n),s}drawHollowImage(e,t,a,i){const s=this.w,n=new g(this.w),r=p.randomId(),l=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)n.clippedImgArea({width:a,height:a,image:l,patternID:`pattern${s.globals.cuid}${r}`}),i=`url(#pattern${s.globals.cuid}${r})`;else{const a=s.config.plotOptions.radialBar.hollow.imageWidth,i=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===a&&void 0===i){const a=s.dom.Paper.image(l,function(t){this.move(e.centerX-t.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-t.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)});t.add(a)}else{const n=s.dom.Paper.image(l,function(){this.move(e.centerX-a/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,e.centerY-i/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(a,i)});t.add(n)}}return i}getStrokeWidth(e){const t=this.w;return e.size*(100-parseInt(t.config.plotOptions.radialBar.hollow.size,10))/100/(e.series.length+1)-this.margin}onBarLabelClick(e){var t;const a=e.target,i=parseInt(null!=(t=a.getAttribute("rel"))?t:"",10)-1,s=this.barLabels.onClick,n=this.w;s&&s(n.seriesData.seriesNames[i],{w:n,seriesIndex:i})}}}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>c.default});