bezel-charts 1.7.0 → 1.8.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.
- package/README.md +16 -7
- package/dist/bezel-charts.iife.js +21 -21
- package/dist/bezel-charts.js +222 -30
- package/dist/bezel-charts.min.js +21 -21
- package/dist/charts/area.js +4 -4
- package/dist/charts/bars.js +2 -2
- package/dist/charts/boxplot.js +2 -2
- package/dist/charts/combo.js +2 -2
- package/dist/charts/donut.js +2 -2
- package/dist/charts/gauge.js +2 -2
- package/dist/charts/heatmap.js +2 -2
- package/dist/charts/histogram.js +2 -2
- package/dist/charts/line.js +3 -3
- package/dist/charts/progress.js +2 -2
- package/dist/charts/ring.js +2 -2
- package/dist/charts/scatter.js +2 -2
- package/dist/charts/shared-62V33ZP5.js +2 -0
- package/dist/charts/shared-7G7LN4HE.js +2 -0
- package/dist/charts/{shared-Y6MBWBOE.js → shared-TBF2ZMMV.js} +2 -2
- package/dist/charts/shared-ZKK7S7JV.js +2 -0
- package/dist/charts/spark.js +2 -2
- package/package.json +1 -1
- package/src/charts/area.js +15 -7
- package/src/charts/combo.js +1 -1
- package/src/charts/line.js +26 -11
- package/src/core/lines.js +30 -0
- package/src/core/time.js +101 -0
- package/src/core/xy.js +73 -38
- package/src/element.js +1 -1
- package/src/index.js +1 -1
- package/dist/charts/shared-6SF4EQMI.js +0 -2
- package/dist/charts/shared-D5IXRVKV.js +0 -2
package/dist/bezel-charts.min.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/*! Bezel Charts v1.
|
|
2
|
-
var Et="ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif",Ft="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",dr=0;function Ht(t){return"bzc"+t+(++dr).toString(36)+Math.random().toString(36).slice(2,6)}function zt(t){return String(t??"").replace(/[&<>"']/g,function(e){return{"&":"&","<":"<",">":">",'"':""","'":"'"}[e]})}function a(t){return Math.round(t*100)/100}function ct(t,e,r){return Math.max(e,Math.min(r,t))}function j(t,e){var r=parseFloat(t);return isFinite(r)?r:e}function R(t){return t!=null&&t!==""}function Mt(t){return Array.isArray(t)?t.map(function(e){var r=+e;return isFinite(r)?r:0}):R(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):R(t)?String(t).split(",").map(function(e){return e.trim()}):[]}function bt(t){return Array.isArray(t)?Array.isArray(t[0])?t.map(Mt):[Mt(t)]:R(t)?String(t).split("|").map(Mt).filter(function(e){return e.length}):[]}function Ut(t){return t.reduce(function(e,r){return e+r},0)}function ht(t,e,r){return String(t).length*e*(r?.6:.56)}function re(t,e){return t=String(t),t.length>e?t.slice(0,Math.max(1,e-1))+"\u2026":t}function at(t){return t===!0||t===""||t==="true"||t==="1"}function m(t,e,r){if(!isFinite(t))return"\u2013";var l=Math.abs(t),i;R(e.decimals)?i=ct(parseInt(e.decimals,10)||0,0,6):i=t%1===0?0:l<10?2:l<100?1:0;var n={maximumFractionDigits:i,minimumFractionDigits:R(e.decimals)?i:0};(at(e.compact)||r)&&l>=1e4&&(n={notation:"compact",maximumFractionDigits:1});var o;try{o=new Intl.NumberFormat(e.lang||"en-GB",n).format(l)}catch{o=String(a(l))}return(t<0?"\u2212":"")+(e.prefix||"")+o+(e.suffix||"")}function Zt(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 o=(i[0]+n[0])/2;r+="C"+a(o)+","+a(i[1])+" "+a(o)+","+a(n[1])+" "+a(n[0])+","+a(n[1])}}return r}function N(t,e,r,l){return'<text x="'+a(t)+'" y="'+a(e)+'" '+(l||"")+">"+zt(r)+"</text>"}function _(t,e,r,l){return'fill="'+(l||t.muted)+'" font-family="'+Ft+'" font-size="'+(e||10)+'"'+(r?" "+r:"")}function wt(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="'+zt(i)+'"/>'}function mt(t,e,r){return t.animate?' class="'+e+'"'+(r?' style="animation-delay:'+a(r)+'s"':""):""}function pt(t,e){var r=U(t.color).filter(Boolean);return r.length?r:e.palette}function dt(t,e,r,l,i){return N(e+l/2,r+i/2+4,"No data yet",'text-anchor="middle" fill="'+t.muted+'" font-family="'+Et+'" font-size="13"')}function ne(t,e){return R(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(),o=e.map(String).indexOf(i);return o<0&&String(parseInt(i,10))===i&&(o=parseInt(i,10)),o>=0&&n?{i:o,text:n}:null}).filter(Boolean):[]}function Kt(t,e,r,l,i){var n=(R(t.goalLabel)?t.goalLabel:"Goal")+" "+m(j(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"/>'+N(l,i-5,n,_(e,10,'text-anchor="end"'))}function Nt(t,e,r){var l=String(R(e.stat)?e.stat:r||"").toLowerCase();if(!l||l==="none"||!t.length)return null;var i=Ut(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 o=null;return l==="last"&&t.length>1&&e.delta!=="none"&&(o=t[t.length-1]-t[0]),{val:n[l],delta:o}}function ue(t){var e=Math.round(ct(j(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 gr=".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 gt(t,e,r,l,i){var n=ue(t),o=n.W,s=n.b,f=n.P,c=n.w,g=ct(j(t.corners,22),0,60),p=s+f,u="";R(t.heading)&&(u+=N(s+f,p+10,String(t.heading).toUpperCase(),_(e,11,'font-weight="600" letter-spacing="1.3"')),p+=24);var L=i&&i.stat;if(L){if(u+=N(s+f,p+30,m(L.val,t),'fill="'+e.fg+'" font-family="'+Et+'" font-size="32" font-weight="800" letter-spacing="-0.5"'),L.delta!=null){var A=L.delta>0,O=L.delta===0,k=t.delta==="inverse"?!A:A,B=O?e.muted:k?e.up:e.down,C=(O?"\u25CF ":A?"\u25B2 ":"\u25BC ")+m(Math.abs(L.delta),t)+" "+(R(t.deltaLabel)?t.deltaLabel:"since start");u+=N(s+f+c,p+28,C,'text-anchor="end" fill="'+B+'" font-family="'+Ft+'" font-size="11" font-weight="600"')}p+=44}var v=l(s+f,p,c,r),D=Math.round(p+r+f+s),M="";t.frame!=="none"?M='<rect width="'+o+'" height="'+D+'" rx="'+g+'" fill="'+e.bezel+'"/><rect x="'+s+'" y="'+s+'" width="'+(o-2*s)+'" height="'+(D-2*s)+'" rx="'+Math.max(0,g-s)+'" fill="'+(t.background||e.tile)+'"/>':R(t.background)&&(M='<rect width="'+o+'" height="'+D+'" rx="'+g+'" fill="'+t.background+'"/>');var x=(R(t.heading)?t.heading+": ":"")+(i&&i.summary||"chart");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '+o+" "+D+'" width="'+o+'" height="'+D+'" role="img" aria-label="'+zt(x)+'"><title>'+zt(x)+"</title>"+(t.animate?"<style>"+gr+"</style>":"")+M+u+v+"</svg>"}function Oe(t,e){var r=Mt(t.values),l=pt(t,e)[0],i=j(t.height,64),n=U(t.labels),o=ne(t,n),s=Nt(r,t,"last");return gt(t,e,i,function(f,c,g,p){if(!r.length)return dt(e,f,c,g,p);var u=r.length===1?[r[0],r[0]]:r,L=Math.min.apply(null,u),A=Math.max.apply(null,u);R(t.goal)&&(L=Math.min(L,+t.goal),A=Math.max(A,+t.goal));var O=(A-L||Math.abs(A)||1)*.12;L-=O,A+=O;var k=function(b){return f+b*g/(u.length-1)},B=function(b){return c+p-(b-L)/(A-L)*p},C=u.map(function(b,d){return[k(d),B(b)]}),v=Zt(C,at(t.straight)),D=Ht("g"),M=C[C.length-1],x='<defs><linearGradient id="'+D+'" 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(b){x+='<line x1="'+f+'" x2="'+(f+g)+'" y1="'+a(c+p*b)+'" y2="'+a(c+p*b)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'}),x+='<path d="'+v+"L"+a(M[0])+","+(c+p)+"L"+f+","+(c+p)+'Z" fill="url(#'+D+')"'+mt(t,"bzc-a")+"/>",x+='<path d="'+v+'" fill="none" stroke="'+l+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1"'+mt(t,"bzc-d")+"/>",R(t.goal)&&(x+=Kt(t,e,f,f+g,B(+t.goal))),o.forEach(function(b){if(!(b.i>=r.length)){var d=C[b.i];x+='<circle cx="'+a(d[0])+'" cy="'+a(d[1])+'" r="3.5" fill="'+e.fg+'"/>'+N(ct(d[0],f+30,f+g-30),d[1]-9,b.text,_(e,10,'text-anchor="middle"',e.fg))}}),x+='<circle cx="'+a(M[0])+'" cy="'+a(M[1])+'" r="9" fill="'+l+'" fill-opacity=".25"/><circle cx="'+a(M[0])+'" cy="'+a(M[1])+'" r="4.5" fill="'+l+'"/>',at(t.showValues)&&C.forEach(function(b,d){d<r.length&&(x+=N(b[0],b[1]-8,m(r[d],t,!0),_(e,9,'text-anchor="middle"')))});var T=r.length>1?g/(r.length-1):g;return r.forEach(function(b,d){x+=wt(k(d)-T/2,c-6,T,p+12,(n[d]||"#"+(d+1))+": "+m(b,t))}),x},{stat:s,summary:r.length?"latest "+m(r[r.length-1],t):"no data"})}Oe.table=function(t){var e=U(t.labels);return{head:["Label","Value"],rows:Mt(t.values).map(function(r,l){return[e[l]||"#"+(l+1),m(r,t)]})}};var pe={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 Ae=["spark","line","area","bars","combo","histogram","boxplot","scatter","ring","donut","gauge","progress","heatmap"],Te={};function vt(t,e){Te[t]=e}var vr=t=>t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase());function er(t,e){if(!Te[t])throw new Error(Ae.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: ${Ae.join(", ")}.`);let r={};for(let[l,i]of Object.entries(e))r[vr(l)]=i;return r}function Ot(t,e={}){let r=er(t,e);r.animate=at(r.animate),r.frame=r.frame==="none"?"none":"bezel";let l=r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme||"dark";return Te[t](r,pe[l])}function rr(t,e={}){return Te[t].table(er(t,e))}function Ke(t){return t.replace(/<rect class="bzc-hit"[^>]*\/>/g,"").replace(/<circle[^>]* class="bzc-hit"[^>]*\/>/g,"").replace(/ data-tip="[^"]*"/g,"")}function Pt(t,e={}){return Ke(Ot(t,{...e,animate:!1}))}var ar=["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","bins","bin-width","mark","percent","whiskers","line","line-series","line-prefix","line-suffix","line-decimals","line-label","line-zero"],xr=`: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 ${Ft};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}}`,br={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1},yr=()=>typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null,kr=()=>{let t=typeof document<"u"&&document.documentElement?.getAttribute?.("data-theme");return t==="light"||t==="dark"?t:null},Qe=new Set;typeof MutationObserver=="function"&&typeof document<"u"&&document.documentElement&&new MutationObserver(()=>Qe.forEach(t=>t.refresh())).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});var Mr=typeof HTMLElement>"u"?class{}:HTMLElement,At=class extends Mr{static get observedAttributes(){return ar}static get themes(){return pe}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>${xr}</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.#u]=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())),Qe.add(this),this.#a=yr(),this.#a?.addEventListener?.("change",this.#c),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(){Qe.delete(this),this.#l?.disconnect(),this.#a?.removeEventListener?.("change",this.#c)}attributeChangedCallback(){!this.#n||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#i()}))}get options(){let e={};for(let r of ar)this.hasAttribute(r)&&(e[r]=this.getAttribute(r));return e.width||(e.width=this.#s||360),e.autoTheme=kr()||(this.#a?this.#a.matches?"dark":"light":"dark"),e}refresh(){this.#n&&this.#i()}toSVG(e={}){return Ke(Ot(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;#u=null;#e=-1;#a=null;#s=0;#n=!1;#f=!1;#c=()=>{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=Ot(this.chartType,r),i=rr(this.chartType,r)}catch(f){l=`<p style="font:13px ${Et};color:#d63f7c">${zt(f.message)}</p>`}let n=this.#t;n.innerHTML=l.replace(/<title>[\s\S]*?<\/title>/,"");let o=n.querySelector("svg");o?(n.setAttribute("aria-label",o.getAttribute("aria-label")),o.removeAttribute("role"),o.removeAttribute("aria-label"),o.setAttribute("aria-hidden","true")):n.removeAttribute("aria-label");let s=!!o&&!this.hasAttribute("no-tooltips");s?(n.setAttribute("tabindex","0"),n.setAttribute("aria-describedby","h")):(n.removeAttribute("tabindex"),n.removeAttribute("aria-describedby")),n.style.color=pe[r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme].fg,n.style.borderRadius=`${r.frame==="none"?4:ct(+r.corners||22,0,60)}px`,this.#u.innerHTML=i&&i.rows.length?wr(r.heading,i):"",this.#e>=0&&s&&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},o=i.offsetWidth/2;i.style.left=`${ct(r-n.left,o,Math.max(o,n.width-o))}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=br[e.key];if(n)this.chartType==="heatmap"&&/Left|Right/.test(e.key)&&(n*=7),i=i<0?n>0?0:l-1:ct(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=ct(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 wr(t,{head:e,rows:r}){let l=i=>i.map((n,o)=>o?`<td>${zt(n)}</td>`:`<th scope="row">${zt(n)}</th>`).join("");return`<table><caption>${zt(t||"Chart data")}</caption><thead><tr>${e.map(i=>`<th scope="col">${zt(i)}</th>`).join("")}</tr></thead><tbody>${r.map(i=>`<tr>${l(i)}</tr>`).join("")}</tbody></table>`}function xt(t){typeof customElements>"u"||typeof HTMLElement>"u"||(customElements.get(`bezel-${t}`)||customElements.define(`bezel-${t}`,class extends At{get chartType(){return t}}),customElements.get("bezel-chart")||customElements.define("bezel-chart",class extends At{}))}vt("spark",Oe);xt("spark");function It(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))),o=i/n,s=(o<=1?1:o<=2?2:o<=5?5:10)*n,f=Math.floor(t/s)*s,c=Math.ceil(e/s)*s,g=[],p=f;p<=c+s/2;p+=s)g.push(+p.toFixed(10));return{lo:f,hi:c,ticks:g}}function Yt(t,e,r,l,i,n,o,s){var f=l,c=i,g="",p=s||13;return t.forEach(function(u,L){var A=p+ht(u,12)+16;f>l&&f+A-16>l+n&&(f=l,c+=20),g+=(o?o(L,f,c):'<circle cx="'+a(f+4)+'" cy="'+a(c+6)+'" r="4" fill="'+e[L%e.length]+'"/>')+N(f+p,c+10,u,'fill="'+r.fg+'" font-family="'+Et+'" font-size="12"'),f+=A}),{svg:g,height:c-i+24}}var $t={solid:"",dashed:"7 5",dotted:"1 5",dashdot:"9 4 1 4"},ie=["circle","square","triangle","diamond"],le=["solid","stripes","dots","grid"];function Bt(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 Qt(t,e,r,l,i){var n=l*1.15,o=l*.85;return t==="square"?'<rect x="'+a(e-o)+'" y="'+a(r-o)+'" width="'+a(2*o)+'" height="'+a(2*o)+'" rx="1"'+i+"/>":t==="triangle"?'<path d="M'+a(e)+","+a(r-n)+"L"+a(e+n)+","+a(r+o)+"L"+a(e-n)+","+a(r+o)+'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 oe(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 nr(t){return Math.max.apply(null,t.map(function(e){return ht(e,10,!0)}))+10}function de(t,e){for(var r=bt(t.values),l=U(t.series),i=U(t.labels),n=[],o=Math.max.apply(null,[0].concat(r.map(function(p){return p.length}))),s=0;s<o;s++){var f=[i[s]||"#"+(s+1)],c=0;r.forEach(function(p){f.push(s<p.length?m(p[s],t):""),c+=s<p.length?p[s]:0}),e&&f.push(m(c,t)),n.push(f)}var g=r.length>1||l.length?r.map(function(p,u){return l[u]||"Series "+(u+1)}):["Value"];return{head:["Label"].concat(g,e?["Total"]:[]),rows:n}}function Ce(t,e,r,l,i,n,o){var s="",f=i,c=r.n,g=r.labels;if(r.names){var p=Yt(r.names,r.pal,e,l,f,n,r.key,r.kw);s+=p.svg,f+=p.height}var u=r.lo,L=r.hi;R(t.goal)&&(u=Math.min(u,+t.goal),L=Math.max(L,+t.goal)),r.zero&&(u=Math.min(0,u),L=Math.max(0,L));var A=It(u,L,4),O=A.ticks.map(r.tick),k=Math.max.apply(null,O.map(function(F){return ht(F,10,!0)}))+10,B=g.length?20:4,C=l+k,v=n-k,D=o-(f-i)-B,M=function(F){return c===1?C+v/2:C+F*v/(c-1)},x=function(F){return f+D-(F-A.lo)/(A.hi-A.lo)*D};if(A.ticks.forEach(function(F,w){var E=x(F);s+='<line x1="'+a(C)+'" x2="'+a(C+v)+'" y1="'+a(E)+'" y2="'+a(E)+'" stroke="'+e.grid+'"'+(F===0?"":' stroke-dasharray="2 4"')+"/>"+N(C-8,E+3.5,O[w],_(e,10,'text-anchor="end"'))}),g.length){for(var T=Math.max(1,Math.ceil(c*(Math.max.apply(null,g.map(function(F){return ht(F,10,!0)}))+10)/v)),b=0;b<c;b+=T)if(g[b]!=null){var d=c>1&&b===0?"start":c>1&&b===c-1?"end":"middle";s+=N(M(b),f+D+15,g[b],_(e,10,'text-anchor="'+d+'"'))}}return r.notes.forEach(function(F){if(!(F.i>=c)){var w=M(F.i);s+='<line x1="'+a(w)+'" x2="'+a(w)+'" y1="'+a(f+12)+'" y2="'+a(f+D)+'" stroke="'+e.fg+'" stroke-opacity=".4" stroke-dasharray="3 3"/>'+N(ct(w,C+30,C+v-30),f+8,F.text,_(e,10,'text-anchor="middle"',e.fg))}}),{svg:s,X:M,Y:x,px:C,pw:v,top:f,ph:D}}function Fe(t,e,r,l,i){for(var n=R(t.goal)?Kt(t,e,r.px,r.px+r.pw,r.Y(+t.goal)):"",o=l>1?r.pw/(l-1):r.pw,s=0;s<l;s++)n+=wt(r.X(s)-o/2,r.top,o,r.ph,i(s));return n}function Be(t,e,r,l){return function(i,n,o){var s=t[i%t.length],f=e?$t[e(i)]:"",c=r?r(i):"none";return'<line x1="'+a(n)+'" x2="'+a(n+18)+'" y1="'+a(o+6)+'" y2="'+a(o+6)+'" stroke="'+s+'" stroke-width="2.5" stroke-linecap="round"'+(f?' stroke-dasharray="'+f+'"':"")+"/>"+(c!=="none"?Qt(c,n+9,o+6,3.5,' fill="'+s+'" stroke="'+l+'" stroke-width="1.5"'):"")}}function ge(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+'"'+mt(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 ve(t,e,r,l,i,n,o,s){var f="",c=Math.ceil(r.length/40);return r.forEach(function(g,p){(p%c===0||p===r.length-1)&&(f+=Qt(e,l(p),i(g),3.5,' fill="'+n+'" stroke="'+o+'" stroke-width="1.5"'+mt(t,"bzc-a",.6+s*.15)))}),f}function Ne(t,e){var r=bt(t.values),l=U(t.series),i=U(t.labels),n=pt(t,e),o=j(t.height,170),s=Math.max.apply(null,[0].concat(r.map(function(k){return k.length}))),f=ne(t,i),c=r.length>1||l.length>0,g=Nt(r[0]||[],t,""),p=Bt(t.dash,Object.keys($t),"solid"),u=Bt(t.markers,ie,"none"),L=t.background||e.tile,A=(p||u)&&Be(n,p,u,L),O=function(k){return l[k]||"Series "+(k+1)};return gt(t,e,o,function(k,B,C,v){if(!s)return dt(e,k,B,C,v);var D=[].concat.apply([],r),M=Ce(t,e,{n:s,names:c?r.map(function(S,y){return O(y)}):null,pal:n,key:A,kw:A&&24,lo:Math.min.apply(null,D),hi:Math.max.apply(null,D),zero:at(t.zero),labels:i,notes:f,tick:function(S){return m(S,t,!0)}},k,B,C,v),x=M.svg,T=M.X,b=M.Y,d=M.px,F=M.pw,w=M.top,E=M.ph;return r.forEach(function(S,y){var X=n[y%n.length],q=S.map(function(G,tt){return[T(tt),b(G)]});q.length===1&&(q=[[d,q[0][1]],[d+F,q[0][1]]]);var H=Zt(q,at(t.straight));if(y===0){var I=Ht("g"),Q=q[q.length-1];x+='<defs><linearGradient id="'+I+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+X+'" stop-opacity=".26"/><stop offset="1" stop-color="'+X+'" stop-opacity="0"/></linearGradient></defs><path d="'+H+"L"+a(Q[0])+","+a(w+E)+"L"+a(q[0][0])+","+a(w+E)+'Z" fill="url(#'+I+')"'+mt(t,"bzc-a")+"/>"}var h=u?u(y):"none";if(x+=ge(t,H,X,y,p?$t[p(y)]:""),h!=="none")x+=ve(t,h,S,T,b,X,L,y);else{var P=q[q.length-1];x+='<circle cx="'+a(P[0])+'" cy="'+a(P[1])+'" r="4" fill="'+X+'" stroke="'+L+'" stroke-width="2"/>'}at(t.showValues)&&S.forEach(function(G,tt){x+=N(T(tt),b(G)-8,m(G,t,!0),_(e,9,'text-anchor="middle"'))})}),x+Fe(t,e,M,s,function(S){var y=i[S]||"#"+(S+1);return r.forEach(function(X,q){S<X.length&&(y+=`
|
|
3
|
-
`+(
|
|
4
|
-
`+(
|
|
5
|
-
Total: `+
|
|
6
|
-
`+M(
|
|
7
|
-
Total: `+
|
|
8
|
-
`+
|
|
9
|
-
Total: `+
|
|
10
|
-
`+
|
|
11
|
-
`+(f?
|
|
12
|
-
Median `+
|
|
13
|
-
Middle half `+
|
|
14
|
-
`+(
|
|
15
|
-
`+
|
|
16
|
-
Mean `+
|
|
17
|
-
n = `+
|
|
18
|
-
`:
|
|
19
|
-
`:"")+(
|
|
20
|
-
`+(
|
|
21
|
-
Goal: `+
|
|
1
|
+
/*! Bezel Charts v1.8.0 | MIT | github.com/ShazMoghaddam/bezel-charts */
|
|
2
|
+
var zt="ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif",Ft="ui-monospace,SFMono-Regular,Menlo,Consolas,monospace",Lr=0;function Bt(t){return"bzc"+t+(++Lr).toString(36)+Math.random().toString(36).slice(2,6)}function Lt(t){return String(t??"").replace(/[&<>"']/g,function(e){return{"&":"&","<":"<",">":">",'"':""","'":"'"}[e]})}function a(t){return Math.round(t*100)/100}function ut(t,e,r){return Math.max(e,Math.min(r,t))}function rt(t,e){var r=parseFloat(t);return isFinite(r)?r:e}function N(t){return t!=null&&t!==""}function kt(t){return Array.isArray(t)?t.map(function(e){var r=+e;return isFinite(r)?r:0}):N(t)?String(t).split(/[\s,;]+/).filter(Boolean).map(function(e){var r=+e;return isFinite(r)?r:0}):[]}function _(t){return Array.isArray(t)?t.map(String):N(t)?String(t).split(",").map(function(e){return e.trim()}):[]}function xt(t){return Array.isArray(t)?Array.isArray(t[0])?t.map(kt):[kt(t)]:N(t)?String(t).split("|").map(kt).filter(function(e){return e.length}):[]}function _t(t){return t.reduce(function(e,r){return e+r},0)}function ct(t,e,r){return String(t).length*e*(r?.6:.56)}function re(t,e){return t=String(t),t.length>e?t.slice(0,Math.max(1,e-1))+"\u2026":t}function it(t){return t===!0||t===""||t==="true"||t==="1"}function d(t,e,r){if(!isFinite(t))return"\u2013";var l=Math.abs(t),i;N(e.decimals)?i=ut(parseInt(e.decimals,10)||0,0,6):i=t%1===0?0:l<10?2:l<100?1:0;var n={maximumFractionDigits:i,minimumFractionDigits:N(e.decimals)?i:0};(it(e.compact)||r)&&l>=1e4&&(n={notation:"compact",maximumFractionDigits:1});var o;try{o=new Intl.NumberFormat(e.lang||"en-GB",n).format(l)}catch{o=String(a(l))}return(t<0?"\u2212":"")+(e.prefix||"")+o+(e.suffix||"")}function Zt(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 o=(i[0]+n[0])/2;r+="C"+a(o)+","+a(i[1])+" "+a(o)+","+a(n[1])+" "+a(n[0])+","+a(n[1])}}return r}function G(t,e,r,l){return'<text x="'+a(t)+'" y="'+a(e)+'" '+(l||"")+">"+Lt(r)+"</text>"}function Y(t,e,r,l){return'fill="'+(l||t.muted)+'" font-family="'+Ft+'" font-size="'+(e||10)+'"'+(r?" "+r:"")}function yt(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="'+Lt(i)+'"/>'}function ht(t,e,r){return t.animate?' class="'+e+'"'+(r?' style="animation-delay:'+a(r)+'s"':""):""}function mt(t,e){var r=_(t.color).filter(Boolean);return r.length?r:e.palette}function pt(t,e,r,l,i){return G(e+l/2,r+i/2+4,"No data yet",'text-anchor="middle" fill="'+t.muted+'" font-family="'+zt+'" font-size="13"')}function ie(t,e){return N(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(),o=e.map(String).indexOf(i);return o<0&&String(parseInt(i,10))===i&&(o=parseInt(i,10)),o>=0&&n?{i:o,text:n}:null}).filter(Boolean):[]}function Kt(t,e,r,l,i){var n=(N(t.goalLabel)?t.goalLabel:"Goal")+" "+d(rt(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"/>'+G(l,i-5,n,Y(e,10,'text-anchor="end"'))}function Gt(t,e,r){var l=String(N(e.stat)?e.stat:r||"").toLowerCase();if(!l||l==="none"||!t.length)return null;var i=_t(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 o=null;return l==="last"&&t.length>1&&e.delta!=="none"&&(o=t[t.length-1]-t[0]),{val:n[l],delta:o}}function he(t){var e=Math.round(ut(rt(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 Tr=".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 dt(t,e,r,l,i){var n=he(t),o=n.W,s=n.b,f=n.P,u=n.w,h=ut(rt(t.corners,22),0,60),m=s+f,c="";N(t.heading)&&(c+=G(s+f,m+10,String(t.heading).toUpperCase(),Y(e,11,'font-weight="600" letter-spacing="1.3"')),m+=24);var w=i&&i.stat;if(w){if(c+=G(s+f,m+30,d(w.val,t),'fill="'+e.fg+'" font-family="'+zt+'" font-size="32" font-weight="800" letter-spacing="-0.5"'),w.delta!=null){var T=w.delta>0,b=w.delta===0,x=t.delta==="inverse"?!T:T,L=b?e.muted:x?e.up:e.down,H=(b?"\u25CF ":T?"\u25B2 ":"\u25BC ")+d(Math.abs(w.delta),t)+" "+(N(t.deltaLabel)?t.deltaLabel:"since start");c+=G(s+f+u,m+28,H,'text-anchor="end" fill="'+L+'" font-family="'+Ft+'" font-size="11" font-weight="600"')}m+=44}var y=l(s+f,m,u,r),I=Math.round(m+r+f+s),M="";t.frame!=="none"?M='<rect width="'+o+'" height="'+I+'" rx="'+h+'" fill="'+e.bezel+'"/><rect x="'+s+'" y="'+s+'" width="'+(o-2*s)+'" height="'+(I-2*s)+'" rx="'+Math.max(0,h-s)+'" fill="'+(t.background||e.tile)+'"/>':N(t.background)&&(M='<rect width="'+o+'" height="'+I+'" rx="'+h+'" fill="'+t.background+'"/>');var g=(N(t.heading)?t.heading+": ":"")+(i&&i.summary||"chart");return'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 '+o+" "+I+'" width="'+o+'" height="'+I+'" role="img" aria-label="'+Lt(g)+'"><title>'+Lt(g)+"</title>"+(t.animate?"<style>"+Tr+"</style>":"")+M+c+y+"</svg>"}function Ce(t,e){var r=kt(t.values),l=mt(t,e)[0],i=rt(t.height,64),n=_(t.labels),o=ie(t,n),s=Gt(r,t,"last");return dt(t,e,i,function(f,u,h,m){if(!r.length)return pt(e,f,u,h,m);var c=r.length===1?[r[0],r[0]]:r,w=Math.min.apply(null,c),T=Math.max.apply(null,c);N(t.goal)&&(w=Math.min(w,+t.goal),T=Math.max(T,+t.goal));var b=(T-w||Math.abs(T)||1)*.12;w-=b,T+=b;var x=function(S){return f+S*h/(c.length-1)},L=function(S){return u+m-(S-w)/(T-w)*m},H=c.map(function(S,p){return[x(p),L(S)]}),y=Zt(H,it(t.straight)),I=Bt("g"),M=H[H.length-1],g='<defs><linearGradient id="'+I+'" 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(S){g+='<line x1="'+f+'" x2="'+(f+h)+'" y1="'+a(u+m*S)+'" y2="'+a(u+m*S)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'}),g+='<path d="'+y+"L"+a(M[0])+","+(u+m)+"L"+f+","+(u+m)+'Z" fill="url(#'+I+')"'+ht(t,"bzc-a")+"/>",g+='<path d="'+y+'" fill="none" stroke="'+l+'" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" pathLength="1" style="stroke-dasharray:1"'+ht(t,"bzc-d")+"/>",N(t.goal)&&(g+=Kt(t,e,f,f+h,L(+t.goal))),o.forEach(function(S){if(!(S.i>=r.length)){var p=H[S.i];g+='<circle cx="'+a(p[0])+'" cy="'+a(p[1])+'" r="3.5" fill="'+e.fg+'"/>'+G(ut(p[0],f+30,f+h-30),p[1]-9,S.text,Y(e,10,'text-anchor="middle"',e.fg))}}),g+='<circle cx="'+a(M[0])+'" cy="'+a(M[1])+'" r="9" fill="'+l+'" fill-opacity=".25"/><circle cx="'+a(M[0])+'" cy="'+a(M[1])+'" r="4.5" fill="'+l+'"/>',it(t.showValues)&&H.forEach(function(S,p){p<r.length&&(g+=G(S[0],S[1]-8,d(r[p],t,!0),Y(e,9,'text-anchor="middle"')))});var E=r.length>1?h/(r.length-1):h;return r.forEach(function(S,p){g+=yt(x(p)-E/2,u-6,E,m+12,(n[p]||"#"+(p+1))+": "+d(S,t))}),g},{stat:s,summary:r.length?"latest "+d(r[r.length-1],t):"no data"})}Ce.table=function(t){var e=_(t.labels);return{head:["Label","Value"],rows:kt(t.values).map(function(r,l){return[e[l]||"#"+(l+1),d(r,t)]})}};var ve={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 Fe=["spark","line","area","bars","combo","histogram","boxplot","scatter","ring","donut","gauge","progress","heatmap"],Ne={};function gt(t,e){Ne[t]=e}var Or=t=>t.replace(/-([a-z])/g,(e,r)=>r.toUpperCase());function sr(t,e){if(!Ne[t])throw new Error(Fe.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: ${Fe.join(", ")}.`);let r={};for(let[l,i]of Object.entries(e))r[Or(l)]=i;return r}function Ot(t,e={}){let r=sr(t,e);r.animate=it(r.animate),r.frame=r.frame==="none"?"none":"bezel";let l=r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme||"dark";return Ne[t](r,ve[l])}function fr(t,e={}){return Ne[t].table(sr(t,e))}function rr(t){return t.replace(/<rect class="bzc-hit"[^>]*\/>/g,"").replace(/<circle[^>]* class="bzc-hit"[^>]*\/>/g,"").replace(/ data-tip="[^"]*"/g,"")}function Pt(t,e={}){return rr(Ot(t,{...e,animate:!1}))}var ur=["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","bins","bin-width","mark","percent","whiskers","line","line-series","line-prefix","line-suffix","line-decimals","line-label","line-zero","dates","log"],Ar=`: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 ${Ft};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}}`,Cr={ArrowLeft:-1,ArrowUp:-1,ArrowRight:1,ArrowDown:1},Fr=()=>typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null,Nr=()=>{let t=typeof document<"u"&&document.documentElement?.getAttribute?.("data-theme");return t==="light"||t==="dark"?t:null},ar=new Set;typeof MutationObserver=="function"&&typeof document<"u"&&document.documentElement&&new MutationObserver(()=>ar.forEach(t=>t.refresh())).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});var Br=typeof HTMLElement>"u"?class{}:HTMLElement,At=class extends Br{static get observedAttributes(){return ur}static get themes(){return ve}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>${Ar}</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.#u]=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())),ar.add(this),this.#a=Fr(),this.#a?.addEventListener?.("change",this.#c),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(){ar.delete(this),this.#l?.disconnect(),this.#a?.removeEventListener?.("change",this.#c)}attributeChangedCallback(){!this.#n||this.#f||(this.#f=!0,queueMicrotask(()=>{this.#f=!1,this.#i()}))}get options(){let e={};for(let r of ur)this.hasAttribute(r)&&(e[r]=this.getAttribute(r));return e.width||(e.width=this.#s||360),e.autoTheme=Nr()||(this.#a?this.#a.matches?"dark":"light":"dark"),e}refresh(){this.#n&&this.#i()}toSVG(e={}){return rr(Ot(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;#u=null;#e=-1;#a=null;#s=0;#n=!1;#f=!1;#c=()=>{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=Ot(this.chartType,r),i=fr(this.chartType,r)}catch(f){l=`<p style="font:13px ${zt};color:#d63f7c">${Lt(f.message)}</p>`}let n=this.#t;n.innerHTML=l.replace(/<title>[\s\S]*?<\/title>/,"");let o=n.querySelector("svg");o?(n.setAttribute("aria-label",o.getAttribute("aria-label")),o.removeAttribute("role"),o.removeAttribute("aria-label"),o.setAttribute("aria-hidden","true")):n.removeAttribute("aria-label");let s=!!o&&!this.hasAttribute("no-tooltips");s?(n.setAttribute("tabindex","0"),n.setAttribute("aria-describedby","h")):(n.removeAttribute("tabindex"),n.removeAttribute("aria-describedby")),n.style.color=ve[r.theme==="light"||r.theme==="dark"?r.theme:r.autoTheme].fg,n.style.borderRadius=`${r.frame==="none"?4:ut(+r.corners||22,0,60)}px`,this.#u.innerHTML=i&&i.rows.length?Gr(r.heading,i):"",this.#e>=0&&s&&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},o=i.offsetWidth/2;i.style.left=`${ut(r-n.left,o,Math.max(o,n.width-o))}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=Cr[e.key];if(n)this.chartType==="heatmap"&&/Left|Right/.test(e.key)&&(n*=7),i=i<0?n>0?0:l-1:ut(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=ut(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 Gr(t,{head:e,rows:r}){let l=i=>i.map((n,o)=>o?`<td>${Lt(n)}</td>`:`<th scope="row">${Lt(n)}</th>`).join("");return`<table><caption>${Lt(t||"Chart data")}</caption><thead><tr>${e.map(i=>`<th scope="col">${Lt(i)}</th>`).join("")}</tr></thead><tbody>${r.map(i=>`<tr>${l(i)}</tr>`).join("")}</tbody></table>`}function vt(t){typeof customElements>"u"||typeof HTMLElement>"u"||(customElements.get(`bezel-${t}`)||customElements.define(`bezel-${t}`,class extends At{get chartType(){return t}}),customElements.get("bezel-chart")||customElements.define("bezel-chart",class extends At{}))}gt("spark",Ce);vt("spark");function Ut(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))),o=i/n,s=(o<=1?1:o<=2?2:o<=5?5:10)*n,f=Math.floor(t/s)*s,u=Math.ceil(e/s)*s,h=[],m=f;m<=u+s/2;m+=s)h.push(+m.toFixed(10));return{lo:f,hi:u,ticks:h}}function Yt(t,e,r,l,i,n,o,s){var f=l,u=i,h="",m=s||13;return t.forEach(function(c,w){var T=m+ct(c,12)+16;f>l&&f+T-16>l+n&&(f=l,u+=20),h+=(o?o(w,f,u):'<circle cx="'+a(f+4)+'" cy="'+a(u+6)+'" r="4" fill="'+e[w%e.length]+'"/>')+G(f+m,u+10,c,'fill="'+r.fg+'" font-family="'+zt+'" font-size="12"'),f+=T}),{svg:h,height:u-i+24}}var $t={solid:"",dashed:"7 5",dotted:"1 5",dashdot:"9 4 1 4"},le=["circle","square","triangle","diamond"],oe=["solid","stripes","dots","grid"];function Nt(t,e,r){if(t==null||t===!1||t==="none"||t==="false")return null;var l=t===!0||t===""||t==="auto"?e:_(t).map(function(i){return e.indexOf(i)<0?r:i});return l.length?function(i){return l[i%l.length]}:null}function Qt(t,e,r,l,i){var n=l*1.15,o=l*.85;return t==="square"?'<rect x="'+a(e-o)+'" y="'+a(r-o)+'" width="'+a(2*o)+'" height="'+a(2*o)+'" rx="1"'+i+"/>":t==="triangle"?'<path d="M'+a(e)+","+a(r-n)+"L"+a(e+n)+","+a(r+o)+"L"+a(e-n)+","+a(r+o)+'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 se(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 cr(t){return Math.max.apply(null,t.map(function(e){return ct(e,10,!0)}))+10}function xe(t,e){for(var r=xt(t.values),l=_(t.series),i=_(t.labels),n=[],o=Math.max.apply(null,[0].concat(r.map(function(m){return m.length}))),s=0;s<o;s++){var f=[i[s]||"#"+(s+1)],u=0;r.forEach(function(m){f.push(s<m.length?d(m[s],t):""),u+=s<m.length?m[s]:0}),e&&f.push(d(u,t)),n.push(f)}var h=r.length>1||l.length?r.map(function(m,c){return l[c]||"Series "+(c+1)}):["Value"];return{head:["Label"].concat(h,e?["Total"]:[]),rows:n}}var mr=36e5,fe=864e5;function Te(t,e){var r=_(t.dates);if(!e||r.length<e)return null;for(var l=[],i=0;i<e;i++){var n=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?$/.exec(String(r[i]).trim());if(!n)return null;l.push(Date.UTC(+n[1],+n[2]-1,+n[3],+(n[4]||0),+(n[5]||0),+(n[6]||0)))}return l}function Be(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))}}var hr=function(t){return(t<10?"0":"")+t},pr=function(t){var e=new Date(t);return hr(e.getUTCHours())+":"+hr(e.getUTCMinutes())};function dr(t,e,r){return Be(e,{day:"numeric",month:"short",year:"numeric"}).format(new Date(t))+(r?" "+pr(t):"")}function Oe(t){return t.some(function(e){return e%fe!==0})}var nr=[["h",1],["h",3],["h",6],["h",12],["d",1],["d",2],["w",1],["w",2],["m",1],["m",2],["m",3],["m",6],["y",1],["y",2],["y",5],["y",10],["y",20],["y",50],["y",100]],Dr={h:mr,d:fe,w:7*fe,m:30.44*fe,y:365.25*fe};function Hr(t,e,r,l){var i=[],n;if(r==="h"||r==="d"||r==="w"){var o=r==="h"?mr*l:fe*(r==="w"?7*l:l),s=r==="w"?4*fe:0;for(n=Math.ceil((t-s)/o)*o+s;n<=e;n+=o)i.push(n);return i}for(var f=new Date(t),u=f.getUTCFullYear(),h=r==="m"?f.getUTCMonth():0;;){if(n=Date.UTC(u,h,1),n>e)return i;n>=t&&(r==="m"?h%l===0:u%l===0)&&i.push(n),r==="m"?(h++,h===12&&(h=0,u++)):u++}}function gr(t,e,r,l){for(var i=Math.max(2,Math.floor(r/64)),n=e-t,o=0;o<nr.length;o++){var s=nr[o][0],f=nr[o][1];if(!(n/(Dr[s]*f)>i+2)){var u=Hr(t,e,s,f);if(!(u.length>i)){var h=Be(l,{day:"numeric",month:"short"}),m=Be(l,{month:"short",year:"numeric"}),c=Be(l,{month:"short"});return u.map(function(w,T){var b=new Date(w),x;return s==="h"?x=w%fe===0?h.format(b):pr(w):s==="d"||s==="w"?x=h.format(b):s==="m"?x=b.getUTCMonth()===0||T===0?m.format(b):c.format(b):x=String(b.getUTCFullYear()),{t:w,text:x}})}}}return[]}function Ge(t,e,r,l,i){return t[r]||(e?dr(e[r],l,i):"#"+(r+1))}function De(t,e,r){var l=Te(e,r),i=_(e.labels);if(!l)return t;var n=Oe(l);return t.head[0]="Date",t.rows.forEach(function(o,s){i[s]||(o[0]=dr(l[s],e.lang||"en-GB",n))}),t}function He(t,e,r,l,i,n,o){var s="",f=i,u=r.n,h=r.labels,m=r.dates;if(r.names){var c=Yt(r.names,r.pal,e,l,f,n,r.key,r.kw);s+=c.svg,f+=c.height}var w=r.lo,T=r.hi;N(t.goal)&&(w=Math.min(w,+t.goal),T=Math.max(T,+t.goal)),r.zero&&(w=Math.min(0,w),T=Math.max(0,T));var b=isFinite(r.min),x=isFinite(r.max);b&&x&&r.min>=r.max&&(b=x=!1);var L=r.log?Pr(b&&r.min>0?r.min:r.posLo,x&&r.max>0?r.max:r.posHi):b||x?Rr(b?r.min:w,x?r.max:T,b,x):Ut(w,T,4),H=L.ticks.map(r.tick),y=Math.max.apply(null,H.map(function(k){return ct(k,10,!0)}))+10,I=h.length||m?20:4,M=l+y,g=n-y,E=o-(f-i)-I,S=m?Math.min.apply(null,m):0,p=m?Math.max.apply(null,m)-S:0,B=m?function(k){return p?M+(m[k]-S)/p*g:M+g/2}:function(k){return u===1?M+g/2:M+k*g/(u-1)},z=L.log?function(k){return f+E-(Math.log10(k)-L.a)/(L.b-L.a)*E}:function(k){return f+E-(k-L.lo)/(L.hi-L.lo)*E},O="";if(b||x){var C=Bt("c");s+='<defs><clipPath id="'+C+'"><rect x="'+a(M-4)+'" y="'+a(f-4)+'" width="'+a(g+8)+'" height="'+a(E+8)+'"/></clipPath></defs>',O=' clip-path="url(#'+C+')"'}if(L.ticks.forEach(function(k,R){var $=z(k);s+='<line x1="'+a(M)+'" x2="'+a(M+g)+'" y1="'+a($)+'" y2="'+a($)+'" stroke="'+e.grid+'"'+(k===0?"":' stroke-dasharray="2 4"')+"/>"+G(M-8,$+3.5,H[R],Y(e,10,'text-anchor="end"'))}),m)gr(S,S+p,g,t.lang||"en-GB").forEach(function(k){var R=ct(k.text,10,!0)/2,$=p?M+(k.t-S)/p*g:M+g/2;s+=G(ut($,M+R,M+g-R),f+E+15,k.text,Y(e,10,'text-anchor="middle"'))});else if(h.length){for(var F=Math.max(1,Math.ceil(u*(Math.max.apply(null,h.map(function(k){return ct(k,10,!0)}))+10)/g)),Z=0;Z<u;Z+=F)if(h[Z]!=null){var at=u>1&&Z===0?"start":u>1&&Z===u-1?"end":"middle";s+=G(B(Z),f+E+15,h[Z],Y(e,10,'text-anchor="'+at+'"'))}}return r.notes.forEach(function(k){if(!(k.i>=u)){var R=B(k.i);s+='<line x1="'+a(R)+'" x2="'+a(R)+'" y1="'+a(f+12)+'" y2="'+a(f+E)+'" stroke="'+e.fg+'" stroke-opacity=".4" stroke-dasharray="3 3"/>'+G(ut(R,M+30,M+g-30),f+8,k.text,Y(e,10,'text-anchor="middle"',e.fg))}}),{svg:s,X:B,Y:z,px:M,pw:g,top:f,ph:E,clip:O,uneven:!!m}}function Rr(t,e,r,l){var i=Ut(t,e,4),n=r?t:i.lo,o=l?e:i.hi,s=i.ticks[1]-i.ticks[0],f=i.ticks.filter(function(u){return u>=n-s*1e-9&&u<=o+s*1e-9});return r&&(!f.length||f[0]-n>s*.4)&&f.unshift(n),l&&(!f.length||o-f[f.length-1]>s*.4)&&f.push(o),{lo:n,hi:o,ticks:f}}function Pr(t,e){var r=Math.floor(Math.log10(t)),l=Math.ceil(Math.log10(e)),i=[];l===r&&l++;for(var n=r;n<=l;n++){var o=+("1e"+n);i.push(o),l-r<=2&&n<l&&i.push(2*o,5*o)}return{log:!0,a:r,b:l,lo:i[0],hi:i[i.length-1],ticks:i}}function Re(t,e,r,l,i){for(var n=N(t.goal)?r.Y(+t.goal):NaN,o=isFinite(n)?Kt(t,e,r.px,r.px+r.pw,n):"",s=l>1?r.pw/(l-1):r.pw,f=r.X,u=0;u<l;u++){if(!r.uneven){o+=yt(f(u)-s/2,r.top,s,r.ph,i(u));continue}var h=u?(f(u-1)+f(u))/2:f(0)-(l>1?(f(1)-f(0))/2:r.pw/2),m=u<l-1?(f(u)+f(u+1))/2:f(u)+(l>1?(f(u)-f(u-1))/2:r.pw/2);o+=yt(h,r.top,Math.max(1,m-h),r.ph,i(u))}return o}function Pe(t,e,r,l){return function(i,n,o){var s=t[i%t.length],f=e?$t[e(i)]:"",u=r?r(i):"none";return'<line x1="'+a(n)+'" x2="'+a(n+18)+'" y1="'+a(o+6)+'" y2="'+a(o+6)+'" stroke="'+s+'" stroke-width="2.5" stroke-linecap="round"'+(f?' stroke-dasharray="'+f+'"':"")+"/>"+(u!=="none"?Qt(u,n+9,o+6,3.5,' fill="'+s+'" stroke="'+l+'" stroke-width="1.5"'):"")}}function be(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+'"'+ht(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 ye(t,e,r,l,i,n,o,s){var f="",u=Math.ceil(r.length/40);return r.forEach(function(h,m){isFinite(i(h))&&(m%u===0||m===r.length-1)&&(f+=Qt(e,l(m),i(h),3.5,' fill="'+n+'" stroke="'+o+'" stroke-width="1.5"'+ht(t,"bzc-a",.6+s*.15)))}),f}function Ve(t,e){var r=xt(t.values),l=_(t.series),i=_(t.labels),n=mt(t,e),o=rt(t.height,170),s=Math.max.apply(null,[0].concat(r.map(function(g){return g.length}))),f=ie(t,i),u=r.length>1||l.length>0,h=Gt(r[0]||[],t,""),m=Nt(t.dash,Object.keys($t),"solid"),c=Nt(t.markers,le,"none"),w=t.background||e.tile,T=(m||c)&&Pe(n,m,c,w),b=function(g){return l[g]||"Series "+(g+1)},x=Te(t,s),L=x&&Oe(x),H=t.lang||"en-GB",y=[].concat.apply([],r),I=y.filter(function(g){return g>0});N(t.goal)&&+t.goal>0&&I.push(+t.goal);var M=it(t.log)&&I.length>0;return dt(t,e,o,function(g,E,S,p){if(!s)return pt(e,g,E,S,p);var B=He(t,e,{n:s,names:u?r.map(function(R,$){return b($)}):null,pal:n,key:T,kw:T&&24,lo:Math.min.apply(null,y),hi:Math.max.apply(null,y),zero:it(t.zero),labels:i,notes:f,tick:function(R){return d(R,t,!0)},dates:x,min:N(t.min)?+t.min:NaN,max:N(t.max)?+t.max:NaN,log:M,posLo:M?Math.min.apply(null,I):0,posHi:M?Math.max.apply(null,I):0},g,E,S,p),z=B.svg+(B.clip?"<g"+B.clip+">":""),O=B.X,C=B.Y,F=B.px,Z=B.pw,at=B.top,k=B.ph;return r.forEach(function(R,$){var v=n[$%n.length],U=R.map(function(q,J){return[O(J),C(q)]});U.length===1&&(U=[[F,U[0][1]],[F+Z,U[0][1]]]);var P=M?U.reduce(function(q,J){return isFinite(J[1])?q[q.length-1].push(J):q[q.length-1].length&&q.push([]),q},[[]]).filter(function(q){return q.length}):[U];if(P.length){var K=P.map(function(q){return Zt(q,it(t.straight))}).join("");if(U=[].concat.apply([],P),$===0&&!M){var et=Bt("g"),A=U[U.length-1];z+='<defs><linearGradient id="'+et+'" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="'+v+'" stop-opacity=".26"/><stop offset="1" stop-color="'+v+'" stop-opacity="0"/></linearGradient></defs><path d="'+K+"L"+a(A[0])+","+a(at+k)+"L"+a(U[0][0])+","+a(at+k)+'Z" fill="url(#'+et+')"'+ht(t,"bzc-a")+"/>"}var Q=c?c($):"none";if(z+=be(t,K,v,$,m?$t[m($)]:""),Q!=="none")z+=ye(t,Q,R,O,C,v,w,$);else{var V=U[U.length-1];z+='<circle cx="'+a(V[0])+'" cy="'+a(V[1])+'" r="4" fill="'+v+'" stroke="'+w+'" stroke-width="2"/>'}it(t.showValues)&&R.forEach(function(q,J){isFinite(C(q))&&(z+=G(O(J),C(q)-8,d(q,t,!0),Y(e,9,'text-anchor="middle"')))})}}),z+(B.clip?"</g>":"")+Re(t,e,B,s,function(R){var $=Ge(i,x,R,H,L);return r.forEach(function(v,U){R<v.length&&($+=`
|
|
3
|
+
`+(u?b(U)+": ":"")+d(v[R],t))}),$})},{stat:h,summary:r.length+" series over "+s+" points"})}Ve.table=function(t){var e=xe(t);return De(e,t,e.rows.length)};gt("line",Ve);vt("line");function Ue(t,e){for(var r=xt(t.values),l=_(t.series),i=_(t.labels),n=mt(t,e),o=rt(t.height,170),s=r.length,f=Math.max.apply(null,[0].concat(r.map(function(K){return K.length}))),u=s>1?t.stacked==="percent"?"percent":it(t.stacked)?"stack":"":"",h=ie(t,i),m=s>1||l.length>0,c=function(K){return l[K]||"Series "+(K+1)},w=function(K,et){return et<r[K].length?r[K][et]:0},T=r.map(function(){return[]}),b=r.map(function(){return[]}),x=[],L=[],H=0;H<f;H++){for(var y=0,I=0,M=0,g=0,E=0;E<s;E++)M+=w(E,H),g+=Math.max(0,w(E,H));for(x.push(M),L.push(g),E=0;E<s;E++){var S=u==="percent"?g?Math.max(0,w(E,H))/g*100:0:w(E,H);u?S>=0?(T[E].push(y),y+=S,b[E].push(y)):(T[E].push(I),I+=S,b[E].push(I)):(T[E].push(0),b[E].push(S))}}for(var p=[].concat.apply([],T.concat(b)),B=Nt(t.dash,Object.keys($t),"solid"),z=Nt(t.markers,le,"none"),O=s>1?Nt(t.patterns,oe,"solid"):null,C=t.background||e.tile,F="",Z=[],at=0;O&&at<s;at++)if(O(at)!=="solid"){var k=Bt("g");F+=se(k,O(at),n[at%n.length],C),Z[at]="url(#"+k+")"}var R=O?function(K,et,A){return'<rect x="'+a(et)+'" y="'+a(A+1)+'" width="10" height="10" rx="2" fill="'+(Z[K]||n[K%n.length])+'"/>'}:(B||z)&&Pe(n,B,z,C),$=Te(t,f),v=$&&Oe($),U=t.lang||"en-GB",P=function(K,et){return L[et]?Math.round(Math.max(0,w(K,et))/L[et]*100):0};return dt(t,e,o,function(K,et,A,Q){if(!f)return pt(e,K,et,A,Q);var V=He(t,e,{n:f,names:m?r.map(function(X,D){return c(D)}):null,pal:n,key:R,kw:R&&(O?15:24),lo:Math.min.apply(null,p),hi:Math.max.apply(null,p),zero:!0,labels:i,notes:h,dates:$,min:N(t.min)&&+t.min<=0?+t.min:NaN,max:N(t.max)?+t.max:NaN,tick:u==="percent"?function(X){return d(X,{lang:t.lang},!0)+"%"}:function(X){return d(X,t,!0)}},K,et,A,Q),q=(F?"<defs>"+F+"</defs>":"")+V.svg+(V.clip?"<g"+V.clip+">":""),J=V.X,st=V.Y,bt=function(X){var D=X.map(function(W,tt){return[J(tt),st(W)]});return D.length===1?[[V.px,D[0][1]],[V.px+V.pw,D[0][1]]]:D},wt=it(t.straight),j=u?".8":".22",ft=function(X){return u?b[X]:r[X]};return r.forEach(function(X,D){var W=bt(ft(D)),tt=bt(u?T[D]:ft(D).map(function(){return 0})).reverse();q+='<path d="'+Zt(W,wt)+Zt(tt,wt).replace(/^M/,"L")+'Z" fill="'+(Z[D]||n[D%n.length])+'" fill-opacity="'+j+'"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(D*.1)+'s"':"")+"/>"}),r.forEach(function(X,D){var W=n[D%n.length],tt=ft(D),nt=bt(tt),St=z?z(D):"none";q+=be(t,Zt(nt,wt),W,D,B?$t[B(D)]:""),St!=="none"?q+=ye(t,St,tt,J,st,W,C,D):u||(q+='<circle cx="'+a(nt[nt.length-1][0])+'" cy="'+a(nt[nt.length-1][1])+'" r="4" fill="'+W+'" stroke="'+C+'" stroke-width="2"/>'),it(t.showValues)&&!u&&tt.forEach(function(ae,me){q+=G(J(me),st(ae)-8,d(ae,t,!0),Y(e,9,'text-anchor="middle"'))})}),it(t.showValues)&&u==="stack"&&x.forEach(function(X,D){var W=Math.max.apply(null,b.map(function(tt){return tt[D]}).concat([0]));q+=G(J(D),st(W)-8,d(X,t,!0),Y(e,9,'text-anchor="middle"'))}),q+(V.clip?"</g>":"")+Re(t,e,V,f,function(X){var D=Ge(i,$,X,U,v);return r.forEach(function(W,tt){X<W.length&&(D+=`
|
|
4
|
+
`+(m?c(tt)+": ":"")+d(W[X],t)+(u==="percent"?" ("+P(tt,X)+"%)":""))}),D+(u?`
|
|
5
|
+
Total: `+d(x[X],t):"")})},{stat:Gt(u?x:r[0]||[],t,""),summary:s+" series "+(u==="percent"?"as shares of each total":u?"stacked":"filled")+" over "+f+" points"})}Ue.table=function(t){var e=xt(t.values),r=xe(t,e.length>1&&(t.stacked==="percent"||it(t.stacked)));return De(r,t,r.rows.length)};gt("area",Ue);vt("area");var vr=40,xr=24;function $e(t,e){for(var r=xt(t.values),l=_(t.series),i=_(t.labels),n=mt(t,e),o=r.length,s=Math.max.apply(null,[0].concat(r.map(function(A){return A.length}))),f=o>1,u=it(t.horizontal),h=f&&it(t.stacked),m=!f&&_(t.color).filter(Boolean).length>1,c=r[0]||[],w=[].concat.apply([],r),T=function(A,Q){return r.reduce(function(V,q){return A<q.length&&q[A]*Q>0?V+q[A]:V},0)},b=[],x=[],L=[],H=0;h&&H<s;H++)x.push(T(H,1)),L.push(T(H,-1)),b.push(x[H]+L[H]);for(var y=h?x.concat(L):w,I=y.length?Math.max.apply(null,y):0,M=function(A){return l[A]||"Series "+(A+1)},g=f?Nt(t.patterns,oe,"solid"):null,E="",S=[],p=0;g&&p<o;p++)if(g(p)!=="solid"){var B=Bt("g");E+=se(B,g(p),n[p%n.length],t.background||e.tile),S[p]="url(#"+B+")"}var z=function(A,Q){return f?S[A]||n[A%n.length]:m?n[Q%n.length]:n[0]},O=g&&function(A,Q,V){return'<rect x="'+a(Q)+'" y="'+a(V+1)+'" width="10" height="10" rx="2" fill="'+z(A)+'"/>'},C=function(A){return f||m||t.highlight==="none"||A===I?1:.5},F=function(A){return i[A]||"#"+(A+1)},Z=function(A){return f?F(A)+r.map(function(Q,V){return A<Q.length?`
|
|
6
|
+
`+M(V)+": "+d(Q[A],t):""}).join("")+(h?`
|
|
7
|
+
Total: `+d(b[A],t):""):F(A)+": "+d(c[A],t)},at=he(t),k=f||l.length?Yt(r.map(function(A,Q){return M(Q)}),n,e,0,0,at.w,O,O&&15).height:0,R=h?1:o,$=f&&!h,v=$?10:14,U=3,P=u?R*v+(R-1)*U+($?14:16):0,K=u?k+Math.max(1,s)*P-6:rt(t.height,140)+k,et=c.indexOf(Math.max.apply(null,c.length?c:[0]));return dt(t,e,K,function(A,Q,V,q){if(!s)return pt(e,A,Q,V,q);var J=E?"<defs>"+E+"</defs>":"",st=Q;k&&(J+=Yt(r.map(function(lt,Et){return M(Et)}),n,e,A,Q,V,O,O&&15).svg,st+=k);var bt=Math.min(0,Math.min.apply(null,y)),wt=Math.max(0,I);if(N(t.goal)&&(bt=Math.min(bt,+t.goal),wt=Math.max(wt,+t.goal)),wt===bt&&(wt=bt+1),u){for(var j=i.length?Math.min(V*.4,Math.max.apply(null,i.map(function(lt){return ct(lt,12)}))+10):0,ft=h?[b.map(function(lt){return d(lt,t)})]:r.map(function(lt){return lt.map(function(Et){return d(Et,t)})}),X=Math.max.apply(null,[].concat.apply([],ft).map(function(lt){return ct(lt,$?10:11,!0)}))+10,D=A+j,W=V-j-X,tt=Math.max(wt,0)||1,nt=0;nt<s;nt++){var St=st+nt*P;i[nt]!=null&&(J+=G(A,St+(P-6)/2+4,re(i[nt],Math.floor(j/6.7)),'fill="'+e.fg+'" font-family="'+zt+'" font-size="12"')),h?(J+=me(nt,D,St+5,W,tt),J+=G(A+V,St+5+v/2+3.8,ft[0][nt],'text-anchor="end" fill="'+e.fg+'" font-family="'+Ft+'" font-size="11" font-weight="600"')):r.forEach(function(lt,Et){if(!(nt>=lt.length)){var Tt=lt[nt],Vt=St+(f?2:5)+Et*(v+U),Jt=Math.max(0,Tt)/tt*W;f||(J+='<rect x="'+a(D)+'" y="'+a(Vt)+'" width="'+a(W)+'" height="'+v+'" rx="'+v/2+'" fill="'+e.grid+'" fill-opacity=".6"/>'),Jt>0&&(J+='<rect x="'+a(D)+'" y="'+a(Vt)+'" width="'+a(Math.max(v,Jt))+'" height="'+v+'" rx="'+v/2+'" fill="'+z(Et,nt)+'" fill-opacity="'+C(Tt)+'"'+ht(t,"bzc-gx",nt*.06+Et*.03)+"/>"),J+=G(A+V,Vt+v/2+3.8,ft[Et][nt],'text-anchor="end" fill="'+e.fg+'" font-family="'+Ft+'" font-size="'+(f?10:11)+'" font-weight="600"')}}),J+=yt(A,St,V,P-6,Z(nt))}if(N(t.goal)&&+t.goal>0){var ae=D+ +t.goal/tt*W;J+='<line x1="'+a(ae)+'" x2="'+a(ae)+'" y1="'+a(st-2)+'" y2="'+a(Q+q+2)+'" stroke="'+e.fg+'" stroke-opacity=".55" stroke-dasharray="3 3"/>'}return J}function me(lt,Et,Tt,Vt,Jt){var jt='<rect x="'+a(Et)+'" y="'+a(Tt)+'" width="'+a(Vt)+'" height="'+v+'" rx="'+v/2+'" fill="'+e.grid+'" fill-opacity=".6"/>',de=0;return r.forEach(function(ze,te){var ge=lt<ze.length?ze[lt]:0,ee=Math.max(0,ge)/Jt*Vt;if(!(ee<=0)){var ce=de>0?1.5:0;jt+='<rect x="'+a(Et+de+ce)+'" y="'+a(Tt)+'" width="'+a(Math.max(2,ee-ce))+'" height="'+v+'" rx="'+a(Math.min(3,ee/2))+'" fill="'+z(te,lt)+'"'+ht(t,"bzc-gx",lt*.06+te*.03)+"/>",de+=ee}}),jt}var Me=i.length?Math.max.apply(null,i.map(function(lt){return ct(lt,10,!0)})):0,ke=i.length?Math.max(1,Math.ceil(s*(Me+8)/V)):1,Xt=it(t.angleLabels)&&ke>1,we=vr*Math.PI/180,pe=function(lt){return Xt?re(lt,xr):lt};if(Xt){var Se=V/s,It=0;i.forEach(function(lt,Et){It=Math.max(It,Math.cos(we)*ct(pe(lt),10,!0)+4-(Et+.5)*Se)}),It=Math.min(It,V*.25),A+=It,V-=It,ke=1}var Ee=it(t.showValues)&&bt<0?14:0,ot=Xt?Math.ceil(Math.sin(we)*Math.min(Me,ct("x".repeat(xr),10,!0)))+18:20,Mt=(i.length?ot:2)+Ee,Ct=it(t.showValues)?16:4,Dt=q-(st-Q)-Mt-Ct,Wt=st+Ct,Ht=function(lt){return Wt+Dt-(lt-bt)/(wt-bt)*Dt},qt=V/s,ne=Math.min(qt*($?.78:.62),$?o*30:56),lr=$?Math.min(3,ne/o*.15):0,ue=h?ne:(ne-lr*(o-1))/o,Ae=Ht(0);J+='<line x1="'+A+'" x2="'+(A+V)+'" y1="'+a(Ae)+'" y2="'+a(Ae)+'" stroke="'+e.grid+'"/>';for(var Rt=0;Rt<s;Rt++){var Je=A+Rt*qt+(qt-ne)/2;if(h?J+=zr(Rt,Je):r.forEach(function(lt,Et){if(!(Rt>=lt.length)){var Tt=lt[Rt],Vt=Je+Et*(ue+lr),Jt=Math.min(Ht(Tt),Ae),jt=Math.abs(Ht(Tt)-Ae);jt>.5&&(J+='<rect x="'+a(Vt)+'" y="'+a(Jt)+'" width="'+a(ue)+'" height="'+a(jt)+'" rx="'+a(Math.min(6,ue/2,jt/2))+'" fill="'+z(Et,Rt)+'" fill-opacity="'+C(Tt)+'"'+ht(t,Tt<0?"bzc-gn":"bzc-g",Rt*.05+Et*.03)+"/>"),it(t.showValues)&&(J+=G(Vt+ue/2,Tt<0?Ht(Tt)+12:Ht(Tt)-5,d(Tt,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+Ft+'" font-size="'+(f?9:10)+'" font-weight="600"'))}}),i[Rt]!=null&&Rt%ke===0){var je=Je+ne/2,tr=Wt+Dt+Ee+(Xt?12:15);J+=Xt?G(je,tr,pe(i[Rt]),Y(e,10,'text-anchor="end" transform="rotate(-'+vr+" "+a(je)+" "+a(tr)+')"')):G(je,tr,i[Rt],Y(e,10,'text-anchor="middle"'))}J+=yt(A+Rt*qt,st,qt,q-(st-Q),Z(Rt))}return N(t.goal)&&(J+=Kt(t,e,A,A+V,Ht(+t.goal))),J;function zr(lt,Et){var Tt="",Vt=0,Jt=0;if(r.forEach(function(de,ze){var te=lt<de.length?de[lt]:0;if(te){var ge=te>0?Vt:Jt,ee=ge+te;te>0?Vt=ee:Jt=ee;var ce=Ht(Math.max(ge,ee)),er=Ht(Math.min(ge,ee)),Le=er-ce,or=ge!==0?Math.min(1.5,Le/2):0;te>0?er-=or:ce+=or,Le=er-ce,Le>.5&&(Tt+='<rect x="'+a(Et)+'" y="'+a(ce)+'" width="'+a(ue)+'" height="'+a(Le)+'" rx="'+a(Math.min(3,ue/2,Le/2))+'" fill="'+z(ze,lt)+'"'+ht(t,te<0?"bzc-gn":"bzc-g",lt*.05+ze*.03)+"/>")}}),it(t.showValues)){var jt=b[lt];Tt+=G(Et+ue/2,jt<0?Ht(L[lt])+12:Ht(x[lt])-5,d(jt,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+Ft+'" font-size="10" font-weight="600"')}return Tt}},{stat:Gt(c,t,""),summary:s?h?o+" series stacked across "+s+" groups":f?o+" series across "+s+" groups":"highest "+(i[et]||"")+" "+d(c[et],t):"no data"})}$e.table=function(t){return xe(t,xt(t.values).length>1&&it(t.stacked))};gt("bars",$e);vt("bars");function Ie(t,e){for(var r=xt(t.values),l=xt(t.line),i=mt(t,e),n=r.length,o=l.length,s=_(t.labels),f=_(t.series),u=_(t.lineSeries),h=n>1&&it(t.stacked),m=Math.max.apply(null,[0].concat(r.concat(l).map(function(k){return k.length}))),c=br(t),w=rt(t.height,200),T=function(k){return f[k]||(n===1?"Bars":"Bars "+(k+1))},b=function(k){return u[k]||(o===1?"Line":"Line "+(k+1))},x=function(k){return i[k%i.length]},L=function(k){return i[(n+k)%i.length]},H=function(k,R){return R<k.length?k[R]:0},y=Nt(t.dash,Object.keys($t),"solid"),I=Nt(t.markers,le,"none"),M=n>1?Nt(t.patterns,oe,"solid"):null,g=t.background||e.tile,E="",S=[],p=0;M&&p<n;p++)if(M(p)!=="solid"){var B=Bt("g");E+=se(B,M(p),x(p),g),S[p]="url(#"+B+")"}for(var z=function(k,R,$){if(k<n)return'<rect x="'+a(R)+'" y="'+a($+1)+'" width="10" height="10" rx="2" fill="'+(S[k]||x(k))+'"/>';var v=k-n,U=L(v),P=y?$t[y(v)]:"",K=I?I(v):"none";return'<line x1="'+a(R)+'" x2="'+a(R+18)+'" y1="'+a($+6)+'" y2="'+a($+6)+'" stroke="'+U+'" stroke-width="2.5" stroke-linecap="round"'+(P?' stroke-dasharray="'+P+'"':"")+"/>"+(K!=="none"?Qt(K,R+9,$+6,3.5,' fill="'+U+'" stroke="'+g+'" stroke-width="1.5"'):"")},O=[],C=[],F=0;F<m;F++){var Z=0,at=0;r.forEach(function(k){var R=H(k,F);h?R>=0?Z+=R:at+=R:(Z=Math.max(Z,R),at=Math.min(at,R))}),O.push(Z),C.push(at)}return dt(t,e,w,function(k,R,$,v){if(!m||!n)return pt(e,k,R,$,v);var U=E?"<defs>"+E+"</defs>":"",P=R,K=Yt(r.map(function(ot,Mt){return T(Mt)}).concat(l.map(function(ot,Mt){return b(Mt)})),i,e,k,P,$,z,24);U+=K.svg,P+=K.height;var et=N(t.yLabel)||N(t.lineLabel);et&&(P+=16);var A=Ut(Math.min.apply(null,C),Math.max.apply(null,O),4),Q=A.ticks.length-1,V=[].concat.apply([],l),q=Math.min.apply(null,V),J=Math.max.apply(null,V);it(t.lineZero)&&(q=Math.min(0,q),J=Math.max(0,J));var st=o?Vr(q,J,Q):null,bt=A.ticks.map(function(ot){return d(ot,t,!0)}),wt=st?st.ticks.map(function(ot){return d(ot,c,!0)}):[],j=Math.max.apply(null,bt.map(function(ot){return ct(ot,10,!0)}))+10,ft=st?Math.max.apply(null,wt.map(function(ot){return ct(ot,10,!0)}))+10:0,X=k+j,D=$-j-ft,W=v-(P-R)-(s.length?20:4),tt=D/m,nt=function(ot){return X+tt*(ot+.5)},St=function(ot){return P+W-(ot-A.lo)/(A.hi-A.lo)*W},ae=function(ot){return P+W-(ot-st.lo)/(st.hi-st.lo)*W};A.ticks.forEach(function(ot,Mt){var Ct=St(ot);U+='<line x1="'+a(X)+'" x2="'+a(X+D)+'" y1="'+a(Ct)+'" y2="'+a(Ct)+'" stroke="'+e.grid+'"'+(ot===0?"":' stroke-dasharray="2 4"')+"/>"+G(X-8,Ct+3.5,bt[Mt],Y(e,10,'text-anchor="end"'))+(st?G(X+D+8,Ct+3.5,wt[Mt],Y(e,10,'text-anchor="start"')):"")});var me=n===1?x(0):e.muted,Me=o===1?L(0):e.muted;if(U+='<line x1="'+a(X)+'" x2="'+a(X)+'" y1="'+a(P)+'" y2="'+a(P+W)+'" stroke="'+me+'" stroke-width="2"/>',st&&(U+='<line x1="'+a(X+D)+'" x2="'+a(X+D)+'" y1="'+a(P)+'" y2="'+a(P+W)+'" stroke="'+Me+'" stroke-width="2"/>'),N(t.yLabel)&&(U+=G(k,P-8,t.yLabel,Y(e,10,"",n===1?me:e.fg))),N(t.lineLabel)&&st&&(U+=G(k+$,P-8,t.lineLabel,Y(e,10,'text-anchor="end"',o===1?Me:e.fg))),s.length){var ke=Math.max(1,Math.ceil((Math.max.apply(null,s.map(function(ot){return ct(ot,10,!0)}))+10)/tt));for(F=0;F<m;F+=ke)s[F]!=null&&(U+=G(nt(F),P+W+15,s[F],Y(e,10,'text-anchor="middle"')))}var Xt=tt*.72,we=h?Xt:Xt/n;for(F=0;F<m;F++){var pe=0,Se=0;r.forEach(function(ot,Mt){if(!(F>=ot.length)){var Ct=ot[F],Dt,Wt,Ht=h?nt(F)-Xt/2:nt(F)-Xt/2+Mt*we;h?Ct>=0?(Dt=pe,pe+=Ct,Wt=pe):(Dt=Se,Se+=Ct,Wt=Se):(Dt=0,Wt=Ct);var qt=St(Dt),ne=St(Wt);U+='<rect x="'+a(Ht+.5)+'" y="'+a(Math.min(qt,ne))+'" width="'+a(Math.max(1,we-1))+'" height="'+a(Math.abs(ne-qt))+'" rx="2" fill="'+(S[Mt]||x(Mt))+'"'+ht(t,Ct<0?"bzc-gn":"bzc-g",Math.min(.6,F*.04))+"/>"}})}for(l.forEach(function(ot,Mt){var Ct=L(Mt),Dt=ot.map(function(Ht,qt){return[nt(qt),ae(Ht)]}),Wt=I?I(Mt):"none";U+=be(t,Zt(Dt,it(t.straight)),Ct,Mt,y?$t[y(Mt)]:""),Wt!=="none"?U+=ye(t,Wt,ot,nt,ae,Ct,g,Mt):U+='<circle cx="'+a(Dt[Dt.length-1][0])+'" cy="'+a(Dt[Dt.length-1][1])+'" r="4" fill="'+Ct+'" stroke="'+g+'" stroke-width="2"/>'}),F=0;F<m;F++){var It=s[F]||"#"+(F+1),Ee=0;r.forEach(function(ot,Mt){F<ot.length&&(It+=`
|
|
8
|
+
`+T(Mt)+": "+d(ot[F],t),Ee+=ot[F])}),h&&(It+=`
|
|
9
|
+
Total: `+d(Ee,t)),l.forEach(function(ot,Mt){F<ot.length&&(It+=`
|
|
10
|
+
`+b(Mt)+": "+d(ot[F],c))}),U+=yt(nt(F)-tt/2,P,tt,W,It)}return U},{summary:n+" bar series"+(h?" stacked":"")+" and "+o+(o===1?" line":" lines")+" over "+m+" points"})}Ie.table=function(t){for(var e=xt(t.values),r=xt(t.line),l=_(t.labels),i=_(t.series),n=_(t.lineSeries),o=e.length,s=r.length,f=o>1&&it(t.stacked),u=br(t),h=[],m=Math.max.apply(null,[0].concat(e.concat(r).map(function(b){return b.length}))),c=0;c<m;c++){var w=[l[c]||"#"+(c+1)],T=0;e.forEach(function(b){w.push(c<b.length?d(b[c],t):""),T+=c<b.length?b[c]:0}),f&&w.push(d(T,t)),r.forEach(function(b){w.push(c<b.length?d(b[c],u):"")}),h.push(w)}return{head:["Label"].concat(e.map(function(b,x){return i[x]||(o===1?"Bars":"Bars "+(x+1))}),f?["Total"]:[],r.map(function(b,x){return n[x]||(s===1?"Line":"Line "+(x+1))})),rows:h}};function br(t){return{prefix:t.linePrefix,suffix:t.lineSuffix,decimals:t.lineDecimals,compact:t.compact,lang:t.lang}}function Vr(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=Math.pow(10,Math.floor(Math.log10((e-t)/r))),n=[1,2,5,10],o=0,s,f;s=n[o]*i,f=Math.floor(t/s)*s,!(f+r*s>=e-s*1e-9);)++o===4&&(o=1,i*=10);for(var u=[],h=0;h<=r;h++)u.push(+(f+h*s).toFixed(10));return{lo:u[0],hi:u[r],ticks:u}}gt("combo",Ie);vt("combo");function _e(t,e){for(var r=Mr(t),l=_(t.series),i=mt(t,e),n=rt(t.height,190),o=r?r.S:[],s=o.length,f=s>1||l.length>0,u=it(t.percent),h=function(p){return l[p]||"Series "+(p+1)},m=Object.assign({},t,{decimals:N(t.decimals)?t.decimals:r?r.dp:0}),c=function(p){return d(r.edge(p),m)+" to "+d(r.edge(p+1),m)},w=function(p,B){return Math.round(r.counts[p][B]/o[p].length*100)},T=function(p,B){return u?r.counts[p][B]/o[p].length*100:r.counts[p][B]},b=_(t.mark).filter(function(p){return p==="mean"||p==="median"}),x=s>1?Nt(t.patterns,oe,"solid"):null,L="",H=[],y=0;x&&y<s;y++)if(x(y)!=="solid"){var I=Bt("g");L+=se(I,x(y),i[y%i.length],t.background||e.tile),H[y]="url(#"+I+")"}var M=x&&function(p,B,z){return'<rect x="'+a(B)+'" y="'+a(z+1)+'" width="10" height="10" rx="2" fill="'+(H[p]||i[p%i.length])+'"/>'},g=0,E=0;if(r){for(var S=0;S<r.count;S++)yr(r,S)>yr(r,g)&&(g=S);o.forEach(function(p){E+=p.length})}return dt(t,e,n,function(p,B,z,O){if(!r)return pt(e,p,B,z,O);var C=L?"<defs>"+L+"</defs>":"",F=B;if(f){var Z=Yt(o.map(function(D,W){return h(W)}),i,e,p,F,z,M,M&&15);C+=Z.svg,F+=Z.height}var at=0;o.forEach(function(D,W){for(var tt=0;tt<r.count;tt++)at=Math.max(at,T(W,tt))});var k=Ut(0,at||1,4),R=k.ticks.map(function(D){return d(D,{lang:t.lang},!0)+(u?"%":"")}),$=Math.max.apply(null,R.map(function(D){return ct(D,10,!0)}))+10,v=p+$,U=z-$,P=O-(F-B)-20,K=U/r.count,et=function(D){return v+D*K},A=function(D){return F+P-(D-k.lo)/(k.hi-k.lo)*P};k.ticks.forEach(function(D,W){var tt=A(D);C+='<line x1="'+a(v)+'" x2="'+a(v+U)+'" y1="'+a(tt)+'" y2="'+a(tt)+'" stroke="'+e.grid+'"'+(D===0?"":' stroke-dasharray="2 4"')+"/>"+G(v-8,tt+3.5,R[W],Y(e,10,'text-anchor="end"'))});for(var Q=[],V=0;V<=r.count;V++)Q.push(d(r.edge(V),m,!0));var q=Math.max(1,Math.ceil((Math.max.apply(null,Q.map(function(D){return ct(D,10,!0)}))*1.5+8)/K));for(V=0;V<=r.count;V+=q)C+=G(et(V),F+P+15,Q[V],Y(e,10,'text-anchor="'+(V===0?"start":V===r.count?"end":"middle")+'"'));o.forEach(function(D,W){for(var tt=0;tt<r.count;tt++){var nt=T(W,tt);if(nt){var St=A(nt);C+='<rect x="'+a(et(tt)+.5)+'" y="'+a(St)+'" width="'+a(Math.max(1,K-1))+'" height="'+a(F+P-St)+'" fill="'+(H[W]||i[W%i.length])+'"'+(f?' fill-opacity=".55"':"")+ht(t,"bzc-g",Math.min(.6,tt*.03))+"/>"}}});var J=r.edge(0),st=r.edge(r.count)-J,bt=[];if(o.forEach(function(D,W){b.forEach(function(tt){var nt=tt==="mean"?$r(D):Ir(D);bt.push({x:v+(nt-J)/st*U,c:f?i[W%i.length]:e.fg,t:(f?h(W)+" ":"")+tt+" "+d(nt,t)})})}),bt.length){var wt=bt.map(function(D){return D.x}),j=(Math.min.apply(null,wt)+Math.max.apply(null,wt))/2>v+U/2,ft=j?Math.min.apply(null,wt)-5:Math.max.apply(null,wt)+5;bt.forEach(function(D,W){C+='<line x1="'+a(D.x)+'" x2="'+a(D.x)+'" y1="'+a(F)+'" y2="'+a(F+P)+'" stroke="'+D.c+'" stroke-width="1.5" stroke-dasharray="4 3"/>'+G(ft,F+9+W*12,D.t,Y(e,10,'text-anchor="'+(j?"end":"start")+'"',f?D.c:e.fg))})}for(S=0;S<r.count;S++){var X=c(S);o.forEach(function(D,W){X+=`
|
|
11
|
+
`+(f?h(W)+": ":"")+r.counts[W][S]+" ("+w(W,S)+"%)"}),C+=yt(et(S),F,K,P,X)}return C},{summary:r?(f?s+" series, ":"")+E+" values in "+r.count+" ranges from "+d(r.edge(0),m)+" to "+d(r.edge(r.count),m)+", most in "+c(g):"no data"})}_e.table=function(t){var e=Mr(t),r=_(t.series);if(!e)return{head:["Range","Count"],rows:[]};for(var l=e.S.length>1||r.length>0,i=Object.assign({},t,{decimals:N(t.decimals)?t.decimals:e.dp}),n=[],o=0;o<e.count;o++){var s=[d(e.edge(o),i)+" to "+d(e.edge(o+1),i)];l?e.S.forEach(function(f,u){s.push(String(e.counts[u][o]))}):s.push(String(e.counts[0][o]),Math.round(e.counts[0][o]/e.S[0].length*100)+"%"),n.push(s)}return{head:["Range"].concat(l?e.S.map(function(f,u){return r[u]||"Series "+(u+1)}):["Count","Share"]),rows:n}};function Ur(t){var e=Math.floor(Math.log10(t)),r=+("1e"+e),l=t/r,i=l<1.4142?1:l<2.2361?2:l<3.5355?2.5:l<7.0711?5:10;return{w:i*r,dp:Math.max(0,i===10?-e-1:-e)+(i===2.5?1:0)}}function Mr(t){var e=xt(t.values),r=[].concat.apply([],e);if(!r.length)return null;var l=Math.min.apply(null,r),i=Math.max.apply(null,r),n=rt(t.binWidth,0),o,s;if(n>0&&(i-l)/n<=200){var f=String(t.binWidth),u=f.indexOf(".");o=u<0?0:Math.min(6,f.length-u-1)}else{var h=rt(t.bins,0)>0?Math.round(rt(t.bins,0)):Math.ceil(Math.log2(r.length)+1);h=Math.min(Math.max(h,1),50),s=Ur(i>l?(i-l)/h:Math.abs(l)||1),n=s.w,o=s.dp}for(var m=Math.floor(l/n),c=function(b){return Number(((m+b)*n).toFixed(o+3))};c(0)>l;)m--;for(var w=Math.max(1,Math.ceil((i-c(0))/n));w>1&&c(w-1)>=i;)w--;for(;c(w)<i;)w++;var T=e.map(function(b){for(var x=[],L=0;L<w;L++)x.push(0);return b.forEach(function(H){for(var y=Math.min(w-1,Math.max(0,Math.floor((H-c(0))/n)));y>0&&H<c(y);)y--;for(;y<w-1&&H>=c(y+1);)y++;x[y]++}),x});return{S:e,edge:c,count:w,counts:T,dp:o}}function yr(t,e){var r=0;return t.counts.forEach(function(l){r+=l[e]}),r}function $r(t){var e=0;return t.forEach(function(r){e+=r}),e/t.length}function Ir(t){var e=t.slice().sort(function(l,i){return l-i}),r=Math.floor(e.length/2);return e.length%2?e[r]:(e[r-1]+e[r])/2}gt("histogram",_e);vt("histogram");function Ye(t,e){var r=xt(t.values),l=_(t.series),i=mt(t,e),n=r.length,o=it(t.horizontal),s=_(t.color).length>1,f=_(t.mark).indexOf("mean")>=0,u=r.map(function(b){return kr(b,t.whiskers==="range")}),h=function(b){return l[b]||"Group "+(b+1)},m=rt(t.height,o?Math.max(120,n*36+24):200),c=function(b){return d(b,t)},w=u.map(function(b){return b.median}),T=n===1?"median "+c(u[0].median)+", middle half "+c(u[0].q1)+" to "+c(u[0].q3):n+" groups, medians from "+c(Math.min.apply(null,w))+" to "+c(Math.max.apply(null,w));return dt(t,e,m,function(b,x,L,H){if(!n)return pt(e,b,x,L,H);var y=Math.min.apply(null,u.map(function(v){return v.min})),I=Math.max.apply(null,u.map(function(v){return v.max}));N(t.goal)&&(y=Math.min(y,+t.goal),I=Math.max(I,+t.goal));var M=Ut(y,I,4),g="",E=M.ticks.map(function(v){return d(v,t,!0)}),S=o?Math.min(L*.4,Math.max.apply(null,r.map(function(v,U){return ct(h(U),11)}))+12):0,p=o?0:Math.max.apply(null,E.map(function(v){return ct(v,10,!0)}))+10,B=b+(o?S:p),z=L-(o?S:p),O=H-20,C=o?function(v){return B+(v-M.lo)/(M.hi-M.lo)*z}:function(v){return x+O-(v-M.lo)/(M.hi-M.lo)*O},F=(o?O:z)/n,Z=Math.min(28,F*.28),at=function(v){return(o?x:B)+F*(v+.5)},k=function(v,U){return o?[U,v]:[v,U]},R=function(v,U,P,K,et){var A=k(v,U),Q=k(P,K);return'<line x1="'+a(A[0])+'" y1="'+a(A[1])+'" x2="'+a(Q[0])+'" y2="'+a(Q[1])+'"'+et+"/>"};if(M.ticks.forEach(function(v,U){var P=C(v);g+=R(o?x:B,P,o?x+O:B+z,P,' stroke="'+e.grid+'"'+(v===0?"":' stroke-dasharray="2 4"'))+(o?G(P,x+O+15,E[U],Y(e,10,'text-anchor="middle"')):G(B-8,P+3.5,E[U],Y(e,10,'text-anchor="end"')))}),u.forEach(function(v,U){var P=at(U),K=s?i[U%i.length]:i[0],et=' stroke="'+K+'" stroke-width="1.5"';if(n>1||l.length){var A=_r(h(U),o?S-10:F-6,o?11:10,!o);g+=o?G(b,P+4,A,Y(e,11,"",e.fg)):G(P,x+O+15,A,Y(e,10,'text-anchor="middle"'))}if(v.n){var Q=k(P-Z,C(v.q1)),V=k(P+Z,C(v.q3));if(g+="<g"+ht(t,"bzc-a",Math.min(.6,U*.06))+">"+R(P,C(v.low),P,C(v.q1),et)+R(P,C(v.q3),P,C(v.high),et)+R(P-Z/2,C(v.low),P+Z/2,C(v.low),et)+R(P-Z/2,C(v.high),P+Z/2,C(v.high),et)+'<rect x="'+a(Math.min(Q[0],V[0]))+'" y="'+a(Math.min(Q[1],V[1]))+'" width="'+a(Math.abs(V[0]-Q[0]))+'" height="'+a(Math.max(1,Math.abs(V[1]-Q[1])))+'" rx="3" fill="'+K+'" fill-opacity=".22"'+et+"/>"+R(P-Z,C(v.median),P+Z,C(v.median),' stroke="'+K+'" stroke-width="2.5"'),v.outliers.forEach(function(J){var st=k(P,C(J));g+='<circle cx="'+a(st[0])+'" cy="'+a(st[1])+'" r="2.5" fill="none"'+et+"/>"}),f){var q=k(P,C(v.mean));g+=Qt("diamond",q[0],q[1],4,' fill="'+(t.background||e.tile)+'"'+et)}g+="</g>"}}),N(t.goal)){var $=C(+t.goal);g+=o?R($,x,$,x+O,' stroke="'+e.fg+'" stroke-opacity=".55" stroke-dasharray="4 4"'):Kt(t,e,B,B+z,$)}return u.forEach(function(v,U){if(v.n){var P=h(U)+`
|
|
12
|
+
Median `+c(v.median)+`
|
|
13
|
+
Middle half `+c(v.q1)+" to "+c(v.q3)+`
|
|
14
|
+
`+(v.outliers.length?"Range without outliers ":"Range ")+c(v.low)+" to "+c(v.high)+(v.outliers.length?`
|
|
15
|
+
`+v.outliers.length+(v.outliers.length===1?" outlier":" outliers"):"")+(f?`
|
|
16
|
+
Mean `+c(v.mean):"")+`
|
|
17
|
+
n = `+v.n;g+=o?yt(B,at(U)-F/2,z,F,P):yt(at(U)-F/2,x,F,O,P)}}),g},{summary:n?T:"no data"})}Ye.table=function(t){var e=xt(t.values),r=_(t.series),l=_(t.mark).indexOf("mean")>=0,i=function(n){return d(n,t)};return{head:["Group","Count","Lowest","Lower quartile","Median","Upper quartile","Highest","Outliers"].concat(l?["Mean"]:[]),rows:e.map(function(n,o){var s=kr(n,t.whiskers==="range");return[r[o]||"Group "+(o+1),String(s.n),i(s.min),i(s.q1),i(s.median),i(s.q3),i(s.max),String(s.outliers.length)].concat(l?[i(s.mean)]:[])})}};function _r(t,e,r,l){for(var i=String(t);i.length>1&&ct(i,r,l)>e;)i=re(i,i.length-1);return i}function ir(t,e){var r=(t.length-1)*e,l=Math.floor(r);return l+1<t.length?t[l]+(r-l)*(t[l+1]-t[l]):t[l]}function kr(t,e){var r=t.slice().sort(function(m,c){return m-c}),l=r.length;if(!l)return{n:0,outliers:[]};var i=ir(r,.25),n=ir(r,.75),o=n-i,s=0,f=e?-1/0:i-1.5*o,u=e?1/0:n+1.5*o,h=r.filter(function(m){return m>=f&&m<=u});return r.forEach(function(m){s+=m}),{n:l,min:r[0],max:r[l-1],q1:i,median:ir(r,.5),q3:n,mean:s/l,low:h[0],high:h[h.length-1],outliers:r.filter(function(m){return m<f||m>u})}}gt("boxplot",Ye);vt("boxplot");function Yr(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 o=0,s=0,f=0;for(n=0;n<r;n++)o+=(t[n]-l)*(t[n]-l),s+=(e[n]-i)*(e[n]-i),f+=(t[n]-l)*(e[n]-i);if(!o)return null;var u=f/o;return{slope:u,intercept:i-u*l,r:s?f/Math.sqrt(o*s):0}}function Xe(t,e){for(var r=xt(t.x),l=xt(t.y),i=_(t.series),n=_(t.labels),o=mt(t,e),s=[],f=0;f<Math.max(r.length,l.length);f++){var u=r[f]||[],h=l[f]||[],m=Math.min(u.length,h.length);s.push({xs:u.slice(0,m),ys:h.slice(0,m)})}s=s.filter(function(E){return E.xs.length});var c=s.reduce(function(E,S){return E+S.xs.length},0),w=rt(t.height,210),T=s.length>1||i.length>0,b=it(t.trend),x=function(E){return i[E]||"Group "+(E+1)},L={decimals:t.decimals,compact:t.compact,lang:t.lang},H=ie(t,n),y=Nt(t.markers,le,"circle"),I=t.background||e.tile,M=function(E){var S=y?y(E):"circle";return S==="none"?"circle":S},g=y&&function(E,S,p){return Qt(M(E),S+4,p+6,4,' fill="'+o[E%o.length]+'"')};return dt(t,e,w,function(E,S,p,B){if(!c)return pt(e,E,S,p,B);var z="",O=S;if(T){var C=Yt(s.map(function(j,ft){return x(ft)}),o,e,E,O,p,g);z+=C.svg,O+=C.height}var F=[].concat.apply([],s.map(function(j){return j.xs})),Z=[].concat.apply([],s.map(function(j){return j.ys})),at=Math.min.apply(null,Z),k=Math.max.apply(null,Z);N(t.goal)&&(at=Math.min(at,+t.goal),k=Math.max(k,+t.goal)),it(t.zero)&&(at=Math.min(0,at),k=Math.max(0,k));var R=Ut(at,k,4),$=Ut(Math.min.apply(null,F),Math.max.apply(null,F),5),v=R.ticks.map(function(j){return d(j,t,!0)}),U=cr(v)+(N(t.yLabel)?14:0),P=20+(N(t.xLabel)?16:0),K=E+U,et=p-U,A=B-(O-S)-P,Q=function(j){return K+6+(j-$.lo)/($.hi-$.lo)*(et-12)},V=function(j){return O+6+A-6-(j-R.lo)/(R.hi-R.lo)*(A-6)};R.ticks.forEach(function(j,ft){var X=V(j);z+='<line x1="'+a(K)+'" x2="'+a(K+et)+'" y1="'+a(X)+'" y2="'+a(X)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+G(K-8,X+3.5,v[ft],Y(e,10,'text-anchor="end"'))});var q=Math.max(1,Math.ceil($.ticks.length*44/et));if($.ticks.forEach(function(j,ft){if(!(ft%q)){var X=Q(j);z+='<line x1="'+a(X)+'" x2="'+a(X)+'" y1="'+a(O)+'" y2="'+a(O+A)+'" stroke="'+e.grid+'" stroke-dasharray="2 4"/>'+G(X,O+A+15,d(j,L,!0),Y(e,10,'text-anchor="middle"'))}}),N(t.xLabel)&&(z+=G(K+et/2,O+A+32,t.xLabel,Y(e,10,'text-anchor="middle" font-weight="600"'))),N(t.yLabel)){var J=O+A/2;z+='<text x="'+a(E+4)+'" y="'+a(J)+'" transform="rotate(-90 '+a(E+4)+" "+a(J)+')" text-anchor="middle" '+Y(e,10,'font-weight="600"')+' dominant-baseline="hanging">'+String(t.yLabel).replace(/[&<>"]/g,function(j){return{"&":"&","<":"<",">":">",'"':"""}[j]})+"</text>"}N(t.goal)&&(z+=Kt(t,e,K,K+et,V(+t.goal))),b&&s.forEach(function(j,ft){var X=Yr(j.xs,j.ys);if(X){var D=Math.min.apply(null,j.xs),W=Math.max.apply(null,j.xs),tt=X.slope*D+X.intercept,nt=X.slope*W+X.intercept,St=o[ft%o.length];z+='<line x1="'+a(Q(D))+'" y1="'+a(ut(V(tt),O,O+A))+'" x2="'+a(Q(W))+'" y2="'+a(ut(V(nt),O,O+A))+'" stroke="'+St+'" stroke-width="2" stroke-dasharray="6 4" stroke-linecap="round" stroke-opacity=".9"/>',z+=G(Math.min(Q(W),K+et)-2,ut(V(nt),O+10,O+A)-7,"r = "+X.r.toFixed(2),Y(e,10,'text-anchor="end" font-weight="600"',St))}});var st=0,bt=c>150?3:4.5;s.forEach(function(j,ft){var X=o[ft%o.length];j.xs.forEach(function(D,W){var tt=Q(D),nt=V(j.ys[W]),St=(n[st]?n[st]+`
|
|
18
|
+
`:T?x(ft)+`
|
|
19
|
+
`:"")+(N(t.xLabel)?t.xLabel:"x")+": "+d(D,L)+`
|
|
20
|
+
`+(N(t.yLabel)?t.yLabel:"y")+": "+d(j.ys[W],t);z+=Qt(M(ft),tt,nt,bt,' fill="'+X+'" fill-opacity=".85" stroke="'+I+'" stroke-width="1.5"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(Math.min(.8,st*.012))+'s"':"")),z+=yt(tt-8,nt-8,16,16,St),st++})});var wt=[];return s.forEach(function(j){j.xs.forEach(function(ft,X){wt.push([Q(ft),V(j.ys[X])])})}),H.forEach(function(j){var ft=wt[j.i];ft&&(z+='<circle cx="'+a(ft[0])+'" cy="'+a(ft[1])+'" r="'+(bt+4)+'" fill="none" stroke="'+e.fg+'" stroke-width="1.5"/>'+G(ut(ft[0],K+30,K+et-30),ft[1]-bt-9,j.text,Y(e,10,'text-anchor="middle"',e.fg)))}),z},{summary:c+" points"+(T?" in "+s.length+" groups":"")})}Xe.table=function(t){var e=xt(t.x),r=xt(t.y),l=_(t.series),i=_(t.labels),n=e.length>1||l.length>0,o={decimals:t.decimals,compact:t.compact,lang:t.lang},s=[],f=0;return e.forEach(function(u,h){for(var m=r[h]||[],c=0;c<Math.min(u.length,m.length);c++,f++)s.push([i[f]||"#"+(f+1)].concat(n?[l[h]||"Group "+(h+1)]:[],[d(u[c],o),d(m[c],t)]))}),{head:["Point"].concat(n?["Group"]:[],[N(t.xLabel)?t.xLabel:"x",N(t.yLabel)?t.yLabel:"y"]),rows:s}};gt("scatter",Xe);vt("scatter");function We(t,e){var r=kt(t.values),l=_(t.labels),i=mt(t,e),n=rt(t.max,100)||100,o=rt(t.height,140),s=!N(t.prefix)&&!N(t.suffix)&&n===100,f=function(h){return d(h,t)+(s?"%":"")},u=Gt(r,t,"");return dt(t,e,o,function(h,m,c,w){if(!r.length)return pt(e,h,m,c,w);var T="",b=r.length===1,x=Math.min(w,b?c:c*.55),L=b?h+c/2:h+x/2,H=m+w/2,y=b?x*.12:ut(x*.42/(r.length*1.35),5,16),I=y*.38;if(r.forEach(function(S,p){var B=x/2-y/2-p*(y+I);if(!(B<=y/2)){var z=ut(S/n*100,0,100),O=i[p%i.length];T+='<circle cx="'+a(L)+'" cy="'+a(H)+'" r="'+a(B)+'" fill="none" stroke="'+O+'" stroke-opacity=".16" stroke-width="'+a(y)+'"/>',z>0&&(T+='<circle cx="'+a(L)+'" cy="'+a(H)+'" r="'+a(B)+'" fill="none" stroke="'+O+'" stroke-width="'+a(y)+'" stroke-linecap="round" pathLength="100" transform="rotate(-90 '+a(L)+" "+a(H)+')" style="stroke-dasharray:'+a(z)+" 100"+(t.animate?";animation-delay:"+p*.12+"s":"")+'"'+(t.animate?' class="bzc-s"':"")+"/>"),T+='<circle cx="'+a(L)+'" cy="'+a(H)+'" r="'+a(B+y/2)+'" fill="#000" fill-opacity="0" class="bzc-hit" data-tip="'+Lt((l[p]||"#"+(p+1))+": "+f(S)+(s?"":" of "+d(n,t)))+'"/>'}}),b)T+=G(L,H+x*.08,f(r[0]),'text-anchor="middle" fill="'+e.fg+'" font-family="'+zt+'" font-size="'+a(x*.22)+'" font-weight="800"'),l[0]&&(T+=G(L,H+x*.08+16,l[0],Y(e,10,'text-anchor="middle"')));else{var M=h+x+22,g=Math.min(26,w/r.length),E=H-g*r.length/2;r.forEach(function(S,p){var B=E+p*g+g/2;T+='<circle cx="'+a(M+4)+'" cy="'+a(B)+'" r="4" fill="'+i[p%i.length]+'"/>'+G(M+14,B+4,re(l[p]||"#"+(p+1),Math.floor((h+c-M-60)/6.7)),'fill="'+e.fg+'" font-family="'+zt+'" font-size="12"')+G(h+c,B+4,f(S),'text-anchor="end" fill="'+e.fg+'" font-family="'+Ft+'" font-size="11" font-weight="600"')})}return T},{stat:u,summary:r.map(function(h,m){return(l[m]?l[m]+" ":"")+f(h)}).join(", ")})}We.table=function(t){var e=_(t.labels),r=rt(t.max,100)||100,l=!N(t.prefix)&&!N(t.suffix)&&r===100;return{head:["Label","Value"],rows:kt(t.values).map(function(i,n){return[e[n]||"#"+(n+1),d(i,t)+(l?"%":" of "+d(r,t))]})}};gt("ring",We);vt("ring");function qe(t,e){var r=kt(t.values).map(function(c){return Math.max(0,c)}),l=_(t.labels),i=mt(t,e),n=r.slice(),o=l.slice();if(n.length>6){var s=n.map(function(c,w){return w}).sort(function(c,w){return r[w]-r[c]}),f=s.slice(0,5).sort(function(c,w){return c-w});n=f.map(function(c){return r[c]}),o=f.map(function(c){return l[c]||"#"+(c+1)}),n.push(_t(s.slice(5).map(function(c){return r[c]}))),o.push("Other")}var u=_t(n),h=rt(t.height,150),m=Gt(n,t,"");return dt(t,e,h,function(c,w,T,b){if(!u)return pt(e,c,w,T,b);var x="",L=Math.min(b,T*.5),H=c+L/2,y=w+b/2,I=L*.16,M=(L-I)/2,g=0,E=n.filter(Boolean).length>1?.9:0;n.forEach(function(z,O){var C=z/u*100;if(!(C<=0)){var F=Math.max(.01,C-E);x+='<circle cx="'+a(H)+'" cy="'+a(y)+'" r="'+a(M)+'" fill="none" stroke="'+i[O%i.length]+'" stroke-width="'+a(I)+'" pathLength="100" stroke-dasharray="'+a(F)+" "+a(100-F)+'" stroke-dashoffset="'+a(-g)+'" transform="rotate(-90 '+a(H)+" "+a(y)+')"'+ht(t,"bzc-a",O*.08)+"/>",g+=C}}),x+=G(H,y+2,d(u,t,!0),'text-anchor="middle" fill="'+e.fg+'" font-family="'+zt+'" font-size="'+a(L*.17)+'" font-weight="800"'),x+=G(H,y+2+14,(N(t.centerLabel)?t.centerLabel:"Total").toUpperCase(),Y(e,9,'text-anchor="middle" letter-spacing="1"'));var S=c+L+22,p=Math.min(24,b/n.length),B=y-p*n.length/2;return n.forEach(function(z,O){var C=B+O*p+p/2,F=Math.round(z/u*100),Z=(o[O]||"#"+(O+1))+": "+d(z,t)+" ("+F+"%)";x+='<circle cx="'+a(S+4)+'" cy="'+a(C)+'" r="4" fill="'+i[O%i.length]+'"/>'+G(S+14,C+4,re(o[O]||"#"+(O+1),Math.floor((c+T-S-50)/6.7)),'fill="'+e.fg+'" font-family="'+zt+'" font-size="12"')+G(c+T,C+4,F+"%",'text-anchor="end" fill="'+e.muted+'" font-family="'+Ft+'" font-size="11" font-weight="600"')+yt(S,C-p/2,c+T-S,p,Z)}),g=0,n.forEach(function(z,O){var C=z/u*100;C<=0||(x+='<circle cx="'+a(H)+'" cy="'+a(y)+'" r="'+a(M)+'" fill="none" stroke="#000" stroke-opacity="0" stroke-width="'+a(I)+'" pathLength="100" stroke-dasharray="'+a(C)+" "+a(100-C)+'" stroke-dashoffset="'+a(-g)+'" transform="rotate(-90 '+a(H)+" "+a(y)+')" class="bzc-hit" data-skip="" data-tip="'+Lt((o[O]||"#"+(O+1))+": "+d(z,t)+" ("+Math.round(C)+"%)")+'"/>',g+=C)}),x},{stat:m,summary:"total "+d(u,t)+" across "+n.length+" parts"})}qe.table=function(t){var e=kt(t.values).map(function(i){return Math.max(0,i)}),r=_(t.labels),l=_t(e);return{head:["Label","Value","Share"],rows:e.map(function(i,n){return[r[n]||"#"+(n+1),d(i,t),(l?Math.round(i/l*100):0)+"%"]})}};gt("donut",qe);vt("donut");function Ze(t,e){var r=kt(t.values),l=r.length?r[0]:rt(t.value,NaN),i=_(t.labels),n=rt(t.min,0),o=rt(t.max,100),s=rt(t.height,130);o===n&&(o=n+1);var f=kt(t.zones),u=mt(t,e),h=_(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=h[Math.min(c,h.length-1)]}var w=!N(t.prefix)&&!N(t.suffix)&&n===0&&o===100,T=function(b){return d(b,t)+(w?"%":"")};return dt(t,e,s,function(b,x,L,H){if(!isFinite(l))return pt(e,b,x,L,H);var y=Math.min(L/2,H-22),I=y*.16,M=y-I/2,g=b+L/2,E=x+y,S=ut((l-n)/(o-n),0,1),p=function(at,k){var R=Math.PI*(1-at);return[g+k*Math.cos(R),E-k*Math.sin(R)]},B="M"+a(g-M)+","+a(E)+"A"+a(M)+","+a(M)+" 0 0 1 "+a(g+M)+","+a(E),z='<path d="'+B+'" fill="none" stroke="'+m+'" stroke-opacity=".16" stroke-width="'+a(I)+'" stroke-linecap="round"/>';f.length&&f.forEach(function(at){var k=ut((at-n)/(o-n),0,1),R=p(k,M-I/2-3),$=p(k,M-I/2-8);z+='<line x1="'+a(R[0])+'" y1="'+a(R[1])+'" x2="'+a($[0])+'" y2="'+a($[1])+'" stroke="'+e.muted+'" stroke-width="1.5"/>'}),S>0&&(z+='<path d="'+B+'" fill="none" stroke="'+m+'" stroke-width="'+a(I)+'" stroke-linecap="round" pathLength="100" style="stroke-dasharray:'+a(S*100)+' 100"'+ht(t,"bzc-s")+"/>");var O=p(S,M);if(z+='<circle cx="'+a(O[0])+'" cy="'+a(O[1])+'" r="'+a(I*.26)+'" fill="'+(t.background||e.tile)+'"'+ht(t,"bzc-a",.9)+"/>",N(t.goal)){var C=ut((+t.goal-n)/(o-n),0,1),F=p(C,M+I/2+4),Z=p(C,M-I/2-4);z+='<line x1="'+a(F[0])+'" y1="'+a(F[1])+'" x2="'+a(Z[0])+'" y2="'+a(Z[1])+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return z+=G(g,E-y*.12,T(l),'text-anchor="middle" fill="'+e.fg+'" font-family="'+zt+'" font-size="'+a(y*.34)+'" font-weight="800"'),i[0]&&(z+=G(g,E-y*.12+16,i[0],Y(e,10,'text-anchor="middle"'))),z+=G(g-M,E+18,d(n,t,!0),Y(e,10,'text-anchor="middle"'))+G(g+M,E+18,d(o,t,!0),Y(e,10,'text-anchor="middle"')),z+=yt(g-y,E-y,y*2,y,(i[0]?i[0]+": ":"")+T(l)+" (range "+d(n,t)+" to "+d(o,t)+")"+(N(t.goal)?`
|
|
21
|
+
Goal: `+d(+t.goal,t):"")),z},{summary:isFinite(l)?T(l)+" on a scale of "+d(n,t)+" to "+d(o,t):"no data"})}Ze.table=function(t){var e=kt(t.values),r=e.length?e[0]:rt(t.value,NaN),l=_(t.labels),i=rt(t.min,0),n=rt(t.max,100),o=!N(t.prefix)&&!N(t.suffix)&&i===0&&n===100;return isFinite(r)?{head:["Label","Value"],rows:[[l[0]||"Reading",d(r,t)+(o?"%":"")],["Lowest",d(i,t)],["Highest",d(n,t)]].concat(N(t.goal)?[["Goal",d(+t.goal,t)]]:[])}:{head:["Label","Value"],rows:[]}};gt("gauge",Ze);vt("gauge");function Ke(t,e){var r=kt(t.values).map(function(L){return Math.max(0,L)}),l=_(t.labels),i=mt(t,e),n=r.length===1,o=_t(r),s=N(t.max)?rt(t.max,100):n?100:o;s>0||(s=1);var f=!N(t.prefix)&&!N(t.suffix)&&s===100&&n,u=function(L){return d(L,t)+(f?"%":"")},h=he(t),m=h.w,c=0,w=[];if(!n&&r.length){var T=0;c=1,r.forEach(function(L,H){var y=l[H]||"#"+(H+1),I=14+ct(y,12)+6+ct(d(L,t),11,!0)+18;T>0&&T+I>m&&(T=0,c++),w.push({x:T,row:c-1,l:y}),T+=I})}var b=36+(c?12+c*20:0),x=Gt(r,t,"");return dt(t,e,b,function(L,H,y,I){if(!r.length)return pt(e,L,H,y,I);var M="",g=H+22,E=Bt("c"),S=n?u(r[0])+(f?"":" of "+d(s,t)):d(o,t)+" of "+d(s,t);n&&l[0]&&(M+=G(L,H+11,l[0],'fill="'+e.fg+'" font-family="'+zt+'" font-size="12"')),M+=G(L+y,H+11,S,'text-anchor="end" fill="'+e.fg+'" font-family="'+Ft+'" font-size="11" font-weight="600"'),M+='<rect x="'+L+'" y="'+g+'" width="'+y+'" height="14" rx="7" fill="'+e.grid+'" fill-opacity=".7"/>',M+='<clipPath id="'+E+'"><rect x="'+L+'" y="'+g+'" width="'+y+'" height="14" rx="7"/></clipPath><g clip-path="url(#'+E+')"><g'+ht(t,"bzc-gx")+">";var p=0;if(r.forEach(function(z,O){var C=Math.min(z,Math.max(0,s-p))/s*y;C>0&&(M+='<rect x="'+a(L+p/s*y)+'" y="'+g+'" width="'+a(C)+'" height="14" fill="'+i[O%i.length]+'"/>'),O>0&&C>0&&(M+='<rect x="'+a(L+p/s*y-1)+'" y="'+g+'" width="2" height="14" fill="'+(t.background||e.tile)+'"/>'),p+=z}),M+="</g></g>",N(t.goal)){var B=L+ut(+t.goal/s,0,1)*y;M+='<line x1="'+a(B)+'" x2="'+a(B)+'" y1="'+(g-4)+'" y2="'+(g+18)+'" stroke="'+e.fg+'" stroke-width="2" stroke-linecap="round"/>'}return p=0,r.forEach(function(z,O){var C=Math.min(z,Math.max(0,s-p))/s*y;C>0&&(M+=yt(L+p/s*y,g-4,C,22,(l[O]||(n?"Progress":"#"+(O+1)))+": "+u(z)+(n?"":" ("+Math.round(z/s*100)+"%)"))),p+=z}),w.forEach(function(z,O){var C=L+z.x,F=g+14+12+z.row*20+8;M+='<circle cx="'+a(C+4)+'" cy="'+a(F)+'" r="4" fill="'+i[O%i.length]+'"/><text x="'+a(C+14)+'" y="'+a(F+4)+'" fill="'+e.fg+'" font-family="'+zt+'" font-size="12">'+Lt(z.l)+'<tspan dx="6" fill="'+e.muted+'" font-family="'+Ft+'" font-size="11">'+Lt(d(r[O],t))+"</tspan></text>"}),M},{stat:x,summary:n?u(r[0])+(f?"":" of "+d(s,t)):d(o,t)+" of "+d(s,t)})}Ke.table=function(t){var e=kt(t.values).map(function(o){return Math.max(0,o)}),r=_(t.labels),l=e.length===1,i=N(t.max)?rt(t.max,100):l?100:_t(e);i>0||(i=1);var n=!N(t.prefix)&&!N(t.suffix)&&i===100&&l;return l?{head:["Label","Value"],rows:[[r[0]||"Progress",d(e[0],t)+(n?"%":" of "+d(i,t))]]}:{head:["Label","Value","Share"],rows:e.map(function(o,s){return[r[s]||"#"+(s+1),d(o,t),Math.round(o/i*100)+"%"]})}};gt("progress",Ke);vt("progress");var wr={weekday:"short",day:"numeric",month:"short",year:"numeric"};function Sr(t,e){if(N(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 Qe(t,e){var r=kt(t.values),l=mt(t,e)[0],i=t.lang||"en-GB",n=Sr(t,r.length),o=(n.getUTCDay()+6)%7,s=Math.max(1,Math.ceil((o+r.length)/7)),f=he(t),u=28,h=Math.max(1,Math.floor((f.w-u)/10));if(s>h){var m=(s-h)*7-o;r=r.slice(m),n=new Date(n.getTime()+m*864e5),o=0,s=h}var c=Math.min(18,(f.w-u)/s),w=c<8?1:3,T=c-w,b=16+7*c+26,x=r.length?Math.max.apply(null,r):0,L=function(g){return Er(i,g)},H=L({month:"short"}),y=L({weekday:"short"}),I=L(wr),M=Gt(r,t,"");return dt(t,e,b,function(g,E,S,p){if(!r.length)return pt(e,g,E,S,p);var B="",z=g+u,O=E+16,C=-99,F=[.28,.5,.75,1];c>=9&&[0,2,4].forEach(function(J){var st=new Date(Date.UTC(2024,0,1+J));B+=G(g,O+J*c+T/2+3.5,y.format(st),Y(e,9))});for(var Z=0;Z<r.length;Z++){var at=o+Z,k=Math.floor(at/7),R=at%7,$=new Date(n.getTime()+Z*864e5),v=z+k*c,U=O+R*c;($.getUTCDate()===1||Z===0)&&v-C>30&&(B+=G(v,E+9,H.format($),Y(e,9)),C=v);var P=r[Z]<=0||!x?0:Math.ceil(r[Z]/x*4),K=P?l:e.grid,et=P?F[P-1]:.7;B+='<rect x="'+a(v)+'" y="'+a(U)+'" width="'+a(T)+'" height="'+a(T)+'" rx="'+a(T*.24)+'" fill="'+K+'" fill-opacity="'+et+'"'+(t.animate?' class="bzc-a" style="animation-delay:'+a(k*.012)+'s"':"")+' data-tip="'+Lt(I.format($)+": "+d(r[Z],t))+'"/>'}var A=O+7*c+14,Q=10,V=g+S-5*(Q+3)-30;B+=G(g,A+8,d(_t(r),t,!0)+" in "+r.length+" days",Y(e,10)),B+=G(V-6,A+8,"Less",Y(e,9,'text-anchor="end"'));for(var q=0;q<5;q++)B+='<rect x="'+a(V+q*(Q+3))+'" y="'+A+'" width="'+Q+'" height="'+Q+'" rx="2.5" fill="'+(q?l:e.grid)+'" fill-opacity="'+(q?F[q-1]:.7)+'"/>';return B+=G(V+5*(Q+3)+3,A+8,"More",Y(e,9)),B},{stat:M,summary:d(_t(r),t)+" across "+r.length+" days"})}Qe.table=function(t){var e=kt(t.values),r=Sr(t,e.length),l=Er(t.lang||"en-GB",wr);return{head:["Date","Value"],rows:e.map(function(i,n){return[l.format(new Date(r.getTime()+n*864e5)),d(i,t)]})}};gt("heatmap",Qe);vt("heatmap");var il="1.8.0",ll=Fe.slice();export{At as BezelChart,Ot as render,ve as themes,Pt as toSVG,ll as types,il as version};
|