#tdp{--bg:#fff;--tx:#1d2433;--mu:#5b6578;--ac:#1f6feb;--ln:#d9deea;--cd:#f5f7fb;background:var(--bg);color:var(--tx);font-family:Tahoma,Arial,sans-serif;max-width:1000px;margin:0 auto;padding:16px;line-height:1.7;border-radius:14px;box-sizing:border-box} @media (prefers-color-scheme:dark){#tdp{--bg:#10141c;--tx:#e8ecf5;--mu:#9aa5bb;--ln:#2a3247;--cd:#1a2030}} #tdp *{box-sizing:border-box} #tdp h1{margin:0;font-size:1.7rem;color:var(--ac)} #tdp h2{margin:0 0 4px;font-size:1.4rem} #tdp .mu{color:var(--mu);margin:0 0 14px} #tdp .hd{text-align:center;padding:10px 0 18px;border-bottom:1px solid var(--ln);margin-bottom:16px} #tdp .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px} #tdp .tc{display:block;background:var(--cd);border:1px solid var(--ln);border-radius:14px;padding:16px;text-decoration:none;color:var(--tx)} #tdp .tc:hover{border-color:var(--ac);transform:translateY(-2px)} #tdp .tc b{display:block;font-size:1.05rem;margin:4px 0} #tdp .tc span{font-size:.85rem;color:var(--mu)} #tdp .tc i{font-style:normal;font-size:1.8rem} #tdp .card{background:var(--cd);border:1px solid var(--ln);border-radius:12px;padding:14px;margin-bottom:14px} #tdp .g{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px} #tdp label{font-size:.85rem;color:var(--mu);display:block} #tdp input[type=text],#tdp select,#tdp textarea{width:100%;padding:8px 10px;border:1px solid var(--ln);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit} #tdp button,#tdp a.bt{display:inline-block;background:var(--ac);color:#fff;border:0;border-radius:9px;padding:9px 16px;font:inherit;font-weight:700;cursor:pointer;margin:4px 0 0 6px;text-decoration:none} #tdp .s{background:transparent!important;color:var(--ac)!important;border:1px solid var(--ac)!important} #tdp .bc{margin-bottom:10px;font-size:.9rem} #tdp .bc a{color:var(--ac);text-decoration:none} #tdp #pw{direction:ltr;overflow:hidden;border:1px solid var(--ln);border-radius:10px;background:#e9ecf3} #tdp #pst{transform-origin:top left} #tdp .pg{width:794px;height:1123px;background:#fff;color:#000;direction:rtl;position:relative;padding:36px;font-family:Tahoma,Arial,sans-serif;overflow:hidden} #tdp .pg.ls{width:1123px;height:794px} #tdp .pg table{width:100%;border-collapse:collapse} #tdp .pg td,#tdp .pg th{border:1.5px solid #333;text-align:center;padding:6px 4px;font-size:14px} #tdp .pg td[contenteditable]:empty:before{content:"+";color:#aaa} #tdp .pg.exp td[contenteditable]:empty:before{content:""} #tdp .pg .mh{display:flex;justify-content:space-between;align-items:flex-start;font-size:13px;line-height:1.9;margin-bottom:10px} #tdp .pg .mh div{width:32%} #tdp .pg .mh .c{text-align:center;font-weight:700} #tdp .nt{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px} #tdp .tg{height:190px;border:5px solid;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:700;font-size:34px;padding:10px} #tdp .nr{width:100%;border-collapse:collapse;margin-top:8px} #tdp .nr td,#tdp .nr th{border:1px solid var(--ln);padding:6px 8px;text-align:center} #tdp .rs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px} #tdp .cd{background:var(--cd);border:1px solid var(--ln);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px} #tdp .cd small{color:var(--mu)} #tdp .dis{background:var(--ln);color:var(--mu);border-radius:9px;padding:8px 14px;text-align:center} #tdp .em{background:var(--cd);border:1px dashed var(--ln);border-radius:14px;padding:18px;text-align:center;color:var(--mu);grid-column:1/-1} #tdp .lv a{display:inline-block;background:var(--cd);border:1px solid var(--ln);border-radius:10px;padding:8px 14px;margin:0 0 8px 8px;color:var(--tx);text-decoration:none;font-weight:700} @media print{ body.tpp *{visibility:hidden} body.tpp #pst,body.tpp #pst *{visibility:visible} body.tpp #pst{position:absolute;top:0;left:0;transform:none!important} } أدوات ووثائق تربوية مجانية للأساتذة، تعمل مباشرة من المتصفح وجاهزة للطباعة بتنسيق A4 (function(){ var BRAND='منصة وثائق الأستاذ',SITE='www.flsafa.com'; var $=function(i){return document.getElementById(i)}; function esc(s){return String(s==null?'':s).replace(/&/g,'&').replace(/</g,'<').replace(/"/g,'"')} var H2C='https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js',XL='https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js'; var loaded={};function lib(u){if(loaded[u])return loaded[u];loaded[u]=new Promise(function(ok,ko){var s=document.createElement('script');s.src=u;s.onload=ok;s.onerror=ko;document.head.appendChild(s)});return loaded[u]} var TH={'أزرق':['#1f6feb','#eaf1fe'],'أخضر':['#12a150','#e6f6ec'],'برتقالي':['#e8731a','#fff1e2'],'بنفسجي':['#6a4cff','#eeeaff']}; var THK=Object.keys(TH);function cl(v){return TH[v.theme]||TH['أزرق']} var MIN='المملكة المغربية<br>وزارة التربية الوطنية والتعليم الأولي<br>والرياضة'; function sel(a){return a} var T={ timetable:{n:'استعمال الزمن',i:'📅',d:'صمم استعمال الزمن الأسبوعي لمؤسسات الريادة (فترة التعليم الصريح أو الدعم المكثف) بتنسيق A4. اضغط على أي خانة في المعاينة لكتابة المادة أو الحصة.', F:[['acad','الأكاديمية الجهوية'],['dir','المديرية الإقليمية'],['school','المؤسسة'],['year','الموسم الدراسي','text','2026/2027'],['teacher','الأستاذ(ة)'],['level','المستوى والقسم'],['mat','رقم التأجير'],['subj','المادة'],['ptype','نوع الفترة','select','التعليم الصريح',['التعليم الصريح','الدعم المكثف','عادي']],['sat','يوم السبت','select','راحة',['راحة','دراسة']]], R:function(v,V){var d=['الإثنين','الثلاثاء','الأربعاء','الخميس','الجمعة'];if(v.sat==='دراسة')d.push('السبت'); var rows=[['الفترة الصباحية','08:00 - 10:15'],['استراحة','10:15 - 10:30',1],['','10:30 - 13:00'],['الفترة المسائية','13:00 - 15:15'],['استراحة','15:15 - 15:30',1],['','15:30 - 18:00']],n=0,C=V._c||{}; var h='<div class="mh"><div>الأكاديمية الجهوية: '+esc(v.acad)+'<br>المديرية الإقليمية: '+esc(v.dir)+'<br>المؤسسة: '+esc(v.school)+'<br>الموسم الدراسي: '+esc(v.year)+'</div><div class="c">'+MIN+'</div><div>الأستاذ(ة): '+esc(v.teacher)+'<br>المستوى والقسم: '+esc(v.level)+'<br>رقم التأجير: '+esc(v.mat)+'<br>المادة: '+esc(v.subj)+'</div></div>'; h+='<h2 style="text-align:center;margin:14px 0">استعمال الزمن'+(v.ptype==='عادي'?'':' - فترة '+esc(v.ptype))+'</h2><table><tr><th>التوقيت</th>'+d.map(function(x){return '<th>'+x+'</th>'}).join('')+'</tr>'; rows.forEach(function(r){h+='<tr style="height:'+(r[2]?'38':'110')+'px"><th>'+(r[0]?r[0]+'<br>':'')+'<span style="font-weight:400;font-size:12px">'+r[1]+'</span></th>';d.forEach(function(){n++;h+=r[2]?'<td style="background:#f0f0f0">استراحة</td>':'<td contenteditable="true" data-c="'+n+'">'+esc(C[n]||'')+'</td>'});h+='</tr>'}); return h+'</table><div style="display:flex;justify-content:space-around;margin-top:60px;font-weight:700"><span>توقيع الأستاذ(ة)</span><span>توقيع المدير(ة)</span><span>توقيع المفتش(ة)</span></div>'}}, card:{n:'البطاقة الشخصية',i:'🪪',d:'أنشئ بطاقتك الشخصية كأستاذ(ة) بتصميم رسمي واحترافي جاهز للطباعة.', F:[['name','الاسم الكامل'],['school','المؤسسة'],['level','المستوى / القسم'],['subj','المادة'],['mat','رقم التأجير'],['phone','الهاتف'],['year','الموسم','text','2026/2027'],['theme','اللون','select','أزرق',THK]], R:function(v){var c=cl(v);return '<div style="border:6px solid '+c[0]+';border-radius:24px;margin:60px auto 0;width:640px;padding:26px;background:'+c[1]+'"><div style="text-align:center;font-size:14px;font-weight:700;line-height:1.8">'+MIN+'</div><h2 style="text-align:center;background:'+c[0]+';color:#fff;border-radius:12px;padding:6px;margin:14px 0">بطاقة شخصية</h2><div style="font-size:19px;line-height:2.3"><b>الاسم:</b> '+esc(v.name)+'<br><b>المؤسسة:</b> '+esc(v.school)+'<br><b>المستوى:</b> '+esc(v.level)+'<br><b>المادة:</b> '+esc(v.subj)+'<br><b>رقم التأجير:</b> '+esc(v.mat)+'<br><b>الهاتف:</b> '+esc(v.phone)+'<br><b>الموسم:</b> '+esc(v.year)+'</div></div>'}}, cover:{n:'واجهات الملفات',i:'📁',d:'صمم واجهة احترافية لملفاتك ووثائقك التربوية في ثوانٍ مع ألوان وقوالب متنوعة.', F:[['title','عنوان الملف','text','الملف التراكمي'],['sub','عنوان فرعي','text','المدرسة الرائدة'],['teacher','الأستاذ(ة)'],['school','المؤسسة'],['level','المستوى'],['year','الموسم','text','2026/2027'],['theme','اللون','select','أزرق',THK],['style','القالب','select','إطار مزدوج',['إطار مزدوج','شريط علوي','دائري']]], R:function(v){var c=cl(v),b=v.style==='شريط علوي'?'<div style="position:absolute;top:0;right:0;left:0;height:230px;background:'+c[0]+'"></div>':v.style==='دائري'?'<div style="position:absolute;top:-180px;left:-180px;width:480px;height:480px;border-radius:50%;background:'+c[0]+'"></div><div style="position:absolute;bottom:-200px;right:-160px;width:460px;height:460px;border-radius:50%;background:'+c[1]+'"></div>':'<div style="position:absolute;inset:18px;border:6px solid '+c[0]+'"></div><div style="position:absolute;inset:32px;border:2px solid '+c[0]+'"></div>'; return b+'<div style="position:relative;text-align:center;padding-top:'+(v.style==='شريط علوي'?'60':'90')+'px;'+(v.style==='شريط علوي'?'color:#fff':'')+'font-weight:700;font-size:15px;line-height:1.8">'+MIN+'</div><div style="position:relative;text-align:center;margin-top:'+(v.style==='شريط علوي'?'210':'180')+'px"><div style="font-size:64px;font-weight:700;color:'+c[0]+'">'+esc(v.title)+'</div><div style="font-size:30px;margin-top:10px">'+esc(v.sub)+'</div></div><div style="position:absolute;bottom:110px;right:90px;left:90px;font-size:21px;line-height:2.2;background:'+c[1]+';border-radius:16px;padding:16px 24px"><b>الأستاذ(ة):</b> '+esc(v.teacher)+'<br><b>المؤسسة:</b> '+esc(v.school)+'<br><b>المستوى:</b> '+esc(v.level)+'<br><b>الموسم الدراسي:</b> '+esc(v.year)+'</div>'}}, cert:{n:'شواهد التقدير',i:'🏆',ls:1,d:'صمم شواهد تقدير وتفوق لتلاميذك بتصميم متميز وجاهز للطباعة مباشرة.', F:[['student','اسم التلميذ(ة)'],['title','عنوان الشهادة','text','شهادة تقدير'],['txt','نص التقدير','area','تُمنح هذه الشهادة تقديرًا لتفوقه وجده واجتهاده، متمنين له دوام النجاح والتألق.'],['teacher','الأستاذ(ة)'],['school','المؤسسة'],['date','التاريخ'],['theme','اللون','select','أزرق',THK]], R:function(v){var c=cl(v);return '<div style="position:absolute;inset:20px;border:10px double '+c[0]+'"></div><div style="position:relative;text-align:center;padding-top:50px"><div style="font-size:15px;font-weight:700;line-height:1.8">'+MIN+'</div><div style="font-size:66px;font-weight:700;color:'+c[0]+';margin-top:20px">'+esc(v.title)+'</div><div style="font-size:24px;margin-top:20px">تُمنح إلى التلميذ(ة)</div><div style="font-size:52px;font-weight:700;background:'+c[1]+';margin:14px 140px;padding:6px;border-radius:14px">'+esc(v.student)+'</div><div style="font-size:24px;line-height:2;margin:10px 120px">'+esc(v.txt)+'</div></div><div style="position:absolute;bottom:70px;right:100px;left:100px;display:flex;justify-content:space-between;font-size:20px;font-weight:700"><span>الأستاذ(ة): '+esc(v.teacher)+'</span><span>'+esc(v.school)+' - '+esc(v.date)+'</span></div>'}}, tags:{n:'بطاقات أسماء التلاميذ',i:'🏷️',d:'صمم واطبع بطاقات الأسماء لتزيين الفصل والطاولات بنقرة واحدة. اكتب كل اسم في سطر.', F:[['names','أسماء التلاميذ (اسم في كل سطر)','area','أحمد\nفاطمة\nيوسف\nسلمى'],['shape','الشكل','select','مستطيل',['مستطيل','دائري']],['theme','اللون','select','برتقالي',THK]], R:function(v){var c=cl(v),n=String(v.names).split('\n').filter(function(x){return x.trim()}).slice(0,10);return '<div class="nt">'+n.map(function(x){return '<div class="tg" style="border-color:'+c[0]+';background:'+c[1]+';border-radius:'+(v.shape==='دائري'?'95px':'18px')+'">'+esc(x.trim())+'</div>'}).join('')+'</div><p style="text-align:center;font-size:12px;color:#888">10 بطاقات كحد أقصى في الصفحة</p>'}}, rules:{n:'ميثاق وقوانين القسم',i:'📜',d:'صمم ملصق ميثاق وقوانين الفصل الدراسي بتنسيق A4 وجودة طباعة عالية.', F:[['title','العنوان','text','ميثاق وقوانين القسم'],['rules','القوانين (قانون في كل سطر)','area','نحترم الجميع\nنستمع إلى بعضنا\nنرفع أيدينا قبل الكلام\nنحافظ على نظافة القسم\nننجز واجباتنا في وقتها'],['class','القسم','text',''],['theme','اللون','select','أخضر',THK]], R:function(v){var c=cl(v),r=String(v.rules).split('\n').filter(function(x){return x.trim()}).slice(0,9);return '<div style="position:absolute;inset:18px;border:8px solid '+c[0]+';border-radius:28px"></div><div style="position:relative;padding:30px 30px 0"><h1 style="text-align:center;font-size:54px;color:'+c[0]+';margin:10px 0">'+esc(v.title)+'</h1><div style="text-align:center;font-size:24px;margin-bottom:20px">'+esc(v.class)+'</div>'+r.map(function(x,i){return '<div style="display:flex;align-items:center;gap:18px;background:'+c[1]+';border-radius:18px;padding:12px 20px;margin-bottom:12px;font-size:29px;font-weight:700"><span style="background:'+c[0]+';color:#fff;border-radius:50%;width:48px;height:48px;line-height:48px;text-align:center;flex:none">'+(i+1)+'</span>'+esc(x.trim())+'</div>'}).join('')+'</div>'}}, maps:{n:'خطاطات التعليم الصريح',i:'🧠',custom:1,d:'حمّل خطاطات المدرسة الرائدة الذهنية الجاهزة للطباعة، حسب المستوى والمادة والمرحلة والأسبوع، مع روابط مباشرة لدروس التعليم الصريح.'}, notes:{n:'مولد الملاحظات',i:'📝',custom:1,d:'ارفع ملف Excel أو CSV للنقط، وستُولَّد لكل تلميذ ملاحظة مناسبة حسب معدله، ثم انسخ عمود الملاحظات والصقه في ملفك. مخصصة للمؤسسات العادية (غير الرائدة).'} }; var NT=[[0,'متعثر','يحتاج للمزيد من الدعم'],[5,'متوسط','نتائج متوسطة، يمكنه التحسن'],[7,'حسن','نتائج حسنة'],[9,'ممتاز','نتائج ممتازة، واصل']]; var cur=null,V={},sc=1; function hub(){var h='<h2>جميع الأدوات</h2><p class="mu">اختر الأداة التي تحتاجها، عبّئ البيانات، ثم حمّل الوثيقة أو اطبعها.</p><div class="grid">'; Object.keys(T).forEach(function(k){h+='<a class="tc" href="#'+k+'"><i>'+T[k].i+'</i><b>'+T[k].n+'</b><span>'+T[k].d.split('.')[0]+'</span></a>'}); $('tdpMain').innerHTML=h+'</div>';document.title=BRAND} function bcr(t){return '<div class="bc"><a href="#">الرئيسية</a> / '+t.n+'</div><h2>'+t.n+'</h2><p class="mu">'+t.d+'</p>'} function tool(k){var t=T[k];cur=k;V={}; if(t.custom)return (k==='maps'?maps:notes)(t); t.F.forEach(function(f){V[f[0]]=f[3]||''}); var h=bcr(t)+'<div class="card"><div class="g">'+t.F.map(function(f){var ty=f[2]||'text',x='<div><label>'+f[1]+'</label>'; if(ty==='select')x+='<select data-k="'+f[0]+'">'+f[4].map(function(o){return '<option'+(o===f[3]?' selected':'')+'>'+o+'</option>'}).join('')+'</select>'; else if(ty==='area')x+='<textarea rows="5" data-k="'+f[0]+'">'+esc(f[3])+'</textarea>'; else x+='<input type="text" data-k="'+f[0]+'" value="'+esc(f[3]||'')+'">';return x+'</div>'}).join('')+'</div></div>'+ '<div id="pw"><div id="pst"></div></div><div><button id="bPng">تحميل PNG</button><button class="s" id="bPdf">طباعة / حفظ PDF</button><a class="bt s" id="bWa" target="_blank" rel="noopener">مشاركة عبر واتساب</a></div><p class="mu" style="margin-top:10px">للحصول على PDF: اختر «حفظ بصيغة PDF» من نافذة الطباعة، والغِ رؤوس وتذييلات الصفحة.</p>'; $('tdpMain').innerHTML=h;$('tdpPage').textContent='@page{size:A4 '+(t.ls?'landscape':'portrait')+';margin:0}'; $('bWa').href='https://api.whatsapp.com/send?text='+encodeURIComponent(t.n+' - أداة مجانية للأساتذة\n'+location.href.split('#')[0]+'#'+k); draw();document.title=t.n+' | '+BRAND} function draw(){var t=T[cur];$('pst').innerHTML='<div class="pg'+(t.ls?' ls':'')+'" id="pg">'+t.R(V,V)+'</div>';fit()} function fit(){var pw=$('pw');if(!pw)return;var pg=$('pg'),w=pg.offsetWidth;sc=Math.min(1,pw.clientWidth/w);$('pst').style.transform='scale('+sc+')';$('pst').style.marginLeft=Math.max(0,(pw.clientWidth-w*sc)/2)+'px';$('pw').style.height=(pg.offsetHeight*sc)+'px'} function png(){lib(H2C).then(function(){var st=$('pst'),pg=$('pg'),o=st.style.transform;st.style.transform='none';pg.classList.add('exp');return html2canvas(pg,{scale:2,backgroundColor:'#fff'}).then(function(cv){st.style.transform=o;pg.classList.remove('exp');var a=document.createElement('a');a.download=cur+'.png';a.href=cv.toDataURL('image/png');document.body.appendChild(a);a.click();a.remove()})})} var MD=[];function madd(l,s,t,w,u){MD.push({l:l,s:s,t:t,w:w,u:u})} /* ===== خطاطات: madd(المستوى, المادة, المرحلة, الأسبوع, 'رابط التحميل') — الأسبوع 0 = كل أسابيع المرحلة ===== */ madd(2,'الرياضيات',2,0,'https://drive.google.com/file/d/1XjqbLYyQ56CmSHVjcnnwA5tcgBy0v15s/view?usp=sharing'); /* ===== نهاية البيانات ===== */ var ART='https://www.flsafa.com/2026/10/2026-2027_01073011325.html'; var NL=['','الأول','الثاني','الثالث','الرابع','الخامس','السادس'],SUB=['الرياضيات','اللغة العربية','اللغة الفرنسية','النشاط العلمي']; function LVU(i){return 'https://www.flsafa.com/p/sarih-level-'+i+'.html'} function maps(t){ function opt(ph,a){return '<option value="">'+ph+'</option>'+a.map(function(x){return '<option value="'+x[0]+'">'+x[1]+'</option>'}).join('')} function rg(n,p){var a=[];for(var i=1;i<=n;i++)a.push([i,p+' '+NL[i]]);return a} var lv='';for(var i=1;i<=6;i++)lv+='<a href="'+LVU(i)+'">المستوى '+NL[i]+' ابتدائي</a>'; $('tdpMain').innerHTML=bcr(t)+'<div class="card"><div class="g"><div><label>المستوى الدراسي</label><select id="mxL">'+opt('كل المستويات',rg(6,'المستوى'))+'</select></div><div><label>المادة</label><select id="mxS">'+opt('كل المواد',SUB.map(function(x){return [x,x]}))+'</select></div><div><label>المرحلة</label><select id="mxT">'+opt('كل المراحل',rg(5,'المرحلة'))+'</select></div><div><label>الأسبوع</label><select id="mxW">'+opt('كل الأسابيع',rg(6,'الأسبوع'))+'</select></div></div></div><div id="mxLn"></div><div id="mxR" class="rs"></div><h3 style="margin-top:20px">دروس التعليم الصريح حسب المستوى</h3><div class="lv">'+lv+'</div><p><a href="'+ART+'" style="color:var(--ac)">تحميل دروس التعليم الصريح بالمدارس الرائدة 2026-2027 (جميع المستويات)</a></p>'; function run(){var l=+$('mxL').value,s=$('mxS').value,tt=+$('mxT').value,w=+$('mxW').value; var r=MD.filter(function(d){return (!l||d.l===l)&&(!s||d.s===s)&&(!tt||d.t===tt)&&(!w||d.w===w||d.w===0)}); $('mxLn').innerHTML=l?'<p><a href="'+LVU(l)+'" style="color:var(--ac);font-weight:700">دروس التعليم الصريح للمستوى '+NL[l]+' ابتدائي ←</a></p>':''; if(!r.length){$('mxR').innerHTML='<div class="em">لا توجد خطاطات مضافة لهذا الاختيار بعد.<br><a class="bt" href="'+(l?LVU(l):ART)+'">'+(l?'افتح دروس المستوى '+NL[l]:'تصفح دروس التعليم الصريح')+'</a></div>';return} $('mxR').innerHTML=r.map(function(d){return '<div class="cd"><b>خطاطات '+d.s+' – المستوى '+NL[d.l]+' – المرحلة '+NL[d.t]+'</b><small>'+(d.w?'الأسبوع '+NL[d.w]:'جميع أسابيع المرحلة')+'</small>'+(d.u?'<a class="bt" target="_blank" rel="noopener" href="'+d.u+'">⬇ تحميل الخطاطات</a>':'<div class="dis">قريبًا</div>')+'<a class="bt s" href="'+LVU(d.l)+'">دروس المستوى '+NL[d.l]+'</a></div>'}).join('')} ['mxL','mxS','mxT','mxW'].forEach(function(i){$(i).onchange=run});run(); document.title=t.n+' | '+BRAND} function notes(t){ $('tdpMain').innerHTML=bcr(t)+'<div class="card"><label>ارفع ملف النقط (xlsx / xls / csv): عمود للأسماء ثم أعمدة النقط من 10</label><input type="file" id="nf" accept=".xlsx,.xls,.csv"></div><div class="card"><b>الملاحظات النمطية (قابلة للتعديل)</b><div class="g" style="margin-top:8px">'+NT.map(function(n,i){return '<div><label>'+n[1]+' ['+n[0]+']</label><input type="text" id="nt'+i+'" value="'+esc(n[2])+'"></div>'}).join('')+'</div></div><div class="card"><b>لائحة التلاميذ <span id="nc">0</span></b> <button id="ncp">نسخ عمود الملاحظات</button><div id="nm" class="mu"></div><div style="overflow-x:auto"><table class="nr" id="ntb"><tr><th>#</th><th>الاسم</th><th>المعدل</th><th>الملاحظة</th></tr></table></div></div>'; var rows=[]; function note(a){var k=0;NT.forEach(function(n,i){if(a>=n[0])k=i});return $('nt'+k).value} function show(){var h='<tr><th>#</th><th>الاسم</th><th>المعدل</th><th>الملاحظة</th></tr>';rows.forEach(function(r,i){h+='<tr><td>'+(i+1)+'</td><td>'+esc(r[0])+'</td><td>'+r[1].toFixed(2)+'</td><td>'+esc(note(r[1]))+'</td></tr>'});$('ntb').innerHTML=h;$('nc').textContent=rows.length} $('nf').onchange=function(e){var f=e.target.files[0];if(!f)return;$('nm').textContent='جارٍ القراءة...'; Promise.all([lib(XL),f.arrayBuffer()]).then(function(r){var wb=XLSX.read(r[1]),a=XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]],{header:1});rows=[]; a.slice(1).forEach(function(x){if(!x||!x.length)return;var nm=x[0],v=x.slice(1).filter(function(z){return z!==''&&z!=null&&isFinite(Number(z))}).map(Number);if(nm&&v.length){rows.push([nm,v.reduce(function(p,q){return p+q},0)/v.length])}}); $('nm').textContent=rows.length?'':'لم أجد نقطًا قابلة للقراءة.';show()}).catch(function(){$('nm').textContent='تعذر قراءة الملف.'})}; $('tdpMain').addEventListener('input',function(e){if(e.target.id&&e.target.id.indexOf('nt')===0)show()}); $('ncp').onclick=function(){var s=rows.map(function(r){return note(r[1])}).join('\n');if(navigator.clipboard){navigator.clipboard.writeText(s).then(function(){$('nm').textContent='تم نسخ الملاحظات'})}}; document.title=t.n+' | '+BRAND} function route(){var k=location.hash.slice(1);if(T[k])tool(k);else{cur=null;hub()}window.scrollTo(0,0)} $('tdp').addEventListener('input',function(e){var k=e.target.dataset&&e.target.dataset.k;if(k&&cur){V[k]=e.target.value;draw()} var c=e.target.dataset&&e.target.dataset.c;if(c){(V._c=V._c||{})[c]=e.target.textContent}}); $('tdp').addEventListener('change',function(e){var k=e.target.dataset&&e.target.dataset.k;if(k&&cur){V[k]=e.target.value;draw()}}); $('tdp').addEventListener('click',function(e){if(e.target.id==='bPng')png();if(e.target.id==='bPdf'){$('pg').classList.add('exp');document.body.classList.add('tpp');setTimeout(function(){window.print();document.body.classList.remove('tpp');$('pg').classList.remove('exp')},200)}}); window.addEventListener('hashchange',route);window.addEventListener('resize',fit); $('tdpBrand').textContent=BRAND;$('tdpFt').innerHTML=BRAND+' · <a href="https://'+SITE+'" style="color:inherit">'+SITE+'</a>'; route(); })();