bezel-charts 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,11 @@
1
- /*! Bezel Charts v1.2.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
- var Wt={dark:{tile:"#15151d",bezel:"#000000",fg:"#f2f1f7",muted:"#8c8aa0",grid:"#2a2935",up:"#5EE6C8",down:"#F675A8",palette:["#9FA1FF","#F675A8","#5EE6C8","#FFC857","#7CC4FF","#FF8A5B"]},light:{tile:"#ffffff",bezel:"#000000",fg:"#17161f",muted:"#6b6980",grid:"#e8e6ef",up:"#12a383",down:"#d63f7c",palette:["#6E70F0","#E2508C","#16A884","#D99A0E","#2F8FE0","#EE6431"]}};var it="ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif",dt="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",Je=0;function Ht(t){return"bzc"+t+(++Je).toString(36)+Math.random().toString(36).slice(2,6)}function at(t){return String(t??"").replace(/[&<>"']/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[e]})}function a(t){return Math.round(t*100)/100}function _(t,e,r){return Math.max(e,Math.min(r,t))}function I(t,e){var r=parseFloat(t);return isFinite(r)?r:e}function v(t){return t!=null&&t!==""}function K(t){return Array.isArray(t)?t.map(function(e){var r=+e;return isFinite(r)?r:0}):v(t)?String(t).split(/[\s,;]+/).filter(Boolean).map(function(e){var r=+e;return isFinite(r)?r:0}):[]}function U(t){return Array.isArray(t)?t.map(String):v(t)?String(t).split(",").map(function(e){return e.trim()}):[]}function Et(t){return Array.isArray(t)?Array.isArray(t[0])?t.map(K):[K(t)]:v(t)?String(t).split("|").map(K).filter(function(e){return e.length}):[]}function zt(t){return t.reduce(function(e,r){return e+r},0)}function bt(t,e,r){return String(t).length*e*(r?.6:.56)}function Gt(t,e){return t=String(t),t.length>e?t.slice(0,Math.max(1,e-1))+"\u2026":t}function j(t){return t===!0||t===""||t==="true"||t==="1"}function h(t,e,r){if(!isFinite(t))return"\u2013";var l=Math.abs(t),i;v(e.decimals)?i=_(parseInt(e.decimals,10)||0,0,6):i=t%1===0?0:l<10?2:l<100?1:0;var n={maximumFractionDigits:i,minimumFractionDigits:v(e.decimals)?i:0};(j(e.compact)||r)&&l>=1e4&&(n={notation:"compact",maximumFractionDigits:1});var s;try{s=new Intl.NumberFormat(e.lang||"en-GB",n).format(l)}catch{s=String(a(l))}return(t<0?"\u2212":"")+(e.prefix||"")+s+(e.suffix||"")}function ee(t,e,r){if(t===e)if(t===0)e=1;else{var l=Math.abs(t)*.1;t-=l,e+=l}for(var i=(e-t)/(r||4),n=Math.pow(10,Math.floor(Math.log10(i))),s=i/n,o=(s<=1?1:s<=2?2:s<=5?5:10)*n,c=Math.floor(t/o)*o,x=Math.ceil(e/o)*o,g=[],d=c;d<=x+o/2;d+=o)g.push(+d.toFixed(10));return{lo:c,hi:x,ticks:g}}function ie(t,e){if(!t.length)return"";for(var r="M"+a(t[0][0])+","+a(t[0][1]),l=1;l<t.length;l++){var i=t[l-1],n=t[l];if(e)r+="L"+a(n[0])+","+a(n[1]);else{var s=(i[0]+n[0])/2;r+="C"+a(s)+","+a(i[1])+" "+a(s)+","+a(n[1])+" "+a(n[0])+","+a(n[1])}}return r}function S(t,e,r,l){return'<text x="'+a(t)+'" y="'+a(e)+'" '+(l||"")+">"+at(r)+"</text>"}function G(t,e,r,l){return'fill="'+(l||t.muted)+'" font-family="'+dt+'" font-size="'+(e||10)+'"'+(r?" "+r:"")}function vt(t,e,r,l,i){return'<rect class="bzc-hit" x="'+a(t)+'" y="'+a(e)+'" width="'+a(Math.max(1,r))+'" height="'+a(Math.max(1,l))+'" fill="#000" fill-opacity="0" data-tip="'+at(i)+'"/>'}function lt(t,e,r){return t.animate?' class="'+e+'"'+(r?' style="animation-delay:'+a(r)+'s"':""):""}function ut(t,e){var r=U(t.color).filter(Boolean);return r.length?r:e.palette}function ht(t,e,r,l,i){return S(e+l/2,r+i/2+4,"No data yet",'text-anchor="middle" fill="'+t.muted+'" font-family="'+it+'" font-size="13"')}function Xt(t,e){return v(t.notes)?String(t.notes).split(";").map(function(r){var l=r.indexOf(":");if(l<0)return null;var i=r.slice(0,l).trim(),n=r.slice(l+1).trim(),s=e.map(String).indexOf(i);return s<0&&String(parseInt(i,10))===i&&(s=parseInt(i,10)),s>=0&&n?{i:s,text:n}:null}).filter(Boolean):[]}function Dt(t,e,r,l,i){var n=(v(t.goalLabel)?t.goalLabel:"Goal")+" "+h(I(t.goal,0),t);return'<line x1="'+a(r)+'" x2="'+a(l)+'" y1="'+a(i)+'" y2="'+a(i)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-width="1.25" stroke-dasharray="4 4"/>'+S(l,i-5,n,G(e,10,'text-anchor="end"'))}function kt(t,e,r){var l=String(v(e.stat)?e.stat:r||"").toLowerCase();if(!l||l==="none"||!t.length)return null;var i=zt(t),n={last:t[t.length-1],total:i,sum:i,average:i/t.length,avg:i/t.length,max:Math.max.apply(null,t),min:Math.min.apply(null,t)};if(!(l in n))return null;var s=null;return l==="last"&&t.length>1&&e.delta!=="none"&&(s=t[t.length-1]-t[0]),{val:n[l],delta:s}}function Bt(t,e,r,l,i,n,s,o){var c=l,x=i,g="",d=o||13;return t.forEach(function(f,C){var E=d+bt(f,12)+16;c>l&&c+E-16>l+n&&(c=l,x+=20),g+=(s?s(C,c,x):'<circle cx="'+a(c+4)+'" cy="'+a(x+6)+'" r="4" fill="'+e[C%e.length]+'"/>')+S(c+d,x+10,f,'fill="'+r.fg+'" font-family="'+it+'" font-size="12"'),c+=E}),{svg:g,height:x-i+24}}var le={solid:"",dashed:"7 5",dotted:"1 5",dashdot:"9 4 1 4"},oe=["circle","square","triangle","diamond"],He=["solid","stripes","dots","grid"];function Ut(t,e,r){if(t==null||t===!1||t==="none"||t==="false")return null;var l=t===!0||t===""||t==="auto"?e:U(t).map(function(i){return e.indexOf(i)<0?r:i});return l.length?function(i){return l[i%l.length]}:null}function _t(t,e,r,l,i){var n=l*1.15,s=l*.85;return t==="square"?'<rect x="'+a(e-s)+'" y="'+a(r-s)+'" width="'+a(2*s)+'" height="'+a(2*s)+'" rx="1"'+i+"/>":t==="triangle"?'<path d="M'+a(e)+","+a(r-n)+"L"+a(e+n)+","+a(r+s)+"L"+a(e-n)+","+a(r+s)+'Z"'+i+"/>":t==="diamond"?'<path d="M'+a(e)+","+a(r-n*1.1)+"L"+a(e+n)+","+a(r)+"L"+a(e)+","+a(r+n*1.1)+"L"+a(e-n)+","+a(r)+'Z"'+i+"/>":'<circle cx="'+a(e)+'" cy="'+a(r)+'" r="'+a(l)+'"'+i+"/>"}function De(t,e,r,l){var i=' stroke="'+l+'" stroke-opacity=".55" stroke-width="1.5"';return'<pattern id="'+t+'" width="6" height="6" patternUnits="userSpaceOnUse"'+(e==="dots"?"":' patternTransform="rotate(45)"')+'><rect width="6" height="6" fill="'+r+'"/>'+(e==="dots"?'<circle cx="3" cy="3" r="1.3" fill="'+l+'" fill-opacity=".55"/>':'<path d="M3,0V6'+(e==="grid"?"M0,3H6":"")+'"'+i+"/>")+"</pattern>"}function Pe(t){return Math.max.apply(null,t.map(function(e){return bt(e,10,!0)}))+10}function se(t,e){for(var r=Et(t.values),l=U(t.series),i=U(t.labels),n=[],s=Math.max.apply(null,[0].concat(r.map(function(d){return d.length}))),o=0;o<s;o++){var c=[i[o]||"#"+(o+1)],x=0;r.forEach(function(d){c.push(o<d.length?h(d[o],t):""),x+=o<d.length?d[o]:0}),e&&c.push(h(x,t)),n.push(c)}var g=r.length>1||l.length?r.map(function(d,f){return l[f]||"Series "+(f+1)}):["Value"];return{head:["Label"].concat(g,e?["Total"]:[]),rows:n}}function Vt(t){var e=Math.round(_(I(t.width,360),160,2400)),r=t.frame==="none"?0:4,l=t.frame==="none"?8:20;return{W:e,b:r,P:l,w:e-2*(r+l)}}var Ke=".bzc-a{animation:bzc-in .6s ease both}.bzc-d{animation:bzc-draw 1.1s cubic-bezier(.3,.7,.2,1) both}.bzc-g{transform-box:fill-box;transform-origin:50% 100%;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gn{transform-box:fill-box;transform-origin:50% 0;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gx{transform-box:fill-box;transform-origin:0 50%;animation:bzc-growx .8s cubic-bezier(.2,.8,.2,1) both}.bzc-s{animation:bzc-sweep 1.1s cubic-bezier(.2,.8,.2,1) both}@keyframes bzc-in{from{opacity:0}}@keyframes bzc-draw{from{stroke-dashoffset:1}}@keyframes bzc-grow{from{transform:scaleY(0)}}@keyframes bzc-growx{from{transform:scaleX(0)}}@keyframes bzc-sweep{from{stroke-dasharray:0 100}}@media (prefers-reduced-motion:reduce){[class^=bzc-]{animation:none!important}}";function mt(t,e,r,l,i){var n=Vt(t),s=n.W,o=n.b,c=n.P,x=n.w,g=_(I(t.corners,22),0,60),d=o+c,f="";v(t.heading)&&(f+=S(o+c,d+10,String(t.heading).toUpperCase(),G(e,11,'font-weight="600" letter-spacing="1.3"')),d+=24);var C=i&&i.stat;if(C){if(f+=S(o+c,d+30,h(C.val,t),'fill="'+e.fg+'" font-family="'+it+'" font-size="32" font-weight="800" letter-spacing="-0.5"'),C.delta!=null){var E=C.delta>0,R=C.delta===0,F=t.delta==="inverse"?!E:E,y=R?e.muted:F?e.up:e.down,L=(R?"\u25CF ":E?"\u25B2 ":"\u25BC ")+h(Math.abs(C.delta),t)+" "+(v(t.deltaLabel)?t.deltaLabel:"since start");f+=S(o+c+x,d+28,L,'text-anchor="end" fill="'+y+'" font-family="'+dt+'" font-size="11" font-weight="600"')}d+=44}var m=l(o+c,d,x,r),A=Math.round(d+r+c+o),z="";t.frame!=="none"?z='<rect width="'+s+'" height="'+A+'" rx="'+g+'" fill="'+e.bezel+'"/><rect x="'+o+'" y="'+o+'" width="'+(s-2*o)+'" height="'+(A-2*o)+'" rx="'+Math.max(0,g-o)+'" fill="'+(t.background||e.tile)+'"/>':v(t.background)&&(z='<rect width="'+s+'" height="'+A+'" rx="'+g+'" fill="'+t.background+'"/>');var b=(v(t.heading)?t.heading+": ":"")+(i&&i.summary||"chart");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '+s+" "+A+'" width="'+s+'" height="'+A+'" role="img" aria-label="'+at(b)+'"><title>'+at(b)+"</title>"+(t.animate?"<style>"+Ke+"</style>":"")+z+f+m+"</svg>"}function fe(t,e){var r=K(t.values),l=ut(t,e)[0],i=I(t.height,64),n=U(t.labels),s=Xt(t,n),o=kt(r,t,"last");return mt(t,e,i,function(c,x,g,d){if(!r.length)return ht(e,c,x,g,d);var f=r.length===1?[r[0],r[0]]:r,C=Math.min.apply(null,f),E=Math.max.apply(null,f);v(t.goal)&&(C=Math.min(C,+t.goal),E=Math.max(E,+t.goal));var R=(E-C||Math.abs(E)||1)*.12;C-=R,E+=R;var F=function(k){return c+k*g/(f.length-1)},y=function(k){return x+d-(k-C)/(E-C)*d},L=f.map(function(k,p){return[F(p),y(k)]}),m=ie(L,j(t.straight)),A=Ht("g"),z=L[L.length-1],b='<defs><linearGradient id="'+A+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+l+'" stop-opacity=".32"/><stop offset="1" stop-color="'+l+'" stop-opacity="0"/></linearGradient></defs>';[1/3,2/3].forEach(function(k){b+='<line x1="'+c+'" x2="'+(c+g)+'" y1="'+a(x+d*k)+'" y2="'+a(x+d*k)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'}),b+='<path d="'+m+"L"+a(z[0])+","+(x+d)+"L"+c+","+(x+d)+'Z" fill="url(#'+A+')"'+lt(t,"bzc-a")+"/>",b+='<path d="'+m+'" fill="none" stroke="'+l+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1"'+lt(t,"bzc-d")+"/>",v(t.goal)&&(b+=Dt(t,e,c,c+g,y(+t.goal))),s.forEach(function(k){if(!(k.i>=r.length)){var p=L[k.i];b+='<circle cx="'+a(p[0])+'" cy="'+a(p[1])+'" r="3.5" fill="'+e.fg+'"/>'+S(_(p[0],c+30,c+g-30),p[1]-9,k.text,G(e,10,'text-anchor="middle"',e.fg))}}),b+='<circle cx="'+a(z[0])+'" cy="'+a(z[1])+'" r="9" fill="'+l+'" fill-opacity=".25"/><circle cx="'+a(z[0])+'" cy="'+a(z[1])+'" r="4.5" fill="'+l+'"/>',j(t.showValues)&&L.forEach(function(k,p){p<r.length&&(b+=S(k[0],k[1]-8,h(r[p],t,!0),G(e,9,'text-anchor="middle"')))});var O=r.length>1?g/(r.length-1):g;return r.forEach(function(k,p){b+=vt(F(p)-O/2,x-6,O,d+12,(n[p]||"#"+(p+1))+": "+h(k,t))}),b},{stat:o,summary:r.length?"latest "+h(r[r.length-1],t):"no data"})}fe.table=function(t){var e=U(t.labels);return{head:["Label","Value"],rows:K(t.values).map(function(r,l){return[e[l]||"#"+(l+1),h(r,t)]})}};function ce(t,e){var r=Et(t.values),l=U(t.series),i=U(t.labels),n=ut(t,e),s=I(t.height,170),o=Math.max.apply(null,[0].concat(r.map(function(R){return R.length}))),c=Xt(t,i),x=r.length>1||l.length>0,g=kt(r[0]||[],t,""),d=Ut(t.dash,Object.keys(le),"solid"),f=Ut(t.markers,oe,"none"),C=t.background||e.tile,E=(d||f)&&function(R,F,y){var L=n[R%n.length],m=d?le[d(R)]:"",A=f?f(R):"none";return'<line x1="'+a(F)+'" x2="'+a(F+18)+'" y1="'+a(y+6)+'" y2="'+a(y+6)+'" stroke="'+L+'" stroke-width="2.5" stroke-linecap="round"'+(m?' stroke-dasharray="'+m+'"':"")+"/>"+(A!=="none"?_t(A,F+9,y+6,3.5,' fill="'+L+'" stroke="'+C+'" stroke-width="1.5"'):"")};return mt(t,e,s,function(R,F,y,L){if(!o)return ht(e,R,F,y,L);var m="",A=F;if(x){var z=Bt(r.map(function(D,u){return l[u]||"Series "+(u+1)}),n,e,R,A,y,E,E&&24);m+=z.svg,A+=z.height}var b=[].concat.apply([],r),O=Math.min.apply(null,b),k=Math.max.apply(null,b);v(t.goal)&&(O=Math.min(O,+t.goal),k=Math.max(k,+t.goal)),j(t.zero)&&(O=Math.min(0,O),k=Math.max(0,k));var p=ee(O,k,4),B=p.ticks.map(function(D){return h(D,t,!0)}),M=Math.max.apply(null,B.map(function(D){return bt(D,10,!0)}))+10,w=i.length?20:4,T=R+M,V=y-M,Y=L-(A-F)-w,tt=function(D){return o===1?T+V/2:T+D*V/(o-1)},Q=function(D){return A+Y-(D-p.lo)/(p.hi-p.lo)*Y};if(p.ticks.forEach(function(D,u){var H=Q(D);m+='<line x1="'+a(T)+'" x2="'+a(T+V)+'" y1="'+a(H)+'" y2="'+a(H)+'" stroke="'+e.grid+'"'+(D===0?"":' stroke-dasharray="2 4"')+"/>"+S(T-8,H+3.5,B[u],G(e,10,'text-anchor="end"'))}),i.length){for(var ot=Math.max(1,Math.ceil(o*(Math.max.apply(null,i.map(function(D){return bt(D,10,!0)}))+10)/V)),q=0;q<o;q+=ot)if(i[q]!=null){var J=o>1&&q===0?"start":o>1&&q===o-1?"end":"middle";m+=S(tt(q),A+Y+15,i[q],G(e,10,'text-anchor="'+J+'"'))}}c.forEach(function(D){if(!(D.i>=o)){var u=tt(D.i);m+='<line x1="'+a(u)+'" x2="'+a(u)+'" y1="'+a(A+12)+'" y2="'+a(A+Y)+'" stroke="'+e.fg+'" stroke-opacity=".4" stroke-dasharray="3 3"/>'+S(_(u,T+30,T+V-30),A+8,D.text,G(e,10,'text-anchor="middle"',e.fg))}}),r.forEach(function(D,u){var H=n[u%n.length],N=D.map(function(X,ft){return[tt(ft),Q(X)]});N.length===1&&(N=[[T,N[0][1]],[T+V,N[0][1]]]);var et=ie(N,j(t.straight));if(u===0){var W=Ht("g"),gt=N[N.length-1];m+='<defs><linearGradient id="'+W+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+H+'" stop-opacity=".26"/><stop offset="1" stop-color="'+H+'" stop-opacity="0"/></linearGradient></defs><path d="'+et+"L"+a(gt[0])+","+a(A+Y)+"L"+a(N[0][0])+","+a(A+Y)+'Z" fill="url(#'+W+')"'+lt(t,"bzc-a")+"/>"}var xt=d?le[d(u)]:"",Mt=f?f(u):"none";if(m+=xt?'<path d="'+et+'" fill="none" stroke="'+H+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="'+xt+'"'+lt(t,"bzc-a",u*.15)+"/>":'<path d="'+et+'" fill="none" stroke="'+H+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1'+(t.animate?";animation-delay:"+u*.15+"s":"")+'"'+(t.animate?' class="bzc-d"':"")+"/>",Mt!=="none"){var P=Math.ceil(D.length/40);D.forEach(function(X,ft){(ft%P===0||ft===D.length-1)&&(m+=_t(Mt,tt(ft),Q(X),3.5,' fill="'+H+'" stroke="'+C+'" stroke-width="1.5"'+lt(t,"bzc-a",.6+u*.15)))})}else{var Z=N[N.length-1];m+='<circle cx="'+a(Z[0])+'" cy="'+a(Z[1])+'" r="4" fill="'+H+'" stroke="'+C+'" stroke-width="2"/>'}j(t.showValues)&&D.forEach(function(X,ft){m+=S(tt(ft),Q(X)-8,h(X,t,!0),G(e,9,'text-anchor="middle"'))})}),v(t.goal)&&(m+=Dt(t,e,T,T+V,Q(+t.goal)));for(var Lt=o>1?V/(o-1):V,st=0;st<o;st++){var pt=i[st]||"#"+(st+1);r.forEach(function(D,u){st<D.length&&(pt+=`
3
- `+(x?(l[u]||"Series "+(u+1))+": ":"")+h(D[st],t))}),m+=vt(tt(st)-Lt/2,A,Lt,Y,pt)}return m},{stat:g,summary:r.length+" series over "+o+" points"})}ce.table=function(t){return se(t)};var $e=40,Ge=24;function ue(t,e){for(var r=Et(t.values),l=U(t.series),i=U(t.labels),n=ut(t,e),s=r.length,o=Math.max.apply(null,[0].concat(r.map(function(u){return u.length}))),c=s>1,x=j(t.horizontal),g=c&&j(t.stacked),d=!c&&U(t.color).filter(Boolean).length>1,f=r[0]||[],C=[].concat.apply([],r),E=function(u,H){return r.reduce(function(N,et){return u<et.length&&et[u]*H>0?N+et[u]:N},0)},R=[],F=[],y=[],L=0;g&&L<o;L++)F.push(E(L,1)),y.push(E(L,-1)),R.push(F[L]+y[L]);for(var m=g?F.concat(y):C,A=m.length?Math.max.apply(null,m):0,z=function(u){return l[u]||"Series "+(u+1)},b=c?Ut(t.patterns,He,"solid"):null,O="",k=[],p=0;b&&p<s;p++)if(b(p)!=="solid"){var B=Ht("g");O+=De(B,b(p),n[p%n.length],t.background||e.tile),k[p]="url(#"+B+")"}var M=function(u,H){return c?k[u]||n[u%n.length]:d?n[H%n.length]:n[0]},w=b&&function(u,H,N){return'<rect x="'+a(H)+'" y="'+a(N+1)+'" width="10" height="10" rx="2" fill="'+M(u)+'"/>'},T=function(u){return c||d||t.highlight==="none"||u===A?1:.5},V=function(u){return i[u]||"#"+(u+1)},Y=function(u){return c?V(u)+r.map(function(H,N){return u<H.length?`
4
- `+z(N)+": "+h(H[u],t):""}).join("")+(g?`
5
- Total: `+h(R[u],t):""):V(u)+": "+h(f[u],t)},tt=Vt(t),Q=c||l.length?Bt(r.map(function(u,H){return z(H)}),n,e,0,0,tt.w,w,w&&15).height:0,ot=g?1:s,q=c&&!g,J=q?10:14,Lt=3,st=x?ot*J+(ot-1)*Lt+(q?14:16):0,pt=x?Q+Math.max(1,o)*st-6:I(t.height,140)+Q,D=f.indexOf(Math.max.apply(null,f.length?f:[0]));return mt(t,e,pt,function(u,H,N,et){if(!o)return ht(e,u,H,N,et);var W=O?"<defs>"+O+"</defs>":"",gt=H;Q&&(W+=Bt(r.map(function($,rt){return z(rt)}),n,e,u,H,N,w,w&&15).svg,gt+=Q);var xt=Math.min(0,Math.min.apply(null,m)),Mt=Math.max(0,A);if(v(t.goal)&&(xt=Math.min(xt,+t.goal),Mt=Math.max(Mt,+t.goal)),Mt===xt&&(Mt=xt+1),x){for(var P=i.length?Math.min(N*.4,Math.max.apply(null,i.map(function($){return bt($,12)}))+10):0,Z=g?[R.map(function($){return h($,t)})]:r.map(function($){return $.map(function(rt){return h(rt,t)})}),X=Math.max.apply(null,[].concat.apply([],Z).map(function($){return bt($,q?10:11,!0)}))+10,ft=u+P,St=N-P-X,Rt=Math.max(Mt,0)||1,nt=0;nt<o;nt++){var At=gt+nt*st;i[nt]!=null&&(W+=S(u,At+(st-6)/2+4,Gt(i[nt],Math.floor(P/6.7)),'fill="'+e.fg+'" font-family="'+it+'" font-size="12"')),g?(W+=We(nt,ft,At+5,St,Rt),W+=S(u+N,At+5+J/2+3.8,Z[0][nt],'text-anchor="end" fill="'+e.fg+'" font-family="'+dt+'" font-size="11" font-weight="600"')):r.forEach(function($,rt){if(!(nt>=$.length)){var ct=$[nt],wt=At+(c?2:5)+rt*(J+Lt),Tt=Math.max(0,ct)/Rt*St;c||(W+='<rect x="'+a(ft)+'" y="'+a(wt)+'" width="'+a(St)+'" height="'+J+'" rx="'+J/2+'" fill="'+e.grid+'" fill-opacity=".6"/>'),Tt>0&&(W+='<rect x="'+a(ft)+'" y="'+a(wt)+'" width="'+a(Math.max(J,Tt))+'" height="'+J+'" rx="'+J/2+'" fill="'+M(rt,nt)+'" fill-opacity="'+T(ct)+'"'+lt(t,"bzc-gx",nt*.06+rt*.03)+"/>"),W+=S(u+N,wt+J/2+3.8,Z[rt][nt],'text-anchor="end" fill="'+e.fg+'" font-family="'+dt+'" font-size="'+(c?10:11)+'" font-weight="600"')}}),W+=vt(u,At,N,st-6,Y(nt))}if(v(t.goal)&&+t.goal>0){var ze=ft+ +t.goal/Rt*St;W+='<line x1="'+a(ze)+'" x2="'+a(ze)+'" y1="'+a(gt-2)+'" y2="'+a(H+et+2)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-dasharray="3 3"/>'}return W}function We($,rt,ct,wt,Tt){var Ct='<rect x="'+a(rt)+'" y="'+a(ct)+'" width="'+a(wt)+'" height="'+J+'" rx="'+J/2+'" fill="'+e.grid+'" fill-opacity=".6"/>',Yt=0;return r.forEach(function(jt,Ft){var qt=$<jt.length?jt[$]:0,Nt=Math.max(0,qt)/Tt*wt;if(!(Nt<=0)){var $t=Yt>0?1.5:0;Ct+='<rect x="'+a(rt+Yt+$t)+'" y="'+a(ct)+'" width="'+a(Math.max(2,Nt-$t))+'" height="'+J+'" rx="'+a(Math.min(3,Nt/2))+'" fill="'+M(Ft,$)+'"'+lt(t,"bzc-gx",$*.06+Ft*.03)+"/>",Yt+=Nt}}),Ct}var Le=i.length?Math.max.apply(null,i.map(function($){return bt($,10,!0)})):0,xe=i.length?Math.max(1,Math.ceil(o*(Le+8)/N)):1,Qt=j(t.angleLabels)&&xe>1,Ae=$e*Math.PI/180,Oe=function($){return Qt?Gt($,Ge):$};if(Qt){var Xe=N/o,It=0;i.forEach(function($,rt){It=Math.max(It,Math.cos(Ae)*bt(Oe($),10,!0)+4-(rt+.5)*Xe)}),It=Math.min(It,N*.25),u+=It,N-=It,xe=1}var Te=j(t.showValues)&&xt<0?14:0,_e=Qt?Math.ceil(Math.sin(Ae)*Math.min(Le,bt("x".repeat(Ge),10,!0)))+18:20,Ze=(i.length?_e:2)+Te,Ce=j(t.showValues)?16:4,ye=et-(gt-H)-Ze-Ce,Fe=gt+Ce,Ot=function($){return Fe+ye-($-xt)/(Mt-xt)*ye},Jt=N/o,Kt=Math.min(Jt*(q?.78:.62),q?s*30:56),Ne=q?Math.min(3,Kt/s*.15):0,Pt=g?Kt:(Kt-Ne*(s-1))/s,ne=Ot(0);W+='<line x1="'+u+'" x2="'+(u+N)+'" y1="'+a(ne)+'" y2="'+a(ne)+'" stroke="'+e.grid+'"/>';for(var yt=0;yt<o;yt++){var be=u+yt*Jt+(Jt-Kt)/2;if(g?W+=Qe(yt,be):r.forEach(function($,rt){if(!(yt>=$.length)){var ct=$[yt],wt=be+rt*(Pt+Ne),Tt=Math.min(Ot(ct),ne),Ct=Math.abs(Ot(ct)-ne);Ct>.5&&(W+='<rect x="'+a(wt)+'" y="'+a(Tt)+'" width="'+a(Pt)+'" height="'+a(Ct)+'" rx="'+a(Math.min(6,Pt/2,Ct/2))+'" fill="'+M(rt,yt)+'" fill-opacity="'+T(ct)+'"'+lt(t,ct<0?"bzc-gn":"bzc-g",yt*.05+rt*.03)+"/>"),j(t.showValues)&&(W+=S(wt+Pt/2,ct<0?Ot(ct)+12:Ot(ct)-5,h(ct,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+dt+'" font-size="'+(c?9:10)+'" font-weight="600"'))}}),i[yt]!=null&&yt%xe===0){var ke=be+Kt/2,Me=Fe+ye+Te+(Qt?12:15);W+=Qt?S(ke,Me,Oe(i[yt]),G(e,10,'text-anchor="end" transform="rotate(-'+$e+" "+a(ke)+" "+a(Me)+')"')):S(ke,Me,i[yt],G(e,10,'text-anchor="middle"'))}W+=vt(u+yt*Jt,gt,Jt,et-(gt-H),Y(yt))}return v(t.goal)&&(W+=Dt(t,e,u,u+N,Ot(+t.goal))),W;function Qe($,rt){var ct="",wt=0,Tt=0;if(r.forEach(function(Yt,jt){var Ft=$<Yt.length?Yt[$]:0;if(Ft){var qt=Ft>0?wt:Tt,Nt=qt+Ft;Ft>0?wt=Nt:Tt=Nt;var $t=Ot(Math.max(qt,Nt)),we=Ot(Math.min(qt,Nt)),te=we-$t,Re=qt!==0?Math.min(1.5,te/2):0;Ft>0?we-=Re:$t+=Re,te=we-$t,te>.5&&(ct+='<rect x="'+a(rt)+'" y="'+a($t)+'" width="'+a(Pt)+'" height="'+a(te)+'" rx="'+a(Math.min(3,Pt/2,te/2))+'" fill="'+M(jt,$)+'"'+lt(t,Ft<0?"bzc-gn":"bzc-g",$*.05+jt*.03)+"/>")}}),j(t.showValues)){var Ct=R[$];ct+=S(rt+Pt/2,Ct<0?Ot(y[$])+12:Ot(F[$])-5,h(Ct,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+dt+'" font-size="10" font-weight="600"')}return ct}},{stat:kt(f,t,""),summary:o?g?s+" series stacked across "+o+" groups":c?s+" series across "+o+" groups":"highest "+(i[D]||"")+" "+h(f[D],t):"no data"})}ue.table=function(t){return se(t,Et(t.values).length>1&&j(t.stacked))};function he(t,e){var r=K(t.values),l=U(t.labels),i=ut(t,e),n=I(t.max,100)||100,s=I(t.height,140),o=!v(t.prefix)&&!v(t.suffix)&&n===100,c=function(g){return h(g,t)+(o?"%":"")},x=kt(r,t,"");return mt(t,e,s,function(g,d,f,C){if(!r.length)return ht(e,g,d,f,C);var E="",R=r.length===1,F=Math.min(C,R?f:f*.55),y=R?g+f/2:g+F/2,L=d+C/2,m=R?F*.12:_(F*.42/(r.length*1.35),5,16),A=m*.38;if(r.forEach(function(k,p){var B=F/2-m/2-p*(m+A);if(!(B<=m/2)){var M=_(k/n*100,0,100),w=i[p%i.length];E+='<circle cx="'+a(y)+'" cy="'+a(L)+'" r="'+a(B)+'" fill="none" stroke="'+w+'" stroke-opacity=".16" stroke-width="'+a(m)+'"/>',M>0&&(E+='<circle cx="'+a(y)+'" cy="'+a(L)+'" r="'+a(B)+'" fill="none" stroke="'+w+'" stroke-width="'+a(m)+'" stroke-linecap="round" pathLength="100" transform="rotate(-90 '+a(y)+" "+a(L)+')" style="stroke-dasharray:'+a(M)+" 100"+(t.animate?";animation-delay:"+p*.12+"s":"")+'"'+(t.animate?' class="bzc-s"':"")+"/>"),E+='<circle cx="'+a(y)+'" cy="'+a(L)+'" r="'+a(B+m/2)+'" fill="#000" fill-opacity="0" class="bzc-hit" data-tip="'+at((l[p]||"#"+(p+1))+": "+c(k)+(o?"":" of "+h(n,t)))+'"/>'}}),R)E+=S(y,L+F*.08,c(r[0]),'text-anchor="middle" fill="'+e.fg+'" font-family="'+it+'" font-size="'+a(F*.22)+'" font-weight="800"'),l[0]&&(E+=S(y,L+F*.08+16,l[0],G(e,10,'text-anchor="middle"')));else{var z=g+F+22,b=Math.min(26,C/r.length),O=L-b*r.length/2;r.forEach(function(k,p){var B=O+p*b+b/2;E+='<circle cx="'+a(z+4)+'" cy="'+a(B)+'" r="4" fill="'+i[p%i.length]+'"/>'+S(z+14,B+4,Gt(l[p]||"#"+(p+1),Math.floor((g+f-z-60)/6.7)),'fill="'+e.fg+'" font-family="'+it+'" font-size="12"')+S(g+f,B+4,c(k),'text-anchor="end" fill="'+e.fg+'" font-family="'+dt+'" font-size="11" font-weight="600"')})}return E},{stat:x,summary:r.map(function(g,d){return(l[d]?l[d]+" ":"")+c(g)}).join(", ")})}he.table=function(t){var e=U(t.labels),r=I(t.max,100)||100,l=!v(t.prefix)&&!v(t.suffix)&&r===100;return{head:["Label","Value"],rows:K(t.values).map(function(i,n){return[e[n]||"#"+(n+1),h(i,t)+(l?"%":" of "+h(r,t))]})}};function me(t,e){var r=K(t.values).map(function(f){return Math.max(0,f)}),l=U(t.labels),i=ut(t,e),n=r.slice(),s=l.slice();if(n.length>6){var o=n.map(function(f,C){return C}).sort(function(f,C){return r[C]-r[f]}),c=o.slice(0,5).sort(function(f,C){return f-C});n=c.map(function(f){return r[f]}),s=c.map(function(f){return l[f]||"#"+(f+1)}),n.push(zt(o.slice(5).map(function(f){return r[f]}))),s.push("Other")}var x=zt(n),g=I(t.height,150),d=kt(n,t,"");return mt(t,e,g,function(f,C,E,R){if(!x)return ht(e,f,C,E,R);var F="",y=Math.min(R,E*.5),L=f+y/2,m=C+R/2,A=y*.16,z=(y-A)/2,b=0,O=n.filter(Boolean).length>1?.9:0;n.forEach(function(M,w){var T=M/x*100;if(!(T<=0)){var V=Math.max(.01,T-O);F+='<circle cx="'+a(L)+'" cy="'+a(m)+'" r="'+a(z)+'" fill="none" stroke="'+i[w%i.length]+'" stroke-width="'+a(A)+'" pathLength="100" stroke-dasharray="'+a(V)+" "+a(100-V)+'" stroke-dashoffset="'+a(-b)+'" transform="rotate(-90 '+a(L)+" "+a(m)+')"'+lt(t,"bzc-a",w*.08)+"/>",b+=T}}),F+=S(L,m+2,h(x,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+it+'" font-size="'+a(y*.17)+'" font-weight="800"'),F+=S(L,m+2+14,(v(t.centerLabel)?t.centerLabel:"Total").toUpperCase(),G(e,9,'text-anchor="middle" letter-spacing="1"'));var k=f+y+22,p=Math.min(24,R/n.length),B=m-p*n.length/2;return n.forEach(function(M,w){var T=B+w*p+p/2,V=Math.round(M/x*100),Y=(s[w]||"#"+(w+1))+": "+h(M,t)+" ("+V+"%)";F+='<circle cx="'+a(k+4)+'" cy="'+a(T)+'" r="4" fill="'+i[w%i.length]+'"/>'+S(k+14,T+4,Gt(s[w]||"#"+(w+1),Math.floor((f+E-k-50)/6.7)),'fill="'+e.fg+'" font-family="'+it+'" font-size="12"')+S(f+E,T+4,V+"%",'text-anchor="end" fill="'+e.muted+'" font-family="'+dt+'" font-size="11" font-weight="600"')+vt(k,T-p/2,f+E-k,p,Y)}),b=0,n.forEach(function(M,w){var T=M/x*100;T<=0||(F+='<circle cx="'+a(L)+'" cy="'+a(m)+'" r="'+a(z)+'" fill="none" stroke="#000" stroke-opacity="0" stroke-width="'+a(A)+'" pathLength="100" stroke-dasharray="'+a(T)+" "+a(100-T)+'" stroke-dashoffset="'+a(-b)+'" transform="rotate(-90 '+a(L)+" "+a(m)+')" class="bzc-hit" data-skip="" data-tip="'+at((s[w]||"#"+(w+1))+": "+h(M,t)+" ("+Math.round(T)+"%)")+'"/>',b+=T)}),F},{stat:d,summary:"total "+h(x,t)+" across "+n.length+" parts"})}me.table=function(t){var e=K(t.values).map(function(i){return Math.max(0,i)}),r=U(t.labels),l=zt(e);return{head:["Label","Value","Share"],rows:e.map(function(i,n){return[r[n]||"#"+(n+1),h(i,t),(l?Math.round(i/l*100):0)+"%"]})}};function pe(t,e){var r=K(t.values),l=r.length?r[0]:I(t.value,NaN),i=U(t.labels),n=I(t.min,0),s=I(t.max,100),o=I(t.height,130);s===n&&(s=n+1);var c=K(t.zones),x=ut(t,e),g=U(t.color).filter(Boolean).length>1?x:[e.up,e.palette[3],e.down],d=x[0];if(c.length&&isFinite(l)){for(var f=0;f<c.length&&l>=c[f];)f++;d=g[Math.min(f,g.length-1)]}var C=!v(t.prefix)&&!v(t.suffix)&&n===0&&s===100,E=function(R){return h(R,t)+(C?"%":"")};return mt(t,e,o,function(R,F,y,L){if(!isFinite(l))return ht(e,R,F,y,L);var m=Math.min(y/2,L-22),A=m*.16,z=m-A/2,b=R+y/2,O=F+m,k=_((l-n)/(s-n),0,1),p=function(tt,Q){var ot=Math.PI*(1-tt);return[b+Q*Math.cos(ot),O-Q*Math.sin(ot)]},B="M"+a(b-z)+","+a(O)+"A"+a(z)+","+a(z)+" 0 0 1 "+a(b+z)+","+a(O),M='<path d="'+B+'" fill="none" stroke="'+d+'" stroke-opacity=".16" stroke-width="'+a(A)+'" stroke-linecap="round"/>';c.length&&c.forEach(function(tt){var Q=_((tt-n)/(s-n),0,1),ot=p(Q,z-A/2-3),q=p(Q,z-A/2-8);M+='<line x1="'+a(ot[0])+'" y1="'+a(ot[1])+'" x2="'+a(q[0])+'" y2="'+a(q[1])+'" stroke="'+e.muted+'" stroke-width="1.5"/>'}),k>0&&(M+='<path d="'+B+'" fill="none" stroke="'+d+'" stroke-width="'+a(A)+'" stroke-linecap="round" pathLength="100" style="stroke-dasharray:'+a(k*100)+' 100"'+lt(t,"bzc-s")+"/>");var w=p(k,z);if(M+='<circle cx="'+a(w[0])+'" cy="'+a(w[1])+'" r="'+a(A*.26)+'" fill="'+(t.background||e.tile)+'"'+lt(t,"bzc-a",.9)+"/>",v(t.goal)){var T=_((+t.goal-n)/(s-n),0,1),V=p(T,z+A/2+4),Y=p(T,z-A/2-4);M+='<line x1="'+a(V[0])+'" y1="'+a(V[1])+'" x2="'+a(Y[0])+'" y2="'+a(Y[1])+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return M+=S(b,O-m*.12,E(l),'text-anchor="middle" fill="'+e.fg+'" font-family="'+it+'" font-size="'+a(m*.34)+'" font-weight="800"'),i[0]&&(M+=S(b,O-m*.12+16,i[0],G(e,10,'text-anchor="middle"'))),M+=S(b-z,O+18,h(n,t,!0),G(e,10,'text-anchor="middle"'))+S(b+z,O+18,h(s,t,!0),G(e,10,'text-anchor="middle"')),M+=vt(b-m,O-m,m*2,m,(i[0]?i[0]+": ":"")+E(l)+" (range "+h(n,t)+" to "+h(s,t)+")"+(v(t.goal)?`
6
- Goal: `+h(+t.goal,t):"")),M},{summary:isFinite(l)?E(l)+" on a scale of "+h(n,t)+" to "+h(s,t):"no data"})}pe.table=function(t){var e=K(t.values),r=e.length?e[0]:I(t.value,NaN),l=U(t.labels),i=I(t.min,0),n=I(t.max,100),s=!v(t.prefix)&&!v(t.suffix)&&i===0&&n===100;return isFinite(r)?{head:["Label","Value"],rows:[[l[0]||"Reading",h(r,t)+(s?"%":"")],["Lowest",h(i,t)],["Highest",h(n,t)]].concat(v(t.goal)?[["Goal",h(+t.goal,t)]]:[])}:{head:["Label","Value"],rows:[]}};function de(t,e){var r=K(t.values).map(function(y){return Math.max(0,y)}),l=U(t.labels),i=ut(t,e),n=r.length===1,s=zt(r),o=v(t.max)?I(t.max,100):n?100:s;o>0||(o=1);var c=!v(t.prefix)&&!v(t.suffix)&&o===100&&n,x=function(y){return h(y,t)+(c?"%":"")},g=Vt(t),d=g.w,f=0,C=[];if(!n&&r.length){var E=0;f=1,r.forEach(function(y,L){var m=l[L]||"#"+(L+1),A=14+bt(m,12)+6+bt(h(y,t),11,!0)+18;E>0&&E+A>d&&(E=0,f++),C.push({x:E,row:f-1,l:m}),E+=A})}var R=36+(f?12+f*20:0),F=kt(r,t,"");return mt(t,e,R,function(y,L,m,A){if(!r.length)return ht(e,y,L,m,A);var z="",b=L+22,O=Ht("c"),k=n?x(r[0])+(c?"":" of "+h(o,t)):h(s,t)+" of "+h(o,t);n&&l[0]&&(z+=S(y,L+11,l[0],'fill="'+e.fg+'" font-family="'+it+'" font-size="12"')),z+=S(y+m,L+11,k,'text-anchor="end" fill="'+e.fg+'" font-family="'+dt+'" font-size="11" font-weight="600"'),z+='<rect x="'+y+'" y="'+b+'" width="'+m+'" height="14" rx="7" fill="'+e.grid+'" fill-opacity=".7"/>',z+='<clipPath id="'+O+'"><rect x="'+y+'" y="'+b+'" width="'+m+'" height="14" rx="7"/></clipPath><g clip-path="url(#'+O+')"><g'+lt(t,"bzc-gx")+">";var p=0;if(r.forEach(function(M,w){var T=Math.min(M,Math.max(0,o-p))/o*m;T>0&&(z+='<rect x="'+a(y+p/o*m)+'" y="'+b+'" width="'+a(T)+'" height="14" fill="'+i[w%i.length]+'"/>'),w>0&&T>0&&(z+='<rect x="'+a(y+p/o*m-1)+'" y="'+b+'" width="2" height="14" fill="'+(t.background||e.tile)+'"/>'),p+=M}),z+="</g></g>",v(t.goal)){var B=y+_(+t.goal/o,0,1)*m;z+='<line x1="'+a(B)+'" x2="'+a(B)+'" y1="'+(b-4)+'" y2="'+(b+18)+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return p=0,r.forEach(function(M,w){var T=Math.min(M,Math.max(0,o-p))/o*m;T>0&&(z+=vt(y+p/o*m,b-4,T,22,(l[w]||(n?"Progress":"#"+(w+1)))+": "+x(M)+(n?"":" ("+Math.round(M/o*100)+"%)"))),p+=M}),C.forEach(function(M,w){var T=y+M.x,V=b+14+12+M.row*20+8;z+='<circle cx="'+a(T+4)+'" cy="'+a(V)+'" r="4" fill="'+i[w%i.length]+'"/><text x="'+a(T+14)+'" y="'+a(V+4)+'" fill="'+e.fg+'" font-family="'+it+'" font-size="12">'+at(M.l)+'<tspan dx="6" fill="'+e.muted+'" font-family="'+dt+'" font-size="11">'+at(h(r[w],t))+"</tspan></text>"}),z},{stat:F,summary:n?x(r[0])+(c?"":" of "+h(o,t)):h(s,t)+" of "+h(o,t)})}de.table=function(t){var e=K(t.values).map(function(s){return Math.max(0,s)}),r=U(t.labels),l=e.length===1,i=v(t.max)?I(t.max,100):l?100:zt(e);i>0||(i=1);var n=!v(t.prefix)&&!v(t.suffix)&&i===100&&l;return l?{head:["Label","Value"],rows:[[r[0]||"Progress",h(e[0],t)+(n?"%":" of "+h(i,t))]]}:{head:["Label","Value","Share"],rows:e.map(function(s,o){return[r[o]||"#"+(o+1),h(s,t),Math.round(s/i*100)+"%"]})}};var Be={weekday:"short",day:"numeric",month:"short",year:"numeric"};function Ue(t,e){if(v(t.start)&&/^\d{4}-\d{2}-\d{2}$/.test(String(t.start)))return new Date(String(t.start)+"T00:00:00Z");var r=new Date;return new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())-Math.max(0,e-1)*864e5)}function Ve(t,e){try{return new Intl.DateTimeFormat(t,Object.assign({timeZone:"UTC"},e))}catch{return new Intl.DateTimeFormat("en-GB",Object.assign({timeZone:"UTC"},e))}}function ge(t,e){var r=K(t.values),l=ut(t,e)[0],i=t.lang||"en-GB",n=Ue(t,r.length),s=(n.getUTCDay()+6)%7,o=Math.max(1,Math.ceil((s+r.length)/7)),c=Vt(t),x=28,g=Math.max(1,Math.floor((c.w-x)/10));if(o>g){var d=(o-g)*7-s;r=r.slice(d),n=new Date(n.getTime()+d*864e5),s=0,o=g}var f=Math.min(18,(c.w-x)/o),C=f<8?1:3,E=f-C,R=16+7*f+26,F=r.length?Math.max.apply(null,r):0,y=function(b){return Ve(i,b)},L=y({month:"short"}),m=y({weekday:"short"}),A=y(Be),z=kt(r,t,"");return mt(t,e,R,function(b,O,k,p){if(!r.length)return ht(e,b,O,k,p);var B="",M=b+x,w=O+16,T=-99,V=[.28,.5,.75,1];f>=9&&[0,2,4].forEach(function(W){var gt=new Date(Date.UTC(2024,0,1+W));B+=S(b,w+W*f+E/2+3.5,m.format(gt),G(e,9))});for(var Y=0;Y<r.length;Y++){var tt=s+Y,Q=Math.floor(tt/7),ot=tt%7,q=new Date(n.getTime()+Y*864e5),J=M+Q*f,Lt=w+ot*f;(q.getUTCDate()===1||Y===0)&&J-T>30&&(B+=S(J,O+9,L.format(q),G(e,9)),T=J);var st=r[Y]<=0||!F?0:Math.ceil(r[Y]/F*4),pt=st?l:e.grid,D=st?V[st-1]:.7;B+='<rect x="'+a(J)+'" y="'+a(Lt)+'" width="'+a(E)+'" height="'+a(E)+'" rx="'+a(E*.24)+'" fill="'+pt+'" fill-opacity="'+D+'"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(Q*.012)+'s"':"")+' data-tip="'+at(A.format(q)+": "+h(r[Y],t))+'"/>'}var u=w+7*f+14,H=10,N=b+k-5*(H+3)-30;B+=S(b,u+8,h(zt(r),t,!0)+" in "+r.length+" days",G(e,10)),B+=S(N-6,u+8,"Less",G(e,9,'text-anchor="end"'));for(var et=0;et<5;et++)B+='<rect x="'+a(N+et*(H+3))+'" y="'+u+'" width="'+H+'" height="'+H+'" rx="2.5" fill="'+(et?l:e.grid)+'" fill-opacity="'+(et?V[et-1]:.7)+'"/>';return B+=S(N+5*(H+3)+3,u+8,"More",G(e,9)),B},{stat:z,summary:h(zt(r),t)+" across "+r.length+" days"})}ge.table=function(t){var e=K(t.values),r=Ue(t,e.length),l=Ve(t.lang||"en-GB",Be);return{head:["Date","Value"],rows:e.map(function(i,n){return[l.format(new Date(r.getTime()+n*864e5)),h(i,t)]})}};function je(t,e){var r=Math.min(t.length,e.length);if(r<2)return null;var l=0,i=0,n;for(n=0;n<r;n++)l+=t[n],i+=e[n];l/=r,i/=r;var s=0,o=0,c=0;for(n=0;n<r;n++)s+=(t[n]-l)*(t[n]-l),o+=(e[n]-i)*(e[n]-i),c+=(t[n]-l)*(e[n]-i);if(!s)return null;var x=c/s;return{slope:x,intercept:i-x*l,r:o?c/Math.sqrt(s*o):0}}function ve(t,e){for(var r=Et(t.x),l=Et(t.y),i=U(t.series),n=U(t.labels),s=ut(t,e),o=[],c=0;c<Math.max(r.length,l.length);c++){var x=r[c]||[],g=l[c]||[],d=Math.min(x.length,g.length);o.push({xs:x.slice(0,d),ys:g.slice(0,d)})}o=o.filter(function(O){return O.xs.length});var f=o.reduce(function(O,k){return O+k.xs.length},0),C=I(t.height,210),E=o.length>1||i.length>0,R=j(t.trend),F=function(O){return i[O]||"Group "+(O+1)},y={decimals:t.decimals,compact:t.compact,lang:t.lang},L=Xt(t,n),m=Ut(t.markers,oe,"circle"),A=t.background||e.tile,z=function(O){var k=m?m(O):"circle";return k==="none"?"circle":k},b=m&&function(O,k,p){return _t(z(O),k+4,p+6,4,' fill="'+s[O%s.length]+'"')};return mt(t,e,C,function(O,k,p,B){if(!f)return ht(e,O,k,p,B);var M="",w=k;if(E){var T=Bt(o.map(function(P,Z){return F(Z)}),s,e,O,w,p,b);M+=T.svg,w+=T.height}var V=[].concat.apply([],o.map(function(P){return P.xs})),Y=[].concat.apply([],o.map(function(P){return P.ys})),tt=Math.min.apply(null,Y),Q=Math.max.apply(null,Y);v(t.goal)&&(tt=Math.min(tt,+t.goal),Q=Math.max(Q,+t.goal)),j(t.zero)&&(tt=Math.min(0,tt),Q=Math.max(0,Q));var ot=ee(tt,Q,4),q=ee(Math.min.apply(null,V),Math.max.apply(null,V),5),J=ot.ticks.map(function(P){return h(P,t,!0)}),Lt=Pe(J)+(v(t.yLabel)?14:0),st=20+(v(t.xLabel)?16:0),pt=O+Lt,D=p-Lt,u=B-(w-k)-st,H=function(P){return pt+6+(P-q.lo)/(q.hi-q.lo)*(D-12)},N=function(P){return w+6+u-6-(P-ot.lo)/(ot.hi-ot.lo)*(u-6)};ot.ticks.forEach(function(P,Z){var X=N(P);M+='<line x1="'+a(pt)+'" x2="'+a(pt+D)+'" y1="'+a(X)+'" y2="'+a(X)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+S(pt-8,X+3.5,J[Z],G(e,10,'text-anchor="end"'))});var et=Math.max(1,Math.ceil(q.ticks.length*44/D));if(q.ticks.forEach(function(P,Z){if(!(Z%et)){var X=H(P);M+='<line x1="'+a(X)+'" x2="'+a(X)+'" y1="'+a(w)+'" y2="'+a(w+u)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+S(X,w+u+15,h(P,y,!0),G(e,10,'text-anchor="middle"'))}}),v(t.xLabel)&&(M+=S(pt+D/2,w+u+32,t.xLabel,G(e,10,'text-anchor="middle" font-weight="600"'))),v(t.yLabel)){var W=w+u/2;M+='<text x="'+a(O+4)+'" y="'+a(W)+'" transform="rotate(-90 '+a(O+4)+" "+a(W)+')" text-anchor="middle" '+G(e,10,'font-weight="600"')+' dominant-baseline="hanging">'+String(t.yLabel).replace(/[&<>"]/g,function(P){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[P]})+"</text>"}v(t.goal)&&(M+=Dt(t,e,pt,pt+D,N(+t.goal))),R&&o.forEach(function(P,Z){var X=je(P.xs,P.ys);if(X){var ft=Math.min.apply(null,P.xs),St=Math.max.apply(null,P.xs),Rt=X.slope*ft+X.intercept,nt=X.slope*St+X.intercept,At=s[Z%s.length];M+='<line x1="'+a(H(ft))+'" y1="'+a(_(N(Rt),w,w+u))+'" x2="'+a(H(St))+'" y2="'+a(_(N(nt),w,w+u))+'" stroke="'+At+'" stroke-width="2" stroke-dasharray="6 4" stroke-linecap="round" stroke-opacity=".9"/>',M+=S(Math.min(H(St),pt+D)-2,_(N(nt),w+10,w+u)-7,"r = "+X.r.toFixed(2),G(e,10,'text-anchor="end" font-weight="600"',At))}});var gt=0,xt=f>150?3:4.5;o.forEach(function(P,Z){var X=s[Z%s.length];P.xs.forEach(function(ft,St){var Rt=H(ft),nt=N(P.ys[St]),At=(n[gt]?n[gt]+`
7
- `:E?F(Z)+`
8
- `:"")+(v(t.xLabel)?t.xLabel:"x")+": "+h(ft,y)+`
9
- `+(v(t.yLabel)?t.yLabel:"y")+": "+h(P.ys[St],t);M+=_t(z(Z),Rt,nt,xt,' fill="'+X+'" fill-opacity=".85" stroke="'+A+'" stroke-width="1.5"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(Math.min(.8,gt*.012))+'s"':"")),M+=vt(Rt-8,nt-8,16,16,At),gt++})});var Mt=[];return o.forEach(function(P){P.xs.forEach(function(Z,X){Mt.push([H(Z),N(P.ys[X])])})}),L.forEach(function(P){var Z=Mt[P.i];Z&&(M+='<circle cx="'+a(Z[0])+'" cy="'+a(Z[1])+'" r="'+(xt+4)+'" fill="none" stroke="'+e.fg+'" stroke-width="1.5"/>'+S(_(Z[0],pt+30,pt+D-30),Z[1]-xt-9,P.text,G(e,10,'text-anchor="middle"',e.fg)))}),M},{summary:f+" points"+(E?" in "+o.length+" groups":"")})}ve.table=function(t){var e=Et(t.x),r=Et(t.y),l=U(t.series),i=U(t.labels),n=e.length>1||l.length>0,s={decimals:t.decimals,compact:t.compact,lang:t.lang},o=[],c=0;return e.forEach(function(x,g){for(var d=r[g]||[],f=0;f<Math.min(x.length,d.length);f++,c++)o.push([i[c]||"#"+(c+1)].concat(n?[l[g]||"Group "+(g+1)]:[],[h(x[f],s),h(d[f],t)]))}),{head:["Point"].concat(n?["Group"]:[],[v(t.xLabel)?t.xLabel:"x",v(t.yLabel)?t.yLabel:"y"]),rows:o}};var Zt={spark:fe,line:ce,bars:ue,scatter:ve,ring:he,donut:me,gauge:pe,progress:de,heatmap:ge},tr=t=>t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase());function Ie(t,e){if(!Zt[t])throw new Error(`Bezel Charts: unknown chart type "${t}". Choose one of: ${Object.keys(Zt).join(", ")}.`);let r={};for(let[l,i]of Object.entries(e))r[tr(l)]=i;return r}function re(t,e={}){let r=Ie(t,e);r.animate=j(r.animate),r.frame=r.frame==="none"?"none":"bezel";let l=r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme||"dark";return Zt[t](r,Wt[l])}function Ye(t,e={}){return Zt[t].table(Ie(t,e))}function Se(t){return t.replace(/<rect class="bzc-hit"[^>]*\/>/g,"").replace(/<circle[^>]* class="bzc-hit"[^>]*\/>/g,"").replace(/ data-tip="[^"]*"/g,"")}function er(t,e={}){return Se(re(t,{...e,animate:!1}))}var qe=["type","values","labels","series","heading","prefix","suffix","decimals","compact","color","theme","frame","width","height","goal","goal-label","notes","show-values","stat","delta","delta-label","max","min","value","zones","horizontal","straight","zero","start","lang","corners","background","center-label","highlight","x","y","x-label","y-label","trend","static","no-tooltips","stacked","angle-labels","dash","markers","patterns"],rr=`:host{display:block;position:relative;max-width:100%}:host([hidden]){display:none}svg{display:block;max-width:100%;height:auto;overflow:visible}.tip{position:absolute;left:0;top:0;pointer-events:none;background:#0b0b10;color:#f2f1f7;font:600 12px/1.5 ${dt};padding:7px 10px;border-radius:10px;white-space:pre;opacity:0;transform:translate(-50%,calc(-100% - 12px));transition:opacity .12s;z-index:3;border:1px solid #2a2935;box-shadow:0 8px 24px rgba(0,0,0,.35)}.tip.on{opacity:1}.c{outline:none}.c:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 7px #000}.k{stroke:currentColor;stroke-width:2;stroke-opacity:1}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (forced-colors:active){.c:focus-visible{outline-color:Highlight}}`,ar={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1},nr=()=>typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null,ir=()=>{let t=typeof document<"u"&&document.documentElement?.getAttribute?.("data-theme");return t==="light"||t==="dark"?t:null},Ee=new Set;typeof MutationObserver=="function"&&typeof document<"u"&&document.documentElement&&new MutationObserver(()=>Ee.forEach(t=>t.refresh())).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});var lr=typeof HTMLElement>"u"?class{}:HTMLElement,ae=class extends lr{static get observedAttributes(){return qe}static get themes(){return Wt}get resolvedTheme(){let e=this.getAttribute("theme");return e==="light"||e==="dark"?e:this.options.autoTheme}get chartType(){return this.getAttribute("type")||"spark"}connectedCallback(){this.shadowRoot||(this.attachShadow({mode:"open"}).innerHTML=`<style>${rr}</style><div class="c" role="group" aria-roledescription="chart"></div><p class="sr" id="h">Use the arrow keys to step through the values.</p><div class="tip" aria-hidden="true"></div><div class="sr" aria-live="polite"></div><div class="sr"></div>`,[,this.#t,,this.#r,this.#o,this.#c]=this.shadowRoot.children,this.shadowRoot.addEventListener("pointermove",e=>this.#h(e)),this.shadowRoot.addEventListener("pointerdown",e=>this.#h(e)),this.addEventListener("pointerleave",()=>this.#r.classList.remove("on")),this.#t.addEventListener("keydown",e=>this.#v(e)),this.#t.addEventListener("blur",()=>this.#g())),Ee.add(this),this.#a=nr(),this.#a?.addEventListener?.("change",this.#u),typeof ResizeObserver=="function"?(this.#l=new ResizeObserver(([e])=>{let r=Math.round(e.contentRect.width);(!this.#n||!this.hasAttribute("width")&&r>0&&Math.abs(r-this.#s)>1)&&this.#i()}),this.#l.observe(this)):this.#i()}disconnectedCallback(){Ee.delete(this),this.#l?.disconnect(),this.#a?.removeEventListener?.("change",this.#u)}attributeChangedCallback(){!this.#n||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#i()}))}get options(){let e={};for(let r of qe)this.hasAttribute(r)&&(e[r]=this.getAttribute(r));return e.width||(e.width=this.#s||360),e.autoTheme=ir()||(this.#a?this.#a.matches?"dark":"light":"dark"),e}refresh(){this.#n&&this.#i()}toSVG(e={}){return Se(re(this.chartType,{...this.options,...e,animate:!1}))}download(e){let r=URL.createObjectURL(new Blob([this.toSVG()],{type:"image/svg+xml"})),l=Object.assign(document.createElement("a"),{href:r,download:`${(e||this.getAttribute("heading")||this.chartType).replace(/[^\w-]+/g,"-").toLowerCase()}.svg`});document.body.append(l),l.click(),l.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}#l=null;#t=null;#r=null;#o=null;#c=null;#e=-1;#a=null;#s=0;#n=!1;#f=!1;#u=()=>{let e=this.getAttribute("theme");(!e||e==="auto")&&this.refresh()};#i(){if(!this.shadowRoot)return;let e=Math.round(this.getBoundingClientRect?.().width||0);this.#s=e>0?e:360;let r=this.options;r.animate=!this.#n&&!this.hasAttribute("static");let l,i=null;try{l=re(this.chartType,r),i=Ye(this.chartType,r)}catch(c){l=`<p style="font:13px ${it};color:#d63f7c">${at(c.message)}</p>`}let n=this.#t;n.innerHTML=l.replace(/<title>[\s\S]*?<\/title>/,"");let s=n.querySelector("svg");s?(n.setAttribute("aria-label",s.getAttribute("aria-label")),s.removeAttribute("role"),s.removeAttribute("aria-label"),s.setAttribute("aria-hidden","true")):n.removeAttribute("aria-label");let o=!!s&&!this.hasAttribute("no-tooltips");o?(n.setAttribute("tabindex","0"),n.setAttribute("aria-describedby","h")):(n.removeAttribute("tabindex"),n.removeAttribute("aria-describedby")),n.style.color=Wt[r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme].fg,n.style.borderRadius=`${r.frame==="none"?4:_(+r.corners||22,0,60)}px`,this.#c.innerHTML=i&&i.rows.length?or(r.heading,i):"",this.#e>=0&&o&&this.shadowRoot.activeElement===n?this.#d(this.#e):this.#e=-1,this.#n=!0,this.dispatchEvent(new CustomEvent("bezel-render",{bubbles:!0}))}#h(e){if(this.hasAttribute("no-tooltips"))return;let r=e.target?.closest?.("[data-tip]");if(!r){this.#r.classList.remove("on");return}this.#m(r,e.clientX,e.clientY)}#m(e,r,l){let i=this.#r;i.textContent=e.getAttribute("data-tip");let n=this.getBoundingClientRect?.()||{left:0,top:0,width:0},s=i.offsetWidth/2;i.style.left=`${_(r-n.left,s,Math.max(s,n.width-s))}px`,i.style.top=`${l-n.top}px`,i.classList.add("on")}#p(){return[...this.#t.querySelectorAll("[data-tip]:not([data-skip])")]}#v(e){let r=this.#p(),l=r.length;if(!l)return;let i=this.#e,n=ar[e.key];if(n)this.chartType==="heatmap"&&/Left|Right/.test(e.key)&&(n*=7),i=i<0?n>0?0:l-1:_(i+n,0,l-1);else if(e.key==="Home"||e.key==="End")i=e.key==="Home"?0:l-1;else{e.key==="Escape"&&this.#g();return}e.preventDefault(),this.#d(i,!0)}#d(e,r){let l=this.#p();if(!l.length)return;e=_(e,0,l.length-1),this.#t.querySelector(".k")?.classList.remove("k");let i=l[e],n=i.getBoundingClientRect?.()||{left:0,top:0,width:0};i.classList.add("k"),this.#e=e,this.#m(i,n.left+n.width/2,n.top),r&&(this.#o.textContent=`${i.getAttribute("data-tip").replace(/\n/g,", ")}. ${e+1} of ${l.length}`)}#g(){this.#t.querySelector(".k")?.classList.remove("k"),this.#r.classList.remove("on"),this.#o.textContent="",this.#e=-1}};function or(t,{head:e,rows:r}){let l=i=>i.map((n,s)=>s?`<td>${at(n)}</td>`:`<th scope="row">${at(n)}</th>`).join("");return`<table><caption>${at(t||"Chart data")}</caption><thead><tr>${e.map(i=>`<th scope="col">${at(i)}</th>`).join("")}</tr></thead><tbody>${r.map(i=>`<tr>${l(i)}</tr>`).join("")}</tbody></table>`}var sa="1.2.0",sr=Object.keys(Zt);if(typeof customElements<"u"&&typeof HTMLElement<"u"){for(let t of sr){let e=`bezel-${t}`;customElements.get(e)||customElements.define(e,class extends ae{get chartType(){return t}})}customElements.get("bezel-chart")||customElements.define("bezel-chart",class extends ae{})}export{ae as BezelChart,re as render,Wt as themes,er as toSVG,sr as types,sa as version};
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ var ft="ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif",xt="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",or=0;function Ht(t){return"bzc"+t+(++or).toString(36)+Math.random().toString(36).slice(2,6)}function ct(t){return String(t??"").replace(/[&<>"']/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[e]})}function a(t){return Math.round(t*100)/100}function Q(t,e,r){return Math.max(e,Math.min(r,t))}function W(t,e){var r=parseFloat(t);return isFinite(r)?r:e}function A(t){return t!=null&&t!==""}function rt(t){return Array.isArray(t)?t.map(function(e){var r=+e;return isFinite(r)?r:0}):A(t)?String(t).split(/[\s,;]+/).filter(Boolean).map(function(e){var r=+e;return isFinite(r)?r:0}):[]}function U(t){return Array.isArray(t)?t.map(String):A(t)?String(t).split(",").map(function(e){return e.trim()}):[]}function wt(t){return Array.isArray(t)?Array.isArray(t[0])?t.map(rt):[rt(t)]:A(t)?String(t).split("|").map(rt).filter(function(e){return e.length}):[]}function Ft(t){return t.reduce(function(e,r){return e+r},0)}function St(t,e,r){return String(t).length*e*(r?.6:.56)}function Zt(t,e){return t=String(t),t.length>e?t.slice(0,Math.max(1,e-1))+"\u2026":t}function K(t){return t===!0||t===""||t==="true"||t==="1"}function h(t,e,r){if(!isFinite(t))return"\u2013";var l=Math.abs(t),i;A(e.decimals)?i=Q(parseInt(e.decimals,10)||0,0,6):i=t%1===0?0:l<10?2:l<100?1:0;var n={maximumFractionDigits:i,minimumFractionDigits:A(e.decimals)?i:0};(K(e.compact)||r)&&l>=1e4&&(n={notation:"compact",maximumFractionDigits:1});var s;try{s=new Intl.NumberFormat(e.lang||"en-GB",n).format(l)}catch{s=String(a(l))}return(t<0?"\u2212":"")+(e.prefix||"")+s+(e.suffix||"")}function Ut(t,e){if(!t.length)return"";for(var r="M"+a(t[0][0])+","+a(t[0][1]),l=1;l<t.length;l++){var i=t[l-1],n=t[l];if(e)r+="L"+a(n[0])+","+a(n[1]);else{var s=(i[0]+n[0])/2;r+="C"+a(s)+","+a(i[1])+" "+a(s)+","+a(n[1])+" "+a(n[0])+","+a(n[1])}}return r}function O(t,e,r,l){return'<text x="'+a(t)+'" y="'+a(e)+'" '+(l||"")+">"+ct(r)+"</text>"}function H(t,e,r,l){return'fill="'+(l||t.muted)+'" font-family="'+xt+'" font-size="'+(e||10)+'"'+(r?" "+r:"")}function zt(t,e,r,l,i){return'<rect class="bzc-hit" x="'+a(t)+'" y="'+a(e)+'" width="'+a(Math.max(1,r))+'" height="'+a(Math.max(1,l))+'" fill="#000" fill-opacity="0" data-tip="'+ct(i)+'"/>'}function ut(t,e,r){return t.animate?' class="'+e+'"'+(r?' style="animation-delay:'+a(r)+'s"':""):""}function ht(t,e){var r=U(t.color).filter(Boolean);return r.length?r:e.palette}function mt(t,e,r,l,i){return O(e+l/2,r+i/2+4,"No data yet",'text-anchor="middle" fill="'+t.muted+'" font-family="'+ft+'" font-size="13"')}function Yt(t,e){return A(t.notes)?String(t.notes).split(";").map(function(r){var l=r.indexOf(":");if(l<0)return null;var i=r.slice(0,l).trim(),n=r.slice(l+1).trim(),s=e.map(String).indexOf(i);return s<0&&String(parseInt(i,10))===i&&(s=parseInt(i,10)),s>=0&&n?{i:s,text:n}:null}).filter(Boolean):[]}function It(t,e,r,l,i){var n=(A(t.goalLabel)?t.goalLabel:"Goal")+" "+h(W(t.goal,0),t);return'<line x1="'+a(r)+'" x2="'+a(l)+'" y1="'+a(i)+'" y2="'+a(i)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-width="1.25" stroke-dasharray="4 4"/>'+O(l,i-5,n,H(e,10,'text-anchor="end"'))}function kt(t,e,r){var l=String(A(e.stat)?e.stat:r||"").toLowerCase();if(!l||l==="none"||!t.length)return null;var i=Ft(t),n={last:t[t.length-1],total:i,sum:i,average:i/t.length,avg:i/t.length,max:Math.max.apply(null,t),min:Math.min.apply(null,t)};if(!(l in n))return null;var s=null;return l==="last"&&t.length>1&&e.delta!=="none"&&(s=t[t.length-1]-t[0]),{val:n[l],delta:s}}function qt(t){var e=Math.round(Q(W(t.width,360),160,2400)),r=t.frame==="none"?0:4,l=t.frame==="none"?8:20;return{W:e,b:r,P:l,w:e-2*(r+l)}}var sr=".bzc-a{animation:bzc-in .6s ease both}.bzc-d{animation:bzc-draw 1.1s cubic-bezier(.3,.7,.2,1) both}.bzc-g{transform-box:fill-box;transform-origin:50% 100%;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gn{transform-box:fill-box;transform-origin:50% 0;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gx{transform-box:fill-box;transform-origin:0 50%;animation:bzc-growx .8s cubic-bezier(.2,.8,.2,1) both}.bzc-s{animation:bzc-sweep 1.1s cubic-bezier(.2,.8,.2,1) both}@keyframes bzc-in{from{opacity:0}}@keyframes bzc-draw{from{stroke-dashoffset:1}}@keyframes bzc-grow{from{transform:scaleY(0)}}@keyframes bzc-growx{from{transform:scaleX(0)}}@keyframes bzc-sweep{from{stroke-dasharray:0 100}}@media (prefers-reduced-motion:reduce){[class^=bzc-]{animation:none!important}}";function pt(t,e,r,l,i){var n=qt(t),s=n.W,o=n.b,f=n.P,u=n.w,p=Q(W(t.corners,22),0,60),m=o+f,c="";A(t.heading)&&(c+=O(o+f,m+10,String(t.heading).toUpperCase(),H(e,11,'font-weight="600" letter-spacing="1.3"')),m+=24);var T=i&&i.stat;if(T){if(c+=O(o+f,m+30,h(T.val,t),'fill="'+e.fg+'" font-family="'+ft+'" font-size="32" font-weight="800" letter-spacing="-0.5"'),T.delta!=null){var w=T.delta>0,B=T.delta===0,N=t.delta==="inverse"?!w:w,L=B?e.muted:N?e.up:e.down,z=(B?"\u25CF ":w?"\u25B2 ":"\u25BC ")+h(Math.abs(T.delta),t)+" "+(A(t.deltaLabel)?t.deltaLabel:"since start");c+=O(o+f+u,m+28,z,'text-anchor="end" fill="'+L+'" font-family="'+xt+'" font-size="11" font-weight="600"')}m+=44}var g=l(o+f,m,u,r),V=Math.round(m+r+f+o),k="";t.frame!=="none"?k='<rect width="'+s+'" height="'+V+'" rx="'+p+'" fill="'+e.bezel+'"/><rect x="'+o+'" y="'+o+'" width="'+(s-2*o)+'" height="'+(V-2*o)+'" rx="'+Math.max(0,p-o)+'" fill="'+(t.background||e.tile)+'"/>':A(t.background)&&(k='<rect width="'+s+'" height="'+V+'" rx="'+p+'" fill="'+t.background+'"/>');var d=(A(t.heading)?t.heading+": ":"")+(i&&i.summary||"chart");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '+s+" "+V+'" width="'+s+'" height="'+V+'" role="img" aria-label="'+ct(d)+'"><title>'+ct(d)+"</title>"+(t.animate?"<style>"+sr+"</style>":"")+k+c+g+"</svg>"}function ue(t,e){var r=rt(t.values),l=ht(t,e)[0],i=W(t.height,64),n=U(t.labels),s=Yt(t,n),o=kt(r,t,"last");return pt(t,e,i,function(f,u,p,m){if(!r.length)return mt(e,f,u,p,m);var c=r.length===1?[r[0],r[0]]:r,T=Math.min.apply(null,c),w=Math.max.apply(null,c);A(t.goal)&&(T=Math.min(T,+t.goal),w=Math.max(w,+t.goal));var B=(w-T||Math.abs(w)||1)*.12;T-=B,w+=B;var N=function(v){return f+v*p/(c.length-1)},L=function(v){return u+m-(v-T)/(w-T)*m},z=c.map(function(v,x){return[N(x),L(v)]}),g=Ut(z,K(t.straight)),V=Ht("g"),k=z[z.length-1],d='<defs><linearGradient id="'+V+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+l+'" stop-opacity=".32"/><stop offset="1" stop-color="'+l+'" stop-opacity="0"/></linearGradient></defs>';[1/3,2/3].forEach(function(v){d+='<line x1="'+f+'" x2="'+(f+p)+'" y1="'+a(u+m*v)+'" y2="'+a(u+m*v)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'}),d+='<path d="'+g+"L"+a(k[0])+","+(u+m)+"L"+f+","+(u+m)+'Z" fill="url(#'+V+')"'+ut(t,"bzc-a")+"/>",d+='<path d="'+g+'" fill="none" stroke="'+l+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1"'+ut(t,"bzc-d")+"/>",A(t.goal)&&(d+=It(t,e,f,f+p,L(+t.goal))),s.forEach(function(v){if(!(v.i>=r.length)){var x=z[v.i];d+='<circle cx="'+a(x[0])+'" cy="'+a(x[1])+'" r="3.5" fill="'+e.fg+'"/>'+O(Q(x[0],f+30,f+p-30),x[1]-9,v.text,H(e,10,'text-anchor="middle"',e.fg))}}),d+='<circle cx="'+a(k[0])+'" cy="'+a(k[1])+'" r="9" fill="'+l+'" fill-opacity=".25"/><circle cx="'+a(k[0])+'" cy="'+a(k[1])+'" r="4.5" fill="'+l+'"/>',K(t.showValues)&&z.forEach(function(v,x){x<r.length&&(d+=O(v[0],v[1]-8,h(r[x],t,!0),H(e,9,'text-anchor="middle"')))});var b=r.length>1?p/(r.length-1):p;return r.forEach(function(v,x){d+=zt(N(x)-b/2,u-6,b,m+12,(n[x]||"#"+(x+1))+": "+h(v,t))}),d},{stat:o,summary:r.length?"latest "+h(r[r.length-1],t):"no data"})}ue.table=function(t){var e=U(t.labels);return{head:["Label","Value"],rows:rt(t.values).map(function(r,l){return[e[l]||"#"+(l+1),h(r,t)]})}};var te={dark:{tile:"#15151d",bezel:"#000000",fg:"#f2f1f7",muted:"#8c8aa0",grid:"#2a2935",up:"#5EE6C8",down:"#F675A8",palette:["#9FA1FF","#F675A8","#5EE6C8","#FFC857","#7CC4FF","#FF8A5B"]},light:{tile:"#ffffff",bezel:"#000000",fg:"#17161f",muted:"#6b6980",grid:"#e8e6ef",up:"#12a383",down:"#d63f7c",palette:["#6E70F0","#E2508C","#16A884","#D99A0E","#2F8FE0","#EE6431"]}};var he=["spark","line","area","bars","scatter","ring","donut","gauge","progress","heatmap"],me={};function dt(t,e){me[t]=e}var fr=t=>t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase());function We(t,e){if(!me[t])throw new Error(he.includes(t)?`Bezel Charts: the ${t} chart isn't loaded. Add import 'bezel-charts/${t}', or load dist/charts/${t}.js.`:`Bezel Charts: unknown chart type "${t}". Choose one of: ${he.join(", ")}.`);let r={};for(let[l,i]of Object.entries(e))r[fr(l)]=i;return r}function Et(t,e={}){let r=We(t,e);r.animate=K(r.animate),r.frame=r.frame==="none"?"none":"bezel";let l=r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme||"dark";return me[t](r,te[l])}function Ze(t,e={}){return me[t].table(We(t,e))}function Ge(t){return t.replace(/<rect class="bzc-hit"[^>]*\/>/g,"").replace(/<circle[^>]* class="bzc-hit"[^>]*\/>/g,"").replace(/ data-tip="[^"]*"/g,"")}function Nt(t,e={}){return Ge(Et(t,{...e,animate:!1}))}var qe=["type","values","labels","series","heading","prefix","suffix","decimals","compact","color","theme","frame","width","height","goal","goal-label","notes","show-values","stat","delta","delta-label","max","min","value","zones","horizontal","straight","zero","start","lang","corners","background","center-label","highlight","x","y","x-label","y-label","trend","static","no-tooltips","stacked","angle-labels","dash","markers","patterns"],cr=`:host{display:block;position:relative;max-width:100%}:host([hidden]){display:none}svg{display:block;max-width:100%;height:auto;overflow:visible}.tip{position:absolute;left:0;top:0;pointer-events:none;background:#0b0b10;color:#f2f1f7;font:600 12px/1.5 ${xt};padding:7px 10px;border-radius:10px;white-space:pre;opacity:0;transform:translate(-50%,calc(-100% - 12px));transition:opacity .12s;z-index:3;border:1px solid #2a2935;box-shadow:0 8px 24px rgba(0,0,0,.35)}.tip.on{opacity:1}.c{outline:none}.c:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 7px #000}.k{stroke:currentColor;stroke-width:2;stroke-opacity:1}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (forced-colors:active){.c:focus-visible{outline-color:Highlight}}`,ur={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1},hr=()=>typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null,mr=()=>{let t=typeof document<"u"&&document.documentElement?.getAttribute?.("data-theme");return t==="light"||t==="dark"?t:null},He=new Set;typeof MutationObserver=="function"&&typeof document<"u"&&document.documentElement&&new MutationObserver(()=>He.forEach(t=>t.refresh())).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});var pr=typeof HTMLElement>"u"?class{}:HTMLElement,Lt=class extends pr{static get observedAttributes(){return qe}static get themes(){return te}get resolvedTheme(){let e=this.getAttribute("theme");return e==="light"||e==="dark"?e:this.options.autoTheme}get chartType(){return this.getAttribute("type")||"spark"}connectedCallback(){this.shadowRoot||(this.attachShadow({mode:"open"}).innerHTML=`<style>${cr}</style><div class="c" role="group" aria-roledescription="chart"></div><p class="sr" id="h">Use the arrow keys to step through the values.</p><div class="tip" aria-hidden="true"></div><div class="sr" aria-live="polite"></div><div class="sr"></div>`,[,this.#t,,this.#r,this.#o,this.#c]=this.shadowRoot.children,this.shadowRoot.addEventListener("pointermove",e=>this.#h(e)),this.shadowRoot.addEventListener("pointerdown",e=>this.#h(e)),this.addEventListener("pointerleave",()=>this.#r.classList.remove("on")),this.#t.addEventListener("keydown",e=>this.#v(e)),this.#t.addEventListener("blur",()=>this.#g())),He.add(this),this.#a=hr(),this.#a?.addEventListener?.("change",this.#u),typeof ResizeObserver=="function"?(this.#l=new ResizeObserver(([e])=>{let r=Math.round(e.contentRect.width);(!this.#n||!this.hasAttribute("width")&&r>0&&Math.abs(r-this.#s)>1)&&this.#i()}),this.#l.observe(this)):this.#i()}disconnectedCallback(){He.delete(this),this.#l?.disconnect(),this.#a?.removeEventListener?.("change",this.#u)}attributeChangedCallback(){!this.#n||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#i()}))}get options(){let e={};for(let r of qe)this.hasAttribute(r)&&(e[r]=this.getAttribute(r));return e.width||(e.width=this.#s||360),e.autoTheme=mr()||(this.#a?this.#a.matches?"dark":"light":"dark"),e}refresh(){this.#n&&this.#i()}toSVG(e={}){return Ge(Et(this.chartType,{...this.options,...e,animate:!1}))}download(e){let r=URL.createObjectURL(new Blob([this.toSVG()],{type:"image/svg+xml"})),l=Object.assign(document.createElement("a"),{href:r,download:`${(e||this.getAttribute("heading")||this.chartType).replace(/[^\w-]+/g,"-").toLowerCase()}.svg`});document.body.append(l),l.click(),l.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}#l=null;#t=null;#r=null;#o=null;#c=null;#e=-1;#a=null;#s=0;#n=!1;#f=!1;#u=()=>{let e=this.getAttribute("theme");(!e||e==="auto")&&this.refresh()};#i(){if(!this.shadowRoot)return;let e=Math.round(this.getBoundingClientRect?.().width||0);this.#s=e>0?e:360;let r=this.options;r.animate=!this.#n&&!this.hasAttribute("static");let l,i=null;try{l=Et(this.chartType,r),i=Ze(this.chartType,r)}catch(f){l=`<p style="font:13px ${ft};color:#d63f7c">${ct(f.message)}</p>`}let n=this.#t;n.innerHTML=l.replace(/<title>[\s\S]*?<\/title>/,"");let s=n.querySelector("svg");s?(n.setAttribute("aria-label",s.getAttribute("aria-label")),s.removeAttribute("role"),s.removeAttribute("aria-label"),s.setAttribute("aria-hidden","true")):n.removeAttribute("aria-label");let o=!!s&&!this.hasAttribute("no-tooltips");o?(n.setAttribute("tabindex","0"),n.setAttribute("aria-describedby","h")):(n.removeAttribute("tabindex"),n.removeAttribute("aria-describedby")),n.style.color=te[r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme].fg,n.style.borderRadius=`${r.frame==="none"?4:Q(+r.corners||22,0,60)}px`,this.#c.innerHTML=i&&i.rows.length?dr(r.heading,i):"",this.#e>=0&&o&&this.shadowRoot.activeElement===n?this.#d(this.#e):this.#e=-1,this.#n=!0,this.dispatchEvent(new CustomEvent("bezel-render",{bubbles:!0}))}#h(e){if(this.hasAttribute("no-tooltips"))return;let r=e.target?.closest?.("[data-tip]");if(!r){this.#r.classList.remove("on");return}this.#m(r,e.clientX,e.clientY)}#m(e,r,l){let i=this.#r;i.textContent=e.getAttribute("data-tip");let n=this.getBoundingClientRect?.()||{left:0,top:0,width:0},s=i.offsetWidth/2;i.style.left=`${Q(r-n.left,s,Math.max(s,n.width-s))}px`,i.style.top=`${l-n.top}px`,i.classList.add("on")}#p(){return[...this.#t.querySelectorAll("[data-tip]:not([data-skip])")]}#v(e){let r=this.#p(),l=r.length;if(!l)return;let i=this.#e,n=ur[e.key];if(n)this.chartType==="heatmap"&&/Left|Right/.test(e.key)&&(n*=7),i=i<0?n>0?0:l-1:Q(i+n,0,l-1);else if(e.key==="Home"||e.key==="End")i=e.key==="Home"?0:l-1;else{e.key==="Escape"&&this.#g();return}e.preventDefault(),this.#d(i,!0)}#d(e,r){let l=this.#p();if(!l.length)return;e=Q(e,0,l.length-1),this.#t.querySelector(".k")?.classList.remove("k");let i=l[e],n=i.getBoundingClientRect?.()||{left:0,top:0,width:0};i.classList.add("k"),this.#e=e,this.#m(i,n.left+n.width/2,n.top),r&&(this.#o.textContent=`${i.getAttribute("data-tip").replace(/\n/g,", ")}. ${e+1} of ${l.length}`)}#g(){this.#t.querySelector(".k")?.classList.remove("k"),this.#r.classList.remove("on"),this.#o.textContent="",this.#e=-1}};function dr(t,{head:e,rows:r}){let l=i=>i.map((n,s)=>s?`<td>${ct(n)}</td>`:`<th scope="row">${ct(n)}</th>`).join("");return`<table><caption>${ct(t||"Chart data")}</caption><thead><tr>${e.map(i=>`<th scope="col">${ct(i)}</th>`).join("")}</tr></thead><tbody>${r.map(i=>`<tr>${l(i)}</tr>`).join("")}</tbody></table>`}function gt(t){typeof customElements>"u"||typeof HTMLElement>"u"||(customElements.get(`bezel-${t}`)||customElements.define(`bezel-${t}`,class extends Lt{get chartType(){return t}}),customElements.get("bezel-chart")||customElements.define("bezel-chart",class extends Lt{}))}dt("spark",ue);gt("spark");function fe(t,e,r){if(t===e)if(t===0)e=1;else{var l=Math.abs(t)*.1;t-=l,e+=l}for(var i=(e-t)/(r||4),n=Math.pow(10,Math.floor(Math.log10(i))),s=i/n,o=(s<=1?1:s<=2?2:s<=5?5:10)*n,f=Math.floor(t/o)*o,u=Math.ceil(e/o)*o,p=[],m=f;m<=u+o/2;m+=o)p.push(+m.toFixed(10));return{lo:f,hi:u,ticks:p}}function Kt(t,e,r,l,i,n,s,o){var f=l,u=i,p="",m=o||13;return t.forEach(function(c,T){var w=m+St(c,12)+16;f>l&&f+w-16>l+n&&(f=l,u+=20),p+=(s?s(T,f,u):'<circle cx="'+a(f+4)+'" cy="'+a(u+6)+'" r="4" fill="'+e[T%e.length]+'"/>')+O(f+m,u+10,c,'fill="'+r.fg+'" font-family="'+ft+'" font-size="12"'),f+=w}),{svg:p,height:u-i+24}}var Xt={solid:"",dashed:"7 5",dotted:"1 5",dashdot:"9 4 1 4"},ee=["circle","square","triangle","diamond"],pe=["solid","stripes","dots","grid"];function Vt(t,e,r){if(t==null||t===!1||t==="none"||t==="false")return null;var l=t===!0||t===""||t==="auto"?e:U(t).map(function(i){return e.indexOf(i)<0?r:i});return l.length?function(i){return l[i%l.length]}:null}function re(t,e,r,l,i){var n=l*1.15,s=l*.85;return t==="square"?'<rect x="'+a(e-s)+'" y="'+a(r-s)+'" width="'+a(2*s)+'" height="'+a(2*s)+'" rx="1"'+i+"/>":t==="triangle"?'<path d="M'+a(e)+","+a(r-n)+"L"+a(e+n)+","+a(r+s)+"L"+a(e-n)+","+a(r+s)+'Z"'+i+"/>":t==="diamond"?'<path d="M'+a(e)+","+a(r-n*1.1)+"L"+a(e+n)+","+a(r)+"L"+a(e)+","+a(r+n*1.1)+"L"+a(e-n)+","+a(r)+'Z"'+i+"/>":'<circle cx="'+a(e)+'" cy="'+a(r)+'" r="'+a(l)+'"'+i+"/>"}function de(t,e,r,l){var i=' stroke="'+l+'" stroke-opacity=".55" stroke-width="1.5"';return'<pattern id="'+t+'" width="6" height="6" patternUnits="userSpaceOnUse"'+(e==="dots"?"":' patternTransform="rotate(45)"')+'><rect width="6" height="6" fill="'+r+'"/>'+(e==="dots"?'<circle cx="3" cy="3" r="1.3" fill="'+l+'" fill-opacity=".55"/>':'<path d="M3,0V6'+(e==="grid"?"M0,3H6":"")+'"'+i+"/>")+"</pattern>"}function Ke(t){return Math.max.apply(null,t.map(function(e){return St(e,10,!0)}))+10}function ae(t,e){for(var r=wt(t.values),l=U(t.series),i=U(t.labels),n=[],s=Math.max.apply(null,[0].concat(r.map(function(m){return m.length}))),o=0;o<s;o++){var f=[i[o]||"#"+(o+1)],u=0;r.forEach(function(m){f.push(o<m.length?h(m[o],t):""),u+=o<m.length?m[o]:0}),e&&f.push(h(u,t)),n.push(f)}var p=r.length>1||l.length?r.map(function(m,c){return l[c]||"Series "+(c+1)}):["Value"];return{head:["Label"].concat(p,e?["Total"]:[]),rows:n}}function ge(t,e,r,l,i,n,s){var o="",f=i,u=r.n,p=r.labels;if(r.names){var m=Kt(r.names,r.pal,e,l,f,n,r.key,r.kw);o+=m.svg,f+=m.height}var c=r.lo,T=r.hi;A(t.goal)&&(c=Math.min(c,+t.goal),T=Math.max(T,+t.goal)),r.zero&&(c=Math.min(0,c),T=Math.max(0,T));var w=fe(c,T,4),B=w.ticks.map(r.tick),N=Math.max.apply(null,B.map(function(C){return St(C,10,!0)}))+10,L=p.length?20:4,z=l+N,g=n-N,V=s-(f-i)-L,k=function(C){return u===1?z+g/2:z+C*g/(u-1)},d=function(C){return f+V-(C-w.lo)/(w.hi-w.lo)*V};if(w.ticks.forEach(function(C,y){var M=d(C);o+='<line x1="'+a(z)+'" x2="'+a(z+g)+'" y1="'+a(M)+'" y2="'+a(M)+'" stroke="'+e.grid+'"'+(C===0?"":' stroke-dasharray="2 4"')+"/>"+O(z-8,M+3.5,B[y],H(e,10,'text-anchor="end"'))}),p.length){for(var b=Math.max(1,Math.ceil(u*(Math.max.apply(null,p.map(function(C){return St(C,10,!0)}))+10)/g)),v=0;v<u;v+=b)if(p[v]!=null){var x=u>1&&v===0?"start":u>1&&v===u-1?"end":"middle";o+=O(k(v),f+V+15,p[v],H(e,10,'text-anchor="'+x+'"'))}}return r.notes.forEach(function(C){if(!(C.i>=u)){var y=k(C.i);o+='<line x1="'+a(y)+'" x2="'+a(y)+'" y1="'+a(f+12)+'" y2="'+a(f+V)+'" stroke="'+e.fg+'" stroke-opacity=".4" stroke-dasharray="3 3"/>'+O(Q(y,z+30,z+g-30),f+8,C.text,H(e,10,'text-anchor="middle"',e.fg))}}),{svg:o,X:k,Y:d,px:z,pw:g,top:f,ph:V}}function ve(t,e,r,l,i){for(var n=A(t.goal)?It(t,e,r.px,r.px+r.pw,r.Y(+t.goal)):"",s=l>1?r.pw/(l-1):r.pw,o=0;o<l;o++)n+=zt(r.X(o)-s/2,r.top,s,r.ph,i(o));return n}function xe(t,e,r,l){return function(i,n,s){var o=t[i%t.length],f=e?Xt[e(i)]:"",u=r?r(i):"none";return'<line x1="'+a(n)+'" x2="'+a(n+18)+'" y1="'+a(s+6)+'" y2="'+a(s+6)+'" stroke="'+o+'" stroke-width="2.5" stroke-linecap="round"'+(f?' stroke-dasharray="'+f+'"':"")+"/>"+(u!=="none"?re(u,n+9,s+6,3.5,' fill="'+o+'" stroke="'+l+'" stroke-width="1.5"'):"")}}function ye(t,e,r,l,i){return i?'<path d="'+e+'" fill="none" stroke="'+r+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="'+i+'"'+ut(t,"bzc-a",l*.15)+"/>":'<path d="'+e+'" fill="none" stroke="'+r+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1'+(t.animate?";animation-delay:"+l*.15+"s":"")+'"'+(t.animate?' class="bzc-d"':"")+"/>"}function be(t,e,r,l,i,n,s,o){var f="",u=Math.ceil(r.length/40);return r.forEach(function(p,m){(m%u===0||m===r.length-1)&&(f+=re(e,l(m),i(p),3.5,' fill="'+n+'" stroke="'+s+'" stroke-width="1.5"'+ut(t,"bzc-a",.6+o*.15)))}),f}function ke(t,e){var r=wt(t.values),l=U(t.series),i=U(t.labels),n=ht(t,e),s=W(t.height,170),o=Math.max.apply(null,[0].concat(r.map(function(N){return N.length}))),f=Yt(t,i),u=r.length>1||l.length>0,p=kt(r[0]||[],t,""),m=Vt(t.dash,Object.keys(Xt),"solid"),c=Vt(t.markers,ee,"none"),T=t.background||e.tile,w=(m||c)&&xe(n,m,c,T),B=function(N){return l[N]||"Series "+(N+1)};return pt(t,e,s,function(N,L,z,g){if(!o)return mt(e,N,L,z,g);var V=[].concat.apply([],r),k=ge(t,e,{n:o,names:u?r.map(function(F,P){return B(P)}):null,pal:n,key:w,kw:w&&24,lo:Math.min.apply(null,V),hi:Math.max.apply(null,V),zero:K(t.zero),labels:i,notes:f,tick:function(F){return h(F,t,!0)}},N,L,z,g),d=k.svg,b=k.X,v=k.Y,x=k.px,C=k.pw,y=k.top,M=k.ph;return r.forEach(function(F,P){var _=n[P%n.length],I=F.map(function(lt,at){return[b(at),v(lt)]});I.length===1&&(I=[[x,I[0][1]],[x+C,I[0][1]]]);var J=Ut(I,K(t.straight));if(P===0){var tt=Ht("g"),j=I[I.length-1];d+='<defs><linearGradient id="'+tt+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+_+'" stop-opacity=".26"/><stop offset="1" stop-color="'+_+'" stop-opacity="0"/></linearGradient></defs><path d="'+J+"L"+a(j[0])+","+a(y+M)+"L"+a(I[0][0])+","+a(y+M)+'Z" fill="url(#'+tt+')"'+ut(t,"bzc-a")+"/>"}var G=c?c(P):"none";if(d+=ye(t,J,_,P,m?Xt[m(P)]:""),G!=="none")d+=be(t,G,F,b,v,_,T,P);else{var et=I[I.length-1];d+='<circle cx="'+a(et[0])+'" cy="'+a(et[1])+'" r="4" fill="'+_+'" stroke="'+T+'" stroke-width="2"/>'}K(t.showValues)&&F.forEach(function(lt,at){d+=O(b(at),v(lt)-8,h(lt,t,!0),H(e,9,'text-anchor="middle"'))})}),d+ve(t,e,k,o,function(F){var P=i[F]||"#"+(F+1);return r.forEach(function(_,I){F<_.length&&(P+=`
3
+ `+(u?B(I)+": ":"")+h(_[F],t))}),P})},{stat:p,summary:r.length+" series over "+o+" points"})}ke.table=function(t){return ae(t)};dt("line",ke);gt("line");function Me(t,e){for(var r=wt(t.values),l=U(t.series),i=U(t.labels),n=ht(t,e),s=W(t.height,170),o=r.length,f=Math.max.apply(null,[0].concat(r.map(function(G){return G.length}))),u=o>1?t.stacked==="percent"?"percent":K(t.stacked)?"stack":"":"",p=Yt(t,i),m=o>1||l.length>0,c=function(G){return l[G]||"Series "+(G+1)},T=function(G,et){return et<r[G].length?r[G][et]:0},w=r.map(function(){return[]}),B=r.map(function(){return[]}),N=[],L=[],z=0;z<f;z++){for(var g=0,V=0,k=0,d=0,b=0;b<o;b++)k+=T(b,z),d+=Math.max(0,T(b,z));for(N.push(k),L.push(d),b=0;b<o;b++){var v=u==="percent"?d?Math.max(0,T(b,z))/d*100:0:T(b,z);u?v>=0?(w[b].push(g),g+=v,B[b].push(g)):(w[b].push(V),V+=v,B[b].push(V)):(w[b].push(0),B[b].push(v))}}for(var x=[].concat.apply([],w.concat(B)),C=Vt(t.dash,Object.keys(Xt),"solid"),y=Vt(t.markers,ee,"none"),M=o>1?Vt(t.patterns,pe,"solid"):null,F=t.background||e.tile,P="",_=[],I=0;M&&I<o;I++)if(M(I)!=="solid"){var J=Ht("g");P+=de(J,M(I),n[I%n.length],F),_[I]="url(#"+J+")"}var tt=M?function(G,et,lt){return'<rect x="'+a(et)+'" y="'+a(lt+1)+'" width="10" height="10" rx="2" fill="'+(_[G]||n[G%n.length])+'"/>'}:(C||y)&&xe(n,C,y,F),j=function(G,et){return L[et]?Math.round(Math.max(0,T(G,et))/L[et]*100):0};return pt(t,e,s,function(G,et,lt,at){if(!f)return mt(e,G,et,lt,at);var ot=ge(t,e,{n:f,names:m?r.map(function(Z,E){return c(E)}):null,pal:n,key:tt,kw:tt&&(M?15:24),lo:Math.min.apply(null,x),hi:Math.max.apply(null,x),zero:!0,labels:i,notes:p,tick:u==="percent"?function(Z){return h(Z,{lang:t.lang},!0)+"%"}:function(Z){return h(Z,t,!0)}},G,et,lt,at),S=(P?"<defs>"+P+"</defs>":"")+ot.svg,Y=ot.X,R=ot.Y,nt=function(Z){var E=Z.map(function(D,X){return[Y(X),R(D)]});return E.length===1?[[ot.px,E[0][1]],[ot.px+ot.pw,E[0][1]]]:E},q=K(t.straight),yt=u?".8":".22",Mt=function(Z){return u?B[Z]:r[Z]};return r.forEach(function(Z,E){var D=nt(Mt(E)),X=nt(u?w[E]:Mt(E).map(function(){return 0})).reverse();S+='<path d="'+Ut(D,q)+Ut(X,q).replace(/^M/,"L")+'Z" fill="'+(_[E]||n[E%n.length])+'" fill-opacity="'+yt+'"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(E*.1)+'s"':"")+"/>"}),r.forEach(function(Z,E){var D=n[E%n.length],X=Mt(E),bt=nt(X),At=y?y(E):"none";S+=ye(t,Ut(bt,q),D,E,C?Xt[C(E)]:""),At!=="none"?S+=be(t,At,X,Y,R,D,F,E):u||(S+='<circle cx="'+a(bt[bt.length-1][0])+'" cy="'+a(bt[bt.length-1][1])+'" r="4" fill="'+D+'" stroke="'+F+'" stroke-width="2"/>'),K(t.showValues)&&!u&&X.forEach(function(Ct,it){S+=O(Y(it),R(Ct)-8,h(Ct,t,!0),H(e,9,'text-anchor="middle"'))})}),K(t.showValues)&&u==="stack"&&N.forEach(function(Z,E){var D=Math.max.apply(null,B.map(function(X){return X[E]}).concat([0]));S+=O(Y(E),R(D)-8,h(Z,t,!0),H(e,9,'text-anchor="middle"'))}),S+ve(t,e,ot,f,function(Z){var E=i[Z]||"#"+(Z+1);return r.forEach(function(D,X){Z<D.length&&(E+=`
4
+ `+(m?c(X)+": ":"")+h(D[Z],t)+(u==="percent"?" ("+j(X,Z)+"%)":""))}),E+(u?`
5
+ Total: `+h(N[Z],t):"")})},{stat:kt(u?N:r[0]||[],t,""),summary:o+" series "+(u==="percent"?"as shares of each total":u?"stacked":"filled")+" over "+f+" points"})}Me.table=function(t){var e=wt(t.values);return ae(t,e.length>1&&(t.stacked==="percent"||K(t.stacked)))};dt("area",Me);gt("area");var Qe=40,Je=24;function we(t,e){for(var r=wt(t.values),l=U(t.series),i=U(t.labels),n=ht(t,e),s=r.length,o=Math.max.apply(null,[0].concat(r.map(function(S){return S.length}))),f=s>1,u=K(t.horizontal),p=f&&K(t.stacked),m=!f&&U(t.color).filter(Boolean).length>1,c=r[0]||[],T=[].concat.apply([],r),w=function(S,Y){return r.reduce(function(R,nt){return S<nt.length&&nt[S]*Y>0?R+nt[S]:R},0)},B=[],N=[],L=[],z=0;p&&z<o;z++)N.push(w(z,1)),L.push(w(z,-1)),B.push(N[z]+L[z]);for(var g=p?N.concat(L):T,V=g.length?Math.max.apply(null,g):0,k=function(S){return l[S]||"Series "+(S+1)},d=f?Vt(t.patterns,pe,"solid"):null,b="",v=[],x=0;d&&x<s;x++)if(d(x)!=="solid"){var C=Ht("g");b+=de(C,d(x),n[x%n.length],t.background||e.tile),v[x]="url(#"+C+")"}var y=function(S,Y){return f?v[S]||n[S%n.length]:m?n[Y%n.length]:n[0]},M=d&&function(S,Y,R){return'<rect x="'+a(Y)+'" y="'+a(R+1)+'" width="10" height="10" rx="2" fill="'+y(S)+'"/>'},F=function(S){return f||m||t.highlight==="none"||S===V?1:.5},P=function(S){return i[S]||"#"+(S+1)},_=function(S){return f?P(S)+r.map(function(Y,R){return S<Y.length?`
6
+ `+k(R)+": "+h(Y[S],t):""}).join("")+(p?`
7
+ Total: `+h(B[S],t):""):P(S)+": "+h(c[S],t)},I=qt(t),J=f||l.length?Kt(r.map(function(S,Y){return k(Y)}),n,e,0,0,I.w,M,M&&15).height:0,tt=p?1:s,j=f&&!p,G=j?10:14,et=3,lt=u?tt*G+(tt-1)*et+(j?14:16):0,at=u?J+Math.max(1,o)*lt-6:W(t.height,140)+J,ot=c.indexOf(Math.max.apply(null,c.length?c:[0]));return pt(t,e,at,function(S,Y,R,nt){if(!o)return mt(e,S,Y,R,nt);var q=b?"<defs>"+b+"</defs>":"",yt=Y;J&&(q+=Kt(r.map(function($,st){return k(st)}),n,e,S,Y,R,M,M&&15).svg,yt+=J);var Mt=Math.min(0,Math.min.apply(null,g)),Z=Math.max(0,V);if(A(t.goal)&&(Mt=Math.min(Mt,+t.goal),Z=Math.max(Z,+t.goal)),Z===Mt&&(Z=Mt+1),u){for(var E=i.length?Math.min(R*.4,Math.max.apply(null,i.map(function($){return St($,12)}))+10):0,D=p?[B.map(function($){return h($,t)})]:r.map(function($){return $.map(function(st){return h(st,t)})}),X=Math.max.apply(null,[].concat.apply([],D).map(function($){return St($,j?10:11,!0)}))+10,bt=S+E,At=R-E-X,Ct=Math.max(Z,0)||1,it=0;it<o;it++){var Bt=yt+it*lt;i[it]!=null&&(q+=O(S,Bt+(lt-6)/2+4,Zt(i[it],Math.floor(E/6.7)),'fill="'+e.fg+'" font-family="'+ft+'" font-size="12"')),p?(q+=rr(it,bt,Bt+5,At,Ct),q+=O(S+R,Bt+5+G/2+3.8,D[0][it],'text-anchor="end" fill="'+e.fg+'" font-family="'+xt+'" font-size="11" font-weight="600"')):r.forEach(function($,st){if(!(it>=$.length)){var vt=$[it],Tt=Bt+(f?2:5)+st*(G+et),Rt=Math.max(0,vt)/Ct*At;f||(q+='<rect x="'+a(bt)+'" y="'+a(Tt)+'" width="'+a(At)+'" height="'+G+'" rx="'+G/2+'" fill="'+e.grid+'" fill-opacity=".6"/>'),Rt>0&&(q+='<rect x="'+a(bt)+'" y="'+a(Tt)+'" width="'+a(Math.max(G,Rt))+'" height="'+G+'" rx="'+G/2+'" fill="'+y(st,it)+'" fill-opacity="'+F(vt)+'"'+ut(t,"bzc-gx",it*.06+st*.03)+"/>"),q+=O(S+R,Tt+G/2+3.8,D[st][it],'text-anchor="end" fill="'+e.fg+'" font-family="'+xt+'" font-size="'+(f?10:11)+'" font-weight="600"')}}),q+=zt(S,Bt,R,lt-6,_(it))}if(A(t.goal)&&+t.goal>0){var Re=bt+ +t.goal/Ct*At;q+='<line x1="'+a(Re)+'" x2="'+a(Re)+'" y1="'+a(yt-2)+'" y2="'+a(Y+nt+2)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-dasharray="3 3"/>'}return q}function rr($,st,vt,Tt,Rt){var Pt='<rect x="'+a(st)+'" y="'+a(vt)+'" width="'+a(Tt)+'" height="'+G+'" rx="'+G/2+'" fill="'+e.grid+'" fill-opacity=".6"/>',Jt=0;return r.forEach(function(oe,Dt){var jt=$<oe.length?oe[$]:0,$t=Math.max(0,jt)/Rt*Tt;if(!($t<=0)){var Wt=Jt>0?1.5:0;Pt+='<rect x="'+a(st+Jt+Wt)+'" y="'+a(vt)+'" width="'+a(Math.max(2,$t-Wt))+'" height="'+G+'" rx="'+a(Math.min(3,$t/2))+'" fill="'+y(Dt,$)+'"'+ut(t,"bzc-gx",$*.06+Dt*.03)+"/>",Jt+=$t}}),Pt}var Pe=i.length?Math.max.apply(null,i.map(function($){return St($,10,!0)})):0,Te=i.length?Math.max(1,Math.ceil(o*(Pe+8)/R)):1,ne=K(t.angleLabels)&&Te>1,De=Qe*Math.PI/180,$e=function($){return ne?Zt($,Je):$};if(ne){var ar=R/o,Qt=0;i.forEach(function($,st){Qt=Math.max(Qt,Math.cos(De)*St($e($),10,!0)+4-(st+.5)*ar)}),Qt=Math.min(Qt,R*.25),S+=Qt,R-=Qt,Te=1}var Ue=K(t.showValues)&&Mt<0?14:0,nr=ne?Math.ceil(Math.sin(De)*Math.min(Pe,St("x".repeat(Je),10,!0)))+18:20,ir=(i.length?nr:2)+Ue,Ye=K(t.showValues)?16:4,Ce=nt-(yt-Y)-ir-Ye,Ie=yt+Ye,Gt=function($){return Ie+Ce-($-Mt)/(Z-Mt)*Ce},ie=R/o,le=Math.min(ie*(j?.78:.62),j?s*30:56),Xe=j?Math.min(3,le/s*.15):0,_t=p?le:(le-Xe*(s-1))/s,ce=Gt(0);q+='<line x1="'+S+'" x2="'+(S+R)+'" y1="'+a(ce)+'" y2="'+a(ce)+'" stroke="'+e.grid+'"/>';for(var Ot=0;Ot<o;Ot++){var Fe=S+Ot*ie+(ie-le)/2;if(p?q+=lr(Ot,Fe):r.forEach(function($,st){if(!(Ot>=$.length)){var vt=$[Ot],Tt=Fe+st*(_t+Xe),Rt=Math.min(Gt(vt),ce),Pt=Math.abs(Gt(vt)-ce);Pt>.5&&(q+='<rect x="'+a(Tt)+'" y="'+a(Rt)+'" width="'+a(_t)+'" height="'+a(Pt)+'" rx="'+a(Math.min(6,_t/2,Pt/2))+'" fill="'+y(st,Ot)+'" fill-opacity="'+F(vt)+'"'+ut(t,vt<0?"bzc-gn":"bzc-g",Ot*.05+st*.03)+"/>"),K(t.showValues)&&(q+=O(Tt+_t/2,vt<0?Gt(vt)+12:Gt(vt)-5,h(vt,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+xt+'" font-size="'+(f?9:10)+'" font-weight="600"'))}}),i[Ot]!=null&&Ot%Te===0){var Ne=Fe+le/2,Ve=Ie+Ce+Ue+(ne?12:15);q+=ne?O(Ne,Ve,$e(i[Ot]),H(e,10,'text-anchor="end" transform="rotate(-'+Qe+" "+a(Ne)+" "+a(Ve)+')"')):O(Ne,Ve,i[Ot],H(e,10,'text-anchor="middle"'))}q+=zt(S+Ot*ie,yt,ie,nt-(yt-Y),_(Ot))}return A(t.goal)&&(q+=It(t,e,S,S+R,Gt(+t.goal))),q;function lr($,st){var vt="",Tt=0,Rt=0;if(r.forEach(function(Jt,oe){var Dt=$<Jt.length?Jt[$]:0;if(Dt){var jt=Dt>0?Tt:Rt,$t=jt+Dt;Dt>0?Tt=$t:Rt=$t;var Wt=Gt(Math.max(jt,$t)),Be=Gt(Math.min(jt,$t)),se=Be-Wt,_e=jt!==0?Math.min(1.5,se/2):0;Dt>0?Be-=_e:Wt+=_e,se=Be-Wt,se>.5&&(vt+='<rect x="'+a(st)+'" y="'+a(Wt)+'" width="'+a(_t)+'" height="'+a(se)+'" rx="'+a(Math.min(3,_t/2,se/2))+'" fill="'+y(oe,$)+'"'+ut(t,Dt<0?"bzc-gn":"bzc-g",$*.05+oe*.03)+"/>")}}),K(t.showValues)){var Pt=B[$];vt+=O(st+_t/2,Pt<0?Gt(L[$])+12:Gt(N[$])-5,h(Pt,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+xt+'" font-size="10" font-weight="600"')}return vt}},{stat:kt(c,t,""),summary:o?p?s+" series stacked across "+o+" groups":f?s+" series across "+o+" groups":"highest "+(i[ot]||"")+" "+h(c[ot],t):"no data"})}we.table=function(t){return ae(t,wt(t.values).length>1&&K(t.stacked))};dt("bars",we);gt("bars");function gr(t,e){var r=Math.min(t.length,e.length);if(r<2)return null;var l=0,i=0,n;for(n=0;n<r;n++)l+=t[n],i+=e[n];l/=r,i/=r;var s=0,o=0,f=0;for(n=0;n<r;n++)s+=(t[n]-l)*(t[n]-l),o+=(e[n]-i)*(e[n]-i),f+=(t[n]-l)*(e[n]-i);if(!s)return null;var u=f/s;return{slope:u,intercept:i-u*l,r:o?f/Math.sqrt(s*o):0}}function Se(t,e){for(var r=wt(t.x),l=wt(t.y),i=U(t.series),n=U(t.labels),s=ht(t,e),o=[],f=0;f<Math.max(r.length,l.length);f++){var u=r[f]||[],p=l[f]||[],m=Math.min(u.length,p.length);o.push({xs:u.slice(0,m),ys:p.slice(0,m)})}o=o.filter(function(b){return b.xs.length});var c=o.reduce(function(b,v){return b+v.xs.length},0),T=W(t.height,210),w=o.length>1||i.length>0,B=K(t.trend),N=function(b){return i[b]||"Group "+(b+1)},L={decimals:t.decimals,compact:t.compact,lang:t.lang},z=Yt(t,n),g=Vt(t.markers,ee,"circle"),V=t.background||e.tile,k=function(b){var v=g?g(b):"circle";return v==="none"?"circle":v},d=g&&function(b,v,x){return re(k(b),v+4,x+6,4,' fill="'+s[b%s.length]+'"')};return pt(t,e,T,function(b,v,x,C){if(!c)return mt(e,b,v,x,C);var y="",M=v;if(w){var F=Kt(o.map(function(E,D){return N(D)}),s,e,b,M,x,d);y+=F.svg,M+=F.height}var P=[].concat.apply([],o.map(function(E){return E.xs})),_=[].concat.apply([],o.map(function(E){return E.ys})),I=Math.min.apply(null,_),J=Math.max.apply(null,_);A(t.goal)&&(I=Math.min(I,+t.goal),J=Math.max(J,+t.goal)),K(t.zero)&&(I=Math.min(0,I),J=Math.max(0,J));var tt=fe(I,J,4),j=fe(Math.min.apply(null,P),Math.max.apply(null,P),5),G=tt.ticks.map(function(E){return h(E,t,!0)}),et=Ke(G)+(A(t.yLabel)?14:0),lt=20+(A(t.xLabel)?16:0),at=b+et,ot=x-et,S=C-(M-v)-lt,Y=function(E){return at+6+(E-j.lo)/(j.hi-j.lo)*(ot-12)},R=function(E){return M+6+S-6-(E-tt.lo)/(tt.hi-tt.lo)*(S-6)};tt.ticks.forEach(function(E,D){var X=R(E);y+='<line x1="'+a(at)+'" x2="'+a(at+ot)+'" y1="'+a(X)+'" y2="'+a(X)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+O(at-8,X+3.5,G[D],H(e,10,'text-anchor="end"'))});var nt=Math.max(1,Math.ceil(j.ticks.length*44/ot));if(j.ticks.forEach(function(E,D){if(!(D%nt)){var X=Y(E);y+='<line x1="'+a(X)+'" x2="'+a(X)+'" y1="'+a(M)+'" y2="'+a(M+S)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+O(X,M+S+15,h(E,L,!0),H(e,10,'text-anchor="middle"'))}}),A(t.xLabel)&&(y+=O(at+ot/2,M+S+32,t.xLabel,H(e,10,'text-anchor="middle" font-weight="600"'))),A(t.yLabel)){var q=M+S/2;y+='<text x="'+a(b+4)+'" y="'+a(q)+'" transform="rotate(-90 '+a(b+4)+" "+a(q)+')" text-anchor="middle" '+H(e,10,'font-weight="600"')+' dominant-baseline="hanging">'+String(t.yLabel).replace(/[&<>"]/g,function(E){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[E]})+"</text>"}A(t.goal)&&(y+=It(t,e,at,at+ot,R(+t.goal))),B&&o.forEach(function(E,D){var X=gr(E.xs,E.ys);if(X){var bt=Math.min.apply(null,E.xs),At=Math.max.apply(null,E.xs),Ct=X.slope*bt+X.intercept,it=X.slope*At+X.intercept,Bt=s[D%s.length];y+='<line x1="'+a(Y(bt))+'" y1="'+a(Q(R(Ct),M,M+S))+'" x2="'+a(Y(At))+'" y2="'+a(Q(R(it),M,M+S))+'" stroke="'+Bt+'" stroke-width="2" stroke-dasharray="6 4" stroke-linecap="round" stroke-opacity=".9"/>',y+=O(Math.min(Y(At),at+ot)-2,Q(R(it),M+10,M+S)-7,"r = "+X.r.toFixed(2),H(e,10,'text-anchor="end" font-weight="600"',Bt))}});var yt=0,Mt=c>150?3:4.5;o.forEach(function(E,D){var X=s[D%s.length];E.xs.forEach(function(bt,At){var Ct=Y(bt),it=R(E.ys[At]),Bt=(n[yt]?n[yt]+`
8
+ `:w?N(D)+`
9
+ `:"")+(A(t.xLabel)?t.xLabel:"x")+": "+h(bt,L)+`
10
+ `+(A(t.yLabel)?t.yLabel:"y")+": "+h(E.ys[At],t);y+=re(k(D),Ct,it,Mt,' fill="'+X+'" fill-opacity=".85" stroke="'+V+'" stroke-width="1.5"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(Math.min(.8,yt*.012))+'s"':"")),y+=zt(Ct-8,it-8,16,16,Bt),yt++})});var Z=[];return o.forEach(function(E){E.xs.forEach(function(D,X){Z.push([Y(D),R(E.ys[X])])})}),z.forEach(function(E){var D=Z[E.i];D&&(y+='<circle cx="'+a(D[0])+'" cy="'+a(D[1])+'" r="'+(Mt+4)+'" fill="none" stroke="'+e.fg+'" stroke-width="1.5"/>'+O(Q(D[0],at+30,at+ot-30),D[1]-Mt-9,E.text,H(e,10,'text-anchor="middle"',e.fg)))}),y},{summary:c+" points"+(w?" in "+o.length+" groups":"")})}Se.table=function(t){var e=wt(t.x),r=wt(t.y),l=U(t.series),i=U(t.labels),n=e.length>1||l.length>0,s={decimals:t.decimals,compact:t.compact,lang:t.lang},o=[],f=0;return e.forEach(function(u,p){for(var m=r[p]||[],c=0;c<Math.min(u.length,m.length);c++,f++)o.push([i[f]||"#"+(f+1)].concat(n?[l[p]||"Group "+(p+1)]:[],[h(u[c],s),h(m[c],t)]))}),{head:["Point"].concat(n?["Group"]:[],[A(t.xLabel)?t.xLabel:"x",A(t.yLabel)?t.yLabel:"y"]),rows:o}};dt("scatter",Se);gt("scatter");function ze(t,e){var r=rt(t.values),l=U(t.labels),i=ht(t,e),n=W(t.max,100)||100,s=W(t.height,140),o=!A(t.prefix)&&!A(t.suffix)&&n===100,f=function(p){return h(p,t)+(o?"%":"")},u=kt(r,t,"");return pt(t,e,s,function(p,m,c,T){if(!r.length)return mt(e,p,m,c,T);var w="",B=r.length===1,N=Math.min(T,B?c:c*.55),L=B?p+c/2:p+N/2,z=m+T/2,g=B?N*.12:Q(N*.42/(r.length*1.35),5,16),V=g*.38;if(r.forEach(function(v,x){var C=N/2-g/2-x*(g+V);if(!(C<=g/2)){var y=Q(v/n*100,0,100),M=i[x%i.length];w+='<circle cx="'+a(L)+'" cy="'+a(z)+'" r="'+a(C)+'" fill="none" stroke="'+M+'" stroke-opacity=".16" stroke-width="'+a(g)+'"/>',y>0&&(w+='<circle cx="'+a(L)+'" cy="'+a(z)+'" r="'+a(C)+'" fill="none" stroke="'+M+'" stroke-width="'+a(g)+'" stroke-linecap="round" pathLength="100" transform="rotate(-90 '+a(L)+" "+a(z)+')" style="stroke-dasharray:'+a(y)+" 100"+(t.animate?";animation-delay:"+x*.12+"s":"")+'"'+(t.animate?' class="bzc-s"':"")+"/>"),w+='<circle cx="'+a(L)+'" cy="'+a(z)+'" r="'+a(C+g/2)+'" fill="#000" fill-opacity="0" class="bzc-hit" data-tip="'+ct((l[x]||"#"+(x+1))+": "+f(v)+(o?"":" of "+h(n,t)))+'"/>'}}),B)w+=O(L,z+N*.08,f(r[0]),'text-anchor="middle" fill="'+e.fg+'" font-family="'+ft+'" font-size="'+a(N*.22)+'" font-weight="800"'),l[0]&&(w+=O(L,z+N*.08+16,l[0],H(e,10,'text-anchor="middle"')));else{var k=p+N+22,d=Math.min(26,T/r.length),b=z-d*r.length/2;r.forEach(function(v,x){var C=b+x*d+d/2;w+='<circle cx="'+a(k+4)+'" cy="'+a(C)+'" r="4" fill="'+i[x%i.length]+'"/>'+O(k+14,C+4,Zt(l[x]||"#"+(x+1),Math.floor((p+c-k-60)/6.7)),'fill="'+e.fg+'" font-family="'+ft+'" font-size="12"')+O(p+c,C+4,f(v),'text-anchor="end" fill="'+e.fg+'" font-family="'+xt+'" font-size="11" font-weight="600"')})}return w},{stat:u,summary:r.map(function(p,m){return(l[m]?l[m]+" ":"")+f(p)}).join(", ")})}ze.table=function(t){var e=U(t.labels),r=W(t.max,100)||100,l=!A(t.prefix)&&!A(t.suffix)&&r===100;return{head:["Label","Value"],rows:rt(t.values).map(function(i,n){return[e[n]||"#"+(n+1),h(i,t)+(l?"%":" of "+h(r,t))]})}};dt("ring",ze);gt("ring");function Ee(t,e){var r=rt(t.values).map(function(c){return Math.max(0,c)}),l=U(t.labels),i=ht(t,e),n=r.slice(),s=l.slice();if(n.length>6){var o=n.map(function(c,T){return T}).sort(function(c,T){return r[T]-r[c]}),f=o.slice(0,5).sort(function(c,T){return c-T});n=f.map(function(c){return r[c]}),s=f.map(function(c){return l[c]||"#"+(c+1)}),n.push(Ft(o.slice(5).map(function(c){return r[c]}))),s.push("Other")}var u=Ft(n),p=W(t.height,150),m=kt(n,t,"");return pt(t,e,p,function(c,T,w,B){if(!u)return mt(e,c,T,w,B);var N="",L=Math.min(B,w*.5),z=c+L/2,g=T+B/2,V=L*.16,k=(L-V)/2,d=0,b=n.filter(Boolean).length>1?.9:0;n.forEach(function(y,M){var F=y/u*100;if(!(F<=0)){var P=Math.max(.01,F-b);N+='<circle cx="'+a(z)+'" cy="'+a(g)+'" r="'+a(k)+'" fill="none" stroke="'+i[M%i.length]+'" stroke-width="'+a(V)+'" pathLength="100" stroke-dasharray="'+a(P)+" "+a(100-P)+'" stroke-dashoffset="'+a(-d)+'" transform="rotate(-90 '+a(z)+" "+a(g)+')"'+ut(t,"bzc-a",M*.08)+"/>",d+=F}}),N+=O(z,g+2,h(u,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+ft+'" font-size="'+a(L*.17)+'" font-weight="800"'),N+=O(z,g+2+14,(A(t.centerLabel)?t.centerLabel:"Total").toUpperCase(),H(e,9,'text-anchor="middle" letter-spacing="1"'));var v=c+L+22,x=Math.min(24,B/n.length),C=g-x*n.length/2;return n.forEach(function(y,M){var F=C+M*x+x/2,P=Math.round(y/u*100),_=(s[M]||"#"+(M+1))+": "+h(y,t)+" ("+P+"%)";N+='<circle cx="'+a(v+4)+'" cy="'+a(F)+'" r="4" fill="'+i[M%i.length]+'"/>'+O(v+14,F+4,Zt(s[M]||"#"+(M+1),Math.floor((c+w-v-50)/6.7)),'fill="'+e.fg+'" font-family="'+ft+'" font-size="12"')+O(c+w,F+4,P+"%",'text-anchor="end" fill="'+e.muted+'" font-family="'+xt+'" font-size="11" font-weight="600"')+zt(v,F-x/2,c+w-v,x,_)}),d=0,n.forEach(function(y,M){var F=y/u*100;F<=0||(N+='<circle cx="'+a(z)+'" cy="'+a(g)+'" r="'+a(k)+'" fill="none" stroke="#000" stroke-opacity="0" stroke-width="'+a(V)+'" pathLength="100" stroke-dasharray="'+a(F)+" "+a(100-F)+'" stroke-dashoffset="'+a(-d)+'" transform="rotate(-90 '+a(z)+" "+a(g)+')" class="bzc-hit" data-skip="" data-tip="'+ct((s[M]||"#"+(M+1))+": "+h(y,t)+" ("+Math.round(F)+"%)")+'"/>',d+=F)}),N},{stat:m,summary:"total "+h(u,t)+" across "+n.length+" parts"})}Ee.table=function(t){var e=rt(t.values).map(function(i){return Math.max(0,i)}),r=U(t.labels),l=Ft(e);return{head:["Label","Value","Share"],rows:e.map(function(i,n){return[r[n]||"#"+(n+1),h(i,t),(l?Math.round(i/l*100):0)+"%"]})}};dt("donut",Ee);gt("donut");function Le(t,e){var r=rt(t.values),l=r.length?r[0]:W(t.value,NaN),i=U(t.labels),n=W(t.min,0),s=W(t.max,100),o=W(t.height,130);s===n&&(s=n+1);var f=rt(t.zones),u=ht(t,e),p=U(t.color).filter(Boolean).length>1?u:[e.up,e.palette[3],e.down],m=u[0];if(f.length&&isFinite(l)){for(var c=0;c<f.length&&l>=f[c];)c++;m=p[Math.min(c,p.length-1)]}var T=!A(t.prefix)&&!A(t.suffix)&&n===0&&s===100,w=function(B){return h(B,t)+(T?"%":"")};return pt(t,e,o,function(B,N,L,z){if(!isFinite(l))return mt(e,B,N,L,z);var g=Math.min(L/2,z-22),V=g*.16,k=g-V/2,d=B+L/2,b=N+g,v=Q((l-n)/(s-n),0,1),x=function(I,J){var tt=Math.PI*(1-I);return[d+J*Math.cos(tt),b-J*Math.sin(tt)]},C="M"+a(d-k)+","+a(b)+"A"+a(k)+","+a(k)+" 0 0 1 "+a(d+k)+","+a(b),y='<path d="'+C+'" fill="none" stroke="'+m+'" stroke-opacity=".16" stroke-width="'+a(V)+'" stroke-linecap="round"/>';f.length&&f.forEach(function(I){var J=Q((I-n)/(s-n),0,1),tt=x(J,k-V/2-3),j=x(J,k-V/2-8);y+='<line x1="'+a(tt[0])+'" y1="'+a(tt[1])+'" x2="'+a(j[0])+'" y2="'+a(j[1])+'" stroke="'+e.muted+'" stroke-width="1.5"/>'}),v>0&&(y+='<path d="'+C+'" fill="none" stroke="'+m+'" stroke-width="'+a(V)+'" stroke-linecap="round" pathLength="100" style="stroke-dasharray:'+a(v*100)+' 100"'+ut(t,"bzc-s")+"/>");var M=x(v,k);if(y+='<circle cx="'+a(M[0])+'" cy="'+a(M[1])+'" r="'+a(V*.26)+'" fill="'+(t.background||e.tile)+'"'+ut(t,"bzc-a",.9)+"/>",A(t.goal)){var F=Q((+t.goal-n)/(s-n),0,1),P=x(F,k+V/2+4),_=x(F,k-V/2-4);y+='<line x1="'+a(P[0])+'" y1="'+a(P[1])+'" x2="'+a(_[0])+'" y2="'+a(_[1])+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return y+=O(d,b-g*.12,w(l),'text-anchor="middle" fill="'+e.fg+'" font-family="'+ft+'" font-size="'+a(g*.34)+'" font-weight="800"'),i[0]&&(y+=O(d,b-g*.12+16,i[0],H(e,10,'text-anchor="middle"'))),y+=O(d-k,b+18,h(n,t,!0),H(e,10,'text-anchor="middle"'))+O(d+k,b+18,h(s,t,!0),H(e,10,'text-anchor="middle"')),y+=zt(d-g,b-g,g*2,g,(i[0]?i[0]+": ":"")+w(l)+" (range "+h(n,t)+" to "+h(s,t)+")"+(A(t.goal)?`
11
+ Goal: `+h(+t.goal,t):"")),y},{summary:isFinite(l)?w(l)+" on a scale of "+h(n,t)+" to "+h(s,t):"no data"})}Le.table=function(t){var e=rt(t.values),r=e.length?e[0]:W(t.value,NaN),l=U(t.labels),i=W(t.min,0),n=W(t.max,100),s=!A(t.prefix)&&!A(t.suffix)&&i===0&&n===100;return isFinite(r)?{head:["Label","Value"],rows:[[l[0]||"Reading",h(r,t)+(s?"%":"")],["Lowest",h(i,t)],["Highest",h(n,t)]].concat(A(t.goal)?[["Goal",h(+t.goal,t)]]:[])}:{head:["Label","Value"],rows:[]}};dt("gauge",Le);gt("gauge");function Ae(t,e){var r=rt(t.values).map(function(L){return Math.max(0,L)}),l=U(t.labels),i=ht(t,e),n=r.length===1,s=Ft(r),o=A(t.max)?W(t.max,100):n?100:s;o>0||(o=1);var f=!A(t.prefix)&&!A(t.suffix)&&o===100&&n,u=function(L){return h(L,t)+(f?"%":"")},p=qt(t),m=p.w,c=0,T=[];if(!n&&r.length){var w=0;c=1,r.forEach(function(L,z){var g=l[z]||"#"+(z+1),V=14+St(g,12)+6+St(h(L,t),11,!0)+18;w>0&&w+V>m&&(w=0,c++),T.push({x:w,row:c-1,l:g}),w+=V})}var B=36+(c?12+c*20:0),N=kt(r,t,"");return pt(t,e,B,function(L,z,g,V){if(!r.length)return mt(e,L,z,g,V);var k="",d=z+22,b=Ht("c"),v=n?u(r[0])+(f?"":" of "+h(o,t)):h(s,t)+" of "+h(o,t);n&&l[0]&&(k+=O(L,z+11,l[0],'fill="'+e.fg+'" font-family="'+ft+'" font-size="12"')),k+=O(L+g,z+11,v,'text-anchor="end" fill="'+e.fg+'" font-family="'+xt+'" font-size="11" font-weight="600"'),k+='<rect x="'+L+'" y="'+d+'" width="'+g+'" height="14" rx="7" fill="'+e.grid+'" fill-opacity=".7"/>',k+='<clipPath id="'+b+'"><rect x="'+L+'" y="'+d+'" width="'+g+'" height="14" rx="7"/></clipPath><g clip-path="url(#'+b+')"><g'+ut(t,"bzc-gx")+">";var x=0;if(r.forEach(function(y,M){var F=Math.min(y,Math.max(0,o-x))/o*g;F>0&&(k+='<rect x="'+a(L+x/o*g)+'" y="'+d+'" width="'+a(F)+'" height="14" fill="'+i[M%i.length]+'"/>'),M>0&&F>0&&(k+='<rect x="'+a(L+x/o*g-1)+'" y="'+d+'" width="2" height="14" fill="'+(t.background||e.tile)+'"/>'),x+=y}),k+="</g></g>",A(t.goal)){var C=L+Q(+t.goal/o,0,1)*g;k+='<line x1="'+a(C)+'" x2="'+a(C)+'" y1="'+(d-4)+'" y2="'+(d+18)+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return x=0,r.forEach(function(y,M){var F=Math.min(y,Math.max(0,o-x))/o*g;F>0&&(k+=zt(L+x/o*g,d-4,F,22,(l[M]||(n?"Progress":"#"+(M+1)))+": "+u(y)+(n?"":" ("+Math.round(y/o*100)+"%)"))),x+=y}),T.forEach(function(y,M){var F=L+y.x,P=d+14+12+y.row*20+8;k+='<circle cx="'+a(F+4)+'" cy="'+a(P)+'" r="4" fill="'+i[M%i.length]+'"/><text x="'+a(F+14)+'" y="'+a(P+4)+'" fill="'+e.fg+'" font-family="'+ft+'" font-size="12">'+ct(y.l)+'<tspan dx="6" fill="'+e.muted+'" font-family="'+xt+'" font-size="11">'+ct(h(r[M],t))+"</tspan></text>"}),k},{stat:N,summary:n?u(r[0])+(f?"":" of "+h(o,t)):h(s,t)+" of "+h(o,t)})}Ae.table=function(t){var e=rt(t.values).map(function(s){return Math.max(0,s)}),r=U(t.labels),l=e.length===1,i=A(t.max)?W(t.max,100):l?100:Ft(e);i>0||(i=1);var n=!A(t.prefix)&&!A(t.suffix)&&i===100&&l;return l?{head:["Label","Value"],rows:[[r[0]||"Progress",h(e[0],t)+(n?"%":" of "+h(i,t))]]}:{head:["Label","Value","Share"],rows:e.map(function(s,o){return[r[o]||"#"+(o+1),h(s,t),Math.round(s/i*100)+"%"]})}};dt("progress",Ae);gt("progress");var je={weekday:"short",day:"numeric",month:"short",year:"numeric"};function tr(t,e){if(A(t.start)&&/^\d{4}-\d{2}-\d{2}$/.test(String(t.start)))return new Date(String(t.start)+"T00:00:00Z");var r=new Date;return new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())-Math.max(0,e-1)*864e5)}function er(t,e){try{return new Intl.DateTimeFormat(t,Object.assign({timeZone:"UTC"},e))}catch{return new Intl.DateTimeFormat("en-GB",Object.assign({timeZone:"UTC"},e))}}function Oe(t,e){var r=rt(t.values),l=ht(t,e)[0],i=t.lang||"en-GB",n=tr(t,r.length),s=(n.getUTCDay()+6)%7,o=Math.max(1,Math.ceil((s+r.length)/7)),f=qt(t),u=28,p=Math.max(1,Math.floor((f.w-u)/10));if(o>p){var m=(o-p)*7-s;r=r.slice(m),n=new Date(n.getTime()+m*864e5),s=0,o=p}var c=Math.min(18,(f.w-u)/o),T=c<8?1:3,w=c-T,B=16+7*c+26,N=r.length?Math.max.apply(null,r):0,L=function(d){return er(i,d)},z=L({month:"short"}),g=L({weekday:"short"}),V=L(je),k=kt(r,t,"");return pt(t,e,B,function(d,b,v,x){if(!r.length)return mt(e,d,b,v,x);var C="",y=d+u,M=b+16,F=-99,P=[.28,.5,.75,1];c>=9&&[0,2,4].forEach(function(q){var yt=new Date(Date.UTC(2024,0,1+q));C+=O(d,M+q*c+w/2+3.5,g.format(yt),H(e,9))});for(var _=0;_<r.length;_++){var I=s+_,J=Math.floor(I/7),tt=I%7,j=new Date(n.getTime()+_*864e5),G=y+J*c,et=M+tt*c;(j.getUTCDate()===1||_===0)&&G-F>30&&(C+=O(G,b+9,z.format(j),H(e,9)),F=G);var lt=r[_]<=0||!N?0:Math.ceil(r[_]/N*4),at=lt?l:e.grid,ot=lt?P[lt-1]:.7;C+='<rect x="'+a(G)+'" y="'+a(et)+'" width="'+a(w)+'" height="'+a(w)+'" rx="'+a(w*.24)+'" fill="'+at+'" fill-opacity="'+ot+'"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(J*.012)+'s"':"")+' data-tip="'+ct(V.format(j)+": "+h(r[_],t))+'"/>'}var S=M+7*c+14,Y=10,R=d+v-5*(Y+3)-30;C+=O(d,S+8,h(Ft(r),t,!0)+" in "+r.length+" days",H(e,10)),C+=O(R-6,S+8,"Less",H(e,9,'text-anchor="end"'));for(var nt=0;nt<5;nt++)C+='<rect x="'+a(R+nt*(Y+3))+'" y="'+S+'" width="'+Y+'" height="'+Y+'" rx="2.5" fill="'+(nt?l:e.grid)+'" fill-opacity="'+(nt?P[nt-1]:.7)+'"/>';return C+=O(R+5*(Y+3)+3,S+8,"More",H(e,9)),C},{stat:k,summary:h(Ft(r),t)+" across "+r.length+" days"})}Oe.table=function(t){var e=rt(t.values),r=tr(t,e.length),l=er(t.lang||"en-GB",je);return{head:["Date","Value"],rows:e.map(function(i,n){return[l.format(new Date(r.getTime()+n*864e5)),h(i,t)]})}};dt("heatmap",Oe);gt("heatmap");var Dn="1.4.0",$n=he.slice();export{Lt as BezelChart,Et as render,te as themes,Nt as toSVG,$n as types,Dn as version};
@@ -0,0 +1,4 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{a as be,b as Me,c as Se,d as Ee,e as Oe}from"./shared-XBZ5QGIC.js";import{c as $,d as ge,e as ke,f as N,h as xe,j as ye}from"./shared-APAAEWNX.js";import{B as me,C as ve,D as Ve,E as _e,F as Fe,G as de,c as fe,e as x,g as ie,j as J,k as Q,o as y,p as v,q as L,r as U,s as W,v as ce,w as oe,x as pe,z as he}from"./shared-4QPUIMAU.js";function X(e,c){for(var s=Q(e.values),q=J(e.series),Y=J(e.labels),o=ce(e,c),we=ie(e.height,170),p=s.length,b=Math.max.apply(null,[0].concat(s.map(function(n){return n.length}))),l=p>1?e.stacked==="percent"?"percent":y(e.stacked)?"stack":"":"",Pe=pe(e,Y),j=p>1||q.length>0,ee=function(n){return q[n]||"Series "+(n+1)},M=function(n,i){return i<s[n].length?s[n][i]:0},S=s.map(function(){return[]}),d=s.map(function(){return[]}),w=[],B=[],g=0;g<b;g++){for(var C=0,D=0,te=0,P=0,a=0;a<p;a++)te+=M(a,g),P+=Math.max(0,M(a,g));for(w.push(te),B.push(P),a=0;a<p;a++){var T=l==="percent"?P?Math.max(0,M(a,g))/P*100:0:M(a,g);l?T>=0?(S[a].push(C),C+=T,d[a].push(C)):(S[a].push(D),D+=T,d[a].push(D)):(S[a].push(0),d[a].push(T))}}for(var re=[].concat.apply([],S.concat(d)),z=N(e.dash,Object.keys($),"solid"),A=N(e.markers,ge,"none"),E=p>1?N(e.patterns,ke,"solid"):null,V=e.background||c.tile,G="",I=[],k=0;E&&k<p;k++)if(E(k)!=="solid"){var ae=fe("g");G+=xe(ae,E(k),o[k%o.length],V),I[k]="url(#"+ae+")"}var ne=E?function(n,i,_){return'<rect x="'+x(i)+'" y="'+x(_+1)+'" width="10" height="10" rx="2" fill="'+(I[n]||o[n%o.length])+'"/>'}:(z||A)&&Se(o,z,A,V),Te=function(n,i){return B[i]?Math.round(Math.max(0,M(n,i))/B[i]*100):0};return me(e,c,we,function(n,i,_,le){if(!b)return oe(c,n,i,_,le);var h=be(e,c,{n:b,names:j?s.map(function(r,t){return ee(t)}):null,pal:o,key:ne,kw:ne&&(E?15:24),lo:Math.min.apply(null,re),hi:Math.max.apply(null,re),zero:!0,labels:Y,notes:Pe,tick:l==="percent"?function(r){return v(r,{lang:e.lang},!0)+"%"}:function(r){return v(r,e,!0)}},n,i,_,le),m=(G?"<defs>"+G+"</defs>":"")+h.svg,F=h.X,H=h.Y,K=function(r){var t=r.map(function(u,f){return[F(f),H(u)]});return t.length===1?[[h.px,t[0][1]],[h.px+h.pw,t[0][1]]]:t},R=y(e.straight),ze=l?".8":".22",Z=function(r){return l?d[r]:s[r]};return s.forEach(function(r,t){var u=K(Z(t)),f=K(l?S[t]:Z(t).map(function(){return 0})).reverse();m+='<path d="'+L(u,R)+L(f,R).replace(/^M/,"L")+'Z" fill="'+(I[t]||o[t%o.length])+'" fill-opacity="'+ze+'"'+(e.animate?' class="bzc-a" style="animation-delay:'+x(t*.1)+'s"':"")+"/>"}),s.forEach(function(r,t){var u=o[t%o.length],f=Z(t),O=K(f),se=A?A(t):"none";m+=Ee(e,L(O,R),u,t,z?$[z(t)]:""),se!=="none"?m+=Oe(e,se,f,F,H,u,V,t):l||(m+='<circle cx="'+x(O[O.length-1][0])+'" cy="'+x(O[O.length-1][1])+'" r="4" fill="'+u+'" stroke="'+V+'" stroke-width="2"/>'),y(e.showValues)&&!l&&f.forEach(function(ue,Ae){m+=U(F(Ae),H(ue)-8,v(ue,e,!0),W(c,9,'text-anchor="middle"'))})}),y(e.showValues)&&l==="stack"&&w.forEach(function(r,t){var u=Math.max.apply(null,d.map(function(f){return f[t]}).concat([0]));m+=U(F(t),H(u)-8,v(r,e,!0),W(c,9,'text-anchor="middle"'))}),m+Me(e,c,h,b,function(r){var t=Y[r]||"#"+(r+1);return s.forEach(function(u,f){r<u.length&&(t+=`
3
+ `+(j?ee(f)+": ":"")+v(u[r],e)+(l==="percent"?" ("+Te(f,r)+"%)":""))}),t+(l?`
4
+ Total: `+v(w[r],e):"")})},{stat:he(l?w:s[0]||[],e,""),summary:p+" series "+(l==="percent"?"as shares of each total":l?"stacked":"filled")+" over "+b+" points"})}X.table=function(e){var c=Q(e.values);return ye(e,c.length>1&&(e.stacked==="percent"||y(e.stacked)))};ve("area",X);de("area");export{Fe as BezelChart,Ve as render,_e as toSVG};
@@ -0,0 +1,4 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{b as At,e as fa,f as oa,h as ua,j as ha}from"./shared-APAAEWNX.js";import{A as na,B as ea,C as la,D as za,E as ka,F as Oa,G as ia,a as Ut,b as U,c as $t,e as n,g as Wt,h as ot,j as ut,k as Ot,m as D,n as Et,o as S,p as w,r as L,s as St,t as wt,u as $,v as jt,w as ta,y as aa,z as ra}from"./shared-4QPUIMAU.js";var sa=40,ma=24;function ht(t,i){for(var m=Ot(t.values),Lt=ut(t.series),h=ut(t.labels),x=jt(t,i),b=m.length,d=Math.max.apply(null,[0].concat(m.map(function(a){return a.length}))),g=b>1,st=S(t.horizontal),M=g&&S(t.stacked),Nt=!g&&ut(t.color).filter(Boolean).length>1,H=m[0]||[],ga=[].concat.apply([],m),Tt=function(a,u){return m.reduce(function(e,A){return a<A.length&&A[a]*u>0?e+A[a]:e},0)},W=[],j=[],tt=[],_=0;M&&_<d;_++)j.push(Tt(_,1)),tt.push(Tt(_,-1)),W.push(j[_]+tt[_]);for(var mt=M?j.concat(tt):ga,Vt=mt.length?Math.max.apply(null,mt):0,gt=function(a){return Lt[a]||"Series "+(a+1)},at=g?oa(t.patterns,fa,"solid"):null,vt="",Gt=[],B=0;at&&B<b;B++)if(at(B)!=="solid"){var Ht=$t("g");vt+=ua(Ht,at(B),x[B%x.length],t.background||i.tile),Gt[B]="url(#"+Ht+")"}var X=function(a,u){return g?Gt[a]||x[a%x.length]:Nt?x[u%x.length]:x[0]},rt=at&&function(a,u,e){return'<rect x="'+n(u)+'" y="'+n(e+1)+'" width="10" height="10" rx="2" fill="'+X(a)+'"/>'},_t=function(a){return g||Nt||t.highlight==="none"||a===Vt?1:.5},Bt=function(a){return h[a]||"#"+(a+1)},Ct=function(a){return g?Bt(a)+m.map(function(u,e){return a<u.length?`
3
+ `+gt(e)+": "+w(u[a],t):""}).join("")+(M?`
4
+ Total: `+w(W[a],t):""):Bt(a)+": "+w(H[a],t)},va=na(t),nt=g||Lt.length?At(m.map(function(a,u){return gt(u)}),x,i,0,0,va.w,rt,rt&&15).height:0,Pt=M?1:b,C=g&&!M,c=C?10:14,Rt=3,et=st?Pt*c+(Pt-1)*Rt+(C?14:16):0,ca=st?nt+Math.max(1,d)*et-6:Wt(t.height,140)+nt,It=H.indexOf(Math.max.apply(null,H.length?H:[0]));return ea(t,i,ca,function(a,u,e,A){if(!d)return ta(i,a,u,e,A);var f=vt?"<defs>"+vt+"</defs>":"",N=u;nt&&(f+=At(m.map(function(r,l){return gt(l)}),x,i,a,u,e,rt,rt&&15).svg,N+=nt);var T=Math.min(0,Math.min.apply(null,mt)),P=Math.max(0,Vt);if(ot(t.goal)&&(T=Math.min(T,+t.goal),P=Math.max(P,+t.goal)),P===T&&(P=T+1),st){for(var ct=h.length?Math.min(e*.4,Math.max.apply(null,h.map(function(r){return D(r,12)}))+10):0,pt=M?[W.map(function(r){return w(r,t)})]:m.map(function(r){return r.map(function(l){return w(l,t)})}),pa=Math.max.apply(null,[].concat.apply([],pt).map(function(r){return D(r,C?10:11,!0)}))+10,lt=a+ct,it=e-ct-pa,dt=Math.max(P,0)||1,v=0;v<d;v++){var Z=N+v*et;h[v]!=null&&(f+=L(a,Z+(et-6)/2+4,Et(h[v],Math.floor(ct/6.7)),'fill="'+i.fg+'" font-family="'+Ut+'" font-size="12"')),M?(f+=da(v,lt,Z+5,it,dt),f+=L(a+e,Z+5+c/2+3.8,pt[0][v],'text-anchor="end" fill="'+i.fg+'" font-family="'+U+'" font-size="11" font-weight="600"')):m.forEach(function(r,l){if(!(v>=r.length)){var o=r[v],p=Z+(g?2:5)+l*(c+Rt),z=Math.max(0,o)/dt*it;g||(f+='<rect x="'+n(lt)+'" y="'+n(p)+'" width="'+n(it)+'" height="'+c+'" rx="'+c/2+'" fill="'+i.grid+'" fill-opacity=".6"/>'),z>0&&(f+='<rect x="'+n(lt)+'" y="'+n(p)+'" width="'+n(Math.max(c,z))+'" height="'+c+'" rx="'+c/2+'" fill="'+X(l,v)+'" fill-opacity="'+_t(o)+'"'+$(t,"bzc-gx",v*.06+l*.03)+"/>"),f+=L(a+e,p+c/2+3.8,pt[l][v],'text-anchor="end" fill="'+i.fg+'" font-family="'+U+'" font-size="'+(g?10:11)+'" font-weight="600"')}}),f+=wt(a,Z,e,et-6,Ct(v))}if(ot(t.goal)&&+t.goal>0){var Yt=lt+ +t.goal/dt*it;f+='<line x1="'+n(Yt)+'" x2="'+n(Yt)+'" y1="'+n(N-2)+'" y2="'+n(u+A+2)+'" stroke="'+i.fg+'" stroke-opacity=".55" stroke-dasharray="3 3"/>'}return f}function da(r,l,o,p,z){var k='<rect x="'+n(l)+'" y="'+n(o)+'" width="'+n(p)+'" height="'+c+'" rx="'+c/2+'" fill="'+i.grid+'" fill-opacity=".6"/>',I=0;return m.forEach(function(K,O){var Y=r<K.length?K[r]:0,E=Math.max(0,Y)/z*p;if(!(E<=0)){var G=I>0?1.5:0;k+='<rect x="'+n(l+I+G)+'" y="'+n(o)+'" width="'+n(Math.max(2,E-G))+'" height="'+c+'" rx="'+n(Math.min(3,E/2))+'" fill="'+X(O,r)+'"'+$(t,"bzc-gx",r*.06+O*.03)+"/>",I+=E}}),k}var Dt=h.length?Math.max.apply(null,h.map(function(r){return D(r,10,!0)})):0,Mt=h.length?Math.max(1,Math.ceil(d*(Dt+8)/e)):1,q=S(t.angleLabels)&&Mt>1,Xt=sa*Math.PI/180,Zt=function(r){return q?Et(r,ma):r};if(q){var Ma=e/d,R=0;h.forEach(function(r,l){R=Math.max(R,Math.cos(Xt)*D(Zt(r),10,!0)+4-(l+.5)*Ma)}),R=Math.min(R,e*.25),a+=R,e-=R,Mt=1}var qt=S(t.showValues)&&T<0?14:0,ya=q?Math.ceil(Math.sin(Xt)*Math.min(Dt,D("x".repeat(ma),10,!0)))+18:20,xa=(h.length?ya:2)+qt,Ft=S(t.showValues)?16:4,yt=A-(N-u)-xa-Ft,Jt=N+Ft,y=function(r){return Jt+yt-(r-T)/(P-T)*yt},F=e/d,J=Math.min(F*(C?.78:.62),C?b*30:56),Kt=C?Math.min(3,J/b*.15):0,V=M?J:(J-Kt*(b-1))/b,ft=y(0);f+='<line x1="'+a+'" x2="'+(a+e)+'" y1="'+n(ft)+'" y2="'+n(ft)+'" stroke="'+i.grid+'"/>';for(var s=0;s<d;s++){var xt=a+s*F+(F-J)/2;if(M?f+=ba(s,xt):m.forEach(function(r,l){if(!(s>=r.length)){var o=r[s],p=xt+l*(V+Kt),z=Math.min(y(o),ft),k=Math.abs(y(o)-ft);k>.5&&(f+='<rect x="'+n(p)+'" y="'+n(z)+'" width="'+n(V)+'" height="'+n(k)+'" rx="'+n(Math.min(6,V/2,k/2))+'" fill="'+X(l,s)+'" fill-opacity="'+_t(o)+'"'+$(t,o<0?"bzc-gn":"bzc-g",s*.05+l*.03)+"/>"),S(t.showValues)&&(f+=L(p+V/2,o<0?y(o)+12:y(o)-5,w(o,t,!0),'text-anchor="middle" fill="'+i.fg+'" font-family="'+U+'" font-size="'+(g?9:10)+'" font-weight="600"'))}}),h[s]!=null&&s%Mt===0){var bt=xt+J/2,zt=Jt+yt+qt+(q?12:15);f+=q?L(bt,zt,Zt(h[s]),St(i,10,'text-anchor="end" transform="rotate(-'+sa+" "+n(bt)+" "+n(zt)+')"')):L(bt,zt,h[s],St(i,10,'text-anchor="middle"'))}f+=wt(a+s*F,N,F,A-(N-u),Ct(s))}return ot(t.goal)&&(f+=aa(t,i,a,a+e,y(+t.goal))),f;function ba(r,l){var o="",p=0,z=0;if(m.forEach(function(I,K){var O=r<I.length?I[r]:0;if(O){var Y=O>0?p:z,E=Y+O;O>0?p=E:z=E;var G=y(Math.max(Y,E)),kt=y(Math.min(Y,E)),Q=kt-G,Qt=Y!==0?Math.min(1.5,Q/2):0;O>0?kt-=Qt:G+=Qt,Q=kt-G,Q>.5&&(o+='<rect x="'+n(l)+'" y="'+n(G)+'" width="'+n(V)+'" height="'+n(Q)+'" rx="'+n(Math.min(3,V/2,Q/2))+'" fill="'+X(K,r)+'"'+$(t,O<0?"bzc-gn":"bzc-g",r*.05+K*.03)+"/>")}}),S(t.showValues)){var k=W[r];o+=L(l+V/2,k<0?y(tt[r])+12:y(j[r])-5,w(k,t,!0),'text-anchor="middle" fill="'+i.fg+'" font-family="'+U+'" font-size="10" font-weight="600"')}return o}},{stat:ra(H,t,""),summary:d?M?b+" series stacked across "+d+" groups":g?b+" series across "+d+" groups":"highest "+(h[It]||"")+" "+w(H[It],t):"no data"})}ht.table=function(t){return ha(t,Ot(t.values).length>1&&S(t.stacked))};la("bars",ht);ia("bars");export{Oa as BezelChart,za as render,ka as toSVG};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{B as Q,C as R,D as tt,E as rt,F as et,G as W,a as B,b as H,d as T,e as t,g as U,h as j,i as C,j as N,l as w,n as q,p as d,r as L,s as D,t as F,u as I,v as J,w as K,z as P}from"./shared-4QPUIMAU.js";function O(e,l){var i=C(e.values).map(function(r){return Math.max(0,r)}),v=N(e.labels),f=J(e,l),a=i.slice(),g=v.slice();if(a.length>6){var V=a.map(function(r,s){return s}).sort(function(r,s){return i[s]-i[r]}),A=V.slice(0,5).sort(function(r,s){return r-s});a=A.map(function(r){return i[r]}),g=A.map(function(r){return v[r]||"#"+(r+1)}),a.push(w(V.slice(5).map(function(r){return i[r]}))),g.push("Other")}var m=w(a),X=U(e.height,150),Y=P(a,e,"");return Q(e,l,X,function(r,s,y,S){if(!m)return K(l,r,s,y,S);var h="",b=Math.min(S,y*.5),p=r+b/2,c=s+S/2,E=b*.16,G=(b-E)/2,M=0,Z=a.filter(Boolean).length>1?.9:0;a.forEach(function(u,o){var n=u/m*100;if(!(n<=0)){var z=Math.max(.01,n-Z);h+='<circle cx="'+t(p)+'" cy="'+t(c)+'" r="'+t(G)+'" fill="none" stroke="'+f[o%f.length]+'" stroke-width="'+t(E)+'" pathLength="100" stroke-dasharray="'+t(z)+" "+t(100-z)+'" stroke-dashoffset="'+t(-M)+'" transform="rotate(-90 '+t(p)+" "+t(c)+')"'+I(e,"bzc-a",o*.08)+"/>",M+=n}}),h+=L(p,c+2,d(m,e,!0),'text-anchor="middle" fill="'+l.fg+'" font-family="'+B+'" font-size="'+t(b*.17)+'" font-weight="800"'),h+=L(p,c+2+14,(j(e.centerLabel)?e.centerLabel:"Total").toUpperCase(),D(l,9,'text-anchor="middle" letter-spacing="1"'));var k=r+b+22,x=Math.min(24,S/a.length),_=c-x*a.length/2;return a.forEach(function(u,o){var n=_+o*x+x/2,z=Math.round(u/m*100),$=(g[o]||"#"+(o+1))+": "+d(u,e)+" ("+z+"%)";h+='<circle cx="'+t(k+4)+'" cy="'+t(n)+'" r="4" fill="'+f[o%f.length]+'"/>'+L(k+14,n+4,q(g[o]||"#"+(o+1),Math.floor((r+y-k-50)/6.7)),'fill="'+l.fg+'" font-family="'+B+'" font-size="12"')+L(r+y,n+4,z+"%",'text-anchor="end" fill="'+l.muted+'" font-family="'+H+'" font-size="11" font-weight="600"')+F(k,n-x/2,r+y-k,x,$)}),M=0,a.forEach(function(u,o){var n=u/m*100;n<=0||(h+='<circle cx="'+t(p)+'" cy="'+t(c)+'" r="'+t(G)+'" fill="none" stroke="#000" stroke-opacity="0" stroke-width="'+t(E)+'" pathLength="100" stroke-dasharray="'+t(n)+" "+t(100-n)+'" stroke-dashoffset="'+t(-M)+'" transform="rotate(-90 '+t(p)+" "+t(c)+')" class="bzc-hit" data-skip="" data-tip="'+T((g[o]||"#"+(o+1))+": "+d(u,e)+" ("+Math.round(n)+"%)")+'"/>',M+=n)}),h},{stat:Y,summary:"total "+d(m,e)+" across "+a.length+" parts"})}O.table=function(e){var l=C(e.values).map(function(f){return Math.max(0,f)}),i=N(e.labels),v=w(l);return{head:["Label","Value","Share"],rows:l.map(function(f,a){return[i[a]||"#"+(a+1),d(f,e),(v?Math.round(f/v*100):0)+"%"]})}};R("donut",O);W("donut");export{et as BezelChart,tt as render,rt as toSVG};
@@ -0,0 +1,3 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{B as X,C as Y,D as ee,E as ae,F as te,G as Z,a as Q,e as a,f as N,g as d,h as g,i as z,j as F,p as i,r as y,s as L,t as T,u as C,v as U,w as W}from"./shared-4QPUIMAU.js";function S(e,t){var h=z(e.values),s=h.length?h[0]:d(e.value,NaN),v=F(e.labels),r=d(e.min,0),n=d(e.max,100),_=d(e.height,130);n===r&&(n=r+1);var p=z(e.zones),E=U(e,t),H=F(e.color).filter(Boolean).length>1?E:[t.up,t.palette[3],t.down],G=E[0];if(p.length&&isFinite(s)){for(var w=0;w<p.length&&s>=p[w];)w++;G=H[Math.min(w,H.length-1)]}var $=!g(e.prefix)&&!g(e.suffix)&&r===0&&n===100,V=function(M){return i(M,e)+($?"%":"")};return X(e,t,_,function(M,I,A,P){if(!isFinite(s))return W(t,M,I,A,P);var f=Math.min(A/2,P-22),u=f*.16,l=f-u/2,m=M+A/2,c=I+f,B=N((s-r)/(n-r),0,1),x=function(R,k){var b=Math.PI*(1-R);return[m+k*Math.cos(b),c-k*Math.sin(b)]},j="M"+a(m-l)+","+a(c)+"A"+a(l)+","+a(l)+" 0 0 1 "+a(m+l)+","+a(c),o='<path d="'+j+'" fill="none" stroke="'+G+'" stroke-opacity=".16" stroke-width="'+a(u)+'" stroke-linecap="round"/>';p.length&&p.forEach(function(R){var k=N((R-r)/(n-r),0,1),b=x(k,l-u/2-3),O=x(k,l-u/2-8);o+='<line x1="'+a(b[0])+'" y1="'+a(b[1])+'" x2="'+a(O[0])+'" y2="'+a(O[1])+'" stroke="'+t.muted+'" stroke-width="1.5"/>'}),B>0&&(o+='<path d="'+j+'" fill="none" stroke="'+G+'" stroke-width="'+a(u)+'" stroke-linecap="round" pathLength="100" style="stroke-dasharray:'+a(B*100)+' 100"'+C(e,"bzc-s")+"/>");var q=x(B,l);if(o+='<circle cx="'+a(q[0])+'" cy="'+a(q[1])+'" r="'+a(u*.26)+'" fill="'+(e.background||t.tile)+'"'+C(e,"bzc-a",.9)+"/>",g(e.goal)){var D=N((+e.goal-r)/(n-r),0,1),J=x(D,l+u/2+4),K=x(D,l-u/2-4);o+='<line x1="'+a(J[0])+'" y1="'+a(J[1])+'" x2="'+a(K[0])+'" y2="'+a(K[1])+'" stroke="'+t.fg+'" stroke-width="2" stroke-linecap="round"/>'}return o+=y(m,c-f*.12,V(s),'text-anchor="middle" fill="'+t.fg+'" font-family="'+Q+'" font-size="'+a(f*.34)+'" font-weight="800"'),v[0]&&(o+=y(m,c-f*.12+16,v[0],L(t,10,'text-anchor="middle"'))),o+=y(m-l,c+18,i(r,e,!0),L(t,10,'text-anchor="middle"'))+y(m+l,c+18,i(n,e,!0),L(t,10,'text-anchor="middle"')),o+=T(m-f,c-f,f*2,f,(v[0]?v[0]+": ":"")+V(s)+" (range "+i(r,e)+" to "+i(n,e)+")"+(g(e.goal)?`
3
+ Goal: `+i(+e.goal,e):"")),o},{summary:isFinite(s)?V(s)+" on a scale of "+i(r,e)+" to "+i(n,e):"no data"})}S.table=function(e){var t=z(e.values),h=t.length?t[0]:d(e.value,NaN),s=F(e.labels),v=d(e.min,0),r=d(e.max,100),n=!g(e.prefix)&&!g(e.suffix)&&v===0&&r===100;return isFinite(h)?{head:["Label","Value"],rows:[[s[0]||"Reading",i(h,e)+(n?"%":"")],["Lowest",i(v,e)],["Highest",i(r,e)]].concat(g(e.goal)?[["Goal",i(+e.goal,e)]]:[])}:{head:["Label","Value"],rows:[]}};Y("gauge",S);Z("gauge");export{te as BezelChart,ee as render,ae as toSVG};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{A as J,B as K,C as N,D as ct,E as gt,F as ut,G as P,d as Y,e as i,h as $,i as O,l as S,p as g,r as o,s as h,v as q,w as A,z as H}from"./shared-4QPUIMAU.js";var Q={weekday:"short",day:"numeric",month:"short",year:"numeric"};function R(e,a){if($(e.start)&&/^\d{4}-\d{2}-\d{2}$/.test(String(e.start)))return new Date(String(e.start)+"T00:00:00Z");var t=new Date;return new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())-Math.max(0,a-1)*864e5)}function _(e,a){try{return new Intl.DateTimeFormat(e,Object.assign({timeZone:"UTC"},a))}catch{return new Intl.DateTimeFormat("en-GB",Object.assign({timeZone:"UTC"},a))}}function D(e,a){var t=O(e.values),u=q(e,a)[0],M=e.lang||"en-GB",s=R(e,t.length),v=(s.getUTCDay()+6)%7,d=Math.max(1,Math.ceil((v+t.length)/7)),L=J(e),T=28,x=Math.max(1,Math.floor((L.w-T)/10));if(d>x){var Z=(d-x)*7-v;t=t.slice(Z),s=new Date(s.getTime()+Z*864e5),v=0,d=x}var r=Math.min(18,(L.w-T)/d),j=r<8?1:3,p=r-j,tt=16+7*r+26,z=t.length?Math.max.apply(null,t):0,C=function(l){return _(M,l)},et=C({month:"short"}),at=C({weekday:"short"}),rt=C(Q),nt=H(t,e,"");return K(e,a,tt,function(l,F,I,mt){if(!t.length)return A(a,l,F,I,mt);var n="",it=l+T,U=F+16,V=-99,k=[.28,.5,.75,1];r>=9&&[0,2,4].forEach(function(X){var ht=new Date(Date.UTC(2024,0,1+X));n+=o(l,U+X*r+p/2+3.5,at.format(ht),h(a,9))});for(var m=0;m<t.length;m++){var E=v+m,W=Math.floor(E/7),lt=E%7,b=new Date(s.getTime()+m*864e5),y=it+W*r,st=U+lt*r;(b.getUTCDate()===1||m===0)&&y-V>30&&(n+=o(y,F+9,et.format(b),h(a,9)),V=y);var B=t[m]<=0||!z?0:Math.ceil(t[m]/z*4),ft=B?u:a.grid,ot=B?k[B-1]:.7;n+='<rect x="'+i(y)+'" y="'+i(st)+'" width="'+i(p)+'" height="'+i(p)+'" rx="'+i(p*.24)+'" fill="'+ft+'" fill-opacity="'+ot+'"'+(e.animate?' class="bzc-a" style="animation-delay:'+i(W*.012)+'s"':"")+' data-tip="'+Y(rt.format(b)+": "+g(t[m],e))+'"/>'}var w=U+7*r+14,c=10,G=l+I-5*(c+3)-30;n+=o(l,w+8,g(S(t),e,!0)+" in "+t.length+" days",h(a,10)),n+=o(G-6,w+8,"Less",h(a,9,'text-anchor="end"'));for(var f=0;f<5;f++)n+='<rect x="'+i(G+f*(c+3))+'" y="'+w+'" width="'+c+'" height="'+c+'" rx="2.5" fill="'+(f?u:a.grid)+'" fill-opacity="'+(f?k[f-1]:.7)+'"/>';return n+=o(G+5*(c+3)+3,w+8,"More",h(a,9)),n},{stat:nt,summary:g(S(t),e)+" across "+t.length+" days"})}D.table=function(e){var a=O(e.values),t=R(e,a.length),u=_(e.lang||"en-GB",Q);return{head:["Date","Value"],rows:a.map(function(M,s){return[u.format(new Date(t.getTime()+s*864e5)),g(M,e)]})}};N("heatmap",D);P("heatmap");export{ut as BezelChart,ct as render,gt as toSVG};
@@ -0,0 +1,3 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{a as ae,b as ie,c as le,d as se,e as oe}from"./shared-XBZ5QGIC.js";import{c as E,d as te,f as z,j as ne}from"./shared-APAAEWNX.js";import{B as j,C as ee,D as he,E as de,F as ve,G as re,c as N,e as f,g as T,j as w,k as Z,o as v,p as y,q as _,r as q,s as J,u as Q,v as R,w as U,x as W,z as $}from"./shared-4QPUIMAU.js";function g(e,s){var a=Z(e.values),M=w(e.series),x=w(e.labels),m=R(e,s),fe=T(e.height,170),u=Math.max.apply(null,[0].concat(a.map(function(o){return o.length}))),pe=W(e,x),G=a.length>1||M.length>0,me=$(a[0]||[],e,""),c=z(e.dash,Object.keys(E),"solid"),h=z(e.markers,te,"none"),b=e.background||s.tile,L=(c||h)&&le(m,c,h,b),A=function(o){return M[o]||"Series "+(o+1)};return j(e,s,fe,function(o,F,H,P){if(!u)return U(s,o,F,H,P);var V=[].concat.apply([],a),i=ae(e,s,{n:u,names:G?a.map(function(t,n){return A(n)}):null,pal:m,key:L,kw:L&&24,lo:Math.min.apply(null,V),hi:Math.max.apply(null,V),zero:v(e.zero),labels:x,notes:pe,tick:function(t){return y(t,e,!0)}},o,F,H,P),p=i.svg,S=i.X,O=i.Y,X=i.px,ue=i.pw,Y=i.top,B=i.ph;return a.forEach(function(t,n){var l=m[n%m.length],r=t.map(function(d,k){return[S(k),O(d)]});r.length===1&&(r=[[X,r[0][1]],[X+ue,r[0][1]]]);var C=_(r,v(e.straight));if(n===0){var D=N("g"),ce=r[r.length-1];p+='<defs><linearGradient id="'+D+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+l+'" stop-opacity=".26"/><stop offset="1" stop-color="'+l+'" stop-opacity="0"/></linearGradient></defs><path d="'+C+"L"+f(ce[0])+","+f(Y+B)+"L"+f(r[0][0])+","+f(Y+B)+'Z" fill="url(#'+D+')"'+Q(e,"bzc-a")+"/>"}var I=h?h(n):"none";if(p+=se(e,C,l,n,c?E[c(n)]:""),I!=="none")p+=oe(e,I,t,S,O,l,b,n);else{var K=r[r.length-1];p+='<circle cx="'+f(K[0])+'" cy="'+f(K[1])+'" r="4" fill="'+l+'" stroke="'+b+'" stroke-width="2"/>'}v(e.showValues)&&t.forEach(function(d,k){p+=q(S(k),O(d)-8,y(d,e,!0),J(s,9,'text-anchor="middle"'))})}),p+ie(e,s,i,u,function(t){var n=x[t]||"#"+(t+1);return a.forEach(function(l,r){t<l.length&&(n+=`
3
+ `+(G?A(r)+": ":"")+y(l[t],e))}),n})},{stat:me,summary:a.length+" series over "+u+" points"})}g.table=function(e){return ne(e)};ee("line",g);re("line");export{ve as BezelChart,he as render,de as toSVG};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{A as T,B as U,C as W,D as tr,E as ar,F as er,G as X,a as E,b as P,c as D,d as O,e as u,f as F,g as V,h as x,i as L,j as N,l as A,m as B,p as l,r as C,t as H,u as J,v as K,w as Q,z as R}from"./shared-4QPUIMAU.js";function z(r,e){var f=L(r.values).map(function(a){return Math.max(0,a)}),h=N(r.labels),m=K(r,e),o=f.length===1,g=A(f),t=x(r.max)?V(r.max,100):o?100:g;t>0||(t=1);var S=!x(r.prefix)&&!x(r.suffix)&&t===100&&o,k=function(a){return l(a,r)+(S?"%":"")},Y=T(r),Z=Y.w,b=0,G=[];if(!o&&f.length){var M=0;b=1,f.forEach(function(a,y){var i=h[y]||"#"+(y+1),w=14+B(i,12)+6+B(l(a,r),11,!0)+18;M>0&&M+w>Z&&(M=0,b++),G.push({x:M,row:b-1,l:i}),M+=w})}var _=36+(b?12+b*20:0),$=R(f,r,"");return U(r,e,_,function(a,y,i,w){if(!f.length)return Q(e,a,y,i,w);var n="",p=y+22,I=D("c"),rr=o?k(f[0])+(S?"":" of "+l(t,r)):l(g,r)+" of "+l(t,r);o&&h[0]&&(n+=C(a,y+11,h[0],'fill="'+e.fg+'" font-family="'+E+'" font-size="12"')),n+=C(a+i,y+11,rr,'text-anchor="end" fill="'+e.fg+'" font-family="'+P+'" font-size="11" font-weight="600"'),n+='<rect x="'+a+'" y="'+p+'" width="'+i+'" height="14" rx="7" fill="'+e.grid+'" fill-opacity=".7"/>',n+='<clipPath id="'+I+'"><rect x="'+a+'" y="'+p+'" width="'+i+'" height="14" rx="7"/></clipPath><g clip-path="url(#'+I+')"><g'+J(r,"bzc-gx")+">";var d=0;if(f.forEach(function(s,v){var c=Math.min(s,Math.max(0,t-d))/t*i;c>0&&(n+='<rect x="'+u(a+d/t*i)+'" y="'+p+'" width="'+u(c)+'" height="14" fill="'+m[v%m.length]+'"/>'),v>0&&c>0&&(n+='<rect x="'+u(a+d/t*i-1)+'" y="'+p+'" width="2" height="14" fill="'+(r.background||e.tile)+'"/>'),d+=s}),n+="</g></g>",x(r.goal)){var j=a+F(+r.goal/t,0,1)*i;n+='<line x1="'+u(j)+'" x2="'+u(j)+'" y1="'+(p-4)+'" y2="'+(p+18)+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return d=0,f.forEach(function(s,v){var c=Math.min(s,Math.max(0,t-d))/t*i;c>0&&(n+=H(a+d/t*i,p-4,c,22,(h[v]||(o?"Progress":"#"+(v+1)))+": "+k(s)+(o?"":" ("+Math.round(s/t*100)+"%)"))),d+=s}),G.forEach(function(s,v){var c=a+s.x,q=p+14+12+s.row*20+8;n+='<circle cx="'+u(c+4)+'" cy="'+u(q)+'" r="4" fill="'+m[v%m.length]+'"/><text x="'+u(c+14)+'" y="'+u(q+4)+'" fill="'+e.fg+'" font-family="'+E+'" font-size="12">'+O(s.l)+'<tspan dx="6" fill="'+e.muted+'" font-family="'+P+'" font-size="11">'+O(l(f[v],r))+"</tspan></text>"}),n},{stat:$,summary:o?k(f[0])+(S?"":" of "+l(t,r)):l(g,r)+" of "+l(t,r)})}z.table=function(r){var e=L(r.values).map(function(g){return Math.max(0,g)}),f=N(r.labels),h=e.length===1,m=x(r.max)?V(r.max,100):h?100:A(e);m>0||(m=1);var o=!x(r.prefix)&&!x(r.suffix)&&m===100&&h;return h?{head:["Label","Value"],rows:[[f[0]||"Progress",l(e[0],r)+(o?"%":" of "+l(m,r))]]}:{head:["Label","Value","Share"],rows:e.map(function(g,t){return[f[t]||"#"+(t+1),l(g,r),Math.round(g/m*100)+"%"]})}};W("progress",z);X("progress");export{er as BezelChart,tr as render,ar as toSVG};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{B as P,C as Q,D as Y,E as Z,F as _,G as R,a as N,b as q,d as w,e as r,f as V,g as S,h as d,i as j,j as A,n as D,p as y,r as x,s as F,v as I,w as J,z as K}from"./shared-4QPUIMAU.js";function O(t,i){var e=j(t.values),l=A(t.labels),u=I(t,i),p=S(t.max,100)||100,T=S(t.height,140),B=!d(t.prefix)&&!d(t.suffix)&&p===100,b=function(a){return y(a,t)+(B?"%":"")},U=K(e,t,"");return P(t,i,T,function(a,v,h,k){if(!e.length)return J(i,a,v,h,k);var c="",z=e.length===1,f=Math.min(k,z?h:h*.55),g=z?a+h/2:a+f/2,o=v+k/2,m=z?f*.12:V(f*.42/(e.length*1.35),5,16),W=m*.38;if(e.forEach(function(M,n){var s=f/2-m/2-n*(m+W);if(!(s<=m/2)){var C=V(M/p*100,0,100),G=u[n%u.length];c+='<circle cx="'+r(g)+'" cy="'+r(o)+'" r="'+r(s)+'" fill="none" stroke="'+G+'" stroke-opacity=".16" stroke-width="'+r(m)+'"/>',C>0&&(c+='<circle cx="'+r(g)+'" cy="'+r(o)+'" r="'+r(s)+'" fill="none" stroke="'+G+'" stroke-width="'+r(m)+'" stroke-linecap="round" pathLength="100" transform="rotate(-90 '+r(g)+" "+r(o)+')" style="stroke-dasharray:'+r(C)+" 100"+(t.animate?";animation-delay:"+n*.12+"s":"")+'"'+(t.animate?' class="bzc-s"':"")+"/>"),c+='<circle cx="'+r(g)+'" cy="'+r(o)+'" r="'+r(s+m/2)+'" fill="#000" fill-opacity="0" class="bzc-hit" data-tip="'+w((l[n]||"#"+(n+1))+": "+b(M)+(B?"":" of "+y(p,t)))+'"/>'}}),z)c+=x(g,o+f*.08,b(e[0]),'text-anchor="middle" fill="'+i.fg+'" font-family="'+N+'" font-size="'+r(f*.22)+'" font-weight="800"'),l[0]&&(c+=x(g,o+f*.08+16,l[0],F(i,10,'text-anchor="middle"')));else{var E=a+f+22,L=Math.min(26,k/e.length),X=o-L*e.length/2;e.forEach(function(M,n){var s=X+n*L+L/2;c+='<circle cx="'+r(E+4)+'" cy="'+r(s)+'" r="4" fill="'+u[n%u.length]+'"/>'+x(E+14,s+4,D(l[n]||"#"+(n+1),Math.floor((a+h-E-60)/6.7)),'fill="'+i.fg+'" font-family="'+N+'" font-size="12"')+x(a+h,s+4,b(M),'text-anchor="end" fill="'+i.fg+'" font-family="'+q+'" font-size="11" font-weight="600"')})}return c},{stat:U,summary:e.map(function(a,v){return(l[v]?l[v]+" ":"")+b(a)}).join(", ")})}O.table=function(t){var i=A(t.labels),e=S(t.max,100)||100,l=!d(t.prefix)&&!d(t.suffix)&&e===100;return{head:["Label","Value"],rows:j(t.values).map(function(u,p){return[i[p]||"#"+(p+1),y(u,t)+(l?"%":" of "+y(e,t))]})}};Q("ring",O);R("ring");export{_ as BezelChart,Y as render,Z as toSVG};
@@ -0,0 +1,5 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{a as T,b as va,d as da,f as ga,g as U,i as ba}from"./shared-APAAEWNX.js";import{B as ha,C as xa,D as Oa,E as Pa,F as za,G as ya,e as n,f as F,g as oa,h as x,j as H,k as N,o as R,p as E,r as P,s as w,t as sa,v as fa,w as ua,x as ma,y as pa}from"./shared-4QPUIMAU.js";function Xa(a,r){var y=Math.min(a.length,r.length);if(y<2)return null;var u=0,h=0,e;for(e=0;e<y;e++)u+=a[e],h+=r[e];u/=y,h/=y;var f=0,l=0,m=0;for(e=0;e<y;e++)f+=(a[e]-u)*(a[e]-u),l+=(r[e]-h)*(r[e]-h),m+=(a[e]-u)*(r[e]-h);if(!f)return null;var b=m/f;return{slope:b,intercept:h-b*u,r:l?m/Math.sqrt(f*l):0}}function I(a,r){for(var y=N(a.x),u=N(a.y),h=H(a.series),e=H(a.labels),f=fa(a,r),l=[],m=0;m<Math.max(y.length,u.length);m++){var b=y[m]||[],S=u[m]||[],z=Math.min(b.length,S.length);l.push({xs:b.slice(0,z),ys:S.slice(0,z)})}l=l.filter(function(o){return o.xs.length});var k=l.reduce(function(o,v){return o+v.xs.length},0),ka=oa(a.height,210),J=l.length>1||h.length>0,Ma=R(a.trend),Z=function(o){return h[o]||"Group "+(o+1)},$={decimals:a.decimals,compact:a.compact,lang:a.lang},La=ma(a,e),K=ga(a.markers,da,"circle"),Ea=a.background||r.tile,j=function(o){var v=K?K(o):"circle";return v==="none"?"circle":v},wa=K&&function(o,v,X){return U(j(o),v+4,X+6,4,' fill="'+f[o%f.length]+'"')};return ha(a,r,ka,function(o,v,X,aa){if(!k)return ua(r,o,v,X,aa);var p="",s=v;if(J){var ta=va(l.map(function(t,i){return Z(i)}),f,r,o,s,X,wa);p+=ta.svg,s+=ta.height}var ra=[].concat.apply([],l.map(function(t){return t.xs})),ea=[].concat.apply([],l.map(function(t){return t.ys})),Y=Math.min.apply(null,ea),q=Math.max.apply(null,ea);x(a.goal)&&(Y=Math.min(Y,+a.goal),q=Math.max(q,+a.goal)),R(a.zero)&&(Y=Math.min(0,Y),q=Math.max(0,q));var W=T(Y,q,4),A=T(Math.min.apply(null,ra),Math.max.apply(null,ra),5),na=W.ticks.map(function(t){return E(t,a,!0)}),la=ba(na)+(x(a.yLabel)?14:0),Sa=20+(x(a.xLabel)?16:0),d=o+la,M=X-la,g=aa-(s-v)-Sa,G=function(t){return d+6+(t-A.lo)/(A.hi-A.lo)*(M-12)},L=function(t){return s+6+g-6-(t-W.lo)/(W.hi-W.lo)*(g-6)};W.ticks.forEach(function(t,i){var c=L(t);p+='<line x1="'+n(d)+'" x2="'+n(d+M)+'" y1="'+n(c)+'" y2="'+n(c)+'" stroke="'+r.grid+'" stroke-dasharray="2 4"/>'+P(d-8,c+3.5,na[i],w(r,10,'text-anchor="end"'))});var Ga=Math.max(1,Math.ceil(A.ticks.length*44/M));if(A.ticks.forEach(function(t,i){if(!(i%Ga)){var c=G(t);p+='<line x1="'+n(c)+'" x2="'+n(c)+'" y1="'+n(s)+'" y2="'+n(s+g)+'" stroke="'+r.grid+'" stroke-dasharray="2 4"/>'+P(c,s+g+15,E(t,$,!0),w(r,10,'text-anchor="middle"'))}}),x(a.xLabel)&&(p+=P(d+M/2,s+g+32,a.xLabel,w(r,10,'text-anchor="middle" font-weight="600"'))),x(a.yLabel)){var ia=s+g/2;p+='<text x="'+n(o+4)+'" y="'+n(ia)+'" transform="rotate(-90 '+n(o+4)+" "+n(ia)+')" text-anchor="middle" '+w(r,10,'font-weight="600"')+' dominant-baseline="hanging">'+String(a.yLabel).replace(/[&<>"]/g,function(t){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[t]})+"</text>"}x(a.goal)&&(p+=pa(a,r,d,d+M,L(+a.goal))),Ma&&l.forEach(function(t,i){var c=Xa(t.xs,t.ys);if(c){var B=Math.min.apply(null,t.xs),O=Math.max.apply(null,t.xs),_=c.slope*B+c.intercept,C=c.slope*O+c.intercept,D=f[i%f.length];p+='<line x1="'+n(G(B))+'" y1="'+n(F(L(_),s,s+g))+'" x2="'+n(G(O))+'" y2="'+n(F(L(C),s,s+g))+'" stroke="'+D+'" stroke-width="2" stroke-dasharray="6 4" stroke-linecap="round" stroke-opacity=".9"/>',p+=P(Math.min(G(O),d+M)-2,F(L(C),s+10,s+g)-7,"r = "+c.r.toFixed(2),w(r,10,'text-anchor="end" font-weight="600"',D))}});var V=0,Q=k>150?3:4.5;l.forEach(function(t,i){var c=f[i%f.length];t.xs.forEach(function(B,O){var _=G(B),C=L(t.ys[O]),D=(e[V]?e[V]+`
3
+ `:J?Z(i)+`
4
+ `:"")+(x(a.xLabel)?a.xLabel:"x")+": "+E(B,$)+`
5
+ `+(x(a.yLabel)?a.yLabel:"y")+": "+E(t.ys[O],a);p+=U(j(i),_,C,Q,' fill="'+c+'" fill-opacity=".85" stroke="'+Ea+'" stroke-width="1.5"'+(a.animate?' class="bzc-a" style="animation-delay:'+n(Math.min(.8,V*.012))+'s"':"")),p+=sa(_-8,C-8,16,16,D),V++})});var ca=[];return l.forEach(function(t){t.xs.forEach(function(i,c){ca.push([G(i),L(t.ys[c])])})}),La.forEach(function(t){var i=ca[t.i];i&&(p+='<circle cx="'+n(i[0])+'" cy="'+n(i[1])+'" r="'+(Q+4)+'" fill="none" stroke="'+r.fg+'" stroke-width="1.5"/>'+P(F(i[0],d+30,d+M-30),i[1]-Q-9,t.text,w(r,10,'text-anchor="middle"',r.fg)))}),p},{summary:k+" points"+(J?" in "+l.length+" groups":"")})}I.table=function(a){var r=N(a.x),y=N(a.y),u=H(a.series),h=H(a.labels),e=r.length>1||u.length>0,f={decimals:a.decimals,compact:a.compact,lang:a.lang},l=[],m=0;return r.forEach(function(b,S){for(var z=y[S]||[],k=0;k<Math.min(b.length,z.length);k++,m++)l.push([h[m]||"#"+(m+1)].concat(e?[u[S]||"Group "+(S+1)]:[],[E(b[k],f),E(z[k],a)]))}),{head:["Point"].concat(e?["Group"]:[],[x(a.xLabel)?a.xLabel:"x",x(a.yLabel)?a.yLabel:"y"]),rows:l}};xa("scatter",I);ya("scatter");export{za as BezelChart,Oa as render,Pa as toSVG};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ var g={dark:{tile:"#15151d",bezel:"#000000",fg:"#f2f1f7",muted:"#8c8aa0",grid:"#2a2935",up:"#5EE6C8",down:"#F675A8",palette:["#9FA1FF","#F675A8","#5EE6C8","#FFC857","#7CC4FF","#FF8A5B"]},light:{tile:"#ffffff",bezel:"#000000",fg:"#17161f",muted:"#6b6980",grid:"#e8e6ef",up:"#12a383",down:"#d63f7c",palette:["#6E70F0","#E2508C","#16A884","#D99A0E","#2F8FE0","#EE6431"]}};var x="ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif",w="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",W=0;function nt(t){return"bzc"+t+(++W).toString(36)+Math.random().toString(36).slice(2,6)}function h(t){return String(t??"").replace(/[&<>"']/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[e]})}function s(t){return Math.round(t*100)/100}function u(t,e,r){return Math.max(e,Math.min(r,t))}function v(t,e){var r=parseFloat(t);return isFinite(r)?r:e}function c(t){return t!=null&&t!==""}function T(t){return Array.isArray(t)?t.map(function(e){var r=+e;return isFinite(r)?r:0}):c(t)?String(t).split(/[\s,;]+/).filter(Boolean).map(function(e){var r=+e;return isFinite(r)?r:0}):[]}function V(t){return Array.isArray(t)?t.map(String):c(t)?String(t).split(",").map(function(e){return e.trim()}):[]}function at(t){return Array.isArray(t)?Array.isArray(t[0])?t.map(T):[T(t)]:c(t)?String(t).split("|").map(T).filter(function(e){return e.length}):[]}function Y(t){return t.reduce(function(e,r){return e+r},0)}function ot(t,e,r){return String(t).length*e*(r?.6:.56)}function st(t,e){return t=String(t),t.length>e?t.slice(0,Math.max(1,e-1))+"\u2026":t}function C(t){return t===!0||t===""||t==="true"||t==="1"}function k(t,e,r){if(!isFinite(t))return"\u2013";var i=Math.abs(t),n;c(e.decimals)?n=u(parseInt(e.decimals,10)||0,0,6):n=t%1===0?0:i<10?2:i<100?1:0;var a={maximumFractionDigits:n,minimumFractionDigits:c(e.decimals)?n:0};(C(e.compact)||r)&&i>=1e4&&(a={notation:"compact",maximumFractionDigits:1});var o;try{o=new Intl.NumberFormat(e.lang||"en-GB",a).format(i)}catch{o=String(s(i))}return(t<0?"\u2212":"")+(e.prefix||"")+o+(e.suffix||"")}function lt(t,e){if(!t.length)return"";for(var r="M"+s(t[0][0])+","+s(t[0][1]),i=1;i<t.length;i++){var n=t[i-1],a=t[i];if(e)r+="L"+s(a[0])+","+s(a[1]);else{var o=(n[0]+a[0])/2;r+="C"+s(o)+","+s(n[1])+" "+s(o)+","+s(a[1])+" "+s(a[0])+","+s(a[1])}}return r}function p(t,e,r,i){return'<text x="'+s(t)+'" y="'+s(e)+'" '+(i||"")+">"+h(r)+"</text>"}function F(t,e,r,i){return'fill="'+(i||t.muted)+'" font-family="'+w+'" font-size="'+(e||10)+'"'+(r?" "+r:"")}function ct(t,e,r,i,n){return'<rect class="bzc-hit" x="'+s(t)+'" y="'+s(e)+'" width="'+s(Math.max(1,r))+'" height="'+s(Math.max(1,i))+'" fill="#000" fill-opacity="0" data-tip="'+h(n)+'"/>'}function ht(t,e,r){return t.animate?' class="'+e+'"'+(r?' style="animation-delay:'+s(r)+'s"':""):""}function ut(t,e){var r=V(t.color).filter(Boolean);return r.length?r:e.palette}function dt(t,e,r,i,n){return p(e+i/2,r+n/2+4,"No data yet",'text-anchor="middle" fill="'+t.muted+'" font-family="'+x+'" font-size="13"')}function ft(t,e){return c(t.notes)?String(t.notes).split(";").map(function(r){var i=r.indexOf(":");if(i<0)return null;var n=r.slice(0,i).trim(),a=r.slice(i+1).trim(),o=e.map(String).indexOf(n);return o<0&&String(parseInt(n,10))===n&&(o=parseInt(n,10)),o>=0&&a?{i:o,text:a}:null}).filter(Boolean):[]}function mt(t,e,r,i,n){var a=(c(t.goalLabel)?t.goalLabel:"Goal")+" "+k(v(t.goal,0),t);return'<line x1="'+s(r)+'" x2="'+s(i)+'" y1="'+s(n)+'" y2="'+s(n)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-width="1.25" stroke-dasharray="4 4"/>'+p(i,n-5,a,F(e,10,'text-anchor="end"'))}function pt(t,e,r){var i=String(c(e.stat)?e.stat:r||"").toLowerCase();if(!i||i==="none"||!t.length)return null;var n=Y(t),a={last:t[t.length-1],total:n,sum:n,average:n/t.length,avg:n/t.length,max:Math.max.apply(null,t),min:Math.min.apply(null,t)};if(!(i in a))return null;var o=null;return i==="last"&&t.length>1&&e.delta!=="none"&&(o=t[t.length-1]-t[0]),{val:a[i],delta:o}}var N=["spark","line","area","bars","scatter","ring","donut","gauge","progress","heatmap"],A={};function wt(t,e){A[t]=e}var X=t=>t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase());function U(t,e){if(!A[t])throw new Error(N.includes(t)?`Bezel Charts: the ${t} chart isn't loaded. Add import 'bezel-charts/${t}', or load dist/charts/${t}.js.`:`Bezel Charts: unknown chart type "${t}". Choose one of: ${N.join(", ")}.`);let r={};for(let[i,n]of Object.entries(e))r[X(i)]=n;return r}function S(t,e={}){let r=U(t,e);r.animate=C(r.animate),r.frame=r.frame==="none"?"none":"bezel";let i=r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme||"dark";return A[t](r,g[i])}function j(t,e={}){return A[t].table(U(t,e))}function $(t){return t.replace(/<rect class="bzc-hit"[^>]*\/>/g,"").replace(/<circle[^>]* class="bzc-hit"[^>]*\/>/g,"").replace(/ data-tip="[^"]*"/g,"")}function yt(t,e={}){return $(S(t,{...e,animate:!1}))}var q=["type","values","labels","series","heading","prefix","suffix","decimals","compact","color","theme","frame","width","height","goal","goal-label","notes","show-values","stat","delta","delta-label","max","min","value","zones","horizontal","straight","zero","start","lang","corners","background","center-label","highlight","x","y","x-label","y-label","trend","static","no-tooltips","stacked","angle-labels","dash","markers","patterns"],_=`:host{display:block;position:relative;max-width:100%}:host([hidden]){display:none}svg{display:block;max-width:100%;height:auto;overflow:visible}.tip{position:absolute;left:0;top:0;pointer-events:none;background:#0b0b10;color:#f2f1f7;font:600 12px/1.5 ${w};padding:7px 10px;border-radius:10px;white-space:pre;opacity:0;transform:translate(-50%,calc(-100% - 12px));transition:opacity .12s;z-index:3;border:1px solid #2a2935;box-shadow:0 8px 24px rgba(0,0,0,.35)}.tip.on{opacity:1}.c{outline:none}.c:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 7px #000}.k{stroke:currentColor;stroke-width:2;stroke-opacity:1}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (forced-colors:active){.c:focus-visible{outline-color:Highlight}}`,Q={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1},J=()=>typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null,K=()=>{let t=typeof document<"u"&&document.documentElement?.getAttribute?.("data-theme");return t==="light"||t==="dark"?t:null},R=new Set;typeof MutationObserver=="function"&&typeof document<"u"&&document.documentElement&&new MutationObserver(()=>R.forEach(t=>t.refresh())).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});var Z=typeof HTMLElement>"u"?class{}:HTMLElement,z=class extends Z{static get observedAttributes(){return q}static get themes(){return g}get resolvedTheme(){let e=this.getAttribute("theme");return e==="light"||e==="dark"?e:this.options.autoTheme}get chartType(){return this.getAttribute("type")||"spark"}connectedCallback(){this.shadowRoot||(this.attachShadow({mode:"open"}).innerHTML=`<style>${_}</style><div class="c" role="group" aria-roledescription="chart"></div><p class="sr" id="h">Use the arrow keys to step through the values.</p><div class="tip" aria-hidden="true"></div><div class="sr" aria-live="polite"></div><div class="sr"></div>`,[,this.#t,,this.#r,this.#s,this.#h]=this.shadowRoot.children,this.shadowRoot.addEventListener("pointermove",e=>this.#d(e)),this.shadowRoot.addEventListener("pointerdown",e=>this.#d(e)),this.addEventListener("pointerleave",()=>this.#r.classList.remove("on")),this.#t.addEventListener("keydown",e=>this.#g(e)),this.#t.addEventListener("blur",()=>this.#b())),R.add(this),this.#i=J(),this.#i?.addEventListener?.("change",this.#u),typeof ResizeObserver=="function"?(this.#o=new ResizeObserver(([e])=>{let r=Math.round(e.contentRect.width);(!this.#n||!this.hasAttribute("width")&&r>0&&Math.abs(r-this.#l)>1)&&this.#a()}),this.#o.observe(this)):this.#a()}disconnectedCallback(){R.delete(this),this.#o?.disconnect(),this.#i?.removeEventListener?.("change",this.#u)}attributeChangedCallback(){!this.#n||this.#c||(this.#c=!0,queueMicrotask(()=>{this.#c=!1,this.#a()}))}get options(){let e={};for(let r of q)this.hasAttribute(r)&&(e[r]=this.getAttribute(r));return e.width||(e.width=this.#l||360),e.autoTheme=K()||(this.#i?this.#i.matches?"dark":"light":"dark"),e}refresh(){this.#n&&this.#a()}toSVG(e={}){return $(S(this.chartType,{...this.options,...e,animate:!1}))}download(e){let r=URL.createObjectURL(new Blob([this.toSVG()],{type:"image/svg+xml"})),i=Object.assign(document.createElement("a"),{href:r,download:`${(e||this.getAttribute("heading")||this.chartType).replace(/[^\w-]+/g,"-").toLowerCase()}.svg`});document.body.append(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}#o=null;#t=null;#r=null;#s=null;#h=null;#e=-1;#i=null;#l=0;#n=!1;#c=!1;#u=()=>{let e=this.getAttribute("theme");(!e||e==="auto")&&this.refresh()};#a(){if(!this.shadowRoot)return;let e=Math.round(this.getBoundingClientRect?.().width||0);this.#l=e>0?e:360;let r=this.options;r.animate=!this.#n&&!this.hasAttribute("static");let i,n=null;try{i=S(this.chartType,r),n=j(this.chartType,r)}catch(d){i=`<p style="font:13px ${x};color:#d63f7c">${h(d.message)}</p>`}let a=this.#t;a.innerHTML=i.replace(/<title>[\s\S]*?<\/title>/,"");let o=a.querySelector("svg");o?(a.setAttribute("aria-label",o.getAttribute("aria-label")),o.removeAttribute("role"),o.removeAttribute("aria-label"),o.setAttribute("aria-hidden","true")):a.removeAttribute("aria-label");let l=!!o&&!this.hasAttribute("no-tooltips");l?(a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby","h")):(a.removeAttribute("tabindex"),a.removeAttribute("aria-describedby")),a.style.color=g[r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme].fg,a.style.borderRadius=`${r.frame==="none"?4:u(+r.corners||22,0,60)}px`,this.#h.innerHTML=n&&n.rows.length?tt(r.heading,n):"",this.#e>=0&&l&&this.shadowRoot.activeElement===a?this.#p(this.#e):this.#e=-1,this.#n=!0,this.dispatchEvent(new CustomEvent("bezel-render",{bubbles:!0}))}#d(e){if(this.hasAttribute("no-tooltips"))return;let r=e.target?.closest?.("[data-tip]");if(!r){this.#r.classList.remove("on");return}this.#f(r,e.clientX,e.clientY)}#f(e,r,i){let n=this.#r;n.textContent=e.getAttribute("data-tip");let a=this.getBoundingClientRect?.()||{left:0,top:0,width:0},o=n.offsetWidth/2;n.style.left=`${u(r-a.left,o,Math.max(o,a.width-o))}px`,n.style.top=`${i-a.top}px`,n.classList.add("on")}#m(){return[...this.#t.querySelectorAll("[data-tip]:not([data-skip])")]}#g(e){let r=this.#m(),i=r.length;if(!i)return;let n=this.#e,a=Q[e.key];if(a)this.chartType==="heatmap"&&/Left|Right/.test(e.key)&&(a*=7),n=n<0?a>0?0:i-1:u(n+a,0,i-1);else if(e.key==="Home"||e.key==="End")n=e.key==="Home"?0:i-1;else{e.key==="Escape"&&this.#b();return}e.preventDefault(),this.#p(n,!0)}#p(e,r){let i=this.#m();if(!i.length)return;e=u(e,0,i.length-1),this.#t.querySelector(".k")?.classList.remove("k");let n=i[e],a=n.getBoundingClientRect?.()||{left:0,top:0,width:0};n.classList.add("k"),this.#e=e,this.#f(n,a.left+a.width/2,a.top),r&&(this.#s.textContent=`${n.getAttribute("data-tip").replace(/\n/g,", ")}. ${e+1} of ${i.length}`)}#b(){this.#t.querySelector(".k")?.classList.remove("k"),this.#r.classList.remove("on"),this.#s.textContent="",this.#e=-1}};function tt(t,{head:e,rows:r}){let i=n=>n.map((a,o)=>o?`<td>${h(a)}</td>`:`<th scope="row">${h(a)}</th>`).join("");return`<table><caption>${h(t||"Chart data")}</caption><thead><tr>${e.map(n=>`<th scope="col">${h(n)}</th>`).join("")}</tr></thead><tbody>${r.map(n=>`<tr>${i(n)}</tr>`).join("")}</tbody></table>`}function zt(t){typeof customElements>"u"||typeof HTMLElement>"u"||(customElements.get(`bezel-${t}`)||customElements.define(`bezel-${t}`,class extends z{get chartType(){return t}}),customElements.get("bezel-chart")||customElements.define("bezel-chart",class extends z{}))}function et(t){var e=Math.round(u(v(t.width,360),160,2400)),r=t.frame==="none"?0:4,i=t.frame==="none"?8:20;return{W:e,b:r,P:i,w:e-2*(r+i)}}var rt=".bzc-a{animation:bzc-in .6s ease both}.bzc-d{animation:bzc-draw 1.1s cubic-bezier(.3,.7,.2,1) both}.bzc-g{transform-box:fill-box;transform-origin:50% 100%;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gn{transform-box:fill-box;transform-origin:50% 0;animation:bzc-grow .7s cubic-bezier(.2,.8,.2,1) both}.bzc-gx{transform-box:fill-box;transform-origin:0 50%;animation:bzc-growx .8s cubic-bezier(.2,.8,.2,1) both}.bzc-s{animation:bzc-sweep 1.1s cubic-bezier(.2,.8,.2,1) both}@keyframes bzc-in{from{opacity:0}}@keyframes bzc-draw{from{stroke-dashoffset:1}}@keyframes bzc-grow{from{transform:scaleY(0)}}@keyframes bzc-growx{from{transform:scaleX(0)}}@keyframes bzc-sweep{from{stroke-dasharray:0 100}}@media (prefers-reduced-motion:reduce){[class^=bzc-]{animation:none!important}}";function Ft(t,e,r,i,n){var a=et(t),o=a.W,l=a.b,d=a.P,O=a.w,E=u(v(t.corners,22),0,60),f=l+d,y="";c(t.heading)&&(y+=p(l+d,f+10,String(t.heading).toUpperCase(),F(e,11,'font-weight="600" letter-spacing="1.3"')),f+=24);var m=n&&n.stat;if(m){if(y+=p(l+d,f+30,k(m.val,t),'fill="'+e.fg+'" font-family="'+x+'" font-size="32" font-weight="800" letter-spacing="-0.5"'),m.delta!=null){var M=m.delta>0,H=m.delta===0,I=t.delta==="inverse"?!M:M,D=H?e.muted:I?e.up:e.down,P=(H?"\u25CF ":M?"\u25B2 ":"\u25BC ")+k(Math.abs(m.delta),t)+" "+(c(t.deltaLabel)?t.deltaLabel:"since start");y+=p(l+d+O,f+28,P,'text-anchor="end" fill="'+D+'" font-family="'+w+'" font-size="11" font-weight="600"')}f+=44}var G=i(l+d,f,O,r),b=Math.round(f+r+d+l),L="";t.frame!=="none"?L='<rect width="'+o+'" height="'+b+'" rx="'+E+'" fill="'+e.bezel+'"/><rect x="'+l+'" y="'+l+'" width="'+(o-2*l)+'" height="'+(b-2*l)+'" rx="'+Math.max(0,E-l)+'" fill="'+(t.background||e.tile)+'"/>':c(t.background)&&(L='<rect width="'+o+'" height="'+b+'" rx="'+E+'" fill="'+t.background+'"/>');var B=(c(t.heading)?t.heading+": ":"")+(n&&n.summary||"chart");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '+o+" "+b+'" width="'+o+'" height="'+b+'" role="img" aria-label="'+h(B)+'"><title>'+h(B)+"</title>"+(t.animate?"<style>"+rt+"</style>":"")+L+y+G+"</svg>"}export{x as a,w as b,nt as c,h as d,s as e,u as f,v as g,c as h,T as i,V as j,at as k,Y as l,ot as m,st as n,C as o,k as p,lt as q,p as r,F as s,ct as t,ht as u,ut as v,dt as w,ft as x,mt as y,pt as z,et as A,Ft as B,wt as C,S as D,yt as E,z as F,zt as G};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{a as w,e,j as d,k as x,m as g,p as v,r as L}from"./shared-4QPUIMAU.js";function m(r,t,a){if(r===t)if(r===0)t=1;else{var n=Math.abs(r)*.1;r-=n,t+=n}for(var l=(t-r)/(a||4),i=Math.pow(10,Math.floor(Math.log10(l))),u=l/i,o=(u<=1?1:u<=2?2:u<=5?5:10)*i,f=Math.floor(r/o)*o,h=Math.ceil(t/o)*o,s=[],c=f;c<=h+o/2;c+=o)s.push(+c.toFixed(10));return{lo:f,hi:h,ticks:s}}function E(r,t,a,n,l,i,u,o){var f=n,h=l,s="",c=o||13;return r.forEach(function(p,M){var S=c+g(p,12)+16;f>n&&f+S-16>n+i&&(f=n,h+=20),s+=(u?u(M,f,h):'<circle cx="'+e(f+4)+'" cy="'+e(h+6)+'" r="4" fill="'+t[M%t.length]+'"/>')+L(f+c,h+10,p,'fill="'+a.fg+'" font-family="'+w+'" font-size="12"'),f+=S}),{svg:s,height:h-l+24}}var T={solid:"",dashed:"7 5",dotted:"1 5",dashdot:"9 4 1 4"},A=["circle","square","triangle","diamond"],H=["solid","stripes","dots","grid"];function O(r,t,a){if(r==null||r===!1||r==="none"||r==="false")return null;var n=r===!0||r===""||r==="auto"?t:d(r).map(function(l){return t.indexOf(l)<0?a:l});return n.length?function(l){return n[l%n.length]}:null}function q(r,t,a,n,l){var i=n*1.15,u=n*.85;return r==="square"?'<rect x="'+e(t-u)+'" y="'+e(a-u)+'" width="'+e(2*u)+'" height="'+e(2*u)+'" rx="1"'+l+"/>":r==="triangle"?'<path d="M'+e(t)+","+e(a-i)+"L"+e(t+i)+","+e(a+u)+"L"+e(t-i)+","+e(a+u)+'Z"'+l+"/>":r==="diamond"?'<path d="M'+e(t)+","+e(a-i*1.1)+"L"+e(t+i)+","+e(a)+"L"+e(t)+","+e(a+i*1.1)+"L"+e(t-i)+","+e(a)+'Z"'+l+"/>":'<circle cx="'+e(t)+'" cy="'+e(a)+'" r="'+e(n)+'"'+l+"/>"}function N(r,t,a,n){var l=' stroke="'+n+'" stroke-opacity=".55" stroke-width="1.5"';return'<pattern id="'+r+'" width="6" height="6" patternUnits="userSpaceOnUse"'+(t==="dots"?"":' patternTransform="rotate(45)"')+'><rect width="6" height="6" fill="'+a+'"/>'+(t==="dots"?'<circle cx="3" cy="3" r="1.3" fill="'+n+'" fill-opacity=".55"/>':'<path d="M3,0V6'+(t==="grid"?"M0,3H6":"")+'"'+l+"/>")+"</pattern>"}function P(r){return Math.max.apply(null,r.map(function(t){return g(t,10,!0)}))+10}function U(r,t){for(var a=x(r.values),n=d(r.series),l=d(r.labels),i=[],u=Math.max.apply(null,[0].concat(a.map(function(c){return c.length}))),o=0;o<u;o++){var f=[l[o]||"#"+(o+1)],h=0;a.forEach(function(c){f.push(o<c.length?v(c[o],r):""),h+=o<c.length?c[o]:0}),t&&f.push(v(h,r)),i.push(f)}var s=a.length>1||n.length?a.map(function(c,p){return n[p]||"Series "+(p+1)}):["Value"];return{head:["Label"].concat(s,t?["Total"]:[]),rows:i}}export{m as a,E as b,T as c,A as d,H as e,O as f,q as g,N as h,P as i,U as j};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{a as q,b as B,c as C,g as Y}from"./shared-APAAEWNX.js";import{e as p,f as H,h as L,m as S,r as M,s as b,t as K,u as X,y as W}from"./shared-4QPUIMAU.js";function Q(e,t,r,i,l,h,u){var a="",n=l,s=r.n,k=r.labels;if(r.names){var c=B(r.names,r.pal,t,i,n,h,r.key,r.kw);a+=c.svg,n+=c.height}var f=r.lo,v=r.hi;L(e.goal)&&(f=Math.min(f,+e.goal),v=Math.max(v,+e.goal)),r.zero&&(f=Math.min(0,f),v=Math.max(0,v));var g=q(f,v,4),F=g.ticks.map(r.tick),A=Math.max.apply(null,F.map(function(o){return S(o,10,!0)}))+10,G=k.length?20:4,m=i+A,d=h-A,y=u-(n-l)-G,z=function(o){return s===1?m+d/2:m+o*d/(s-1)},D=function(o){return n+y-(o-g.lo)/(g.hi-g.lo)*y};if(g.ticks.forEach(function(o,w){var E=D(o);a+='<line x1="'+p(m)+'" x2="'+p(m+d)+'" y1="'+p(E)+'" y2="'+p(E)+'" stroke="'+t.grid+'"'+(o===0?"":' stroke-dasharray="2 4"')+"/>"+M(m-8,E+3.5,F[w],b(t,10,'text-anchor="end"'))}),k.length){for(var I=Math.max(1,Math.ceil(s*(Math.max.apply(null,k.map(function(o){return S(o,10,!0)}))+10)/d)),x=0;x<s;x+=I)if(k[x]!=null){var J=s>1&&x===0?"start":s>1&&x===s-1?"end":"middle";a+=M(z(x),n+y+15,k[x],b(t,10,'text-anchor="'+J+'"'))}}return r.notes.forEach(function(o){if(!(o.i>=s)){var w=z(o.i);a+='<line x1="'+p(w)+'" x2="'+p(w)+'" y1="'+p(n+12)+'" y2="'+p(n+y)+'" stroke="'+t.fg+'" stroke-opacity=".4" stroke-dasharray="3 3"/>'+M(H(w,m+30,m+d-30),n+8,o.text,b(t,10,'text-anchor="middle"',t.fg))}}),{svg:a,X:z,Y:D,px:m,pw:d,top:n,ph:y}}function R(e,t,r,i,l){for(var h=L(e.goal)?W(e,t,r.px,r.px+r.pw,r.Y(+e.goal)):"",u=i>1?r.pw/(i-1):r.pw,a=0;a<i;a++)h+=K(r.X(a)-u/2,r.top,u,r.ph,l(a));return h}function T(e,t,r,i){return function(l,h,u){var a=e[l%e.length],n=t?C[t(l)]:"",s=r?r(l):"none";return'<line x1="'+p(h)+'" x2="'+p(h+18)+'" y1="'+p(u+6)+'" y2="'+p(u+6)+'" stroke="'+a+'" stroke-width="2.5" stroke-linecap="round"'+(n?' stroke-dasharray="'+n+'"':"")+"/>"+(s!=="none"?Y(s,h+9,u+6,3.5,' fill="'+a+'" stroke="'+i+'" stroke-width="1.5"'):"")}}function U(e,t,r,i,l){return l?'<path d="'+t+'" fill="none" stroke="'+r+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="'+l+'"'+X(e,"bzc-a",i*.15)+"/>":'<path d="'+t+'" fill="none" stroke="'+r+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1'+(e.animate?";animation-delay:"+i*.15+"s":"")+'"'+(e.animate?' class="bzc-d"':"")+"/>"}function V(e,t,r,i,l,h,u,a){var n="",s=Math.ceil(r.length/40);return r.forEach(function(k,c){(c%s===0||c===r.length-1)&&(n+=Y(t,i(c),l(k),3.5,' fill="'+h+'" stroke="'+u+'" stroke-width="1.5"'+X(e,"bzc-a",.6+a*.15)))}),n}export{Q as a,R as b,T as c,U as d,V as e};
@@ -0,0 +1,2 @@
1
+ /*! Bezel Charts v1.4.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
2
+ import{B as H,C as J,D as U,E as W,F as _,G as K,c as I,e as n,f as N,g as P,h as y,i as b,j as x,o as L,p as h,q as X,r as M,s as E,t as Y,u as z,v as Z,w as q,x as A,y as D,z as F}from"./shared-4QPUIMAU.js";function k(t,l){var r=b(t.values),o=Z(t,l)[0],Q=P(t.height,64),G=x(t.labels),R=A(t,G),T=F(r,t,"last");return H(t,l,Q,function(i,c,p,f){if(!r.length)return q(l,i,c,p,f);var v=r.length===1?[r[0],r[0]]:r,u=Math.min.apply(null,v),m=Math.max.apply(null,v);y(t.goal)&&(u=Math.min(u,+t.goal),m=Math.max(m,+t.goal));var V=(m-u||Math.abs(m)||1)*.12;u-=V,m+=V;var O=function(a){return i+a*p/(v.length-1)},S=function(a){return c+f-(a-u)/(m-u)*f},d=v.map(function(a,e){return[O(e),S(a)]}),j=X(d,L(t.straight)),B=I("g"),g=d[d.length-1],s='<defs><linearGradient id="'+B+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+o+'" stop-opacity=".32"/><stop offset="1" stop-color="'+o+'" stop-opacity="0"/></linearGradient></defs>';[1/3,2/3].forEach(function(a){s+='<line x1="'+i+'" x2="'+(i+p)+'" y1="'+n(c+f*a)+'" y2="'+n(c+f*a)+'" stroke="'+l.grid+'" stroke-dasharray="2 4"/>'}),s+='<path d="'+j+"L"+n(g[0])+","+(c+f)+"L"+i+","+(c+f)+'Z" fill="url(#'+B+')"'+z(t,"bzc-a")+"/>",s+='<path d="'+j+'" fill="none" stroke="'+o+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1"'+z(t,"bzc-d")+"/>",y(t.goal)&&(s+=D(t,l,i,i+p,S(+t.goal))),R.forEach(function(a){if(!(a.i>=r.length)){var e=d[a.i];s+='<circle cx="'+n(e[0])+'" cy="'+n(e[1])+'" r="3.5" fill="'+l.fg+'"/>'+M(N(e[0],i+30,i+p-30),e[1]-9,a.text,E(l,10,'text-anchor="middle"',l.fg))}}),s+='<circle cx="'+n(g[0])+'" cy="'+n(g[1])+'" r="9" fill="'+o+'" fill-opacity=".25"/><circle cx="'+n(g[0])+'" cy="'+n(g[1])+'" r="4.5" fill="'+o+'"/>',L(t.showValues)&&d.forEach(function(a,e){e<r.length&&(s+=M(a[0],a[1]-8,h(r[e],t,!0),E(l,9,'text-anchor="middle"')))});var C=r.length>1?p/(r.length-1):p;return r.forEach(function(a,e){s+=Y(O(e)-C/2,c-6,C,f+12,(G[e]||"#"+(e+1))+": "+h(a,t))}),s},{stat:T,summary:r.length?"latest "+h(r[r.length-1],t):"no data"})}k.table=function(t){var l=x(t.labels);return{head:["Label","Value"],rows:b(t.values).map(function(r,o){return[l[o]||"#"+(o+1),h(r,t)]})}};J("spark",k);K("spark");export{_ as BezelChart,U as render,W as toSVG};
package/package.json CHANGED
@@ -1,12 +1,22 @@
1
1
  {
2
2
  "name": "bezel-charts",
3
- "version": "1.2.0",
4
- "description": "Small, polished charts as zero-dependency web components. Sparklines, lines, bars, rings, donuts, gauges, progress bars and heatmaps, with one-click static SVG export for READMEs.",
3
+ "version": "1.4.0",
4
+ "description": "Small, polished charts as zero-dependency web components. Sparklines, lines, areas, bars, rings, donuts, gauges, progress bars and heatmaps, with one-click static SVG export for READMEs.",
5
5
  "type": "module",
6
6
  "main": "dist/bezel-charts.js",
7
7
  "module": "dist/bezel-charts.js",
8
8
  "exports": {
9
9
  ".": "./dist/bezel-charts.js",
10
+ "./spark": "./dist/charts/spark.js",
11
+ "./line": "./dist/charts/line.js",
12
+ "./area": "./dist/charts/area.js",
13
+ "./bars": "./dist/charts/bars.js",
14
+ "./scatter": "./dist/charts/scatter.js",
15
+ "./ring": "./dist/charts/ring.js",
16
+ "./donut": "./dist/charts/donut.js",
17
+ "./gauge": "./dist/charts/gauge.js",
18
+ "./progress": "./dist/charts/progress.js",
19
+ "./heatmap": "./dist/charts/heatmap.js",
10
20
  "./src/*": "./src/*"
11
21
  },
12
22
  "files": [