UNPKG

apexcharts

Version:

A JavaScript Chart Library

6 lines (5 loc) 23.3 kB
/*! * ApexCharts v5.10.6 * (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,r=a.__apex_Utils,n=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,r=i.config.yaxis[0],l=i.formatters.yLabelFormatters[0];return new n(this.w).drawText({x:t+r.labels.offsetX,y:e+r.labels.offsetY,text:l(s,a),textAnchor:"middle",fontSize:r.labels.style.fontSize,fontFamily:r.labels.style.fontFamily,foreColor:Array.isArray(r.labels.style.colors)?r.labels.style.colors[a]:r.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 n(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){const e=this.w,a=new n(this.w),s=a.group({class:"apexcharts-pie"});if(e.globals.noData)return s;let i=0;for(let e=0;e<t.length;e++)i+=r.negToZero(t[e]);const l=[],o=a.group();0===i&&(i=1e-5),t.forEach(t=>{this.maxY=Math.max(this.maxY,t)}),e.config.yaxis[0].max&&(this.maxY=e.config.yaxis[0].max),"back"===e.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(s);for(let a=0;a<t.length;a++){const s=this.fullAngle*r.negToZero(t[a])/i;l.push(s),"polarArea"===this.chartType?(l[a]=this.fullAngle/t.length,this.sliceSizes.push(e.globals.radialSize*t[a]/this.maxY)):this.sliceSizes.push(e.globals.radialSize)}if(e.globals.dataChanged){let t,a=0;for(let t=0;t<e.globals.previousPaths.length;t++)a+=r.negToZero(e.globals.previousPaths[t]);for(let s=0;s<e.globals.previousPaths.length;s++)t=this.fullAngle*r.negToZero(e.globals.previousPaths[s])/a,this.prevSectorAngleArr.push(t)}if(this.donutSize<0&&(this.donutSize=0),"donut"===this.chartType){const t=a.drawCircle(this.donutSize);t.attr({cx:this.centerX,cy:this.centerY,fill:e.config.plotOptions.pie.donut.background?e.config.plotOptions.pie.donut.background:"transparent"}),o.add(t)}const h=this.drawArcs(l,t);if(this.sliceLabels.forEach(t=>{h.add(t)}),o.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${e.config.plotOptions.pie.customScale})`}),o.add(h),s.add(o),this.donutDataLabels.show){const t=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:this.donutDataLabels.show});s.add(t)}return"front"===e.config.grid.position&&"polarArea"===this.chartType&&this.drawPolarElements(s),s}drawArcs(t,e){const a=this.w,s=new l(this.w),o=new n(this.w),h=new i(this.w),d=o.group({class:"apexcharts-slices"});let c=this.initialAngle,g=this.initialAngle,p=this.initialAngle,f=this.initialAngle;this.strokeWidth=a.config.stroke.show?a.config.stroke.width:0;for(let i=0;i<t.length;i++){const l=o.group({class:"apexcharts-series apexcharts-pie-series",seriesName:r.escapeString(a.seriesData.seriesNames[i]),rel:i+1,"data:realIndex":i});d.add(l),c=p,g=f,p=c+t[i],f=g+this.prevSectorAngleArr[i];const u=p<c?this.fullAngle+p-c:p-c,b=h.fillPath({seriesNumber:i,size:this.sliceSizes[i],value:e[i]}),A=this.getChangedPath(g,f),m=o.drawPath({d:A,stroke:Array.isArray(this.lineColorArr)?this.lineColorArr[i]:this.lineColorArr,strokeWidth:0,fill:b,fillOpacity:a.config.fill.opacity,classes:`apexcharts-pie-area apexcharts-${this.chartType.toLowerCase()}-slice-${i}`});if(m.attr({index:0,j:i}),s.setSelectionFilter(m,0,i),a.config.chart.dropShadow.enabled){const t=a.config.chart.dropShadow;s.dropShadow(m,t,i)}this.addListeners(m,this.donutDataLabels);let w={x:0,y:0};const y=(c+u/2)%this.fullAngle;let x={x:this.centerX,y:this.centerY};"pie"===this.chartType||"polarArea"===this.chartType?(w=r.polarToCartesian(this.centerX,this.centerY,a.globals.radialSize/1.25+a.config.plotOptions.pie.dataLabels.offset,y),x=r.polarToCartesian(this.centerX,this.centerY,a.globals.radialSize/2,y)):"donut"===this.chartType&&(w=r.polarToCartesian(this.centerX,this.centerY,(a.globals.radialSize+this.donutSize)/2+a.config.plotOptions.pie.dataLabels.offset,y),x=r.polarToCartesian(this.centerX,this.centerY,(a.globals.radialSize+this.donutSize)/2,y)),n.setAttrs(m.node,{"data:angle":u,"data:startAngle":c,"data:strokeWidth":this.strokeWidth,"data:value":e[i],"data:cx":x.x,"data:cy":x.y}),l.add(m);let S=0;if(!this.initialAnim||a.globals.resized||a.globals.dataChanged?this.animBeginArr.push(0):(S=u/this.fullAngle*a.config.chart.animations.speed,0===S&&(S=1),this.animDur=S+this.animDur,this.animBeginArr.push(this.animDur)),this.dynamicAnim&&a.globals.dataChanged?this.animatePaths(m,{size:this.sliceSizes[i],endAngle:p,startAngle:c,prevStartAngle:g,prevEndAngle:f,animateStartingPos:!0,i:i,animBeginArr:this.animBeginArr,shouldSetPrevPaths:!0,dur:a.config.chart.animations.dynamicAnimation.speed}):this.animatePaths(m,{size:this.sliceSizes[i],endAngle:p,startAngle:c,i:i,totalItems:t.length-1,animBeginArr:this.animBeginArr,dur:S}),a.config.plotOptions.pie.expandOnClick&&"polarArea"!==this.chartType&&m.node.addEventListener("mouseup",this.pieClicked.bind(this,i)),void 0!==a.interact.selectedDataPoints[0]&&a.interact.selectedDataPoints[0].indexOf(i)>-1&&this.pieClicked(i),a.config.dataLabels.enabled){const e=w.x,r=w.y;let n=100*u/this.fullAngle+"%";if(0!==u&&a.config.plotOptions.pie.dataLabels.minAngleToShowLabel<t[i]){const t=a.config.dataLabels.formatter;void 0!==t&&(n=t(a.globals.seriesPercent[i][0],{seriesIndex:i,w:a}));const l=a.globals.dataLabels.style.colors[i],h=o.group({class:"apexcharts-datalabels"}),d=o.drawText({x:e,y:r,text:n,textAnchor:"middle",fontSize:a.config.dataLabels.style.fontSize,fontFamily:a.config.dataLabels.style.fontFamily,fontWeight:a.config.dataLabels.style.fontWeight,foreColor:l});if(h.add(d),a.config.dataLabels.dropShadow.enabled){const t=a.config.dataLabels.dropShadow;s.dropShadow(d,t)}d.node.classList.add("apexcharts-pie-label"),a.config.chart.animations.animate&&!1===a.globals.resized&&(d.node.classList.add("apexcharts-pie-label-delay"),d.node.style.animationDelay=a.config.chart.animations.speed/940+"s"),this.sliceLabels.push(h)}}}return d}addListeners(t,e){const a=new n(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,r=e.startAngle;const n=e.startAngle;void 0!==e.prevStartAngle&&void 0!==e.prevEndAngle&&(r=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+n>this.fullAngle?e.endAngle=e.endAngle-(s+n):s+n<this.fullAngle&&(e.endAngle=e.endAngle+(this.fullAngle-(s+n)))),s===this.fullAngle&&(s=this.fullAngle-.01),this.animateArc(t,r,n,s,i,e)}animateArc(t,e,a,i,r,n){const l=this,o=this.w,h=new s(this.w),d=n.size;let c;(isNaN(e)||isNaN(r))&&(e=a,r=i,n.dur=0);let g=i,p=a;const f=e<a?this.fullAngle+e-a:e-a;o.globals.dataChanged&&n.shouldSetPrevPaths&&n.prevEndAngle&&(c=l.getPiePath({me:l,startAngle:n.prevStartAngle,angle:n.prevEndAngle<n.prevStartAngle?this.fullAngle+n.prevEndAngle-n.prevStartAngle:n.prevEndAngle-n.prevStartAngle,size:d}),t.attr({d:c})),0!==n.dur?t.animate(n.dur,n.animBeginArr[n.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}),n.i===o.config.series.length-1&&h.animationCompleted(t)}).during(s=>{g=f+(i-f)*s,n.animateStartingPos&&(g=r+(i-r)*s,p=e-r+(a-(e-r))*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}),n.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 r=parseInt(i.attr("data:startAngle"),10),n=parseInt(i.attr("data:angle"),10),l=a.getPiePath({me:a,startAngle:r,angle:n,size:s});360!==n&&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 n(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),b=r.polarToCartesian(t.centerX,t.centerY,t.donutSize,d),A=r.polarToCartesian(t.centerX,t.centerY,t.donutSize,o),m=a>180?1:0,w=["M",g,p,"A",s,s,0,m,1,f,u];return i="donut"===t.chartType?[...w,"L",b.x,b.y,"A",t.donutSize,t.donutSize,0,m,0,A.x,A.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 n(this.w),i=new h(this.w),r=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)}r.add(a),p-=f}this.drawSpokes(t),t.add(r),t.add(l)}renderInnerDataLabels(t,e,a){const s=this.w,i=new n(this.w),r=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="",b="";if(r?(h=e.total.color,c=e.total.fontSize,g=e.total.fontFamily,p=e.total.fontWeight,b=this.donutDataLabels.total.label?e.total.label:"",u=e.total.formatter(s)):1===s.seriesData.series.length&&(u=f(s.seriesData.series[0],s),b=s.seriesData.seriesNames[0]),b&&(b=e.name.formatter(b,e.total.show,s)),e.name.show){const a=i.drawText({x:l,y:o+parseFloat(e.name.offsetY),text:b,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 r;s?r=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&&(r=t.total.color);const n=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!==n&&(n.textContent=e),null!==l&&(l.textContent=a),null!==n){n.style.fill=r}}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 r=a.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(null!==r){r.style.opacity="1"}}drawSpokes(t){const e=this.w,a=new n(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(r.polarToCartesian(this.centerX,this.centerY,e.globals.radialSize,e.config.plotOptions.pie.startAngle+l*t));i.forEach((e,i)=>{const r=a.drawLine(e.x,e.y,this.centerX,this.centerY,Array.isArray(s.connectorColors)?s.connectorColors[i]:s.connectorColors);t.add(r)})}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;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){const e=this.w,a=new n(this.w),s=a.group({class:"apexcharts-radialbar"});if(e.globals.noData)return s;const i=a.group(),r=this.defaultSize/2,l=e.layout.gridWidth/2;let o=this.defaultSize/2.05;e.config.chart.sparkline.enabled||(o=o-e.config.stroke.width-e.config.chart.dropShadow.blur);const h=e.globals.fill.colors;if(e.config.plotOptions.radialBar.track.show){const e=this.drawTracks({size:o,centerX:l,centerY:r,colorArr:h,series:t});i.add(e)}const d=this.drawArcs({size:o,centerX:l,centerY:r,colorArr:h,series:t});let c=360;e.config.plotOptions.radialBar.startAngle<0&&(c=this.totalAngle);const g=(360-c)/360;if(e.globals.radialSize=o-o*g,this.radialDataLabels.value.show){const t=Math.max(this.radialDataLabels.value.offsetY,this.radialDataLabels.name.offsetY);e.globals.radialSize+=t*g}return i.add(d.g),"front"===e.config.plotOptions.radialBar.hollow.position&&(d.g.add(d.elHollow),d.dataLabels&&d.g.add(d.dataLabels)),s.add(i),s}drawTracks(t){const e=this.w,a=new n(this.w),s=a.group({class:"apexcharts-tracks"}),r=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 n=a.group({class:"apexcharts-radialbar-track apexcharts-track"});s.add(n),n.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;r.dropShadow(p,t)}n.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){const e=this.w,a=new n(this.w),s=new i(this.w),o=new l(this.w),h=a.group(),d=this.getStrokeWidth(t);t.size=t.size-d/2;let g=e.config.plotOptions.radialBar.hollow.background;const p=t.size-d*t.series.length-this.margin*t.series.length-d*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,f=p-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(g=this.drawHollowImage(t,h,p,g));const u=this.drawHollow({size:f,centerX:t.centerX,centerY:t.centerY,fill:g||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){const t=e.config.plotOptions.radialBar.hollow.dropShadow;o.dropShadow(u,t)}let b=1;!this.radialDataLabels.total.show&&e.seriesData.series.length>1&&(b=0);let A=null;if(this.radialDataLabels.show){const a=e.dom.Paper.findOne(".apexcharts-datalabels-group");A=this.renderInnerDataLabels(a,this.radialDataLabels,{hollowSize:p,centerX:t.centerX,centerY:t.centerY,opacity:b})}"back"===e.config.plotOptions.radialBar.hollow.position&&(h.add(u),A&&h.add(A));let m=!1;e.config.plotOptions.radialBar.inverseOrder&&(m=!0);for(let i=m?t.series.length-1:0;m?i>=0:i<t.series.length;m?i--:i++){const l=a.group({class:"apexcharts-series apexcharts-radial-series",seriesName:r.escapeString(e.seriesData.seriesNames[i])});h.add(l),l.attr({rel:i+1,"data:realIndex":i}),c.addCollapsedClassToSeries(this.w,l,i),t.size=t.size-d-this.margin;const g=s.fillPath({seriesNumber:i,size:t.size,value:t.series[i]}),p=this.startAngle;let f;const u=r.negToZero(t.series[i]>100?100:t.series[i])/100;let b,A=Math.round(this.totalAngle*u)+this.startAngle;e.globals.dataChanged&&(f=this.startAngle,b=Math.round(this.totalAngle*r.negToZero(e.globals.previousPaths[i])/100)+f);Math.abs(A)+Math.abs(p)>360&&(A-=.01);Math.abs(b)+Math.abs(f)>360&&(b-=.01);const m=A-p,w=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[i]:e.config.stroke.dashArray,y=a.drawPath({d:"",stroke:g,strokeWidth:d,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+i,strokeDashArray:w}),x=p+m/2,S=r.polarToCartesian(t.centerX,t.centerY,t.size,x);if(n.setAttrs(y.node,{"data:angle":m,"data:value":t.series[i],"data:cx":S.x,"data:cy":S.y}),e.config.chart.dropShadow.enabled){const t=e.config.chart.dropShadow;o.dropShadow(y,t,i)}if(o.setSelectionFilter(y,0,i),this.addListeners(y,this.radialDataLabels),l.add(y),y.attr({index:0,j:i}),this.barLabels.enabled){const s=r.polarToCartesian(t.centerX,t.centerY,t.size,p),n=this.barLabels.formatter(e.seriesData.seriesNames[i],{seriesIndex:i,w:e}),o=["apexcharts-radialbar-label"];this.barLabels.onClick||o.push("apexcharts-no-click");let h=this.barLabels.useSeriesColors?e.globals.colors[i]:e.config.chart.foreColor;h||(h=e.config.chart.foreColor);const d=s.x+this.barLabels.offsetX,c=s.y+this.barLabels.offsetY,g=a.drawText({x:d,y:c,text:n,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:i+1}),0!==p&&g.attr({"transform-origin":`${d} ${c}`,transform:`rotate(${p} 0 0)`}),l.add(g)}let z=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(z=e.config.chart.animations.speed),e.globals.dataChanged&&(z=e.config.chart.animations.dynamicAnimation.speed),this.animDur=z/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(y,{centerX:t.centerX,centerY:t.centerY,endAngle:A,startAngle:p,prevEndAngle:b,prevStartAngle:f,size:t.size,i:i,totalItems:2,animBeginArr:this.animBeginArr,dur:z,shouldSetPrevPaths:!0})}return{g:h,elHollow:u,dataLabels:A}}drawHollow(t){const e=new n(this.w).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}drawHollowImage(t,e,a,s){const n=this.w,l=new i(this.w),o=r.randomId(),h=n.config.plotOptions.radialBar.hollow.image;if(n.config.plotOptions.radialBar.hollow.imageClipped)l.clippedImgArea({width:a,height:a,image:h,patternID:`pattern${n.globals.cuid}${o}`}),s=`url(#pattern${n.globals.cuid}${o})`;else{const a=n.config.plotOptions.radialBar.hollow.imageWidth,s=n.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===a&&void 0===s){const a=n.dom.Paper.image(h,function(e){this.move(t.centerX-e.width/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+n.config.plotOptions.radialBar.hollow.imageOffsetY)});e.add(a)}else{const i=n.dom.Paper.image(h,function(){this.move(t.centerX-a/2+n.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-s/2+n.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,r=this.w;i&&i(r.seriesData.seriesNames[s],{w:r,seriesIndex:s})}}}),exports.default=t;