const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OrnekApp-gLLAt0Cu.js","assets/VeliOnayBekliyor-DCWdRKbi.js","assets/OrnekApp-Cl9SYHjg.css","assets/hesap-D1V5WB0x.css"])))=>i.map(i=>d[i]);
import{t as a,r as c,j as e,a as M,L as he,l as X,b as ee,p as L,g as me,c as ye,d as vn,e as Aa,y as Zi,S as J,s as Te,k as ai,f as Ji,h as T,i as es,E as ge,u as as,m as Se,n as ji,K as Nn,o as is,q as le,v as ss,w as Xa,x as Ae,z as la,A as je,B as Fe,C as ue,D as ns,F as oa,G as Be,H as zn,I as Ta,J as xe,M as rs,N as ts,W as Sn,O as ls,P as os,Q as wn,R as Re,T as ds,U as Ea,V as ii,X as si,Y as En,Z as _n,_ as qe,$ as $n,a0 as xi,a1 as bi,a2 as Bn,a3 as ze,a4 as Cn,a5 as In,a6 as ni,a7 as An,a8 as Tn,a9 as Kn,aa as Dn,ab as Rn,ac as Mn,ad as Fn,ae as Ln}from"./VeliOnayBekliyor-DCWdRKbi.js";/* empty css              */const Ge=i=>i.ad||a("Adsız"),vi=(i,s)=>i.localeCompare(s,"tr"),ri=i=>i.no?`${i.no[0]}.${i.no[1]}`:i.baslik;function cs(i){const s=Aa("",i),n=i.replace(/\/+$/,"").split("/").pop()??i;return s?`${s[0]}.${s[1]}`:n}const us=i=>({yol:i.yol,baslik:i.baslik,no:Aa(i.baslik,i.yol),...i.grup?{grup:i.grup}:{},...i.yer?{yer:i.yer}:{}});function On(i,s,n){const t=s.map(us),l=[...new Set(n.filter(r=>r.egitim===i.slug||Zi(r.yol)===i.slug).map(r=>r.yol))].filter(r=>!t.some(d=>d.yol===r)).map(r=>({yol:r,baslik:cs(r),no:Aa("",r)}));if(!l.length)return t;const o=r=>r.no?r.no[0]*1e3+r.no[1]:Number.MAX_SAFE_INTEGER;return[...t,...l].sort((r,d)=>{const u=t.indexOf(r),m=t.indexOf(d);return u>=0&&m>=0?u-m:o(r)-o(d)})}const Hn="Görev";function Yn(i){const s=new Map;for(const n of i){const t=n.no?n.no[0]:Number.MAX_SAFE_INTEGER;let l=s.get(t);if(!l){const o=n.no?a("Görev {n}",{n:t}):a("Diğer"),r=n.grup,d=`${Hn} ${t}`;l={anahtar:o,ad:r&&n.no&&r.startsWith(`${d} `)?`${o}${r.slice(d.length)}`:o,dersler:[]},s.set(t,l)}l.dersler.push(n)}return[...s.entries()].sort(([n],[t])=>n-t).map(([,n])=>n)}function Gn(i){const s=new Map,n=[];for(const t of i){const l=t.ekip?.trim();l?s.set(l,[...s.get(l)??[],t]):n.push(t)}return[...[...s.entries()].sort(([t],[l])=>vi(t,l)).map(([t,l])=>({anahtar:`e:${t}`,ad:t,ekip:t,uyeler:l})),...n.sort((t,l)=>vi(Ge(t),Ge(l))).map(t=>({anahtar:`o:${t.userId}`,ad:Ge(t),ekip:null,uyeler:[t]}))]}const La=i=>i.toplam>0?i.isaretler_sayisi/i.toplam:1;function ti(i,s,n,t){const l=new Set(i.uyeler.map(d=>d.userId)),o=n.filter(d=>d.yol===s&&l.has(d.userId)).sort((d,u)=>u.bitti_at.localeCompare(d.bitti_at));if(o.length){const d=o.reduce((u,m)=>La(m)>La(u)?m:u);return{durum:La(d)>=1?"bitti":"kismi",enIyi:d,bitisler:o}}return{durum:t.some(d=>d.yol===s&&l.has(d.userId))||i.uyeler.some(d=>d.son_ders?.yol===s)?"acildi":"yok",enIyi:null,bitisler:[]}}const Ni={bitti:()=>a("bitirdi"),kismi:()=>a("kısmen bitirdi"),acildi:()=>a("açtı, bitirmedi"),yok:()=>a("başlamadı")};function Va(i){const s=i.filter(t=>t.ekip).length,n=i.length-s;return[s?L("{n} ekip",s):"",n?L("{n} ekipsiz öğrenci",n):""].filter(Boolean).join(", ")||null}function Pn(i,s,n,t){const l=y=>n.findIndex(j=>j.yol===y),o=y=>n.find(j=>j.yol===y)?.baslik??cs(y),r=[],d=[],u=[];for(const y of i){const j=new Set(y.uyeler.map(x=>x.userId)),g=s.filter(x=>j.has(x.userId)).sort((x,b)=>b.bitti_at.localeCompare(x.bitti_at))[0];if(!g){u.push(y);continue}r.push(g.yol),g.takildik?.trim()&&d.push(y)}if(!r.length)return null;r.sort((y,j)=>l(y)-l(j));const m=r[0],h=r[r.length-1],f=[m===h?a("Başlayanların en son bitirdiği ders: {lesson}",{lesson:o(h)}):a("En ileride olan {ahead}, en geride kalan {behind} dersinde",{ahead:o(h),behind:o(m)})],k=Va(u);k&&f.push(a("{who} henüz başlamadı",{who:k}));const v=Va(t?t.map(y=>y.satir):d);return f.push(v?a("{who} takıldığını yazdı",{who:v}):a("takıldığını yazan yok")),f.join("; ")+"."}function Un({sinifId:i,kurs:s,liste:n,dersler:t,gruplar:l,satirList:o,bitisler:r,acilanlar:d=[]}){const[u,m]=c.useState(null),h=c.useRef(null),f=c.useRef(null),k=`hp-matris-detay-${s.slug}`,v=x=>`${x.satir}|${x.yol}`;c.useEffect(()=>{u&&f.current?.focus()},[u]);function y(){const x=u;m(null),x&&requestAnimationFrame(()=>{h.current?.querySelector(`button[data-hucre="${CSS.escape(v(x))}"]`)?.focus()})}if(!t.length){if(!n)return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Ders listesi yükleniyor…")});if(n.durum==="tamam"&&n.sayfaSayfa)return e.jsx("p",{className:"hp-soluk",children:M("Bu eğitimde işlenen dersler, etkinlikler ve ödevler {lessons} sekmesinde.",{lessons:e.jsx(he,{to:`?${new URLSearchParams({s:i,sekme:"dersler"})}`,children:a("Dersler")})})});const x=n.durum==="erisim-yok"?a("Bu eğitimin derslerine erişiminiz yok"):n.durum==="hata"?a("Bu eğitimin ders listesi alınamadı"):a("Bu eğitimin ders listesi yok");return e.jsx("p",{className:"hp-soluk",children:a("{reason}; öğrenciler ders bitirdikçe burada görünür.",{reason:x})})}const j=u&&o.find(x=>x.anahtar===u.satir),g=u&&t.find(x=>x.yol===u.yol);return e.jsxs("div",{className:"hp-matris",children:[e.jsx("div",{className:"hp-matris-sar",ref:h,tabIndex:0,role:"region","aria-label":a("{course} ders tablosu (yatay kaydırılabilir)",{course:s.baslik}),children:e.jsxs("table",{className:"hp-matris-tablo",children:[e.jsx("caption",{className:"hp-gizli",children:a("{course}: ekiplere göre ders bitirme durumu. Hücrede işaretlenen kontrol maddesi sayısı yazar.",{course:s.baslik})}),e.jsxs("thead",{children:[e.jsxs("tr",{children:[e.jsx("td",{className:"hp-matris-kose",rowSpan:2}),l.map(x=>e.jsx("th",{scope:"colgroup",colSpan:x.dersler.length,className:"hp-matris-grup",title:x.ad,children:x.anahtar},x.anahtar))]}),e.jsx("tr",{children:l.flatMap(x=>x.dersler.map((b,w)=>e.jsx("th",{scope:"col",className:w===0?"hp-matris-ders hp-matris-grup-bas":"hp-matris-ders",title:b.baslik,children:e.jsx("a",{href:X(b.yol),"aria-label":b.baslik,children:ri(b)})},b.yol)))})]}),e.jsx("tbody",{children:o.map(x=>e.jsxs("tr",{children:[e.jsxs("th",{scope:"row",className:"hp-matris-satir",children:[e.jsx("b",{children:x.ad}),x.ekip&&e.jsx("span",{className:"hp-soluk hp-blok",children:x.uyeler.map(Ge).join(", ")})]}),l.flatMap(b=>b.dersler.map((w,_)=>{const S=ti(x,w.yol,r,d),A=`hp-matris-hucre hp-m-${S.durum}${_===0?" hp-matris-grup-bas":""}`,D=v({satir:x.anahtar,yol:w.yol});if(!S.enIyi)return e.jsxs("td",{className:A,children:[e.jsx("span",{"aria-hidden":"true",children:S.durum==="acildi"?`○ ${ee("matrix","açtı")}`:"–"}),e.jsx("span",{className:"hp-gizli",children:Ni[S.durum]()})]},w.yol);const Z=S.enIyi,V=S.bitisler.some(z=>z.takildik?.trim()),I=S.bitisler.some(z=>z.foto),H=u&&v(u)===D,K=[`${x.ad}, ${w.baslik}: ${Ni[S.durum]()}`,a("kontrol {done}/{total}",{done:Z.isaretler_sayisi,total:Z.toplam}),V?a("takıldık notu var"):"",I?a("fotoğraf var"):""].filter(Boolean).join(", ");return e.jsx("td",{className:A,children:e.jsxs("button",{type:"button","data-hucre":D,"aria-label":a("{label}. Ayrıntıyı göster",{label:K}),"aria-expanded":!!H,"aria-controls":k,onClick:()=>m(H?null:{satir:x.anahtar,yol:w.yol}),children:[e.jsxs("span",{children:[e.jsx("span",{"aria-hidden":"true",className:"hp-m-isaret",children:S.durum==="bitti"?"✓":"◐"}),Z.isaretler_sayisi,"/",Z.toplam]}),(V||I)&&e.jsxs("span",{className:"hp-m-ek","aria-hidden":"true",children:[V&&e.jsx("i",{className:"hp-m-not"}),I&&e.jsx("i",{className:"hp-m-foto"})]})]})},w.yol)}))]},x.anahtar))})]})}),e.jsxs("p",{className:"hp-matris-anahtar hp-soluk",children:[e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-ornek hp-m-bitti","aria-hidden":"true",children:"✓"})," ",a("bitirdi")]}),e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-ornek hp-m-kismi","aria-hidden":"true",children:"◐"})," ",ee("matrix","kısmen")]}),e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-ornek hp-m-acildi","aria-hidden":"true",children:"○"})," ",ee("matrix","açtı")]}),e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-ornek","aria-hidden":"true",children:"–"})," ",a("başlamadı")]}),e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-not"})," ",a("takıldık notu")]}),e.jsxs("span",{children:[e.jsx("i",{className:"hp-m-foto"})," ",ee("matrix","fotoğraf")]})]}),e.jsx("div",{id:k,children:j&&g&&e.jsxs("section",{className:"hp-matris-detay","aria-labelledby":`${k}-baslik`,children:[e.jsxs("div",{className:"hp-matris-detay-ust",children:[e.jsxs("h4",{id:`${k}-baslik`,ref:f,tabIndex:-1,children:[j.ad," · ",e.jsx("a",{href:X(g.yol),children:g.baslik})]}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:y,children:a("Kapat")})]}),e.jsx(ms,{sinifId:i,satir:j,ders:g,bitisler:r,acilanlar:d})]})})]})}function ms({sinifId:i,satir:s,ders:n,bitisler:t,acilanlar:l}){const o=ti(s,n.yol,t,l),r=s.uyeler.filter(u=>!o.bitisler.some(m=>m.userId===u.userId)),d=u=>Ge(s.uyeler.find(m=>m.userId===u)??{ad:""});return e.jsxs(e.Fragment,{children:[e.jsx("ul",{className:"hp-matris-kayitlar",children:o.bitisler.map(u=>e.jsxs("li",{children:[e.jsxs("p",{children:[M("{name} kaydetti · kontrol {checks}",{name:e.jsx("b",{children:d(u.userId)}),checks:e.jsxs("b",{children:[u.isaretler_sayisi,"/",u.toplam]})}),e.jsxs("span",{className:"hp-soluk",children:[" · ",e.jsx("time",{dateTime:u.bitti_at,title:ye(u.bitti_at),children:me(u.bitti_at,{cumle:!1})})]})]}),u.takildik?.trim()?e.jsxs("blockquote",{className:"hp-takildik",children:[e.jsx("span",{className:"hp-soluk hp-blok",children:a("Takıldığımız yer")}),u.takildik]}):e.jsx("p",{className:"hp-soluk",children:a("Takıldığı yer yazmadı.")}),u.foto&&e.jsx(qn,{src:vn(i,u.userId,u.yol),alt:a("{name}, {lesson} dersi fotoğrafı",{name:d(u.userId),lesson:n.baslik})})]},u.userId))}),r.length>0&&s.ekip&&e.jsx("p",{className:"hp-soluk",children:a("Kaydetmeyen: {names}",{names:r.map(Ge).join(", ")})})]})}function qn({src:i,alt:s}){const[n,t]=c.useState(!1),[l,o]=c.useState(0);if(n)return e.jsxs("p",{className:"hp-hata",role:"alert",children:[a("Fotoğraf yüklenemedi.")," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{t(!1),o(l+1)},children:a("Tekrar dene")})]});const r=l?`${i}&t=${l}`:i;return e.jsx("a",{href:r,target:"_blank",rel:"noopener",className:"hp-matris-foto",children:e.jsx("img",{src:r,alt:s,loading:"lazy",decoding:"async",onError:()=>t(!0)})})}const Xn=14;function Vn(i,s,n){const t=s?.durum==="tamam"?s:null,l=!!t?.sayfaSayfa,o=(t?.dersler??[]).map(d=>({...us(d),kurs:i,sayfaSayfa:l})),r=l?[]:On(i,t?.dersler??[],n);return{kurs:i,liste:s,sayfaSayfa:l,dersler:o,matris:r,gruplar:Yn(r)}}function hs(i,s,n){const t=new Set(i.uyeler.map(l=>l.userId));return n.some(l=>l.yol===s&&t.has(l.userId))}const ks=i=>i.flatMap(s=>s.liste&&s.liste.durum!=="tamam"?[{kurs:s.kurs,durum:s.liste.durum}]:[]);function Wn(i,s,n,t){if(!i.length)return{tur:"egitim-yok"};if(i.some(d=>!d.liste))return{tur:"yukleniyor"};const l=new Set(t??[]);let o=null;for(const d of i){if(!d.dersler.length)continue;if(d.sayfaSayfa&&t===void 0)return{tur:"yukleniyor"};if(d.sayfaSayfa&&t===null)return{tur:"hata"};const u=d.dersler.map(h=>{const f=d.sayfaSayfa?0:s.filter(k=>hs(k,h.yol,n)).length;return{ders:h,biten:f,yapildi:l.has(h.yol)||s.length>0&&f*2>=s.length}}),m=u.find(h=>!h.yapildi);if(m)return{tur:"ders",ders:m.ders,biten:m.biten,ekip:s.length,islenen:u.filter(h=>h.yapildi).length,toplam:u.length};o=d.dersler[d.dersler.length-1]}const r=ks(i);return r.length||!o?{tur:"liste-yok",kurslar:r}:{tur:"bitti",son:o}}function Qn(i,s,n){const t=r=>({done:r.filter(d=>hs(d,s,n)).length,total:r.length}),l=i.filter(r=>r.ekip),o=i.filter(r=>!r.ekip);if(l.length&&o.length){const r=t(l),d=t(o);return a("Bitiren: {teamsDone} / {teams} ekip, {soloDone} / {solo} ekipsiz öğrenci",{teamsDone:r.done,teams:r.total,soloDone:d.done,solo:d.total})}return l.length?a("Bitiren ekip: {done} / {total}",t(l)):o.length?a("Bitiren öğrenci: {done} / {total}",t(o)):null}function Zn(i){return a("{who} yardım istiyor",{who:Va(i.map(s=>s.satir))??""})}const ps=i=>(i.bitisler??[]).length>0||(i.ders_oturumu??0)>0;function Jn(i,s){return i.filter(n=>!n.arsivlendi_at).map((n,t)=>({s:n,i:t,t:s[n.id]??0})).sort((n,t)=>+!!n.s.demo-+!!t.s.demo||t.t-n.t||n.i-t.i).map(({s:n})=>n)}function er(i,s,n,t=Date.now()){const l=t-Xn*864e5,o=[];for(const r of i){const d=new Set(r.uyeler.map(m=>m.userId)),u=s.filter(m=>d.has(m.userId)).sort((m,h)=>h.bitti_at.localeCompare(m.bitti_at))[0];!u?.takildik?.trim()||new Date(u.bitti_at).getTime()<l||o.push({satir:r,bitis:u,ders:n.find(m=>m.yol===u.yol)??null})}return o.sort((r,d)=>d.bitis.bitti_at.localeCompare(r.bitis.bitti_at))}const Xe=i=>i.baslik.replace(/^\d{1,2}\.\d{1,2}\s*/,"").trim()||i.baslik,sa=i=>i.yer??(i.no?a("Görev {task} · Ders {lesson}",{task:i.no[0],lesson:i.no[1]}):null),Ka=i=>[sa(i),Xe(i)].filter(Boolean).join(" · ");function ar(i){switch(i.durum){case"bitti":return{isaret:"✓",metin:a("Bitti"),uzun:a("bitirdi")};case"kismi":{const s={done:i.enIyi?.isaretler_sayisi??0,total:i.enIyi?.toplam??0};return{isaret:"◐",metin:`${s.done}/${s.total}`,uzun:a("kısmen bitirdi, kontrol {done}/{total}",s)}}case"acildi":return{isaret:"○",metin:a("Açtı"),uzun:a("açtı, bitirmedi")};default:return{isaret:"–",metin:a("Başlamadı"),uzun:a("başlamadı")}}}const zi={yok:0,acildi:1,kismi:2,bitti:3};function ir(i,s,n,t,l){const o=new Map(l.map((r,d)=>[r.satir.anahtar,{y:r,i:d}]));return i.map((r,d)=>({satir:r,hucre:ti(r,s,n,t),yardim:o.get(r.anahtar)?.y??null,i:d})).sort((r,d)=>{const u=o.get(r.satir.anahtar)?.i??1/0,m=o.get(d.satir.anahtar)?.i??1/0;return u!==m?u-m:zi[r.hucre.durum]-zi[d.hucre.durum]||r.i-d.i}).map(({satir:r,hucre:d,yardim:u})=>({satir:r,hucre:d,yardim:u}))}function fs(i,s,n=Date.now()){const t=i.bitisler??[],l=Gn(i.ogrenciler),o=i.kurslar.map(u=>Vn(u,s.listeler[u.yol],t)),r=new Set,d=o.flatMap(u=>u.matris).filter(u=>!r.has(u.yol)&&!!r.add(u.yol));return{bitisler:t,ekipler:l,kurslar:o,dersler:d,siradaki:Wn(o,l,t,i.ders_oturumu===0?[]:s.islenen),eksik:ks(o),yardim:er(l,t,d,n),ilk:!ps(i)}}function Wa(i,s=120){const n=i.replace(/\s+/g," ").trim();if(n.length<=s)return n;const t=n.slice(0,s),l=t.lastIndexOf(" ");return`${(l>s*.6?t.slice(0,l):t).replace(/[.,;:!?-]+$/,"")}…`}const ys=4,ba={L:1,M:0,Q:3,H:2},sr=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],Oa=1335,Ha=7973,nr=21522;function $e(i){let s=0;for(;i!==0;)s+=1,i>>>=1;return s}function rr(i){let s=i<<10;for(;$e(s)-$e(Oa)>=0;)s^=Oa<<$e(s)-$e(Oa);return(i<<10|s)^nr}function tr(i){let s=i<<12;for(;$e(s)-$e(Ha)>=0;)s^=Ha<<$e(s)-$e(Ha);return i<<12|s}function lr(i){switch(i){case 0:return(s,n)=>(s+n)%2===0;case 1:return s=>s%2===0;case 2:return(s,n)=>n%3===0;case 3:return(s,n)=>(s+n)%3===0;case 4:return(s,n)=>(Math.floor(s/2)+Math.floor(n/3))%2===0;case 5:return(s,n)=>s*n%2+s*n%3===0;case 6:return(s,n)=>(s*n%2+s*n%3)%2===0;case 7:return(s,n)=>(s*n%3+(s+n)%2)%2===0;default:throw new Error(`bad mask pattern: ${i}`)}}const _e=new Array(256),gs=new Array(256);for(let i=0;i<8;i+=1)_e[i]=1<<i;for(let i=8;i<256;i+=1)_e[i]=_e[i-4]^_e[i-5]^_e[i-6]^_e[i-8];for(let i=0;i<255;i+=1)gs[_e[i]]=i;const ia=i=>gs[i],Qa=i=>{for(;i<0;)i+=255;for(;i>=256;)i-=255;return _e[i]};function na(i,s){let n=0;for(;n<i.length&&i[n]===0;)n+=1;const t=new Array(i.length-n+s).fill(0);for(let l=0;l<i.length-n;l+=1)t[l]=i[l+n];return{at:l=>t[l],length:t.length,multiply(l){const o=new Array(this.length+l.length-1).fill(0);for(let r=0;r<this.length;r+=1)for(let d=0;d<l.length;d+=1)o[r+d]^=Qa(ia(this.at(r))+ia(l.at(d)));return na(o,0)},mod(l){if(this.length-l.length<0)return this;const o=ia(this.at(0))-ia(l.at(0)),r=t.slice();for(let d=0;d<l.length;d+=1)r[d]^=Qa(ia(l.at(d))+o);return na(r,0).mod(l)}}}function or(i){let s=na([1],0);for(let n=0;n<i;n+=1)s=s.multiply(na([1,Qa(n)],0));return s}const dr=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];function cr(i,s){const n=s===ba.L?0:s===ba.M?1:s===ba.Q?2:3;return dr[(i-1)*4+n]}function js(i,s){const n=cr(i,s),t=[];for(let l=0;l<n.length/3;l+=1){const o=n[l*3],r=n[l*3+1],d=n[l*3+2];for(let u=0;u<o;u+=1)t.push({totalCount:r,dataCount:d})}return t}function xs(){const i=[];let s=0;return{buffer:i,get length(){return s},putBit(n){const t=Math.floor(s/8);i.length<=t&&i.push(0),n&&(i[t]|=128>>>s%8),s+=1},put(n,t){for(let l=0;l<t;l+=1)this.putBit((n>>>t-l-1&1)===1)}}}function bs(i){return i<10?8:16}function ur(i,s){let n=0;for(let l=0;l<s;l+=1)for(let o=0;o<s;o+=1){let r=0;const d=i(l,o);for(let u=-1;u<=1;u+=1)if(!(l+u<0||s<=l+u))for(let m=-1;m<=1;m+=1)o+m<0||s<=o+m||u===0&&m===0||d===i(l+u,o+m)&&(r+=1);r>5&&(n+=3+r-5)}for(let l=0;l<s-1;l+=1)for(let o=0;o<s-1;o+=1){let r=0;i(l,o)&&(r+=1),i(l+1,o)&&(r+=1),i(l,o+1)&&(r+=1),i(l+1,o+1)&&(r+=1),(r===0||r===4)&&(n+=3)}for(let l=0;l<s;l+=1)for(let o=0;o<s-6;o+=1)i(l,o)&&!i(l,o+1)&&i(l,o+2)&&i(l,o+3)&&i(l,o+4)&&!i(l,o+5)&&i(l,o+6)&&(n+=40);for(let l=0;l<s;l+=1)for(let o=0;o<s-6;o+=1)i(o,l)&&!i(o+1,l)&&i(o+2,l)&&i(o+3,l)&&i(o+4,l)&&!i(o+5,l)&&i(o+6,l)&&(n+=40);let t=0;for(let l=0;l<s;l+=1)for(let o=0;o<s;o+=1)i(o,l)&&(t+=1);return n+=Math.abs(100*t/s/s-50)/5*10,n}function mr(i,{level:s="M"}={}){const n=[];for(let m=0;m<i.length;m+=1)n.push(i.charCodeAt(m)&255);const t=ba[s];let l=1;for(;l<40;l+=1){const m=xs();m.put(ys,4),m.put(n.length,bs(l));for(const f of n)m.put(f,8);const h=js(l,t).reduce((f,k)=>f+k.dataCount,0);if(m.length<=h*8)break}if(l>=40)throw new Error("data too long for a QR code");const o=l*4+17,r=hr(l,t,n);let d=null;for(let m=0;m<8;m+=1){const h=kr(l,o,t,m,r),k=ur((v,y)=>h[v][y],o);(!d||k<d.score)&&(d={score:k,modules:h})}const u=d.modules.map(m=>m.map(h=>h?"1":"0").join(""));return{size:o,rows:u}}function hr(i,s,n){const t=js(i,s),l=xs();l.put(ys,4),l.put(n.length,bs(i));for(const g of n)l.put(g,8);const o=t.reduce((g,x)=>g+x.dataCount,0);for(l.length+4<=o*8&&l.put(0,4);l.length%8!==0;)l.putBit(!1);const r=236,d=17;for(;l.length<o*8;)l.put(r,8),l.length<o*8&&l.put(d,8);let u=0,m=0,h=0;const f=new Array(t.length),k=new Array(t.length);for(let g=0;g<t.length;g+=1){const x=t[g].dataCount,b=t[g].totalCount-x;m=Math.max(m,x),h=Math.max(h,b),f[g]=l.buffer.slice(u,u+x).map(A=>A&255),u+=x;const w=or(b),S=na(f[g],w.length-1).mod(w);k[g]=new Array(w.length-1);for(let A=0;A<k[g].length;A+=1){const D=A+S.length-k[g].length;k[g][A]=D>=0?S.at(D):0}}const v=t.reduce((g,x)=>g+x.totalCount,0),y=new Array(v);let j=0;for(let g=0;g<m;g+=1)for(let x=0;x<t.length;x+=1)g<f[x].length&&(y[j++]=f[x][g]);for(let g=0;g<h;g+=1)for(let x=0;x<t.length;x+=1)g<k[x].length&&(y[j++]=k[x][g]);return y}function kr(i,s,n,t,l){const o=Array.from({length:s},()=>new Array(s).fill(null));function r(j,g){for(let x=-1;x<=7;x+=1)if(!(j+x<=-1||s<=j+x))for(let b=-1;b<=7;b+=1){if(g+b<=-1||s<=g+b)continue;const w=0<=x&&x<=6&&(b===0||b===6)||0<=b&&b<=6&&(x===0||x===6)||2<=x&&x<=4&&2<=b&&b<=4;o[j+x][g+b]=w}}r(0,0),r(s-7,0),r(0,s-7);const d=sr[i-1];for(const j of d)for(const g of d)if(o[j][g]===null)for(let x=-2;x<=2;x+=1)for(let b=-2;b<=2;b+=1)o[j+x][g+b]=x===-2||x===2||b===-2||b===2||x===0&&b===0;for(let j=8;j<s-8;j+=1)o[j][6]===null&&(o[j][6]=j%2===0);for(let j=8;j<s-8;j+=1)o[6][j]===null&&(o[6][j]=j%2===0);if(i>=7){const j=tr(i);for(let g=0;g<18;g+=1){const x=(j>>g&1)===1;o[Math.floor(g/3)][g%3+s-8-3]=x,o[g%3+s-8-3][Math.floor(g/3)]=x}}const u=n<<3|t,m=rr(u);for(let j=0;j<15;j+=1){const g=(m>>j&1)===1;j<6?o[j][8]=g:j<8?o[j+1][8]=g:o[s-15+j][8]=g}for(let j=0;j<15;j+=1){const g=(m>>j&1)===1;j<8?o[8][s-j-1]=g:j<9?o[8][15-j-1+1]=g:o[8][15-j-1]=g}o[s-8][8]=!0;const h=lr(t);let f=-1,k=s-1,v=7,y=0;for(let j=s-1;j>0;j-=2)for(j===6&&(j-=1);;){for(let g=0;g<2;g+=1)if(o[k][j-g]===null){let x=!1;y<l.length&&(x=(l[y]>>>v&1)===1),h(k,j-g)&&(x=!x),o[k][j-g]=x,v-=1,v===-1&&(y+=1,v=7)}if(k+=f,k<0||s<=k){k-=f,f=-f;break}}return o}function pr(i,s=4){const n=[];return i.forEach((t,l)=>{for(let o=0;o<t.length;o+=1)t[o]==="1"&&n.push(`M${o+s} ${l+s}h1v1h-1z`)}),{yol:n.join(""),boyut:i.length+2*s}}const _a="hp-ogrenci-gizle",Ye=new Set;let Ke=null,ra=!1;function zl(){ra=!0,Ke=!1}const Si=i=>{if(!(i.key!==_a&&i.key!==null)){Ke=null;for(const s of Ye)s()}};function fr(){if(Ke===null&&!ra)try{Ke=localStorage.getItem(_a)==="1"}catch{Ke=!1}return Ke??!1}function yr(i){if(Ke=i,!ra)try{i?localStorage.setItem(_a,"1"):localStorage.removeItem(_a)}catch{}for(const s of Ye)s()}function gr(i){return!Ye.size&&!ra&&window.addEventListener("storage",Si),Ye.add(i),()=>{Ye.delete(i),!Ye.size&&!ra&&window.removeEventListener("storage",Si)}}function da(){return{on:c.useSyncExternalStore(gr,fr,()=>!1),set:yr}}function jr(i){let s=2166136261;for(let n=0;n<i.length;n++)s=Math.imul(s^i.charCodeAt(n),16777619);return s^=s>>>16,s=Math.imul(s,2246822507),s^=s>>>13,s=Math.imul(s,3266489909),s^=s>>>16,s>>>0}function xr(i,s){const n=[...new Set(s)].map(t=>({id:t,h:jr(`${i}:${t}`)})).sort((t,l)=>t.h-l.h||(t.id<l.id?-1:t.id>l.id?1:0));return new Map(n.map((t,l)=>[t.id,l+1]))}const vs=i=>(s,n)=>(i.get(s.userId)??Number.MAX_SAFE_INTEGER)-(i.get(n.userId)??Number.MAX_SAFE_INTEGER);function Ns(i,s){return n=>{if(!s)return n.ad||a("Adsız");const t=i?.get(n.userId);return t?a("Öğrenci {n}",{n:t}):a("Öğrenci")}}const zs=c.createContext(null);function br({positions:i,children:s}){return e.jsx(zs.Provider,{value:i,children:s})}function li(){const{on:i}=da(),s=c.useContext(zs);return c.useMemo(()=>Ns(s,i),[s,i])}function vr(i,s,n){const t=vs(s),l=i.map(o=>({...o,ad:o.ekip||!o.uyeler[0]?o.ad:n(o.uyeler[0]),uyeler:[...o.uyeler].sort(t).map(r=>({...r,ad:n(r)}))}));return[...l.filter(o=>o.ekip),...l.filter(o=>!o.ekip).sort((o,r)=>t(o.uyeler[0]??{userId:""},r.uyeler[0]??{userId:""}))]}const wi=i=>({...i,takildik:i.takildik?.trim()?a("Öğrenci bilgileri gizliyken görünmez."):i.takildik,foto:!1});function Nr(){const{on:i,set:s}=da();return e.jsxs("div",{className:"hp-anahtar hp-gizle-anahtar",children:[e.jsxs("button",{type:"button",role:"switch","aria-checked":i,onClick:()=>s(!i),children:[e.jsx("span",{className:"hp-anahtar-iz","aria-hidden":"true"}),e.jsx("span",{children:a("Öğrenci bilgilerini gizle")}),e.jsx("b",{children:i?ee("switch","Açık"):a("Kapalı")})]}),i&&e.jsx("p",{className:"hp-soluk",children:a("Öğrenci adları, notları ve fotoğrafları gizli.")})]})}function Za(i,s,n,t=a("Kopyalanamadı; elle seçip kopyalayın: {text}",{text:i})){const l=()=>{const o=document.createElement("textarea");o.value=i,o.setAttribute("readonly",""),o.className="ph-no-capture",o.style.position="fixed",o.style.opacity="0",document.body.appendChild(o),o.select();let r=!1;try{r=document.execCommand("copy")}catch{}o.remove(),s(r?n:t)};navigator.clipboard?.writeText?navigator.clipboard.writeText(i).then(()=>s(n),l):l()}const Ja=(i,s)=>i.ekip||!i.uyeler[0]?i.ad:s(i.uyeler[0]),$a=({className:i=""})=>e.jsx("span",{className:`hp-not-gizli hp-soluk ${i}`.trim(),children:a("Not gizli")});function Da({ders:i,ikincil:s=!1,metin:n=a("Dersi aç")}){return e.jsxs("a",{className:s?"hp-dugme hp-dugme-ikincil":"hp-dugme",href:X(i.yol),target:"_blank",rel:"noopener",children:[n," ",e.jsx("span",{"aria-hidden":"true",children:"↗"}),e.jsxs("span",{className:"hp-gizli",children:[" ",a("(yeni sekmede açılır)")]})]})}function Ss({ders:i}){const s=sa(i);return e.jsxs("span",{className:"hp-ders-baslik",children:[s&&e.jsx("span",{className:"hp-ders-yer",children:s}),e.jsx("b",{children:Xe(i)})]})}function zr({hucre:i}){const s=ar(i);return e.jsxs("span",{className:`hp-durum hp-durum-${i.durum}`,children:[e.jsx("span",{"aria-hidden":"true",children:s.isaret})," ",s.metin,i.durum==="kismi"&&e.jsx("span",{className:"hp-gizli",children:a(" kontrol maddesi")})]})}function ws({liste:i,ac:s,baslik:n=a("Yardım isteyen ekipler"),kompakt:t=!1}){const{on:l}=da(),o=li();return i.length?e.jsxs("section",{className:"hp-yardim","aria-labelledby":"hp-yardim-baslik",children:[e.jsxs("h2",{id:"hp-yardim-baslik",children:[e.jsx("span",{className:"hp-yardim-isaret","aria-hidden":"true",children:"!"})," ",n," ",e.jsx("span",{className:"hp-sayi",children:i.length})]}),l&&!t&&e.jsx("p",{className:"hp-soluk",children:a('Öğrenci bilgileri gizli; sınıf sayfasındaki "Öğrenci bilgilerini gizle" ayarından açabilirsiniz.')}),e.jsx("ul",{children:i.map(r=>{const d=r.ders?Ka(r.ders):a("Bir ders"),u=t?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"hp-yardim-ust",children:[e.jsx("b",{children:Ja(r.satir,o)}),e.jsxs("span",{className:"hp-yardim-ders",children:[" · ",r.ders?`${ri(r.ders)} ${Xe(r.ders)}`:d]})]}),l?e.jsx($a,{className:"hp-yardim-tek"}):e.jsxs("span",{className:"hp-yardim-tek",children:["“",(r.bitis.takildik??"").replace(/\s+/g," ").trim(),"”"]}),e.jsx("span",{className:"hp-yardim-ok","aria-hidden":"true",children:"›"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"hp-yardim-ust",children:[e.jsx("b",{children:Ja(r.satir,o)}),r.sinif?.ad&&e.jsxs("span",{className:"hp-soluk",children:[" · ",r.sinif.ad]}),e.jsxs("span",{className:"hp-soluk",children:[" · ",e.jsx("time",{dateTime:r.bitis.bitti_at,title:ye(r.bitis.bitti_at),children:me(r.bitis.bitti_at,{cumle:!1})})]})]}),l?e.jsx($a,{}):e.jsx("q",{className:"hp-yardim-not",children:Wa(r.bitis.takildik??"")}),e.jsx("span",{className:"hp-yardim-ders hp-blok",children:d})]}),m=`${r.sinif?.id??""}|${r.satir.anahtar}`;return e.jsx("li",{children:s?e.jsx("button",{type:"button",className:t?"hp-yardim-oge hp-yardim-kompakt":"hp-yardim-oge",onClick:()=>s(r),children:u}):e.jsx(J,{className:"hp-yardim-oge",to:Te(r.sinif?.id??"",{...r.ders?{ders:r.ders.yol}:{},ekip:r.satir.anahtar}),children:u})},m)})})]}):null}function Sr({sinifId:i,ders:s,kartlar:n,bitisler:t,acilanlar:l,acik:o,setAcik:r,ekipDuzen:d}){const{on:u}=da(),m=li();return e.jsx("ul",{className:"hp-ekip-kartlar",children:n.map(h=>{const{satir:f,hucre:k}=h,v=`hp-ekip-${i}-${f.anahtar}`.replace(/[^\w-]/g,"_"),y=o===f.anahtar,j=k.bitisler.find(b=>b.takildik?.trim())?.takildik,g=!j&&h.yardim?h.yardim:null,x=!f.ekip;return e.jsxs("li",{className:`hp-ekip-kart hp-ekip-d-${k.durum}${h.yardim?" hp-ekip-yardim":""}`,"data-ekip":f.anahtar,children:[e.jsxs("button",{type:"button",className:"hp-ekip-kart-bas","aria-expanded":y,"aria-controls":v,onClick:()=>r(y?null:f.anahtar),children:[e.jsxs("span",{className:"hp-ekip-kart-ust",children:[e.jsx("b",{className:"hp-ekip-ad",children:Ja(f,m)}),e.jsx(zr,{hucre:k})]}),f.ekip&&e.jsx("span",{className:"hp-soluk hp-blok",children:f.uyeler.map(m).join(", ")}),h.yardim&&e.jsxs("span",{className:"hp-yardim-rozet",children:[e.jsx("span",{"aria-hidden":"true",children:"!"})," ",a("Yardım istiyor")]}),j&&(u?e.jsx($a,{}):e.jsx("q",{className:"hp-ekip-not",children:Wa(j,90)})),g&&e.jsxs("span",{className:"hp-ekip-not-baska",children:[u?e.jsx($a,{}):e.jsx("q",{className:"hp-ekip-not",children:Wa(g.bitis.takildik??"",90)}),g.ders&&e.jsx("span",{className:"hp-soluk",children:Ka(g.ders)})]}),e.jsx("span",{className:"hp-ekip-ac","aria-hidden":"true",children:y?a("Gizle"):a("Ayrıntı")})]}),x&&e.jsx("div",{className:"hp-ekip-yok",children:d(h)}),y&&e.jsx("div",{id:v,className:"hp-ekip-detay",children:k.bitisler.length?e.jsx(ms,{sinifId:i,satir:f,ders:s,bitisler:t,acilanlar:l}):e.jsx("p",{className:"hp-soluk",children:k.durum==="acildi"?a('Dersi açtılar ama "Dersi bitirdik" demediler.'):a("Bu ders için henüz kayıt yok.")})})]},f.anahtar)})})}const Es=i=>`hp-ilk-ders:${i}`;function wr(i){try{return localStorage.getItem(Es(i))}catch{return null}}function Ei(i,s){try{localStorage.setItem(Es(i),s)}catch{}}function Er(i,s){const[n,t]=c.useState(()=>wr(i));return c.useEffect(()=>{s===!1&&n!=="goruldu"&&(Ei(i,"goruldu"),t("goruldu"))},[i,s,n]),{goster:s===!1||s===!0&&n==="goruldu",gizle:()=>{Ei(i,"gizlendi"),t("gizlendi")}}}const _s=i=>i.katilim_acik&&!i.arsivlendi_at&&!i.demo;function _r(i){const s=i&&_s(i)?i.katilim_kodu:null,n=s?ai(s):null,t=X(s?`/egitim/katil/?kod=${encodeURIComponent(s)}`:"/egitim/katil/"),l=`${location.origin}/shop/hesap?kayit=1&returnTo=${encodeURIComponent(t)}`;return[i?a("Merhaba, {class} derslerinde Probot Studio kullanacağız.",{class:i.ad}):a("Merhaba, robotik derslerimizde Probot Studio kullanacağız."),a("Lütfen dersten önce çocuğunuz için şu bağlantıdan bir hesap açın (hesap türü: Öğrenci) ve e-postaya gelen doğrulama bağlantısına tıklayın; e-postası doğrulanmamış hesapla giriş yapılamıyor: {link}",{link:l}),a("18 yaşından küçükler kayıtta bir veli e-postası da yazar; bu adres hesabın kendi e-postasından farklı olmalıdır."),a("Veliye gelen onay e-postası ders fotoğrafı yükleme ve eğitim asistanı içindir; sınıfa katılmak için gerekmez."),n?a("Hesap açılınca sınıfa şu bağlantıyla katılabilir: {link}",{link:n}):a("Sınıfın katılım kodunu derste paylaşacağım.")].join(" ")}function $s({ogrenciSayisi:i,ilkDers:s,kodYansit:n,tamamlamaVar:t,gizle:l,egitimYok:o,sinif:r}){const[d,u]=c.useState(""),m=_r(r);return e.jsxs("section",{className:"hp-ilk","aria-labelledby":"hp-ilk-baslik",children:[e.jsxs("div",{className:"hp-ilk-ust",children:[e.jsx("h2",{id:"hp-ilk-baslik",children:a("3 adımda ilk ders")}),t&&l&&e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:l,children:a("Bu kartı gizle")})]}),t&&e.jsxs("p",{className:"hp-bilgi",role:"status",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("İlk ders kaydı geldi. Bu kartı artık gizleyebilirsiniz.")]}),e.jsxs("div",{className:"hp-adim-sifir",children:[e.jsx("span",{className:"hp-adim-no","aria-hidden":"true",children:"0"}),e.jsxs("div",{children:[e.jsx("b",{children:a("Dersten önce: öğrenci hesapları")}),e.jsx("p",{className:"hp-soluk",children:a("Her öğrencinin e-postası doğrulanmış kendi hesabı olmalı; doğrulanmamış hesapla giriş yapılamaz. 18 yaşından küçükler kayıtta bir veli e-postası da yazar. Hesap açmayı derse bırakmayın: aşağıdaki mesajı velilere dersten önce gönderebilirsiniz. E-postası olmayan öğrenciler derste katılım koduyla kullanıcı adı alıp kayıt olabilir.")}),e.jsxs("p",{className:"hp-kopya-satir",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>Za(m,u,a("Mesaj kopyalandı."),a('Kopyalanamadı; "Mesajı göster"e basıp metni seçerek kopyalayın.')),children:a("Veli mesajını kopyala")}),e.jsx("span",{className:"hp-bilgi",role:"status",children:d})]}),e.jsxs("details",{className:"hp-veli-mesaj",children:[e.jsx("summary",{children:a("Mesajı göster")}),e.jsx("p",{children:m})]})]})]}),e.jsxs("ol",{className:"hp-adimlar",children:[e.jsxs("li",{className:i>0?"hp-adim-tamam":"",children:[e.jsx("span",{className:"hp-adim-no","aria-hidden":"true",children:i>0?"✓":"1"}),e.jsxs("div",{children:[e.jsx("b",{children:a("Öğrencilere katılım kodunu verin")}),e.jsx("p",{className:"hp-soluk",children:i>0?L("{n} öğrenci katıldı. Gelmeyenler için kodu yeniden yansıtabilirsiniz.",i):a("Öğrenciler katılım sayfasında kodu yazar ya da QR kodu okutur. Hesabı olmayan orada e-postasız kayıt olur.")}),e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:n,children:a("Kodu tahtaya yansıt")})]})]}),e.jsxs("li",{children:[e.jsx("span",{className:"hp-adim-no","aria-hidden":"true",children:"2"}),e.jsxs("div",{children:[e.jsx("b",{children:a("Robotu kutudan çıkarın ve pili şarj edin")}),e.jsx("p",{className:"hp-soluk",children:a("Pil dolarken öğrencileri ekiplere ayırabilirsiniz; ekip adlarını Öğrenciler sekmesindeki listeden verirsiniz.")})]})]}),e.jsxs("li",{children:[e.jsx("span",{className:"hp-adim-no","aria-hidden":"true",children:"3"}),e.jsxs("div",{children:[e.jsx("b",{children:s&&sa(s)?a("{place}'i açın",{place:sa(s)??""}):a("İlk dersi açın")}),s?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"hp-soluk",children:[Xe(s),". ",s.sayfaSayfa?a("Dersi tahtada açıp başlatın; yoklama ve etkinlikler Dersler sekmesinde görünür."):a('Dersin sonunda ekipler "Dersi bitirdik" der; durumları burada görünür.')]}),e.jsx(Da,{ders:s})]}):o??e.jsx("p",{className:"hp-soluk",children:a("Önce sınıfa bir eğitim atayın; ilk dersi burada gösteririz.")})]})]})]})]})}function Bs({kod:i,sinifAd:s,katilimAcik:n,arsiv:t=!1,demo:l=!1,kapat:o}){const r=c.useRef(null),d=c.useRef(null),u=c.useRef(o);u.current=o;const m=ai(i),h=c.useMemo(()=>pr(mr(m,{level:"M"}).rows),[m]);c.useEffect(()=>{const v=document.activeElement instanceof HTMLElement?document.activeElement:null;r.current?.focus();const y=g=>{if(g.key==="Escape"&&(g.preventDefault(),u.current()),g.key!=="Tab"||!d.current)return;const x=[...d.current.querySelectorAll("button, a[href]")],b=x[0],w=x[x.length-1];g.shiftKey&&document.activeElement===b?(g.preventDefault(),w?.focus()):!g.shiftKey&&document.activeElement===w&&(g.preventDefault(),b?.focus())};document.addEventListener("keydown",y);const j=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",y),document.body.style.overflow=j,v?.focus()}},[]);const f=`${location.host}${X("/egitim/katil/")}`,k=l?a("Bu bir demo sınıfı: demo sınıfa katılınamaz, bu kod çalışmaz."):t?a("Sınıf arşivde, bu kod çalışmaz. Önce sınıfı arşivden çıkarın."):n?null:a('Katılım şu an kapalı, bu kod çalışmaz. Sınıf sayfasında "Yeni öğrenci katılabilsin" ayarını açın.');return Ji.createPortal(e.jsxs("div",{className:"hp-tahta ph-no-capture",role:"dialog","aria-modal":"true","aria-labelledby":"hp-tahta-baslik",ref:d,children:[e.jsxs("div",{className:"hp-tahta-ust",children:[e.jsx("p",{id:"hp-tahta-baslik",children:a("{class} · katılım kodu",{class:s})}),e.jsxs("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",ref:r,onClick:()=>u.current(),children:[a("Kapat")," ",e.jsx("span",{className:"hp-soluk","aria-hidden":"true",children:"(Esc)"})]})]}),k&&e.jsx("p",{className:"hp-tahta-uyari",role:"status",children:k}),e.jsx("p",{className:"hp-tahta-kod","aria-label":a("Katılım kodu: {code}",{code:i.split("").join(" ")}),children:i}),e.jsxs("div",{className:"hp-tahta-alt",children:[e.jsxs("div",{className:"hp-tahta-yonerge",children:[e.jsxs("p",{children:[e.jsx("b",{children:"1."})," ",a("Şu adrese git:")]}),e.jsx("p",{className:"hp-tahta-link",children:f}),e.jsxs("p",{children:[e.jsx("b",{children:"2."})," ",a("Tahtadaki kodu yaz.")]}),e.jsxs("p",{children:[e.jsx("b",{children:"3."})," ",a("Hesabın yoksa orada aç, e-posta gerekmez. Hesabın varsa giriş yapıp katıl.")]}),e.jsx("p",{className:"hp-tahta-qr-not",children:a("Ya da QR kodu okut: kod kendiliğinden yazılır.")})]}),e.jsxs("svg",{className:"hp-tahta-qr",viewBox:`0 0 ${h.boyut} ${h.boyut}`,role:"img","aria-label":a("Katılım bağlantısının QR kodu"),shapeRendering:"crispEdges",children:[e.jsx("rect",{width:h.boyut,height:h.boyut,fill:"#fff"}),e.jsx("path",{d:h.yol,fill:"#241a12"})]})]})]}),document.body)}function $r(){const[i,s]=c.useState(!1);return{acik:i,ac:()=>s(!0),kapat:()=>s(!1)}}function Br(i,s,n){const[t,l]=c.useState({}),[o,r]=c.useState(void 0),[d,u]=c.useState(0),m=s?s.map(h=>h.yol).join("|"):null;return c.useEffect(()=>{let h=!0;return T.takip(i).then(f=>{h&&r(f.oturumlar.map(k=>k.yol))},()=>{h&&r(null)}),()=>{h=!1}},[i,n,d]),c.useEffect(()=>{if(m===null)return;let h=!0;for(const f of m?m.split("|"):[])es(f).then(k=>{h&&l(v=>({...v,[f]:k}))});return()=>{h=!1}},[m,d]),{kaynak:{listeler:t,islenen:o},yenile:()=>{l(h=>Object.fromEntries(Object.entries(h).filter(([,f])=>f.durum!=="hata"))),r(h=>h===null?void 0:h),u(h=>h+1)}}}function Ba({eksik:i,oturumHata:s=!1,yenile:n}){const t=c.useRef(null),l=c.useRef(!1),o=i.length>0||s;c.useEffect(()=>{o||!l.current||(l.current=!1,document.activeElement===document.body&&t.current?.focus())},[o]);const r=e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{l.current=!0,n()},children:a("Tekrar dene")});return e.jsxs("div",{ref:t,tabIndex:-1,children:[s&&e.jsxs("p",{className:"hp-soluk",children:[a("Sınıfın işlediği dersler alınamadı.")," ",r]}),i.map(({kurs:d,durum:u})=>e.jsx("p",{className:"hp-soluk",children:u==="erisim-yok"?M("{course} derslerine erişiminiz yok. {activate} ya da {contact}.",{course:e.jsx("b",{children:d.baslik}),activate:e.jsx(J,{to:ge.etkinlestir,children:a("Kit kodunu etkinleştirin")}),contact:e.jsx("a",{href:X("/iletisim/"),children:a("bize yazın")})}):u==="hata"?e.jsxs(e.Fragment,{children:[M("{course}: ders listesi alınamadı.",{course:e.jsx("b",{children:d.baslik})})," ",r]}):e.jsxs(e.Fragment,{children:[M("{course} için ders listesi yok.",{course:e.jsx("b",{children:d.baslik})})," ",e.jsxs("a",{href:X(d.yol),target:"_blank",rel:"noopener",children:[a("Eğitimi aç"),e.jsxs("span",{className:"hp-gizli",children:[" ",a("(yeni sekmede açılır)")]})]})]})},d.slug))]})}function Cr({dersler:i,siradaki:s}){const[n,t]=c.useState("");if(i.length<2)return null;const l=[...new Set(i.map(d=>d.kurs.slug))],o=new Map;for(const d of i){const u=[l.length>1?d.kurs.baslik:"",d.grup??(l.length>1?"":d.kurs.baslik)].filter(Boolean).join(" · ");o.set(u,[...o.get(u)??[],d])}const r=i.find(d=>d.yol===n);return e.jsxs("div",{className:"hp-baska-ders",children:[e.jsxs("label",{className:"hp-ders-sec",children:[e.jsx("span",{children:a("Başka ders")}),e.jsxs("select",{value:n,onChange:d=>t(d.target.value),children:[e.jsx("option",{value:"",children:a("Ders seçin")}),[...o].map(([d,u])=>e.jsx("optgroup",{label:d,children:u.map(m=>{const h=m.no?m.baslik:Ka(m);return e.jsx("option",{value:m.yol,children:m.yol===s?a("{lesson} (sıradaki)",{lesson:h}):h},m.yol)})},d))]})]}),r&&e.jsx(Da,{ders:r,ikincil:!0,metin:a("Seçilen dersi aç")})]})}function Ca({ogretmen:i=!1}){return e.jsx("p",{className:"hp-soluk hp-kit-link",children:i?M("Kit kodunuz mu var? {link}",{link:e.jsx(J,{to:ge.etkinlestir,children:a("Etkinleştirin")})}):M("Kit kutusundaki kart kodu sınıf kodu değildir; öğretmen ya da mentörsen {link} sayfasında kullan.",{link:e.jsx(J,{to:ge.etkinlestir,children:a("Kit etkinleştir")})})})}const _i="İşlem tamamlanamadı. Tekrar dene.";function Ir(i){return i instanceof je?i.status===404?i.message===_i?a("Bu kod geçersiz, iptal edilmiş ya da kullanım hakkı dolmuş. Karttaki 12 karakteri (XXXX-XXXX-XXXX) tekrar kontrol edin; sorun sürerse bize yazın."):a(i.message):i.status===429?a("Çok fazla deneme yapıldı. Birkaç dakika bekleyip tekrar deneyin."):i.status===409&&i.message===_i?a("Sınıf sınırına ulaştınız; yeni sınıf açılamadı. Eski bir sınıfınızı arşivleyip tekrar deneyin."):a(i.message):a("Bağlantı kurulamadı. İnternet bağlantınızı kontrol edip tekrar deneyin.")}function Ar({rol:i,rolYenile:s}){const n=as(),[t]=Se(),[l,o]=c.useState(()=>ji(t.get("kod")||"")),[r,d]=c.useState(()=>t.has("kod")),[u,m]=c.useState(""),[h,f]=c.useState(!1),k=c.useRef(null),v=[...new Set([...l].filter(b=>!Nn.includes(b)))],y=is(l),j=r&&l.length===le&&[...l].every(b=>ss.includes(b)),g=i.durum==="tamam"&&i.veri.sinif_acabilir;async function x(b){if(b.preventDefault(),!!y){m(""),f(!0);try{const w=await T.kitKullan(Xa(l));la("kit_kod_etkinlestirildi",{kurs:w.kurs,yeni_sinif:w.yeniSinif}),await s();const _=w.yeniSinif?a("Kit kodunuz etkinleştirildi. Öğretmen hesabınız onaylandı ve sizin için bu sınıf açıldı. Katılım kodunu öğrencilerinize verebilirsiniz."):a("Kit kodunuz etkinleştirildi. Eğitim zaten bu sınıfınıza atanmış; aynı sınıfı kullanmaya devam edebilirsiniz.");n(Te(w.sinifId),{state:{bilgi:_}})}catch(w){m(Ir(w)),f(!1),k.current?.focus()}}}return e.jsxs("div",{className:"hp-etkinlestir",children:[e.jsx("p",{className:"hp-aciklama",children:a("Kit kutusundaki karttaki kodu girin. Kod hesabınızı öğretmen / mentör olarak onaylar, kitin eğitimini açar ve sizin için bir sınıf oluşturur. Sonra öğrencilerinize sınıfın katılım kodunu verirsiniz.")}),g&&e.jsx("p",{className:"hp-soluk",children:a("Öğretmen hesabınız zaten onaylı. Kodu yine de etkinleştirebilirsiniz: eğitim sınıflarınızdan birine atanır.")}),e.jsxs("form",{className:"hp-satir-form",onSubmit:x,noValidate:!0,children:[e.jsx("label",{htmlFor:"hp-kit-kod",children:a("Kit kodu")}),e.jsxs("div",{children:[e.jsx("input",{id:"hp-kit-kod",ref:k,value:Xa(l),onChange:b=>{o(ji(b.target.value)),m(""),d(!1)},onBlur:()=>d(!0),onKeyDown:b=>{b.key==="Enter"&&d(!0)},placeholder:"XXXX-XXXX-XXXX",autoComplete:"off",autoCapitalize:"characters",spellCheck:!1,className:"hp-mono","aria-describedby":j?"hp-kit-ipucu hp-kod-yonlendir":"hp-kit-ipucu","aria-invalid":u||v.length?!0:void 0,maxLength:19,required:!0}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:h||!y,children:h?a("Etkinleştiriliyor…"):a("Etkinleştir")})]}),e.jsx("p",{className:"hp-soluk",id:"hp-kit-ipucu",children:v.length?a("Kodda {chars} karakteri olamaz. Kodlarda O, I, 0 ve 1 kullanılmaz; kartı tekrar kontrol edin.",{chars:v.join(", ")}):l.length>Ae?L("Kod {length} karakterdir (XXXX-XXXX-XXXX); {n} fazla karakter var.",l.length-Ae,{length:Ae}):`${a("{length} karakter, XXXX-XXXX-XXXX biçiminde; tireleri yazmanıza gerek yok.",{length:Ae})}${l.length&&l.length<Ae?` ${L("{n} karakter kaldı.",Ae-l.length)}`:""}`}),j&&e.jsx("p",{className:"hp-uyari hp-kod-yonlendir",id:"hp-kod-yonlendir",children:M("Bu {classLength} karakter bir sınıf katılım koduysa (öğretmenin tahtaya yansıttığı kod) burası değil, {link} sayfası doğru yer. Kit kodu {length} karakterdir.",{link:e.jsx(J,{to:`${ge.katil}?kod=${l}`,children:a("Sınıfa katıl")})},{classLength:le,length:Ae})})]}),u&&e.jsx("p",{className:"hp-hata",role:"alert",children:u}),e.jsx("p",{className:"hp-soluk",children:M("Kartınız yok ya da kod çalışmıyorsa {contact}; sipariş numaranızla birlikte yardımcı oluruz.",{contact:e.jsx("a",{href:X("/iletisim/"),children:a("bize yazın")})})})]})}const $i=i=>i.replace(/\s+/g," ").trim().toLocaleLowerCase("tr"),Tr=(i,s)=>$i(i)===$i(s);function Kr(){const[i,s]=c.useState(null),n=c.useRef(null),t=c.useRef(0),l=c.useCallback(r=>new Promise(d=>{n.current?.resolve(!1),n.current={...r,resolve:d,n:++t.current},s(n.current)}),[]),o=c.useCallback(r=>{const d=n.current;n.current=null,s(null),d?.resolve(r)},[]);return c.useEffect(()=>()=>{n.current?.resolve(!1)},[]),{ask:l,dialog:i&&e.jsx(Dr,{...i,done:o},i.n)}}function oi({role:i="dialog",labelledBy:s,describedBy:n,kapat:t,children:l}){const o=c.useRef(null);return c.useEffect(()=>{const r=document.activeElement instanceof HTMLElement?document.activeElement:null,d=o.current;if(d)return d.open||d.showModal(),d.querySelector("[data-ilk-odak]")?.focus(),()=>{d.open&&d.close(),r?.isConnected&&r.focus()}},[]),e.jsx("dialog",{ref:o,className:"hp-onay-pencere",role:i,"aria-labelledby":s,"aria-describedby":n,onCancel:r=>{r.preventDefault(),t()},children:l})}function Dr({title:i,body:s,confirm:n,cancel:t=a("Vazgeç"),danger:l=!1,typeToConfirm:o,done:r}){const[d,u]=c.useState(""),m=c.useId(),h=c.useId(),f=c.useId(),k=!o||Tr(d,o.expected);function v(y){y.preventDefault(),k&&r(!0)}return e.jsx(oi,{role:"alertdialog",labelledBy:m,describedBy:h,kapat:()=>r(!1),children:e.jsxs("form",{onSubmit:v,children:[e.jsx("h2",{id:m,children:i}),e.jsx("div",{id:h,className:"hp-onay-metin",children:s}),o&&e.jsxs("p",{className:"hp-onay-alan",children:[e.jsx("label",{htmlFor:f,children:o.label}),e.jsx("input",{id:f,value:d,onChange:y=>u(y.target.value),autoComplete:"off",spellCheck:!1,"data-ilk-odak":""})]}),e.jsxs("p",{className:"hp-onay-dugmeler",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>r(!1),...l&&!o?{"data-ilk-odak":""}:{},children:t}),e.jsx("button",{type:"submit",className:l?"hp-dugme hp-dugme-tehlike":"hp-dugme",disabled:!k,...!l&&!o?{"data-ilk-odak":""}:{},children:n})]})]})})}const di=[{ad:"bugun",metin:()=>a("Bugün")},{ad:"ogrenciler",metin:()=>a("Öğrenciler")},{ad:"dersler",metin:()=>a("Dersler")},{ad:"yoklama",metin:()=>a("Yoklama")},{ad:"odevler",metin:()=>a("Ödevler")},{ad:"ayarlar",metin:()=>a("Ayarlar")}],Rr=i=>di.find(s=>s.ad===i)?.ad??"bugun",Mr=i=>di.find(s=>s.ad===i)?.metin()??"";function Fr({secili:i,rozet:s}){const[n]=Se(),{pathname:t}=Fe(),l=o=>{const r=new URLSearchParams({s:n.get("s")??""});return o!=="bugun"&&r.set("sekme",o),`${t}?${r}`};return e.jsx("nav",{className:"hp-sekmeler hp-sinif-sekmeler","aria-label":a("Sınıf bölümleri"),children:di.map(o=>e.jsxs(he,{to:l(o.ad),replace:!0,className:"hp-sekme","aria-current":o.ad===i?"page":void 0,children:[o.metin(),s?.[o.ad]]},o.ad))})}const Lr="İşlem tamamlanamadı. Tekrar dene.";function Cs(i){return!(i instanceof je)||i.status===0?{metin:a("İnternete bağlanılamadı ya da sunucu yanıt vermedi."),gecici:!0}:i.status===401?{metin:a("Oturumunuz kapanmış; yeniden giriş yapın."),gecici:!1}:i.status===403?{metin:a("Bu sınıf için yetkiniz yok."),gecici:!1}:i.status===429?{metin:a("Kısa sürede çok fazla istek gönderildi; bir dakika bekleyin."),gecici:!0}:i.status>=500||i.status<400?{metin:a("Sunucuda bir sorun oluştu."),gecici:!0}:i.message===Lr?{metin:a("İstek tamamlanamadı."),gecici:!0}:{metin:a(i.message),gecici:!1}}function Ce(i){const s=Cs(i);return s.gecici?a("{reason} Tekrar deneyin.",{reason:s.metin}):s.metin}async function ci(i,s){const n=i.closest('[tabindex="-1"]'),t=i.parentElement?.parentElement;await s(),requestAnimationFrame(()=>{const l=document.activeElement;if(l&&l!==document.body&&document.contains(l))return;(n&&document.contains(n)?n:t?.querySelector(".hp-sekme-ic"))?.focus({preventScroll:!0})})}function Pe({baslik:i,hata:s,retry:n}){const t=Cs(s);return e.jsxs("p",{className:"hp-hata",role:"alert",children:[i," ",t.metin,t.gecici&&e.jsxs(e.Fragment,{children:[" ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:l=>{ci(l.currentTarget,n)},children:a("Tekrar dene")})]})]})}function ui({hata:i,bilgi:s}){return e.jsxs(e.Fragment,{children:[e.jsx("div",{role:"alert",children:i&&e.jsx("p",{className:"hp-hata",children:i})}),e.jsx("div",{role:"status",children:s&&e.jsx("p",{className:"hp-bilgi",children:s})})]})}function Is({neden:i,dugme:s}){const n=c.useId();return e.jsxs("p",{className:"hp-dugme-satir",children:[s({disabled:!!i,"aria-describedby":i?n:void 0}),i&&e.jsx("span",{id:n,className:"hp-soluk",children:i})]})}const Ue=()=>e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"↗"}),e.jsxs("span",{className:"hp-gizli",children:[" ",a("(yeni sekmede açılır)")]})]}),As=(i,s)=>{const n=s instanceof je&&s.status===403;return{kurs:i,plan:null,hata:!n,erisimYok:n}};function Ve(i){const s=i.map(f=>f.yol).join("|"),n=c.useRef(i);n.current=i;const[t,l]=c.useState(null),[o,r]=c.useState(0),d=c.useRef([]),u=c.useRef(s);c.useEffect(()=>{let f=!0;return u.current!==s&&l(null),u.current=s,Promise.all(n.current.map(k=>ns(k.yol).then(v=>({kurs:k,plan:v,hata:!1}),v=>As(k,v)))).then(k=>{if(f){l(k);for(const v of d.current.splice(0))v()}}),()=>{f=!1}},[s,o]);const m=c.useMemo(()=>(t??[]).flatMap(f=>(f.plan?.dersler??[]).map(k=>({...k,kurs:f.kurs}))),[t]),h=c.useCallback(()=>new Promise(f=>{d.current.push(f),r(k=>k+1)}),[]);return{planlar:t,dersler:m,yenile:h}}const Me=i=>i.ust||(i.hafta!=null&&i.ders!=null?a("Hafta {week} · Ders {lesson}",{week:i.hafta,lesson:i.ders}):null),ca=i=>[Me(i),i.baslik].filter(Boolean).join(": "),Or=({d:i,i:s})=>{const n=Me(i);return n?e.jsx(e.Fragment,{children:n.split(" · ").map((t,l)=>e.jsx("span",{className:"hp-blok",children:t},l))}):e.jsx(e.Fragment,{children:a("Ders {n}",{n:s+1})})},ta=i=>!!i?.dersler.length,Hr=i=>!!i?.dersler.some(s=>s.odevler.length);function Yr(i,s){const n=i.map(r=>r.slug).join("|"),t=c.useRef(i);t.current=i;const[l,o]=c.useState([]);return c.useEffect(()=>{if(!s)return;let r=!0;return T.egitimler().then(({egitimler:d})=>Promise.all(d.filter(u=>!t.current.some(m=>m.slug===u.slug)).map(u=>ns(u.yol).then(m=>({kurs:u,plan:m,hata:!1}),m=>As(u,m))))).then(d=>{r&&o(d.filter(u=>ta(u.plan)))}).catch(()=>{r&&o([])}),()=>{r=!1}},[n,s]),l}function Ts({sinifId:i,planlar:s,yenile:n,sekme:t,salt:l,kendiOdev:o=!1}){const r=t==="odevler",d=r?Hr:ta,u=s.filter(y=>!y.hata&&!y.erisimYok&&!d(y.plan)),m=s.filter(y=>y.erisimYok),h=Yr(s.map(y=>y.kurs),u.length>0),f=s.filter(y=>d(y.plan)),k=h.filter(y=>d(y.plan)),v=[...f.map(y=>a("{course} (bu sınıfta)",{course:y.kurs.baslik})),...k.map(y=>y.kurs.baslik)];return e.jsxs(e.Fragment,{children:[s.filter(y=>y.hata).map(y=>e.jsxs("p",{className:"hp-uyari",children:[a("{course}: ders listesi yüklenemedi.",{course:y.kurs.baslik})," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:j=>{ci(j.currentTarget,n)},children:a("Tekrar dene")})]},y.kurs.slug)),u.length+m.length>0&&e.jsxs("div",{className:`${f.length?"hp-uyari":"hp-bos"} hp-plan-yok`,children:[m.map(y=>e.jsxs("p",{children:[e.jsxs("b",{children:[y.kurs.baslik,":"]})," ",a("Bu eğitime erişiminiz olmadığı için ders planı, hazır ödevleri ve canlı dersi burada görünmüyor.")]},y.kurs.slug)),u.map(y=>e.jsxs("p",{children:[e.jsxs("b",{children:[y.kurs.baslik,":"]})," ",ta(y.plan)?a("Bu eğitimde hazır ödev henüz yok."):a("Bu eğitimde hazır ödev ve canlı ders henüz yok.")]},y.kurs.slug)),!l&&v.length>0&&e.jsxs("p",{children:[r?a("Hazır ödev olan eğitimler: {courses}.",{courses:v.join(", ")}):a("Canlı ders olan eğitimler: {courses}.",{courses:v.join(", ")}),!l&&k.length>0&&(f.length?a(" Bu sınıfta olmayanları sınıfa atayarak kullanabilirsiniz."):k.length>1?a(" Bunlardan birini sınıfa atayarak kullanabilirsiniz."):a(" Bu eğitimi sınıfa atayarak kullanabilirsiniz."))]}),!l&&r&&o&&e.jsx("p",{children:M("Kendi ödevinizi {button} düğmesiyle yazabilirsiniz.",{button:e.jsx("b",{children:a("Ödev ver")})})}),!l&&e.jsx("p",{children:M("Yoklamayı her eğitimde {tab} sekmesinden alabilirsiniz.",{tab:e.jsx(he,{to:`?${new URLSearchParams({s:i,sekme:"yoklama"})}`,replace:!0,children:a("Yoklama")})})})]})]})}function Gr(i){const[s,n]=c.useState(null),t=c.useCallback(async()=>{try{n(await T.canli(i))}catch{}},[i]);return c.useEffect(()=>{t();const l=setInterval(()=>{document.visibilityState==="visible"&&t()},15e3);return()=>clearInterval(l)},[t]),{veri:s,yenile:t}}const Pr=9e4,Ks=(i,s=Date.now())=>!!i&&s-Date.parse(i)<Pr;function Ur({sinifId:i,canli:s,salt:n,bitti:t}){const[l,o]=c.useState(!1),[r,d]=c.useState(""),u=s?.oturum;if(!u||!u.canli)return null;const m=(s?.ogrenciler??[]).filter(f=>Ks(f.son_at)).length;async function h(){if(confirm(a("Canlı ders bitirilsin mi? Öğrencilerin ekranındaki canlı ders şeridi kapanır; yoklama kayıtları kalır."))){d(""),o(!0);try{await T.canliBitir(i),t()}catch(f){d(Ce(f))}finally{o(!1)}}}return e.jsxs("section",{className:"hp-canli","aria-label":a("Canlı ders"),role:"status",children:[e.jsxs("p",{className:"hp-canli-metin",children:[e.jsx("span",{className:"hp-canli-nokta","aria-hidden":"true"}),e.jsx("b",{children:a("Canlı:")})," ",L("{lesson}, sayfa {page}, {n} öğrenci bağlı",m,{lesson:u.baslik||a("Ders"),page:(u.sayfa??0)+1})]}),e.jsxs("div",{className:"hp-canli-dugmeler",children:[e.jsxs("a",{className:"hp-dugme hp-dugme-ikincil",href:X(`${u.yol}tahta/?sinif=${encodeURIComponent(i)}`),target:"_blank",rel:"noopener",children:[a("Tahtayı aç")," ",e.jsx(Ue,{})]}),!n&&e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",disabled:l,onClick:()=>{h()},children:l?a("Bitiriliyor…"):a("Bitir")})]}),r&&e.jsx("p",{className:"hp-hata",role:"alert",children:r})]})}const qr={soru:()=>a("Soru"),"blok-saha":()=>a("Blok saha"),"tank-surus":()=>a("Sürüş"),"mecanum-surus":()=>a("Sürüş"),montaj:()=>a("Montaj"),builder:()=>"Builder",yazi:()=>a("Yazı")},Bi=i=>qr[i]?.()??i;function Xr(i,s){const n=new Map,t=(o,r,d,u)=>{const m=`${o}|${r}`;let h=n.get(m);h||n.set(m,h=new Map),h.get(d)!=="tamam"&&h.set(d,u)};for(const o of i?.etkinlikler??[])t(o.userId,o.yol,o.id,o.tamam?"tamam":"denedi");const l=s?.oturum;if(l)for(const o of s.ogrenciler){for(const r of o.tamamlanan)t(o.userId,l.yol,r,"tamam");for(const r of o.denenen)t(o.userId,l.yol,r,"denedi")}return(o,r)=>{const d=n.get(`${o}|${r.yol}`),u=m=>d?.get(m)??"yok";return{durum:u,tamam:r.etkinlikler.filter(m=>u(m.id)==="tamam").length,toplam:r.etkinlikler.length}}}const Ds=i=>i.hafta!=null?a("Hafta {n}",{n:i.hafta}):i.ust?.split(" · ")[0]||a("Dersler");function Rs(i){const s=[];for(const n of i){const t=Ds(n),l=s.find(o=>o.ad===t);l?l.dersler.push(n):s.push({ad:t,dersler:[n]})}return s}function Vr({sinifId:i,kurslar:s,canli:n,gizli:t=!1,salt:l=!1,siradakiYol:o=null,islenen:r=null}){const{planlar:d,dersler:u,yenile:m}=Ve(s),[h,f]=c.useState(null),[k,v]=c.useState(null),[y,j]=c.useState(null),[g,x]=c.useState({}),b=c.useRef(null),w=c.useMemo(()=>new Set(r??[]),[r]),_=c.useCallback(async()=>{v(null);try{f(await T.etkinlik(i))}catch(I){v(I)}},[i]);c.useEffect(()=>{_()},[_]);const S=n?.oturum?n.oturum.guncel_at??n.oturum.basladi_at:null;c.useEffect(()=>{S&&_()},[S,_]);const A=c.useMemo(()=>Xr(h,n),[h,n]),D=h?.ogrenciler??[],Z=n?.oturum?.canli?n.oturum.yol:null;function V(I){j(I);const H=u.find(K=>K.yol===I);H&&x(K=>({...K,[`${H.kurs.slug}|${Ds(H)}`]:!0})),requestAnimationFrame(()=>{const K=b.current?.querySelector(`[data-yol="${CSS.escape(I)}"]`);K?.scrollIntoView?.({block:"start"}),K?.querySelector("summary")?.focus({preventScroll:!0})})}return s.length?d?e.jsxs("div",{className:"hp-sekme-ic",ref:b,tabIndex:-1,children:[e.jsx(Ts,{sinifId:i,planlar:d,yenile:m,sekme:"dersler",salt:l}),k?e.jsx(Pe,{baslik:a("Öğrencilerin etkinlik ilerlemesi yüklenemedi."),hata:k,retry:_}):null,!Z&&e.jsx("p",{className:"hp-soluk",children:M("Canlı ders başlatmak için dersin {open} düğmesine basın, açılan tahtada sağ üstteki {live} düğmesiyle başlatın. Canlı ders sürerken dersin öğrenci sayfasını açan öğrencinin yoklaması kendiliğinden alınır.",{open:e.jsx("b",{children:a("Tahtada aç")}),live:e.jsx("b",{children:ee("board","Canlı ders")})})}),d.filter(I=>I.plan?.dersler.length).map(I=>e.jsxs("section",{className:"hp-plan","aria-label":I.kurs.baslik,children:[d.length>1&&e.jsx("h3",{children:I.kurs.baslik}),(()=>{const H=Rs(I.plan.dersler),K=H.find(z=>z.dersler.some(U=>U.yol===o))??H[0];return H.map(z=>{const U=`${I.kurs.slug}|${z.ad}`,P=g[U]??(z===K||z.dersler.some(O=>O.yol===y)),ae=z.dersler.filter(O=>w.has(O.yol)).length;return e.jsxs("details",{className:"hp-hafta",open:P,onToggle:O=>{const re=O.currentTarget.open;re!==P&&x(N=>({...N,[U]:re}))},children:[e.jsxs("summary",{children:[e.jsx("b",{children:z.ad})," ",e.jsxs("span",{className:"hp-soluk",children:[L("{n} ders",z.dersler.length),r?` · ${a("{n} işlendi",{n:ae})}`:"",z.dersler.some(O=>O.yol===o)?` · ${a("sıradaki ders bu haftada")}`:""]})]}),e.jsx("ul",{className:"hp-ders-liste hp-ders-liste-sik",children:z.dersler.map(O=>{const re=Me(O),N=D.filter(F=>{const R=A(F.userId,O);return R.toplam>0&&R.tamam===R.toplam}).length;return e.jsxs("li",{className:`hp-ders-kart${O.yol===o?" hp-ders-siradaki":""}`,"data-yol":O.yol,children:[e.jsxs("div",{className:"hp-ders-kart-ust",children:[e.jsxs("span",{className:"hp-ders-baslik",children:[re&&e.jsx("span",{className:"hp-ders-yer",children:re}),e.jsx("b",{children:O.baslik})]}),e.jsxs("span",{className:"hp-ders-durum",children:[O.yol===o&&e.jsx("span",{className:"hp-ders-siradaki-etiket",children:a("Sıradaki ders")}),w.has(O.yol)&&e.jsx("span",{className:"hp-soluk",children:a("İşlendi")}),O.yol===Z&&e.jsx("span",{className:"hp-rozet hp-rozet-canli",children:a("Canlı")})]})]}),O.alt&&O.yol===o&&e.jsx("p",{className:"hp-soluk hp-ders-alt",children:O.alt}),e.jsxs("p",{className:"hp-ders-dugmeler",children:[e.jsxs("a",{className:"hp-dugme",href:X(`${O.yol}tahta/?sinif=${encodeURIComponent(i)}`),target:"_blank",rel:"noopener",children:[a("Tahtada aç")," ",e.jsx(Ue,{})]}),e.jsxs("a",{className:"hp-dugme hp-dugme-ikincil",href:X(`${O.yol}_ogretmen/`),target:"_blank",rel:"noopener",children:[a("Öğretmen notları")," ",e.jsx(Ue,{})]})]}),O.etkinlikler.length===0?null:e.jsxs("details",{className:"hp-ders-etkinlik",open:y===O.yol,onToggle:F=>{const R=F.currentTarget.open;R&&y!==O.yol?j(O.yol):!R&&y===O.yol&&j(null)},children:[e.jsxs("summary",{children:[a("Etkinlikler")," ",e.jsxs("span",{className:"hp-soluk",children:[L("{n} etkinlik",O.etkinlikler.length)," · ",D.length?a("{done}/{total} öğrenci hepsini bitirdi",{done:N,total:D.length}):a("öğrenci yok")]})]}),y===O.yol&&(t?e.jsx("p",{className:"hp-soluk",children:a("Öğrenci bilgileri gizliyken öğrenci tablosu görünmez.")}):e.jsx(Wr,{ders:O,ogrenciler:D,durum:A,canli:O.yol===Z?n:null}))]})]},O.yol)})})]},U)})})()]},I.kurs.slug)),!t&&u.some(I=>I.etkinlikler.length)&&D.length>0&&e.jsxs("section",{className:"hp-plan","aria-labelledby":"hp-etk-matris-baslik",children:[e.jsx("h3",{id:"hp-etk-matris-baslik",children:a("Etkinlik ilerlemesi")}),e.jsx("p",{className:"hp-soluk",children:a("Her hücre o derste tamamlanan etkinlik sayısıdır. Ayrıntı için hücreye basın.")}),e.jsx("div",{className:"hp-matris-sar",tabIndex:0,role:"region","aria-label":a("Etkinlik ilerlemesi (yatay kaydırılabilir)"),children:e.jsxs("table",{className:"hp-matris-tablo",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{className:"hp-matris-kose"}),u.map((I,H)=>e.jsx("th",{scope:"col",className:"hp-matris-ders",title:ca(I),children:e.jsx(Or,{d:I,i:H})},I.yol))]})}),e.jsx("tbody",{children:D.map(I=>e.jsxs("tr",{children:[e.jsxs("th",{scope:"row",className:"hp-matris-satir",children:[e.jsx("b",{children:I.ad}),I.ekip&&e.jsx("span",{className:"hp-soluk hp-blok",children:I.ekip})]}),u.map((H,K)=>{const z=A(I.userId,H);if(!z.toplam)return e.jsx("td",{className:"hp-matris-hucre",children:e.jsx("span",{"aria-label":a("etkinlik yok"),children:"–"})},H.yol);const U=z.tamam===z.toplam?"hp-m-bitti":z.tamam>0?"hp-m-kismi":"hp-m-yok";return e.jsx("td",{className:`hp-matris-hucre ${U}`,children:e.jsxs("button",{type:"button",onClick:()=>V(H.yol),"aria-label":a("{student}, {place} {lesson}: {done}/{total} etkinlik",{student:I.ad,place:Me(H)??a("Ders {n}",{n:K+1}),lesson:H.baslik,done:z.tamam,total:z.toplam}),children:[z.tamam,"/",z.toplam]})},H.yol)})]},I.userId))})]})})]}),D.length===0&&h&&e.jsx("p",{className:"hp-soluk",children:a("Sınıfta öğrenci yok; etkinlik ilerlemesi öğrenciler katılınca görünür.")})]}):e.jsx("p",{className:"hp-soluk",role:"status",children:a("Dersler yükleniyor…")}):e.jsx("p",{className:"hp-bos",children:M("Sınıfa henüz eğitim atanmadı. Bu sekmedeki {section} bölümünden atayın.",{section:e.jsx("b",{children:a("Eğitimler")})})})}function Wr({ders:i,ogrenciler:s,durum:n,canli:t}){if(!s.length)return e.jsx("p",{className:"hp-soluk",children:a("Sınıfta öğrenci yok.")});const l=Date.now();return e.jsxs("div",{className:"hp-ders-etkinlik-ic",children:[e.jsx("div",{className:"hp-matris-sar",tabIndex:0,role:"region","aria-label":a("{lesson} etkinlikleri (yatay kaydırılabilir)",{lesson:i.baslik}),children:e.jsxs("table",{className:"hp-matris-tablo",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{className:"hp-matris-kose"}),i.etkinlikler.map((o,r)=>e.jsxs("th",{scope:"col",className:"hp-matris-ders",title:o.baslik,children:[r+1,". ",Bi(o.tur)]},o.id)),e.jsx("th",{scope:"col",className:"hp-matris-ders",children:a("Toplam")})]})}),e.jsx("tbody",{children:s.map(o=>{const r=n(o.userId,i),d=t?.ogrenciler.find(u=>u.userId===o.userId);return e.jsxs("tr",{children:[e.jsxs("th",{scope:"row",className:"hp-matris-satir",children:[e.jsx("b",{children:o.ad}),d&&d.sayfa!=null&&Ks(d.son_at,l)&&e.jsx("span",{className:"hp-soluk hp-blok",children:a("sayfa {n}",{n:d.sayfa+1})})]}),i.etkinlikler.map(u=>{const m=r.durum(u.id);return e.jsx("td",{className:`hp-matris-hucre hp-etk-${m}`,children:e.jsx("span",{children:m==="tamam"?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"✓"}),e.jsx("span",{className:"hp-gizli",children:a("tamamladı")})]}):m==="denedi"?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"◐"}),e.jsx("span",{className:"hp-gizli",children:a("denedi, tamamlamadı")})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"–"}),e.jsx("span",{className:"hp-gizli",children:a("yapmadı")})]})})},u.id)}),e.jsx("td",{className:"hp-matris-hucre",children:e.jsx("span",{children:e.jsxs("b",{children:[r.tamam,"/",r.toplam]})})})]},o.userId)})})]})}),e.jsx("ol",{className:"hp-etk-adlar",children:i.etkinlikler.map(o=>e.jsxs("li",{children:[o.baslik," ",e.jsxs("span",{className:"hp-soluk",children:["(",Bi(o.tur),o.sayfa!=null?`, ${a("sayfa {n}",{n:o.sayfa})}`:"",")"]})]},o.id))}),e.jsxs("p",{className:"hp-matris-anahtar hp-soluk",children:[e.jsxs("span",{children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Tamamladı")]}),e.jsxs("span",{children:[e.jsx("span",{"aria-hidden":"true",children:"◐"})," ",a("Denedi")]}),e.jsxs("span",{children:[e.jsx("span",{"aria-hidden":"true",children:"–"})," ",a("Yapmadı")]})]})]})}function Ms(i){const[s,n]=c.useState(null),[t,l]=c.useState(null),o=c.useCallback(async()=>{try{return n(await T.takip(i)),l(null),!0}catch(d){return n(null),l(d??new Error("takip")),!1}},[i]);c.useEffect(()=>{o()},[o]);const r=c.useCallback((d,u)=>{n(m=>m&&{...m,dikkat:m.dikkat.filter(h=>!(h.userId===d&&h.odev===u&&h.tur!=="eksik"))})},[]);return{takip:s,takipHata:t,takipYukle:o,dikkatCikar:r}}function Fs(i,s){const n=c.useRef(null),t=c.useRef(!1);c.useEffect(()=>{if(!t.current||!i)return;t.current=!1;const o=n.current;(o?.querySelector(".hp-takip-ozet")??o)?.focus()},[i]);const l=c.useCallback(async()=>{t.current=!0,await s()||(t.current=!1)},[s]);return{kap:n,yenile:l}}function Ls({metin:i,yenile:s}){const[n,t]=c.useState(!1);return e.jsxs("p",{className:"hp-hata",role:"alert",children:[i," ",e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil","aria-busy":n,onClick:async()=>{n||(t(!0),await s(),t(!1))},children:n?a("Yükleniyor…"):a("Tekrar deneyin")})]})}const va=i=>i==null?"-":a("%{n}",{n:i});function mi({kutular:i,etiket:s}){return e.jsx("ul",{className:"hp-takip-ozet","aria-label":s,tabIndex:-1,children:i.map(n=>{const t=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"hp-takip-etiket",children:n.etiket}),e.jsx("b",{children:n.deger}),n.alt&&e.jsx("span",{className:"hp-soluk",children:n.alt})]});return e.jsx("li",{className:n.uyari?"hp-takip-uyari":void 0,children:n.tikla?e.jsx("button",{type:"button",onClick:n.tikla,children:t}):e.jsx("div",{children:t})},n.etiket)})})}const Ya={geldi:()=>a("Geldi"),gec:()=>a("Geç"),gelmedi:()=>a("Gelmedi"),izinli:()=>a("İzinli")};function Qr({sinifId:i,kurslar:s,salt:n,canli:t}){const{planlar:l,yenile:o}=Ve(s),[r,d]=c.useState(null),[u,m]=c.useState(null),[h,f]=c.useState(""),[k,v]=c.useState(""),[y,j]=c.useState(!1),g=c.useRef(null),x=c.useRef(null),[b,w]=c.useState(null),{takip:_,takipHata:S,takipYukle:A}=Ms(i),{kap:D,yenile:Z}=Fs(_,A),V=c.useCallback(async()=>{m(null),A();try{return d(await T.yoklama(i)),!0}catch(N){return m(N),!1}},[i,A]);c.useEffect(()=>{V()},[V]);const I=t?.oturum?`${t.oturum.id}|${t.ogrenciler.filter(N=>N.yoklama).length}`:null;c.useEffect(()=>{I&&V()},[I,V]);const H=c.useMemo(()=>new Map((r?.yoklama??[]).map(N=>[`${N.oturum_id}|${N.user_id}`,N])),[r]);async function K(N,F,R){if(!r)return;f(""),v("");const Y=r;d({...r,yoklama:[...r.yoklama.filter(W=>!(W.oturum_id===N&&W.user_id===F)),{oturum_id:N,user_id:F,durum:R,kaynak:"hoca",ilk_at:new Date().toISOString()}]});try{await T.yoklamaYaz(i,N,F,R),A()}catch(W){d(Y),f(Ce(W))}}if(c.useEffect(()=>{if(!b||!r?.oturumlar.some(F=>F.id===b))return;(x.current?.querySelector(`tbody td[data-oturum="${CSS.escape(b)}"] select`)??g.current)?.focus(),w(null)},[b,r]),u)return e.jsx(Pe,{baslik:a("Yoklama yüklenemedi."),hata:u,retry:V});if(!r)return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yoklama yükleniyor…")});const{oturumlar:z,ogrenciler:U}=r,P=new Map((_?.ogrenciler??[]).map(N=>[N.userId,N])),ae=new Map((_?.oturumlar??[]).map(N=>[N.id,N])),O=(_?.ogrenciler??[]).filter(N=>N.dusuk),re=!!l?.some(N=>ta(N.plan));return e.jsxs("div",{className:"hp-sekme-ic",ref:D,tabIndex:-1,children:[e.jsx("p",{className:"hp-soluk",children:a("Bu yoklama derse katılım takibi içindir, resmi devamsızlık e-Okul'da tutulur.")}),e.jsxs("p",{className:"hp-soluk",children:[n?e.jsxs(e.Fragment,{children:[a("Bu sınıf salt okunur: yoklamaları görebilirsiniz, yeni yoklama alınamaz.")," "]}):e.jsxs(e.Fragment,{children:[re&&e.jsxs(e.Fragment,{children:[M("Dersi tahtadan canlı başlattığınızda derse giren öğrenci kendiliğinden {status} yazılır.",{status:e.jsx("b",{children:a("Geldi")})})," "]}),M("{button} ile bir ders için yoklama oluşturup hücrelerden durumu seçebilirsiniz.",{button:e.jsx("b",{children:a("Yoklama al")})})," "]}),a("Boş hücre canlı derste bağlanmadı demektir ve gelmedi sayılır; elle alınan yoklamada ise yoklama alınmadı demektir ve devama sayılmaz. Devam oranı izinli dersleri saymaz.")]}),l?.filter(N=>N.hata).map(N=>e.jsxs("p",{className:"hp-uyari",children:[a("{course}: ders listesi yüklenemedi.",{course:N.kurs.baslik})," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:F=>{ci(F.currentTarget,o)},children:a("Tekrar dene")})]},N.kurs.slug)),!!S&&e.jsx(Ls,{metin:a("Yoklama özeti yüklenemedi; devam oranları ve ders sayıları görünmüyor."),yenile:Z}),_&&z.length>0&&U.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(mi,{etiket:a("Yoklama özeti"),kutular:[{etiket:a("Sınıf devamı"),deger:va(_.ozet.devam.oran),alt:L("{n} ders",_.ozet.oturum)},{etiket:a("Son ders"),deger:ue(_.ozet.son_oturum)||"-"},{etiket:a("Düşük devam"),deger:O.length?L("{n} öğrenci",O.length):a("Yok"),alt:a("%70 altı"),uyari:O.length>0}]}),O.length>0&&e.jsxs("p",{className:"hp-takip-dusuk",children:[e.jsx("b",{children:a("Devamı %70'in altında:")})," ",O.map(N=>`${N.ad} (${va(N.devam.oran)})`).join(", ")]})]}),!n&&(y&&l?e.jsx(Zr,{sinifId:i,planlar:l,kapat:()=>{j(!1),requestAnimationFrame(()=>g.current?.focus())},acildi:async N=>{j(!1),v(a("Yoklama oluşturuldu. Öğrencilerin durumunu yeni sütundan seçin.")),await V()&&w(N)}}):e.jsx(Is,{neden:s.length?l?.length&&l.every(N=>N.hata)?a("Ders listesi yüklenemedi; yukarıdan tekrar deneyin."):"":a("Yoklama için önce sınıfa bir eğitim atayın."),dugme:N=>e.jsx("button",{...N,type:"button",ref:g,className:re?"hp-dugme hp-dugme-ikincil":"hp-dugme",disabled:N.disabled||!l,onClick:()=>{j(!0),v("")},children:a("Yoklama al")})})),e.jsx(ui,{hata:h,bilgi:k}),z.length?U.length?e.jsx("div",{className:"hp-matris-sar",tabIndex:0,role:"region","aria-label":a("Yoklama tablosu (yatay kaydırılabilir)"),ref:x,children:e.jsxs("table",{className:"hp-matris-tablo hp-yoklama-tablo",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{className:"hp-matris-kose"}),z.map(N=>e.jsxs("th",{scope:"col",className:"hp-yoklama-bas",title:N.baslik??void 0,children:[e.jsx("b",{children:ue(N.tarih)}),e.jsx("span",{className:"hp-yoklama-ders",children:N.baslik||a("Ders")}),ae.get(N.id)&&e.jsxs("span",{className:"hp-yoklama-sayi",children:[a("{came}/{total} geldi",{came:ae.get(N.id).geldi+ae.get(N.id).gec,total:ae.get(N.id).sayilan}),ae.get(N.id).alinmadi>0&&` · ${a("{n} alınmadı",{n:ae.get(N.id).alinmadi})}`]}),N.canli&&!N.bitti_at&&e.jsx("span",{className:"hp-rozet hp-rozet-canli",children:a("Canlı")})]},N.id))]})}),e.jsx("tbody",{children:U.map(N=>{const F=P.get(N.userId);return e.jsxs("tr",{className:F?.dusuk?"hp-dusuk-devam":void 0,children:[e.jsxs("th",{scope:"row",className:"hp-matris-satir",children:[e.jsx("b",{children:N.ad}),F&&e.jsxs("span",{className:"hp-soluk hp-blok",children:[M("{rate} devam",{rate:e.jsx("b",{className:"hp-devam-oran",children:va(F.devam.oran)})}),` · ${L("{came}/{n} ders",F.devam.sayilan-F.devam.izinli,{came:F.devam.geldi+F.devam.gec})}`,F.devam.izinli>0&&` · ${a("{n} izinli",{n:F.devam.izinli})}`]}),F?.dusuk&&e.jsx("span",{className:"hp-rozet hp-rozet-uyari",children:a("Düşük devam")})]}),z.map(R=>{const Y=H.get(`${R.id}|${N.userId}`),W=`${N.ad}, ${ue(R.tarih)} ${R.baslik??""}`.trim();return e.jsx("td",{className:`hp-matris-hucre hp-y-${Y?.durum??"yok"}`,"data-oturum":R.id,children:n?e.jsx("span",{children:Y?Ya[Y.durum]():e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"–"}),e.jsx("span",{className:"hp-gizli",children:a("kayıt yok")})]})}):e.jsxs("select",{value:Y?.durum??"","aria-label":W,title:Y?Y.kaynak==="hoca"?a("Elle işaretlendi"):a("Canlı derse girdi"):R.tur==="elle"?a("Yoklama alınmadı, devama sayılmaz"):a("Derse bağlanmadı, gelmedi sayılır"),onChange:G=>{K(R.id,N.userId,G.target.value)},children:[!Y&&e.jsx("option",{value:"",disabled:!0,children:"–"}),Object.keys(Ya).map(G=>e.jsx("option",{value:G,children:Ya[G]()},G))]})},R.id)})]},N.userId)})})]})}):e.jsx("p",{className:"hp-bos",children:a("Sınıfta öğrenci yok.")}):e.jsxs("p",{className:"hp-bos",children:[a("Henüz yoklama yok."),!n&&` ${re?a("Dersi tahtadan canlı başlattığınızda ya da Yoklama al ile oluşturduğunuzda burada görünür."):a("Yoklama al ile oluşturduğunuzda burada görünür.")}`]})]})}function Zr({sinifId:i,planlar:s,kapat:n,acildi:t}){const l=c.useMemo(()=>s.filter(S=>!S.hata).flatMap(S=>ta(S.plan)?S.plan.dersler.map(A=>({deger:A.yol,kurs:S.kurs,ders:A})):[{deger:`kurs:${S.kurs.slug}`,kurs:S.kurs,ders:null}]),[s]),o=l.length===1&&!l[0].ders,[r,d]=c.useState(o?l[0].deger:""),[u,m]=c.useState(""),[h,f]=c.useState(oa()),[k,v]=c.useState(!1),[y,j]=c.useState(""),g=c.useRef(null);c.useEffect(()=>{g.current?.focus()},[]);const x=l.find(S=>S.deger===r),b=s.filter(S=>!S.hata).length>1;async function w(S){if(S.preventDefault(),!x){j(a("Ders seçin."));return}const A=x.ders?x.ders.baslik:u.trim();if(!A){j(a("Dersin adını yazın."));return}if(!Be(h)){j(a("Tarih seçin."));return}j(""),v(!0);try{const D=await T.canliBaslat(i,{yol:x.ders?x.ders.yol:x.kurs.yol,baslik:A,canli:!1,tarih:h});await t(D.oturum.id)}catch(D){j(Ce(D))}finally{v(!1)}}const _=S=>e.jsx("option",{value:S.deger,children:S.ders?ca(S.ders):a("{course}: dersin adını siz yazın",{course:S.kurs.baslik})},S.deger);return e.jsxs("form",{className:"hp-kutu hp-elle-form",onSubmit:w,noValidate:!0,children:[e.jsx("h3",{children:a("Yoklama al")}),e.jsxs("div",{className:"hp-elle-alanlar",children:[!o&&e.jsxs("label",{children:[e.jsx("span",{children:a("Ders")}),e.jsxs("select",{ref:g,value:r,onChange:S=>{d(S.target.value),j("")},required:!0,children:[e.jsx("option",{value:"",children:a("Ders seçin")}),b?s.filter(S=>!S.hata).map(S=>e.jsx("optgroup",{label:S.kurs.baslik,children:l.filter(A=>A.kurs.slug===S.kurs.slug).map(_)},S.kurs.slug)):l.map(_)]})]}),x&&!x.ders&&e.jsxs("label",{children:[e.jsx("span",{children:a("Ders adı")}),e.jsx("input",{ref:o?g:void 0,type:"text",value:u,maxLength:140,placeholder:a("Örneğin: Şasi montajı"),required:!0,onChange:S=>{m(S.target.value),j("")}})]}),e.jsxs("label",{children:[e.jsx("span",{children:a("Tarih")}),e.jsx("input",{type:"date",value:h,onChange:S=>{f(S.target.value),j("")},required:!0})]})]}),y&&e.jsx("p",{className:"hp-hata",role:"alert",children:y}),e.jsxs("p",{className:"hp-elle-dugmeler",children:[e.jsx("button",{type:"submit",className:"hp-dugme",disabled:k,children:k?a("Oluşturuluyor…"):a("Bu ders için yoklama oluştur")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:n,children:a("Vazgeç")})]})]})}const Ia={taslak:()=>a("Taslak"),teslim:()=>a("Bakılacak"),tamam:()=>a("Tamam"),tekrar:()=>a("Tekrar istendi")},Jr={yok:"hp-durum-yok",taslak:"hp-durum-acildi",teslim:"hp-durum-kismi",tamam:"hp-durum-bitti",tekrar:"hp-durum-tekrar",eksik:"hp-durum-tekrar"},Os=(i,s)=>s?"eksik":i?.durum??"yok";function et({teslim:i,eksik:s}){const n=Os(i,s);return e.jsxs("span",{className:`hp-durum ${Jr[n]}`,children:[n==="tamam"&&e.jsx("span",{"aria-hidden":"true",children:"✓"}),n==="eksik"?i?.durum?`${Ia[i.durum]()} · ${a("Eksik")}`:a("Eksik"):n==="yok"?a("Teslim yok"):Ia[n](),n==="tamam"&&i?.otomatik&&e.jsxs("span",{className:"hp-durum-ek",children:[" ",ee("homework","otomatik")]})]})}const at=i=>{const s=Be(i);return!!s&&s.getTime()<Be(oa()).getTime()},Hs=i=>new Set((i?.dikkat??[]).filter(s=>s.tur==="eksik").map(s=>`${s.userId}|${s.odev}`)),Ys=(i,s,n,t)=>i?!!i.eksik:s.has(`${n}|${t}`),ga={bakilacak:()=>a("Bakılacak"),eksik:()=>a("Eksik"),gec:()=>a("Geç teslim")},Na=i=>i.kaynak==="ogretmen"||i.odev_id.startsWith("ogr-"),it=(i,s)=>i.hedefler?s.filter(n=>i.hedefler.includes(n.userId)):s,za={metin:{ad:()=>a("Yazılı cevap"),aciklama:()=>a("Öğrenci cevabını Ödevlerim listesinde yazıp teslim eder.")},sinifta:{ad:()=>a("Sınıfta ya da kâğıt üstünde"),aciklama:()=>a("Çevrimiçi teslim yok; yapanları siz Tamam diye işaretlersiniz.")}},Ci=i=>i==="metin"||i==="sinifta"?za[i].ad():null,st=i=>[Na(i)?a("kendi ödeviniz"):null,i.hedefler?L("{n} öğrenciye",i.hedefler.length):null].filter(Boolean).join(", ")||null,Sa={odev:()=>a("Ödevlere göre"),tablo:()=>a("Öğrencilere göre"),kontrol:()=>a("İlgilenmem gerekenler")},ja=new Map,Ii=(i,s,n)=>`${i}|${s}|${n}`;function nt({sinifId:i,kurslar:s,salt:n,kilitli:t=[]}){const{planlar:l,dersler:o,yenile:r}=Ve(s),[d,u]=c.useState(null),[m,h]=c.useState(null),[f,k]=c.useState(null),[v,y]=c.useState(""),[j,g]=c.useState(""),[x,b]=c.useState(null),[w,_]=c.useState(null),[S,A]=c.useState("odev"),[D,Z]=c.useState("hepsi"),[V,I]=c.useState("hepsi"),[H,K]=c.useState(0),{takip:z,takipHata:U,takipYukle:P,dikkatCikar:ae}=Ms(i),{kap:O,yenile:re}=Fs(z,P),N=c.useRef(d);N.current=d;const F=c.useRef(0),R=c.useRef(0),Y=c.useRef(void 0),W=c.useCallback(async()=>{h(null),P();try{u(await T.odevler(i))}catch(E){h(E)}},[i,P]);c.useEffect(()=>{W()},[W]),c.useEffect(()=>()=>window.clearTimeout(Y.current),[]);const G=c.useCallback(function E(){window.clearTimeout(Y.current),Y.current=window.setTimeout(async()=>{if(R.current){E();return}const C=F.current;P();try{const q=await T.odevler(i);if(C!==F.current||R.current){E();return}u(q),k(null)}catch(q){k(q)}},1e3)},[i,P]),oe=c.useMemo(()=>({al:(E,C)=>ja.get(Ii(i,E,C)),yaz:(E,C,q)=>{const te=Ii(i,E,C);q===void 0?ja.delete(te):ja.set(te,q),K(ie=>ie+1)}}),[i]),ke=c.useMemo(()=>[...ja.keys()].some(E=>E.startsWith(`${i}|`)),[i,H]);c.useEffect(()=>{if(!ke)return;const E=C=>{C.preventDefault(),C.returnValue=""};return window.addEventListener("beforeunload",E),()=>window.removeEventListener("beforeunload",E)},[ke]);async function pe(E,C,q,te){const ie=N.current;if(!ie)return a("Ödevler yüklenmedi.");const ne=de=>de.userId===C.userId&&de.yol===E.yol&&de.odev_id===E.odev_id,we=ie.teslimler.find(ne),Ne=new Date().toISOString(),ha=we?{...we,durum:q,otomatik:!1,yorum:te.trim()||null,degerlendirme_at:Ne}:{userId:C.userId,yol:E.yol,odev_id:E.odev_id,durum:q,otomatik:!1,yorum:te.trim()||null,deneme:0,teslim_at:null,guncel_at:Ne,degerlendirme_at:Ne},Oe=de=>u(Ee=>Ee&&{...Ee,teslimler:[...Ee.teslimler.filter(ka=>!ne(ka)),...de?[de]:[]]});Oe(ha),ae(C.userId,E.id),F.current++,R.current++;try{return await T.degerlendir(i,{userId:C.userId,yol:E.yol,odevId:E.odev_id,durum:q,yorum:te}),null}catch(de){return N.current?.teslimler.find(ne)===ha&&Oe(we),Ce(de)}finally{R.current--,G()}}function Ie(E,C){b(E),I("hepsi"),_(C),A("odev"),requestAnimationFrame(()=>{document.getElementById(`hp-teslim-satir-${C}`)?.scrollIntoView?.({block:"start"}),document.getElementById(`hp-teslim-${C}`)?.focus({preventScroll:!0})})}function be(E){Z(E),A("kontrol")}if(m)return e.jsx(Pe,{baslik:a("Ödevler yüklenemedi."),hata:m,retry:W});if(!d)return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Ödevler yükleniyor…")});const{odevler:fe,ogrenciler:ve,teslimler:We}=d,Qe=E=>o.find(C=>C.yol===E),se=E=>We.filter(C=>C.yol===E.yol&&C.odev_id===E.odev_id),Ze=E=>it(E,ve),B=fe.find(E=>E.id===x)??fe[0]??null,Le=Hs(z),ua=new Map((z?.odevler??[]).map(E=>[E.id,E]));async function ma(E){if(!confirm(a('"{title}" ödevi sınıftan kaldırılsın mı? Öğrenciler artık görmez; teslimler silinmez.',{title:E.baslik})))return!1;y(""),g("");try{return await T.odevKaldir(i,E.id),await W(),b(null),g(a("Ödev kaldırıldı.")),!0}catch(C){return y(Ce(C)),!1}}return e.jsxs("div",{className:"hp-sekme-ic",ref:O,tabIndex:-1,children:[l&&e.jsx(Ts,{sinifId:i,planlar:l,yenile:r,sekme:"odevler",salt:n,kendiOdev:s.some(E=>!t.includes(E.slug))}),!n&&l&&e.jsx(ht,{sinifId:i,dersler:o,kurslar:s,kilitli:t,ogrenciler:ve,planHata:l.some(E=>E.hata),verilen:fe,verildi:async(E,C)=>{await W(),C&&(b(C),_(null),A("odev")),g(E)}}),e.jsx(ui,{hata:v,bilgi:j}),fe.length?e.jsxs(e.Fragment,{children:[!!U&&S!=="kontrol"&&e.jsx(Ls,{metin:a("Ödev özeti yüklenemedi; teslim sayıları ve kaydı olmayan öğrencilerin eksik işaretleri görünmüyor."),yenile:re}),f?e.jsx(Pe,{baslik:a("Ödev listesi güncellenemedi."),hata:f,retry:G}):null,z&&ve.length>0&&e.jsx(mi,{etiket:a("Ödev özeti"),kutular:[{etiket:a("Tüm ödevlerde teslim"),deger:va(z.ozet.beklenen?Math.round(100*z.ozet.teslim/z.ozet.beklenen):null),alt:`${z.ozet.teslim}/${z.ozet.beklenen} · ${L("{n} ödev",z.ozet.odev)}, ${L("{n} öğrenci",z.ozet.ogrenci)}`},{etiket:a("Bakılacak"),deger:z.ozet.bakilacak,alt:a("teslim edildi, incelemenizi bekliyor"),uyari:z.ozet.bakilacak>0,tikla:()=>be("bakilacak")},{etiket:a("Eksik"),deger:z.ozet.eksik,alt:a("son gün geçti, teslim yok"),uyari:z.ozet.eksik>0,tikla:()=>be("eksik")},{etiket:a("Geç teslim"),deger:z.ozet.gec,alt:a("son günden sonra geldi"),tikla:()=>be("gec")},{etiket:a("Değerlendirildi"),deger:z.ozet.kontrol,alt:L("{n} teslimden",z.ozet.teslim)}]}),e.jsxs("div",{className:"hp-gorunum",role:"group","aria-label":a("Görünüm"),children:[e.jsx("button",{type:"button","aria-pressed":S==="odev",onClick:()=>A("odev"),children:Sa.odev()}),e.jsx("button",{type:"button","aria-pressed":S==="tablo",onClick:()=>A("tablo"),children:Sa.tablo()}),e.jsxs("button",{type:"button","aria-pressed":S==="kontrol",onClick:()=>be(D),children:[Sa.kontrol(),z?.dikkat.length?` (${z.dikkat.length})`:""]})]}),S==="tablo"&&e.jsx(ut,{odevler:fe,ogrenciler:ve,teslimler:We,takip:z,ac:Ie}),S==="kontrol"&&e.jsx(mt,{takip:z,hata:U,yenile:P,filtre:D,setFiltre:Z,ac:Ie}),S==="odev"&&e.jsxs(e.Fragment,{children:[e.jsx("ul",{className:"hp-odev-liste","aria-label":a("Verilen ödevler"),children:fe.map(E=>{const C=Qe(E.yol),q=ua.get(E.id);return e.jsx("li",{children:e.jsxs("button",{type:"button",className:"hp-odev-kart","aria-pressed":B?.id===E.id,onClick:()=>{b(E.id),_(null)},children:[e.jsx("b",{children:E.baslik}),e.jsx("span",{className:"hp-soluk",children:[C?ca(C):null,st(E),E.son_tarih?a("son gün {date}",{date:ue(E.son_tarih)}):a("son gün yok")].filter(Boolean).join(" · ")}),e.jsxs("span",{className:"hp-odev-sayi",children:[M("Teslim {count}",{count:e.jsxs("b",{children:[q?q.teslim:"–","/",Ze(E).length]})}),!!q?.bakilacak&&e.jsx("span",{className:"hp-durum hp-durum-kismi",children:L("{n} bakılacak",q.bakilacak)}),!!q?.eksik&&e.jsx("span",{className:"hp-durum hp-durum-tekrar",children:L("{n} eksik",q.eksik)})]})]})},E.id)})}),B&&e.jsx(tt,{sinifId:i,odev:B,ders:Qe(B.yol),ogrenciler:Ze(B),teslimler:se(B),eksikler:Le,salt:n,acikOgr:w,setAcikOgr:_,filtre:V,setFiltre:I,taslak:oe,degerlendir:(E,C,q)=>pe(B,E,C,q),sonGunKaydet:async E=>{await T.odevVer(i,{yol:B.yol,odevId:B.odev_id,baslik:B.baslik,sonTarih:E}),u(C=>C&&{...C,odevler:C.odevler.map(q=>q.id===B.id?{...q,son_tarih:E}:q)}),G()},kaldir:()=>ma(B)},B.id)]})]}):l&&!o.some(E=>E.odevler.length)?null:e.jsx("p",{className:"hp-bos",children:a("Bu sınıfa henüz ödev verilmedi.")})]})}const Ga={bakilacak:()=>a("Bakılacak"),tekrar:()=>a("Tekrar istendi"),tamam:()=>a("Tamam"),yok:()=>a("Teslim yok")},rt=i=>i?.durum==="teslim"?"bakilacak":i?.durum==="tekrar"?"tekrar":i?.durum==="tamam"?"tamam":"yok";function tt({sinifId:i,odev:s,ders:n,ogrenciler:t,teslimler:l,eksikler:o,salt:r,acikOgr:d,setAcikOgr:u,filtre:m,setFiltre:h,taslak:f,degerlendir:k,sonGunKaydet:v,kaldir:y}){const[j,g]=c.useState(""),[x,b]=c.useState(""),[w,_]=c.useState({}),[S,A]=c.useState(!1),[D,Z]=c.useState(()=>typeof window.matchMedia!="function"||window.matchMedia("(min-width: 720px)").matches),V=new Map(l.map(N=>[N.userId,N])),I=N=>rt(V.get(N)),H=N=>t.filter(F=>I(F.userId)===N).length,K=`${m}|${t.map(N=>N.userId).join(",")}`,[z,U]=c.useState({anahtar:"",ids:[]});if(z.anahtar!==K){const N=t.filter(R=>m==="hepsi"||I(R.userId)===m),F=N.filter(R=>I(R.userId)==="bakilacak").sort((R,Y)=>String(V.get(R.userId)?.teslim_at).localeCompare(String(V.get(Y.userId)?.teslim_at)));U({anahtar:K,ids:[...F,...N.filter(R=>I(R.userId)!=="bakilacak")].map(R=>R.userId)})}const P=z.ids.map(N=>t.find(F=>F.userId===N)).filter(N=>!!N);function ae(N,F=!0,R=!0){const Y=d;if(R&&Y&&Y!==N&&f.al(s.id,Y)!==void 0){const W=t.find(G=>G.userId===Y)?.ad??"";b(a("{name} için yazdığınız geri bildirim kaydedilmedi; taslak olarak duruyor.",{name:W}))}u(N),!(!N||!F)&&requestAnimationFrame(()=>{document.getElementById(`hp-teslim-satir-${N}`)?.scrollIntoView?.({block:"start"}),document.getElementById(`hp-teslim-${N}`)?.focus({preventScroll:!0})})}function O(N){const F=P.findIndex(Y=>Y.userId===N);return[...P.slice(F+1),...P.slice(0,Math.max(F,0))].find(Y=>Y.userId!==N&&I(Y.userId)==="bakilacak")?.userId??null}function re(N,F,R){g(""),_(W=>Object.fromEntries(Object.entries(W).filter(([G])=>G!==N.userId)));const Y=O(N.userId);k(N,F,R).then(W=>{if(W){_(oe=>({...oe,[N.userId]:W})),g(a("{name}: kaydedilemedi. {reason}",{name:N.ad,reason:W})),ae(N.userId);return}f.yaz(s.id,N.userId,void 0);const G=F==="tamam"?a("{name}: Tamam kaydedildi.",{name:N.ad}):a("{name}: Tekrar istendi.",{name:N.ad});b(Y?G:`${G} ${a("Bu ödevde bakılacak teslim kalmadı.")}`)}),Y?ae(Y,!0,!1):(u(null),b(a("Bu ödevde bakılacak teslim kalmadı.")),requestAnimationFrame(()=>document.getElementById(`hp-teslim-satir-${N.userId}`)?.focus()))}return e.jsxs("section",{className:"hp-odev-detay","aria-labelledby":"hp-odev-detay-baslik",children:[e.jsxs("div",{className:"hp-odev-detay-ust",children:[e.jsxs("div",{children:[e.jsx("h3",{id:"hp-odev-detay-baslik",children:s.baslik}),e.jsx("p",{className:"hp-soluk",children:[n?ca(n):null,a("{when} verildi",{when:me(s.verildi_at)})].filter(Boolean).join(" · ")}),e.jsx(lt,{odev:s,salt:r,kaydet:v})]}),e.jsxs("p",{className:"hp-odev-detay-dugmeler",children:[!Na(s)&&e.jsxs("a",{className:"hp-metin-dugme",href:X(`${s.yol}odev/#${s.odev_id}`),target:"_blank",rel:"noopener",children:[a("Ödev sayfası")," ",e.jsx(Ue,{})]}),!r&&e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:S,onClick:()=>{A(!0),y().finally(()=>A(!1))},children:a("Ödevi kaldır")})]})]}),Na(s)?e.jsx(dt,{odev:s,ogrenciler:t}):e.jsx(Us,{yol:s.yol,odevId:s.odev_id}),t.length?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"hp-gorunum hp-gorunum-kucuk",role:"group","aria-label":a("Duruma göre"),children:[e.jsxs("button",{type:"button","aria-pressed":m==="hepsi",onClick:()=>h("hepsi"),children:[ee("filter","Hepsi")," (",t.length,")"]}),Object.keys(Ga).map(N=>e.jsxs("button",{type:"button","aria-pressed":m===N,onClick:()=>h(N),children:[Ga[N]()," (",H(N),")"]},N))]}),e.jsx(ui,{hata:j,bilgi:x}),P.length?e.jsx("ul",{className:"hp-teslim-liste",children:P.map((N,F)=>{const R=V.get(N.userId),Y=d===N.userId,W=`hp-teslim-${N.userId}`,G=`hp-teslim-satir-${N.userId}`,oe=P[F-1],ke=P[F+1];return e.jsxs("li",{className:Y?"acik":void 0,children:[e.jsxs("button",{type:"button",id:G,className:"hp-teslim-satir","aria-expanded":Y,"aria-controls":W,onClick:()=>ae(Y?null:N.userId,!1),children:[e.jsx("b",{children:N.ad}),e.jsx(et,{teslim:R,eksik:Ys(R,o,N.userId,s.id)}),R?.teslim_at&&e.jsxs("span",{className:"hp-soluk",children:[a("{when} teslim etti",{when:me(R.teslim_at)}),R.gec?`, ${a("son günden sonra")}`:"",R.deneme>1?`, ${a("{n}. teslim",{n:R.deneme})}`:""]}),f.al(s.id,N.userId)!==void 0&&e.jsx("span",{className:"hp-taslak-isaret",children:a("kaydedilmemiş geri bildirim")})]}),Y&&e.jsxs("div",{id:W,className:"hp-teslim-detay",role:"region",tabIndex:-1,"aria-label":a("{name} teslimi",{name:N.ad}),children:[e.jsxs("p",{className:"hp-kuyruk-gez",children:[e.jsxs("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",disabled:!oe,onClick:()=>oe&&ae(oe.userId),children:[e.jsx("span",{"aria-hidden":"true",children:"‹"})," ",a("Önceki")]}),e.jsxs("span",{className:"hp-soluk",children:[F+1," / ",P.length]}),e.jsxs("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",disabled:!ke,onClick:()=>ke&&ae(ke.userId),children:[a("Sonraki")," ",e.jsx("span",{"aria-hidden":"true",children:"›"})]})]}),e.jsx(vt,{sinifId:i,ogrenci:N,odev:s,ozet:R,salt:r,taslak:f.al(s.id,N.userId),taslakYaz:pe=>f.yaz(s.id,N.userId,pe),kayitHatasi:w[N.userId],degerlendir:(pe,Ie)=>re(N,pe,Ie),olcut:Na(s)?null:e.jsx(ct,{yol:s.yol,odevId:s.odev_id,acik:D,setAcik:Z})})]})]},N.userId)})}):e.jsx("p",{className:"hp-bos",children:m==="hepsi"?a("Sınıfta öğrenci yok."):a("{status} durumunda öğrenci yok.",{status:Ga[m]()})})]}):e.jsx("p",{className:"hp-soluk",children:a("Sınıfta öğrenci yok.")})]})}function lt({odev:i,salt:s,kaydet:n}){const[t,l]=c.useState(!1),[o,r]=c.useState(""),[d,u]=c.useState(!1),[m,h]=c.useState(""),f=c.useRef(null),k=c.useRef(null);c.useEffect(()=>{t&&k.current?.focus()},[t]);const v=i.son_tarih?`${a("Son gün {date}",{date:ue(i.son_tarih)})}${at(i.son_tarih)?` ${a("(geçti)")}`:""}`:a("Son gün yok");function y(){l(!1),h(""),requestAnimationFrame(()=>f.current?.focus())}async function j(x){h(""),u(!0);try{await n(x),y()}catch(b){h(Ce(b))}finally{u(!1)}}function g(x){if(x.preventDefault(),!Be(o)){h(i.son_tarih?a("Bir gün seçin. Son günü kaldırmak için Son günü kaldır düğmesini kullanın."):a("Bir gün seçin."));return}j(o)}return t?e.jsxs("form",{className:"hp-son-gun hp-son-gun-form",onSubmit:g,noValidate:!0,children:[e.jsxs("label",{children:[e.jsx("span",{children:a("Son gün")}),e.jsx("input",{ref:k,type:"date",value:o,onChange:x=>{r(x.target.value),h("")},required:!0})]}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:d,children:d?a("Kaydediliyor…"):a("Kaydet")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:y,children:a("Vazgeç")}),i.son_tarih&&e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:d,onClick:()=>{j(null)},children:a("Son günü kaldır")}),m&&e.jsx("p",{className:"hp-hata",role:"alert",children:m})]}):e.jsxs("p",{className:"hp-son-gun",children:[e.jsx("span",{children:v}),!s&&e.jsx("button",{type:"button",ref:f,className:"hp-metin-dugme",onClick:()=>{r(i.son_tarih??""),l(!0)},children:i.son_tarih?a("Son günü değiştir"):a("Son gün ekle")})]})}const Pa=new Map;function ot(i){const s=`${i}_ogretmen/odevler.json`;let n=Pa.get(s);return n||(n=fetch(s,{credentials:"same-origin",signal:AbortSignal.timeout(15e3)}).then(async t=>{if(!t.ok)return null;const l=await t.json().catch(()=>null);if(!l||!Array.isArray(l.odevler))return null;const o=r=>Array.isArray(r)?r.filter(d=>typeof d=="string"):[];return l.odevler.filter(r=>typeof r?.id=="string").map(r=>({id:r.id,tur:String(r.tur??""),baslik:String(r.baslik??""),aciklama:o(r.aciklama),olcut:o(r.olcut)}))}),n.catch(()=>Pa.delete(s)),Pa.set(s,n)),n}const Ai={yazi:()=>a("Yazılı cevap"),"blok-saha":()=>a("Blok programı (saha)"),blocks:()=>"Probot Blocks",builder:()=>a("Builder projesi")};function Gs(i,s){const[n,t]=c.useState({tur:"yukleniyor"}),[l,o]=c.useState(0);return c.useEffect(()=>{let r=!0;return t({tur:"yukleniyor"}),ot(i).then(d=>{r&&t({tur:"hazir",o:d?.find(u=>u.id===s)??null})},()=>{r&&t({tur:"hata"})}),()=>{r=!1}},[i,s,l]),{durum:n,yenile:()=>o(r=>r+1)}}const Ps=({satirlar:i})=>i.length?e.jsx(e.Fragment,{children:i.map((s,n)=>e.jsx("p",{children:s},n))}):e.jsx("p",{className:"hp-soluk",children:a("Bu ödev için yazılmış ölçüt yok.")});function Us({yol:i,odevId:s}){const{durum:n,yenile:t}=Gs(i,s),l=e.jsxs("a",{href:X(`${i}_ogretmen/#odevler`),target:"_blank",rel:"noopener",children:[a("öğretmen notlarında")," ",e.jsx(Ue,{})]});return e.jsxs("details",{className:"hp-odev-bilgi",children:[e.jsx("summary",{children:a("Ödev ve değerlendirme ölçütü")}),n.tur==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):n.tur==="hata"?e.jsxs("p",{className:"hp-hata",children:[a("Ödev metni yüklenemedi.")," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:t,children:a("Tekrar dene")})]}):n.o?e.jsxs(e.Fragment,{children:[Ai[n.o.tur]&&e.jsx("p",{className:"hp-soluk",children:a("Teslim türü: {type}",{type:Ai[n.o.tur]()})}),e.jsx("h4",{children:a("Ödev")}),n.o.aciklama.length?n.o.aciklama.map((o,r)=>e.jsx("p",{children:o},r)):e.jsx("p",{className:"hp-soluk",children:a("Açıklama yok.")}),e.jsx("h4",{children:a("Değerlendirme ölçütü")}),e.jsx(Ps,{satirlar:n.o.olcut})]}):e.jsx("p",{className:"hp-soluk",children:M("Bu ödevin metni ve ölçütü {notes} var.",{notes:l})})]})}function dt({odev:i,ogrenciler:s}){return e.jsxs("details",{className:"hp-odev-bilgi",open:!0,children:[e.jsx("summary",{children:a("Ödev metni")}),i.yonerge?e.jsx("div",{className:"hp-teslim-metin",children:i.yonerge}):e.jsx("p",{className:"hp-soluk",children:a("Açıklama yok.")}),e.jsx("p",{className:"hp-soluk",children:[Ci(i.tur)&&a("Teslim türü: {type}",{type:Ci(i.tur)??""}),a("Kime: {who}",{who:i.hedefler?s.map(n=>n.ad).join(", ")||a("seçili öğrenciler"):a("tüm sınıf")})].filter(Boolean).join(" · ")})]})}function ct({yol:i,odevId:s,acik:n,setAcik:t}){const{durum:l}=Gs(i,s);return l.tur!=="hazir"||!l.o?.olcut.length?null:e.jsxs("details",{className:"hp-odev-bilgi",open:n,onToggle:o=>t(o.currentTarget.open),children:[e.jsx("summary",{children:a("Değerlendirme ölçütü")}),e.jsx(Ps,{satirlar:l.o.olcut})]})}function ut({odevler:i,ogrenciler:s,teslimler:n,takip:t,ac:l}){const o=new Map(n.map(u=>[`${u.userId}|${u.yol}|${u.odev_id}`,u])),r=new Map((t?.ogrenciler??[]).map(u=>[u.userId,u])),d=Hs(t);return s.length?e.jsx("div",{className:"hp-matris-sar",tabIndex:0,role:"region","aria-label":a("Öğrenci ve ödev tablosu (yatay kaydırılabilir)"),children:e.jsxs("table",{className:"hp-matris-tablo hp-odev-tablo",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{className:"hp-matris-kose"}),i.map(u=>e.jsxs("th",{scope:"col",className:"hp-yoklama-bas",title:u.baslik,children:[e.jsx("span",{className:"hp-yoklama-ders hp-odev-tablo-ad",children:u.baslik}),e.jsx("span",{className:"hp-soluk",children:u.son_tarih?a("son gün {date}",{date:ue(u.son_tarih)}):a("son gün yok")})]},u.id))]})}),e.jsx("tbody",{children:s.map(u=>{const m=r.get(u.userId)?.odev;return e.jsxs("tr",{children:[e.jsxs("th",{scope:"row",className:"hp-matris-satir",children:[e.jsx("b",{children:u.ad}),m&&e.jsxs("span",{className:"hp-soluk hp-blok",children:[L("{done}/{n} teslim",m.verilen,{done:m.teslim}),m.eksik?` · ${L("{n} eksik",m.eksik)}`:""]})]}),i.map(h=>{if(h.hedefler&&!h.hedefler.includes(u.userId))return e.jsx("td",{className:"hp-matris-hucre hp-o-yok",children:e.jsx("span",{className:"hp-soluk",title:a("{name}: bu ödev verilmedi",{name:u.ad}),children:ee("homework","verilmedi")})},h.id);const f=o.get(`${u.userId}|${h.yol}|${h.odev_id}`),k=Os(f,Ys(f,d,u.userId,h.id)),v=k==="eksik"?a("Eksik"):k==="yok"?a("Teslim yok"):Ia[k](),y=[u.ad,h.baslik,v,f?.gec?ee("homework","geç teslim"):""].filter(Boolean).join(", ");return e.jsx("td",{className:`hp-matris-hucre hp-o-${k}`,children:e.jsxs("button",{type:"button","aria-label":y,title:y,onClick:()=>l(h.id,u.userId),children:[k==="tamam"&&e.jsx("span",{"aria-hidden":"true",children:"✓ "}),k==="yok"?"–":v,f?.gec&&e.jsx("small",{children:ee("homework","geç")})]})},h.id)})]},u.userId)})})]})}):e.jsx("p",{className:"hp-bos",children:a("Sınıfta öğrenci yok.")})}function mt({takip:i,hata:s,yenile:n,filtre:t,setFiltre:l,ac:o}){const r=s?e.jsx(Pe,{baslik:i?a("Liste güncellenemedi."):a("Liste yüklenemedi."),hata:s,retry:n}):null;if(!i)return r??e.jsx("p",{className:"hp-soluk",role:"status",children:a("Liste yükleniyor…")});const d=m=>i.dikkat.filter(h=>h.tur===m).length,u=i.dikkat.filter(m=>t==="hepsi"||m.tur===t);return e.jsxs("section",{className:"hp-kontrol","aria-label":Sa.kontrol(),children:[r,e.jsxs("div",{className:"hp-gorunum hp-gorunum-kucuk",role:"group","aria-label":a("Filtre"),children:[e.jsxs("button",{type:"button","aria-pressed":t==="hepsi",onClick:()=>l("hepsi"),children:[ee("filter","Hepsi")," (",i.dikkat.length,")"]}),Object.keys(ga).map(m=>e.jsxs("button",{type:"button","aria-pressed":t===m,onClick:()=>l(m),children:[ga[m]()," (",d(m),")"]},m))]}),u.length?e.jsx("ul",{className:"hp-kontrol-liste",children:u.map(m=>e.jsx("li",{children:e.jsxs("button",{type:"button",onClick:()=>o(m.odev,m.userId),children:[e.jsx("span",{className:`hp-durum ${m.tur==="bakilacak"?"hp-durum-kismi":m.tur==="eksik"?"hp-durum-tekrar":"hp-durum-acildi"}`,children:ga[m.tur]()}),e.jsx("b",{children:m.ad}),e.jsx("span",{className:"hp-kontrol-odev",children:m.baslik}),e.jsx("span",{className:"hp-soluk",children:m.tur==="bakilacak"?a("{when} teslim etti",{when:me(m.teslim_at)}):m.tur==="eksik"?a("son gün {date}, teslim yok",{date:ue(m.son_tarih)}):a("son gün {date}, {when} teslim etti",{date:ue(m.son_tarih),when:me(m.teslim_at)})})]})},`${m.tur}|${m.odev}|${m.userId}`))}):e.jsx("p",{className:"hp-bos",children:t==="hepsi"?a("Bakılacak, eksik ya da geç teslim yok."):a("{status} yok.",{status:ga[t]()})})]})}function ht({sinifId:i,dersler:s,kurslar:n,kilitli:t,ogrenciler:l,planHata:o,verilen:r,verildi:d}){const[u,m]=c.useState(!1),[h,f]=c.useState(!1),k=c.useRef(null),v=c.useRef(null);c.useEffect(()=>{u&&v.current?.focus()},[u]);const[y,j]=c.useState(""),[g,x]=c.useState(""),[b,w]=c.useState(!1),[_,S]=c.useState(""),A=s.flatMap(K=>K.odevler.map(z=>({deger:`${K.yol}#${z.id}`,ders:K,odev:z}))),D=A.find(K=>K.deger===y),Z=D?r.find(K=>K.yol===D.ders.yol&&K.odev_id===D.odev.id):void 0,V=n.some(K=>!t.includes(K.slug)),I=h&&e.jsx(kt,{sinifId:i,kurslar:n,kilitli:t,ogrenciler:l,kapat:()=>f(!1),verildi:d});if(!u||!A.length)return e.jsxs(e.Fragment,{children:[e.jsx(Is,{neden:n.length?A.length||V?"":n.length>1?a("Atanan eğitimler kilitli; öğrenciler açamadığı için ödev verilemez. Sınıfa erişim için yukarıdaki uyarıdan bize yazın."):a("Atanan eğitim kilitli; öğrenciler açamadığı için ödev verilemez. Sınıfa erişim için yukarıdaki uyarıdan bize yazın."):a("Ödev vermek için önce sınıfa bir eğitim atayın."),dugme:K=>e.jsxs(e.Fragment,{children:[e.jsx("button",{...K,type:"button",ref:k,className:"hp-dugme",onClick:()=>A.length?m(!0):f(!0),children:a("Ödev ver")}),A.length>0&&V&&e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>f(!0),children:a("Kendi ödevinizi yazın")}),!A.length&&o&&e.jsx("span",{className:"hp-soluk",children:a("Ders listesi yüklenemedi; hazır ödevler görünmüyor.")})]})}),I]});async function H(K){if(K.preventDefault(),!D){S(a("Ödev seçin."));return}if(g&&!Be(g)){S(a("Son günü seçin ya da boş bırakın."));return}if(Z?.son_tarih&&!g){S(a("Bir gün seçin. Son günü kaldırmak için ödevin ayrıntısındaki Son günü kaldır düğmesini kullanın."));return}S(""),w(!0);try{const z=await T.odevVer(i,{yol:D.ders.yol,odevId:D.odev.id,baslik:D.odev.baslik,sonTarih:g||null});j(""),x(""),m(!1),await d(Z?a("Ödevin son günü güncellendi."):a("Ödev verildi. Öğrenciler Sınıfım sayfasında görür."),z.id)}catch(z){S(Ce(z))}finally{w(!1)}}return e.jsxs(e.Fragment,{children:[e.jsxs("form",{className:"hp-kutu hp-elle-form",onSubmit:H,noValidate:!0,children:[e.jsx("h3",{children:a("Ödev ver")}),e.jsxs("div",{className:"hp-elle-alanlar",children:[e.jsxs("label",{children:[e.jsx("span",{children:a("Ödev")}),e.jsxs("select",{ref:v,value:y,required:!0,onChange:K=>{const z=A.find(P=>P.deger===K.target.value),U=z&&r.find(P=>P.yol===z.ders.yol&&P.odev_id===z.odev.id);j(K.target.value),U&&x(U.son_tarih??""),S("")},children:[e.jsx("option",{value:"",children:a("Ödev seçin")}),s.filter(K=>K.odevler.length).map(K=>e.jsx("optgroup",{label:ca(K),children:K.odevler.map(z=>{const U=r.some(P=>P.yol===K.yol&&P.odev_id===z.id);return e.jsxs("option",{value:`${K.yol}#${z.id}`,children:[z.baslik,U?` ${a("(verildi)")}`:""]},z.id)})},K.yol))]})]}),e.jsxs("label",{children:[e.jsx("span",{children:a("Son gün")}),e.jsx("input",{type:"date",value:g,min:oa(),onChange:K=>{x(K.target.value),S("")}})]})]}),D&&e.jsxs("p",{className:"hp-soluk",children:[a("{title}: öğrencinin göreceği sayfa",{title:D.odev.baslik})," ",e.jsxs("a",{href:X(`${D.ders.yol}odev/#${encodeURIComponent(D.odev.id)}`),target:"_blank",rel:"noopener",children:[a("Ödev sayfasını açın")," ",e.jsx(Ue,{})]})]}),Z&&e.jsx("p",{className:"hp-soluk",children:a("Bu ödev sınıfa verildi; kaydederseniz son günü güncellenir.")}),D&&e.jsx(Us,{yol:D.ders.yol,odevId:D.odev.id}),_&&e.jsx("p",{className:"hp-hata",role:"alert",children:_}),e.jsxs("p",{className:"hp-elle-dugmeler",children:[e.jsx("button",{type:"submit",className:"hp-dugme",disabled:b,children:b?a("Kaydediliyor…"):Z?a("Son günü güncelle"):a("Ödev ver")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{m(!1),S(""),requestAnimationFrame(()=>k.current?.focus())},children:a("Vazgeç")}),V&&e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>f(!0),children:a("Kendi ödevinizi yazın")})]})]}),I]})}function kt({sinifId:i,kurslar:s,kilitli:n,ogrenciler:t,kapat:l,verildi:o}){const r=c.useId(),d=c.useId(),u=c.useId(),[m,h]=c.useState(s.find(z=>!n.includes(z.slug))?.slug??""),[f,k]=c.useState(""),[v,y]=c.useState(""),[j,g]=c.useState("metin"),[x,b]=c.useState(""),[w,_]=c.useState("sinif"),[S,A]=c.useState([]),[D,Z]=c.useState(!1),[V,I]=c.useState(""),H=z=>U=>{z(U),I("")};async function K(z){z.preventDefault();const U=!m||n.includes(m)?a("Öğrencilerin açabildiği bir eğitim seçin."):f.trim()?v.trim()?x&&!Be(x)?a("Son günü seçin ya da boş bırakın."):w==="secili"&&!S.length?a("En az bir öğrenci seçin."):"":a("Öğrencilerin ne yapacağını yazın."):a("Ödevin adını yazın.");if(U){I(U);return}I(""),Z(!0);try{const P=await T.odevYaz(i,{kurs:m,baslik:f.trim(),yonerge:v.trim(),tur:j,sonTarih:x||null,...w==="secili"?{ogrenciler:S}:{}});l(),await o(w==="secili"?L("Ödev verildi. Seçtiğiniz {n} öğrenci Sınıfım sayfasında görür.",S.length):a("Ödev verildi. Öğrenciler Sınıfım sayfasında görür."),P.id)}catch(P){I(Ce(P)),Z(!1)}}return e.jsx(oi,{labelledBy:r,describedBy:d,kapat:l,children:e.jsxs("form",{className:"hp-odev-yaz",onSubmit:K,noValidate:!0,children:[e.jsx("h2",{id:r,children:a("Kendi ödevinizi yazın")}),e.jsx("p",{id:d,className:"hp-onay-metin hp-soluk",children:a("Öğrenciler ödevi Sınıfım sayfasındaki Ödevlerim listesinde görür.")}),s.length>1&&e.jsxs("p",{className:"hp-onay-alan",children:[e.jsx("label",{htmlFor:`${u}-kurs`,children:ee("course","Eğitim")}),e.jsx("select",{id:`${u}-kurs`,value:m,onChange:z=>H(h)(z.target.value),children:s.map(z=>e.jsxs("option",{value:z.slug,disabled:n.includes(z.slug),children:[z.baslik,n.includes(z.slug)?` ${a("(kilitli, öğrenciler açamaz)")}`:""]},z.slug))})]}),e.jsxs("p",{className:"hp-onay-alan",children:[e.jsx("label",{htmlFor:`${u}-baslik`,children:a("Başlık")}),e.jsx("input",{id:`${u}-baslik`,value:f,maxLength:140,required:!0,"data-ilk-odak":"",autoComplete:"off",onChange:z=>H(k)(z.target.value)})]}),e.jsxs("p",{className:"hp-onay-alan",children:[e.jsx("label",{htmlFor:`${u}-yonerge`,children:a("Açıklama")}),e.jsx("textarea",{id:`${u}-yonerge`,value:v,maxLength:4e3,rows:5,required:!0,placeholder:a("Öğrenciler ne yapacak, neyi teslim edecek?"),onChange:z=>H(y)(z.target.value)})]}),e.jsxs("fieldset",{className:"hp-onay-secim",children:[e.jsx("legend",{children:a("Teslim türü")}),Object.keys(za).map(z=>e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:`${u}-tur`,value:z,checked:j===z,onChange:()=>H(g)(z)}),e.jsxs("span",{children:[e.jsx("b",{children:za[z].ad()}),e.jsx("span",{className:"hp-soluk hp-blok",children:za[z].aciklama()})]})]},z))]}),e.jsxs("p",{className:"hp-onay-alan",children:[e.jsxs("label",{htmlFor:`${u}-son`,children:[a("Son gün")," ",e.jsx("span",{className:"hp-soluk",children:a("(isteğe bağlı)")})]}),e.jsx("input",{id:`${u}-son`,type:"date",value:x,min:oa(),onChange:z=>H(b)(z.target.value)})]}),e.jsxs("fieldset",{className:"hp-onay-secim",children:[e.jsx("legend",{children:a("Kime")}),e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:`${u}-hedef`,checked:w==="sinif",onChange:()=>H(_)("sinif")}),e.jsxs("span",{children:[a("Tüm sınıf"),e.jsx("span",{className:"hp-soluk hp-blok",children:a("Sonradan katılan öğrenciler de görür.")})]})]}),e.jsxs("label",{children:[e.jsx("input",{type:"radio",name:`${u}-hedef`,checked:w==="secili",disabled:!t.length,onChange:()=>H(_)("secili")}),e.jsxs("span",{children:[a("Seçili öğrenciler"),!t.length&&e.jsx("span",{className:"hp-soluk hp-blok",children:a("Sınıfta henüz öğrenci yok.")})]})]}),w==="secili"&&e.jsx("div",{className:"hp-ogrenci-sec",role:"group","aria-label":a("Öğrenciler"),children:t.map(z=>e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:S.includes(z.userId),onChange:U=>H(A)(U.target.checked?[...S,z.userId]:S.filter(P=>P!==z.userId))}),e.jsxs("span",{children:[z.ad,z.ekip?e.jsxs("span",{className:"hp-soluk",children:[" · ",z.ekip]}):null]})]},z.userId))})]}),V&&e.jsx("p",{className:"hp-hata",role:"alert",children:V}),e.jsxs("p",{className:"hp-onay-dugmeler",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:l,children:a("Vazgeç")}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:D,children:D?a("Kaydediliyor…"):a("Ödevi ver")})]})]})})}const Ti={hedef:()=>a("hedefe ulaştı"),"hedef-disi":()=>a("robot hedefte değil"),sure:()=>a("süre doldu"),duvar:()=>a("duvara çarptı"),engel:()=>a("engele çarptı")},pt={saha_guc:i=>a("sol motor gücü {left} sağ motor gücü {right}",{left:i("SOL"),right:i("SAG")}),saha_bekle:i=>L("{n} saniye bekle",Number(i("SURE")),{n:i("SURE")}),saha_dur:()=>a("motorları durdur"),saha_ileri:i=>L("{n} karo ileri git (güç {power})",Number(i("KARO")),{n:i("KARO"),power:i("GUC")}),saha_don:i=>L("{n} derece dön",Number(i("DERECE")),{n:i("DERECE")}),saha_tik:i=>L("her iki motor {n} tik ilerle (güç {power})",Number(i("TIK")),{n:i("TIK"),power:i("GUC")})};function ft(i){const s=new DOMParser().parseFromString(i,"text/xml");if(s.getElementsByTagName("parsererror").length)return null;const n=(m,h)=>[...m.children].filter(f=>f.localName===h),t=(m,h,f)=>n(m,h).find(k=>k.getAttribute("name")===f),l=m=>m?n(m,"block")[0]??n(m,"shadow")[0]:void 0;let o=0;function r(m,h){const f=[];for(let k=m;k&&o<500;k=l(n(k,"next")[0])){o++;const v=k.getAttribute("type")??"",y=g=>t(k,"field",g)?.textContent?.trim()||"?",j=k.getAttribute("disabled")==="true"||!!k.getAttribute("disabled-reasons");if(v==="controls_repeat_ext"||v==="controls_repeat"){const g=l(t(k,"value","TIMES")),x=v==="controls_repeat"?y("TIMES"):g?.getAttribute("type")==="math_number"?t(g,"field","NUM")?.textContent?.trim()||"?":a("hesaplanan sayı"),b=h<20?r(l(t(k,"statement","DO")),h+1):[];f.push({metin:L("{n} kez tekrarla",Number(x),{n:x}),ic:b,kapali:j})}else f.push({metin:pt[v]?.(y)??a("{type} bloğu",{type:v}),kapali:j})}return f}const d=n(s.documentElement,"block"),u=d.find(m=>m.getAttribute("type")==="saha_basla");return{program:u?r(l(n(u,"next")[0]),0):[],bagsiz:d.filter(m=>m!==u).length}}function yt({xml:i}){const s=c.useMemo(()=>ft(i),[i]);if(!s)return e.jsx("p",{className:"hp-hata",children:a("Blok programı okunamadı.")});const n=t=>e.jsx("ol",{children:t.map((l,o)=>e.jsxs("li",{children:[l.metin,l.kapali&&e.jsxs("span",{className:"hp-soluk",children:[" ",a("(kapalı, çalışmaz)")]}),l.ic&&(l.ic.length?n(l.ic):e.jsxs("span",{className:"hp-soluk",children:[" ",a("(içi boş)")]}))]},o))});return e.jsxs("div",{className:"hp-blok-program",children:[e.jsx("p",{className:"hp-blok-program-bas",children:a("otonom başladığında")}),s.program.length?n(s.program):e.jsx("p",{className:"hp-soluk",children:a("Bu bloğa bağlı blok yok; program bir şey yapmaz.")}),s.bagsiz>0&&e.jsx("p",{className:"hp-soluk",children:L("Otonom başladığında bloğuna bağlı olmayan {n} blok grubu var; bunlar çalışmaz.",s.bagsiz)})]})}function gt({icerik:i,dosyaAdi:s}){if(!i)return null;const n=[],t=i.calisma;if(t&&t.arac==="builder"&&t.proje&&Array.isArray(t.proje.parts)?n.push(e.jsx(xt,{calisma:t,dosyaAdi:s},"c")):t&&t.arac!=="builder"&&t.workspace&&n.push(e.jsx(bt,{calisma:t,dosyaAdi:s},"c")),typeof i.metin=="string"&&i.metin.trim()&&n.push(e.jsx("div",{className:"hp-teslim-metin",children:i.metin},"m")),typeof i.xml=="string"){const l=i.sonuc?.veri,o=typeof l?.sure=="number"?a("{n} sn",{n:zn(l.sure,{maximumFractionDigits:1})}):"";n.push(e.jsxs("div",{className:"hp-teslim-blok",children:[e.jsx("b",{children:a("Blok programı")}),l?e.jsxs("p",{children:[a("Son çalıştırma: {result}",{result:i.sonuc?.tamam?a("hedefe ulaştı"):l.sebep&&Object.hasOwn(Ti,l.sebep)?Ti[l.sebep]():a("hedefe ulaşmadı")}),o&&`, ${o}`]}):e.jsx("p",{className:"hp-soluk",children:a("Öğrenci programı çalıştırmadan teslim etti.")}),e.jsx(yt,{xml:i.xml})]},"x"))}return typeof i.not=="string"&&i.not.trim()&&n.push(e.jsxs("div",{className:"hp-teslim-metin",children:[e.jsx("span",{className:"hp-soluk hp-blok",children:a("Öğrencinin açıklaması")}),i.not]},"n")),n.length?e.jsx(e.Fragment,{children:n}):null}function jt(i){const s=i.workspace;return i.arac==="ftc"&&s&&typeof s.ftc=="string"?s.ftc:null}function qs(i,s,n){const t=document.createElement("a");t.href=URL.createObjectURL(new Blob([i],{type:s})),t.download=n,document.body.appendChild(t),t.click(),t.remove(),setTimeout(()=>URL.revokeObjectURL(t.href),1e3)}function xt({calisma:i,dosyaAdi:s}){const[n,t]=c.useState(!1),l=typeof i.ozet?.parca=="number"?i.ozet.parca:i.proje?.parts?.length??0,o=typeof i.proje?.projectName=="string"&&i.proje.projectName.trim()||i.ozet?.robot||"";return e.jsxs("div",{className:"hp-teslim-blok",children:[e.jsx("b",{children:a("Builder projesi")}),e.jsxs("p",{children:[L("{n} parça",l),o?` · ${o}`:""]}),e.jsxs("p",{className:"hp-teslim-eylem",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>t(!0),children:a("Builder'da aç")}),e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>qs(JSON.stringify(i.proje,null,2),"application/json",`${s}.json`),children:a("Projeyi indir")})]}),n&&e.jsx(Xs,{calisma:i,baslik:s,kapat:()=>t(!1)})]})}function bt({calisma:i,dosyaAdi:s}){const[n,t]=c.useState(!1),l=i.arac==="ftc",o=jt(i),r=[];typeof i.java=="string"&&i.java.trim()&&r.push([l?"Java (OnBot)":"OnBot Java",i.java]),!l&&typeof i.kod=="string"&&i.kod.trim()&&r.push(["probot-lib (C++)",i.kod]);function d(){o&&qs(o,"application/xml",`${s}.blk`)}return e.jsxs("div",{className:"hp-teslim-blok",children:[e.jsx("b",{children:l?a("FTC Blocks programı"):a("Blok programı")}),typeof i.blok=="number"&&e.jsx("p",{children:L("{n} blok koda bağlı.",i.blok)}),e.jsxs("p",{className:"hp-teslim-eylem",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>t(!0),children:a("Bloklarla aç")}),o&&e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:d,children:a(".blk indir")})]}),r.map(([u,m])=>e.jsxs("details",{className:"hp-teslim-kod",children:[e.jsx("summary",{children:a("{name} kodu",{name:u})}),e.jsx("pre",{children:m})]},u)),n&&e.jsx(Xs,{calisma:i,baslik:s,kapat:()=>t(!1)})]})}const Ki={blocks:{ad:"Probot Blocks",adres:"/blocks/?gomulu=1",kaynak:"probot-blocks",yukleniyor:()=>a("Öğrencinin blokları yükleniyor…")},ftc:{ad:"FTC Blocks",adres:"/blocks/?gomulu=1&mod=ftc&ornek=bos",kaynak:"probot-blocks",yukleniyor:()=>a("Öğrencinin blokları yükleniyor…")},builder:{ad:"Builder",adres:"/builder/?gomulu=1",kaynak:"probot-builder",yukleniyor:()=>a("Öğrencinin robotu yükleniyor…")}};function Xs({calisma:i,baslik:s,kapat:n}){const t=c.useRef(null),l=c.useRef(null),o=c.useRef(n);o.current=n;const r=Ki[i.arac??"blocks"]??Ki.blocks,[d,u]=c.useState("yukleniyor");return c.useEffect(()=>{const m=document.activeElement instanceof HTMLElement?document.activeElement:null;t.current?.focus();const h=v=>{v.key==="Escape"&&(v.preventDefault(),o.current())},f=v=>{const y=l.current,j=v.data;if(!(v.origin!==window.location.origin||!y||v.source!==y.contentWindow||j?.kaynak!==r.kaynak))if(j.tur==="hazir"){const g=i.arac==="builder"?{proje:i.proje}:{workspace:i.workspace};y.contentWindow?.postMessage({kaynak:"probot-egitim",tur:"yukle",...g},window.location.origin),u("hazir")}else j.tur==="hata"&&u("hata")};document.addEventListener("keydown",h),window.addEventListener("message",f);const k=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",h),window.removeEventListener("message",f),document.body.style.overflow=k,m?.focus()}},[i,r.kaynak]),Ji.createPortal(e.jsxs("div",{className:"hp-tahta hp-blok-pencere ph-no-capture",role:"dialog","aria-modal":"true","aria-labelledby":"hp-blok-baslik",children:[e.jsxs("div",{className:"hp-tahta-ust",children:[e.jsxs("p",{id:"hp-blok-baslik",children:[s," · ",r.ad]}),e.jsxs("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",ref:t,onClick:()=>o.current(),children:[a("Kapat")," ",e.jsx("span",{className:"hp-soluk","aria-hidden":"true",children:"(Esc)"})]})]}),e.jsx("p",{className:"hp-soluk hp-blok-not",role:"status",children:d==="yukleniyor"?r.yukleniyor():d==="hata"?a("Teslim edilen proje açılamadı."):i.arac==="builder"?a("Öğrencinin teslim ettiği robot. Burada yaptığınız değişiklikler kaydedilmez."):a("Öğrencinin teslim ettiği bloklar. Burada yaptığınız değişiklikler kaydedilmez.")}),e.jsx("iframe",{ref:l,title:`${s}: ${r.ad}`,src:r.adres,allow:"fullscreen"})]}),document.body)}function vt({sinifId:i,ogrenci:s,odev:n,ozet:t,salt:l,taslak:o,taslakYaz:r,kayitHatasi:d,degerlendir:u,olcut:m}){const[h,f]=c.useState(void 0),[k,v]=c.useState(null),y=t?.durum==="teslim"&&!!t.degerlendirme_at&&!!t.yorum,j=y?"":t?.yorum??"",[g,x]=c.useState(o??j),b=c.useCallback(async()=>{v(null);try{f((await T.teslim(i,s.userId,n.yol,n.odev_id)).teslim)}catch(D){v(D)}},[i,s.userId,n.yol,n.odev_id]);c.useEffect(()=>{b()},[b]);const w=h!==void 0&&!k;function _(D){x(D),r(D===j?void 0:D)}const S=`${s.ad} ${n.baslik}`.replace(/[\\/:*?"<>|]+/g," ").replace(/\s+/g," ").trim().slice(0,80),A=h?e.jsx(gt,{icerik:h.icerik,dosyaAdi:S}):null;return e.jsxs("div",{children:[k?e.jsx(Pe,{baslik:a("Teslim yüklenemedi."),hata:k,retry:b}):h===void 0?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Teslim yükleniyor…")}):!h||!h.icerik&&!h.teslim_at?e.jsx("p",{className:"hp-soluk",children:a("Öğrenci bu ödev için henüz bir şey kaydetmedi. Kâğıt üstünde getirdiyse yine değerlendirebilirsiniz.")}):e.jsxs(e.Fragment,{children:[h.durum==="taslak"&&e.jsx("p",{className:"hp-soluk",children:a("Taslak: öğrenci kaydetti ama teslim etmedi.")}),A??e.jsx("p",{className:"hp-soluk",children:a("Teslimde gösterilecek içerik yok.")}),t?.kontrol?e.jsxs("p",{className:"hp-kontrol-isaret",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Değerlendirildi: {status}, {when}",{status:Ia[h.durum](),when:me(h.degerlendirme_at)})]}):h.degerlendirme_at&&e.jsx("p",{className:"hp-soluk",children:a("Son değerlendirme {when}; öğrenci sonra yeniden teslim etti.",{when:me(h.degerlendirme_at)})}),t?.gec&&n.son_tarih&&e.jsx("p",{className:"hp-soluk",children:a("Son gün {date} idi; teslim sonra geldi.",{date:ue(n.son_tarih)})}),h.otomatik&&h.durum==="tamam"&&e.jsx("p",{className:"hp-soluk",children:a("Ödev sayfasındaki denetimden geçtiği için otomatik Tamam sayıldı.")})]}),!l&&e.jsxs("div",{className:"hp-degerlendir",children:[m,y&&e.jsx("p",{className:"hp-soluk hp-onceki-geri-bildirim",children:a("Önceki geri bildiriminiz: {text}",{text:t.yorum??""})}),e.jsx("label",{htmlFor:`hp-yorum-${s.userId}`,children:a("Geri bildirim")}),e.jsx("textarea",{id:`hp-yorum-${s.userId}`,rows:3,maxLength:1e3,value:g,onChange:D=>_(D.target.value),placeholder:a("Öğrenciye yazılı yorumunuz (isteğe bağlı)")}),d&&e.jsx("p",{className:"hp-hata",children:a("Kaydedilemedi: {reason}",{reason:d})}),e.jsxs("p",{className:"hp-elle-dugmeler",children:[e.jsx("button",{type:"button",className:"hp-dugme",disabled:!w,onClick:()=>u("tamam",g),children:a("Tamam")}),e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",disabled:!w,onClick:()=>u("tekrar",g),children:a("Tekrar iste")}),!w&&e.jsx("span",{className:"hp-soluk",children:a("Teslim yüklenince değerlendirebilirsiniz.")})]}),e.jsxs("p",{className:"hp-soluk hp-degerlendir-not",children:[t?.teslim_etti?a("Tamam ya da Tekrar iste ile teslim değerlendirilmiş sayılır."):a("Teslim yokken Tamam: derste ya da kâğıtta yaptı sayılır, eksik sayılmaz. Tekrar iste: öğrenci teslim edene kadar eksik kalır.")," ",a("Kaydedince sıradaki bakılacak teslim açılır. Geri bildirim puan değildir; öğrenci ödev sayfasında, Ödevlerim ve Karnem sayfalarında görür.")]})]}),l&&t?.yorum&&e.jsxs("p",{children:[e.jsx("span",{className:"hp-soluk",children:a("Geri bildirim:")})," ",t.yorum]})]})}const Vs=c.createContext(null);function Nt(){const[i,s]=c.useState(0),n=c.useCallback(t=>s(l=>l+t),[]);return{own:i>0,provide:t=>e.jsx(Vs.Provider,{value:n,children:t})}}function zt(){const i=c.useContext(Vs);c.useLayoutEffect(()=>(i?.(1),()=>i?.(-1)),[i])}function St({sinifId:i,kurslar:s}){const{dersler:n}=Ve(s),[t,l]=c.useState(!1);return n.length?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:()=>l(!0),children:a("Canlı başlat")}),t&&e.jsx(wt,{sinifId:i,dersler:n,kapat:()=>l(!1)})]}):null}const Di=i=>[Me(i),i.baslik].filter(Boolean).join(": ");function wt({sinifId:i,dersler:s,kapat:n}){const t=c.useId(),l=c.useId(),o=c.useId(),[r,d]=c.useState(null),[u,m]=c.useState(null);c.useEffect(()=>{let y=!0;return T.yoklama(i).then(j=>{y&&d(new Set(j.oturumlar.map(g=>g.yol)))},()=>{y&&d(new Set)}),()=>{y=!1}},[i]);const h=s.find(y=>!r?.has(y.yol))??s[0],f=u??h.yol,k=[...new Map(s.map(y=>[y.kurs.slug,y.kurs])).values()],v=y=>e.jsx("option",{value:y.yol,children:r?.has(y.yol)?a("{lesson} (işlendi)",{lesson:Di(y)}):Di(y)},y.yol);return e.jsxs(oi,{labelledBy:t,describedBy:l,kapat:n,children:[e.jsx("h2",{id:t,children:a("Canlı ders başlat")}),e.jsx("p",{id:l,className:"hp-onay-metin",children:a('Tahta yeni sekmede bu sınıf için açılır. Dersi tahtadaki "Canlı ders" düğmesiyle başlatın; öğrenciler o zaman bağlanır.')}),e.jsxs("p",{className:"hp-onay-alan",children:[e.jsx("label",{htmlFor:o,children:a("Ders")}),e.jsx("select",{id:o,value:f,onChange:y=>m(y.target.value),"data-ilk-odak":"",children:k.length>1?k.map(y=>e.jsx("optgroup",{label:y.baslik,children:s.filter(j=>j.kurs.slug===y.slug).map(v)},y.slug)):s.map(v)})]}),e.jsxs("p",{className:"hp-onay-dugmeler",children:[e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:n,children:a("Vazgeç")}),e.jsxs("a",{className:"hp-dugme",href:X(`${f}tahta/?sinif=${encodeURIComponent(i)}`),target:"_blank",rel:"noopener",onClick:()=>{setTimeout(n)},children:[a("Tahtayı aç")," ",e.jsx("span",{"aria-hidden":"true",children:"↗"}),e.jsxs("span",{className:"hp-gizli",children:[" ",a("(yeni sekmede açılır)")]})]})]})]})}const Ri=(i,s)=>typeof i=="string"?i:i.metin(s(i.ogrenci));class Mi extends Error{constructor(s){super(""),this.mesaj=s}mesaj}const Fi="İşlem tamamlanamadı. Tekrar dene.";function wa(i){return i instanceof je?i.status===409&&i.message===Fi?a("Bu sınıfta şu an bu işlem yapılamıyor. Sayfayı yenileyip tekrar deneyin."):i.message===Fi?a("İşlem tamamlanamadı. Birazdan tekrar deneyin; sorun sürerse bize yazın."):a(i.message):a("Bağlantı kurulamadı. İnternet bağlantınızı kontrol edip tekrar deneyin.")}const Et={acik:()=>a("Açık"),erisebilir:()=>a("Erişimi var"),"izin-gerekli":()=>a("Kilitli"),"giris-gerekli":()=>a("Giriş gerekli")};function _t({rol:i,yenile:s}){const[n,t]=Se(),l=n.get("s"),[o,r]=c.useState(""),[d,u]=c.useState(!1),m=Fe(),h=Ta(),f=typeof m.state?.bilgi=="string"?m.state.bilgi:"";return c.useEffect(()=>{f&&h(`${m.pathname}${m.search}`,{replace:!0,state:null})},[f,m.pathname,m.search,h]),l?e.jsx(Ct,{id:l,ilkBilgi:f,adIpucu:i.durum==="tamam"?i.veri.siniflar.find(k=>k.id===l)?.ad:void 0,basligaOdaklan:d,geri:(k="")=>{r(k),t({},{replace:!1}),u(!1),k&&window.scrollTo(0,0),s()}},l):i.durum==="hata"?e.jsx(xe,{retry:s}):i.durum==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):e.jsx($t,{rol:i.veri,yenile:s,bilgi:o,ac:k=>{r(""),u(!0),t({s:k})}})}function Ws(){return e.jsxs("section",{className:"hp-kutu hp-onay",role:"status",children:[e.jsx("h2",{children:a("Öğretmen hesabınız onay bekliyor")}),e.jsx("p",{children:a("Sınıf açabilmeniz için öğretmen / mentör hesabınızı Probot ekibi elle onaylar. Onaylandığında size e-posta gönderilmez: bu sayfayı yeniden açtığınızda sınıf açma formunu görürsünüz, sonra öğrencilerinize katılım kodu verirsiniz.")}),e.jsx("p",{children:M("Bu sürede {courses} inceleyebilirsiniz; derslerdeki öğretmen notları onaydan sonra görünür.",{courses:e.jsx("a",{href:X("/egitim/"),children:ee("link","eğitimleri")})})}),e.jsx("p",{className:"hp-soluk",children:M("Uzun sürdüyse, okulunuzu veya kurumunuzu bildirmek ya da sınıf ekranını görmek isterseniz {link}. Kit kutusundaki kart kodu hesabınızı hemen onaylar.",{link:e.jsx("a",{href:X("/iletisim/"),children:a("bize yazın")})})})]})}function Qs({s:i,ac:s}){return e.jsxs("button",{type:"button",className:"hp-sinif-kart",onClick:()=>s(i.id),children:[e.jsxs("span",{className:"hp-sinif-ad",children:[i.ad,i.demo&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"hp-rozet hp-rozet-demo",children:"Demo"})]}),i.sahibi_benim===!1&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"hp-rozet",children:a("Ortak öğretmen")})]})]}),e.jsxs("span",{className:"hp-soluk",children:[L("{n} öğrenci",i.ogrenci_sayisi)," · ",i.kurslar.length?i.kurslar.map(n=>n.baslik).join(", "):a("eğitim atanmadı")]}),e.jsx("span",{className:"hp-soluk",children:i.arsivlendi_at?a("{date} tarihinde arşivlendi",{date:ye(i.arsivlendi_at)}):e.jsxs(e.Fragment,{children:[a("Kod")," ",e.jsx("span",{className:"hp-mono",children:i.katilim_kodu}),i.katilim_acik?"":` (${a("katılım kapalı")})`]})})]})}function Zs({acildi:i,etiket:s=a("Yeni sınıf")}){const[n,t]=c.useState(""),[l,o]=c.useState(""),[r,d]=c.useState(!1);async function u(m){if(m.preventDefault(),n.trim().length<2){o(a("Sınıf adı en az 2 karakter olmalı. Örnek: 9-B Robotik Kulübü."));return}o(""),d(!0);try{const{sinif:h}=await T.sinifAc(n);la("sinif_olusturuldu",{}),t(""),await i(h.id)}catch(h){o(wa(h))}finally{d(!1)}}return e.jsxs("form",{className:"hp-satir-form",onSubmit:u,noValidate:!0,children:[e.jsx("label",{htmlFor:"hp-sinif-ad",children:s}),e.jsxs("div",{children:[e.jsx("input",{id:"hp-sinif-ad",value:n,onChange:m=>{t(m.target.value),o("")},placeholder:a("Örnek: 9-B Robotik Kulübü"),minLength:2,maxLength:80,required:!0}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:r,children:r?a("Açılıyor…"):a("Sınıf aç")})]}),l&&e.jsx("p",{className:"hp-hata",role:"alert",children:l})]})}function $t({rol:i,yenile:s,ac:n,bilgi:t=""}){return e.jsxs("div",{className:"hp-siniflar",children:[t&&e.jsx("p",{className:"hp-bilgi",role:"status",children:t}),i.sinif_acabilir?e.jsx(Zs,{acildi:async l=>{await s(),n(l)}}):i.ogretmen_onay_bekliyor?e.jsx(Ws,{}):e.jsx("p",{className:"hp-bos",children:M("Yeni sınıf açmak için onaylı bir {role} hesabı gerekiyor. Kit kodunuzla hemen onay alabilir ya da {profile} bölümünden hesap türünü seçebilirsiniz.",{role:e.jsx("b",{children:a("öğretmen / mentör")}),profile:e.jsx(J,{to:"/shop/hesap/profil",children:a("Profil ve güvenlik")})})}),i.siniflar.length===0?i.sinif_acabilir&&e.jsx("p",{className:"hp-bos",children:a("Henüz sınıfınız yok. Sınıf açınca bir katılım kodu oluşur; öğrencileriniz bu kodla ya da bağlantıyla katılır.")}):e.jsx("ul",{className:"hp-liste",children:i.siniflar.map(l=>e.jsx("li",{children:e.jsx(Qs,{s:l,ac:n})},l.id))}),e.jsx(Bt,{ac:n}),e.jsx(Ca,{ogretmen:!0})]})}function Bt({ac:i}){const[s,n]=c.useState(!1),[t,l]=c.useState(null),[o,r]=c.useState(!1),d=c.useCallback(async()=>{r(!1);try{const u=await T.siniflarim(!0);l(u.siniflar.filter(m=>m.arsivlendi_at))}catch{r(!0)}},[]);return e.jsxs("section",{className:"hp-arsiv",children:[e.jsx("button",{type:"button",className:"hp-metin-dugme","aria-expanded":s,onClick:()=>{n(!s),s||d()},children:s?a("Arşivi gizle"):a("Arşivlenen sınıflar")}),s&&(o?e.jsx(xe,{retry:d}):t===null?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):t.length===0?e.jsx("p",{className:"hp-soluk",children:a("Arşivde sınıf yok.")}):e.jsx("ul",{className:"hp-liste",children:t.map(u=>e.jsx("li",{children:e.jsx(Qs,{s:u,ac:i})},u.id))}))]})}function Ct({id:i,geri:s,ilkBilgi:n="",adIpucu:t,basligaOdaklan:l=!1}){const[o]=Se(),[r,d]=c.useState(null),[u,m]=c.useState(null),[h,f]=c.useState(""),[k,v]=c.useState(n),[y,j]=c.useState(null),[g,x]=c.useState(!1),[b,w]=c.useState(""),[_,S]=c.useState(!1),[A,D]=c.useState(()=>o.get("ders")),[Z,V]=c.useState(()=>o.get("ekip")),I=Rr(o.get("sekme")),H=Gr(i),K=Br(i,r?.kurslar,H.veri?.oturum?.id),z=c.useMemo(()=>Object.fromEntries(Object.entries(K.kaynak.listeler).flatMap(([p,$])=>$?.durum==="tamam"&&!$.sayfaSayfa?[[p,$.dersler.length]]:[])),[K.kaynak.listeler]),U=$r(),P=r?ps(r):null,ae=Er(i,P),O=c.useRef(null),re=c.useRef(null),N=c.useRef(null),F=c.useRef(null),R=c.useRef(null),Y=p=>$=>{$&&p.current?.focus()},W=Kr(),G=da(),[oe,ke]=c.useState(null),pe=c.useMemo(()=>xr(i,(r?.ogrenciler??[]).map(p=>p.userId)),[i,r]),Ie=c.useRef(G.on);c.useLayoutEffect(()=>{G.on&&!Ie.current&&(v(""),f(""),ke(null)),Ie.current=G.on},[G.on]);const be=c.useCallback(async()=>{try{d(await T.sinif(i)),m(null)}catch(p){const $=p instanceof je&&(p.status===404||p.status===403);m({metin:$?a("Bu sınıf bulunamadı ya da sizin değil. Sınıflarım listesinden tekrar seçin."):wa(p),kalici:$})}},[i]),fe=c.useCallback(async()=>{x(!1);try{j((await T.egitimler()).egitimler)}catch{x(!0)}},[]);c.useEffect(()=>{be(),fe()},[be,fe]),c.useEffect(()=>{rs(i)},[i]);const ve=c.useRef(!!o.get("ekip"));c.useEffect(()=>{if(!ve.current||!r||!Z)return;const p=O.current?.querySelector(`[data-ekip="${CSS.escape(Z)}"]`);p&&(ve.current=!1,p.scrollIntoView?.({block:"center"}),p.querySelector(".hp-ekip-kart-bas")?.focus({preventScroll:!0}))});const We=c.useRef(!1);c.useEffect(()=>{!r||We.current||(We.current=!0,!ve.current&&(window.scrollTo(0,0),l&&re.current?.focus({preventScroll:!0})))},[r,l]);const Qe=c.useRef(null);c.useEffect(()=>{const p=Qe.current?.querySelector("nav"),$=p?.querySelector('[aria-current="page"]');if(!p||!$)return;const Q=p.getBoundingClientRect(),ce=$.getBoundingClientRect();(ce.left<Q.left||ce.right>Q.right)&&(p.scrollLeft+=ce.left-Q.left-16)},[I,r]),c.useEffect(()=>{if(!k)return;const p=setTimeout(()=>v(""),6e3);return()=>clearTimeout(p)},[k]);async function se(p,$=""){f(""),v(""),S(!0);try{return await p(),await be(),$&&v($),!0}catch(Q){return f(Q instanceof Mi?Q.mesaj:wa(Q)),!1}finally{S(!1)}}function Ze(p){return e.jsx("form",{className:"hp-satir-form",onSubmit:$=>{$.preventDefault();const Q=Le.find(ce=>ce.slug===b);Q&&se(()=>T.kursAta(B.id,Q.slug),a("{course} sınıfa atandı. Dersler sekmesinden ilk dersi tahtada açabilirsiniz.",{course:Q.baslik})).then(ce=>ce&&w(""))},children:e.jsxs("div",{children:[e.jsxs("select",{value:b,onChange:$=>w($.target.value),"aria-label":p,children:[e.jsx("option",{value:"",children:a("Eğitim seçin")}),Le.map($=>e.jsxs("option",{value:$.slug,children:[$.baslik,$.erisim==="izin"?` (${a("kilitli")})`:""]},$.slug))]}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:_||!b,children:a("Ata")})]})})}if(u)return e.jsxs(e.Fragment,{children:[e.jsx(Ua,{ad:t??a("Sınıf")}),e.jsxs("p",{className:"hp-hata",role:"alert",children:[u.metin,!u.kalici&&e.jsxs(e.Fragment,{children:[" ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{be()},children:a("Tekrar dene")})]})]})]});if(!r)return e.jsxs(e.Fragment,{children:[e.jsx(Ua,{ad:t??a("Sınıf")}),e.jsx("p",{className:"hp-soluk",role:"status",children:a("Sınıf yükleniyor…")})]});const B=r.sinif,Le=(y??[]).filter(p=>!r.kurslar.some($=>$.slug===p.slug)),ua=ai(B.katilim_kodu),ma=r.cikarilanlar,E=!!B.salt_okunur,C=!!B.arsivlendi_at,q=!!B.demo,te=Ns(pe,G.on),ie=fs(r,K.kaynak),{siradaki:ne}=ie,we=G.on?vr(ie.ekipler,pe,te):ie.ekipler,Ne=G.on?ie.bitisler.map(wi):ie.bitisler,ha=new Map(we.map(p=>[p.anahtar,p])),Oe=G.on?ie.yardim.map(p=>({...p,satir:ha.get(p.satir.anahtar)??p.satir,bitis:wi(p.bitis)})):ie.yardim,de=r.acilanlar??[],Ee=ie.kurslar,ka=Pn(we,Ne,ie.dersler,Oe),Ra=[...new Set(r.ogrenciler.map(p=>p.ekip?.trim()).filter(p=>!!p))].sort((p,$)=>p.localeCompare($,"tr")),Ma=`hp-ekipler-${B.id}`,fi=ne.tur==="ders"?ne.ders.yol:ne.tur==="bitti"?ne.son.yol:null,Je=ie.dersler.find(p=>p.yol===A)??ie.dersler.find(p=>p.yol===fi)??null,hn=Je?ir(we,Je.yol,Ne,de,Oe):[],pa=r.ogrenciler.filter(p=>!p.ekip?.trim()).length,kn=[L("{n} öğrenci",r.ogrenciler.length),...Ra.length?[L("{n} ekip",Ra.length),...pa?[L("{n} öğrenci ekipsiz",pa)]:[]]:[]],Fa=r.kurslar.filter(p=>p.erisim==="izin"&&!p.sinif_erisimi).map(p=>({kurs:p,sayi:r.ogrenciler.filter($=>$.kurslar.some(Q=>Q.slug===p.slug&&Q.durum==="izin-gerekli")).length})).filter(p=>p.sayi>0||r.ogrenciler.length===0),ea=!E&&!C&&ae.goster,fa=r.ayrilanlar??[],aa=[...(ma??[]).map(p=>({userId:p.user_id,ad:p.ad,at:p.cikarildi_at,kendisi:!1})),...fa.map(p=>({userId:p.user_id,ad:p.ad,at:p.ayrildi_at,kendisi:!0}))].sort((p,$)=>$.at.localeCompare(p.at)),yi=p=>$=>se(()=>T.ekip(B.id,p.userId,$),{ogrenci:p,metin:Q=>$?a("{name} için ekip kaydedildi: {team}.",{name:Q,team:$}):a("{name} artık bir ekipte değil.",{name:Q})}),ya=p=>`?${new URLSearchParams({s:B.id,sekme:p})}`,gi=e.jsx("p",{className:"hp-bos",children:a('Bu bölüm öğrenci adlarını ve durumlarını gösterir; öğrenci bilgileri gizliyken açılmaz. Görmek için yukarıdaki "Öğrenci bilgilerini gizle" ayarını kapatın.')});async function pn(p){await W.ask({title:a("{name} sınıftan çıkarılsın mı?",{name:te(p)}),body:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:a('Bu sınıfın eğitimlerinde yüklediği "Dersi bitirdik" fotoğrafları kalıcı olarak silinir; bu geri alınamaz. Öğrencinin kaldığı başka bir sınıfta aynı eğitim varsa o sınıfta görünen fotoğraflar kalır. Ders ilerlemesi, ödevleri ve yoklaması silinmez.')}),e.jsx("p",{children:a("Çıkarılan öğrenci kodla yeniden katılamaz. Öğrenci listesinin altındaki çıkarılan öğrenciler bölümünden geri alabilirsiniz; geri alınca fotoğraflar gelmez ve katılım tarihi bugün olur.")})]}),confirm:a("Çıkar"),danger:!0})&&se(()=>T.cikar(B.id,p.userId),a("{name} sınıftan çıkarıldı.",{name:te(p)})).then(Y(N))}async function fn(p){const $=te(p);await W.ask({title:a("{name} için yeni bir geçici şifre oluşturulsun mu?",{name:$}),body:e.jsx("p",{children:a("Eski şifresi artık çalışmaz ve açık oturumları kapanır.")}),confirm:a("Geçici şifre oluştur")})&&se(async()=>{const ce=await T.geciciSifre(B.id,p.userId);ke({ad:$,kullaniciAdi:ce.kullaniciAdi,sifre:ce.sifre})})}async function yn(p){await W.ask({title:a('"{course}" sınıftan kaldırılsın mı?',{course:p.baslik}),body:e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:[a("Öğrencilerin bu eğitimdeki ilerlemesi sınıf ekranında görünmez olur. Bu eğitimle yeni canlı ders ya da yoklama başlatılamaz ve yeni ödev verilemez."),B.hafta_kilidi&&` ${a('"Haftaları sırayla aç" bu eğitimde uygulanmaz.')}`]}),e.jsx("p",{children:a("Daha önce verilen ödevler öğrencilerde açık kalır ve takipte sayılır; isterseniz Ödevler sekmesinden kaldırın. Alınmış yoklamalar yerinde kalır.")}),e.jsx("p",{children:a("Hiçbir kayıt silinmez; eğitimi yeniden atarsanız ilerleme yine görünür.")})]}),confirm:a("Kaldır"),danger:!0})&&se(()=>T.kursKaldir(B.id,p.slug),a("{course} sınıftan kaldırıldı. Yeniden atarsanız ilerleme yine görünür.",{course:p.baslik})).then(Y(F))}async function gn(p){await W.ask({title:p.ad?a("{name} sınıftan kaldırılsın mı?",{name:p.ad}):a("Bu öğretmen sınıftan kaldırılsın mı?"),body:e.jsx("p",{children:a("Sınıfı artık göremez; kayıtlar silinmez. Yeniden eklemek için e-postasını yazmanız yeter.")}),confirm:a("Kaldır"),danger:!0})&&se(()=>T.ogretmenKaldir(B.id,p.userId),a("Öğretmen sınıftan kaldırıldı.")).then(Y(R))}async function jn(){await W.ask({title:a("Yeni katılım kodu oluşturulsun mu?"),body:e.jsx("p",{children:a("Eski kod ve bağlantı çalışmaz; sınıftaki öğrenciler etkilenmez.")}),confirm:a("Kodu yenile")})&&se(()=>T.kodYenile(B.id),a("Yeni kod oluşturuldu."))}async function xn(){if(C){se(()=>T.ayar(B.id,{arsiv:!1}),a("Sınıf arşivden çıkarıldı."));return}await W.ask({title:a("Sınıf arşivlensin mi?"),body:e.jsx("p",{children:a("Öğrenciler sınıfı görmez, kod çalışmaz. Kayıtlar silinmez; Sınıflarım altındaki arşivden geri alabilirsiniz.")}),confirm:a("Arşivle")})&&se(()=>T.ayar(B.id,{arsiv:!0}),a("Sınıf arşivlendi."))}async function bn(){if(await W.ask({title:a('"{class}" kalıcı olarak silinsin mi?',{class:B.ad}),body:e.jsxs(e.Fragment,{children:[e.jsx("p",{children:a("Öğrenci listesi, atanan eğitimler, yoklama ve verilen ödevler silinir; öğrencilerin bu sınıfın eğitimlerine yüklediği ders fotoğrafları da silinir (kaldıkları başka bir sınıfta aynı eğitim varsa o fotoğraflar kalır). Öğrencilerin ders ilerlemesi ve ödev teslimleri kendi hesaplarında kalır.")}),e.jsx("p",{children:e.jsx("b",{children:a("Bu işlem geri alınamaz.")})})]}),confirm:a("Kalıcı olarak sil"),danger:!0,typeToConfirm:{label:a("Onaylamak için sınıfın adını yazın"),expected:B.ad}})){f(""),v(""),S(!0);try{await T.sinifSil(B.id,B.ad),s(a('"{class}" sınıfı silindi.',{class:B.ad}))}catch($){f(wa($)),S(!1)}}}return e.jsx(br,{positions:pe,children:e.jsxs("div",{className:"hp-sinif",children:[e.jsx(ts,{children:e.jsx("title",{children:a("{title} - Eğitim - Probot Studio",{title:`${B.ad} · ${Mr(I)}`})})}),e.jsxs(Ua,{ad:B.ad,h1Ref:re,children:[B.demo&&e.jsx("span",{className:"hp-rozet hp-rozet-demo",children:"Demo"}),C&&e.jsx("span",{className:"hp-rozet",children:a("Arşivde")})]}),e.jsxs("header",{className:"hp-sinif-bas",children:[ne.tur==="ders"&&e.jsxs("p",{className:"hp-sinif-bugun",children:[e.jsx("span",{className:"hp-soluk",children:a("Sıradaki ders:")})," ",e.jsx(Ss,{ders:ne.ders})]}),e.jsx(Ba,{eksik:ie.eksik,oturumHata:ne.tur==="hata",yenile:K.yenile}),e.jsxs("p",{className:"hp-soluk",children:[kn.join(" · ")," · ",a("{date} tarihinde açıldı",{date:ye(B.created_at)})]}),!E&&!C&&!q&&B.katilim_acik&&e.jsxs("p",{className:"hp-sinif-kodu",children:[a("Katılım kodu")," ",e.jsx("b",{className:"hp-mono",children:B.katilim_kodu}),e.jsx("span",{className:"hp-soluk hp-blok",children:a("E-postası olmayan öğrenciler bu kodla probotstudio.com/egitim/katil adresinden kendileri kayıt olup sınıfa katılabilir.")})]}),e.jsxs("div",{className:"hp-bugun-dugmeler hp-bos-gizle",children:[ne.tur==="ders"&&!(ea&&Ne.length===0)&&e.jsx(Da,{ders:ne.ders}),!E&&!C&&!ea&&e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:U.ac,children:a("Kodu tahtaya yansıt")}),!E&&!C&&!H.veri?.oturum&&e.jsx(St,{sinifId:B.id,kurslar:r.kurslar})]}),e.jsx(Nr,{})]}),B.demo&&e.jsx("p",{className:"hp-soluk hp-demo-not",children:a("Bu örnek verilerle dolu bir demo sınıfıdır.")}),E?e.jsxs("p",{className:"hp-uyari",role:"status",children:[a("Bu sınıfın sahibi hesabını sildiği için sınıf salt okunur ve arşivde: kayıtları görebilirsiniz ama değişiklik yapılamaz."),B.ortak&&e.jsxs(e.Fragment,{children:[" ",M("Sınıfı sürdürmek isterseniz Probot ekibi sınıfı size devredebilir; sınıftan ayrılmak isterseniz de {link}.",{link:e.jsx("a",{href:X("/iletisim/"),children:a("bize yazın")})})]})]}):C&&e.jsxs("p",{className:"hp-uyari hp-arsiv-not",children:[a("Bu sınıf arşivde: öğrenciler sınıfı görmez ve katılım kodu çalışmaz.")," ",B.ortak?a("Arşivden yalnız sınıfı açan öğretmen çıkarabilir."):M("Sınıfı yeniden kullanmak için {settings} sekmesinden arşivden çıkarın.",{settings:e.jsx(he,{to:ya("ayarlar"),replace:!0,children:a("Ayarlar")})})]}),!E&&!C&&Fa.length>0&&e.jsx("div",{className:"hp-uyari hp-erisim-yok",children:Fa.map(({kurs:p,sayi:$})=>e.jsxs("p",{children:[M("{course} kilitli; sınıfa erişim için {link}.",{course:e.jsx("b",{children:p.baslik}),link:e.jsx("a",{href:`https://wa.me/${Sn}?text=${encodeURIComponent(a('Merhaba, "{class}" sınıfım için {course} eğitimine sınıf erişimi istiyorum.',{class:B.ad,course:p.baslik}))}`,target:"_blank",rel:"noopener noreferrer",children:a("bize yazın")})}),$>0&&e.jsxs("span",{className:"hp-soluk",children:[" ",L("{n} öğrencinin erişimi yok.",$)]})]},p.slug))}),e.jsx(Ur,{sinifId:B.id,canli:H.veri,salt:E,bitti:()=>{H.yenile()}}),e.jsx("div",{ref:Qe,children:e.jsx(Fr,{secili:I,rozet:{ogrenciler:e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"hp-sayi",children:r.ogrenciler.length})]})}})}),e.jsx("datalist",{id:Ma,children:Ra.map(p=>e.jsx("option",{value:p},p))}),I==="bugun"&&e.jsxs(e.Fragment,{children:[ka&&e.jsx("p",{className:"hp-sinif-ozet",children:ka}),ea&&e.jsx($s,{ogrenciSayisi:r.ogrenciler.length,ilkDers:ne.tur==="ders"?ne.ders:null,kodYansit:U.ac,tamamlamaVar:!!P,gizle:ae.gizle,sinif:B,egitimYok:r.kurslar.length?ie.eksik.length?e.jsx(Ba,{eksik:ie.eksik,yenile:K.yenile}):e.jsx("p",{className:"hp-soluk",children:M("{lessons} sekmesinden ilk dersi tahtada açın.",{lessons:e.jsx(he,{to:ya("dersler"),replace:!0,children:a("Dersler")})})}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"hp-soluk",children:a("Önce sınıfa bir eğitim atayın; dersler, yoklama ve ödevler atadığınız eğitimden gelir.")}),!E&&Le.length>0&&Ze(a("İlk ders için eğitim"))]})}),e.jsx(ws,{liste:Oe,kompakt:!0,ac:p=>{p.ders&&D(p.ders.yol),V(p.satir.anahtar),ve.current=!0}}),r.kurslar.length>0&&r.ogrenciler.length>0&&Je&&e.jsxs("section",{className:"hp-ekipler","aria-labelledby":"hp-ekipler-baslik",ref:O,children:[e.jsxs("div",{className:"hp-ekipler-ust",children:[e.jsx("h2",{id:"hp-ekipler-baslik",children:a("Ekipler")}),e.jsxs("label",{className:"hp-ders-sec",children:[e.jsx("span",{children:a("Ders")}),e.jsx("select",{value:Je.yol,onChange:p=>{D(p.target.value),V(null)},children:Ee.flatMap(p=>p.gruplar.map($=>e.jsx("optgroup",{label:Ee.length>1?`${p.kurs.baslik} · ${$.ad}`:$.ad,children:$.dersler.map(Q=>e.jsxs("option",{value:Q.yol,children:[Q.no?`${ri(Q)} `:"",Xe(Q),Q.yol===fi?` (${a("sıradaki ders")})`:""]},Q.yol))},`${p.kurs.slug}|${$.anahtar}`)))})]})]}),pa>0&&!E&&!C&&e.jsxs("p",{className:"hp-soluk",children:[L("{n} öğrencinin ekibi yok; her biri kendi kartında görünür.",pa)," ",M("Kartın altındaki {assign} ile ekibe ekleyebilirsiniz.",{assign:e.jsx("b",{children:a("Ata")})})]}),e.jsx(Sr,{sinifId:B.id,ders:Je,kartlar:hn,bitisler:Ne,acilanlar:de,acik:Z,setAcik:V,ekipDuzen:p=>e.jsx(Oi,{ogrenci:p.satir.uyeler[0],liste:Ma,salt:E||C,kapali:_,kaydet:yi(p.satir.uyeler[0])})}),e.jsx("p",{className:"hp-soluk hp-ekipler-tum",children:M("{lessons} sekmesinde tüm derslerin durumu tek tabloda.",{lessons:e.jsx(he,{to:ya("dersler"),replace:!0,children:a("Dersler")})})})]}),r.kurslar.length>0&&r.ogrenciler.length===0&&!ea&&e.jsx("p",{className:"hp-bos",children:C?a("Bu sınıfta öğrenci yok."):a("Henüz öğrenci yok. Katılım kodunu öğrencilerinize verin; katıldıkça ekipler burada görünür.")}),r.kurslar.length===0&&!ea&&e.jsx("p",{className:"hp-bos",children:M("Bu sınıfa henüz eğitim atanmadı. {lessons} sekmesinden bir eğitim atayın.",{lessons:e.jsx(he,{to:ya("dersler"),replace:!0,children:a("Dersler")})})})]}),I==="ogrenciler"&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-ogrenci-listesi",children:[e.jsx("h2",{id:"hp-ogrenci-listesi",ref:N,tabIndex:-1,children:a("Öğrenci listesi")}),oe&&!G.on&&e.jsxs("div",{className:"hp-bilgi hp-gecici-sifre",role:"status",children:[e.jsx("p",{children:M("{name} için yeni geçici şifre: {password} (kullanıcı adı {username}). Öğrenciye söyleyin; bu şifre bir daha gösterilmez. Öğrenci giriş yaptıktan sonra Hesabım, Profil ve güvenlik bölümünden şifresini değiştirebilir.",{name:e.jsx("b",{children:oe.ad}),password:e.jsx("b",{className:"hp-mono",children:oe.sifre}),username:e.jsx("b",{className:"hp-mono",children:oe.kullaniciAdi})})}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>ke(null),children:a("Kapat")})]}),!E&&C&&e.jsx("p",{className:"hp-soluk",children:a("Arşivdeki sınıfa öğrenci eklenemez ve ekipler değiştirilemez; önce sınıfı arşivden çıkarın.")}),!E&&!q&&!C&&e.jsx(Li,{etiket:a("E-postayla öğrenci ekle"),not:a("Öğrencinin önce kendi e-postasıyla kayıt olması gerekir. Öğrenci istediğinde sınıftan ayrılabilir."),kapali:_,ekle:p=>se(async()=>{const $=await T.ogrenciEkle(B.id,p);if(!$.degisti)throw new Mi({ogrenci:$.ogrenci,metin:Q=>a("{name} zaten bu sınıfta.",{name:Q})})},a("Öğrenci sınıfa eklendi."))}),!E&&r.ogrenciler.length>0&&e.jsxs("p",{className:"hp-soluk",children:[a("Ekip adı yalnız gruplamak içindir; öğrencinin yetkisini değiştirmez."),G.on&&` ${a("Öğrenci bilgileri gizliyken öğrenci çıkarılamaz ve geri alınamaz.")}`]}),r.ogrenciler.length===0?e.jsx("p",{className:"hp-soluk",children:C?a("Bu sınıfta öğrenci yok."):a("Henüz öğrenci yok. Katılım kodunu ya da bağlantıyı öğrencilerinizle paylaşın.")}):e.jsx("div",{className:"hp-tablo-sar",children:e.jsxs("table",{className:"hp-tablo",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:a("Öğrenci")}),e.jsx("th",{children:a("Ekip")}),r.kurslar.map(p=>e.jsx("th",{children:p.baslik},p.slug)),e.jsx("th",{children:a("Son ders")}),!E&&e.jsx("th",{children:e.jsx("span",{className:"hp-gizli",children:a("İşlem")})})]})}),e.jsx("tbody",{children:(G.on?[...r.ogrenciler].sort(vs(pe)):r.ogrenciler).map(p=>e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("b",{children:te(p)}),e.jsx("span",{className:"hp-soluk hp-blok",children:a("{date} katıldı",{date:ye(p.katildi_at)})}),!G.on&&p.kullanici_adi&&e.jsxs("span",{className:"hp-soluk hp-blok",children:[a("Kullanıcı adı:")," ",e.jsx("span",{className:"hp-mono",children:p.kullanici_adi})]}),!G.on&&p.profil&&e.jsx("span",{className:"hp-soluk hp-blok",children:Tt(p.profil)})]}),e.jsx("td",{children:e.jsx(Oi,{ogrenci:p,liste:Ma,salt:E||C,kapali:_,kaydet:yi(p)})}),p.kurslar.map($=>{const Q=z[r.kurslar.find(ce=>ce.slug===$.slug)?.yol??""];return e.jsx("td",{children:$.durum==="izin-gerekli"?e.jsx("span",{className:"hp-rozet hp-rozet-kilit",children:Et[$.durum]()}):e.jsxs(e.Fragment,{children:[M("{count} ders açtı",{count:Q?e.jsxs("b",{children:[Math.min($.acilan,Q)," / ",Q]}):e.jsx("b",{children:$.acilan})})," · ",M("{count} okudu",{count:e.jsx("b",{children:$.okunan})}),$.challenge>0&&e.jsx("span",{className:"hp-blok",children:L("{n} görev",$.challenge)}),$.son_at&&e.jsx("span",{className:"hp-soluk hp-blok",children:me($.son_at,{cumle:!1})})]})},$.slug)}),e.jsx("td",{children:p.son_ders?e.jsx("a",{href:X(p.son_ders.yol),children:p.son_ders.baslik||p.son_ders.yol}):e.jsx("span",{className:"hp-soluk",children:ee("empty","yok")})}),!E&&e.jsxs("td",{children:[e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:_||G.on,onClick:()=>{pn(p)},children:a("Çıkar")}),p.kod_hesabi&&!q&&!C&&e.jsx("button",{type:"button",className:"hp-metin-dugme hp-blok",disabled:_||G.on,onClick:()=>{fn(p)},children:a("Geçici şifre ver")})]})]},p.userId))})]})}),!ma&&r.cikarilan_sayisi>0&&e.jsx("p",{className:"hp-soluk",children:a("Sınıftan çıkarılan: {n}",{n:r.cikarilan_sayisi})}),aa.length>0&&e.jsxs("section",{className:"hp-cikarilan",children:[e.jsxs("h3",{children:[fa.length===0?a("Çıkarılan öğrenciler"):aa.length===fa.length?a("Ayrılan öğrenciler"):a("Çıkarılan ve ayrılan öğrenciler")," ","(",aa.length,")"]}),!E&&e.jsxs("p",{className:"hp-soluk",children:[aa.some(p=>!p.kendisi)&&`${a("Çıkarılan öğrenci kodla yeniden katılamaz. Geri alırsanız sınıfa döner; silinen fotoğrafları gelmez ve katılım tarihi bugün olur.")} `,fa.length>0&&a("Kendisi ayrılan öğrenci katılım koduyla yeniden katılabilir.")]}),e.jsx("ul",{className:"hp-satirlar",children:aa.map(p=>e.jsxs("li",{children:[e.jsxs("span",{children:[te(p),e.jsx("span",{className:"hp-soluk hp-blok",children:p.kendisi?a("{date} kendisi ayrıldı",{date:ye(p.at)}):a("{date} çıkarıldı",{date:ye(p.at)})})]}),!E&&!p.kendisi&&e.jsx("button",{type:"button",className:"hp-metin-dugme",disabled:_||G.on,onClick:()=>{se(()=>T.geriAl(B.id,p.userId),{ogrenci:p,metin:$=>a("{name} sınıfa geri alındı.",{name:$})}).then(Y(N))},children:a("Geri al")})]},p.userId))})]})]}),I==="dersler"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-egitimler-baslik",children:[e.jsx("h2",{id:"hp-egitimler-baslik",ref:F,tabIndex:-1,children:a("Eğitimler")}),e.jsx("p",{className:"hp-soluk",children:a("Eğitim atamak erişim vermez. Kilitli bir eğitimi sınıfın bütün öğrencilerine Probot ekibi açar.")}),r.kurslar.length===0?e.jsx("p",{className:"hp-soluk",children:a("Henüz eğitim atanmadı. Öğrenci ilerlemesi yalnız atadığınız eğitimlerde görünür.")}):e.jsx("ul",{className:"hp-satirlar",children:r.kurslar.map(p=>e.jsxs("li",{children:[e.jsxs("span",{children:[e.jsx("a",{href:X(p.yol),children:p.baslik}),p.erisim==="izin"&&(p.sinif_erisimi?e.jsx("span",{className:"hp-rozet",children:a("Sınıfa açık")}):e.jsx("span",{className:"hp-rozet hp-rozet-kilit",children:a("Kilitli")}))]}),!E&&e.jsx("button",{type:"button",className:"hp-metin-dugme",disabled:_,onClick:()=>{yn(p)},children:a("Kaldır")})]},p.slug))}),E?null:g?e.jsxs("p",{className:"hp-hata",role:"alert",children:[a("Atanabilecek eğitimler alınamadı.")," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{fe()},children:a("Tekrar dene")})]}):Le.length>0&&Ze(a("Atanacak eğitim"))]}),r.kurslar.length>0&&e.jsx(Vr,{sinifId:B.id,kurslar:r.kurslar,canli:H.veri,gizli:G.on,salt:E,siradakiYol:ne.tur==="ders"?ne.ders.yol:null,islenen:K.kaynak.islenen??null}),r.kurslar.length>0&&r.ogrenciler.length>0&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-matris-baslik",children:[e.jsx("h2",{id:"hp-matris-baslik",children:a("Ders ilerlemesi")}),e.jsx("p",{className:"hp-soluk",children:a('Ekipler dersin sonunda "Dersi bitirdik" ile kontrol maddelerini işaretler. Hücrede işaretlenen madde sayısı yazar; ayrıntı, takıldıkları yer ve fotoğraf için hücreye basın. Ekibi olmayan öğrenci kendi satırında görünür.')}),Ee.map(p=>e.jsxs("div",{className:"hp-matris-kurs",children:[Ee.length>1&&e.jsx("h3",{children:p.kurs.baslik}),e.jsx(Un,{sinifId:B.id,kurs:p.kurs,liste:p.liste,dersler:p.matris,gruplar:p.gruplar,satirList:we,bitisler:Ne,acilanlar:de})]},p.kurs.slug))]})]}),I==="yoklama"&&(G.on?gi:e.jsx(Qr,{sinifId:B.id,kurslar:r.kurslar,salt:E,canli:H.veri})),I==="odevler"&&(G.on?gi:e.jsx(nt,{sinifId:B.id,kurslar:r.kurslar,salt:E,kilitli:Fa.map(p=>p.kurs.slug)})),I==="ayarlar"&&e.jsxs(e.Fragment,{children:[!E&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-ayar-sinif",children:[e.jsx("h2",{id:"hp-ayar-sinif",children:a("Sınıf")}),e.jsxs("form",{className:"hp-satir-form",onSubmit:p=>{p.preventDefault();const $=String(new FormData(p.currentTarget).get("ad")||"");se(()=>T.ayar(B.id,{ad:$}),a("Sınıf adı kaydedildi."))},children:[e.jsx("label",{htmlFor:"hp-sinif-yeniad",children:a("Sınıf adı")}),e.jsxs("div",{children:[e.jsx("input",{id:"hp-sinif-yeniad",name:"ad",defaultValue:B.ad,minLength:2,maxLength:80,required:!0},B.ad),e.jsx("button",{type:"submit",className:"hp-dugme hp-dugme-ikincil",disabled:_,children:a("Kaydet")})]})]})]}),!E&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-ayar-kod",children:[e.jsxs("h2",{id:"hp-ayar-kod",children:[a("Katılım kodu"),!_s(B)&&e.jsxs("span",{className:"hp-soluk",children:[" · ",q?ee("join-code","demo"):C?ee("join-code","arşivde"):ee("join-code","kapalı")]})]}),q?e.jsx("p",{className:"hp-soluk",children:a("Demo sınıfa öğrenci katılamaz; kod yalnız örnek olarak görünür.")}):C&&e.jsx("p",{className:"hp-soluk",children:a("Sınıf arşivde: kod ve bağlantı çalışmaz. Sınıfı arşivden çıkarınca katılım ayarları yeniden geçerli olur.")}),e.jsxs("p",{className:"hp-kod-satir",children:[e.jsx("span",{className:"hp-kod",children:B.katilim_kodu}),e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",onClick:U.ac,children:a("Kodu tahtaya yansıt")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>Za(B.katilim_kodu,v,a("Kod kopyalandı.")),children:a("Kodu kopyala")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>Za(ua,v,a("Katılım bağlantısı kopyalandı.")),children:a("Bağlantıyı kopyala")}),!q&&!C&&e.jsx("button",{type:"button",className:"hp-metin-dugme",disabled:_,onClick:()=>{jn()},children:a("Kodu yenile")})]}),e.jsx("p",{className:"hp-soluk hp-kirp",children:ua}),!q&&e.jsx(Hi,{etiket:a("Yeni öğrenci katılabilsin"),acik:B.katilim_acik,kapali:_||C,degis:p=>se(()=>T.ayar(B.id,{katilim_acik:p}),p?a("Katılım açıldı: kod çalışıyor."):a("Katılım kapandı: kod çalışmıyor.")),not:C?a("Arşivdeki sınıfa katılınamaz; arşivden çıkarınca değiştirebilirsiniz."):a("Kapalıyken kod çalışmaz; sınıftaki öğrenciler kalır.")}),e.jsx(Hi,{etiket:a("Haftaları sırayla aç"),acik:!!B.hafta_kilidi,kapali:_||C,degis:p=>se(()=>T.ayar(B.id,{hafta_kilidi:p}),p?a("Haftalar sırayla açılıyor."):a("Haftaların hepsi öğrencilere açık.")),not:C?a("Arşivdeki sınıfta uygulanmaz; arşivden çıkarınca değiştirebilirsiniz."):a("Açıkken öğrenciler bu haftanın ve geçmiş haftaların derslerini açar; sonraki haftaların başlıkları görünür, içeriği haftası gelince açılır. Haftalık takvimi olan ve bu sınıfa atanmış eğitimlerde geçerli (Zağanos FTC). Öğretmenler her şeyi görür.")})]}),r.ogretmenler&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-ayar-ogretmen",children:[e.jsx("h2",{id:"hp-ayar-ogretmen",ref:R,tabIndex:-1,children:a("Öğretmenler ({n})",{n:r.ogretmenler.length})}),e.jsx("p",{className:"hp-soluk",children:a("Ortak öğretmenler sınıfı sizinle birlikte yönetir: öğrenciler, dersler, yoklama ve ödevler. Sınıfı arşivlemek ve öğretmen eklemek sınıfı açan öğretmenindir.")}),e.jsx("ul",{className:"hp-satirlar",children:r.ogretmenler.map(p=>e.jsxs("li",{children:[e.jsxs("span",{children:[p.ad||a("Adsız"),e.jsx("span",{className:"hp-soluk hp-blok",children:p.sahibi?a("Sınıfı açan"):a("{date} eklendi",{date:ye(p.eklendi_at)})})]}),!E&&!B.ortak&&!p.sahibi&&e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:_,onClick:()=>{gn(p)},children:a("Kaldır")})]},p.userId))}),!E&&!B.ortak&&e.jsx(Li,{etiket:a("Ortak öğretmen ekle"),not:a("Eklenecek kişinin onaylı öğretmen hesabı olmalı."),kapali:_,ekle:p=>se(async()=>{const $=await T.ogretmenEkle(B.id,p);if(!$.degisti)throw new je(a("{name} zaten bu sınıfın öğretmeni.",{name:$.ogretmen.ad}),409)},a("Ortak öğretmen eklendi."))})]}),!E&&!B.ortak&&e.jsxs("section",{className:"hp-sinif-bolum","aria-labelledby":"hp-ayar-arsiv",children:[e.jsx("h2",{id:"hp-ayar-arsiv",children:a("Arşiv ve silme")}),e.jsx("p",{className:"hp-soluk",children:a("Arşivlenen sınıfı öğrenciler görmez, kodu çalışmaz; kayıtlar kalır ve arşivden geri alabilirsiniz. Kalıcı silme yalnız arşivdeki sınıf için açılır.")}),e.jsxs("div",{className:"hp-sinif-islemler",children:[e.jsx("button",{type:"button",className:"hp-metin-dugme",disabled:_,onClick:()=>{xn()},children:C?a("Arşivden çıkar"):a("Sınıfı arşivle")}),C&&q&&e.jsx("p",{className:"hp-soluk",children:a("Demo sınıf yönetim panelinden silinir.")}),C&&!q&&e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:_,onClick:()=>{bn()},children:a("Sınıfı kalıcı olarak sil")})]})]})]}),e.jsx(It,{hata:Ri(h,te),bilgi:Ri(k,te),kapat:()=>f("")}),W.dialog,U.acik&&e.jsx(Bs,{kod:B.katilim_kodu,sinifAd:B.ad,katilimAcik:B.katilim_acik,arsiv:C,demo:q,kapat:U.kapat})]})})}function Ua({ad:i,h1Ref:s,children:n}){return zt(),e.jsxs("div",{className:"head hp-sinif-head",children:[e.jsxs("nav",{className:"hp-konum","aria-label":a("Konum"),children:[e.jsx(J,{to:ge.ogretmen,children:a("Sınıflarım")}),e.jsx("span",{"aria-hidden":"true",children:" ›"})]}),e.jsxs("div",{className:"hp-sinif-bas-ad",children:[e.jsx("h1",{ref:s,tabIndex:-1,children:i}),n]})]})}function It({hata:i,bilgi:s,kapat:n}){return e.jsxs("div",{className:"hp-bildirimler",children:[e.jsx("div",{role:"alert",children:i&&e.jsxs("p",{className:"hp-bildirim hp-bildirim-hata",children:[e.jsx("span",{children:i}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:n,children:a("Kapat")})]})}),e.jsx("div",{role:"status",children:s&&e.jsx("p",{className:"hp-bildirim",children:s})})]})}function Li({etiket:i,not:s,kapali:n,ekle:t}){const[l,o]=c.useState(""),r=c.useId();return e.jsxs("form",{className:"hp-satir-form",onSubmit:d=>{d.preventDefault();const u=l.trim();u&&t(u).then(m=>m&&o(""))},children:[e.jsx("label",{htmlFor:r,children:i}),e.jsxs("div",{children:[e.jsx("input",{id:r,type:"email",value:l,onChange:d=>o(d.target.value),placeholder:a("ornek@eposta.com"),autoComplete:"off",required:!0}),e.jsx("button",{type:"submit",className:"hp-dugme hp-dugme-ikincil",disabled:n||!l.trim(),children:a("Ekle")})]}),e.jsx("p",{className:"hp-soluk",children:s})]})}const At=24;function Oi({ogrenci:i,liste:s,salt:n,kapali:t,kaydet:l}){const o=i.ekip?.trim()||"",[r,d]=c.useState(!1),[u,m]=c.useState(o),h=c.useRef(null),f=c.useRef(null),k=li()(i),v=c.useId(),y=c.useRef(!1),j=()=>{y.current=!0};if(c.useEffect(()=>{r&&h.current?.select()},[r]),c.useEffect(()=>{!r&&!t&&y.current&&(y.current=!1,f.current?.focus())},[r,t]),n)return o?e.jsx("span",{children:o}):e.jsx("span",{className:"hp-rozet hp-rozet-uyari",children:a("Ekibi yok")});if(!r)return e.jsxs("span",{className:"hp-ekip",children:[o?e.jsx("span",{children:o}):e.jsxs("span",{className:"hp-rozet hp-rozet-uyari",children:[e.jsx("span",{"aria-hidden":"true",children:"!"})," ",a("Ekibi yok")]}),e.jsx("button",{type:"button",ref:f,className:"hp-metin-dugme",disabled:t,"aria-label":o?a("{name} ekibini değiştir",{name:k}):a("{name} ekibini ata",{name:k}),onClick:()=>{m(o),d(!0)},children:o?a("Değiştir"):a("Ata")})]});async function g(b){b.preventDefault();const w=u.replace(/\s+/g," ").trim();if(w===o){d(!1),j();return}await l(w||null)&&(d(!1),j())}const x=b=>{b.key==="Escape"&&(b.preventDefault(),d(!1),j())};return e.jsxs("form",{className:"hp-ekip-form",onSubmit:g,onKeyDown:x,children:[e.jsx("input",{ref:h,list:s,value:u,onChange:b=>m(b.target.value),maxLength:At,placeholder:a("Ekip adı"),"aria-label":a("{name} ekibi",{name:k}),"aria-describedby":v,autoComplete:"off"}),e.jsx("span",{id:v,className:"hp-gizli",children:a("Listeden seçin ya da yeni ekip adı yazın. Boş bırakırsanız öğrenci ekipten çıkar.")}),e.jsx("button",{type:"submit",className:"hp-metin-dugme",disabled:t,children:a("Kaydet")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{d(!1),j()},children:a("Vazgeç")})]})}function Hi({etiket:i,acik:s,kapali:n,degis:t,not:l}){return e.jsxs("div",{className:"hp-anahtar",children:[e.jsxs("button",{type:"button",role:"switch","aria-checked":s,disabled:n,onClick:()=>t(!s),children:[e.jsx("span",{className:"hp-anahtar-iz","aria-hidden":"true"}),e.jsx("span",{children:i}),e.jsx("b",{children:s?ee("switch","Açık"):a("Kapalı")})]}),l&&e.jsx("p",{className:"hp-soluk",children:l})]})}function Tt(i){const s=ls(i.sinif_duzeyi??""),n=i.deneyim.map(t=>t==="diger"?i.deneyim_diger||a("Diğer"):os[t]??t);return[s,i.yas!=null?L("{n} yaş",i.yas):"",n.length?a("Deneyim: {list}",{list:n.join(", ")}):a("Deneyim yok")].filter(Boolean).join(" · ")}const Yi=3,Gi=async i=>Object.fromEntries(await Promise.all([...new Set(i)].map(async s=>[s,await es(s)])));function Kt({veri:i,yenile:s}){const[n]=c.useState(wn),t=Jn(i.siniflar,n),l=t.slice(0,Yi),o=Re(`bugun:${l.map(b=>b.id).join(",")}`,async()=>{const[b,w]=await Promise.all([Promise.all(l.map(async S=>{const[A,D]=await Promise.all([T.sinif(S.id),T.takip(S.id).then(Z=>Z.oturumlar.map(V=>V.yol),()=>null)]);return{d:A,islenen:D}})),Gi(l.flatMap(S=>S.kurslar.map(A=>A.yol)))]),_=b.flatMap(({d:S})=>S.kurslar.map(A=>A.yol)).filter(S=>!w[S]);return{siniflar:b,listeler:_.length?{...w,...await Gi(_)}:w}}),[r,d]=c.useState(null);if(!t.length)return e.jsx(Dt,{veri:i,yenile:s});if(o.error)return e.jsx(xe,{retry:o.refresh});if(!o.data)return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Sınıflarınız yükleniyor…")});const{listeler:u}=o.data,m=()=>{o.refresh().catch(()=>{})},h=o.data.siniflar.map(({d:b,islenen:w})=>({d:b,m:fs(b,{listeler:u,islenen:w})})),f=h.length>1,k=h.filter(({m:b})=>!b.ilk),v=h.filter(({m:b})=>b.ilk),y=k.length>0&&v.length>0,j=y?k:h,g=h.flatMap(({d:b,m:w})=>w.yardim.map(_=>({..._,sinif:{id:b.sinif.id,ad:b.sinif.ad}}))).sort((b,w)=>w.bitis.bitti_at.localeCompare(b.bitis.bitti_at)).map(b=>f?b:{...b,sinif:{...b.sinif,ad:""}}),x=({d:b,m:w})=>{const _=w.siradaki,S=_.tur==="ders"?_.ders:null;return e.jsxs("article",{className:"hp-bugun","aria-labelledby":`hp-bugun-${b.sinif.id}`,children:[e.jsxs("h2",{id:`hp-bugun-${b.sinif.id}`,className:"hp-bugun-sinif",children:[b.sinif.ad,b.sinif.demo&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"hp-rozet hp-rozet-demo",children:"Demo"})]})]}),w.ilk?e.jsx($s,{ogrenciSayisi:b.ogrenciler.length,ilkDers:S,kodYansit:()=>d(b.sinif),tamamlamaVar:!1,egitimYok:b.kurslar.length?w.eksik.length?e.jsx(Ba,{eksik:w.eksik,yenile:m}):e.jsx("p",{className:"hp-soluk",children:M("{lessons} sekmesinden ilk dersi tahtada açın.",{lessons:e.jsx(J,{to:Te(b.sinif.id,{sekme:"dersler"}),children:a("Dersler")})})}):e.jsx("p",{className:"hp-soluk",children:M("Önce sınıfa bir eğitim atayın: {link}.",{link:e.jsx(J,{to:Te(b.sinif.id),children:a("Sınıfa git")})})})}):_.tur==="ders"?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"hp-ust-etiket",children:a("Sıradaki ders")}),e.jsx("p",{className:"hp-bugun-ders",children:e.jsx(Ss,{ders:_.ders})}),e.jsxs("p",{className:"hp-soluk",children:[_.ders.sayfaSayfa?a("İşlenen ders: {done} / {total}",{done:_.islenen,total:_.toplam}):Qn(w.ekipler,_.ders.yol,w.bitisler)??a("Henüz öğrenci yok."),w.yardim.length>0&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("span",{className:"hp-yardim-say",children:[e.jsx("span",{"aria-hidden":"true",children:"!"})," ",Zn(w.yardim)]})]})]})]}):_.tur==="bitti"?e.jsxs("p",{className:"hp-bugun-ders",children:[e.jsxs("span",{className:"hp-durum hp-durum-bitti",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Bitti")]})," ",a("Sınıf atanan eğitimlerin bütün derslerini işledi.")]}):_.tur==="egitim-yok"?e.jsx("p",{className:"hp-soluk",children:a("Bu sınıfa henüz eğitim atanmadı. Sınıf sayfasından bir eğitim atayın.")}):_.tur==="liste-yok"&&!w.eksik.length?e.jsx("p",{className:"hp-soluk",children:M("Sıradaki dersi {lessons} sekmesinden tahtada açın.",{lessons:e.jsx(J,{to:Te(b.sinif.id,{sekme:"dersler"}),children:a("Dersler")})})}):null,!w.ilk&&e.jsx(Ba,{eksik:w.eksik,oturumHata:_.tur==="hata",yenile:m}),e.jsxs("div",{onClick:A=>{A.target.closest('a[target="_blank"]')&&rs(b.sinif.id)},children:[e.jsxs("div",{className:"hp-bugun-dugmeler",children:[!w.ilk&&S&&e.jsx(Da,{ders:S}),e.jsx(J,{className:w.ilk||S?"hp-dugme hp-dugme-ikincil":"hp-dugme",to:Te(b.sinif.id),children:a("Sınıfa git")})]}),!w.ilk&&e.jsx(Cr,{dersler:w.kurslar.flatMap(A=>A.dersler),siradaki:S?.yol??null})]})]},b.sinif.id)};return e.jsxs("div",{className:y?"hp-bugun-sayfa hp-bugun-iki":"hp-bugun-sayfa",children:[e.jsxs("div",{className:"hp-bugun-sol",children:[e.jsx("div",{className:j.length>1&&!y?"hp-bugun-liste hp-bugun-coklu":"hp-bugun-liste",children:j.map(x)}),t.length>Yi&&e.jsx("p",{className:"hp-tum",children:e.jsx(J,{to:ge.siniflar,className:"hp-ok",children:a("Tüm sınıflar ({n})",{n:t.length})})}),e.jsx(ws,{liste:g})]}),y&&e.jsx("div",{className:"hp-bugun-sag hp-bugun-liste",children:v.map(x)}),r&&e.jsx(Bs,{kod:r.katilim_kodu,sinifAd:r.ad,katilimAcik:r.katilim_acik,arsiv:!!r.arsivlendi_at,demo:!!r.demo,kapat:()=>d(null)})]})}function Dt({veri:i,yenile:s}){const n=as();return i.ogretmen_onay_bekliyor?e.jsxs(e.Fragment,{children:[e.jsx(Ws,{}),e.jsx(Ca,{ogretmen:!0})]}):e.jsxs("section",{className:"hp-kutu hp-bugun-bos",children:[e.jsx("h2",{children:i.sinif_acabilir?a("İlk sınıfınızı açın"):a("Sınıf açmak için onaylı hesap gerekiyor")}),e.jsx("p",{children:i.sinif_acabilir?a("Sınıf açınca bir katılım kodu oluşur. Kodu tahtaya yansıtırsınız, öğrenciler katılır ve sıradaki ders burada görünür."):a("Kit kutusundaki kart kodunu etkinleştirerek ya da Profil ve güvenlik bölümünden öğretmen / mentör hesabı seçerek başlayabilirsiniz.")}),i.sinif_acabilir?e.jsx(Zs,{etiket:a("Sınıfın adı"),acildi:async t=>{n(Te(t)),await s()}}):e.jsx("div",{className:"hp-bugun-dugmeler",children:e.jsx(J,{className:"hp-dugme",to:ge.etkinlestir,children:a("Kit kodunu etkinleştirin")})}),i.sinif_acabilir&&e.jsx(Ca,{ogretmen:!0})]})}const Rt={yok:{metin:()=>a("Teslim edilmedi"),sinif:"hp-durum-yok"},taslak:{metin:()=>a("Taslak"),sinif:"hp-durum-acildi"},teslim:{metin:()=>a("Teslim edildi"),sinif:"hp-durum-kismi"},tamam:{metin:()=>a("Tamam"),sinif:"hp-durum-bitti"},tekrar:{metin:()=>a("Tekrar yap"),sinif:"hp-durum-tekrar"}},De=i=>!i.durum||i.durum==="taslak"||i.durum==="tekrar",Mt=i=>{const s=Be(i);return!!s&&s.getTime()<Be(oa()).getTime()},hi=(i,s)=>X(s.startsWith("ogr-")?`/egitim/sinifim/odevler/#${encodeURIComponent(s)}`:`${i}odev/#${encodeURIComponent(s)}`),Js=i=>hi(i.yol,i.odevId),Pi=i=>i.kaynak==="ogretmen"||i.odevId.startsWith("ogr-");function Ft({o:i}){const s=Rt[i.durum??"yok"];return e.jsxs("span",{className:`hp-durum ${s.sinif}`,children:[i.durum==="tamam"&&e.jsx("span",{"aria-hidden":"true",children:"✓"}),s.metin()]})}function Lt({userId:i,siniflar:s}){const n=Re(`odevlerim:${i}`,()=>T.odevlerim()),t=c.useMemo(()=>{const r=new Set;return s.flatMap(d=>d.kurslar).filter(d=>d.durum!=="izin-gerekli"&&d.durum!=="giris-gerekli"&&!r.has(d.slug)&&!!r.add(d.slug)).map(d=>({slug:d.slug,yol:d.yol,baslik:d.baslik}))},[s]),{dersler:l}=Ve(t),o=n.data?.odevler??[];return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"hp-odevlerim","aria-labelledby":"hp-odevlerim-baslik",children:[e.jsx("h2",{id:"hp-odevlerim-baslik",children:a("Ödevlerim")}),n.error?e.jsx(xe,{retry:n.refresh}):n.data?o.length?e.jsx(en,{odevler:o,dersler:l,cokSinif:s.length>1,yenile:n.refresh}):e.jsx("p",{className:"hp-soluk",children:a("Şu an verilmiş bir ödevin yok. Öğretmenin ödev verince burada görünür.")}):e.jsx("p",{className:"hp-soluk",role:"status",children:a("Ödevler yükleniyor…")})]}),s.map(r=>e.jsx(Ht,{sinif:r,dersler:l,odevler:o,baslikta:s.length>1},r.id))]})}function en({odevler:i,dersler:s,cokSinif:n,yenile:t}){const l=[...i.filter(De),...i.filter(o=>!De(o))];return e.jsx("ul",{className:"hp-odevim-liste",children:l.map(o=>{const r=s.find(u=>u.yol===o.yol),d=o.son_tarih&&De(o)&&Mt(o.son_tarih);return e.jsxs("li",{id:Pi(o)?o.odevId:void 0,className:"hp-odevim",children:[e.jsxs("div",{className:"hp-odevim-ust",children:[e.jsxs("div",{children:[e.jsx("b",{children:o.baslik}),e.jsx("span",{className:"hp-soluk hp-blok",children:[n?o.sinif:null,r?Me(r)??r.baslik:null,o.son_tarih?a("son gün {date}",{date:ue(o.son_tarih)}):null].filter(Boolean).join(" · ")})]}),e.jsxs("span",{className:"hp-odevim-durum",children:[e.jsx(Ft,{o}),(d||o.eksik)&&e.jsx("span",{className:"hp-rozet hp-rozet-uyari",children:o.eksik?a("Eksik: süresi geçti"):a("Süresi geçti")}),o.gec&&e.jsx("span",{className:"hp-rozet hp-rozet-gec",children:a("Geç teslim")})]})]}),o.kontrol&&o.degerlendirme_at&&e.jsxs("p",{className:"hp-kontrol-isaret hp-odevim-kontrol",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Öğretmenin kontrol etti, {when}",{when:me(o.degerlendirme_at)})]}),o.yorum&&e.jsxs("p",{className:"hp-takildik",children:[e.jsx("span",{className:"hp-soluk hp-blok",children:a("Öğretmeninin notu")}),o.yorum]}),Pi(o)?e.jsx(Ot,{o,yenile:t}):e.jsx("a",{className:De(o)?"hp-dugme":"hp-dugme hp-dugme-ikincil",href:Js(o),children:a("Ödevi aç")})]},o.id)})})}function Ot({o:i,yenile:s}){const n=c.useId(),[t,l]=c.useState(!1),[o,r]=c.useState("yukleniyor"),[d,u]=c.useState(""),[m,h]=c.useState(!1),[f,k]=c.useState(""),[v,y]=c.useState(""),j=i.durum==="tamam";async function g(){l(!0),y(""),k(""),r("yukleniyor");try{const b=await T.odevim(i.yol,i.odevId);u(typeof b.teslim?.icerik?.metin=="string"?b.teslim.icerik.metin:""),r("hazir")}catch{r("hata")}}async function x(b){if(b.preventDefault(),!d.trim()){k(a("Önce cevabını yaz."));return}k(""),h(!0);try{await T.odevTeslim({yol:i.yol,id:i.odevId,metin:d.trim()}),l(!1),y(a("Cevabın teslim edildi. Öğretmenin kontrol edince burada görürsün.")),await s?.().catch(()=>{})}catch(w){k(w instanceof Error?a(w.message):a("Teslim edilemedi. Tekrar dene."))}finally{h(!1)}}return e.jsxs("div",{className:"hp-odevim-ogretmen",children:[i.yonerge&&e.jsx("div",{className:"hp-teslim-metin",children:i.yonerge}),i.tur==="sinifta"?e.jsx("p",{className:"hp-soluk",children:a("Bu ödevi sınıfta ya da kâğıt üstünde yapıyorsun; öğretmenin işaretleyecek.")}):t?o==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Cevabın yükleniyor…")}):o==="hata"?e.jsxs("p",{className:"hp-hata",role:"alert",children:[a("Cevabın yüklenemedi.")," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{g()},children:a("Tekrar dene")})]}):e.jsxs("form",{className:"hp-odevim-cevap",onSubmit:x,noValidate:!0,children:[e.jsx("label",{htmlFor:`${n}-cevap`,children:a("Cevabın")}),e.jsx("textarea",{id:`${n}-cevap`,rows:5,maxLength:2e4,value:d,readOnly:j,autoFocus:!0,onChange:b=>{u(b.target.value),k("")}}),f&&e.jsx("p",{className:"hp-hata",role:"alert",children:f}),e.jsxs("p",{className:"hp-elle-dugmeler",children:[!j&&e.jsx("button",{type:"submit",className:"hp-dugme",disabled:m,children:m?a("Gönderiliyor…"):i.durum==="teslim"||i.durum==="tekrar"?a("Yeniden teslim et"):a("Teslim et")}),e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:()=>{l(!1),k("")},children:j?a("Kapat"):a("Vazgeç")})]})]}):e.jsx("button",{type:"button",className:De(i)?"hp-dugme":"hp-dugme hp-dugme-ikincil",onClick:()=>{g()},children:!i.durum||i.durum==="taslak"?a("Cevabını yaz"):i.durum==="tekrar"?a("Cevabını düzelt"):a("Cevabını gör")}),e.jsx("div",{role:"status",children:v&&e.jsx("p",{className:"hp-bilgi",children:v})})]})}function Ht({sinif:i,dersler:s,odevler:n,baslikta:t}){const l=s.filter(h=>i.kurslar.some(f=>f.slug===h.kurs.slug));if(!l.length)return null;const o=[...new Set(l.map(h=>h.kurs.baslik))].join(", "),r=n.filter(h=>h.sinifId===i.id),d=Rs(l),u=r.find(De)??r.at(-1),m=d.find(h=>h.dersler.some(f=>f.yol===u?.yol))??d[0];return e.jsxs("details",{className:"hp-acilir hp-ogr-dersler",open:!0,children:[e.jsxs("summary",{children:[a("Dersler")," ",e.jsxs("span",{className:"hp-soluk",children:[t?`${i.ad} · `:"",o]})]}),e.jsx("div",{className:"hp-acilir-ic",children:d.map(h=>{const f=h.dersler.reduce((k,v)=>k+r.filter(y=>y.yol===v.yol&&De(y)).length,0);return e.jsxs("details",{className:"hp-hafta",open:h===m||void 0,children:[e.jsxs("summary",{children:[e.jsx("b",{children:h.ad})," ",e.jsxs("span",{className:"hp-soluk",children:[L("{n} ders",h.dersler.length),f?` · ${L("{n} açık ödev",f)}`:""]})]}),e.jsx("ul",{className:"hp-ogr-ders-liste",children:h.dersler.map(k=>{const v=Me(k),y=r.filter(j=>j.yol===k.yol);return e.jsxs("li",{children:[e.jsxs("span",{className:"hp-ders-baslik",children:[v&&e.jsx("span",{className:"hp-ders-yer",children:v}),e.jsx("b",{children:k.baslik})]}),e.jsxs("span",{className:"hp-ogr-ders-linkler",children:[e.jsx("a",{href:X(`${k.yol}ogrenci/`),children:a("Öğrenci modülü")}),y.map(j=>e.jsxs("a",{href:Js(j),children:[y.length>1?a("Ödev: {title}",{title:j.baslik}):a("Ödev"),j.durum==="tamam"&&e.jsxs("span",{className:"hp-gizli",children:[" ",a("(tamam)")]})]},j.id))]})]},k.yol)})})]},h.ad)})})]})}function Yt({userId:i,siniflar:s}){const n=Re(`odevlerim:${i}`,()=>T.odevlerim()),t=c.useMemo(()=>{const o=new Set;return s.flatMap(r=>r.kurslar).filter(r=>r.durum!=="izin-gerekli"&&r.durum!=="giris-gerekli"&&!o.has(r.slug)&&!!o.add(r.slug)).map(r=>({slug:r.slug,yol:r.yol,baslik:r.baslik}))},[s]),{dersler:l}=Ve(t);return n.error?e.jsx(xe,{retry:n.refresh}):n.data?n.data.odevler.length?e.jsx(en,{odevler:n.data.odevler,dersler:l,cokSinif:s.length>1,yenile:n.refresh}):e.jsx("p",{className:"hp-soluk",children:a("Şu an verilmiş bir ödevin yok. Öğretmenin ödev verince burada görünür.")}):e.jsx("p",{className:"hp-soluk",role:"status",children:a("Ödevler yükleniyor…")})}function Gt(){const[i,s]=c.useState([]);return c.useEffect(()=>{let n=!0;return ds().then(t=>{n&&s(t)}),()=>{n=!1}},[]),i}const Pt=(i,s)=>s>0?Math.round(100*i/s):0;function xa({deger:i,toplam:s,etiket:n}){return e.jsxs("div",{className:"krn-olcu",children:[e.jsxs("div",{className:"krn-olcu-ust",children:[e.jsx("span",{children:n}),e.jsxs("b",{children:[i,e.jsxs("span",{className:"hp-soluk",children:[" / ",s]})]})]}),e.jsx("div",{className:"krn-cubuk",role:"img","aria-label":a("{label}: {total} içinden {value}",{label:n,total:s,value:i}),children:e.jsx("span",{style:{width:`${Pt(i,s)}%`}})})]})}const Ut={geldi:()=>a("Geldin"),gec:()=>a("Geç geldin"),gelmedi:()=>a("Gelmedin"),izinli:()=>a("İzinli")},qt={geldi:"hp-durum-bitti",gec:"hp-durum-kismi",gelmedi:"hp-durum-tekrar",izinli:"hp-durum-acildi",yok:"hp-durum-yok"};function Xt({odevler:i}){const s=t=>i.filter(t).length,n=i.filter(t=>t.eksik);return e.jsxs("section",{"aria-labelledby":"krn-odev",children:[e.jsx("h2",{id:"krn-odev",className:"krn-baslik",children:a("Ödev durumun")}),e.jsx(mi,{etiket:a("Ödev durumu"),kutular:[{etiket:a("Tamam"),deger:s(t=>t.durum==="tamam"),alt:L("{n} ödevden",i.length)},{etiket:a("Öğretmeninde"),deger:s(t=>t.durum==="teslim"),alt:a("kontrol bekliyor")},{etiket:a("Tekrar yap"),deger:s(t=>t.durum==="tekrar"),uyari:i.some(t=>t.durum==="tekrar")},{etiket:a("Eksik"),deger:n.length,alt:a("süresi geçti"),uyari:n.length>0},{etiket:a("Geç teslim"),deger:s(t=>!!t.gec)}]}),n.length>0&&e.jsx("ul",{className:"krn-liste krn-eksik",children:n.map(t=>e.jsxs("li",{children:[e.jsx("b",{children:e.jsx("a",{href:hi(t.yol,t.odevId),children:t.baslik})}),e.jsx("span",{className:"hp-soluk",children:a("son gün {date}, teslim etmedin",{date:ue(t.son_tarih)})})]},t.id))}),e.jsx("p",{className:"krn-not",children:e.jsx("a",{href:X("/egitim/sinifim/odevler/"),children:a("Bütün ödevlerin")})})]})}function Vt({userId:i}){const s=Re(`karnem:${i}`,()=>T.karnem()),n=Re(`odevlerim:${i}`,()=>T.odevlerim()),t=Gt();if(s.error)return e.jsx(xe,{retry:s.refresh});if(!s.data)return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Karnen hazırlanıyor…")});const l=s.data,o=(r,d)=>d??t.find(u=>u.yol===`/egitim/${r}/`)?.baslik??r;return!l.kurslar.length&&!l.siniflar.length?e.jsx("p",{className:"hp-soluk",children:M("Karnen ilk dersini açınca dolmaya başlar. Eğitimleri {link} sayfasında bulabilirsin.",{link:e.jsx("a",{href:X("/egitim/"),children:a("Tüm eğitimler")})})}):e.jsxs("div",{className:"krn",children:[l.kurslar.length>0&&e.jsxs("section",{"aria-labelledby":"krn-egitim",children:[e.jsx("h2",{id:"krn-egitim",className:"krn-baslik",children:a("Eğitimlerin")}),e.jsx("div",{className:"krn-izgara",children:l.kurslar.map(r=>e.jsxs("article",{className:"krn-kart",children:[e.jsx("h3",{children:e.jsx("a",{href:X(`/egitim/${r.egitim}/`),children:o(r.egitim,r.baslik)})}),r.ders.son_at&&e.jsx("p",{className:"hp-soluk krn-son",children:a("Son ders {when}",{when:me(r.ders.son_at)})}),e.jsx(xa,{etiket:a("Açtığın derslerden bitirdiğin"),deger:r.ders.biten,toplam:r.ders.acilan}),r.etkinlik.toplam>0&&e.jsx(xa,{etiket:a("Tamamlanan etkinlik"),deger:r.etkinlik.tamam,toplam:r.etkinlik.toplam}),r.odev.verilen>0&&e.jsx(xa,{etiket:a("Tamam olan ödev"),deger:r.odev.tamam,toplam:r.odev.verilen}),(r.odev.teslim>0||r.odev.tekrar>0)&&e.jsx("p",{className:"krn-not",children:[r.odev.teslim?L("{n} ödev öğretmeninde",r.odev.teslim):null,r.odev.tekrar?L("{n} ödev tekrar bekliyor",r.odev.tekrar):null].filter(Boolean).join(" · ")})]},r.egitim))})]}),l.siniflar.length>0&&e.jsxs("section",{"aria-labelledby":"krn-yoklama",children:[e.jsx("h2",{id:"krn-yoklama",className:"krn-baslik",children:ee("attendance","Devam")}),e.jsx("div",{className:"krn-izgara",children:l.siniflar.map(r=>{const d=r.yoklama,u=d.gelmedi+d.kayitsiz;return e.jsxs("article",{className:"krn-kart krn-devam",children:[e.jsx("h3",{children:r.ad}),d.ders===0?e.jsx("p",{className:"hp-soluk",children:a("Henüz ders işlenmedi.")}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"krn-oran",children:M("{rate} devam",{rate:e.jsx("b",{children:a("%{n}",{n:d.oran??0})})})}),e.jsx(xa,{etiket:a("Geldiğin ders"),deger:d.geldi+d.gec,toplam:d.ders-d.izinli}),e.jsx("p",{className:"krn-not",children:[L("{n} ders",d.ders),d.gec?a("{n} geç",{n:d.gec}):null,u?a("{n} gelmedin",{n:u}):null,d.izinli?a("{n} izinli",{n:d.izinli}):null].filter(Boolean).join(" · ")}),r.dusuk&&e.jsx("p",{className:"hp-rozet hp-rozet-uyari krn-dusuk",children:a("Devamın %70'in altında")}),r.dersler?.length>0&&e.jsxs("details",{className:"krn-dersler",children:[e.jsx("summary",{children:a("Ders ders yoklama")}),e.jsx("ul",{children:r.dersler.map((m,h)=>e.jsxs("li",{children:[e.jsxs("span",{className:"krn-ders-ad",children:[e.jsx("b",{children:ue(m.tarih)})," ",m.baslik??a("Ders")]}),e.jsx("span",{className:`hp-durum ${qt[m.durum??"yok"]}`,children:m.durum?Ut[m.durum]():a("Kayıt yok")})]},h))})]})]})]},r.id)})})]}),n.data&&n.data.odevler.length>0&&e.jsx(Xt,{odevler:n.data.odevler}),l.notlar.length>0&&e.jsxs("section",{"aria-labelledby":"krn-notlar",children:[e.jsx("h2",{id:"krn-notlar",className:"krn-baslik",children:a("Öğretmeninin notları")}),e.jsx("ul",{className:"krn-liste",children:l.notlar.map(r=>e.jsxs("li",{children:[e.jsx("b",{children:e.jsx("a",{href:hi(r.yol,r.odevId),children:r.baslik??a("Ödev")})}),e.jsxs("span",{children:[e.jsx("span",{className:`hp-durum ${r.durum==="tamam"?"hp-durum-bitti":r.durum==="tekrar"?"hp-durum-tekrar":"hp-durum-kismi"}`,children:r.durum==="tamam"?a("Tamam"):r.durum==="tekrar"?a("Tekrar yap"):a("Teslim edildi")}),r.yorum&&e.jsx("span",{className:"krn-yorum",children:r.yorum}),e.jsxs("span",{className:"hp-soluk",children:[" ",me(r.degerlendirme_at,{cumle:!1})]})]})]},`${r.yol}#${r.odevId}`))})]})]})}const Wt={acik:()=>a("Açık"),erisebilir:()=>a("Erişimin var"),"izin-gerekli":()=>a("Kilitli"),"giris-gerekli":()=>a("Giriş gerekli")};function an(i,s,n){const t=n.find(o=>o.yol===i.yol)?.dersler??[];if(!t.length)return;const l=new Set(s.filter(o=>o.bitti_at).map(o=>o.yol));return t.find(o=>!l.has(o.yol))??null}const sn=i=>({yol:i.yol,baslik:i.baslik,no:Aa(i.baslik,i.yol)});function Qt({user:i,rol:s,yenile:n}){const t=Re(`ogrenci-ilerleme:${i.id}`,async()=>{const[b,w]=await Promise.all([T.ilerlemem(),ds()]);return{dersler:b.dersler,dizin:w}}),[l]=Se(),o=Fe(),r=Ta(),d=o.state?.katilim,[u,m]=c.useState(""),[h,f]=c.useState(()=>d??null),[k,v]=c.useState(0);c.useEffect(()=>{d&&r(`${o.pathname}${o.search}`,{replace:!0,state:null})},[d,o.pathname,o.search,r]);const y=b=>{m(""),f(b),v(w=>w+1)},j=b=>{f(null),m(b)};if(s.durum==="hata")return e.jsx(xe,{retry:n});if(s.durum==="yukleniyor")return e.jsx("p",{className:"hp-soluk",role:"status",children:a("Sınıfın yükleniyor…")});const g=s.uyelik.filter(b=>!b.arsivlendi_at),x=l.has("kod");return e.jsxs("div",{className:"hp-ogrenci",children:[u&&e.jsx("p",{className:"hp-bilgi",role:"status",children:u}),h&&e.jsx(Zt,{katilim:h,uyelik:s.uyelik,yenile:n},k),g.length?e.jsx(Jt,{sinif:g[0],ilerleme:t.data}):e.jsxs("section",{className:"hp-katil-kutu","aria-labelledby":"hp-katil-baslik",children:[e.jsx("h2",{id:"hp-katil-baslik",children:a("Sınıfına katıl")}),e.jsx("p",{children:nn()}),e.jsx(ei,{yenile:n,katildi:y})]}),g.length>0&&e.jsx(Lt,{userId:i.id,siniflar:g}),s.uyelik.length>0&&e.jsx(al,{uyelik:s.uyelik,ilerleme:t.data,yenile:n,bildir:j,oneCikan:g[0]?.id}),g.length>0&&e.jsxs("details",{className:"hp-acilir",open:x||void 0,children:[e.jsx("summary",{children:a("Başka bir sınıfa katıl")}),e.jsx("div",{className:"hp-acilir-ic",children:e.jsx(ei,{yenile:n,katildi:y})})]}),s.veri.hesap_turu===null&&!g.length&&e.jsx("p",{className:"hp-soluk hp-tur-notu",children:M("Hesap türü seçilmemiş. Öğretmen ve mentörler {link} bölümünden hesap türünü seçip onaydan sonra sınıf açar; öğrenciler sınıfa yukarıdaki kodla katılır.",{link:e.jsx(J,{to:"/shop/hesap/profil",children:a("Profil ve güvenlik")})})}),e.jsx(Ca,{})]})}const nn=()=>a("Öğretmenin tahtaya bir katılım kodu yansıtır. O kodu buraya yaz ya da QR kodu okut; sınıfına hemen girersin.");function Zt({katilim:i,uyelik:s,yenile:n}){const t=c.useRef(null),[l,o]=c.useState(!1),[r,d]=c.useState(!1),[u,m]=c.useState(""),h=s.find(k=>k.id===i.id)?.ogretmen;c.useEffect(()=>{t.current?.focus()},[l]);async function f(){if(confirm(rn(i.ad))){m(""),d(!0);try{await T.ayril(i.id),o(!0),await n()}catch(k){m(k instanceof je?a(k.message):a("Sınıftan ayrılamadın. Bağlantını kontrol edip tekrar dene."))}finally{d(!1)}}}return e.jsx("section",{ref:t,tabIndex:-1,className:"hp-katildi","aria-labelledby":"hp-katildi-baslik",children:l?e.jsxs(e.Fragment,{children:[e.jsx("p",{id:"hp-katildi-baslik",className:"hp-katildi-ust",children:M("{class} sınıfından ayrıldın.",{class:e.jsx("b",{children:i.ad})})}),e.jsx("p",{children:a("Doğru sınıfın katılım kodunu öğretmeninden iste ve o kodla katıl.")})]}):e.jsxs(e.Fragment,{children:[e.jsxs("p",{id:"hp-katildi-baslik",className:"hp-katildi-ust",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",i.yeni?M("{class} sınıfına katıldın.",{class:e.jsx("b",{children:i.ad})}):M("Zaten {class} sınıfındasın.",{class:e.jsx("b",{children:i.ad})})]}),h&&e.jsx("p",{children:M("Öğretmen: {teacher}",{teacher:e.jsx("b",{children:ii(h)})})}),i.kullaniciAdi&&e.jsx("p",{children:M("Hesabın hazır. Kullanıcı adın: {username}. Bir dahaki sefere bu kullanıcı adı ve şifrenle giriş yap; şifreni unutursan öğretmenin sana yeni bir şifre verebilir.",{username:e.jsx("b",{className:"hp-mono",children:i.kullaniciAdi})})}),i.yeni&&e.jsxs("p",{className:"hp-katildi-yanlis",children:[e.jsx("span",{children:a("Bu senin sınıfın değil mi?")}),e.jsx("button",{type:"button",className:"hp-dugme hp-dugme-ikincil",disabled:r,onClick:()=>{f()},children:r?a("Ayrılıyor…"):a("Yanlış sınıf, ayrıl")})]}),u&&e.jsx("p",{className:"hp-hata",role:"alert",children:u})]})})}const rn=i=>a("{class} sınıfından ayrılmak istiyor musun? Öğretmenin ilerlemeni artık görmez. Bu sınıfın eğitimlerindeki derslere yüklediğin ders fotoğrafları kalıcı olarak silinir; aynı eğitim kaldığın başka bir sınıfta da varsa o sınıfta görünen fotoğrafların kalır.",{class:i});function Jt({sinif:i,ilerleme:s}){const n=i.kurslar.find(d=>d.durum!=="izin-gerekli"&&d.durum!=="giris-gerekli")??null,t=n&&s?an(n,s.dersler,s.dizin):void 0,l=d=>!!n&&(d.egitim===n.slug||Zi(d.yol)===n.slug),o=s?.dersler.filter(d=>d.bitti_at&&l(d)).sort((d,u)=>(u.bitti_at??"").localeCompare(d.bitti_at??""))[0],r=!s?.dersler.some(l);return e.jsxs("section",{className:"hp-ekip-dersi","aria-labelledby":"hp-ekip-dersi-baslik",children:[e.jsx("p",{className:"hp-ust-etiket",children:a("Ekibimizin dersi")}),e.jsxs("h2",{id:"hp-ekip-dersi-baslik",children:[i.ad,i.demo&&e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{className:"hp-rozet hp-rozet-demo",children:"Demo"})]})]}),e.jsxs("p",{className:"hp-soluk hp-ekip-dersi-kim",children:[i.ekip&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"hp-ekip-etiket",children:M("Ekip: {team}",{team:e.jsx("b",{children:i.ekip})})})," · "]}),a("Öğretmen: {teacher}",{teacher:ii(i.ogretmen)})]}),i.kurslar.length?n?t?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"hp-ekip-dersi-ders",children:[e.jsx("span",{className:"hp-ders-yer",children:sa(sn(t))??a("Sıradaki ders")}),e.jsx("b",{children:Xe(t)})]}),e.jsx("a",{className:"hp-dugme",href:X(t.yol),children:r?a("İlk derse başla"):a("Derse devam et")})]}):t===null?e.jsxs("p",{className:"hp-ekip-dersi-ders",children:[e.jsxs("span",{className:"hp-durum hp-durum-bitti",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Bitti")]})," ",a("{course} eğitiminin tüm derslerini bitirdin.",{course:n.baslik})]}):s?e.jsx("a",{className:"hp-dugme",href:X(n.yol),children:a("Eğitime git")}):e.jsx("p",{className:"hp-soluk",role:"status",children:a("Sıradaki ders yükleniyor…")}):e.jsx("p",{className:"hp-uyari",children:a("Sınıfına atanan eğitim kilitli. Erişim için öğretmeninle konuş.")}):e.jsx("p",{className:"hp-uyari",children:a("Öğretmenin henüz eğitim atamadı. Atadığında ilk dersin burada görünür.")}),o&&e.jsx(el,{ders:o})]})}function el({ders:i}){const{data:s}=Re(`ders-bitis:${i.yol}`,()=>T.dersBitis(i.yol)),n=s?.bitis,t=n&&(n.toplam===0||n.isaretler.length>=n.toplam);return e.jsxs("p",{className:"hp-son-ders",children:[e.jsx("span",{className:"hp-soluk",children:a("Son bitirdiğin ders:")})," ",Ka(sn(i)),n&&n.toplam>0&&e.jsx(e.Fragment,{children:e.jsxs("span",{className:`hp-durum ${t?"hp-durum-bitti":"hp-durum-kismi"}`,children:[e.jsx("span",{"aria-hidden":"true",children:t?"✓":"◐"})," ",a("Kontrol {done}/{total}",{done:n.isaretler.length,total:n.toplam})]})})]})}function al({uyelik:i,ilerleme:s,yenile:n,bildir:t,oneCikan:l}){const[o,r]=c.useState(""),[d,u]=c.useState(!1);return e.jsxs("details",{className:"hp-acilir hp-sinif-listesi",children:[e.jsxs("summary",{children:[a("Sınıf bilgileri"),i.length>1&&e.jsx("span",{className:"hp-soluk",children:L("({n} sınıf)",i.length)})]}),e.jsxs("div",{className:"hp-acilir-ic",children:[o&&e.jsx("p",{className:"hp-hata",role:"alert",children:o}),e.jsx("ul",{className:"hp-liste",children:i.map(m=>e.jsxs("li",{className:"hp-kutu",children:[e.jsxs("div",{className:"hp-egitim-ust",children:[e.jsxs("div",{children:[e.jsx("h3",{children:m.ad}),e.jsx("p",{className:"hp-soluk",children:a("Öğretmen: {teacher} · {date} katıldın",{teacher:ii(m.ogretmen),date:ye(m.katildi_at)})})]}),m.arsivlendi_at&&e.jsx("span",{className:"hp-rozet",children:a("Arşivlendi")})]}),m.arsivlendi_at&&e.jsx("p",{className:"hp-soluk",children:a("Öğretmenin bu sınıfı {date} tarihinde arşivledi.",{date:ye(m.arsivlendi_at)})}),m.kurslar.length===0?e.jsx("p",{className:"hp-soluk",children:a("Öğretmenin henüz eğitim atamadı.")}):e.jsx("ul",{className:"hp-satirlar",children:m.kurslar.map(h=>{const f=m.id===l&&h===m.kurslar.find(v=>v.durum!=="izin-gerekli"&&v.durum!=="giris-gerekli"),k=h.durum==="izin-gerekli"||!s||f?void 0:an(h,s.dersler,s.dizin);return e.jsxs("li",{className:"hp-kurs-satir",children:[e.jsxs("span",{className:"hp-kurs-ad",children:[e.jsx("a",{href:X(h.yol),children:h.baslik}),e.jsx("span",{className:h.durum==="izin-gerekli"?"hp-rozet hp-rozet-kilit":"hp-rozet",children:Wt[h.durum]()})]}),k?e.jsx("a",{className:"hp-dugme hp-dugme-ikincil hp-siradaki",href:X(k.yol),children:a("Sıradaki ders: {lesson}",{lesson:k.baslik})}):k===null?e.jsxs("span",{className:"hp-rozet hp-rozet-iyi",children:[e.jsx("span",{"aria-hidden":"true",children:"✓"})," ",a("Tüm dersleri bitirdin")]}):null]},h.slug)})}),m.kurslar.some(h=>h.durum==="izin-gerekli")&&e.jsx("p",{className:"hp-soluk",children:a("Kilitli eğitimler için öğretmeninle görüş; sınıfa atanması erişim vermez.")}),e.jsx("button",{type:"button",className:"hp-metin-dugme hp-tehlike",disabled:d,onClick:async()=>{if(confirm(rn(m.ad))){r(""),u(!0);try{await T.ayril(m.id),t(a("{class} sınıfından ayrıldın. Geri dönmek istersen öğretmeninden sınıfın katılım kodunu iste.",{class:m.ad})),await n()}catch(h){r(h instanceof je?a(h.message):a("Sınıftan ayrılamadın. Bağlantını kontrol edip tekrar dene."))}finally{u(!1)}}},children:a("Sınıftan ayrıl")})]},m.id))})]})]})}function ki(i){return i instanceof je?i.status===404?a("Bu kodla açık bir sınıf bulunamadı. Kod {length} karakterdir (ör. ABCD2345); tahtadaki kodu tekrar kontrol et, sorun sürerse öğretmenine katılımın açık olup olmadığını sor.",{length:le}):i.status===409?a("Bu sınıf dolu. Öğretmenine haber ver; yer açınca tekrar dene."):i.status===429?a("Çok fazla deneme yaptın. Birkaç dakika bekleyip tekrar dene."):a(i.message):a("Bağlantı kurulamadı. İnternetini kontrol edip tekrar dene.")}function tn(i){if(is(i))return M("Bu bir kit kodu: kit kutusundaki kartta yazar ve öğretmenin ya da mentörün kiti etkinleştirmesi içindir, sınıfa katılmak için değil. Sınıfına katılmak için öğretmeninin verdiği {length} karakterlik katılım kodunu yaz. Öğretmen ya da mentörsen {link}.",{link:e.jsx(J,{to:`${ge.etkinlestir}?kod=${Xa(i)}`,children:a("kiti burada etkinleştir")})},{length:le});const s=[...new Set([...i].filter(n=>!ss.includes(n)))];return s.length?a("Kodda {chars} olamaz. Katılım kodlarında O, I, 0, 1 ve Türkçe harfler hiç kullanılmaz; tahtadaki koda tekrar bak.",{chars:s.join(", ")}):i.length>le?L("Katılım kodu {length} karakterdir; {n} karakter fazla.",i.length-le,{length:le}):null}function ln(){return e.jsxs("div",{className:"hp-soluk hp-katil-gorur",children:[e.jsx("p",{children:a("Katıldığında öğretmenin, katılmadan önce yaptıkların da dahil, şunları görür:")}),e.jsxs("ul",{children:[e.jsx("li",{children:a("Adını (e-posta adresini görmez; adın boşsa e-postanın gizlenmiş hâlini görür)")}),e.jsx("li",{children:a("Sınıfa atadığı eğitimlerde hangi dersleri açıp okuduğunu")}),e.jsx("li",{children:a('"Dersi bitirdik" kayıtlarını: işaretlediğin Kontrol maddeleri, "Takıldığımız yer" notu, yüklediysen ders fotoğrafı')}),e.jsx("li",{children:a("Ödevlerini (yazdıklarını, blok programlarını, Builder projelerini); ödevlerine geri bildirim de yazar")}),e.jsx("li",{children:a("Yoklamanı, canlı derste hangi sayfada olduğunu, etkinlik ve challenge'larda neleri denediğini ve tamamladığını, ne zaman çalıştığını")}),e.jsx("li",{children:a("Hangi ekipte olduğunu (ekibini öğretmenin belirler)")})]}),e.jsx("p",{children:M("Başka eğitimlerde ne okuduğunu görmez. İstediğin zaman sınıftan ayrılabilirsin. Ayrıntılar: {link} (yeni sekmede açılır).",{link:e.jsx(J,{to:"/shop/yasal/aydinlatma-metni",target:"_blank",rel:"noopener",children:a("Aydınlatma Metni")})})})]})}function ei({yenile:i,katildi:s}){const[n,t]=Se(),[l,o]=c.useState(()=>Ea(n.get("kod")||"")),[r,d]=c.useState(""),[u,m]=c.useState(!1),h=c.useRef(null),f=tn(l);async function k(v){if(v.preventDefault(),!f){if(l.length!==le){d(L("Kod {length} karakter olmalı; {n} karakter eksik.",le-l.length,{length:le})),h.current?.focus();return}d(""),m(!0);try{const y=await T.katil(l);y.degisti&&la("sinifa_katildi",{}),s({id:y.sinif.id,ad:y.sinif.ad,yeni:y.degisti}),o(""),n.get("kod")&&t({},{replace:!0}),await i()}catch(y){d(ki(y)),h.current?.focus()}finally{m(!1)}}}return e.jsxs("form",{className:"hp-satir-form hp-katil",onSubmit:k,noValidate:!0,children:[e.jsx("label",{htmlFor:"hp-kod",children:a("Katılım kodu")}),e.jsxs("div",{children:[e.jsx("input",{id:"hp-kod",ref:h,value:l,onChange:v=>{o(Ea(v.target.value)),d("")},placeholder:"ABCD2345",autoComplete:"off",autoCapitalize:"characters",spellCheck:!1,className:"hp-mono","aria-describedby":"hp-kod-ipucu hp-kod-sorun","aria-invalid":r||f?!0:void 0,required:!0}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:u||!!f,children:u?a("Katılınıyor…"):a("Sınıfa katıl")})]}),e.jsx("p",{className:"hp-soluk",id:"hp-kod-ipucu",children:a("{length} karakter, harf ve rakam. Kodlarda O, I, 0, 1 ve Türkçe harfler (Ç, Ğ, İ, Ö, Ş, Ü) kullanılmaz; boşluk ya da tire yazman gerekmez.",{length:le})}),e.jsx("div",{id:"hp-kod-sorun",className:"hp-kod-durum",role:"status",children:f&&e.jsx("p",{className:"hp-uyari hp-kod-sorun",children:f})}),r&&e.jsx("p",{className:"hp-hata",role:"alert",children:r}),e.jsx(ln,{})]})}function il(){const[i]=Se(),[s,n]=c.useState(()=>Ea(i.get("kod")||"")),[t,l]=c.useState(null),[o,r]=c.useState(""),[d,u]=c.useState(!1),m=c.useRef(null),h=tn(s),f=encodeURIComponent(`${si(window.location.pathname)}/katil/${s?`?kod=${s}`:""}`);async function k(v){if(v.preventDefault(),!h){if(s.length!==le){r(L("Kod {length} karakter olmalı; {n} karakter eksik.",le-s.length,{length:le})),m.current?.focus();return}r(""),u(!0);try{const y=await T.kodKontrol(s);l({ad:y.sinif.ad,kod:s})}catch(y){r(ki(y)),m.current?.focus()}finally{u(!1)}}}return t?e.jsx(sl,{sinif:t,geri:()=>{l(null),r("")}}):e.jsxs("div",{className:"hp-ogrenci",children:[e.jsxs("section",{className:"hp-katil-kutu","aria-labelledby":"ea-kodla-baslik",children:[e.jsx("h2",{id:"ea-kodla-baslik",children:a("Sınıf kodunla kayıt ol")}),e.jsx("p",{children:a("Öğretmeninin verdiği katılım kodunu yaz. E-posta adresi gerekmez: kısa bir form doldurup kendine bir kullanıcı adı seçersin, sınıfına hemen girersin.")}),e.jsxs("form",{className:"hp-satir-form hp-katil",onSubmit:k,noValidate:!0,children:[e.jsx("label",{htmlFor:"ea-kodla-kod",children:a("Katılım kodu")}),e.jsxs("div",{children:[e.jsx("input",{id:"ea-kodla-kod",ref:m,value:s,onChange:v=>{n(Ea(v.target.value)),r("")},placeholder:"ABCD2345",autoComplete:"off",autoCapitalize:"characters",spellCheck:!1,className:"hp-mono","aria-describedby":"ea-kodla-ipucu ea-kodla-sorun","aria-invalid":o||h?!0:void 0,required:!0}),e.jsx("button",{type:"submit",className:"hp-dugme",disabled:d||!!h,children:d?a("Bakılıyor…"):a("Devam")})]}),e.jsx("p",{className:"hp-soluk",id:"ea-kodla-ipucu",children:a("{length} karakter, harf ve rakam. Boşluk ya da tire yazman gerekmez.",{length:le})}),e.jsx("div",{id:"ea-kodla-sorun",className:"hp-kod-durum",role:"status",children:h&&e.jsx("p",{className:"hp-uyari hp-kod-sorun",children:h})}),o&&e.jsx("p",{className:"hp-hata",role:"alert",children:o})]})]}),e.jsxs("section",{className:"ea-kapi","aria-labelledby":"ea-kodla-hesap",children:[e.jsx("h2",{id:"ea-kodla-hesap",children:a("Zaten hesabın var mı?")}),e.jsx("p",{children:a("Giriş yap; sınıf kodun kaybolmaz, girişten sonra bu sayfaya dönersin ve aynı kodla katılırsın.")}),e.jsxs("p",{className:"ea-kapi-dugmeler",children:[e.jsx("a",{className:"hp-dugme hp-dugme-ikincil",href:`/shop/hesap?returnTo=${f}`,children:a("Giriş yap")}),e.jsx("a",{className:"hp-metin-dugme",href:`/shop/hesap?kayit=1&returnTo=${f}`,children:a("E-postayla hesap oluştur")})]})]})]})}function sl({sinif:i,geri:s}){const n=Ta(),[t,l]=c.useState(""),[o,r]=c.useState([]),[d,u]=c.useState(!1),[m,h]=c.useState(""),[f,k]=c.useState(!1),v=/^\d{1,2}$/.test(t)&&Number(t)<18;async function y(g){g.preventDefault();const x=new FormData(g.currentTarget),b=String(x.get("sifre")??"");if(b!==String(x.get("sifre2")??"")){h(a("Şifreler aynı değil."));return}const w=v?String(x.get("veliEposta")??"").trim():"";h(""),k(!0);try{const _=await T.kodKayit({kod:i.kod,ad:String(x.get("ad")??""),kullaniciAdi:String(x.get("kullaniciAdi")??"").trim().toLowerCase(),sifre:b,sinifDuzeyi:String(x.get("sinifDuzeyi")??""),yas:Number(t),deneyim:o,...o.includes("diger")?{deneyimDiger:String(x.get("deneyimDiger")??"")}:{},...w?{veliEposta:w}:{}});la("sinif_kodu_kayit",{resit_degil:_.veliOnayiGerekli,veli_maili:_.veliMaili}),_n(),n("/sinifim/",{state:{katilim:{id:_.sinif.id,ad:_.sinif.ad,yeni:!0,kullaniciAdi:_.kullaniciAdi}}})}catch(_){h(_ instanceof je&&_.status!==404&&_.status!==429?a(_.message):ki(_))}finally{k(!1)}}const j=d?"text":"password";return e.jsx("div",{className:"hp-ogrenci",children:e.jsxs("section",{className:"hp-katil-kutu","aria-labelledby":"ea-kayit-baslik",children:[e.jsx("h2",{id:"ea-kayit-baslik",children:i.ad}),e.jsxs("p",{children:[a("Bu sınıfa katılmak için birkaç bilgi yeter. Yanlış sınıf mı?")," ",e.jsx("button",{type:"button",className:"hp-metin-dugme",onClick:s,children:a("Kodu değiştir")})]}),e.jsxs("form",{className:"hp-satir-form ea-kodla-form",onSubmit:y,children:[e.jsx("label",{htmlFor:"ea-ad",children:a("Adın ve soyadın")}),e.jsx("input",{id:"ea-ad",name:"ad",required:!0,minLength:2,maxLength:80,autoComplete:"name"}),e.jsx("label",{htmlFor:"ea-kadi",children:a("Kullanıcı adı")}),e.jsx("input",{id:"ea-kadi",name:"kullaniciAdi",required:!0,minLength:3,maxLength:30,pattern:"[A-Za-z0-9._]{3,30}",autoComplete:"username",autoCapitalize:"none",spellCheck:!1,"aria-describedby":"ea-kadi-ipucu"}),e.jsx("p",{className:"hp-soluk",id:"ea-kadi-ipucu",children:a("Girişte bunu kullanacaksın. 3 ile 30 karakter; İngilizce harf, rakam, nokta ve alt çizgi (ör. ayse.yilmaz).")}),e.jsx("label",{htmlFor:"ea-sifre",children:a("Şifre")}),e.jsx("input",{id:"ea-sifre",name:"sifre",type:j,required:!0,minLength:8,maxLength:128,autoComplete:"new-password"}),e.jsx("label",{htmlFor:"ea-sifre2",children:a("Şifre (tekrar)")}),e.jsx("input",{id:"ea-sifre2",name:"sifre2",type:j,required:!0,minLength:8,maxLength:128,autoComplete:"new-password"}),e.jsxs("label",{className:"ea-kodla-kutu",children:[e.jsx("input",{type:"checkbox",checked:d,onChange:g=>u(g.target.checked)})," ",e.jsx("span",{children:a("Şifreyi göster")})]}),e.jsx("label",{htmlFor:"ea-duzey",children:a("Kaçıncı sınıftasın?")}),e.jsxs("select",{id:"ea-duzey",name:"sinifDuzeyi",required:!0,defaultValue:"",children:[e.jsx("option",{value:"",disabled:!0,children:a("Seç")}),En.map(([g,x])=>e.jsx("option",{value:g,children:ls(g)??x},g))]}),e.jsx("label",{htmlFor:"ea-yas",children:a("Yaşın")}),e.jsx("input",{id:"ea-yas",name:"yas",type:"number",inputMode:"numeric",min:5,max:99,required:!0,value:t,onChange:g=>l(g.target.value)}),e.jsxs("fieldset",{className:"hp-tur-sec",children:[e.jsx("legend",{children:a("Daha önce robotla ne yaptın? (birden çok seçebilirsin)")}),Object.entries(os).map(([g,x])=>e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:o.includes(g),onChange:b=>r(w=>b.target.checked?[...w,g]:w.filter(_=>_!==g))}),e.jsx("span",{children:g==="diger"?a("Diğer"):x})]},g))]}),o.includes("diger")&&e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"ea-diger",children:a("Ne yaptın?")}),e.jsx("input",{id:"ea-diger",name:"deneyimDiger",required:!0,maxLength:80,placeholder:a("ör. okulda robot kulübü")})]}),v&&e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"ea-veli",children:a("Veli e-postası (isteğe bağlı)")}),e.jsx("input",{id:"ea-veli",name:"veliEposta",type:"email",autoComplete:"off","aria-describedby":"ea-veli-ipucu"}),e.jsx("p",{className:"hp-soluk",id:"ea-veli-ipucu",children:a("18 yaşından küçüksen dersler, ödevler ve yoklama açıktır. Ders fotoğrafı yükleme ve eğitim asistanı velin onaylayınca açılır. Velinin e-postasını yazarsan ona bir onay bağlantısı göndeririz; şimdi yazmazsan sonra da yazabilirsin.")})]}),e.jsx(ln,{}),e.jsxs("label",{className:"ea-kodla-kutu",children:[e.jsx("input",{type:"checkbox",required:!0}),e.jsx("span",{children:M("{terms}'ni okudum, kabul ediyorum; {privacy}'ni okudum.",{terms:e.jsx(J,{to:"/shop/yasal/uyelik-sozlesmesi",target:"_blank",rel:"noopener",children:a("Üyelik Sözleşmesi")}),privacy:e.jsx(J,{to:"/shop/yasal/aydinlatma-metni",target:"_blank",rel:"noopener",children:a("Aydınlatma Metni")})})})]}),m&&e.jsx("p",{className:"hp-hata",role:"alert",children:m}),e.jsx("div",{children:e.jsx("button",{type:"submit",className:"hp-dugme",disabled:f,children:f?a("Hesap açılıyor…"):a("Hesabımı aç ve sınıfa katıl")})})]})]})})}function nl({targetId:i}){return e.jsx("a",{className:"ea-atla",href:`#${i}`,onClick:s=>{const n=document.getElementById(i);n&&(s.preventDefault(),n.hasAttribute("tabindex")||(n.setAttribute("tabindex","-1"),n.addEventListener("blur",()=>n.removeAttribute("tabindex"),{once:!0})),n.focus({preventScroll:!0}))},children:a("İçeriğe geç")})}const rl=[{id:"tum",ad:()=>a("Tüm eğitimler"),yol:"/egitim/"},{id:"mufredatlar",ad:()=>a("Müfredatlar"),yol:"/egitim/mufredatlar/"},{id:"dokumanlar",ad:()=>a("Dokümanlar"),yol:"/egitim/dokumanlar/"},{id:"diger",ad:()=>a("Diğer"),yol:"/egitim/diger/"}],tl=[{ekran:"ogretmen",ad:()=>a("Sınıflarım"),yol:"/ogretmen/",rol:"ogretmen"},{ekran:"sinifim",ad:()=>a("Sınıfım"),yol:"/sinifim/",rol:"ogrenci"},{ekran:"odevler",ad:()=>a("Ödevlerim"),yol:"/sinifim/odevler/",rol:"ogrenci"},{ekran:"karne",ad:()=>a("Karnem"),yol:"/sinifim/karne/",rol:"ogrenci"}];let qa=null,Ui=null;function ll(){return qa??=fetch("/egitim/yan.json",{signal:AbortSignal.timeout(1e4)}).then(i=>i.ok?i.json():null).catch(()=>(qa=null,null)),qa}function ol(i,s){if(i.durum!=="tamam")return s;const n=qe(i);return n.ogretmen&&n.ogrenci?"ikisi":n.ogretmen?"ogretmen":"ogrenci"}async function dl(i){const s=await ll();if(!s||!i)return s;const n=await T.kurslarim().then(l=>l.kurslar,()=>[]),t={...s.sayi};for(const l of n){if(!l?.slug||!/^\/egitim\//.test(l.yol??"")||s.statik?.includes(l.slug))continue;const o=s.lmsKategori?.[l.slug]??"mufredatlar";t[o]=(t[o]??0)+1,o!=="diger"&&(t.tum=(t.tum??0)+1)}return{...s,sayi:t}}function cl({ekran:i,rol:s,rolBayrak:n,girisli:t}){const[l,o]=c.useState(Ui);c.useEffect(()=>{let k=!0;return dl(t).then(v=>{k&&v&&o(Ui=v)}),()=>{k=!1}},[t]);const{pathname:r}=Fe(),[d]=Se(),u=ol(s,n),m=c.useRef(null);c.useEffect(()=>{if(!window.matchMedia?.("(max-width: 900px)").matches)return;const k=m.current,v=k?.querySelector('[aria-current="page"]');!k||!v||(k.scrollLeft+=v.getBoundingClientRect().left-k.getBoundingClientRect().left-(k.clientWidth-v.offsetWidth)/2)},[i,u]);const h=i==="ogretmen"&&s.durum==="tamam"?s.veri.siniflar.filter(k=>!k.arsivlendi_at):[],f=r==="/ogretmen/siniflar/"?d.get("s"):null;return e.jsxs("aside",{className:"yan","aria-label":a("Eğitim bölümleri"),ref:m,children:[e.jsx("p",{className:"grp",children:a("Eğitim")}),e.jsx("nav",{className:"yan-grup","aria-label":a("Eğitim"),children:rl.map(k=>{const v=l?.sayi[k.id];return k.id==="diger"&&l&&!l.diger?null:e.jsxs("a",{href:X(k.yol),"data-bolum":k.id,children:[e.jsx("span",{className:"ad",children:k.ad()}),k.id!=="diger"||v?e.jsx("span",{className:"sayi",children:v||""}):null]},k.id)})}),e.jsx("p",{className:"grp",children:a("Benim")}),e.jsxs("nav",{className:"yan-grup",id:"benim-grup","aria-label":a("Benim"),children:[e.jsx("a",{href:X("/egitim/benim/"),"data-bolum":"benim",children:e.jsx("span",{className:"ad",children:a("Benim eğitimlerim")})}),tl.filter(k=>k.ekran===i||u==="ikisi"||u===k.rol).map(k=>e.jsx(ul,{b:k,aktif:k.ekran===i,siniflar:k.ekran==="ogretmen"?h:[],secili:f},k.ekran))]})]})}function ul({b:i,aktif:s,siniflar:n,secili:t}){return e.jsxs(e.Fragment,{children:[e.jsx(he,{to:i.yol,"data-rol":i.rol,"aria-current":s&&!t?"page":void 0,children:e.jsx("span",{className:"ad",children:i.ad()})}),n.map(l=>e.jsx(he,{className:"alt-oge",to:`/ogretmen/siniflar/?s=${encodeURIComponent(l.id)}`,"aria-current":t===l.id?"page":void 0,children:e.jsx("span",{className:"ad",children:l.ad})},l.id))]})}const on=i=>({sinifim:{baslik:a("Sınıfım"),metin:a("Sınıfını ve ekibinin dersini görmek için giriş yap.")},odevler:{baslik:a("Ödevlerim"),metin:a("Sınıflarında verilen ödevleri görmek için giriş yap.")},karne:{baslik:a("Karnem"),metin:a("Derslerini, ödevlerini ve yoklamanı görmek için giriş yap.")},ogretmen:{baslik:a("Sınıflarım"),metin:a("Sınıflarınızı ve sıradaki dersi görmek için giriş yapın.")},katil:{baslik:a("Sınıfa katıl"),metin:a("Sınıfa katılmak için giriş yap ya da öğrenci hesabı oluştur. Sınıf kodun kaybolmaz; girişten sonra bu sayfaya dönersin.")},etkinlestir:{baslik:a("Kit etkinleştir"),metin:a("Kit kodunu etkinleştirmek için giriş yapın ya da öğretmen / mentör hesabı oluşturun. Kodunuz kaybolmaz; girişten sonra bu sayfaya dönersiniz.")}})[i],He="probot-egitim-rol";function qi(i,s){try{const n=localStorage.getItem(He)||"";s?localStorage.setItem(He,s):localStorage.removeItem(He),i?localStorage.setItem(`${He}-k`,i):localStorage.removeItem(`${He}-k`),n!==s&&window.dispatchEvent(new Event("probot:egitim-rol"))}catch{}}function dn(){try{return localStorage.getItem(He)||""}catch{return""}}const Xi=()=>Promise.all([T.siniflarim(),T.sinifim()]).then(([i,s])=>({durum:"tamam",veri:i,uyelik:s.siniflar}));function ml(){const i=Fe(),[s,n]=c.useState({durum:"yukleniyor"}),[t,l]=c.useState({durum:"yukleniyor"}),o=c.useRef(0),r=c.useRef(0),d=c.useRef(null),u=s.durum==="var"?s.user:null,m=c.useCallback(async()=>{const j=++o.current;try{const g=await $n();if(j!==o.current)return;n(x=>g?.user?x.durum==="var"&&x.user.id===g.user.id?x:{durum:"var",user:g.user}:{durum:"yok"})}catch{j===o.current&&n(g=>g.durum==="var"?g:{durum:"hata"})}},[]);c.useEffect(()=>{dn()&&(d.current=Xi().catch(()=>null)),m();const j=()=>{m()},g=b=>{(b.key==="probot-auth-change"||b.key===null)&&j()},x=()=>{document.visibilityState==="visible"&&j()};return window.addEventListener(xi,j),window.addEventListener("storage",g),document.addEventListener("visibilitychange",x),()=>{window.removeEventListener(xi,j),window.removeEventListener("storage",g),document.removeEventListener("visibilitychange",x)}},[m]),c.useEffect(()=>{document.querySelector("probot-header")?.altSeritGuncelle?.()},[i.pathname]);const h=c.useCallback(async()=>{const j=++r.current,g=d.current;d.current=null;try{const x=g&&await g||await Xi();j===r.current&&l(x)}catch{j===r.current&&l({durum:"hata"})}},[]),f=u?.id??null;c.useEffect(()=>{if(!f){r.current++,l({durum:"yukleniyor"}),s.durum==="yok"&&qi(null,"");return}return l({durum:"yukleniyor"}),h(),()=>{r.current++}},[h,f,s.durum]);const k=qe(t);c.useEffect(()=>{t.durum!=="tamam"||!f||qi(f,k.ogretmen&&k.ogrenci?"ikisi":k.ogretmen?"ogretmen":"ogrenci")},[t.durum,k.ogretmen,k.ogrenci,f]),c.useEffect(()=>{window.scrollTo(0,0)},[i.pathname]);const v={sinifim:e.jsx(fl,{user:u,rol:t,rolYenile:h}),odevler:e.jsx(Vi,{rol:t,rolYenile:h,children:j=>u&&e.jsx(Yt,{userId:u.id,siniflar:j})}),karne:e.jsx(Vi,{rol:t,rolYenile:h,children:()=>u&&e.jsx(Vt,{userId:u.id})}),ogretmen:e.jsx(yl,{rol:t,rolYenile:h}),katil:e.jsx(jl,{rolYenile:h}),etkinlestir:e.jsx(Ar,{rol:t,rolYenile:h})},y=(j,g,x)=>e.jsx(cn,{ekran:j,baslik:on(j).baslik,rol:t,girisli:s.durum==="var",children:s.durum==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):s.durum==="hata"?e.jsx(xe,{retry:m}):s.durum==="yok"?j==="katil"?e.jsx(il,{}):e.jsx(pl,{ekran:j}):e.jsxs(Cn,{children:[e.jsx(In,{user:s.user,kisalabilir:!0}),g]})});return e.jsxs(e.Fragment,{children:[e.jsx(nl,{targetId:"icerik"}),e.jsx("probot-header",{home:"/",active:"egitim","actions-sep":"","no-whatsapp":"",lang:bi()}),e.jsxs(Bn,{children:[e.jsx(ze,{path:"/egitimlerim/",element:e.jsx(kl,{})}),e.jsx(ze,{path:"/sinifim/",element:y("sinifim",v.sinifim)}),e.jsx(ze,{path:"/sinifim/odevler/",element:y("odevler",v.odevler)}),e.jsx(ze,{path:"/sinifim/karne/",element:y("karne",v.karne)}),e.jsx(ze,{path:"/ogretmen/",element:y("ogretmen",e.jsx(Wi,{children:v.ogretmen}))}),e.jsx(ze,{path:"/ogretmen/siniflar/",element:y("ogretmen",e.jsx(Wi,{children:e.jsx(gl,{rol:t,rolYenile:h})}))}),e.jsx(ze,{path:"/katil/",element:y("katil",v.katil)}),e.jsx(ze,{path:"/etkinlestir/",element:y("etkinlestir",v.etkinlestir)}),e.jsx(ze,{path:"*",element:e.jsx(xl,{rol:t})})]}),e.jsx("probot-footer",{lang:bi()})]})}const hl={sinifim:"sinifim",odevler:"odevler",karne:"karne",ogretmen:"ogretmen"};function cn({ekran:i,baslik:s,rol:n,girisli:t,children:l}){c.useEffect(()=>{i&&la("egitim_bolum_acildi",{bolum:i})},[i]);const o=Nt();return e.jsxs("div",{className:"hub ea",children:[e.jsxs(ts,{children:[e.jsx("title",{children:a("{title} - Eğitim - Probot Studio",{title:s})}),e.jsx("meta",{name:"robots",content:"noindex"})]}),e.jsx(cl,{ekran:i?hl[i]??null:null,rol:n,rolBayrak:dn(),girisli:t}),e.jsxs("main",{className:"orta hp-icerik",id:"icerik",children:[!o.own&&e.jsx("div",{className:"head",children:e.jsx("h1",{children:s})}),e.jsx("div",{className:"ea-govde",children:o.provide(l)})]})]})}function kl(){return c.useEffect(()=>{window.location.replace(X("/egitim/benim/"))},[]),null}function pl({ekran:i}){const{pathname:s,search:n}=Fe(),t=encodeURIComponent(`${si(window.location.pathname)}${s}${n}`);return e.jsxs("section",{className:"ea-kapi","aria-labelledby":"ea-kapi-baslik",children:[e.jsx("h2",{id:"ea-kapi-baslik",children:a("Giriş gerekli")}),e.jsx("p",{children:on(i).metin}),e.jsxs("p",{className:"ea-kapi-dugmeler",children:[e.jsx("a",{className:"hp-dugme",href:`/shop/hesap?returnTo=${t}`,children:a("Giriş yap")}),e.jsx("a",{className:"hp-dugme hp-dugme-ikincil",href:`/shop/hesap?kayit=1&returnTo=${t}`,children:a("Hesap oluştur")})]}),(i==="sinifim"||i==="odevler"||i==="karne")&&e.jsxs("p",{children:[a("Öğretmeninden bir sınıf kodu aldın ve hesabın yok mu?")," ",e.jsx(he,{to:"/katil/",children:a("Sınıf kodumla kayıt ol")})]})]})}function fl({user:i,rol:s,rolYenile:n}){const[t]=Se(),l=qe(s);return s.durum==="tamam"&&!l.ogrenci&&!t.has("kod")?e.jsx(ni,{to:"/ogretmen/",replace:!0}):i?e.jsx(Qt,{user:i,rol:s,yenile:n}):null}function Vi({rol:i,rolYenile:s,children:n}){return i.durum==="hata"?e.jsx(xe,{retry:s}):i.durum==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):qe(i).ogrenci?e.jsx(e.Fragment,{children:n(i.uyelik)}):e.jsx(ni,{to:"/ogretmen/",replace:!0})}function yl({rol:i,rolYenile:s}){return i.durum==="hata"?e.jsx(xe,{retry:s}):i.durum==="yukleniyor"?e.jsx("p",{className:"hp-soluk",role:"status",children:a("Yükleniyor…")}):qe(i).ogretmen?e.jsx(Kt,{veri:i.veri,yenile:s}):e.jsx(un,{rol:i})}function gl({rol:i,rolYenile:s}){return i.durum==="tamam"&&!qe(i).ogretmen?e.jsx(un,{rol:i}):e.jsx(_t,{rol:i,yenile:s})}function un({rol:i}){return i.veri.hesap_turu==="ogrenci"||i.uyelik.length>0?e.jsx(ni,{to:"/sinifim/",replace:!0}):e.jsxs("section",{className:"hp-kutu hp-onay","aria-labelledby":"ea-ogretmen-degil",children:[e.jsx("h2",{id:"ea-ogretmen-degil",children:a("Bu bölüm öğretmen ve mentörler için")}),e.jsx("p",{children:a("Hesabınızda henüz hesap türü seçilmemiş. Sınıf açmak için:")}),e.jsxs("ul",{children:[e.jsx("li",{children:M('{link} bölümünden hesap türünü "Öğretmen / mentör" yapın. Probot ekibi hesabınızı onaylayınca sınıf açabilirsiniz.',{link:e.jsx(J,{to:"/shop/hesap/profil",children:a("Profil ve güvenlik")})})}),e.jsx("li",{children:M("Kit kutusundaki kart kodu hesabınızı hemen onaylar: {link}.",{link:e.jsx(J,{to:ge.etkinlestir,children:a("Kit etkinleştir")})})})]}),e.jsx("p",{className:"hp-soluk",children:M("Öğrenciler sınıfa öğretmenin verdiği katılım koduyla {link} sayfasından katılır.",{link:e.jsx(J,{to:ge.sinifim,children:a("Sınıfım")})})})]})}function Wi({children:i}){const{pathname:s,search:n}=Fe(),t=new URLSearchParams(n).has("s"),l=[{yol:"/ogretmen/",ad:a("Sıradaki ders")},{yol:"/ogretmen/siniflar/",ad:a("Tüm sınıflar")}];return e.jsxs(e.Fragment,{children:[!t&&e.jsx("nav",{className:"hp-sekmeler","aria-label":a("Sınıflarım"),children:l.map(o=>e.jsx(he,{to:o.yol,className:"hp-sekme","aria-current":s===o.yol?"page":void 0,children:o.ad},o.yol))}),i]})}function jl({rolYenile:i}){const s=Ta(),n=c.useRef(null);return e.jsx("div",{className:"hp-ogrenci",children:e.jsxs("section",{className:"hp-katil-kutu","aria-labelledby":"ea-katil-baslik",children:[e.jsx("h2",{id:"ea-katil-baslik",children:a("Katılım kodu")}),e.jsx("p",{children:nn()}),e.jsx(ei,{katildi:t=>{n.current=t},yenile:async()=>{await i(),s("/sinifim/",{state:{katilim:n.current}})}})]})})}function xl({rol:i}){return e.jsx(cn,{ekran:null,baslik:a("Sayfa bulunamadı"),rol:i,girisli:i.durum==="tamam",children:e.jsxs("p",{children:[a("Bu adreste bir sayfa yok.")," ",e.jsx("a",{href:X("/egitim/"),children:a("Eğitim sayfasına dön")}),"."]})})}const pi=An(location.pathname),mn=pi&&new URLSearchParams(location.search).get("gomulu")==="1";if(!mn&&!document.querySelector("script[data-probot-brand]")){const i=document.createElement("script");i.src="/brand/header.js?v=7",i.defer=!0,i.setAttribute("data-probot-brand","1"),document.head.appendChild(i)}pi||Ln((i,s)=>{try{window.posthog?.capture?.(i,s)}catch{}});const bl=Tn.createRoot(document.getElementById("root")),Qi=i=>bl.render(e.jsx(Rn.StrictMode,{children:e.jsx(Mn,{children:e.jsx(Fn,{basename:si(location.pathname),children:i})})}));Kn().then(({language:i})=>{pi?Dn(()=>import("./OrnekApp-gLLAt0Cu.js"),__vite__mapDeps([0,1,2,3])).then(async({default:s,ornekKur:n})=>{await n(i),Qi(e.jsx(s,{gomulu:mn}))}):Qi(e.jsx(ml,{}))});export{_t as S,zl as p};