UNPKG

apexcharts

Version:

A JavaScript Chart Library

6 lines (5 loc) 30.4 kB
/*! * ApexCharts v5.15.0 * (c) 2018-2026 ApexCharts */ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("apexcharts/core");function e(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const a in t)if("default"!==a){const s=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,s.get?s:{enumerable:!0,get:()=>t[a]})}return e.default=t,Object.freeze(e)}const a=e(t),s=a.__apex_Animations,i=a.__apex_Fill,n=a.__apex_Utils,r=a.__apex_Graphics,l=a.__apex_Filters,o=a.__apex_Scales;class h{constructor(t){this.w=t}drawYAxisTexts(t,e,a,s){const i=this.w,n=i.config.yaxis[0],l=i.formatters.yLabelFormatters[0];return new r(this.w).drawText({x:t+n.labels.offsetX,y:e+n.labels.offsetY,text:l(s,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})}}class d{constructor(t,e){this.ctx=e,this.w=t,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!==t.globals.stroke.colors?t.globals.stroke.colors:t.globals.colors,this.defaultSize=Math.min(t.layout.gridWidth,t.layout.gridHeight),this.centerY=this.defaultSize/2,this.centerX=t.layout.gridWidth/2,"radialBar"===t.config.chart.type?this.fullAngle=360:this.fullAngle=Math.abs(t.config.plotOptions.pie.endAngle-t.config.plotOptions.pie.startAngle),this.initialAngle=t.config.plotOptions.pie.startAngle%this.fullAngle,t.globals.radialSize=this.defaultSize/2.05-t.config.stroke.width-(t.config.chart.sparkline.enabled?0:t.config.chart.dropShadow.blur),this.donutSize=t.globals.radialSize*parseInt(t.config.plotOptions.pie.donut.size,10)/100;const a=t.config.plotOptions.pie.customScale,s=t.layout.gridWidth/2,i=t.layout.gridHeight/2;this.translateX=s-s*a,this.translateY=i-i*a,this.dataLabelsGroup=new r(this.w).group({class:"apexcharts-datalabels-group",transform:`translate(${this.translateX}, ${this.translateY}) scale(${a})`}),this.maxY=0,this.sliceLabels=[],this.sliceSizes=[],this.prevSectorAngleArr=[]}draw(t){var e;const a=this.w,s=new r(this.w),i=s.group({class:"apexcharts-pie"});if(a.globals.noData)return i;let l=0;for(let e=0;e<t.length;e++)l+=n.negToZero(t[e]);const o=[],h=s.group();0===l&&(l=1e-5),t.forEach(t=>{this.maxY=Math.max(this.maxY,t)}),a.config.yaxis[0].max&&(this.maxY=a.config.yaxis[0].max),"back"===a.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(i);for(let e=0;e<t.length;e++){const s=this.fullAngle*n.negToZero(t[e])/l;o.push(s),"polarArea"===this.chartType?(o[e]=this.fullAngle/t.length,this.sliceSizes.push(a.globals.radialSize*t[e]/this.maxY)):this.sliceSizes.push(a.globals.radialSize)}const d=!0===(null==(e=this.ctx.morphTypeChange)?void 0:e.isActive());if(a.globals.dataChanged&&!d){let t,e=0;for(let t=0;t<a.globals.previousPaths.length;t++)e+=n.negToZero(a.globals.previousPaths[t]);for(let s=0;s<a.globals.previousPaths.length;s++)t=this.fullAngle*n.negToZero(a.globals.previousPaths[s])/e,this.prevSectorAngleArr.push(t)}if(this.donutSize<0&&(this.donutSize=0),"donut"===this.chartType){const t=s.drawCircle(this.donutSize);t.attr({cx:this.centerX,cy:this.centerY,fill:a.config.plotOptions.pie.donut.background?a.config.plotOptions.pie.donut.background:"transparent"}),h.add(t)}const c=this.drawArcs(o,t);if(this.sliceLabels.forEach(t=>{c.add(t)}),h.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${a.config.plotOptions.pie.customScale})`}),h.add(c),i.add(h),this.donutDataLabels.show){const t=this.initialAnim&&!a.globals.resized&&!a.globals.dataChanged&&this.animDur>0,e=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:t?0:this.donutDataLabels.show});if(t){const t=this.dataLabelsGroup.node;t.style.transition="opacity 280ms ease-out",setTimeout(()=>{t.style.opacity="1"},this.animDur)}i.add(e)}return"front"===a.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(i),i}drawArcs(t,e){var a,s;const o=this.w,h=new l(this.w),d=new r(this.w),c=new i(this.w),g=d.group({class:"apexcharts-slices"});let p=this.initialAngle,f=this.initialAngle,u=this.initialAngle,m=this.initialAngle;this.strokeWidth=o.config.stroke.show?o.config.stroke.width:0;const b=!0===(null==(a=this.ctx.morphTypeChange)?void 0:a.isActive());for(let a=0;a<t.length;a++){const i=d.group({class:"apexcharts-series apexcharts-pie-series",seriesName:n.escapeString(o.seriesData.seriesNames[a]),rel:a+1,"data:realIndex":a});g.add(i),p=u,f=m,u=p+t[a],m=f+this.prevSectorAngleArr[a];const l=u<p?this.fullAngle+u-p:u-p,A=c.fillPath({seriesNumber:a,size:this.sliceSizes[a],value:e[a]}),w=b?this.ctx.morphTypeChange.getInitialPathFor(a,0):null,y=w||this.getChangedPath(f,m),x=d.drawPath({d:y,stroke:Array.isArray(this.lineColorArr)?null!=(s=this.lineColorArr[a])?s:this.lineColorArr[a%this.lineColorArr.length]:this.lineColorArr,strokeWidth:0,fill:A,fillOpacity:o.config.fill.opacity,classes:`apexcharts-pie-area apexcharts-${this.chartType.toLowerCase()}-slice-${a}`});if(x.attr({index:0,j:a}),h.setSelectionFilter(x,0,a),o.config.chart.dropShadow.enabled){const t=o.config.chart.dropShadow;h.dropShadow(x,t,a)}this.addListeners(x,this.donutDataLabels);let S={x:0,y:0};const k=(p+l/2)%this.fullAngle;let z={x:this.centerX,y:this.centerY};"pie"===this.chartType||"polarArea"===this.chartType?(S=n.polarToCartesian(this.centerX,this.centerY,o.globals.radialSize/1.25+o.config.plotOptions.pie.dataLabels.offset,k),z=n.polarToCartesian(this.centerX,this.centerY,o.globals.radialSize/2,k)):"donut"===this.chartType&&(S=n.polarToCartesian(this.centerX,this.centerY,(o.globals.radialSize+this.donutSize)/2+o.config.plotOptions.pie.dataLabels.offset,k),z=n.polarToCartesian(this.centerX,this.centerY,(o.globals.radialSize+this.donutSize)/2,k)),r.setAttrs(x.node,{"data:angle":l,"data:startAngle":p,"data:strokeWidth":this.strokeWidth,"data:value":e[a],"data:cx":z.x,"data:cy":z.y}),i.add(x);let v=0;if(!this.initialAnim||o.globals.resized||o.globals.dataChanged?this.animBeginArr.push(0):(v=l/this.fullAngle*o.config.chart.animations.speed,0===v&&(v=1),this.animDur=v+this.animDur,this.animBeginArr.push(this.animDur)),b&&w){const t=this.getPiePath({me:this,startAngle:p,angle:l,size:this.sliceSizes[a]}),e=this.ctx.morphTypeChange.getSpeed();x.node.setAttribute("data:pathOrig",t),x.animate(e).plot(t,"polygons").attr({"stroke-width":this.strokeWidth})}else this.dynamicAnim&&o.globals.dataChanged?this.animatePaths(x,{size:this.sliceSizes[a],endAngle:u,startAngle:p,prevStartAngle:f,prevEndAngle:m,animateStartingPos:!0,i:a,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:o.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(x,{size:this.sliceSizes[a],endAngle:u,startAngle:p,i:a,totalItems:t.length-1,animBeginArr:this.animBeginArr,dur:v});if(o.config.plotOptions.pie.expandOnClick&&"polarArea"!==this.chartType&&x.node.addEventListener("mouseup",this.pieClicked.bind(this,a)),void 0!==o.interact.selectedDataPoints[0]&&o.interact.selectedDataPoints[0].indexOf(a)>-1)if(this.initialAnim&&!o.globals.resized&&!o.globals.dataChanged&&this.animDur>0){const t=this,e=a;setTimeout(()=>t.pieClicked(e),this.animDur)}else this.pieClicked(a);if(o.config.dataLabels.enabled){const e=S.x,s=S.y;let i=100*l/this.fullAngle+"%";if(0!==l&&o.config.plotOptions.pie.dataLabels.minAngleToShowLabel<t[a]){const t=o.config.dataLabels.formatter;void 0!==t&&(i=t(o.globals.seriesPercent[a][0],{seriesIndex:a,w:o}));const n=o.globals.dataLabels.style.colors[a],r=d.group({class:"apexcharts-datalabels"}),l=d.drawText({x:e,y:s,text:i,textAnchor:"middle",fontSize:o.config.dataLabels.style.fontSize,fontFamily:o.config.dataLabels.style.fontFamily,fontWeight:o.config.dataLabels.style.fontWeight,foreColor:n});if(r.add(l),o.config.dataLabels.dropShadow.enabled){const t=o.config.dataLabels.dropShadow;h.dropShadow(l,t)}l.node.classList.add("apexcharts-pie-label"),o.config.chart.animations.animate&&!1===o.globals.resized&&(l.node.classList.add("apexcharts-pie-label-delay"),l.node.style.animationDelay=o.config.chart.animations.speed/940+"s"),this.sliceLabels.push(r)}}}return g}addListeners(t,e){const a=new r(this.w);t.node.addEventListener("mouseenter",a.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",a.pathMouseLeave.bind(this,t)),t.node.addEventListener("mouseleave",this.revertDataLabelsInner.bind(this)),t.node.addEventListener("mousedown",a.pathMouseDown.bind(this,t)),this.donutDataLabels.total.showAlways||(t.node.addEventListener("mouseenter",this.printDataLabelsInner.bind(this,t.node,e)),t.node.addEventListener("mousedown",this.printDataLabelsInner.bind(this,t.node,e)))}animatePaths(t,e){const a=this.w;let s=e.endAngle<e.startAngle?this.fullAngle+e.endAngle-e.startAngle:e.endAngle-e.startAngle,i=s,n=e.startAngle;const r=e.startAngle;void 0!==e.prevStartAngle&&void 0!==e.prevEndAngle&&(n=e.prevEndAngle,i=e.prevEndAngle<e.prevStartAngle?this.fullAngle+e.prevEndAngle-e.prevStartAngle:e.prevEndAngle-e.prevStartAngle),e.i===a.config.series.length-1&&(s+r>this.fullAngle?e.endAngle=e.endAngle-(s+r):s+r<this.fullAngle&&(e.endAngle=e.endAngle+(this.fullAngle-(s+r)))),s===this.fullAngle&&(s=this.fullAngle-.01),this.animateArc(t,n,r,s,i,e)}animateArc(t,e,a,i,n,r){const l=this,o=this.w,h=new s(this.w),d=r.size;let c;(isNaN(e)||isNaN(n))&&(e=a,n=i,r.dur=0);let g=i,p=a;const f=e<a?this.fullAngle+e-a:e-a;o.globals.dataChanged&&r.shouldSetPrevPaths&&r.prevEndAngle&&(c=l.getPiePath({me:l,startAngle:r.prevStartAngle,angle:r.prevEndAngle<r.prevStartAngle?this.fullAngle+r.prevEndAngle-r.prevStartAngle:r.prevEndAngle-r.prevStartAngle,size:d}),t.attr({d:c})),0!==r.dur?t.animate(r.dur,r.animBeginArr[r.i]).after(function(){"pie"!==l.chartType&&"donut"!==l.chartType&&"polarArea"!==l.chartType||this.animate(o.config.chart.animations.dynamicAnimation.speed).attr({"stroke-width":l.strokeWidth}),r.i===o.config.series.length-1&&h.animationCompleted(t)}).during(s=>{g=f+(i-f)*s,r.animateStartingPos&&(g=n+(i-n)*s,p=e-n+(a-(e-n))*s),c=l.getPiePath({me:l,startAngle:p,angle:g,size:d}),t.node.setAttribute("data:pathOrig",c),t.attr({d:c})}):(c=l.getPiePath({me:l,startAngle:p,angle:i,size:d}),r.isTrack||(o.globals.animationEnded=!0),t.node.setAttribute("data:pathOrig",c),t.attr({d:c,"stroke-width":l.strokeWidth}))}pieClicked(t){const e=this.w,a=this,s=a.sliceSizes[t]+(e.config.plotOptions.pie.expandOnClick?4:0),i=e.dom.Paper.findOne(`.apexcharts-${a.chartType.toLowerCase()}-slice-${t}`);if("true"===i.attr("data:pieClicked")){i.attr({"data:pieClicked":"false"}),this.revertDataLabelsInner();const t=i.attr("data:pathOrig");return void i.attr({d:t})}{const a=e.dom.baseEl.getElementsByClassName("apexcharts-pie-area");Array.prototype.forEach.call(a,t=>{t.setAttribute("data:pieClicked","false");const e=t.getAttribute("data:pathOrig");e&&t.setAttribute("d",e)}),e.interact.capturedDataPointIndex=t,i.attr("data:pieClicked","true")}const n=parseInt(i.attr("data:startAngle"),10),r=parseInt(i.attr("data:angle"),10),l=a.getPiePath({me:a,startAngle:n,angle:r,size:s});360!==r&&i.plot(l)}getChangedPath(t,e){let a="";return this.dynamicAnim&&this.w.globals.dataChanged&&(a=this.getPiePath({me:this,startAngle:t,angle:e-t,size:this.size})),a}getPiePath({me:t,startAngle:e,angle:a,size:s}){let i;const l=new r(this.w),o=e,h=Math.PI*(o-90)/180;let d=a+e;Math.ceil(d)>=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(d=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(d)>this.fullAngle&&(d-=this.fullAngle);const c=Math.PI*(d-90)/180,g=t.centerX+s*Math.cos(h),p=t.centerY+s*Math.sin(h),f=t.centerX+s*Math.cos(c),u=t.centerY+s*Math.sin(c),m=n.polarToCartesian(t.centerX,t.centerY,t.donutSize,d),b=n.polarToCartesian(t.centerX,t.centerY,t.donutSize,o),A=a>180?1:0,w=["M",g,p,"A",s,s,0,A,1,f,u];return i="donut"===t.chartType?[...w,"L",m.x,m.y,"A",t.donutSize,t.donutSize,0,A,0,b.x,b.y,"L",g,p,"z"].join(" "):"pie"===t.chartType||"polarArea"===t.chartType?[...w,"L",t.centerX,t.centerY,"L",g,p].join(" "):[...w].join(" "),l.roundPathCorners(i,2*this.strokeWidth)}drawPolarElements(t){const e=this.w,a=new o(this.w),s=new r(this.w),i=new h(this.w),n=s.group(),l=s.group(),d=a.niceScale(0,Math.ceil(this.maxY),0),c=d.result.reverse(),g=d.result.length;this.maxY=d.niceMax;let p=e.globals.radialSize;const f=p/(g-1);for(let t=0;t<g-1;t++){const a=s.drawCircle(p);if(a.attr({cx:this.centerX,cy:this.centerY,fill:"none","stroke-width":e.config.plotOptions.polarArea.rings.strokeWidth,stroke:e.config.plotOptions.polarArea.rings.strokeColor}),e.config.yaxis[0].show){const a=i.drawYAxisTexts(this.centerX,this.centerY-p+parseInt(e.config.yaxis[0].labels.style.fontSize,10)/2,t,c[t]);l.add(a)}n.add(a),p-=f}this.drawSpokes(t),t.add(n),t.add(l)}renderInnerDataLabels(t,e,a){const s=this.w,i=new r(this.w),n=e.total.show;t.node.innerHTML="",t.node.style.opacity=a.opacity;const l=a.centerX,o=this.donutDataLabels.total.label?a.centerY:a.centerY-a.centerY/6;let h,d;h=void 0===e.name.color?s.globals.colors[0]:e.name.color;let c=e.name.fontSize,g=e.name.fontFamily,p=e.name.fontWeight;d=void 0===e.value.color?s.config.chart.foreColor:e.value.color;const f=e.value.formatter;let u="",m="";if(n?(h=e.total.color,c=e.total.fontSize,g=e.total.fontFamily,p=e.total.fontWeight,m=this.donutDataLabels.total.label?e.total.label:"",u=e.total.formatter(s)):1===s.seriesData.series.length&&(u=f(s.seriesData.series[0],s),m=s.seriesData.seriesNames[0]),m&&(m=e.name.formatter(m,e.total.show,s)),e.name.show){const a=i.drawText({x:l,y:o+parseFloat(e.name.offsetY),text:m,textAnchor:"middle",foreColor:h,fontSize:c,fontWeight:p,fontFamily:g});a.node.classList.add("apexcharts-datalabel-label"),t.add(a)}if(e.value.show){const a=e.name.show?parseFloat(e.value.offsetY)+16:e.value.offsetY,s=i.drawText({x:l,y:o+a,text:u,textAnchor:"middle",foreColor:d,fontWeight:e.value.fontWeight,fontSize:e.value.fontSize,fontFamily:e.value.fontFamily});s.node.classList.add("apexcharts-datalabel-value"),t.add(s)}return t}printInnerLabels(t,e,a,s){const i=this.w;let n;s?n=void 0===t.name.color?i.globals.colors[parseInt(s.parentNode.getAttribute("rel"),10)-1]:t.name.color:i.seriesData.series.length>1&&t.total.show&&(n=t.total.color);const r=i.dom.baseEl.querySelector(".apexcharts-datalabel-label"),l=i.dom.baseEl.querySelector(".apexcharts-datalabel-value");a=(0,t.value.formatter)(a,i),s||"function"!=typeof t.total.formatter||(a=t.total.formatter(i));const o=e===t.total.label;if(e=this.donutDataLabels.total.label?t.name.formatter(e,o,i):"",null!==r&&(r.textContent=e),null!==l&&(l.textContent=a),null!==r){r.style.fill=n}}printDataLabelsInner(t,e){const a=this.w,s=t.getAttribute("data:value"),i=a.seriesData.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];a.seriesData.series.length>1&&this.printInnerLabels(e,i,s,t);const n=a.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(null!==n){n.style.opacity="1"}}drawSpokes(t){const e=this.w,a=new r(this.w),s=e.config.plotOptions.polarArea.spokes;if(0===s.strokeWidth)return;const i=[],l=360/e.seriesData.series.length;for(let t=0;t<e.seriesData.series.length;t++)i.push(n.polarToCartesian(this.centerX,this.centerY,e.globals.radialSize,e.config.plotOptions.pie.startAngle+l*t));i.forEach((e,i)=>{const n=a.drawLine(e.x,e.y,this.centerX,this.centerY,Array.isArray(s.connectorColors)?s.connectorColors[i]:s.connectorColors);t.add(n)})}revertDataLabelsInner(){const t=this.w;if(this.donutDataLabels.show){const e=t.dom.Paper.findOne(".apexcharts-datalabels-group"),a=this.renderInnerDataLabels(e,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});t.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(a)}}}const c=a.__apex_Series,g=a.__apex_BrowserAPIs_BrowserAPIs,p=a.__apex_Environment_Environment;t.use({radialBar:class extends d{constructor(t,e){super(t,e),this.ctx=e,this.w=t,this.animBeginArr=[0],this.animDur=0,this.startAngle=t.config.plotOptions.radialBar.startAngle,this.endAngle=t.config.plotOptions.radialBar.endAngle,this.totalAngle=Math.abs(t.config.plotOptions.radialBar.endAngle-t.config.plotOptions.radialBar.startAngle),this.trackStartAngle=t.config.plotOptions.radialBar.track.startAngle,this.trackEndAngle=t.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(t.config.plotOptions.radialBar.track.margin,10),this.onBarLabelClick=this.onBarLabelClick.bind(this)}draw(t){var e;const a=this.w,s=new r(this.w),i=s.group({class:"apexcharts-radialbar"});if(a.globals.noData)return i;const n=s.group(),l=this.defaultSize/2,o=a.layout.gridWidth/2;let h=this.defaultSize/2.05;a.config.chart.sparkline.enabled||(h=h-a.config.stroke.width-a.config.chart.dropShadow.blur);const d=a.globals.fill.colors,c=a.config.plotOptions.radialBar,g=Array.isArray(c.bands)&&c.bands.length>0,f=g&&c.bandsStyle&&c.bandsStyle.hideTrackWhenPresent,u="needle"===c.shape;if(c.track.show&&!f){const e=this.drawTracks({size:h,centerX:o,centerY:l,colorArr:d,series:t});n.add(e)}if(g){const e=this.drawBands({size:h,centerX:o,centerY:l,series:t});n.add(e)}const m=this.drawArcs({size:h,centerX:o,centerY:l,colorArr:d,series:t,skipValueArc:u&&!(null==(e=c.needle)?void 0:e.showValueArc)});if(c.ticks&&c.ticks.show){const e=this.drawTicks({size:h,centerX:o,centerY:l,series:t});if(this.initialAnim&&!a.globals.dataChanged&&!a.globals.resized&&p.isBrowser()&&a.globals.shouldAnimate){const t=e.node;t.style.opacity="0",t.style.transition="opacity 280ms ease-out";const s=a.config.chart.animations.speed||800;setTimeout(()=>{t.style.opacity="1"},s)}n.add(e)}if(u){const e=this.drawNeedle({size:h,centerX:o,centerY:l,series:t});n.add(e)}let b=360;a.config.plotOptions.radialBar.startAngle<0&&(b=this.totalAngle);const A=(360-b)/360;if(a.globals.radialSize=h-h*A,this.radialDataLabels.value.show){const t=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);a.globals.radialSize+=t*A}return n.add(m.g),"front"===a.config.plotOptions.radialBar.hollow.position&&(m.g.add(m.elHollow),m.dataLabels&&m.g.add(m.dataLabels)),i.add(n),i}drawTracks(t){const e=this.w,a=new r(this.w),s=a.group({class:"apexcharts-tracks"}),n=new l(this.w),o=new i(this.w),h=this.getStrokeWidth(t);t.size=t.size-h/2;for(let i=0;i<t.series.length;i++){const r=a.group({class:"apexcharts-radialbar-track apexcharts-track"});s.add(r),r.attr({rel:i+1}),t.size=t.size-h-this.margin;const l=e.config.plotOptions.radialBar.track,d=o.fillPath({seriesNumber:0,size:t.size,fillColors:Array.isArray(l.background)?l.background[i]:l.background,solid:!0}),c=this.trackStartAngle;let g=this.trackEndAngle;Math.abs(g)+Math.abs(c)>=360&&(g=360-Math.abs(this.startAngle)-.1);const p=a.drawPath({d:"",stroke:d,strokeWidth:h*parseInt(l.strokeWidth,10)/100,fill:"none",strokeOpacity:l.opacity,classes:"apexcharts-radialbar-area"});if(l.dropShadow.enabled){const t=l.dropShadow;n.dropShadow(p,t)}r.add(p),p.attr("id","apexcharts-radialbarTrack-"+i),this.animatePaths(p,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:c,size:t.size,i:i,totalItems:2,animBeginArr:0,dur:0,isTrack:!0})}return s}drawArcs(t){var e;const a=this.w,s=new r(this.w),o=new i(this.w),h=new l(this.w),d=s.group(),g=this.getStrokeWidth(t);t.size=t.size-g/2;let p=a.config.plotOptions.radialBar.hollow.background;const f=t.size-g*t.series.length-this.margin*t.series.length-g*parseInt(a.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,u=f-a.config.plotOptions.radialBar.hollow.margin;void 0!==a.config.plotOptions.radialBar.hollow.image&&(p=this.drawHollowImage(t,d,f,p));const m=this.drawHollow({size:u,centerX:t.centerX,centerY:t.centerY,fill:p||"transparent"});if(a.config.plotOptions.radialBar.hollow.dropShadow.enabled){const t=a.config.plotOptions.radialBar.hollow.dropShadow;h.dropShadow(m,t)}let b=1;!this.radialDataLabels.total.show&&a.seriesData.series.length>1&&(b=0);let A=null;if(this.radialDataLabels.show){const e=a.dom.Paper.findOne(".apexcharts-datalabels-group");A=this.renderInnerDataLabels(e,this.radialDataLabels,{hollowSize:f,centerX:t.centerX,centerY:t.centerY,opacity:b})}"back"===a.config.plotOptions.radialBar.hollow.position&&(d.add(m),A&&d.add(A));let w=!1;a.config.plotOptions.radialBar.inverseOrder&&(w=!0);const y=!0===(null==(e=this.ctx.morphTypeChange)?void 0:e.isActive());for(let e=w?t.series.length-1:0;w?e>=0:e<t.series.length;w?e--:e++){const i=s.group({class:"apexcharts-series apexcharts-radial-series",seriesName:n.escapeString(a.seriesData.seriesNames[e])});d.add(i),i.attr({rel:e+1,"data:realIndex":e}),c.addCollapsedClassToSeries(this.w,i,e),t.size=t.size-g-this.margin;const l=o.fillPath({seriesNumber:e,size:t.size,value:t.series[e]}),p=this.startAngle;let f;const u=a.config.plotOptions.radialBar,m="number"==typeof u.min?u.min:0,b="number"==typeof u.max?u.max:100,A=b===m?1:b-m,w=t=>{const e=Math.min(Math.max(t,m),b);return Math.max(0,(e-m)/A)},x=w(n.negToZero(t.series[e]));let S,k=Math.round(this.totalAngle*x)+this.startAngle;a.globals.dataChanged&&(f=this.startAngle,S=Math.round(this.totalAngle*w(n.negToZero(a.globals.previousPaths[e])))+f);Math.abs(k)+Math.abs(p)>360&&(k-=.01);Math.abs(S)+Math.abs(f)>360&&(S-=.01);const z=k-p,v=Array.isArray(a.config.stroke.dashArray)?a.config.stroke.dashArray[e]:a.config.stroke.dashArray,L=y?this.ctx.morphTypeChange.getInitialPathFor(e,0):null,C=y?this.ctx.morphTypeChange.getFromType():null,O=!!L&&("bar"===C||"funnel"===C||"pyramid"===C||"pie"===C||"donut"===C||"polarArea"===C),T=s.drawPath({d:L||"",stroke:O||t.skipValueArc?"transparent":l,strokeWidth:O||t.skipValueArc?0:g,fill:O?l:"none",fillOpacity:a.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+e,strokeDashArray:v}),D=p+z/2,P=n.polarToCartesian(t.centerX,t.centerY,t.size,D);if(r.setAttrs(T.node,{"data:angle":z,"data:value":t.series[e],"data:cx":P.x,"data:cy":P.y}),a.config.chart.dropShadow.enabled){const t=a.config.chart.dropShadow;h.dropShadow(T,t,e)}if(h.setSelectionFilter(T,0,e),this.addListeners(T,this.radialDataLabels),i.add(T),T.attr({index:0,j:e}),this.barLabels.enabled){const r=n.polarToCartesian(t.centerX,t.centerY,t.size,p),l=this.barLabels.formatter(a.seriesData.seriesNames[e],{seriesIndex:e,w:a}),o=["apexcharts-radialbar-label"];this.barLabels.onClick||o.push("apexcharts-no-click");let h=this.barLabels.useSeriesColors?a.globals.colors[e]:a.config.chart.foreColor;h||(h=a.config.chart.foreColor);const d=r.x+this.barLabels.offsetX,c=r.y+this.barLabels.offsetY,g=s.drawText({x:d,y:c,text:l,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:h,cssClass:o.join(" ")});g.on("click",this.onBarLabelClick),g.attr({rel:e+1}),0!==p&&g.attr({"transform-origin":`${d} ${c}`,transform:`rotate(${p} 0 0)`}),i.add(g)}let Y=0;if(!this.initialAnim||a.globals.resized||a.globals.dataChanged||(Y=a.config.chart.animations.speed),a.globals.dataChanged&&(Y=a.config.chart.animations.dynamicAnimation.speed),this.animDur=Y/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),y&&L){const e=this.ctx.morphTypeChange.getSpeed(),a=this.getPiePath({me:this,startAngle:p,angle:z,size:t.size});if(O){const s=this.ctx.morphTypeChange.buildRingSegmentPath(t.centerX,t.centerY,t.size,g,p,p+z);T.animate(e).plot(s,"polygons").after(function(){this.attr({d:a,fill:"none",stroke:t.skipValueArc?"transparent":l,"stroke-width":t.skipValueArc?0:g})})}else T.animate(e).plot(a,"polygons").attr({"stroke-width":g})}else this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:k,startAngle:p,prevEndAngle:S,prevStartAngle:f,size:t.size,i:e,totalItems:2,animBeginArr:this.animBeginArr,dur:Y,shouldSetPrevPaths:!0})}return{g:d,elHollow:m,dataLabels:A}}_angleAtValue(t){const e=this.w.config.plotOptions.radialBar,a="number"==typeof e.min?e.min:0,s="number"==typeof e.max?e.max:100,i=s===a?a+1:s,n=(Math.max(a,Math.min(i,Number(t)))-a)/(i-a);return this.startAngle+n*(this.endAngle-this.startAngle)}_describeArc(t,e,a,s,i){const r=n.polarToCartesian(t,e,a,i),l=n.polarToCartesian(t,e,a,s),o=i-s,h=Math.abs(o)>180?1:0;return`M ${r.x} ${r.y} A ${a} ${a} 0 ${h} 0 ${l.x} ${l.y}`}drawBands(t){const e=this.w,a=new r(this.w),s=e.config.plotOptions.radialBar,i=s.bands||[],n=a.group({class:"apexcharts-gauge-bands"}),l=this.getStrokeWidth(t),o=t.size-l/2-l-this.margin,h=l*parseInt(s.bandsStyle.strokeWidth,10)/100,d="number"==typeof s.min?s.min:0,c="number"==typeof s.max?s.max:100,g=c===d?0:(s.bandsStyle.gap||0)*((this.endAngle-this.startAngle)/(c-d));for(let e=0;e<i.length;e++){const r=i[e];if(void 0===r.from||void 0===r.to)continue;const l=this._angleAtValue(r.from),d=this._angleAtValue(r.to),c=Math.min(l,d)+g/2,p=Math.max(l,d)-g/2;if(p-c<=0)continue;const f=a.drawPath({d:this._describeArc(t.centerX,t.centerY,o,c,p),stroke:r.color||"#ccc",strokeWidth:h,fill:"none",strokeLinecap:s.bandsStyle.linecap||"butt",classes:"apexcharts-gauge-band"});f.node.setAttribute("data-band-index",String(e)),n.add(f)}return n}drawTicks(t){var e,a,s,i;const l=this.w,o=new r(this.w),h=l.config.plotOptions.radialBar,d=h.ticks,c=o.group({class:"apexcharts-gauge-ticks"}),g=this.getStrokeWidth(t),p=t.size-g/2-g-this.margin,f="number"==typeof h.min?h.min:0,u="number"==typeof h.max?h.max:100,m=Math.max(2,null!=(a=null==(e=d.major)?void 0:e.count)?a:11),b=Math.max(0,null!=(i=null==(s=d.minor)?void 0:s.count)?i:0),A=(e,a,s)=>{var i,r,l;const h=this._angleAtValue(e),g=null!=(i=a.length)?i:8,f="inside"===a.placement?p-g:p,u="inside"===a.placement?p:p+g,m=n.polarToCartesian(t.centerX,t.centerY,f,h),b=n.polarToCartesian(t.centerX,t.centerY,u,h),A=o.drawLine(m.x,m.y,b.x,b.y,a.color||(s?"#666":"#999"),0,a.width||(s?2:1));if(c.add(A),s&&(null==(r=d.labels)?void 0:r.show)){const s=("inside"===a.placement?f:u)+("inside"===a.placement?-1:1)*(null!=(l=d.labels.offset)?l:6),i=n.polarToCartesian(t.centerX,t.centerY,s,h),r="function"==typeof d.labels.formatter?d.labels.formatter(e):String(e),g=o.drawText({x:i.x,y:i.y,text:r,textAnchor:"middle",dominantBaseline:"middle",fontFamily:d.labels.fontFamily,fontSize:d.labels.fontSize,fontWeight:d.labels.fontWeight,foreColor:d.labels.color,cssClass:"apexcharts-gauge-tick-label"});c.add(g)}};for(let t=0;t<m;t++){if(A(f+t/(m-1)*(u-f),d.major||{},!0),t<m-1&&b>0)for(let e=1;e<=b;e++){A(f+(t+e/(b+1))/(m-1)*(u-f),d.minor||{},!1)}}return c}drawNeedle(t){var e,a,s,i,n;const l=this.w,o=new r(this.w),h=l.config.plotOptions.radialBar.needle||{},d=o.group({class:"apexcharts-gauge-needle"});if(!t.series||0===t.series.length)return d;const c=this.getStrokeWidth(t),f=t.size-c/2-c-this.margin,u="string"==typeof h.length&&h.length.endsWith("%")?f*parseInt(h.length,10)/100:Number(h.length||.85*f),m=null!=(e=h.baseWidth)?e:4,b=null!=(a=h.tipWidth)?a:1,A=h.color||"#333",w=t.centerX,y=Number(null!=(s=h.offsetY)?s:0),x=t.centerY+y,S=`M ${w+m/2} ${x} A ${m/2} ${m/2} 0 0 1 ${w-m/2} ${x} L ${w-b/2} ${x-u} L ${w+b/2} ${x-u} Z`,k=o.drawPath({d:S,stroke:A,strokeWidth:0,fill:A,classes:"apexcharts-gauge-needle-shape"});d.add(k);const z=Number(t.series[0]),v=this._angleAtValue(z),L=this.initialAnim&&!l.globals.dataChanged&&!l.globals.resized,C=this.ctx,O="number"==typeof C._lastNeedleAngle?C._lastNeedleAngle:this.startAngle;C._lastNeedleAngle=v;if(p.isBrowser()&&l.globals.shouldAnimate&&(L||l.globals.dataChanged)&&O!==v){const t=d.node;t.setAttribute("transform-origin",`${w} ${x}`),t.setAttribute("transform",`rotate(${O})`);const e=(null==(i=h.animation)?void 0:i.duration)&&Number(h.animation.duration)||h.animationSpeed&&Number(h.animationSpeed)||(null==(n=l.config.chart.animations.dynamicAnimation)?void 0:n.speed)||l.config.chart.animations.speed||800,a=1.70158,s=a+1,r=L?t=>1+s*Math.pow(t-1,3)+a*Math.pow(t-1,2):t=>1-Math.pow(1-t,3),o=performance.now(),c=a=>{const s=Math.max(0,Math.min(1,(a-o)/e)),i=O+(v-O)*r(s);t.setAttribute("transform",`rotate(${i})`),s<1&&g.requestAnimationFrame(c)};g.requestAnimationFrame(c)}else d.attr({"transform-origin":`${w} ${x}`,transform:`rotate(${v})`});return d}drawHollow(t){var e;const a=new r(this.w),s=this.w.config.plotOptions.radialBar.hollow,i=a.drawCircle(2*t.size),n={class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill};return(s.stroke||s.strokeDasharray)&&(n.stroke=s.stroke||"transparent",n["stroke-width"]=null!=(e=s.strokeWidth)?e:1,s.strokeDasharray&&(n["stroke-dasharray"]=s.strokeDasharray)),i.attr(n),i}drawHollowImage(t,e,a,s){const r=this.w,l=new i(this.w),o=n.randomId(),h=r.config.plotOptions.radialBar.hollow.image;if(r.config.plotOptions.radialBar.hollow.imageClipped)l.clippedImgArea({width:a,height:a,image:h,patternID:`pattern${r.globals.cuid}${o}`}),s=`url(#pattern${r.globals.cuid}${o})`;else{const a=r.config.plotOptions.radialBar.hollow.imageWidth,s=r.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===a&&void 0===s){const a=r.dom.Paper.image(h,function(e){this.move(t.centerX-e.width/2+r.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+r.config.plotOptions.radialBar.hollow.imageOffsetY)});e.add(a)}else{const i=r.dom.Paper.image(h,function(){this.move(t.centerX-a/2+r.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-s/2+r.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(a,s)});e.add(i)}}return s}getStrokeWidth(t){const e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}onBarLabelClick(t){var e;const a=t.target,s=parseInt(null!=(e=a.getAttribute("rel"))?e:"",10)-1,i=this.barLabels.onClick,n=this.w;i&&i(n.seriesData.seriesNames[s],{w:n,seriesIndex:s})}}}),exports.default=t;