1import{d as E,v as x}from"./content.typesyje91KzF.js";const m=1e3*60*60,v=1e3*60,L=v*2,S=["eduval_task","eduval_educational","eduval_edutainment","eduval_fun","eduval_junk","eduval_unknown"],$=["all","social",...S],_=[...S,"social"];function K(t){const e=[...t.log];for(const n in t.activeLog){const r=t.activeLog[n];e.push(r)}return e}function B(t,e=L){if(!t||t.length==0)return[];t.sort((o,s)=>o.startTime!==s.startTime?o.startTime-s.startTime:o.endTime-s.endTime);const n=[];let r=t[0].startTime,a=t[0].endTime,i=t.slice(1);for(const o of i)o.startTime<=a+e&&o.endTime>a?a=o.endTime:o.startTime>a+e&&(n.push([r,a]),r=o.startTime,a=o.endTime);return n.push([r,a]),n}function tt(t,e,n=null){const r=[];for(const a of t)e!=0&&a.endTime<e||n&&a.startTime>n||(e!=0&&a.startTime<e&&(a.startTime=e),n&&a.endTime>n&&(a.endTime=n),r.push(a));return r}function k(t){const e=t.split(":");if(e.length!=2)return 0;const n=parseInt(e[0]),r=parseInt(e[1]);return isNaN(n)||isNaN(r)?0:(n*60+r)*60*1e3}function et(t,e){if(!t||t.length==0)return!0;let n=e;if(n===void 0){const a=new Date;a.setHours(0,0,0,0),n=Date.now()-a.getTime()}const r=n;return t.some(a=>{const i=k(a.start),o=k(a.end);return r>=i&&r<=o})}function nt(t,e=L){const n=B(t,e);let r=0;for(const a of n){let i=a[1]-a[0];r+=i}return r}function at(t){const e=new Date,n=new Date(e.getFullYear(),e.getMonth(),e.getDate());return new Date(n.getTime()-m*24*t)}function H(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function G(t,e){const n=Math.max(1,Math.min(31,Math.floor(t))),r=H(e).getTime(),a=r-(n-1)*24*m,i=[];for(let o=0;o<n;o++){const s=a+o*24*m,u=new Date(s);i.push({key:u.toISOString(),dayStartTime:s,dayEndTime:s+24*m,isToday:s===r,weekdayLabel:u.toLocaleDateString(void 0,{weekday:"short"}),dateLabel:u.toLocaleDateString(void 0,{month:"short",day:"numeric"})})}return i}function y(){return Array.from({length:24},()=>[])}function W(t){if(!t.length)return[];const e=t.map(r=>({...r})).sort((r,a)=>r.startTime-a.startTime),n=[e[0]];for(const r of e.slice(1)){const a=n[n.length-1];a&&(r.startTime<=a.endTime?a.endTime=Math.max(a.endTime,r.endTime):n.push(r))}return n}function Y(t){return W(t).reduce((e,n)=>e+Math.max(0,n.endTime-n.startTime),0)}function p(t,e,n,r){if(n<=e)return;const a=Math.max(0,Math.floor((e-r)/m)),i=Math.min(23,Math.floor((n-1-r)/m));for(let o=a;o<=i;o++){const s=r+o*m,u=s+m,c=Math.max(e,s),l=Math.min(n,u);l<=c||t[o].push({startTime:c,endTime:l})}}function U(t){return t.map(e=>Y(e))}function w(t){const e=Number(t==null?void 0:t.startTime),n=Number(t==null?void 0:t.endTime),r=Number.isFinite(e)?e:n,a=Number.isFinite(n)?n:e;return!Number.isFinite(r)||!Number.isFinite(a)?null:{startTime:Math.min(r,a),endTime:Math.max(r,a)}}function A(t){var e,n;return((n=(e=t==null?void 0:t.contentInfo)==null?void 0:e.social)==null?void 0:n.isSocial)===!0}function rt(t){return t==="all"?"All usage":t==="social"?"Social":E(t)||t}function V(t){return t==="social"?"Social":E(t)||t}function C(t){var e;return t==="social"?"var(--bs-info)":((e=x(t))==null?void 0:e.color)||"var(--bs-secondary)"}function z(t,e="all"){var n;return e==="all"?!0:e==="social"?A(t):F((n=t==null?void 0:t.contentInfo)==null?void 0:n.eduValue)===e}function ot(t,e={}){const n=e.now||new Date,r=e.filterKey||"all",a=G(e.dayCount||8,n);if(!a.length)return[];const i=a[0].dayStartTime,o=a[a.length-1].dayEndTime,s=a.map(()=>y());for(const u of t||[]){if(!z(u,r))continue;const c=w(u);if(!c)continue;const l=Math.max(c.startTime,i),f=Math.min(c.endTime,o);if(f<=l)continue;const h=Math.max(0,Math.floor((l-i)/(24*m))),b=Math.min(a.length-1,Math.floor((f-1-i)/(24*m)));for(let d=h;d<=b;d++){const T=a[d],N=s[d],D=Math.max(l,T.dayStartTime),M=Math.min(f,T.dayEndTime);M<=D||p(N,D,M,T.dayStartTime)}}return a.map((u,c)=>{const l=U(s[c]);return{...u,totalMs:l.reduce((f,h)=>f+h,0),hourlyTotalsMs:l}}).reverse()}function it(t,e){var i;const n=Number(e.dayStartTime),r=n+24*m,a=new Map;for(const o of _)a.set(o,y());for(const o of t||[]){const s=w(o);if(!s)continue;const u=Math.max(s.startTime,n),c=Math.min(s.endTime,r);if(c<=u)continue;const l=F((i=o==null?void 0:o.contentInfo)==null?void 0:i.eduValue);S.includes(l)?p(a.get(l)||y(),u,c,n):p(a.get("eduval_unknown")||y(),u,c,n),A(o)&&p(a.get("social")||y(),u,c,n)}return _.map(o=>{const s=U(a.get(o)||y());return{key:o,label:V(o),color:C(o),totalMs:s.reduce((u,c)=>u+c,0),hourlyTotalsMs:s}})}function j(t,e=new Date){const n=Math.max(0,Math.min(23,Math.floor(t||0))),r=new Date(e.getFullYear(),e.getMonth(),e.getDate(),n,0,0,0);return e.getTime()<r.getTime()&&r.setDate(r.getDate()-1),r}function st(t,e=0,n=new Date){const r=j(e,n),a=Math.max(0,Math.floor(t||0)-1);return r.setDate(r.getDate()-a),r}function ut(t,e=1){if(!Number.isFinite(t)||t<=0)return new Date(0);const n=new Date(t),r=new Date(n.getFullYear(),n.getMonth(),n.getDate());return r.setDate(r.getDate()-Math.max(0,Math.floor(e))),r}const O=1e3*60*15;function P(t){return Math.floor(t/m)*m}function X(t){return Math.ceil(t/m)*m}function q(t,e,n){return Math.max(e,Math.min(n,t))}function J(t,e){if(e.length===0)return m;let n=e[0],r=Math.abs(t-n);for(const a of e.slice(1)){const i=Math.abs(t-a);i<r&&(n=a,r=i)}return n}function ct(t){if(!t||t.length===0)return null;let e=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;for(const i of t){const o=Number(i==null?void 0:i.startTime),s=Number(i==null?void 0:i.endTime);
1Number.isFinite(o)&&(e=Math.min(e,o),n=Math.max(n,o)),Number.isFinite(s)&&(e=Math.min(e,s),n=Math.max(n,s))}if(!Number.isFinite(e)||!Number.isFinite(n))return null;const r=P(e)-m,a=X(n)+m;return{startTime:r,endTime:Math.max(a,r+2*m)}}function mt(t,e,n=[15,30,60,120]){const r=Math.max(t,m),a=Math.max(280,Number.isFinite(e)?e:0),i=q(Math.round(a/28),24,40),o=r/i,s=n.map(c=>Math.max(15,Math.round(c))*v).sort((c,l)=>c-l),u=J(o,s);return Math.max(O,u)}function F(t){if(typeof t!="string"||t.length===0)return"eduval_unknown";const e=x(t);return(e==null?void 0:e.key)||t}function lt(t,e,n,r){var s;if(!Number.isFinite(e)||!Number.isFinite(n)||n<=e)return[];const a=Math.max(O,Math.floor(r)),i=Math.ceil((n-e)/a),o=Array.from({length:i},(u,c)=>({startTime:e+c*a,endTime:Math.min(e+(c+1)*a,n),totalMs:0,categoryTotals:{}}));for(const u of t||[]){const c=Number(u==null?void 0:u.startTime),l=Number(u==null?void 0:u.endTime),f=Number.isFinite(c)?c:l,h=Number.isFinite(l)?l:c;if(!Number.isFinite(f)||!Number.isFinite(h))continue;const b=Math.max(e,Math.min(f,h)),d=Math.min(n,Math.max(f,h));if(d<=b)continue;const T=F((s=u==null?void 0:u.contentInfo)==null?void 0:s.eduValue),N=Math.max(0,Math.floor((b-e)/a)),D=Math.min(i-1,Math.floor((d-1-e)/a));for(let M=N;M<=D;M++){const g=o[M];if(!g)continue;const R=Math.max(b,g.startTime),I=Math.min(d,g.endTime)-R;I<=0||(g.totalMs+=I,g.categoryTotals[T]=(g.categoryTotals[T]||0)+I)}}return o}function ft(t){const e=new Map;for(const n of t)for(const[r,a]of Object.entries(n.categoryTotals||{}))e.set(r,(e.get(r)||0)+a);return Array.from(e.entries()).map(([n,r])=>{const a=x(n);return{key:n,label:E(n)||n,color:(a==null?void 0:a.color)||"var(--bs-secondary)",totalMs:r}}).sort((n,r)=>r.totalMs-n.totalMs)}export{$ as U,j as a,st as b,ct as c,lt as d,rt as e,tt as f,K as g,ot as h,it as i,C as j,ut as k,et as n,mt as p,at as s,nt as t,ft as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.