Files
3dealer/public/js/app/components/apexcharts.js
T

1505 lines
938 KiB
JavaScript
Raw Normal View History

var Zo=(u,t)=>()=>{try{return t||u((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}};var qo=Zo((Ve,ve)=>{var Td=200,Do="__lodash_hash_undefined__",Pd=800,Rd=16,Eo=9007199254740991,To="[object Arguments]",Fd="[object Array]",Id="[object AsyncFunction]",Nd="[object Boolean]",Xd="[object Date]",Od="[object Error]",Po="[object Function]",Bd="[object GeneratorFunction]",Yd="[object Map]",zd="[object Number]",Wd="[object Null]",Ro="[object Object]",Hd="[object Proxy]",$d="[object RegExp]",Gd="[object Set]",Vd="[object String]",Ud="[object Undefined]",qd="[object WeakMap]",jd="[object ArrayBuffer]",Zd="[object DataView]",Kd="[object Float32Array]",Jd="[object Float64Array]",Qd="[object Int8Array]",tu="[object Int16Array]",eu="[object Int32Array]",su="[object Uint8Array]",iu="[object Uint8ClampedArray]",au="[object Uint16Array]",nu="[object Uint32Array]",ru=/[\\^$.*+?()[\]{}|]/g,ou=/^\[object .+?Constructor\]$/,lu=/^(?:0|[1-9]\d*)$/,nt={};nt[Kd]=nt[Jd]=nt[Qd]=nt[tu]=nt[eu]=nt[su]=nt[iu]=nt[au]=nt[nu]=!0;nt[To]=nt[Fd]=nt[jd]=nt[Nd]=nt[Zd]=nt[Xd]=nt[Od]=nt[Po]=nt[Yd]=nt[zd]=nt[Ro]=nt[$d]=nt[Gd]=nt[Vd]=nt[qd]=!1;var Fo=typeof global=="object"&&global&&global.Object===Object&&global,cu=typeof self=="object"&&self&&self.Object===Object&&self,je=Fo||cu||Function("return this")(),Io=typeof Ve=="object"&&Ve&&!Ve.nodeType&&Ve,Ue=Io&&typeof ve=="object"&&ve&&!ve.nodeType&&ve,No=Ue&&Ue.exports===Io,Za=No&&Fo.process,wo=(function(){try{var u=Ue&&Ue.require&&Ue.require("util").types;return u||Za&&Za.binding&&Za.binding("util")}catch{}})(),vo=wo&&wo.isTypedArray;function hu(u,t,e){switch(e.length){case 0:return u.call(t);case 1:return u.call(t,e[0]);case 2:return u.call(t,e[0],e[1]);case 3:return u.call(t,e[0],e[1],e[2])}return u.apply(t,e)}function du(u,t){for(var e=-1,s=Array(u);++e<u;)s[e]=t(e);return s}function uu(u){return function(t){return u(t)}}function fu(u,t){return u?.[t]}function gu(u,t){return function(e){return u(t(e))}}var pu=Array.prototype,mu=Function.prototype,Fs=Object.prototype,Ka=je["__core-js_shared__"],Is=mu.toString,Rt=Fs.hasOwnProperty,_o=(function(){var u=/[^.]+$/.exec(Ka&&Ka.keys&&Ka.keys.IE_PROTO||"");return u?"Symbol(src)_1."+u:""})(),Xo=Fs.toString,xu=Is.call(Object),bu=RegExp("^"+Is.call(Rt).replace(ru,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ps=No?je.Buffer:void 0,Ao=je.Symbol,So=je.Uint8Array,Co=Ps?Ps.allocUnsafe:void 0,Oo=gu(Object.getPrototypeOf,Object),ko=Object.create,yu=Fs.propertyIsEnumerable,wu=pu.splice,ne=Ao?Ao.toStringTag:void 0,Rs=(function(){try{var u=an(Object,"defineProperty");return u({},"",{}),u}catch{}})(),vu=Ps?Ps.isBuffer:void 0,Mo=Math.max,_u=Date.now,Bo=an(je,"Map"),qe=an(Object,"create"),Au=(function(){function u(){}return function(t){if(!oe(t))return{};if(ko)return ko(t);u.prototype=t;var e=new u;return u.prototype=void 0,e}})();function re(u){var t=-1,e=u==null?0:u.length;for(this.clear();++t<e;){var s=u[t];this.set(s[0],s[1])}}function Su(){this.__data__=qe?qe(null):{},this.size=0}function Cu(u){var t=this.has(u)&&delete this.__data__[u];return this.size-=t?1:0,t}function ku(u){var t=this.__data__;if(qe){var e=t[u];return e===Do?void 0:e}return Rt.call(t,u)?t[u]:void 0}function Mu(u){var t=this.__data__;return qe?t[u]!==void 0:Rt.call(t,u)}function Lu(u,t){var e=this.__data__;return this.size+=this.has(u)?0:1,e[u]=qe&&t===void 0?Do:t,this}re.prototype.clear=Su;re.prototype.delete=Cu;re.prototype.get=ku;re.prototype.has=Mu;re.prototype.set=Lu;function Ft(u){var t=-1,e=u==null?0:u.length;for(this.clear();++t<e;){var s=u[t];this.set(s[0],s[1])}}function Du(){this.__data__=[],this.size=0}function Eu(u){var t=this.__data__,e=Ns(t,u);if(e<0)return!1;var s=t.length-1;return e==s?t.pop():wu.call(t,e,1),--this.size,!0}function Tu(u){var t=this.__data__,e=Ns(t,u);return e<0?void 0:t[e][1]}function Pu(u){return Ns(this.__data__,u)>-1}function Ru(u,t){var e=this.__data__,s=Ns(e,u);return s<0?(++this.size,e.push([u,t])):e[s][1]=t,this}Ft.prototype.clear=Du;Ft.prototype.delete=Eu;Ft.prototype.get=Tu;Ft.prototype.has=Pu;Ft.prototype.set=Ru;fun
${i}
2026-07-03 13:46:54 +00:00
</span> <span class="separator">-</span> <span class="value end-value">
${a}
</span>`;return u.w.globals.comboCharts?u.w.config.series[n].type==="rangeArea"||u.w.config.series[n].type==="rangeBar"?c=h:c=`<span>${l}</span>`:c=h,'<div class="apexcharts-tooltip-rangebar"><div> <span class="series-name" style="color: '+t+'">'+(e||"")+'</span></div><div> <span class="category">'+s+": </span> "+c+" </div></div>"},Lt=class u{constructor(t){this.opts=t}static forType(t){var e,s;let i=new u(t),a=["line","area","bar","candlestick","boxPlot","violin","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","unit","sunburst","pie","polarArea","donut","radar","radialBar"],n=t.chart.requestedType,r;return n==="funnel"||n==="pyramid"?r=i[n]():n==="gauge"?r=i.gauge():n==="histogram"?r=i.histogram():a.indexOf(t.chart.type)!==-1?r=i[t.chart.type]():r=i.line(),(s=(e=t.plotOptions)==null?void 0:e.bar)!=null&&s.isFunnel&&(r=i.funnel()),t.chart.stacked&&t.chart.type==="bar"&&(r=i.stackedBars()),r}static handOverTypeDefaults(t,e,s){let i=t.chart.requestedType||t.chart.type;if(!e||e===i)return;let a=new wt().init(),n=T.extend(a,u.forType(ln(e,t))),r=T.extend(a,u.forType(ln(i,t)));for(let o of al){if(s&&Ke(s,o)!==void 0)continue;let l=Ke(n,o),c=Ke(r,o);l===void 0&&c===void 0||ol(Ke(t,o),l)&&nl(t,o,c)}}hideYAxis(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}line(){return{dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}sparkline(t){this.hideYAxis();let e={grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}};return T.extend(t,e)}slope(){return this.hideYAxis(),{chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!0,formatter(t,e){let s=e.w.config.series[e.seriesIndex].name;return t!==null?s+": "+t:""},background:{enabled:!1},offsetX:-5},grid:{xaxis:{lines:{show:!0}},yaxis:{lines:{show:!1}}},xaxis:{position:"top",labels:{style:{fontSize:14,fontWeight:900}},tooltip:{enabled:!1},crosshairs:{show:!1}},markers:{size:8,hover:{sizeOffset:1}},legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!0},stroke:{width:5,curve:"straight"}}}bar(){return{chart:{stacked:!1},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"square"},fill:{opacity:.85},legend:{markers:{shape:"square"}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}funnel(){return this.hideYAxis(),j(G({},this.bar()),{chart:{animations:{speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}pyramid(){return this.funnel()}gauge(){let t=this.radialBar();return j(G({},t),{plotOptions:{radialBar:{startAngle:-135,endAngle:135,hollow:{margin:0,size:"60%"},track:{background:"#e7e7e7",strokeWidth:"100%",margin:5},dataLabels:{name:{show:!1},value:{show:!0,fontSize:"32px",fontWeight:600,offsetY:8}}}}})}histogram(){var t,e,s,i;let a=Array.isArray((t=this.opts)==null?void 0:t.series)&&this.opts.series.length>1&&((i=(s=(e=this.opts)==null?void 0:e.plotOptions)==null?void 0:s.histogram)==null?void 0:i.overlap)!==!1;return j(G({},this.bar()),{chart:{stacked:!1,zoom:{enabled:!1},animations:{animateGradually:{enabled:!1}}},plotOptions:{bar:{columnWidth:"100%",borderRadius:0,dataLabels:{position:"top"}}},dataLabels:{enabled:!1},fill:a?{opacity:.65}:{},stroke:a?{show:!1}:{show:!0,width:1,colors:["#fff"]},xaxis:{type:"numeric",tooltip:{enabled:!1}},tooltip:{shared:a,intersect:!1,x:{formatter:(n,r)=>{var o,l;let c=(l=(o=r?.w)==null?void 0:o.hist
${h.name?h.name:"series-"+(e+1)}: <strong>${t.seriesData.series[e][s]}</strong>
</div>`:`<div class="apexcharts-tooltip-box apexcharts-tooltip-${t.config.chart.type}"><div>${i[0]}: <span class="value">`+n+`</span></div><div>${i[1]}: <span class="value">`+r+"</span></div>"+(o?`<div>${i[2]}: <span class="value">`+o+"</span></div>":"")+`<div>${i[3]}: <span class="value">`+l+`</span></div><div>${i[4]}: <span class="value">`+c+"</span></div></div>"}_getViolinTooltip(t,e,s){var i,a,n;let r=(i=t.violinData.seriesViolinMin[e])==null?void 0:i[s],o=(a=t.violinData.seriesViolinMax[e])==null?void 0:a[s],l=((n=t.violinData.seriesViolinPoints[e])==null?void 0:n[s])||[],c=t.config.series[e].name||"series-"+(e+1);return`<div class="apexcharts-tooltip-box apexcharts-tooltip-${t.config.chart.type}"><div class="apexcharts-tooltip-violin-name">${c}</div><div>Min: <span class="value">${r}</span></div><div>Max: <span class="value">${o}</span></div><div>Observations: <span class="value">${l.length}</span></div></div>`}},se=class{constructor(t){this.opts=t}init({responsiveOverride:t}){var e,s,i,a,n,r,o,l;let c=this.opts,h=new wt,d=new Lt(c);c=this.normalizeAliasedChartType(c),this.chartType=c.chart.type,c=this.extendYAxis(c),c=this.extendAnnotations(c);let f=h.init(),g={};if(c&&typeof c=="object"){let m=Lt.forType(c);(e=c.chart.brush)!=null&&e.enabled&&(m=d.brush(m)),(i=(s=c.plotOptions)==null?void 0:s.line)!=null&&i.isSlopeChart&&(m=d.slope()),c.chart.stacked&&c.chart.stackType==="100%"&&(c=d.stacked100(c)),(n=(a=c.plotOptions)==null?void 0:a.bar)!=null&&n.isDumbbell&&(c=d.dumbbell(c)),this.checkForDarkTheme(H.getApex()),this.checkForDarkTheme(c),c.xaxis=c.xaxis||H.getApex().xaxis||{},t||(c.xaxis.convertedCatToNumeric=!1),c=this.checkForCatToNumericXAxis(this.chartType,m,c),((r=c.chart.sparkline)!=null&&r.enabled||(l=(o=H.getApex().chart)==null?void 0:o.sparkline)!=null&&l.enabled)&&(m=d.sparkline(m)),g=T.extend(f,m)}let p=T.extend(g,H.getApex());return f=T.extend(p,c),f=this.handleUserInputErrors(f),f}normalizeAliasedChartType(t){if(!t||!t.chart)return t;let e=t.chart.type;return e!=="funnel"&&e!=="pyramid"&&e!=="gauge"&&e!=="waffle"&&e!=="histogram"||(t.chart.requestedType=e,e==="waffle"?(t.plotOptions=t.plotOptions||{},t.plotOptions.unit=t.plotOptions.unit||{},t.plotOptions.unit.layout==null&&(t.plotOptions.unit.layout="grid"),t.plotOptions.unit.shape==null&&(t.plotOptions.unit.shape="square"),t.chart.type="unit"):e==="funnel"||e==="pyramid"?(t.plotOptions=t.plotOptions||{},t.plotOptions.bar=t.plotOptions.bar||{},t.plotOptions.bar.isFunnel=!0,t.plotOptions.bar.horizontal=!0,t.chart.type="bar",e==="pyramid"?t.plotOptions.bar.isPyramid=!0:t.plotOptions.bar.isPyramid=!1):e==="gauge"?t.chart.type="radialBar":e==="histogram"&&(t.xaxis=t.xaxis||{},t.xaxis.type==null&&(t.xaxis.type="numeric"),t.chart.type="bar")),t}checkForCatToNumericXAxis(t,e,s){var i,a,n,r,o;let l=new Lt(s),c=(t==="bar"||t==="boxPlot"||t==="violin")&&((a=(i=s.plotOptions)==null?void 0:i.bar)==null?void 0:a.horizontal),h=t==="pie"||t==="polarArea"||t==="donut"||t==="radar"||t==="radialBar"||t==="heatmap"||t==="unit"||t==="sunburst",d=s.xaxis.type!=="datetime"&&s.xaxis.type!=="numeric",f=(t==="scatter"||t==="bubble")&&((o=(r=(n=s.plotOptions)==null?void 0:n.scatter)==null?void 0:r.jitter)==null?void 0:o.enabled),g=s.xaxis.tickPlacement?s.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return!c&&!h&&!f&&d&&g!=="between"&&(s=l.convertCatToNumeric(s)),s}extendYAxis(t,e){let s=new wt;(typeof t.yaxis>"u"||!t.yaxis||Array.isArray(t.yaxis)&&t.yaxis.length===0)&&(t.yaxis={});let i=H.getApex();t.yaxis.constructor!==Array&&i.yaxis&&i.yaxis.constructor!==Array&&(t.yaxis=T.extend(t.yaxis,i.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[T.extend(s.yAxis,t.yaxis)]:t.yaxis=T.extendArray(t.yaxis,s.yAxis);let a=!1;t.yaxis.forEach(r=>{r.logarithmic&&(a=!0)});let n=t.series;return e&&!n&&(n=e.config.series),a&&n.length!==t.yaxis.length&&n.length&&(t.yaxis=n.map((r,o)=>{if(r.name||(n[o].name=`series-${o+1}`),t.yaxis[o])return t.yaxis[o].seriesName=n[o].name,t.yaxis[o];{let l=T.extend(s.yAxis,t.yaxis[0]);return l.show=!1,l}})),a&&n.length>1&&n.length!==t.yaxis.length&&
${d} 0 0 0 ${f}
0 ${d} 0 0 ${f}
0 0 ${d} 0 ${f}
0 0 0 1 0
`,in:"SourceGraphic",result:"brightness"}),l.enabled&&this.addShadow(g,e,l,"brightness")}),l.noUserSpaceOnUse||(n=(a=t.filterer())==null?void 0:a.node)==null||n.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize((r=t.filterer())==null?void 0:r.node))}addShadow(t,e,s,i){var a;let n=this.w,{blur:r,top:o,left:l,color:c,opacity:h}=s;if(c=Array.isArray(c)?c[e]:c,((a=n.config.chart.dropShadow.enabledOnSeries)==null?void 0:a.length)>0&&n.config.chart.dropShadow.enabledOnSeries.indexOf(e)===-1)return t;t.offset({in:i,dx:l,dy:o,result:"offset"}),t.gaussianBlur({in:"offset",stdDeviation:r,result:"blur"}),t.flood({"flood-color":c,"flood-opacity":h,result:"flood"}),t.composite({in:"flood",in2:"blur",operator:"in",result:"shadow"}),t.merge(["shadow",i])}dropShadow(t,e,s=0){var i,a,n,r,o;let l=this.w;return t.unfilter&&t.unfilter(!0),T.isMsEdge()&&l.config.chart.type==="radialBar"||((i=l.config.chart.dropShadow.enabledOnSeries)==null?void 0:i.length)>0&&((a=l.config.chart.dropShadow.enabledOnSeries)==null?void 0:a.indexOf(s))===-1||t.filterWith&&(t.filterWith(c=>{this.addShadow(c,s,e,"SourceGraphic")}),e.noUserSpaceOnUse||(r=(n=t.filterer())==null?void 0:n.node)==null||r.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize((o=t.filterer())==null?void 0:o.node)),t}setSelectionFilter(t,e,s){let i=this.w;if(typeof i.interact.selectedDataPoints[e]<"u"&&i.interact.selectedDataPoints[e].indexOf(s)>-1){if(t.node.setAttribute("selected",!0),u.sliceOffsetOwnsActiveState(i))return;let a=i.config.states.active.filter;a.type!=="none"&&this.applyFilter(t,e,a.type,a.value)}}_scaleFilterSize(t){if(!t)return;(s=>{for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&t.setAttribute(i,s[i])})({width:"200%",height:"200%",x:"-50%",y:"-50%"})}},B=class u{constructor(t,e=null){this.w=t,this.ctx=e}roundPathCorners(t,e){t.indexOf("NaN")>-1&&(t="");function s(C,M,k){var L=M.x-C.x,E=M.y-C.y,D=Math.sqrt(L*L+E*E);return i(C,M,Math.min(1,k/D))}function i(C,M,k){return{x:C.x+(M.x-C.x)*k,y:C.y+(M.y-C.y)*k}}function a(C,M){C.length>2&&(C[C.length-2]=M.x,C[C.length-1]=M.y)}function n(C){return{x:parseFloat(C[C.length-2]),y:parseFloat(C[C.length-1])}}var r=t.split(/[,\s]/).reduce(function(C,M){var k=M.match(/^([a-zA-Z])(.+)/);return k?(C.push(k[1]),C.push(k[2])):C.push(M),C},[]),o=r.reduce(function(C,M){return parseFloat(M)==M&&C.length?C[C.length-1].push(M):C.push([M]),C},[]),l=[];if(o.length>1){var c=n(o[0]),h=null;o[o.length-1][0]=="Z"&&o[0].length>2&&(h=["L",c.x,c.y],o[o.length-1]=h),l.push(o[0]);for(var d=1;d<o.length;d++){var f=l[l.length-1],g=o[d],p=g==h?o[1]:o[d+1];if(p&&f&&f.length>2&&g[0]=="L"&&p.length>2&&p[0]=="L"){var m=n(f),b=n(g),x=n(p),_,w;_=s(b,m,e),w=s(b,x,e),a(g,_),g.origPoint=b,l.push(g);var y=i(_,b,.5),v=i(b,w,.5),A=["C",y.x,y.y,v.x,v.y,w.x,w.y];A.origPoint=b,l.push(A)}else l.push(g)}if(h){var S=n(l[l.length-1]);l.push(["Z"]),a(l[0],S)}}else l=o;return l.reduce(function(C,M){return C+M.join(" ")+" "},"")}drawLine(t,e,s,i,a="#a8a8a8",n=0,r=null,o="butt"){return this.w.dom.Paper.line().attr({x1:t,y1:e,x2:s,y2:i,stroke:a,"stroke-dasharray":n,"stroke-width":r,"stroke-linecap":o})}drawRect(t=0,e=0,s=0,i=0,a=0,n="#fefefe",r=1,o=null,l=null,c=0){let d=this.w.dom.Paper.rect();return d.attr({x:t,y:e,width:s>0?s:0,height:i>0?i:0,rx:a,ry:a,opacity:r,"stroke-width":o!==null?o:0,stroke:l!==null?l:"none","stroke-dasharray":c}),d.node.setAttribute("fill",n),d}drawPolygon(t,e="#e1e1e1",s=1,i="none"){return this.w.dom.Paper.polygon(t).attr({fill:i,stroke:e,"stroke-width":s})}drawCircle(t,e=null){let s=this.w;t<0&&(t=0);let i=s.dom.Paper.circle(t*2);return e!==null&&i.attr(e),i}drawPath({d:t="",stroke:e="#a8a8a8",strokeWidth:s=1,fill:i,fillOpacity:a=1,strokeOpacity:n=1,classes:r,strokeLinecap:o=null,strokeDashArray:l=0}){let c=this.w;return o===null&&(o=c.config.stroke.lineCap),(t.indexOf("undefined")>-1||t.indexOf("NaN")>-1)&&(t=`M 0 ${c.layout.gridHeight}`),c.dom.Paper.path(t).attr({fill:i,"fill-opacity":a,stroke:e,"stroke-opacity":n,"stroke-linecap":o,"stroke-width":s,"stroke-dasharray":l,class:r})}group(t=null){let s
L ${t+i} ${e+i}
L ${t-i} ${e+i}
Z`;break;case"square":case"rect":i=i/1.125,f=`M ${t-i} ${e-i}
L ${t+i} ${e-i}
L ${t+i} ${e+i}
L ${t-i} ${e+i}
Z`;break;case"diamond":i=i*1.05,f=`M ${t} ${e-i}
L ${t+i} ${e}
L ${t} ${e+i}
L ${t-i} ${e}
Z`;break;case"line":i=i/1.1,f=`M ${t-i} ${e}
L ${t+i} ${e}`;break;default:i=i*2,f=`M ${t}, ${e}
m -${i/2}, 0
a ${i/2},${i/2} 0 1,0 ${i},0
a ${i/2},${i/2} 0 1,0 -${i},0`;break}return f}drawMarkerShape(t,e,s,i,a){let n=this.drawPath({d:this.getMarkerPath(t,e,s,i),stroke:a.pointStrokeColor,strokeDashArray:a.pointStrokeDashArray,strokeWidth:a.pointStrokeWidth,fill:a.pointFillColor,fillOpacity:a.pointFillOpacity,strokeOpacity:a.pointStrokeOpacity});return n.attr({cx:t,cy:e,shape:a.shape,class:a.class?a.class:""}),n}drawMarker(t,e,s){t=t||0;let i=s.pSize||0;return T.isNumber(e)||(i=0,e=0),this.drawMarkerShape(t,e,s?.shape,i,G(G({},s),s.shape==="line"||s.shape==="plus"||s.shape==="cross"?{pointStrokeColor:s.pointFillColor,pointStrokeOpacity:s.pointFillOpacity}:{}))}pathMouseEnter(t,e){var s,i;let a=this.w,n=new at(this.w),r=parseInt((s=t.node.getAttribute("index"))!=null?s:"",10),o=parseInt((i=t.node.getAttribute("j"))!=null?i:"",10);if(!(isNaN(r)||isNaN(o))&&(typeof a.config.chart.events.dataPointMouseEnter=="function"&&a.config.chart.events.dataPointMouseEnter(e,this.ctx,{seriesIndex:r,dataPointIndex:o,w:a}),u._fireEvent(a,"dataPointMouseEnter",[e,this.ctx,{seriesIndex:r,dataPointIndex:o,w:a}]),!(a.config.states.active.filter.type!=="none"&&t.node.getAttribute("selected")==="true")&&!at.hoverOutlineOwnsHoverState(a)&&a.config.states.hover.filter.type!=="none"&&!a.interact.isTouchDevice)){let l=a.config.states.hover.filter;n.applyFilter(t,r,l.type,l.value)}}pathMouseLeave(t,e){var s,i;let a=this.w,n=new at(this.w),r=parseInt((s=t.node.getAttribute("index"))!=null?s:"",10),o=parseInt((i=t.node.getAttribute("j"))!=null?i:"",10);isNaN(r)||isNaN(o)||(typeof a.config.chart.events.dataPointMouseLeave=="function"&&a.config.chart.events.dataPointMouseLeave(e,this.ctx,{seriesIndex:r,dataPointIndex:o,w:a}),u._fireEvent(a,"dataPointMouseLeave",[e,this.ctx,{seriesIndex:r,dataPointIndex:o,w:a}]),!(a.config.states.active.filter.type!=="none"&&t.node.getAttribute("selected")==="true")&&(at.hoverOutlineOwnsHoverState(a)||a.config.states.hover.filter.type!=="none"&&n.getDefaultFilter(t,r)))}_clearAllDataPointSelections(t,e){let s=this.w;s.interact.selectedDataPoints=[];let i=s.dom.Paper.find(".apexcharts-series path:not(.apexcharts-decoration-element)"),a=s.dom.Paper.find(".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"),n=r=>{Array.prototype.forEach.call(r,o=>{o.node.setAttribute("selected","false"),t.getDefaultFilter(o,e)})};n(i),n(a)}_togglePointSelection(t,e,s,i){let a=this.w;if(t.node.getAttribute("selected")==="true"){t.node.setAttribute("selected","false");let n=a.interact.selectedDataPoints[s].indexOf(i);return n>-1&&a.interact.selectedDataPoints[s].splice(n,1),"false"}return!a.config.states.active.allowMultipleDataPointsSelection&&a.interact.selectedDataPoints.length>0&&this._clearAllDataPointSelections(e,s),t.node.setAttribute("selected","true"),typeof a.interact.selectedDataPoints[s]>"u"&&(a.interact.selectedDataPoints[s]=[]),a.interact.selectedDataPoints[s].push(i),"true"}_applyPointSelectionFilter(t,e,s,i){let a=this.w;if(!at.sliceOffsetOwnsActiveState(a)){if(i==="true"){let n=a.config.states.active.filter;if(n!=="none")e.applyFilter(t,s,n.type,n.value);else if(a.config.states.hover.filter!=="none"&&!a.interact.isTouchDevice){let r=a.config.states.hover.filter;e.applyFilter(t,s,r.type,r.value)}}else if(a.config.states.active.filter.type!=="none")if(a.config.states.hover.filter.type!=="none"&&!a.interact.isTouchDevice){let n=a.config.states.hover.filter;e.applyFilter(t,s,n.type,n.value)}else e.getDefaultFilter(t,s)}}pathMouseDown(t,e){var s,i;let a=this.w,n=new at(this.w),r=parseInt((s=t.node.getAttribute("index"))!=null?s:"",10),o=parseInt((i=t.node.getAttribute("j"))!=null?i:"",10);if(isNaN(r)||isNaN(o))return;let l=a.config.chart.link;if(!!!(l&&(typeof l.dimension=="function"||l.enabled))){let h=this._togglePointSelection(t,n,r,o);this._applyPointSelectionFilter(t,n,r,h)}typeof a.config.chart.events.dataPointSelection=="function"&&a.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:a.interact.selectedDataPoints,seriesIndex:r,dataPointIndex:o,w:a}),e&&u._fire
.apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='${e}'] path[j='${t}'],
.apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='${e}'] path[j='${t}'],
.apexcharts-violin-series .apexcharts-series[data\\:realIndex='${e}'] path[j='${t}'],
.apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='${e}'] path[j='${t}']`));let f=null,g=o.globals.barCanvasCoords;if(!d&&g&&(f=typeof e=="number"&&((s=g[e])==null?void 0:s[t])||null,!f)){for(let y in g)if((i=g[y])!=null&&i[t]){f=g[y][t];break}}let p=d?parseFloat((a=d.getAttribute("cx"))!=null?a:"0"):f?f.cx:0,m=d?parseFloat((n=d.getAttribute("cy"))!=null?n:"0"):f?f.cy:0,b=d?parseFloat((r=d.getAttribute("barWidth"))!=null?r:"0"):f?f.barWidth:0,x=l.getElGrid();if(!x)return;let _=x.getBoundingClientRect(),w=d&&(d.classList.contains("apexcharts-candlestick-area")||d.classList.contains("apexcharts-boxPlot-area"));if(o.axisFlags.isXNumeric){if(d&&!w){let y=this._datapointCenterXFromBars(t);y!=null?p=y:p=p-(c%2!==0?b/2:0)}d&&w&&(p=p-b/2)}else!o.globals.isBarHorizontal&&!f&&(p=l.xAxisTicksPositions[t-1]+l.dataPointsDividedWidth/2,isNaN(p)&&(p=l.xAxisTicksPositions[t]-l.dataPointsDividedWidth/2));if(o.globals.isBarHorizontal?m=m-l.tooltipRect.ttHeight:o.config.tooltip.followCursor?m=l.e.clientY-_.top-l.tooltipRect.ttHeight/2:m+l.tooltipRect.ttHeight+15>o.layout.gridHeight&&(m=o.layout.gridHeight),o.globals.isBarHorizontal||this.moveXCrosshairs(p),!l.fixedTooltip){if(o.globals.isBarHorizontal&&!o.config.tooltip.followCursor&&this.placeHorizontalSharedTooltip(t))return;this.moveTooltip(p,m||o.layout.gridHeight)}}_datapointCenterXFromBars(t){var e,s;let i=this.w,a=i.dom.baseEl.querySelectorAll(`.apexcharts-bar-series path[j='${t}'],.apexcharts-rangebar-series path[j='${t}']`);if(!a.length)return null;let n=1/0,r=-1/0;for(let o of a){let l=o.parentNode;if((s=(e=l?.classList)==null?void 0:e.contains)!=null&&s.call(e,"apexcharts-series-collapsed"))continue;let c=o.getBoundingClientRect();c.width===0&&c.height===0||(c.left<n&&(n=c.left),c.right>r&&(r=c.right))}return isFinite(n)?_t.screenXToPlotPx(i,(n+r)/2):null}placeHorizontalSharedTooltip(t){var e,s;let i=this.w,a=this.ttCtx,n=a.getElTooltip();if(!n)return!1;let r=a.getElGrid();if(!r)return!1;let o=r.getBoundingClientRect(),l=i.dom.baseEl.querySelectorAll(`.apexcharts-bar-series path[j='${t}'],.apexcharts-rangebar-series path[j='${t}'],.apexcharts-boxPlot-series path[j='${t}']`);if(!l.length)return!1;let c=1/0,h=-1/0,d=1/0,f=-1/0;for(let k of l){let L=k.parentNode;if((s=(e=L?.classList)==null?void 0:e.contains)!=null&&s.call(e,"apexcharts-series-collapsed"))continue;let E=k.getBoundingClientRect();E.width===0&&E.height===0||(E.left<c&&(c=E.left),E.right>h&&(h=E.right),E.top<d&&(d=E.top),E.bottom>f&&(f=E.bottom))}if(!isFinite(c))return!1;let g=a.tooltipRect.ttWidth||0,p=a.tooltipRect.ttHeight||0,m=(c+h)/2-o.left+i.layout.translateX,b=d-o.top+i.layout.translateY,x=f-o.top+i.layout.translateY,_=i.layout.translateY,w=i.layout.translateY+i.layout.gridHeight,y=i.layout.translateX,v=i.layout.translateX+i.layout.gridWidth,A="top",S=b-p-kt;if(S<_){let k=x+kt;k+p<=w&&(A="bottom",S=k)}let C=m-g/2;C<y&&(C=y),C+g>v&&(C=v-g);let M=Math.max(10,Math.min(g-10,m-C));return this.applyTooltipPosition(n,{x:C,y:S,placement:A,arrowY:null,arrowX:M}),!0}};function gc(u){let t=e=>`<svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">${e}</svg>`;switch(u){case"square":case"rect":return t('<rect x="1" y="1" width="10" height="10" rx="1" fill="currentColor"/>');case"line":return t('<rect x="0" y="5" width="12" height="2" rx="1" fill="currentColor"/>');case"diamond":return t('<path d="M6 0.5 L11.5 6 L6 11.5 L0.5 6 Z" fill="currentColor"/>');case"triangle":return t('<path d="M6 1 L11.2 10.5 L0.8 10.5 Z" fill="currentColor"/>');case"cross":return t('<path d="M2 2 L10 10 M10 2 L2 10" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>');case"plus":return t('<path d="M6 1 L6 11 M1 6 L11 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>');case"star":return t('<path d="M6 0.5 L7.5 4.4 L11.5 4.7 L8.4 7.2 L9.5 11.1 L6 8.9 L2.5 11.1 L3.6 7.2 L0.5 4.7 L4.5 4.4 Z" fill="currentColor"/>');case"sparkle":return t('<path d="M6 0.5 L7 5 L11.5 6 L7 7 L6 11.5 L5 7 L0.5 6 L5 5 Z" fill="currentColor"/>');default:return t('<circle cx="6" cy="6" r="5" fill="
2026-07-03 13:46:54 +00:00
0% {
opacity: 0
}
to {
opacity: 1
}
}
@keyframes resizeanim {
0%,
to {
opacity: 0
}
}
.apexcharts-canvas {
position: relative;
direction: ltr !important;
user-select: none;
/* Focus indicator colour. Themes override below. */
--apexcharts-focus-color: #008FFB;
}
/* Dark theme & high-contrast: brighter focus colour for sufficient contrast. */
.apexcharts-canvas .apexcharts-theme-dark,
.apexcharts-theme-dark.apexcharts-canvas {
--apexcharts-focus-color: #FFD500;
}
.apexcharts-canvas.apexcharts-high-contrast,
.apexcharts-high-contrast.apexcharts-canvas {
--apexcharts-focus-color: #FFFF00;
}
/* Visually-hidden aria-live status region (WCAG 4.1.3 Status Messages). */
.apexcharts-sr-status {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Respect OS-level reduced-motion preference (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce) {
.apexcharts-canvas *,
.apexcharts-canvas *::before,
.apexcharts-canvas *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
2026-07-03 13:46:54 +00:00
}
.apexcharts-canvas ::-webkit-scrollbar {
-webkit-appearance: none;
width: 6px
}
.apexcharts-canvas ::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0, 0, 0, .5);
box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)
}
.apexcharts-inner {
position: relative
}
.apexcharts-text tspan {
font-family: inherit
}
rect.legend-mouseover-inactive,
.legend-mouseover-inactive rect,
.legend-mouseover-inactive path,
.legend-mouseover-inactive circle,
.legend-mouseover-inactive line,
.legend-mouseover-inactive text.apexcharts-yaxis-title-text,
.legend-mouseover-inactive text.apexcharts-yaxis-label {
transition: .15s ease all;
opacity: .2
}
/* Linked Views (#4): per-mark crossfilter dim. Applied to individual data
marks (not whole series) whose x is outside the brushed range. Opacity is
overridable per chart via the --apx-cf-dim custom property. */
.apexcharts-crossfilter-dimmed {
transition: opacity .25s ease;
opacity: var(--apx-cf-dim, .2)
}
/* Linked Views (#4): default styling for the built-in crossfilter data table
(cf.dataTable). Deliberately light so host styles can override. */
.apexcharts-cf-table {
border-collapse: collapse;
width: 100%;
font-size: 13px;
}
.apexcharts-cf-table caption {
caption-side: bottom;
text-align: right;
padding: 6px 2px;
font-size: 12px;
opacity: .7
}
.apexcharts-cf-table th,
.apexcharts-cf-table td {
padding: 6px 10px;
text-align: left;
border-bottom: 1px solid rgba(0, 0, 0, .08)
}
.apexcharts-cf-table th {
font-weight: 600;
border-bottom-width: 2px
}
.apexcharts-cf-table tbody tr:hover {
background: rgba(99, 102, 241, .06)
}
/* Measure ruler (#18): measure / delta ruler.
Theme via these classes or the --apx-measure-* custom properties below
(config \`chart.measure.colors\` overrides both). The ruler group also carries
a direction class: apexcharts-measure-up | -down | -flat.
Element classes:
.apexcharts-measure-band shaded span band
.apexcharts-measure-vline vertical guide lines
.apexcharts-measure-line free-mode diagonal line
.apexcharts-measure-label-bg readout box .apexcharts-measure-label text
Colors are applied as SVG presentation attributes, so any rule you write on
these classes overrides them. */
.apexcharts-canvas {
--apx-measure-up: #16a34a;
--apx-measure-down: #dc2626;
--apx-measure-neutral: #64748b;
--apx-measure-guide: #94a3b8;
}
.apexcharts-measure-capture {
cursor: crosshair;
}
/* Radial Actions (#chrome): right-click context menu. Theme via these classes
or the --apx-menu-* custom properties. */
.apexcharts-canvas {
--apx-menu-bg: #ffffff;
--apx-menu-fg: #1e293b;
--apx-menu-border: #e2e8f0;
--apx-menu-hover: #f1f5f9;
--apx-menu-shadow: rgba(15, 23, 42, 0.18);
}
.apexcharts-context-menu {
min-width: 168px;
padding: 4px;
border-radius: 8px;
background: var(--apx-menu-bg);
border: 1px solid var(--apx-menu-border);
box-shadow: 0 6px 22px var(--apx-menu-shadow);
font-family: Helvetica, Arial, sans-serif;
font-size: 13px;
z-index: 20;
user-select: none;
}
.apexcharts-context-menu-item {
display: block;
width: 100%;
box-sizing: border-box;
text-align: left;
padding: 7px 12px;
border: 0;
border-radius: 5px;
background: transparent;
color: var(--apx-menu-fg);
font: inherit;
cursor: pointer;
}
.apexcharts-context-menu-item:hover,
.apexcharts-context-menu-item--active {
background: var(--apx-menu-hover);
}
.apexcharts-context-menu-item:focus {
outline: none;
}
/* Ink Layer (#7): the floating note editor card, opened by clicking an
ink-managed annotation. Theme via these classes or the --apx-ink-* vars. */
.apexcharts-canvas {
--apx-ink-card-bg: #ffffff;
--apx-ink-card-fg: #1e293b;
--apx-ink-card-border: #e2e8f0;
--apx-ink-card-hover: #f1f5f9;
--apx-ink-card-accent: #6366f1;
--apx-ink-card-shadow: rgba(15, 23, 42, 0.18);
}
.apexcharts-ink-card {
position: absolute;
z-index: 25;
display: flex;
flex-direction: column;
gap: 6px;
padding: 8px;
border-radius: 8px;
background: var(--apx-ink-card-bg);
border: 1px solid var(--apx-ink-card-border);
box-shadow: 0 6px 22px var(--apx-ink-card-shadow);
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
color: var(--apx-ink-card-fg);
user-select: none;
}
.apexcharts-ink-card-row {
display: flex;
align-items: center;
gap: 4px;
}
.apexcharts-ink-card input.apexcharts-ink-editor {
flex: 1 1 auto;
width: 150px;
min-width: 0;
box-sizing: border-box;
padding: 4px 6px;
font: inherit;
color: inherit;
background: transparent;
border: 1px solid var(--apx-ink-card-border);
border-radius: 5px;
}
.apexcharts-ink-card input.apexcharts-ink-editor:focus {
outline: none;
border-color: var(--apx-ink-card-accent);
}
.apexcharts-ink-btn {
flex: 0 0 auto;
width: 24px;
height: 24px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
border: 0;
border-radius: 5px;
background: transparent;
color: inherit;
font: inherit;
font-size: 12px;
line-height: 1;
cursor: pointer;
}
.apexcharts-ink-btn:hover,
.apexcharts-ink-btn--active {
background: var(--apx-ink-card-hover);
}
.apexcharts-ink-btn:focus-visible,
.apexcharts-ink-swatch:focus-visible {
outline: 2px solid var(--apx-ink-card-accent);
outline-offset: 1px;
}
.apexcharts-ink-btn--bold {
font-weight: 700;
}
.apexcharts-ink-btn--delete:hover {
color: #dc2626;
}
.apexcharts-ink-swatch {
flex: 0 0 auto;
width: 16px;
height: 16px;
padding: 0;
border: 1px solid rgba(100, 116, 139, 0.45);
border-radius: 50%;
cursor: pointer;
}
.apexcharts-ink-swatch--active {
box-shadow:
0 0 0 2px var(--apx-ink-card-bg),
0 0 0 4px var(--apx-ink-card-accent);
}
.apexcharts-ink-sep {
flex: 0 0 auto;
width: 1px;
height: 16px;
margin: 0 2px;
background: var(--apx-ink-card-border);
}
.apexcharts-ink-cardlabel {
flex: 0 0 auto;
font-size: 10px;
letter-spacing: 0.4px;
text-transform: uppercase;
opacity: 0.65;
margin-right: 2px;
}
.apexcharts-ink-marker-size {
flex: 0 0 auto;
min-width: 16px;
text-align: center;
font-variant-numeric: tabular-nums;
}
2026-07-03 13:46:54 +00:00
.apexcharts-legend-text {
padding-left: 15px;
margin-left: -15px;
}
.apexcharts-legend-series[role="button"]:focus {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 2px;
}
.apexcharts-legend-series[role="button"]:focus:not(:focus-visible) {
outline: none;
}
.apexcharts-legend-series[role="button"]:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 2px;
}
2026-07-03 13:46:54 +00:00
.apexcharts-series-collapsed {
opacity: 0
}
.apexcharts-canvas svg:focus:not(:focus-visible) {
outline: none;
}
/* Keyboard navigation focus indicator on SVG data elements.
SVG elements don't support CSS outline, so we use stroke. */
.apexcharts-bar-area.apexcharts-keyboard-focused,
.apexcharts-candlestick-area.apexcharts-keyboard-focused,
.apexcharts-boxPlot-area.apexcharts-keyboard-focused,
.apexcharts-rangebar-area.apexcharts-keyboard-focused,
.apexcharts-pie-area.apexcharts-keyboard-focused,
.apexcharts-heatmap-rect.apexcharts-keyboard-focused,
.apexcharts-treemap-rect.apexcharts-keyboard-focused {
stroke: var(--apexcharts-focus-color, #008FFB);
stroke-width: 2;
stroke-opacity: 1;
}
2026-07-03 13:46:54 +00:00
.apexcharts-tooltip {
--apx-tt-bg: #ffffff;
/* Shared by the body and the arrow's two outward facets, so the
* hairline reads as one continuous outline around the whole shape.
* Keep it strong enough to survive on its own: the shadow below is
* elevation, not edge definition. */
--apx-tt-border: rgba(15, 23, 42, 0.12);
/* Elevation, in three layers: a tight contact shadow that anchors the
* bottom edge, a directional key shadow for the lift, and a wide
* ambient one that grounds the whole box. Each is weaker and more
* diffuse than the last.
*
* A tooltip is unusual in that it floats over *data*, so reach costs
* more than it does on a page: every pixel the shadow travels tints a
* bar or a line the reader is trying to compare. These numbers are
* tuned to keep the near-edge contrast that reads as elevation while
* dropping the long low haze that only muddies the plot.
*
* Note there is deliberately no \`0 0 0 1px\` ring layer. That used to
* stand in for edge definition back when --apx-tt-border was barely
* visible; now that the border is a real hairline (and the arrow
* shares it) a ring only double-draws the outline, and being spread
* rather than offset it leaked ink upward too, flattening the lift.
*
* \`--apx-tt-shadow-dir\` flips the whole stack's Y in one place \u2014 see
* the \`[data-placement="bottom"]\` rule further down. */
--apx-tt-shadow-dir: 1;
--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(15, 23, 42, 0.06), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(15, 23, 42, 0.10), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(15, 23, 42, 0.14);
--apx-tt-arrow-bg: var(--apx-tt-bg);
--apx-tt-color: #0f172a;
--apx-tt-color-muted: rgba(15, 23, 42, 0.55);
border-radius: 8px;
background: var(--apx-tt-bg);
border: 1px solid var(--apx-tt-border);
box-shadow: var(--apx-tt-shadow);
color: var(--apx-tt-color);
2026-07-03 13:46:54 +00:00
cursor: default;
font-size: 13px;
left: 0;
top: 0;
2026-07-03 13:46:54 +00:00
opacity: 0;
pointer-events: none;
position: absolute;
display: flex;
flex-direction: column;
padding: 2px 0;
2026-07-03 13:46:54 +00:00
white-space: nowrap;
z-index: 12;
transition: opacity .12s ease
2026-07-03 13:46:54 +00:00
}
/* While the tooltip is visible, smoothly animate position changes
* between data points. Kept short (160 ms) and ease-out so it stays
* responsive \u2014 too long would feel laggy when sweeping across many
* points fast. The position transition is only attached after the
* first paint (Position.applyTooltipPosition flips \`data-positioned\`
* once the tooltip has been placed) so the *first* show doesn't slide
* the tooltip in from the previously-stale (0,0) coordinates. */
2026-07-03 13:46:54 +00:00
.apexcharts-tooltip.apexcharts-active {
opacity: 1;
transition: opacity .12s ease
}
.apexcharts-tooltip.apexcharts-active[data-positioned="true"] {
transition: opacity .12s ease, left .16s ease-out, top .16s ease-out
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip.apexcharts-theme-light {
/* defaults already set above; class kept for backward-compat selectors */
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip.apexcharts-theme-dark {
--apx-tt-bg: #1c1c1f;
--apx-tt-border: rgba(255, 255, 255, 0.16);
/* Dark needs more alpha than light to register at all, but not as much
* as it used to: the light rim above now carries the edge, so the
* shadow is free to be pure elevation instead of doubling as an
* outline. Same geometry as light, heavier ink. */
--apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(0, 0, 0, 0.24), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(0, 0, 0, 0.30), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(0, 0, 0, 0.38);
--apx-tt-color: #f3f4f6;
--apx-tt-color-muted: rgba(243, 244, 246, 0.55);
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip * {
font-family: inherit
}
/* Point-annotation hover tooltip (apexcharts/apexcharts.js#2424). Reuses the
* glass body/border/shadow from \`.apexcharts-tooltip\` but holds free-form
* content, so it needs its own padding, wrapping and a sane max width. */
.apexcharts-tooltip.apexcharts-annotation-tooltip {
padding: 6px 10px;
max-width: 240px;
white-space: normal;
line-height: 1.4;
pointer-events: none;
z-index: 13
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip-title {
padding: 8px 12px 4px;
font-size: 12px;
font-weight: 600;
letter-spacing: 0.01em;
color: var(--apx-tt-color-muted);
background: transparent;
border-bottom: none;
margin-bottom: 0
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
2026-07-03 13:46:54 +00:00
.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
background: transparent;
border-bottom: none
}
/* \`fillSeriesColor\`: each series-group already paints itself with the
* series colour. Drop the glass body entirely (transparent bg, no
* border, no backdrop-filter, no padding) and clip the coloured
* series-group(s) to the tooltip's rounded corners so they fill the
* shell edge-to-edge. Text inside the coloured group is forced to
* white for contrast. */
.apexcharts-tooltip.apexcharts-tooltip-fill-series {
background: transparent;
-webkit-backdrop-filter: none;
backdrop-filter: none;
border: none;
padding: 0;
overflow: hidden;
color: #fff
}
.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-title {
background: rgba(0, 0, 0, 0.22);
color: #fff;
opacity: 1;
padding: 6px 12px
}
.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-series-group {
color: #fff
}
/* Arrow connector \u2014 a 45\xB0-rotated square straddling the body's edge, so
* the body's 1px border runs continuously out across the arrow and back.
* The two facets that face away from the tooltip carry the border; the
* two that face into it carry none, and the square's opaque fill covers
* the segment of the body's own border it sits on, hiding the seam.
*
* This is why it's a rotated square and not a triangle: \`clip-path\`
* erases \`border\` and \`box-shadow\` along with everything outside the
* polygon, which left \`filter: drop-shadow\` as the only way to suggest
* an edge \u2014 and a drop-shadow can only ever blur one, never draw a
* hairline. Nothing here needs a filter.
*
* Geometry: a square of side S rotated 45\xB0 reaches S/\u221A2 from its centre
* to each corner, so S = 10px gives the ~7px tip overhang that
* ARROW_TIP_OVERHANG assumes (tooltip/constants.js) over a ~14px base.
* The offsets park the square's *centre* 1px outside the padding box
* (-6px = -1px border - 10px/2), i.e. exactly on the body's border line,
* so the two borders meet end to end instead of overlapping or gapping.
* \`box-sizing\` must be border-box or the bordered sides would grow the
* square asymmetrically and knock its centre off that line. */
.apexcharts-tooltip-arrow {
position: absolute;
box-sizing: border-box;
width: 10px;
height: 10px;
background: var(--apx-tt-arrow-bg);
transform: rotate(45deg);
pointer-events: none;
top: calc(var(--apx-tt-arrow-y, 50%) - 5px)
}
/* Which two sides face outward depends on the placement. Under
* \`rotate(45deg)\` the square's bottom-left corner swings to the left,
* top-right to the right, top-left to the top and bottom-right to the
* bottom \u2014 so the pair of borders below is always the two sharing the
* corner that ends up as the tip. */
.apexcharts-tooltip[data-placement="right"] .apexcharts-tooltip-arrow {
left: -6px;
border-left: 1px solid var(--apx-tt-border);
border-bottom: 1px solid var(--apx-tt-border)
}
.apexcharts-tooltip[data-placement="left"] .apexcharts-tooltip-arrow {
right: -6px;
border-top: 1px solid var(--apx-tt-border);
border-right: 1px solid var(--apx-tt-border)
}
/* Vertical arrow variants: tooltip is above/below the data point and the
* arrow points down/up. The base rule above uses \`--apx-tt-arrow-y\` for
* left/right placement; for top/bottom we centre on \`--apx-tt-arrow-x\`
* instead (set by applyTooltipPosition). */
.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow,
.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
top: auto;
left: calc(var(--apx-tt-arrow-x, 50%) - 5px)
}
.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow {
bottom: -6px;
border-right: 1px solid var(--apx-tt-border);
border-bottom: 1px solid var(--apx-tt-border)
}
.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
top: -6px;
border-top: 1px solid var(--apx-tt-border);
border-left: 1px solid var(--apx-tt-border)
}
/* When the tooltip is flipped below the data point, the default
* downward-biased shadow leaves its top edge undefined. Negating the
* direction casts the whole elevation upward instead, so the shadow
* falls between the tooltip and the mark above it. One multiplier flips
* all three layers together; the arrow needs no counterpart, since its
* border doesn't depend on light direction. */
.apexcharts-tooltip[data-placement="bottom"] {
--apx-tt-shadow-dir: -1
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip-text-goals-value,
.apexcharts-tooltip-text-y-value,
.apexcharts-tooltip-text-z-value {
display: inline-block;
margin-left: 5px;
font-weight: 600
}
.apexcharts-tooltip-text-goals-label:empty,
.apexcharts-tooltip-text-goals-value:empty,
.apexcharts-tooltip-text-y-label:empty,
.apexcharts-tooltip-text-y-value:empty,
.apexcharts-tooltip-text-z-value:empty,
.apexcharts-tooltip-title:empty {
display: none
}
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
padding: 6px 0 5px
}
.apexcharts-tooltip-goals-group,
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
display: flex
}
.apexcharts-tooltip-text-goals-label:not(:empty),
.apexcharts-tooltip-text-goals-value:not(:empty) {
margin-top: -6px
}
.apexcharts-tooltip-marker {
display: inline-flex;
align-items: center;
justify-content: center;
2026-07-03 13:46:54 +00:00
position: relative;
width: 12px;
height: 12px;
margin-right: 6px;
2026-07-03 13:46:54 +00:00
vertical-align: middle;
color: inherit;
}
.apexcharts-tooltip-marker svg {
2026-07-03 13:46:54 +00:00
width: 100%;
height: 100%;
display: block;
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip-series-group {
padding: 4px 12px;
2026-07-03 13:46:54 +00:00
display: none;
gap: 8px;
2026-07-03 13:46:54 +00:00
text-align: left;
justify-content: left;
align-items: center
}
.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
opacity: 1
}
.apexcharts-tooltip-series-group.apexcharts-active:last-child,
2026-07-03 13:46:54 +00:00
.apexcharts-tooltip-series-group:last-child {
padding-bottom: 8px
2026-07-03 13:46:54 +00:00
}
.apexcharts-tooltip-y-group {
padding: 6px 0 5px
}
.apexcharts-custom-tooltip,
.apexcharts-tooltip-box {
padding: 4px 8px
}
.apexcharts-tooltip-boxPlot {
display: flex;
flex-direction: column-reverse
}
.apexcharts-tooltip-box>div {
margin: 4px 0
}
.apexcharts-tooltip-box span.value {
font-weight: 700
}
.apexcharts-tooltip-rangebar {
padding: 5px 8px
}
.apexcharts-tooltip-rangebar .category {
font-weight: 600;
color: #777
}
.apexcharts-tooltip-rangebar .series-name {
font-weight: 700;
display: block;
margin-bottom: 5px
}
/* X/Y axis tooltips \u2014 small popovers that label the crosshair on the
* axes. Restyled to match the modern data-tooltip palette: solid white
* body with a subtle border + soft drop-shadow, smaller font, rounded
* corners. The arrows still use the CSS border-triangle technique
* (cheap, crisp at small sizes); their colours flow from CSS variables
* so light/dark themes only need one override per axis. */
2026-07-03 13:46:54 +00:00
.apexcharts-xaxistooltip,
.apexcharts-yaxistooltip {
--apx-axt-bg: #ffffff;
--apx-axt-border: rgba(15, 23, 42, 0.08);
--apx-axt-color: #0f172a;
--apx-axt-shadow: 0 4px 12px -4px rgba(15, 23, 42, 0.18), 0 1px 3px -1px rgba(15, 23, 42, 0.12);
2026-07-03 13:46:54 +00:00
opacity: 0;
pointer-events: none;
color: var(--apx-axt-color);
font-size: 12px;
font-weight: 500;
2026-07-03 13:46:54 +00:00
text-align: center;
border-radius: 6px;
2026-07-03 13:46:54 +00:00
position: absolute;
z-index: 10;
background: var(--apx-axt-bg);
border: 1px solid var(--apx-axt-border);
box-shadow: var(--apx-axt-shadow)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip.apexcharts-theme-dark,
.apexcharts-yaxistooltip.apexcharts-theme-dark {
--apx-axt-bg: #1c1c1f;
--apx-axt-border: rgba(255, 255, 255, 0.1);
--apx-axt-color: #f3f4f6;
--apx-axt-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.55), 0 1px 3px -1px rgba(0, 0, 0, 0.45)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip {
padding: 4px 8px;
transition: .15s ease all
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip:after,
.apexcharts-xaxistooltip:before {
left: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
/* :before paints the 1px border outline of the triangle (slightly larger
* than :after); :after sits inside and paints the fill \u2014 leaves a 1px
* ring of :before visible at the edges. */
2026-07-03 13:46:54 +00:00
.apexcharts-xaxistooltip:after {
border-color: transparent;
border-width: 5px;
margin-left: -5px
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip:before {
border-color: transparent;
border-width: 6px;
margin-left: -6px
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip-bottom:after,
.apexcharts-xaxistooltip-bottom:before {
bottom: 100%
}
.apexcharts-xaxistooltip-top:after,
.apexcharts-xaxistooltip-top:before {
top: 100%
}
.apexcharts-xaxistooltip-bottom:after {
border-bottom-color: var(--apx-axt-bg)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip-bottom:before {
border-bottom-color: var(--apx-axt-border)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip-top:after {
border-top-color: var(--apx-axt-bg)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip-top:before {
border-top-color: var(--apx-axt-border)
2026-07-03 13:46:54 +00:00
}
.apexcharts-xaxistooltip.apexcharts-active {
opacity: 1;
transition: .15s ease all
}
.apexcharts-yaxistooltip {
padding: 3px 8px
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip:after,
.apexcharts-yaxistooltip:before {
top: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none
}
.apexcharts-yaxistooltip:after {
border-color: transparent;
border-width: 5px;
margin-top: -5px
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip:before {
border-color: transparent;
border-width: 6px;
margin-top: -6px
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip-left:after,
.apexcharts-yaxistooltip-left:before {
left: 100%
}
.apexcharts-yaxistooltip-right:after,
.apexcharts-yaxistooltip-right:before {
right: 100%
}
.apexcharts-yaxistooltip-left:after {
border-left-color: var(--apx-axt-bg)
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip-left:before {
border-left-color: var(--apx-axt-border)
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip-right:after {
border-right-color: var(--apx-axt-bg)
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip-right:before {
border-right-color: var(--apx-axt-border)
2026-07-03 13:46:54 +00:00
}
.apexcharts-yaxistooltip.apexcharts-active {
opacity: 1
}
.apexcharts-yaxistooltip-hidden {
display: none
}
.apexcharts-xcrosshairs,
.apexcharts-ycrosshairs {
pointer-events: none;
opacity: 0;
transition: .15s ease all
}
.apexcharts-xcrosshairs.apexcharts-active,
.apexcharts-ycrosshairs.apexcharts-active {
opacity: 1;
transition: .15s ease all
}
.apexcharts-ycrosshairs-hidden {
opacity: 0
}
.apexcharts-selection-rect {
cursor: move
}
.svg_select_shape {
stroke-width: 1;
stroke-dasharray: 10 10;
stroke: black;
stroke-opacity: 0.1;
pointer-events: none;
fill: none;
}
.svg_select_handle {
stroke-width: 3;
stroke: black;
fill: none;
}
.svg_select_handle_r {
cursor: e-resize;
}
.svg_select_handle_l {
cursor: w-resize;
}
.apexcharts-svg.apexcharts-zoomable.hovering-zoom {
cursor: crosshair
}
.apexcharts-svg.apexcharts-zoomable.hovering-pan {
cursor: move
}
.apexcharts-menu-icon,
.apexcharts-measure-icon,
2026-07-03 13:46:54 +00:00
.apexcharts-pan-icon,
.apexcharts-reset-icon,
.apexcharts-selection-icon,
.apexcharts-toolbar-custom-icon,
.apexcharts-zoom-icon,
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
cursor: pointer;
/* WCAG 2.5.8 Target Size (Minimum): 24\xD724 CSS px hit target. */
width: 26px;
height: 24px;
2026-07-03 13:46:54 +00:00
line-height: 24px;
color: #6e8192;
text-align: center;
/* Reset native <button> chrome \u2014 these are styled via SVG icons. */
padding: 0;
margin: 0;
background: transparent;
border: 0;
border-radius: 5px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: background-color .12s ease, color .12s ease;
2026-07-03 13:46:54 +00:00
}
.apexcharts-menu-icon svg,
.apexcharts-measure-icon svg,
.apexcharts-pan-icon svg,
2026-07-03 13:46:54 +00:00
.apexcharts-reset-icon svg,
.apexcharts-selection-icon svg,
2026-07-03 13:46:54 +00:00
.apexcharts-zoom-icon svg,
.apexcharts-zoomin-icon svg,
.apexcharts-zoomout-icon svg {
width: 18px;
height: 18px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}
.apexcharts-theme-dark .apexcharts-menu-icon,
.apexcharts-theme-dark .apexcharts-measure-icon,
.apexcharts-theme-dark .apexcharts-pan-icon,
.apexcharts-theme-dark .apexcharts-reset-icon,
.apexcharts-theme-dark .apexcharts-selection-icon,
.apexcharts-theme-dark .apexcharts-toolbar-custom-icon,
.apexcharts-theme-dark .apexcharts-zoom-icon,
.apexcharts-theme-dark .apexcharts-zoomin-icon,
.apexcharts-theme-dark .apexcharts-zoomout-icon {
color: #d4d6dc
}
.apexcharts-canvas .apexcharts-measure-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-pan-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected {
background: rgba(0, 143, 251, 0.12);
color: #008ffb
}
.apexcharts-theme-light .apexcharts-menu-icon:hover,
.apexcharts-theme-light .apexcharts-measure-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-reset-icon:hover,
.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoomin-icon:hover,
.apexcharts-theme-light .apexcharts-zoomout-icon:hover {
background: rgba(15, 23, 42, 0.06);
color: #1f2937
}
.apexcharts-theme-dark .apexcharts-menu-icon:hover,
.apexcharts-theme-dark .apexcharts-measure-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-reset-icon:hover,
.apexcharts-theme-dark .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoomin-icon:hover,
.apexcharts-theme-dark .apexcharts-zoomout-icon:hover {
background: rgba(255, 255, 255, 0.08);
color: #fff
2026-07-03 13:46:54 +00:00
}
.apexcharts-menu-icon,
.apexcharts-selection-icon {
position: relative
}
.apexcharts-toolbar {
position: absolute;
z-index: 11;
display: inline-flex;
align-items: center;
gap: 1px;
padding: 3px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.apexcharts-theme-dark .apexcharts-toolbar {
background: rgba(28, 28, 31, 0.82);
2026-07-03 13:46:54 +00:00
}
.apexcharts-menu {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
2026-07-03 13:46:54 +00:00
position: absolute;
top: calc(100% + 4px);
border: 1px solid rgba(15, 23, 42, 0.08);
border-radius: 8px;
padding: 4px;
right: 0;
2026-07-03 13:46:54 +00:00
opacity: 0;
min-width: 120px;
transition: opacity .15s ease, transform .15s ease;
transform: translateY(-2px);
pointer-events: none;
box-shadow: 0 4px 16px -4px rgba(15, 23, 42, 0.12), 0 2px 4px -1px rgba(15, 23, 42, 0.06)
2026-07-03 13:46:54 +00:00
}
.apexcharts-menu.apexcharts-menu-open {
opacity: 1;
transform: translateY(0);
pointer-events: all
2026-07-03 13:46:54 +00:00
}
.apexcharts-menu-item {
padding: 6px 9px;
2026-07-03 13:46:54 +00:00
font-size: 12px;
border-radius: 5px;
2026-07-03 13:46:54 +00:00
cursor: pointer
}
.apexcharts-theme-light .apexcharts-menu-item:hover {
background: rgba(15, 23, 42, 0.06)
2026-07-03 13:46:54 +00:00
}
.apexcharts-theme-dark .apexcharts-menu {
background: rgba(28, 28, 31, 0.92);
border-color: rgba(255, 255, 255, 0.08);
color: #f3f4f6;
box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.4)
}
.apexcharts-theme-dark .apexcharts-menu-item:hover {
background: rgba(255, 255, 255, 0.08)
2026-07-03 13:46:54 +00:00
}
@media screen and (min-width:768px) {
.apexcharts-canvas:hover .apexcharts-toolbar {
opacity: 1
}
}
/* Toolbar keyboard accessibility: show toolbar when any button inside it is focused */
.apexcharts-toolbar:focus-within {
opacity: 1
}
/* Focus indicator for toolbar icon buttons */
.apexcharts-menu-icon:focus-visible,
.apexcharts-measure-icon:focus-visible,
.apexcharts-pan-icon:focus-visible,
.apexcharts-reset-icon:focus-visible,
.apexcharts-selection-icon:focus-visible,
.apexcharts-toolbar-custom-icon:focus-visible,
.apexcharts-zoom-icon:focus-visible,
.apexcharts-zoomin-icon:focus-visible,
.apexcharts-zoomout-icon:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: 1px;
border-radius: 5px
}
/* Focus indicator for hamburger menu items */
.apexcharts-menu-item:focus-visible {
outline: 2px solid var(--apexcharts-focus-color, #008FFB);
outline-offset: -2px;
background: #eee
}
2026-07-03 13:46:54 +00:00
.apexcharts-canvas .apexcharts-element-hidden,
.apexcharts-datalabel.apexcharts-element-hidden,
.apexcharts-hide .apexcharts-series-points {
opacity: 0;
}
.apexcharts-hidden-element-shown {
opacity: 1;
transition: 0.25s ease all;
}
.apexcharts-datalabel,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value,
.apexcharts-datalabels,
.apexcharts-pie-label,
.apexcharts-pie-name-label,
.apexcharts-pie-name-label-group,
.apexcharts-pie-label-connector,
.apexcharts-unit-outer-label,
.apexcharts-unit-outer-label-group,
.apexcharts-unit-label-connector {
2026-07-03 13:46:54 +00:00
cursor: default;
pointer-events: none
}
.apexcharts-pie-label-connector,
.apexcharts-unit-label-connector {
fill: none
}
.apexcharts-pie-label-delay,
.apexcharts-unit-label-delay {
2026-07-03 13:46:54 +00:00
opacity: 0;
animation-name: opaque;
animation-duration: .3s;
animation-fill-mode: forwards;
animation-timing-function: ease
}
/* Slower than the pie's, on purpose: these come in while the dots are still
easing into place, so a longer fade reads as arriving WITH the crowd. */
.apexcharts-unit-label-delay {
animation-duration: .5s
}
2026-07-03 13:46:54 +00:00
.apexcharts-radialbar-label {
cursor: pointer;
}
.apexcharts-annotation-rect,
.apexcharts-area-series .apexcharts-area,
.apexcharts-gridline,
.apexcharts-line,
.apexcharts-point-annotation-label,
.apexcharts-radar-series path:not(.apexcharts-marker),
.apexcharts-radar-series polygon,
.apexcharts-toolbar svg,
.apexcharts-tooltip .apexcharts-marker,
.apexcharts-xaxis-annotation-label,
.apexcharts-yaxis-annotation-label,
.apexcharts-zoom-rect,
.no-pointer-events {
pointer-events: none
}
.apexcharts-tooltip-active .apexcharts-marker {
transition: .15s ease all
}
.apexcharts-radar-series .apexcharts-yaxis {
pointer-events: none;
}
.resize-triggers {
animation: 1ms resizeanim;
visibility: hidden;
opacity: 0;
height: 100%;
width: 100%;
overflow: hidden
}
.contract-trigger:before,
.resize-triggers,
.resize-triggers>div {
content: " ";
display: block;
position: absolute;
top: 0;
left: 0
}
.resize-triggers>div {
height: 100%;
width: 100%;
background: #eee;
overflow: auto
}
.contract-trigger:before {
overflow: hidden;
width: 200%;
height: 200%
}
.apexcharts-bar-goals-markers {
pointer-events: none
}
.apexcharts-bar-shadows {
pointer-events: none
}
.apexcharts-rangebar-goals-markers {
pointer-events: none
}
.apexcharts-drilldown-target {
cursor: pointer
}
.apexcharts-breadcrumb {
position: absolute;
z-index: 11;
display: inline-flex;
align-items: center;
gap: 2px;
font-size: 12px;
font-family: inherit;
padding: 2px 4px
}
.apexcharts-breadcrumb-item {
background: transparent;
border: none;
padding: 2px 6px;
border-radius: 3px;
font: inherit;
color: inherit;
cursor: pointer;
line-height: 1.2
}
.apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current) {
background: rgba(0, 0, 0, 0.08)
}
.apexcharts-breadcrumb-arrow {
margin-right: 4px;
font-weight: 600;
user-select: none
}
.apexcharts-breadcrumb-current {
cursor: default;
font-weight: 600;
opacity: 0.85
}
.apexcharts-breadcrumb-separator {
opacity: 0.5;
user-select: none
}
.apexcharts-theme-dark .apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current) {
background: rgba(255, 255, 255, 0.12)
}
.apexcharts-drilldown-loading {
position: absolute;
inset: 0;
z-index: 12;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
font-size: 13px;
font-family: inherit;
color: inherit;
background: rgba(255, 255, 255, 0.62);
/* The chart underneath stays interactive-looking but must not take clicks
while a level is resolving, or a second drill can start mid-fetch. */
cursor: progress
}
.apexcharts-drilldown-loading-spinner {
width: 26px;
height: 26px;
border-radius: 50%;
border: 2.5px solid rgba(0, 0, 0, 0.16);
border-top-color: rgba(0, 0, 0, 0.55);
animation: apexcharts-drilldown-spin 0.7s linear infinite
}
.apexcharts-drilldown-loading-text {
opacity: 0.8
}
.apexcharts-theme-dark .apexcharts-drilldown-loading {
background: rgba(30, 30, 30, 0.62)
}
.apexcharts-theme-dark .apexcharts-drilldown-loading-spinner {
border-color: rgba(255, 255, 255, 0.22);
border-top-color: rgba(255, 255, 255, 0.7)
}
@keyframes apexcharts-drilldown-spin {
to {
transform: rotate(360deg)
}
}
@media (prefers-reduced-motion: reduce) {
.apexcharts-drilldown-loading-spinner {
animation: apexcharts-drilldown-pulse 1.4s ease-in-out infinite
}
@keyframes apexcharts-drilldown-pulse {
0%, 100% {
opacity: 0.35
}
50% {
opacity: 1
}
}
}
2026-07-03 13:46:54 +00:00
.apexcharts-disable-transitions * {
transition: none !important;
}`,Ur=globalThis.console;function On(u){Ur.error(u)}function Bn(u){Ur.warn(u)}var Yn="APEX-",Pc=new Date("2027-07-31T00:00:00Z"),zn="__apex_license_v1__";function ke(){let u=globalThis,t=u[zn];return t||(t={key:null,listeners:new Set,result:null},u[zn]=t),t}var de=class{static get licenseKey(){return ke().key}static set licenseKey(u){ke().key=u}static get listeners(){return ke().listeners}static get validationResult(){return ke().result}static set validationResult(u){ke().result=u}static getKey(){return this.licenseKey}static getLicenseStatus(){return this.licenseKey?(this.validationResult=this.validateKey(this.licenseKey),this.validationResult):{expired:!1,signatureVerified:!1,valid:!1}}static isKeyValid(u){return!!u&&this.validateKey(u).valid}static isLicenseValid(){return this.getLicenseStatus().valid}static onChange(u){return this.listeners.add(u),()=>{this.listeners.delete(u)}}static setLicense(u){var t,e;if(!u)return this.licenseKey=null,void this.publish({expired:!1,signatureVerified:!1,valid:!1});let s=this.validateKey(u);s.valid||u===this.licenseKey||!((e=this.validationResult)!=null&&e.valid)?(this.licenseKey=u,this.publish(s),s.valid||On(`[Apex] ${s.message}`)):Bn(`[Apex] Ignoring license key: ${(t=s.message)!=null?t:"it is not valid"} A valid license is already active on this page.`)}static validateKey(u){let t=this.parseKey(u),e=this.validateStructure(u,t);if(!e.valid||!t?.signature)return e;let s=this.verdicts.get(u);return s===!1?{data:t.data,expired:!1,message:"Invalid license key. The license signature does not verify.",signatureVerified:!0,valid:!1}:(s===void 0&&this.verifySignature(u,t,e),j(G({},e),{signatureVerified:s===!0}))}static _resetSignatureState(){this.verdicts.clear(),this.verifying.clear(),this.warnedUnverifiable=!1,this.epoch++}static base64ToBytes(u){let t=u.replace(/-/g,"+").replace(/_/g,"/"),e=t.padEnd(4*Math.ceil(t.length/4),"="),s=globalThis.atob;if(typeof s!="function")throw new Error("no base64 decoder available");let i=s(e),a=new Uint8Array(i.length);for(let n=0;n<i.length;n++)a[n]=i.charCodeAt(n);return a}static canonicalPayload(u){let t=u.domains&&u.domains.length>0?u.domains.join(","):"";return`v1|${u.issueDate}|${u.expiryDate}|${u.plan}|${t}`}static notify(u){for(let t of this.listeners)try{t(u)}catch{}}static parseKey(u){if(typeof u!="string"||!u.startsWith(Yn))return null;let t=u.slice(5);if(!t)return null;try{let e=new TextDecoder().decode(this.base64ToBytes(t)),s=JSON.parse(e);return s.issueDate&&s.expiryDate&&s.plan?{data:{domains:Array.isArray(s.domains)?s.domains:void 0,expiryDate:s.expiryDate,issueDate:s.issueDate,plan:s.plan,valid:!0},signature:typeof s.sig=="string"&&s.sig?s.sig:null}:null}catch{return null}}static publish(u){this.validationResult=u,this.notify(u)}static validateStructure(u,t){let e=a=>({expired:!1,message:a,signatureVerified:!1,valid:!1});if(typeof u!="string"||!u.startsWith(Yn))return e('Invalid license key format. License key must start with "APEX-".');if(!t)return e("Invalid license key. Unable to decode license data.");let{data:s,signature:i}=t;if(!i&&new Date>=Pc)return e("This license key is in the old unsigned format, which is no longer accepted. Please request a replacement key.");if(new Date(s.expiryDate)<new Date)return{data:s,expired:!0,message:`License expired on ${s.expiryDate}. Please renew your license.`,signatureVerified:!1,valid:!1};if(s.domains&&s.domains.length>0){let a=typeof location>"u"?"":location.hostname;if(!s.domains.some((n=>a===n||a.endsWith(`.${n}`))))return{data:s,expired:!1,message:`License is not valid for this domain (${a}). Allowed domains: ${s.domains.join(", ")}.`,signatureVerified:!1,valid:!1}}return{data:s,expired:!1,signatureVerified:!1,valid:!0}}static verifySignature(u,t,e){return _r(this,null,function*(){var s;if(this.verifying.has(u)||this.verdicts.has(u))return;this.verifying.add(u);let i=this.epoch,a=(s=globalThis.crypto)==null?void 0:s.subtle;if(!a||this.publicKeysSpki.length===0)return this.verifying.delete(u),void(this.warnedUnverifiable||(this.warnedUnverifiable=!0,Bn(a?"[Apex] No license signing key i
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="200">
<text
x="50%"
y="50%"
dominant-baseline="middle"
text-anchor="middle"
font-family="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Arial, sans-serif"
font-size="18"
font-weight="600"
fill="rgba(134, 134, 134, 0.1)"
transform="rotate(-35, 100, 60)"
>${u}</text>
</svg>
`.trim())}")`}static erase(u){var t;(t=this.node(u))==null||t.remove()}static paint(u){let t=this.node(u);return t||(t=document.createElement("div"),t.setAttribute(this.WATERMARK_ATTR,""),u.appendChild(t)),this.applyStyles(t),typeof getComputedStyle=="function"&&getComputedStyle(u).position==="static"&&(u.style.position="relative"),t}static reconcile(){let u=Ht.isLicenseValid();for(let t of this.managed)t.isConnected?u?this.erase(t):this.paint(t):this.managed.delete(t)}static setManaged(u,t){t?.manage!==!1?this.track(u):this.managed.delete(u)}static track(u){this.managed.add(u),this.subscribed||(this.subscribed=!0,Ht.onChange((()=>{this.reconcile()})))}};Zt.WATERMARK_ATTR="data-apexcharts-watermark",Zt.WATERMARK_TEXT="APEXCHARTS",Zt.ATTR="data-apexcharts-watermark",Zt.CRITICAL_STYLES={bottom:"0",display:"block",left:"0",msUserSelect:"none",opacity:"1",pointerEvents:"none",position:"absolute",right:"0",top:"0",userSelect:"none",visibility:"visible",webkitUserSelect:"none",zIndex:"10000"},Zt.managed=new Set,Zt.subscribed=!1;var Fe=Zt,Rc=.05,Fc=.05,Ic=1/45;function Wn(u,t,e,s){return{value:u,velocity:0,target:u,stiffness:t,damping:e}}function Hn(u,t){if(t<=0)return Gn(u);let e=t;for(;e>0;){let s=Math.min(e,Ic),i=-u.stiffness*(u.value-u.target)-u.damping*u.velocity;u.velocity+=i*s,u.value+=u.velocity*s,e-=s}return!!Gn(u)&&(u.value=u.target,u.velocity=0,!0)}function $n(u,t){u.target=t}function Gn(u){var t,e;let s=(t=u.restVelocity)!=null?t:Rc,i=(e=u.restDisplacement)!=null?e:Fc;return Math.abs(u.velocity)<s&&Math.abs(u.value-u.target)<i}var Vn={crisp:[210,26],gentle:[120,20],snappy:[320,30]};function Nc(u){var t;return(t=Vn[u??"crisp"])!=null?t:Vn.crisp}var Ks="__apexcharts_crossfilters__";function Kt(u){if(!Number.isFinite(u))return u;let t=Number(u.toPrecision(12));return Object.is(t,-0)?0:t}function Jt(u){return typeof u=="number"&&Number.isFinite(u)}function Xc(u){if(typeof u=="function")return u;if(u&&typeof u=="object"){if(typeof u.sum=="string"){let t=u.sum;return e=>e.reduce(((s,i)=>s+(Number(i[t])||0)),0)}if(typeof u.avg=="string"){let t=u.avg;return e=>e.length?e.reduce(((s,i)=>s+(Number(i[t])||0)),0)/e.length:0}if(typeof u.min=="string"){let t=u.min;return e=>e.length?Math.min(...e.map((s=>Number(s[t])||0))):0}if(typeof u.max=="string"){let t=u.max;return e=>e.length?Math.max(...e.map((s=>Number(s[t])||0))):0}}return t=>t.length}function Js(u,t){return typeof t=="function"?u.slice().sort(t):t==="asc"?u.slice().sort(((e,s)=>e>s?1:e<s?-1:0)):t==="desc"?u.slice().sort(((e,s)=>e<s?1:e>s?-1:0)):u}function Oc(u,t){if(!Jt(u))return-1;let e=t.length-1;if(u<t[0]||u>t[e])return-1;if(u===t[e])return e-1;for(let s=0;s<e;s++)if(u>=t[s]&&u<t[s+1])return s;return-1}function Un(u){let t=[];for(let e=0;e<u.length-1;e++)t.push(Kt((u[e]+u[e+1])/2));return t}var We=class u{constructor(t,e){this.dims=new Map,this.listeners=new Map,this.id=t,this.records=Array.isArray(e)?e:[]}static store(){let t=globalThis;return t[Ks]||(t[Ks]=new Map),t[Ks]}static getOrCreate(t){if(!t||typeof t.id!="string")throw new Error("Crossfilter.getOrCreate requires an { id } string.");let e=u.store(),s=e.get(t.id);if(s)return t.records&&s.setRecords(t.records),s;let i=new u(t.id,t.records);return e.set(t.id,i),i}static get(t){return u.store().get(t)||null}setRecords(t){return this.records=Array.isArray(t)?t:[],this.dims.forEach((e=>this.recomputeDomain(e))),this.emit("records",this.state()),this.emit("change",this.state()),this}registerDimension(t,e){if(!e||typeof e.dimension!="function")throw new Error(`crossfilter.registerDimension("${t}") needs a dimension function.`);let s=e.type||(e.bins?"range":"category"),i={accessor:e.dimension,reducer:Xc(e.reduce),type:s,bins:e.bins,order:e.order,filter:null,labels:[],edges:null,xLabels:[],yLabels:[]};return this.dims.set(t,i),this.recomputeDomain(i),e.filter!=null&&this.setFilterOn(i,e.filter),this}hasDimension(t){return this.dims.has(t)}removeDimension(t){let e=this.dims.get(t),s=!!e&&this.hasFilter(e);return this.dims.delete(t),s&&this.emit("change",this.state()),this}recomputeDomain(t){if(t.type==="matrix"){l
`);if(!a)return;let n=document.createElementNS(et,"style");n.textContent=a,t.insertBefore(n,t.firstChild)}).catch(()=>{}):Promise.resolve()}inlineFontFaceUrls(t){let e=[],s=/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,i;for(;(i=s.exec(t))!==null;)i[2].startsWith("data:")||e.push(i[2]);return e.length?Promise.all(e.map(a=>this.fetchAsDataUri(a).then(n=>({url:a,dataUri:n})).catch(()=>({url:a,dataUri:null})))).then(a=>{let n=t,r=0;return a.forEach(({url:o,dataUri:l})=>{l&&(n=n.split(o).join(l),r++)}),r?n:null}):Promise.resolve(t.includes("data:")?t:null)}fetchAsDataUri(t){return typeof fetch!="function"||typeof btoa!="function"?Promise.reject(new Error("fetch unavailable")):fetch(t).then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status} for ${t}`);let s=e.headers.get("content-type")||"application/octet-stream";return e.arrayBuffer().then(i=>{let a=new Uint8Array(i),n="",r=32768;for(let o=0;o<a.length;o+=r)n+=String.fromCharCode.apply(null,a.subarray(o,o+r));return`data:${s};base64,${btoa(n)}`})})}getSvgString(t){return new Promise(e=>{let s=this.w,i=t||s.config.chart.toolbar.export.scale||s.config.chart.toolbar.export.width/s.globals.svgWidth;i||(i=1);let a=s.globals.svgWidth*i,n=s.globals.svgHeight*i,r=s.dom.elWrap.cloneNode(!0);r.style.width=a+"px",r.style.height=n+"px",this.inlineCanvasLayers(r),this.applyExportStyles(r);let o=new XMLSerializer().serializeToString(r),l=`
<svg xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
class="apexcharts-svg"
xmlns:data="ApexChartsNS"
transform="translate(0, 0)"
width="${s.globals.svgWidth}px" height="${s.globals.svgHeight}px">
<foreignObject width="100%" height="100%">
<div xmlns="http://www.w3.org/1999/xhtml" style="width:${a}px; height:${n}px;">
${o}
</div>
</foreignObject>
</svg>
`,c=this.svgStringToNode(l);i!==1&&this.scaleSvgNode(c,i),Promise.all([this.convertImagesToBase64(c),this.embedFonts(c)]).then(()=>{l=new XMLSerializer().serializeToString(c),e(l.replace(/&nbsp;/g,"&#160;"))})})}convertImagesToBase64(t){let e="http://www.w3.org/1999/xlink",s=t.getElementsByTagName("image"),i=Array.from(s).map(a=>{let n=a.getAttributeNS(e,"href"),r=a.getAttribute("href"),o=n||r;if(!o||o.startsWith("data:"))return Promise.resolve();let l=c=>{n&&a.setAttributeNS(e,"href",c),(r||!n)&&a.setAttribute("href",c)};return this.fetchAsDataUri(o).then(l).catch(()=>this.getBase64FromUrl(o).then(l).catch(c=>{console.error("Error converting image to base64:",c)}))});return Promise.all(i)}getBase64FromUrl(t){return H.isSSR()?Promise.resolve(t):new Promise((e,s)=>{let i=new Image;i.crossOrigin="Anonymous",i.onload=()=>{let a=document.createElement("canvas");a.width=i.width,a.height=i.height;let n=a.getContext("2d");n&&n.drawImage(i,0,0),e(a.toDataURL())},i.onerror=s,i.src=t})}svgUrl(){return new Promise(t=>{this.getSvgString().then(e=>{let s=new Blob([e],{type:"image/svg+xml;charset=utf-8"});t(URL.createObjectURL(s))})})}dataURI(t){return H.isSSR()?Promise.resolve({imgURI:""}):new Promise(e=>{let s=this.w,i=t?t.scale||t.width/s.globals.svgWidth:1,a=document.createElement("canvas");a.width=s.globals.svgWidth*i,a.height=parseInt(s.dom.elWrap.style.height,10)*i;let n=this.resolveExportBackground(),r=a.getContext("2d");r&&(r.fillStyle=n,r.fillRect(0,0,a.width,a.height),this.getSvgString(i).then(o=>{let l="data:image/svg+xml,"+encodeURIComponent(o),c=new Image;c.crossOrigin="anonymous",c.onload=()=>{r.drawImage(c,0,0);let h=a;if(h.msToBlob){let d=h.msToBlob();e({blob:d})}else{let d=a.toDataURL("image/png");e({imgURI:d})}},c.src=l}))})}exportToSVG(){this.svgUrl().then(t=>{this.triggerDownload(t,this.w.config.chart.toolbar.export.svg.filename,".svg")})}exportToPng(){let t=this.w.config.chart.toolbar.export.scale,e=this.w.config.chart.toolbar.export.width,s=t?{scale:t}:e?{width:e}:void 0;this.dataURI(s).then(({imgURI:i,blob:a})=>{a?navigator.msSaveOrOpenBlob(a,this.w.globals.chartID+".png"):this.triggerDownload(i,this.w.config.chart.toolbar.export.png.filename,".png")})}exportToCSV({series:t,fileName:e,columnDelimiter:s=",",lineDelimiter:i=`
`}){let a=this.w;t||(t=a.config.series);let n=[],r=[],o="",l="\uFEFF",c=a.seriesData.series.map((y,v)=>a.globals.collapsedSeriesIndices.indexOf(v)===-1?y:[]),h=y=>{if(y==null||T.isNumber(y))return y;let v=String(y);return/^[=+\-@\t\r]/.test(v)?`'${v}`:v},d=y=>typeof a.config.chart.toolbar.export.csv.categoryFormatter=="function"?a.config.chart.toolbar.export.csv.categoryFormatter(y):a.config.xaxis.type==="datetime"&&String(y).length>=10?new Date(y).toDateString():T.isNumber(y)?y:h(y.split(s).join("")),f=y=>typeof a.config.chart.toolbar.export.csv.valueFormatter=="function"?a.config.chart.toolbar.export.csv.valueFormatter(y):h(y),g=Math.max(...t.map(y=>y.data?y.data.length:0)),p=new Ye(this.w),m=new Ct(this.w,{theme:this.ctx.theme,timeScale:this.ctx.timeScale}),b=y=>{let v="";if(!a.globals.axisCharts)v=a.config.labels[y];else{if(a.config.xaxis.type==="category"||a.config.xaxis.convertedCatToNumeric)if(a.globals.isBarHorizontal){let A=a.formatters.yLabelFormatters[0],C=new ct(this.ctx.w).getActiveConfigSeriesIndex();v=A(a.labelData.labels[y],{seriesIndex:C,dataPointIndex:y,w:a})}else v=m.getLabel(a.labelData.labels,a.labelData.timescaleLabels,0,y).text;a.config.xaxis.type==="datetime"&&(a.config.xaxis.categories.length?v=a.config.xaxis.categories[y]:a.config.labels.length&&(v=a.config.labels[y]))}return v===null?"nullvalue":(Array.isArray(v)&&(v=v.join(" ")),T.isNumber(v)?v:v.split(s).join(""))},x=()=>[...Array(g)].map(()=>""),_=(y,v)=>{var A,S,C,M,k,L;if(n.length&&v===0&&r.push(n.join(s)),y.data){let E=y.data.length?y.data:x();for(let D=0;D<E.length;D++){n=[];let P=b(D);if(P!=="nullvalue"){if(P||(p.isFormatXY()?P=t[v].data[D].x:p.isFormat2DArray()&&(P=t[v].data[D]?t[v].data[D][0]:"")),v===0){n.push(d(P));for(let F=0;F<a.seriesData.series.length;F++){let R=p.isFormatXY()?(A=t[F].data[D])==null?void 0:A.y:c[F][D];n.push(f(R))}}(a.config.chart.type==="candlestick"||y.type&&y.type==="candlestick")&&(n.pop(),n.push(a.candleData.seriesCandleO[v][D]),n.push(a.candleData.seriesCandleH[v][D]),n.push(a.candleData.seriesCandleL[v][D]),n.push(a.candleData.seriesCandleC[v][D])),(a.config.chart.type==="boxPlot"||y.type&&y.type==="boxPlot")&&(n.pop(),n.push(a.candleData.seriesCandleO[v][D]),n.push(a.candleData.seriesCandleH[v][D]),n.push(a.candleData.seriesCandleM[v][D]),n.push(a.candleData.seriesCandleL[v][D]),n.push(a.candleData.seriesCandleC[v][D])),a.config.chart.type==="rangeBar"&&(n.pop(),n.push(a.rangeData.seriesRangeStart[v][D]),n.push(a.rangeData.seriesRangeEnd[v][D])),(a.config.chart.type==="violin"||y.type&&y.type==="violin")&&(n.pop(),n.push((S=a.violinData.seriesViolinMin[v])==null?void 0:S[D]),n.push((C=a.violinData.seriesViolinMax[v])==null?void 0:C[D]),n.push((L=(k=(M=a.violinData.seriesViolinPoints[v])==null?void 0:M[D])==null?void 0:k.length)!=null?L:0)),n.length&&r.push(n.join(s))}}}},w=()=>{let y=new Set,v={};t.forEach((A,S)=>{A?.data.forEach(C=>{let M,k;if(p.isFormatXY())M=C.x,k=C.y;else if(p.isFormat2DArray())M=C[0],k=C[1];else return;v[M]||(v[M]=Array(t.length).fill("")),v[M][S]=f(k),y.add(M)})}),n.length&&r.push(n.join(s)),Array.from(y).sort().forEach(A=>{let S=v[A];r.push([d(A),...S].join(s))})};n.push(a.config.chart.toolbar.export.csv.headerCategory),a.config.chart.type==="boxPlot"?(n.push("minimum"),n.push("q1"),n.push("median"),n.push("q3"),n.push("maximum")):a.config.chart.type==="candlestick"?(n.push("open"),n.push("high"),n.push("low"),n.push("close")):a.config.chart.type==="rangeBar"?(n.push("minimum"),n.push("maximum")):a.config.chart.type==="violin"?(n.push("minimum"),n.push("maximum"),n.push("observations")):t.map((y,v)=>{let A=(y.name?y.name:`series-${v}`)+"";a.globals.axisCharts&&n.push(A.split(s).join("")?A.split(s).join(""):`series-${v}`)}),a.globals.axisCharts||(n.push(a.config.chart.toolbar.export.csv.headerValue),r.push(n.join(s))),!a.globals.allSeriesHasEqualX&&a.globals.axisCharts&&!a.config.xaxis.categories.length&&!a.config.labels.length?w():t.map((y,v)=>{a.globals.axisCharts?_(y,v):(n=[],n.push(d(a.labelData.labels[v])),n.push(f(c[v])),r.push(n.join(s)))}),o+=r.join(i),this.triggerDownload
transform: scaleY(-1) translateY(-100%);
transform-origin: top;
transform-box: fill-box;
}
.apexcharts-flip-x {
transform: scaleX(-1);
transform-origin: center;
transform-box: fill-box;
}
.apexcharts-legend {
display: flex;
overflow: auto;
padding: 0 10px;
}
.apexcharts-legend.apexcharts-legend-group-horizontal {
flex-direction: column;
}
.apexcharts-legend-group {
display: flex;
}
.apexcharts-legend-group-vertical {
flex-direction: column-reverse;
}
.apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {
flex-wrap: wrap
}
.apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {
flex-direction: column;
bottom: 0;
}
.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {
justify-content: flex-start;
align-items: flex-start;
}
.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {
justify-content: center;
align-items: center;
}
.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {
justify-content: flex-end;
align-items: flex-end;
}
.apexcharts-legend-series {
cursor: pointer;
line-height: normal;
display: flex;
align-items: center;
}
.apexcharts-legend-text {
position: relative;
font-size: 14px;
}
.apexcharts-legend-text *, .apexcharts-legend-marker * {
pointer-events: none;
}
.apexcharts-legend-marker {
position: relative;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
margin-right: 1px;
}
.apexcharts-legend-series.apexcharts-no-click {
cursor: auto;
}
.apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {
display: none !important;
}
.apexcharts-inactive-legend {
opacity: 0.45;
} `,Uc=class{constructor(t){this.w=t.w,this.lgCtx=t}getLegendStyles(){if(H.isSSR())return null;let t=document.createElement("style");t.setAttribute("type","text/css");let e=this.w.config.chart.nonce;e&&t.setAttribute("nonce",e);let s=document.createTextNode(Vc);return t.appendChild(s),t}getLegendDimensions(){let e=this.w.dom.baseEl.querySelector(".apexcharts-legend");if(!e)return{clwh:0,clww:0};let{width:s,height:i}=e.getBoundingClientRect();return{clwh:i,clww:s}}appendToForeignObject(){var t;let e=this.getLegendStyles();this.w.config.chart.injectStyleSheet!==!1&&e&&((t=this.w.dom.elLegendForeign)==null||t.appendChild(e))}toggleDataSeries(t,e){var s,i,a;let n=this.w;if(n.globals.axisCharts||n.config.chart.type==="radialBar"){n.globals.resized=!0;let r=null,o=null;if(n.globals.risingSeries=[],n.globals.axisCharts){if(r=(s=Array.prototype.find.call(n.dom.baseEl.querySelectorAll(".apexcharts-series"),l=>l.getAttribute("data:realIndex")===String(t)))!=null?s:null,!r)return;o=parseInt((i=r.getAttribute("data:realIndex"))!=null?i:"",10)}else{if(r=n.dom.baseEl.querySelector(`.apexcharts-series[rel='${t+1}']`),!r)return;o=parseInt((a=r.getAttribute("rel"))!=null?a:"",10)-1}if(e?[{cs:n.globals.collapsedSeries,csi:n.globals.collapsedSeriesIndices},{cs:n.globals.ancillaryCollapsedSeries,csi:n.globals.ancillaryCollapsedSeriesIndices}].forEach(c=>{let h=c.cs,d=c.csi;this.riseCollapsedSeries(h,d,o)}):this.hideSeries({seriesEl:r,realIndex:o}),n.config.chart.accessibility.enabled){let l=n.dom.baseEl.querySelector(`.apexcharts-legend-series[rel="${t+1}"]`);if(l){let c=n.globals.collapsedSeriesIndices.includes(o)||n.globals.ancillaryCollapsedSeriesIndices.includes(o);l.setAttribute("aria-pressed",c?"true":"false");let h=l.querySelector(".apexcharts-legend-text"),d=h?h.textContent:n.seriesData.seriesNames[t],f=c?"hidden":"visible";l.setAttribute("aria-label",`${d}, ${f}. Press Enter or Space to toggle.`)}}}else{if(n.globals.resized=!0,n.globals.risingSeries=[],e)this.riseCollapsedSeries(n.globals.collapsedSeries,n.globals.collapsedSeriesIndices,t);else{let r=this.getSeriesAfterCollapsing({realIndex:t});this.lgCtx.updateSeries(r,n.config.chart.animations.dynamicAnimation.enabled)}if(n.config.chart.accessibility.enabled){let r=n.dom.baseEl.querySelector(`.apexcharts-legend-series[rel="${t+1}"]`);if(r){let o=n.globals.collapsedSeriesIndices.includes(t);r.setAttribute("aria-pressed",o?"true":"false");let l=r.querySelector(".apexcharts-legend-text"),c=l?l.textContent:n.seriesData.seriesNames[t],h=o?"hidden":"visible";r.setAttribute("aria-label",`${c}, ${h}. Press Enter or Space to toggle.`)}}}}_nonAxisSliceContainer(t){let e=this.w.config.chart.type;return(e==="pie"||e==="donut"||e==="polarArea"||e==="sunburst")&&t.length===1&&t[0]&&typeof t[0]=="object"&&Array.isArray(t[0].data)?t[0].data:t}_readSliceValue(t){return this.w.config.chart.type==="unit"&&t&&Array.isArray(t.data)?t.data:t&&typeof t=="object"?t.y:t}_writeSliceValue(t,e,s){let i=t[e];if(this.w.config.chart.type==="unit"&&i&&Array.isArray(i.data)){i.data=Array.isArray(s)?s:[];return}i&&typeof i=="object"?i.y=s:t[e]=s}getSeriesAfterCollapsing({realIndex:t}){var e,s;let i=this.w,a=i.globals,n=T.clone(i.config.series);if(a.axisCharts){let o=i.config.yaxis[a.seriesYAxisReverseMap[t]],l={index:t,data:n[t].data.slice(),type:n[t].type||i.config.chart.type,name:(a.seriesNames||[])[t]};if(o&&o.show&&o.showAlways)a.ancillaryCollapsedSeriesIndices.indexOf(t)<0&&(a.ancillaryCollapsedSeries.push(l),a.ancillaryCollapsedSeriesIndices.push(t));else if(a.collapsedSeriesIndices.indexOf(t)<0){a.collapsedSeries.push(l),a.collapsedSeriesIndices.push(t);let c=a.risingSeries.indexOf(t);a.risingSeries.splice(c,1)}}else if(a.collapsedSeriesIndices.indexOf(t)<0){let o=this._nonAxisSliceContainer(n);a.collapsedSeries.push({index:t,data:this._readSliceValue(o[t]),type:(s=(e=i.config.series[t])==null?void 0:e.type)!=null?s:"line",name:(a.seriesNames||[])[t]}),a.collapsedSeriesIndices.push(t)}let r=a.axisCharts?i.config.series.length:this._nonAxisSliceContainer(n).length;return a.allSeriesCollapsed=a.collapsedSer
<path d="M5 9 2 12l3 3"/>
<path d="M9 5l3-3 3 3"/>
<path d="M15 19l-3 3-3-3"/>
<path d="M19 9l3 3-3 3"/>
<path d="M2 12h20"/>
<path d="M12 2v20"/>
</svg>
`,Jc=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="7"/>
<path d="m21 21-4.3-4.3M8 11h6M11 8v6"/>
</svg>
`,Qc=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/>
<path d="M3 3v5h5"/>
</svg>
`,th=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 5v14M5 12h14"/>
</svg>
`,eh=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 12h14"/>
</svg>
`,sh=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M5 3a2 2 0 0 0-2 2"/>
<path d="M19 3a2 2 0 0 1 2 2"/>
<path d="M21 19a2 2 0 0 1-2 2"/>
<path d="M5 21a2 2 0 0 1-2-2"/>
<path d="M9 3h1M14 3h1M9 21h1M14 21h1M3 9v1M3 14v1M21 9v1M21 14v1"/>
</svg>
`,ih=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.4 2.4 0 0 1 0-3.4l2.6-2.6a2.4 2.4 0 0 1 3.4 0Z"/>
<path d="m14.5 12.5 2-2"/>
<path d="m11.5 9.5 2-2"/>
<path d="m8.5 6.5 2-2"/>
<path d="m17.5 15.5 2-2"/>
</svg>
`,ah=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M4 6h16M4 12h16M4 18h16"/>
</svg>
`,_s=class{constructor(t,e){this.w=t,this.ctx=e,this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=t.globals.minX,this.maxX=t.globals.maxX,this.elZoom=null,this.elZoomIn=null,this.elZoomOut=null,this.elPan=null,this.elSelection=null,this.elMeasure=null,this.elZoomReset=null,this.elMenuIcon=null,this.elMenu=null,this.elMenuItems=[],this.t=null}createToolbar(){var t,e;let s=this.w,i=()=>O.createElementNS("http://www.w3.org/1999/xhtml","div"),a=()=>{let c=O.createElementNS("http://www.w3.org/1999/xhtml","button");return c.setAttribute("type","button"),c},n=i();if(n.setAttribute("class","apexcharts-toolbar"),n.style.top=s.config.chart.toolbar.offsetY+"px",n.style.right=-s.config.chart.toolbar.offsetX+3+"px",s.dom.elWrap.appendChild(n),this.elZoom=a(),this.elZoomIn=a(),this.elZoomOut=a(),this.elPan=a(),this.elSelection=a(),this.elMeasure=a(),this.elZoomReset=a(),this.elMenuIcon=a(),this.elMenu=i(),this.elCustomIcons=[],this.t=s.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(let c=0;c<this.t.customIcons.length;c++)this.elCustomIcons.push(a());let r=[],o=(c,h,d)=>{let f=c.toLowerCase();this.t[f]&&s.config.chart.zoom.enabled&&r.push({el:h,icon:typeof this.t[f]=="string"?this.t[f]:d,title:this.localeValues[c],class:`apexcharts-${f}-icon`})};o("zoomIn",this.elZoomIn,th),o("zoomOut",this.elZoomOut,eh);let l=c=>{this.t[c]&&s.config.chart[c].enabled&&r.push({el:c==="zoom"?this.elZoom:this.elSelection,icon:typeof this.t[c]=="string"?this.t[c]:c==="zoom"?Jc:sh,title:this.localeValues[c==="zoom"?"selectionZoom":"selection"],class:`apexcharts-${c}-icon`})};l("zoom"),l("selection"),this.t.pan&&s.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:typeof this.t.pan=="string"?this.t.pan:Kc,title:this.localeValues.pan,class:"apexcharts-pan-icon"}),this.t.measure&&s.config.chart.measure&&s.config.chart.measure.enabled&&r.push({el:this.elMeasure,icon:typeof this.t.measure=="string"?this.t.measure:ih,title:this.localeValues.measure||"Measure",class:"apexcharts-measure-icon"}),o("reset",this.elZoomReset,Qc),this.t.download&&r.push({el:this.elMenuIcon,icon:typeof this.t.download=="string"?this.t.download:ah,title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(let c=0;c<this.elCustomIcons.length;c++)r.push({el:this.elCustomIcons[c],icon:this.t.customIcons[c].icon,title:this.t.customIcons[c].title,index:this.t.customIcons[c].index,class:"apexcharts-toolbar-custom-icon "+this.t.customIcons[c].class});r.forEach((c,h)=>{c.index&&T.moveIndexInArray(r,h,c.index)});for(let c=0;c<r.length;c++)B.setAttrs(r[c].el,{class:r[c].class,title:r[c].title,"aria-label":r[c].title}),r[c].el.innerHTML=r[c].icon,n.appendChild(r[c].el);this.elZoom.parentNode&&this.elZoom.setAttribute("aria-pressed",String(!!s.interact.zoomEnabled)),this.elSelection.parentNode&&this.elSelection.setAttribute("aria-pressed",String(!!s.interact.selectionEnabled)),this.elPan.parentNode&&this.elPan.setAttribute("aria-pressed",String(!!s.interact.panEnabled)),this.elMeasure.parentNode&&this.elMeasure.setAttribute("aria-pressed",String(!!s.interact.measureEnabled)),this.elMenuIcon.parentNode&&(this.elMenuIcon.setAttribute("aria-haspopup","true"),this.elMenuIcon.setAttribute("aria-expanded","false")),this._createHamburgerMenu(n),s.interact.zoomEnabled?this.elZoom.classList.add(this.selectedClass):s.interact.panEnabled?this.elPan.classList.add(this.selectedClass):s.interact.selectionEnabled?this.elSelection.classList.add(this.selectedClass):s.interact.measureEnabled&&this.elMeasure&&(this.elMeasure.classList.add(this.selectedClass),(e=(t=this.ctx.measure)==null?void 0:t.startMeasure)==null||e.call(t)),this.addToolbarEventListeners()}_createHamburgerMenu(t){this.elMenuItems=[],t.appendChild(this.elMenu),B.setAttrs(this.elMenu,{class:"apexcharts-menu",role:"menu"});let e=[{name:"exportSVG",title:this.localeValues.exportToSVG},{name:"exportPNG",title:this.localeValues.exportToPNG},{name:"exportCSV",title:this.localeValues.exportToCSV}];for(let s=0;s<e.length;s++)this.elMenuItems.push(O.
`)).map(i=>i==null?"":`${i}`)}reserveExternalLabelSpace(){let t=this.w,e=new me(t),s=(t.seriesData.seriesNames||[]).map((d,f)=>this.getExternalLabelLines(f)),i=e.getMaxLabelWidth(s.flat(),{fontSize:this.externalLabelStyle.fontSize,fontFamily:this.externalLabelStyle.fontFamily});this.externalLabelMaxLines=s.reduce((d,f)=>Math.max(d,f.length),1),this.externalLabelLineH=Math.round((parseFloat(this.externalLabelStyle.fontSize)||12)*1.35);let a=this.externalCfg.connector,n=this.externalLabelMaxLines*this.externalLabelLineH,r=i+(a.length||0)+(a.gap||0)+12,o=n/2+(a.gap||0)+6,l=Math.min(t.globals.radialSize,t.layout.gridWidth/2-r,t.layout.gridHeight/2-o);t.globals.radialSize=Math.max(l,this.defaultSize*.15),t.globals.pieExternalLabelMarginY=o;let c=t.config.chart.height?String(t.config.chart.height):"",h=c!==""&&c!=="auto";this.centerY=h?t.layout.gridHeight/2:t.globals.radialSize+o}draw(t){var e;let s=this,i=this.w,a=new B(this.w),n=a.group({class:"apexcharts-pie"});if(i.globals.noData)return n;let r=0;for(let g=0;g<t.length;g++)r+=T.negToZero(t[g]);let o=[],l=a.group();r===0&&(r=1e-5),t.forEach(g=>{this.maxY=Math.max(this.maxY,g)}),i.config.yaxis[0].max&&(this.maxY=i.config.yaxis[0].max),i.config.grid.position==="back"&&this.chartType==="polarArea"&&this.drawPolarElements(n);let c=i.globals.collapsedSeriesIndices||[],h=1;if(this.chartType==="polarArea"){let g=0;for(let p=0;p<t.length;p++)c.indexOf(p)===-1&&g++;h=Math.max(1,g)}for(let g=0;g<t.length;g++){let p=this.fullAngle*T.negToZero(t[g])/r;o.push(p),this.chartType==="polarArea"?(o[g]=c.indexOf(g)>-1?0:this.fullAngle/h,this.sliceSizes.push(i.globals.radialSize*t[g]/(this.maxY||1))):this.sliceSizes.push(i.globals.radialSize)}let d=((e=this.ctx.morphTypeChange)==null?void 0:e.isActive())===!0;if(i.globals.dataChanged&&!d)if(this.chartType==="polarArea"){let g=i.globals.previousPaths,p=i.globals.prevPolarAngles;if(Array.isArray(p)&&p.length===g.length)this.prevSectorAngleArr=p.slice();else for(let b=0;b<g.length;b++)this.prevSectorAngleArr.push(this.fullAngle/Math.max(1,g.length));let m=0;for(let b=0;b<g.length;b++)m=Math.max(m,T.negToZero(g[b]));i.config.yaxis[0].max&&(m=i.config.yaxis[0].max),this.prevSliceSizes=g.map(b=>i.globals.radialSize*T.negToZero(b)/(m||1))}else{let g=0;for(let m=0;m<i.globals.previousPaths.length;m++)g+=T.negToZero(i.globals.previousPaths[m]);let p;for(let m=0;m<i.globals.previousPaths.length;m++)p=this.fullAngle*T.negToZero(i.globals.previousPaths[m])/g,this.prevSectorAngleArr.push(p)}if(this.chartType==="polarArea"&&(i.globals.prevPolarAngles=o.slice()),this.donutSize<0&&(this.donutSize=0),this.chartType==="donut"){let g=a.drawCircle(this.donutSize);g.attr({cx:this.centerX,cy:this.centerY,fill:i.config.plotOptions.pie.donut.background?i.config.plotOptions.pie.donut.background:"transparent"}),l.add(g)}let f=s.drawArcs(o,t);if(this.sliceLabels.forEach(g=>{f.add(g)}),l.attr({transform:`translate(${this.translateX}, ${this.translateY}) scale(${i.config.plotOptions.pie.customScale})`}),l.add(f),n.add(l),this.donutDataLabels.show){let g=this.initialAnim&&!i.globals.resized&&!i.globals.dataChanged&&this.animDur>0,p=this.renderInnerDataLabels(this.dataLabelsGroup,this.donutDataLabels,{hollowSize:this.donutSize,centerX:this.centerX,centerY:this.centerY,opacity:g?0:this.donutDataLabels.show});if(g){let m=this.dataLabelsGroup.node;m.style.transition="opacity 280ms ease-out",setTimeout(()=>{m.style.opacity="1"},this.animDur)}n.add(p)}return i.config.grid.position==="front"&&this.chartType==="polarArea"&&this.drawPolarElements(n),n}drawArcs(t,e){var s,i,a,n,r;let o=this.w,l=new at(this.w),c=new B(this.w),h=new pt(this.w),d=c.group({class:"apexcharts-slices"});this.elHoverOutline=c.group({class:"apexcharts-pie-hover-outline"}),this.elHoverOutline.node.style.pointerEvents="none",this.elHoverOutline.node.style.opacity="0",o.config.chart.animations.enabled&&(this.elHoverOutline.node.style.transition=yd),d.add(this.elHoverOutline);let f=this.initialAngle,g=this.initialAngle,p=this.initialAngle,m=this.initialAngle;this.strokeWidth=o.config.stroke.show?o.config.stroke
${r.toFixed(1)}%`;return String(l).split(`
`)}_outerLabelGutter(t,e){let s=this.w,i=e.clusterLabels,a=i.external.connector||{},n=t.reduce((d,f)=>d+f,0),r=[];if(t.forEach((d,f)=>{d>0&&r.push(...this._outerLabelLines(f,d,n,e))}),!r.length)return 0;let o=md(s,r,{fontSize:i.fontSize,fontFamily:i.fontFamily||s.config.chart.fontFamily}),l=a.gap!=null?a.gap:8,c=a.length!=null?a.length:22,h=o+l+c+8+Math.abs(parseFloat(i.external.offsetX)||0);return Math.min(h,s.layout.gridWidth*.25)}_drawOuterLabels(t,e,s,i,a,n){let r=this.w;if(!H.isBrowser())return;let o=a.clusterLabels,l=o.external,c=l.connector||{},h=c.gap!=null?c.gap:8,d=c.length!=null?c.length:22,f=parseFloat(l.offsetX)||0,g=parseFloat(l.offsetY)||0,p=r.layout.gridWidth,m=r.layout.gridHeight,b=this._lastDotR,x=e.filter(E=>E.dots.length>0);if(!x.length)return;let _=0,w=0;if(x.length>1){let E=x.map(P=>P.cx),D=x.map(P=>P.cy);_=Math.max(...E)-Math.min(...E),w=Math.max(...D)-Math.min(...D)}let y=_>w,v=parseFloat(o.fontSize)||13,A=Math.round(v*1.35),S=[];if(x.slice().sort((E,D)=>E.cy-D.cy).forEach((E,D)=>{let P=this._outerLabelLines(E.i,s[E.i],i,a);if(!P.some(Y=>Y!==""))return;let F=y?E.cx>=p/2?"right":"left":D%2===0?"right":"left",R=F==="right"?1:-1,N=E.dots[0],z=-1/0;E.dots.forEach(Y=>{let I=R*Y.x-.75*Math.abs(Y.y-E.cy);I>z&&(z=I,N=Y)});let $={x:N.x+R*(N.r||b),y:N.y},W={x:$.x+R*h,y:$.y};S.push({i:E.i,lines:P,anchor:$,elbow:W,labelX:W.x+R*d+f,idealY:$.y+g,labelY:$.y+g,side:F})}),!S.length)return;let M=S.reduce((E,D)=>Math.max(E,D.lines.length),1)*A,k=M/2;["left","right"].forEach(E=>{mo(S.filter(D=>D.side===E),M+2,m-k,k)});let L=new B(r,this.ctx).group({class:"apexcharts-unit-outer-labels"});if(n){let E=Math.max(1,r.config.chart.animations.speed||800);L.node.classList.add("apexcharts-unit-label-delay"),L.node.style.animationDelay=`${Math.min(E*.45,600)/1e3}s`}S.forEach(E=>{let D=r.globals.colors[E.i]||r.globals.colors[0]||"#008FFB";L.add(po(r,{lines:E.lines,lineHeight:A,anchor:E.anchor,elbow:E.elbow,labelX:E.labelX,labelY:E.labelY,side:E.side,connector:{show:c.show!==!1,width:c.width!=null?c.width:1.5,color:c.color||D},style:{fontSize:o.fontSize,fontFamily:o.fontFamily||r.config.chart.fontFamily,fontWeight:o.fontWeight},foreColor:o.color||r.config.chart.foreColor,groupClass:"apexcharts-unit-outer-label-group",textClass:"apexcharts-unit-outer-label",connectorClass:"apexcharts-unit-label-connector"}))}),t.add(L)}_drawClusterLabel(t,e,s,i,a,n){let r=this.w;if(!H.isBrowser())return;let o="http://www.w3.org/2000/svg",l=r.seriesData.seriesNames[e.i]||`series-${e.i+1}`,c=i>0?s/i*100:0,h=a.clusterLabels,d=parseFloat(h.fontSize)||13,f;typeof h.formatter=="function"?f=h.formatter(l,{seriesIndex:e.i,value:s,percent:c,w:r}):f=`${l} (${c.toFixed(1)}%)`;let g=typeof f=="string"?f:String(f),p=O.createElementNS(o,"text");p.setAttribute("class","apexcharts-unit-label"),p.setAttribute("text-anchor","middle"),p.setAttribute("font-size",`${d}px`),p.setAttribute("font-family",h.fontFamily||r.config.chart.fontFamily||"inherit"),p.setAttribute("font-weight",String(h.fontWeight||600)),p.setAttribute("fill",h.color||n);let m=h.position==="bottom",b=e.outerR+d*.6+3+(h.offsetY||0),x=g.length*d*.55;if(!m&&!e.flat&&h.curved!==!1&&x<=Math.PI*b*.95){let w=e.cy,y=e.cx-b,v=e.cx+b,A=`M ${y} ${w} A ${b} ${b} 0 0 1 ${v} ${w}`,S=`apexcharts-unit-label-${r.globals.chartID}-${e.i}`,C=O.createElementNS(o,"path");C.setAttribute("id",S),C.setAttribute("d",A),C.setAttribute("fill","none"),C.setAttribute("stroke","none");let M=O.createElementNS(o,"textPath");M.setAttribute("href",`#${S}`),M.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`#${S}`),M.setAttribute("startOffset","50%"),M.textContent=g,p.appendChild(M),t.node.appendChild(C)}else{p.setAttribute("x",String(e.cx));let w=m?e.cy+e.outerR+d+6+(h.offsetY||0):e.cy-e.outerR-6-(h.offsetY||0);p.setAttribute("y",String(w)),p.textContent=g}t.node.appendChild(p)}},ns=Math.PI/180,yr=180/Math.PI,ri="http://www.w3.org/2000/svg",he="http://www.w3.org/1999/xhtml",Le=(u,t,e)=>u+(t-u)*e,Ba=class{constructor(t,e){this.ctx=e,this.w=t;let s=t.config;this.cfg=s.plotOptions.sunburst,this.strokeWidth=s.stroke.show?s.s
2026-07-03 13:46:54 +00:00
/*! Bundled license information:
apexcharts/dist/apexcharts.esm.js:
(*!
* ApexCharts v6.10.0
* (c) 2018-2026 ApexCharts
2026-07-03 13:46:54 +00:00
*)
(*!
* Path morphing for SVG path animations
* Based on svg.pathmorphing.js by Ulrich-Matthias Schäfer (MIT License)
* Refactored to be standalone (no SVG.js dependency)
*
* Two algorithms are exported:
* - morphPaths() — command-level interpolation; preserves curves but can
* produce "wings/flips" when two shapes have very
* different topology (e.g. bar rect → pie arc).
* - morphPolygons() — resamples both shapes into N evenly-spaced perimeter
* points and tweens point-by-point with rotation-search
* alignment; always smooth and non-self-intersecting,
* at the cost of throwing away curve smoothness.
*)
2026-07-03 13:46:54 +00:00
*/