PageSourceSearch

https://www.schoolmantic.com/_nuxt/DXmfjMEq.js

js schoolmantic.com collected 2026-10-02 00:56:42 UTC 7,594 bytes, 1 lines download raw bytes

1import{_ as Z}from"./C6vPmf3j.js";import{e as q,f as J,h as Q,j as X,C as Y,i as ss,c as o,m as ts,a as s,t as l,k as e,b as M,w as $,l as d,av as as,F as y,r as S,q as p,o as r,d as es,x as w,I,B as ns,s as _,E as os,_ as ls}from"./95xz6Sip.js";import{_ as rs}from"./CpSxgZqN.js";import{u as is}from"./CSPft45y.js";import{s as j}from"./Ck8PdoGL.js";const cs={class:"page-root"},ds={class:"kiosk-header"},us={class:"header-school"},ps={class:"school-name"},_s={class:"header-clock"},hs={class:"clock-date"},ms={class:"clock-time"},ks={class:"clock-hm"},vs={class:"clock-sec"},fs={key:0,class:"state-center"},gs={key:1,class:"state-center"},bs={class:"state-text",style:{color:"#f87171"}},ys={key:2,class:"kiosk-main"},Ss={class:"panel panel-left"},ws={class:"panel-header"},Is={key:0,class:"refresh-tag"},Ds={class:"student-list"},xs={key:0,class:"empty-state"},As={class:"student-photo"},Ts=["src","onError"],Cs={key:1,class:"photo-initial"},Ls={key:2,class:"new-dot"},Ms={class:"student-info"},$s={class:"student-name"},js={class:"student-meta"},Ns={key:0,class:"class-chip"},Bs={class:"status-label"},Rs={class:"student-time"},Es={class:"panel-right-stack"},Ps={class:"panel panel-rank panel-rajin"},Ks={class:"panel-header"},Vs={class:"periode-tag"},Hs={class:"rank-list"},Us={key:0,class:"empty-state"},zs={class:"rank-number"},Fs={class:"rank-name"},Gs={class:"rank-bar-wrap"},Os={class:"rank-score rank-score-green"},Ws={class:"panel panel-rank panel-malas"},Zs={class:"panel-header"},qs={class:"periode-tag"},Js={class:"rank-list"},Qs={key:0,class:"empty-state"},Xs={class:"rank-number"},Ys={class:"rank-name"},st={class:"rank-bar-wrap"},tt=q({__name:"indeks-keaktifan",setup(at){const{token:N,apiFetch:D,fetchMe:B,user:R}=J(),{activeSchoolId:u,ensureContext:E,activeSchoolName:P}=is(),x=Q(),K=os(),i=p(null),h=p(!0),m=p(""),g=p(!1),k=ns({}),v=p(new Date);let A,T;X(async()=>{if(!N.value)return x.push("/login");try{R.value||await B(),await E()}catch{return x.push("/login")}A=j(()=>{v.value=new Date},1e3),await b(),T=j(V,15e3)}),Y(()=>{clearInterval(A),clearInterval(T)});async function b(){if(u.value){h.value=!0,m.value="";try{const n=await D(`/schools/${u.value}/dashboard/keaktifan`);i.value=n}catch(n){const t=n;m.value=t?.data?.error?.message??t?.message??"Gagal memuat data"}finally{h.value=!1}}}async function V(){if(!(!u.value||h.value)){g.value=!0;try{const n=await D(`/schools/${u.value}/dashboard/keaktifan`);i.value=n}catch{}finally{g.value=!1}}}const H=_(()=>v.value.toLocaleTimeString("id-ID",{hour:"2-digit",minute:"2-digit",hour12:!1})),U=_(()=>v.value.toLocaleTimeString("id-ID",{second:"2-digit",hour12:!1}).replace(/^.*:/,"")),z=_(()=>v.value.toLocaleDateString("id-ID",{weekday:"long",day:"numeric",month:"long",year:"numeric"}));function C(n,t){if(!n||!t)return"";const f=a=>new Date(`${a}T00:00:00Z`).toLocaleDateString("id-ID",{day:"numeric",month:"short",year:"numeric"});return`Periode ${f(n)} – ${f(t)}`}function F(n){return n?new Date(n).toLocaleTimeString("id-ID",{hour:"2-digit",minute:"2-digit",hour12:!1}):"-"}function G(n){return n.photo_url&&(n.photo_url.startsWith("http")||n.photo_url.startsWith("/"))?n.photo_url:`${K.public.apiBaseUrl}/studentphoto/${u.value}/${n.nisn}.jpg`}const L={HADIR:{label:"Hadir",dot:"#34d399"},TERLAMBAT:{label:"Terlambat",dot:"#fbbf24"},IZIN:{label:"Izin",dot:"#38bdf8"},SAKIT:{label:"Sakit",dot:"#c084fc"},ALPHA:{label:"Alpha",dot:"#f87171"}},O=_(()=>i.value?.palingRajin?.[0]?.present_count??1),W=_(()=>{const n=i.value?.palingMalas?.map(t=>t.present_count)??[];return n.length>0?Math.max(...n):1});return ss(u,()=>{for(const n in k)delete k[n];b()}),(n,t)=>{const f=Z;return r(),o("div",cs,[t[14]||(t[14]=ts('<div class="bg-layer" data-v-8f923e03></div><div class="orb orb-1" data-v-8f923e03></div><div class="orb orb-2" data-v-8f923e03></div><div class="orb orb-3" data-v-8f923e03></div><div class="dot-grid" data-v-8f923e03></div>',5)),s("header",ds,[s("div",us,[t[1]||(t[1]=s("div",{class:"school-logo-wrap"},[s("img",{src:rs,alt:"Logo",class:"school-logo"})],-1)),s("div",null,[s("h1",ps,l(e(i)?.schoolName??e(P)??"SCHOOLMANTIC"),1),t[0]||(t[0]=s("p",{class:"school-sub"},"Schoolmantic — Solusi Presensi Keaktifan",-1))])]),s("div",_s,[s("p",hs,l(e(z)),1),s("div",ms,[s("span",ks,l(e(H)),1),s("span",vs,":"+l(e(U)),1)])]),M(f,{to:"/",class:"header-back-btn"},{default:$(()=>[...t[2]||(t[2]=[es("← Dashboard",-1)])]),_:1})]),e(h)?(r(),o("div",fs,[...t[3]||(t[3]=[s("div",{class:"spinner"},null,-1),s("p",{class:"state-text"},"Memuat data keaktifan...",-1)])])):e(m)?(r(),o("div",gs,[t[4]||(t[4]=s("span",{class:"state-icon"}
1,"⚠️",-1)),s("p",bs,l(e(m)),1),s("button",{class:"retry-btn",onClick:b},"Coba Lagi")])):e(i)?(r(),o("main",ys,[s("section",Ss,[s("div",ws,[t[5]||(t[5]=s("span",{class:"live-dot"},null,-1)),t[6]||(t[6]=s("h2",{class:"panel-title"},"Siswa Baru Datang",-1)),e(g)?(r(),o("span",Is,"⟳ updating")):d("",!0)]),s("div",Ds,[e(i).recentStudents.length===0?(r(),o("div",xs,[...t[7]||(t[7]=[s("span",null,"🎒",-1),s("p",null,"Belum ada absensi masuk hari ini",-1)])])):d("",!0),M(as,{name:"slist",tag:"div",class:"slist-wrap"},{default:$(()=>[(r(!0),o(y,null,S(e(i).recentStudents.slice(0,9),(a,c)=>(r(),o("div",{key:a.student_name+a.check_in_time,class:w(["student-row",{newest:c===0}])},[s("div",As,[e(k)[a.nisn]?(r(),o("span",Cs,l(a.student_name.charAt(0)),1)):(r(),o("img",{key:0,src:G(a),alt:"",class:"photo-img",onError:et=>e(k)[a.nisn]=!0},null,40,Ts)),c===0?(r(),o("span",Ls)):d("",!0)]),s("div",Ms,[s("span",$s,l(a.student_name),1),s("span",js,[a.class_name?(r(),o("span",Ns,l(a.class_name),1)):d("",!0),s("span",{class:"status-dot",style:I({background:L[a.status]?.dot??"#94a3b8"})},null,4),s("span",Bs,l(L[a.status]?.label??a.status),1)])]),s("span",Rs,l(F(a.check_in_time)),1)],2))),128))]),_:1})])]),s("div",Es,[s("section",Ps,[s("div",Ks,[t[8]||(t[8]=s("span",{class:"rank-dot rank-dot-green"},null,-1)),t[9]||(t[9]=s("h2",{class:"panel-title"},"Index Kelas Paling Rajin",-1)),s("span",Vs,l(C(e(i).startDate,e(i).endDate)),1)]),s("div",Hs,[e(i).palingRajin.length===0?(r(),o("div",Us,[...t[10]||(t[10]=[s("span",null,"📊",-1),s("p",null,"Belum ada data",-1)])])):d("",!0),(r(!0),o(y,null,S(e(i).palingRajin.slice(0,5),(a,c)=>(r(),o("div",{key:"rajin-"+a.class_id,class:w(["rank-row",`rank-${c}`])},[s("span",zs,l(c+1)+".",1),s("span",Fs,l(a.class_name),1),s("div",Gs,[s("div",{class:"rank-bar rank-bar-green",style:I({width:`${a.present_count/e(O)*100}%`})},null,4)]),s("span",Os,l(a.present_count),1)],2))),128))])]),s("section",Ws,[s("div",Zs,[t[11]||(t[11]=s("span",{class:"rank-dot rank-dot-red"},null,-1)),t[12]||(t[12]=s("h2",{class:"panel-title"},"Index Kelas Paling Malas",-1)),s("span",qs,l(C(e(i).startDate,e(i).endDate)),1)]),s("div",Js,[e(i).palingMalas.length===0?(r(),o("div",Qs,[...t[13]||(t[13]=[s("span",null,"📊",-1),s("p",null,"Belum ada data",-1)])])):d("",!0),(r(!0),o(y,null,S(e(i).palingMalas.slice(0,5),(a,c)=>(r(),o("div",{key:"malas-"+a.class_id,class:"rank-row"},[s("span",Xs,l(c+1)+".",1),s("span",Ys,l(a.class_name),1),s("div",st,[s("div",{class:"rank-bar rank-bar-red",style:I({width:`${a.present_count===0?95:(1-a.present_count/e(W))*90}%`})},null,4)]),s("span",{class:w(["rank-score",a.present_count===0?"rank-score-red":"rank-score-dim"])},l(a.present_count),3)]))),128))])])])])):d("",!0),t[15]||(t[15]=s("footer",{class:"kiosk-footer"},[s("span",null,"🔄 Auto-refresh setiap 15 detik"),s("span",null,"Schoolmantic — Sistem Informasi Absensi Sekolah")],-1))])}}}),ct=ls(tt,[["__scopeId","data-v-8f923e03"]]);export{ct as default};

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.