"use strict";var KimaiHeatmap=(()=>{var Pt=Object.defineProperty;var Qr=Object.getOwnPropertyDescriptor;var Xr=Object.getOwnPropertyNames;var Gr=Object.prototype.hasOwnProperty;var Jr=(t,e)=>{for(var r in e)Pt(t,r,{get:e[r],enumerable:!0})},Kr=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Xr(e))!Gr.call(t,o)&&o!==r&&Pt(t,o,{get:()=>e[o],enumerable:!(n=Qr(e,o))||n.enumerable});return t};var jr=t=>Kr(Pt({},"__esModule",{value:!0}),t);var Pa={};Jr(Pa,{init:()=>Wa,renderHeatmap:()=>Ir});var St="http://www.w3.org/1999/xhtml",Et={svg:"http://www.w3.org/2000/svg",xhtml:St,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Tt(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Et.hasOwnProperty(e)?{space:Et[e],local:t}:t}function tn(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===St&&e.documentElement.namespaceURI===St?e.createElement(t):e.createElementNS(r,t)}}function en(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ct(t){var e=Tt(t);return(e.local?en:tn)(e)}function rn(){}function Dt(t){return t==null?rn:function(){return this.querySelector(t)}}function le(t){typeof t!="function"&&(t=Dt(t));for(var e=this._groups,r=e.length,n=new Array(r),o=0;o=D&&(D=b+1);!(L=E[D])&&++D=0;)(i=n[o])&&(a&&i.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(i,a),a=i);return this}function Te(t){t||(t=yn);function e(m,M){return m&&M?t(m.__data__,M.__data__):!m-!M}for(var r=this._groups,n=r.length,o=new Array(n),a=0;ae?1:t>=e?0:NaN}function Ce(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function De(){return Array.from(this)}function be(){for(var t=this._groups,e=0,r=t.length;e1?this.each((e==null?Sn:typeof e=="function"?Cn:Tn)(t,e,r??"")):Dn(this.node(),t)}function Dn(t,e){return t.style.getPropertyValue(e)||Ft(t).getComputedStyle(t,null).getPropertyValue(e)}function bn(t){return function(){delete this[t]}}function Un(t,e){return function(){this[t]=e}}function Fn(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Ne(t,e){return arguments.length>1?this.each((e==null?bn:typeof e=="function"?Fn:Un)(t,e)):this.node()[t]}function Ye(t){return t.trim().split(/^|\s+/)}function Rt(t){return t.classList||new He(t)}function He(t){this._node=t,this._names=Ye(t.getAttribute("class")||"")}He.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function We(t,e){for(var r=Rt(t),n=-1,o=e.length;++n=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function $n(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,o=e.length,a;re?1:t>=e?0:NaN}function zt(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function kt(t){let e,r,n;t.length!==2?(e=j,r=(u,f)=>j(t(u),f),n=(u,f)=>t(u)-f):(e=t===j||t===zt?t:jn,r=t,n=t);function o(u,f,s=0,p=u.length){if(s>>1;r(u[m],f)<0?s=m+1:p=m}while(s>>1;r(u[m],f)<=0?s=m+1:p=m}while(ss&&n(u[m-1],f)>-n(u[m],f)?m-1:m}return{left:o,center:i,right:a}}function jn(){return 0}function Vt(t){return t===null?NaN:+t}var Ke=kt(j),je=Ke.right,to=Ke.left,eo=kt(Vt).center,Bt=je;var ro=Math.sqrt(50),no=Math.sqrt(10),oo=Math.sqrt(2);function At(t,e,r){let n=(e-t)/Math.max(0,r),o=Math.floor(Math.log10(n)),a=n/Math.pow(10,o),i=a>=ro?10:a>=no?5:a>=oo?2:1,u,f,s;return o<0?(s=Math.pow(10,-o)/i,u=Math.round(t*s),f=Math.round(e*s),u/se&&--f,s=-s):(s=Math.pow(10,o)*i,u=Math.round(t/s),f=Math.round(e/s),u*se&&--f),f0))return[];if(t===e)return[t];let n=e=o))return[];let u=a-o+1,f=new Array(u);if(n)if(i<0)for(let s=0;s=n)&&(r=n);else{let n=-1;for(let o of t)(o=e(o,++n,t))!=null&&(r=o)&&(r=o)}return r}function tr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function er(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function tt(t,e){if(!isFinite(t)||t===0)return null;var r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function V(t){return t=tt(Math.abs(t)),t?t[1]:NaN}function rr(t,e){return function(r,n){for(var o=r.length,a=[],i=0,u=t[0],f=0;o>0&&u>0&&(f+u+1>n&&(u=Math.max(1,n-f)),a.push(r.substring(o-=u,o+u)),!((f+=u+1)>n));)u=t[i=(i+1)%t.length];return a.reverse().join(e)}}function nr(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var ao=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Q(t){if(!(e=ao.exec(t)))throw new Error("invalid format: "+t);var e;return new Nt({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Q.prototype=Nt.prototype;function Nt(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Nt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function or(t){t:for(var e=t.length,r=1,n=-1,o;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(o+1):t}var pt;function ar(t,e){var r=tt(t,e);if(!r)return pt=void 0,t.toPrecision(e);var n=r[0],o=r[1],a=o-(pt=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=n.length;return a===i?n:a>i?n+new Array(a-i+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+tt(t,Math.max(0,e+a-1))[0]}function $t(t,e){var r=tt(t,e);if(!r)return t+"";var n=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+new Array(o-n.length+2).join("0")}var Qt={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:er,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>$t(t*100,e),r:$t,s:ar,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Xt(t){return t}var ir=Array.prototype.map,ur=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function sr(t){var e=t.grouping===void 0||t.thousands===void 0?Xt:rr(ir.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?Xt:nr(ir.call(t.numerals,String)),i=t.percent===void 0?"%":t.percent+"",u=t.minus===void 0?"\u2212":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function s(m,M){m=Q(m);var _=m.fill,T=m.align,k=m.sign,E=m.symbol,N=m.zero,b=m.width,D=m.comma,C=m.precision,L=m.trim,w=m.type;w==="n"?(D=!0,w="g"):Qt[w]||(C===void 0&&(C=12),L=!0,w="g"),(N||_==="0"&&T==="=")&&(N=!0,_="0",T="=");var J=(M&&M.prefix!==void 0?M.prefix:"")+(E==="$"?r:E==="#"&&/[boxX]/.test(w)?"0"+w.toLowerCase():""),$=(E==="$"?n:/[%p]/.test(w)?i:"")+(M&&M.suffix!==void 0?M.suffix:""),I=Qt[w],y=/[defgprs%]/.test(w);C=C===void 0?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C));function P(h){var R=J,F=$,q,_t,ot;if(w==="c")F=I(h)+F,h="";else{h=+h;var at=h<0||1/h<0;if(h=isNaN(h)?f:I(Math.abs(h),C),L&&(h=or(h)),at&&+h==0&&k!=="+"&&(at=!1),R=(at?k==="("?k:u:k==="-"||k==="("?"":k)+R,F=(w==="s"&&!isNaN(h)&&pt!==void 0?ur[8+pt/3]:"")+F+(at&&k==="("?")":""),y){for(q=-1,_t=h.length;++q<_t;)if(ot=h.charCodeAt(q),48>ot||ot>57){F=(ot===46?o+h.slice(q+1):h.slice(q))+F,h=h.slice(0,q);break}}}D&&!N&&(h=e(h,1/0));var it=R.length+h.length+F.length,O=it>1)+R+h+F+O.slice(it);break;default:h=O+R+h+F;break}return a(h)}return P.toString=function(){return m+""},P}function p(m,M){var _=Math.max(-8,Math.min(8,Math.floor(V(M)/3)))*3,T=Math.pow(10,-_),k=s((m=Q(m),m.type="f",m),{suffix:ur[8+_/3]});return function(E){return k(T*E)}}return{format:s,formatPrefix:p}}var Yt,Ht,Wt;Gt({thousands:",",grouping:[3],currency:["$",""]});function Gt(t){return Yt=sr(t),Ht=Yt.format,Wt=Yt.formatPrefix,Yt}function Jt(t){return Math.max(0,-V(Math.abs(t)))}function Kt(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(V(e)/3)))*3-V(Math.abs(t)))}function jt(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,V(e)-V(t))+1}function te(t,e,r,n){var o=Zt(t,e,r),a;switch(n=Q(n??",f"),n.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=Kt(o,i))&&(n.precision=a),Wt(n,i)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=jt(o,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=Jt(o))&&(n.precision=a-(n.type==="%")*2);break}}return Ht(n)}function fr(t){var e=t.domain;return t.ticks=function(r){var n=e();return Lt(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var o=e();return te(o[0],o[o.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),o=0,a=n.length-1,i=n[o],u=n[a],f,s,p=10;for(u0;){if(s=ct(i,u,r),s===f)return n[o]=i,n[a]=u,e(n);if(s>0)i=Math.floor(i/s)*s,u=Math.ceil(u/s)*s;else if(s<0)i=Math.ceil(i*s)/s,u=Math.floor(u*s)/s;else break;f=s}return t},t}function ht(){var t=0,e=1,r=1,n=[.5],o=[0,1],a;function i(f){return f!=null&&f<=f?o[Bt(n,f,0,r)]:a}function u(){var f=-1;for(n=new Array(r);++f=r?[n[r-1],e]:[n[s-1],n[s]]},i.unknown=function(f){return arguments.length&&(a=f),i},i.thresholds=function(){return n.slice()},i.copy=function(){return ht().domain([t,e]).range(o).unknown(a)},tr.apply(fr(i),arguments)}var ee=new Date,re=new Date;function A(t,e,r,n){function o(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(t(a=new Date(+a)),a),o.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),o.round=a=>{let i=o(a),u=o.ceil(a);return a-i(e(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,u)=>{let f=[];if(a=o.ceil(a),u=u==null?1:Math.floor(u),!(a0))return f;let s;do f.push(s=new Date(+a)),e(a,u),t(a);while(sA(i=>{if(i>=i)for(;t(i),!a(i);)i.setTime(i-1)},(i,u)=>{if(i>=i)if(u<0)for(;++u<=0;)for(;e(i,-1),!a(i););else for(;--u>=0;)for(;e(i,1),!a(i););}),r&&(o.count=(a,i)=>(ee.setTime(+a),re.setTime(+i),t(ee),t(re),Math.floor(r(ee,re))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(n?i=>n(i)%a===0:i=>o.count(0,i)%a===0):o)),o}var et=A(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),uo=et.range,dt=A(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),so=dt.range,lr=A(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),fo=lr.range;function rt(t){return A(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var yt=rt(0),z=rt(1),cr=rt(2),mr=rt(3),X=rt(4),pr=rt(5),hr=rt(6),dr=yt.range,co=z.range,mo=cr.range,po=mr.range,ho=X.range,yo=pr.range,go=hr.range;function nt(t){return A(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var gt=nt(0),ut=nt(1),yr=nt(2),gr=nt(3),G=nt(4),xr=nt(5),Mr=nt(6),vr=gt.range,xo=ut.range,Mo=yr.range,vo=gr.range,wo=G.range,_o=xr.range,So=Mr.range;var xt=A(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),To=xt.range,wr=A(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),Co=wr.range;var B=A(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());B.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:A(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});var Do=B.range,Z=A(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Z.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:A(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});var bo=Z.range;function oe(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ae(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Mt(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function ie(t){var e=t.dateTime,r=t.date,n=t.time,o=t.periods,a=t.days,i=t.shortDays,u=t.months,f=t.shortMonths,s=vt(o),p=wt(o),m=vt(a),M=wt(a),_=vt(i),T=wt(i),k=vt(u),E=wt(u),N=vt(f),b=wt(f),D={a:ot,A:at,b:it,B:O,c:null,d:br,e:br,f:Go,g:ia,G:sa,H:$o,I:Qo,j:Xo,L:Lr,m:Jo,M:Ko,p:Rr,q:qr,Q:kr,s:Ar,S:jo,u:ta,U:ea,V:ra,w:na,W:oa,x:null,X:null,y:aa,Y:ua,Z:fa,"%":Fr},C={a:Or,A:zr,b:Vr,B:Br,c:null,d:Ur,e:Ur,f:pa,g:Sa,G:Ca,H:la,I:ca,j:ma,L:Yr,m:ha,M:da,p:Zr,q:$r,Q:kr,s:Ar,S:ya,u:ga,U:xa,V:Ma,w:va,W:wa,x:null,X:null,y:_a,Y:Ta,Z:Da,"%":Fr},L={a:y,A:P,b:h,B:R,c:F,d:Cr,e:Cr,f:zo,g:Tr,G:Sr,H:Dr,I:Dr,j:Io,L:Oo,m:Eo,M:Ro,p:I,q:Po,Q:Bo,s:Zo,S:qo,u:Lo,U:No,V:Yo,w:Ao,W:Ho,x:q,X:_t,y:Tr,Y:Sr,Z:Wo,"%":Vo};D.x=w(r,D),D.X=w(n,D),D.c=w(e,D),C.x=w(r,C),C.X=w(n,C),C.c=w(e,C);function w(c,d){return function(g){var l=[],Y=-1,v=0,H=c.length,W,K,fe;for(g instanceof Date||(g=new Date(+g));++Y53)return null;"w"in l||(l.w=1),"Z"in l?(v=ae(Mt(l.y,0,1)),H=v.getUTCDay(),v=H>4||H===0?ut.ceil(v):ut(v),v=dt.offset(v,(l.V-1)*7),l.y=v.getUTCFullYear(),l.m=v.getUTCMonth(),l.d=v.getUTCDate()+(l.w+6)%7):(v=oe(Mt(l.y,0,1)),H=v.getDay(),v=H>4||H===0?z.ceil(v):z(v),v=et.offset(v,(l.V-1)*7),l.y=v.getFullYear(),l.m=v.getMonth(),l.d=v.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),H="Z"in l?ae(Mt(l.y,0,1)).getUTCDay():oe(Mt(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(H+5)%7:l.w+l.U*7-(H+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,ae(l)):oe(l)}}function $(c,d,g,l){for(var Y=0,v=d.length,H=g.length,W,K;Y=H)return-1;if(W=d.charCodeAt(Y++),W===37){if(W=d.charAt(Y++),K=L[W in _r?d.charAt(Y++):W],!K||(l=K(c,g,l))<0)return-1}else if(W!=g.charCodeAt(l++))return-1}return l}function I(c,d,g){var l=s.exec(d.slice(g));return l?(c.p=p.get(l[0].toLowerCase()),g+l[0].length):-1}function y(c,d,g){var l=_.exec(d.slice(g));return l?(c.w=T.get(l[0].toLowerCase()),g+l[0].length):-1}function P(c,d,g){var l=m.exec(d.slice(g));return l?(c.w=M.get(l[0].toLowerCase()),g+l[0].length):-1}function h(c,d,g){var l=N.exec(d.slice(g));return l?(c.m=b.get(l[0].toLowerCase()),g+l[0].length):-1}function R(c,d,g){var l=k.exec(d.slice(g));return l?(c.m=E.get(l[0].toLowerCase()),g+l[0].length):-1}function F(c,d,g){return $(c,e,d,g)}function q(c,d,g){return $(c,r,d,g)}function _t(c,d,g){return $(c,n,d,g)}function ot(c){return i[c.getDay()]}function at(c){return a[c.getDay()]}function it(c){return f[c.getMonth()]}function O(c){return u[c.getMonth()]}function Rr(c){return o[+(c.getHours()>=12)]}function qr(c){return 1+~~(c.getMonth()/3)}function Or(c){return i[c.getUTCDay()]}function zr(c){return a[c.getUTCDay()]}function Vr(c){return f[c.getUTCMonth()]}function Br(c){return u[c.getUTCMonth()]}function Zr(c){return o[+(c.getUTCHours()>=12)]}function $r(c){return 1+~~(c.getUTCMonth()/3)}return{format:function(c){var d=w(c+="",D);return d.toString=function(){return c},d},parse:function(c){var d=J(c+="",!1);return d.toString=function(){return c},d},utcFormat:function(c){var d=w(c+="",C);return d.toString=function(){return c},d},utcParse:function(c){var d=J(c+="",!0);return d.toString=function(){return c},d}}}var _r={"-":"",_:" ",0:"0"},U=/^\s*\d+/,Uo=/^%/,Fo=/[\\^$*+?|[\]().{}]/g;function x(t,e,r){var n=t<0?"-":"",o=(n?-t:t)+"",a=o.length;return n+(a[e.toLowerCase(),r]))}function Ao(t,e,r){var n=U.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function Lo(t,e,r){var n=U.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function No(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function Yo(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function Ho(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function Sr(t,e,r){var n=U.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Tr(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function Wo(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function Po(t,e,r){var n=U.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function Eo(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Cr(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function Io(t,e,r){var n=U.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function Dr(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function Ro(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function qo(t,e,r){var n=U.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function Oo(t,e,r){var n=U.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function zo(t,e,r){var n=U.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Vo(t,e,r){var n=Uo.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Bo(t,e,r){var n=U.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Zo(t,e,r){var n=U.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function br(t,e){return x(t.getDate(),e,2)}function $o(t,e){return x(t.getHours(),e,2)}function Qo(t,e){return x(t.getHours()%12||12,e,2)}function Xo(t,e){return x(1+et.count(B(t),t),e,3)}function Lr(t,e){return x(t.getMilliseconds(),e,3)}function Go(t,e){return Lr(t,e)+"000"}function Jo(t,e){return x(t.getMonth()+1,e,2)}function Ko(t,e){return x(t.getMinutes(),e,2)}function jo(t,e){return x(t.getSeconds(),e,2)}function ta(t){var e=t.getDay();return e===0?7:e}function ea(t,e){return x(yt.count(B(t)-1,t),e,2)}function Nr(t){var e=t.getDay();return e>=4||e===0?X(t):X.ceil(t)}function ra(t,e){return t=Nr(t),x(X.count(B(t),t)+(B(t).getDay()===4),e,2)}function na(t){return t.getDay()}function oa(t,e){return x(z.count(B(t)-1,t),e,2)}function aa(t,e){return x(t.getFullYear()%100,e,2)}function ia(t,e){return t=Nr(t),x(t.getFullYear()%100,e,2)}function ua(t,e){return x(t.getFullYear()%1e4,e,4)}function sa(t,e){var r=t.getDay();return t=r>=4||r===0?X(t):X.ceil(t),x(t.getFullYear()%1e4,e,4)}function fa(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+x(e/60|0,"0",2)+x(e%60,"0",2)}function Ur(t,e){return x(t.getUTCDate(),e,2)}function la(t,e){return x(t.getUTCHours(),e,2)}function ca(t,e){return x(t.getUTCHours()%12||12,e,2)}function ma(t,e){return x(1+dt.count(Z(t),t),e,3)}function Yr(t,e){return x(t.getUTCMilliseconds(),e,3)}function pa(t,e){return Yr(t,e)+"000"}function ha(t,e){return x(t.getUTCMonth()+1,e,2)}function da(t,e){return x(t.getUTCMinutes(),e,2)}function ya(t,e){return x(t.getUTCSeconds(),e,2)}function ga(t){var e=t.getUTCDay();return e===0?7:e}function xa(t,e){return x(gt.count(Z(t)-1,t),e,2)}function Hr(t){var e=t.getUTCDay();return e>=4||e===0?G(t):G.ceil(t)}function Ma(t,e){return t=Hr(t),x(G.count(Z(t),t)+(Z(t).getUTCDay()===4),e,2)}function va(t){return t.getUTCDay()}function wa(t,e){return x(ut.count(Z(t)-1,t),e,2)}function _a(t,e){return x(t.getUTCFullYear()%100,e,2)}function Sa(t,e){return t=Hr(t),x(t.getUTCFullYear()%100,e,2)}function Ta(t,e){return x(t.getUTCFullYear()%1e4,e,4)}function Ca(t,e){var r=t.getUTCDay();return t=r>=4||r===0?G(t):G.ceil(t),x(t.getUTCFullYear()%1e4,e,4)}function Da(){return"+0000"}function Fr(){return"%"}function kr(t){return+t}function Ar(t){return Math.floor(+t/1e3)}var st,ft,Wr,Pr,Er;ue({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function ue(t){return st=ie(t),ft=st.format,Wr=st.parse,Pr=st.utcFormat,Er=st.utcParse,st}var ba={cellSize:13,cellGap:2,marginTop:20,marginLeft:30,marginBottom:4},se=["#9be9a8","#40c463","#30a14e","#216e39"],Ua=["Mon","","Wed","","Fri","",""],Fa=ft("%b"),ka=ft("%Y-%m-%d"),Aa=ft("%a, %b %-d, %Y");function La(t){try{return getComputedStyle(t).getPropertyValue("--tblr-bg-surface"),se}catch{return se}}function Na(t){let e=new Map;for(let r of t)e.set(r.date,r);return e}function Ya(t,e,r){let n=z.floor(t),o=[],a=new Date(t);for(;a<=e;){let i=ka(a),u=z.count(n,a),f=(a.getDay()+6)%7;o.push({date:new Date(a),dateStr:i,entry:r.get(i)||null,week:u,day:f}),a=et.offset(a,1)}return o}function Ha(){let t=document.createElement("div");return t.className="heatmap-tooltip",t.style.display="none",t}function Ir(t,e,r=ba){if(t.innerHTML="",!e.days||e.days.length===0){let y=document.createElement("div");y.textContent="No tracking data available",y.style.padding="1rem",y.style.color="var(--tblr-secondary, #6c757d)",t.appendChild(y);return}let n=Na(e.days),o=new Date(e.range.begin),a=new Date(e.range.end),i=Ya(o,a,n),u=mt(e.days,y=>y.hours)||1,f=La(t),s=ht().domain([0,u]).range(f),{cellGap:p,marginTop:m,marginLeft:M,marginBottom:_}=r,T=(mt(i,y=>y.week)??0)+1,k=t.clientWidth||800,N=Math.min(18,Math.max(2,Math.floor((k-M)/T)-p)),b=N+p,D=M+T*b,C=m+7*b+_,L=document.createElement("div");L.style.maxWidth=`${D}px`,L.style.margin="0 auto",t.appendChild(L);let w=Ot(L).append("svg").attr("width",D).attr("height",C).attr("class","heatmap-svg"),J=[],$=z.floor(o);xt.range(xt.ceil(o),a).forEach(y=>{J.push({date:y,week:z.count($,y)})}),w.selectAll(".month-label").data(J).join("text").attr("class","heatmap-label month-label").attr("x",y=>M+y.week*b).attr("y",m-6).text(y=>Fa(y.date)),w.selectAll(".day-label").data(Ua).join("text").attr("class","heatmap-label day-label").attr("x",M-6).attr("y",(y,P)=>m+P*b+N-2).attr("text-anchor","end").text(y=>y);let I=Ha();L.style.position="relative",L.appendChild(I),w.selectAll(".heatmap-cell").data(i).join("rect").attr("class",y=>y.entry?"heatmap-cell":"heatmap-cell heatmap-empty").attr("x",y=>M+y.week*b).attr("y",y=>m+y.day*b).attr("width",N).attr("height",N).attr("fill",y=>y.entry?s(y.entry.hours):"").on("mouseenter",function(y,P){let h=P.entry?P.entry.hours.toFixed(1):"0.0",R=P.entry?P.entry.count:0;I.innerHTML=`${Aa(P.date)}
${h}h (${R} entries)`,I.style.display="block";let F=y.target.getBoundingClientRect(),q=L.getBoundingClientRect();I.style.left=`${F.left-q.left+N/2}px`,I.style.top=`${F.top-q.top-40}px`}).on("mouseleave",function(){I.style.display="none"})}function Wa(t){let e=t.getAttribute("data-url");if(!e){console.error("KimaiHeatmap: missing data-url attribute");return}fetch(e).then(r=>{if(!r.ok)throw new Error(`HTTP ${r.status}`);return r.json()}).then(r=>{Ir(t,r)}).catch(r=>{console.error("KimaiHeatmap: failed to load data",r),t.textContent="Failed to load heatmap data"})}return jr(Pa);})();