1import{r as i,j as e}from"./vendor-react-Bw0yZR8O.js";import{u as B}from"./index-CNA9GrcP.js";import{r as U,T as E,e as _,a as z}from"./TabMataPelajaran-CbA1ZKQv.js";import{TabPlottingPengampu as O}from"./TabPlottingPengampu-B4hM7O1O.js";import"./vendor-jspdf-DG6NFa1h.js";import"./vendor-dexie-DZvIVlTU.js";import"./vendor-firebase-app-BK1n4Tym.js";import"./TeacherAvailabilityModal-4Ui7oaRP.js";import"./lazyClientLibs-CJxOBoH9.js";const ee=()=>{const{settings:s,onSaveSettings:C,currentUser:j,showToast:d,showConfirmation:k}=B(),o=j?.role==="admin"||j?.permissions?.akademik==="write",[$,S]=i.useState(!1),[c,p]=i.useState("actions"),[I,h]=i.useState(!1),[u,R]=i.useState(s.jenjang[0]?.id||0),[x,A]=i.useState(s.jenjang[1]?.id||0),[f,K]=i.useState("append"),[y,P]=i.useState(!1),[b,J]=i.useState("katalog"),v=(a,r)=>{C({...s,[a]:r})},N=i.useMemo(()=>new Map(s.jenjang.map(a=>[a.id,a.nama])),[s.jenjang]),m=i.useMemo(()=>{const a={Diniyah:0,Tahfizh:0,Bahasa:0,Umum:0,Mulok:0,Lainnya:0};return s.mataPelajaran.forEach(r=>{const n=r.rumpun||"Umum";a[n]!==void 0?a[n]++:a.Lainnya++}),a},[s.mataPelajaran]),t=i.useMemo(()=>U(s.mataPelajaran,s.jenjang),[s.mataPelajaran,s.jenjang]),w=async a=>{const r=a?[a]:t.pureDuplicates;if(r.length===0){d("Tidak ada mata pelajaran duplikat di jenjang yang sama.","info");return}const n=r.reduce((l,M)=>l+(M.items.length-1),0);k("Terapkan Konsolidasi & Gabungkan Duplikat?",`Sistem akan menggabungkan ${n} mata pelajaran kembar menjadi satu ID resmi. Relasi referensi di Jadwal Pelajaran (KBM), Jadwal Ujian, Jurnal Mengajar, Nilai Rapor Santri, dan Kompetensi Guru akan dimigrasikan secara utuh tanpa kehilangan data riwayat. Lanjutkan?`,async()=>{P(!0);try{const l=await _(r,s,j?.nama||j?.username||"Admin");C(l.updatedSettings),d(`Konsolidasi berhasil! ${l.mergedMapelCount} mapel kembar disatukan. Termigrasi: ${l.jadwalPelajaranCount} Jadwal KBM, ${l.jadwalUjianCount} Ujian, ${l.jurnalMengajarCount} Jurnal, ${l.raporRecordsCount} Rapor Santri, dan ${l.teachersUpdatedCount} Guru.`,"success")}catch(l){console.error("Error consolidating mapel:",l),d("Terjadi kesalahan saat mengonsolidasi mata pelajaran.","error")}finally{P(!1)}},{confirmColor:"teal"})},D=()=>{if(t.missingMetaCount===0){d("Semua mata pelajaran sudah memiliki metadata Rumpun dan KKM yang lengkap.","info");return}k("Standarisasi Metadata Otomatis?",`Ditemukan ${t.missingMetaCount} mata pelajaran dengan Rumpun atau KKM kosong. Sistem akan melengkapi otomatis: KKM default (70), Alokasi Jam (2 JP/pekan), Kode Mapel, dan Klasifikasi Rumpun cerdas (Diniyah/Tahfizh/Bahasa/Umum/Mulok). Lanjutkan?`,()=>{const{updatedList:a,enrichedCount:r}=z(s.mataPelajaran,70,2);v("mataPelajaran",a),d(`Berhasil menstandarisasi metadata untuk ${r} mata pelajaran.`,"success")},{confirmColor:"teal"})},G=()=>{if(!u||!x){d("Pilih jenjang sumber dan jenjang tujuan.","error");return}if(u===x){d("Jenjang sumber dan jenjang tujuan tidak boleh sama.","error");return}const a=s.mataPelajaran.filter(l=>l.jenjangId===u);if(a.length===0){d("Jenjang sumber tidak memiliki mata pelajaran.","error");return}const r=N.get(u)||"Sumber",n=N.get(x)||"Tujuan";k(`Kloning Kurikulum ke ${n}?`,`Sistem akan menyalin ${a.length} mata pelajaran dari "${r}" ke "${n}" (${f==="replace"?"Menimpa data mapel lama di tujuan":"Menambahkan ke daftar tujuan"}). Lanjutkan?`,()=>{let l=[...s.mataPelajaran];f==="replace"&&(l=l.filter(g=>g.jenjangId!==x));let M=l.length>0?Math.max(...l.map(g=>g.id))+1:1;const T=a.map(g=>({...g,id:M++,jenjangId:x})),L=[...l,...T];v("mataPelajaran",L),h(!1),d(`Berhasil mengkloning ${T.length} mata pelajaran ke ${n}.`,"success")})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"bg-white p-4 rounded-xl border border-gray-200 shadow-2xs",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3 border-b pb-3 mb-3",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"text-sm font-bold text-gray-900 flex items-center gap-2",children:[e.jsx("i",{className:"bi bi-collection-fill text-teal-600"}),"Rumpun Kurikulum & Struktur Pelajaran"]}),e.jsxs("p",{className:"text-xs text-gray-500 mt-0.5",children:["Total ",s.mataPelajaran.length," Mata Pelajaran terdaftar di seluruh marhalah pondok pesantren."]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:flex items-center gap-2 w-full sm:w-auto",children:[e.jsxs("button",{type:"button",onClick:()=>S(a=>!a),className:`px-3 py-1.5 rounded-lg text-xs font-bold border transition-colors flex items-center justify-center gap-1.5 shadow-2xs ${t.pureDuplicatesCount>0?"bg-amber-50 text-amber-800 border-amber-300 hover:bg-amber-100":"bg-teal-50 text-teal-800 border-teal-200 hover:bg-teal-100"}`,children:[e.jsx("i",{className:"bi bi-shield-check"}),e.jsx("span",{children:"Audit & Solusi Redundansi"}),t.pureDuplicatesCount>0&&e.jsxs("span",{className:"bg-amber-600 text-white text-[10px] px-1.5 py-0.2 rounded-full font-black",children:[t.pureDuplicatesCount," Duplikat"]})]}),o&&e.jsxs("button",{type:"button",onClick:()=>h(!0),className:"px-3 py-1.5 bg-white border border-gray-300 hover:bg-gray-50 text-gray-700 rounded-lg text-xs font-bold flex items-center justify-center gap-1.5 shadow-2xs transition-colors",children:[e.jsx("i",{className:"bi bi-copy"}),e.jsx("span",{children:"Salin Kurikulum Antar-Jenjang"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 ga
1p-2.5",children:[e.jsxs("div",{className:"p-2.5 rounded-lg bg-amber-50/80 border border-amber-200 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-bold text-amber-800 uppercase",children:"Diniyah / Kitab"}),e.jsxs("div",{className:"text-lg font-black text-amber-900 mt-0.5",children:[m.Diniyah," ",e.jsx("span",{className:"text-xs font-normal",children:"Mapel"})]})]}),e.jsx("i",{className:"bi bi-book-half text-xl text-amber-500"})]}),e.jsxs("div",{className:"p-2.5 rounded-lg bg-emerald-50/80 border border-emerald-200 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-bold text-emerald-800 uppercase",children:"Tahfizh & Tajwid"}),e.jsxs("div",{className:"text-lg font-black text-emerald-900 mt-0.5",children:[m.Tahfizh," ",e.jsx("span",{className:"text-xs font-normal",children:"Mapel"})]})]}),e.jsx("i",{className:"bi bi-bookmark-star-fill text-xl text-emerald-500"})]}),e.jsxs("div",{className:"p-2.5 rounded-lg bg-teal-50/80 border border-teal-200 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-bold text-teal-800 uppercase",children:"Bahasa (Arab/Ing)"}),e.jsxs("div",{className:"text-lg font-black text-teal-900 mt-0.5",children:[m.Bahasa," ",e.jsx("span",{className:"text-xs font-normal",children:"Mapel"})]})]}),e.jsx("i",{className:"bi bi-translate text-xl text-teal-500"})]}),e.jsxs("div",{className:"p-2.5 rounded-lg bg-blue-50/80 border border-blue-200 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-bold text-blue-800 uppercase",children:"Umum / Nasional"}),e.jsxs("div",{className:"text-lg font-black text-blue-900 mt-0.5",children:[m.Umum," ",e.jsx("span",{className:"text-xs font-normal",children:"Mapel"})]})]}),e.jsx("i",{className:"bi bi-mortarboard-fill text-xl text-blue-500"})]}),e.jsxs("div",{className:"p-2.5 rounded-lg bg-purple-50/80 border border-purple-200 flex items-center justify-between col-span-2 sm:col-span-1",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-bold text-purple-800 uppercase",children:"Mulok & Lainnya"}),e.jsxs("div",{className:"text-lg font-black text-purple-900 mt-0.5",children:[m.Mulok+m.Lainnya," ",e.jsx("span",{className:"text-xs font-normal",children:"Mapel"})]})]}),e.jsx("i",{className:"bi bi-stars text-xl text-purple-500"})]})]})]}),$&&e.jsxs("div",{className:"bg-white rounded-xl border border-teal-300 shadow-md overflow-hidden animate-fade-in",children:[e.jsxs("div",{className:"p-4 bg-gradient-to-r from-teal-900 via-teal-800 to-emerald-900 text-white flex flex-col sm:flex-row justify-between items-start sm:items-center gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-white/10 flex items-center justify-center text-teal-300 text-xl border border-white/10",children:e.jsx("i",{className:"bi bi-shield-check"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold flex items-center gap-2",children:e.jsx("span",{children:"Pusat Pemeriksaan & Konsolidasi Mapel"})}),e.jsx("p",{className:"text-[11px] text-teal-200",children:"Pemeriksaan mata pelajaran ganda, penyelarasan kurikulum, dan pembersihan data KBM."})]})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("button",{type:"button",onClick:()=>S(!1),className:"text-teal-200 hover:text-white px-2 py-1 rounded text-xs",children:[e.jsx("i",{className:"bi bi-x-lg mr-1"}),e.jsx("span",{children:"Tutup Panel"})]})})]}),e.jsxs("div",{className:"flex border-b bg-gray-50/80 px-4 overflow-x-auto text-xs",children:[e.jsxs("button",{type:"button",onClick:()=>p("actions"),className:`py-3 px-3.5 font-bold border-b-2 whitespace-nowrap flex items-center gap-1.5 transition-colors ${c==="actions"?"border-teal-600 text-teal-800 bg-white":"border-transparent text-gray-600 hover:text-teal-700"}`,children:[e.jsx("i",{className:"bi bi-lightning-charge-fill text-teal-600"}),e.jsx("span",{children:"Ringkasan & Tindakan Solutif"})]}),e.jsxs("button",{type:"button",onClick:()=>p("duplicates"),className:`py-3 px-3.5 font-bold border-b-2 whitespace-nowrap flex items-center gap-1.5 transition-colors ${c==="duplicates"?"border-teal-600 text-teal-800 bg-white":"border-transparent text-gray-600 hover:text-teal-700"}`,children:[e.jsx("i",{className:"bi bi-exclamation-triangle-fill text-red-500"}),e.jsx("span",{children:"Duplikat Kembar Jenjang"}),t.pureDuplicatesCount>0&&e.jsx("span",{className:"bg-red-100 text-red-700 text-[10px] px-1.5 py-0.2 rounded-full font-bold",children:t.pureDuplicatesCount})]}),e.jsxs("button",{type:"button",onClick:()=>p("cross_jenjang"),className:`py-3 px-3.5 font-bold border-b-2 whitespace-nowrap flex items-center gap-1.5 transition-colors ${c==="cross_jenjang"?"border-teal-600 text-teal-800 bg-white":"border-transparent text-gray-600 hover:text-teal-700"}`,children:[e.jsx("i",{className:"bi bi-layers-fill text-sky-600"}),e.jsx("span",{children:"Peta Lintas-Jenjang"}),e.jsx("span",{className:"bg-sky-100 text-sky-800 text-[10px] px-1.5 py-0.2 rounded-full font-bold",children:t.crossJenjangGroups.length})]}),e.jsxs("button",{type:"button",onClick:()=>p("missing_meta"),className:`py-3 px-3.5 font-bold border-b-2 whitespace-nowrap flex items-center gap-1.5 transition-colors ${c==="missing_meta"?"border-teal-600 text-teal-800 bg-white":"border-transparent text-gray-600 hover:text-teal-700"}`,children:[e.jsx("i",{className:"bi bi-file-earmark-check-fill text-amber-500"}),e.jsx("span",{children:"Standarisasi Metadata"}),t.missingMetaCount>0&&e.jsx("span",{className:"bg-amber-100 text-amber-800 text-[10px] px-1.5 py-0.2 rounded-full font-bold",children:t.missingMetaCount})]})]}),e.jsxs("div",{className:"p-4 space-y-4 text-xs",children:[c==="actions"&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3.5",children:[e.jsxs("div",{className:`p-4 rounded-xl border flex flex-col justify-between ${t.pureDuplicatesCount>0?"bg-red-50/70 border-red-200 text-red-950":"bg-emerald-50/70 border-emerald-200 text-emerald-950"}`,children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-wide",children:"Duplikat di Jenjang Sama"}),e.jsx("span",{className:`text-base font-black px-2 py-0.5 rounded-full ${t.pureDuplicatesCount>0?"bg-red-200 text-red-900":"bg-emerald-200 text-emerald-900"}`,children:t.pureDuplicatesCount})]}),e.jsx("p",{className:"text-[11px] mt-2 text-gray-600 leading-relaxed",children:t.pureDuplicatesCount>0?`Ditemukan ${t.pureDuplicatesCount} mata pelajaran kembar dengan nama serupa di satu jenjang yang memecah jadwal dan jurnal mengajar.`:"Basis data bersih! Tid
1ak ada mata pelajaran duplikat di jenjang yang sama."})]}),t.pureDuplicatesCount>0&&o&&e.jsxs("button",{type:"button",disabled:y,onClick:()=>w(),className:"mt-3.5 w-full py-2 bg-red-600 hover:bg-red-700 text-white font-bold rounded-lg text-xs flex items-center justify-center gap-1.5 shadow-2xs transition-colors",children:[e.jsx("i",{className:"bi bi-intersect"}),e.jsx("span",{children:y?"Memproses...":"Gabungkan & Konsolidasi Otomatis"})]})]}),e.jsxs("div",{className:`p-4 rounded-xl border flex flex-col justify-between ${t.missingMetaCount>0?"bg-amber-50/70 border-amber-200 text-amber-950":"bg-emerald-50/70 border-emerald-200 text-emerald-950"}`,children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-wide",children:"Standarisasi Metadata"}),e.jsx("span",{className:`text-base font-black px-2 py-0.5 rounded-full ${t.missingMetaCount>0?"bg-amber-200 text-amber-900":"bg-emerald-200 text-emerald-900"}`,children:t.missingMetaCount})]}),e.jsx("p",{className:"text-[11px] mt-2 text-gray-600 leading-relaxed",children:t.missingMetaCount>0?`${t.missingMetaCount} mata pelajaran belum memiliki klasifikasi Rumpun atau nilai KKM standar.`:"Lengkap! Seluruh mata pelajaran telah memiliki Rumpun dan KKM standar."})]}),t.missingMetaCount>0&&o&&e.jsxs("button",{type:"button",onClick:D,className:"mt-3.5 w-full py-2 bg-amber-600 hover:bg-amber-700 text-white font-bold rounded-lg text-xs flex items-center justify-center gap-1.5 shadow-2xs transition-colors",children:[e.jsx("i",{className:"bi bi-magic"}),e.jsx("span",{children:"Standarisasi Rumpun & KKM Otomatis"})]})]}),e.jsxs("div",{className:"p-4 rounded-xl border bg-sky-50/70 border-sky-200 text-sky-950 flex flex-col justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-wide",children:"Mapel Lintas-Jenjang"}),e.jsx("span",{className:"text-base font-black px-2 py-0.5 rounded-full bg-sky-200 text-sky-900",children:t.crossJenjangGroups.length})]}),e.jsxs("p",{className:"text-[11px] mt-2 text-sky-800 leading-relaxed",children:[t.crossJenjangGroups.length," judul mapel diajarkan di multi-marhalah (Tahfizh, Fiqih, dll). Sesuai arsitektur, ID terisolasi mandiri agar silabus dan rapor aman."]})]}),e.jsxs("button",{type:"button",onClick:()=>p("cross_jenjang"),className:"mt-3.5 w-full py-2 bg-sky-700 hover:bg-sky-800 text-white font-bold rounded-lg text-xs flex items-center justify-center gap-1.5 shadow-2xs transition-colors",children:[e.jsx("i",{className:"bi bi-search"}),e.jsx("span",{children:"Lihat Peta Ketersebaran"})]})]})]}),e.jsxs("div",{className:"p-3.5 bg-teal-50 border border-teal-200 rounded-xl flex items-start gap-3",children:[e.jsx("i",{className:"bi bi-info-circle-fill text-teal-600 text-base mt-0.5"}),e.jsxs("div",{className:"text-xs text-teal-900 leading-relaxed",children:[e.jsx("span",{className:"font-bold",children:"Keamanan Migrasi Data:"})," Penggabungan mapel duplikat dijamin aman. Sistem secara atomik memindahkan seluruh data relasi foreign-key pada tabel ",e.jsx("strong",{children:"Jadwal Pelajaran, Jadwal Ujian, Jurnal Mengajar, Nilai Rapor Santri, dan Data Guru Pengampu"})," ke entri mapel utama sebelum entri redundan dibersihkan."]})]})]}),c==="duplicates"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("h5",{className:"font-bold text-gray-800 flex items-center gap-1.5",children:[e.jsx("i",{className:"bi bi-intersect text-red-600"}),e.jsxs("span",{children:["Grup Duplikat Kembar di Jenjang yang Sama (",t.pureDuplicates.length," Kelompok)"]})]}),t.pureDuplicates.length>0&&o&&e.jsxs("button",{type:"button",disabled:y,onClick:()=>w(),className:"px-3 py-1.5 bg-red-600 hover:bg-red-700 text-white font-bold rounded-lg text-xs flex items-center gap-1 shadow-2xs",children:[e.jsx("i",{className:"bi bi-check-all"}),e.jsx("span",{children:"Gabungkan Semua Grup Sekaligus"})]})]}),t.pureDuplicates.length>0?e.jsx("div",{className:"space-y-2.5",children:t.pureDuplicates.map((a,r)=>
1e.jsxs("div",{className:"p-3.5 bg-white border border-red-200 rounded-xl shadow-2xs flex flex-col md:flex-row justify-between items-start md:items-center gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-bold text-gray-900 text-sm",children:a.items[0].nama}),e.jsx("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded bg-teal-50 text-teal-800 border border-teal-200",children:a.jenjangNama}),e.jsxs("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded bg-red-50 text-red-700 border border-red-200",children:[a.items.length," Entri Kembar"]})]}),e.jsxs("div",{className:"text-[11px] text-gray-500 flex flex-wrap gap-2",children:[e.jsx("span",{children:"ID Terdeteksi:"}),a.items.map(n=>e.jsxs("span",{className:"font-mono bg-gray-100 text-gray-700 px-1.5 py-0.2 rounded border",children:["#",n.id," ",n.kodeMapel?`(${n.kodeMapel})`:""," - ",n.rumpun||"Tanpa Rumpun"]},n.id))]})]}),o&&e.jsxs("button",{type:"button",disabled:y,onClick:()=>w(a),className:"px-3 py-1.5 bg-red-50 hover:bg-red-100 text-red-700 border border-red-300 font-bold rounded-lg text-xs flex items-center gap-1.5 shrink-0 transition-colors",children:[e.jsx("i",{className:"bi bi-intersect"}),e.jsx("span",{children:"Satukan Grup Ini"})]})]},r))}):e.jsxs("div",{className:"p-8 text-center bg-emerald-50 rounded-xl border border-emerald-200 text-emerald-900 space-y-1",children:[e.jsx("i",{className:"bi bi-check-circle-fill text-3xl text-emerald-600"}),e.jsx("h5",{className:"font-bold text-sm",children:"Tidak Ada Mapel Kembar"}),e.jsx("p",{className:"text-xs text-emerald-700",children:"Seluruh nama mata pelajaran di tiap jenjang bersifat unik dan tertata rapi."})]})]}),c==="cross_jenjang"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsxs("h5",{className:"font-bold text-gray-800 flex items-center gap-1.5",children:[e.jsx("i",{className:"bi bi-layers-fill text-sky-600"}),e.jsxs("span",{children:["Peta Ketersebaran Mapel Lintas-Marhalah (",t.crossJenjangGroups.length," Judul)"]})]}),e.jsx("p",{className:"text-[11px] text-gray-500 mt-0.5",children:"Mata pelajaran berikut diajarkan di lebih dari satu jenjang. Setiap marhalah memiliki ID mandiri untuk menjaga independensi silabus, alokasi jam tatap muka, dan buku rapor santri."})]}),e.jsx("div",{className:"border border-gray-200 rounded-xl overflow-hidden bg-white",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 text-left text-xs",children:[e.jsx("thead",{className:"bg-gray-50 font-bold text-gray-700",children:e.jsxs("tr",{children:[e.jsx("th",{className:"py-2.5 px-3",children:"Nama Mata Pelajaran"}),e.jsx("th",{className:"py-2.5 px-3",children:"Ketersebaran Jenjang"}),e.jsx("th",{className:"py-2.5 px-3",children:"Rumpun & KKM per Jenjang"}),e.jsx("th",{className:"py-2.5 px-3 text-right",children:"Status"})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200",children:t.crossJenjangGroups.map((a,r)=>e.jsxs("tr",{className:"hover:bg-gray-50",children:[e.jsx("td",{className:"py-2.5 px-3 font-bold text-gray-900",children:e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("i",{className:"bi bi-bookmark text-teal-600"}),e.jsx("span",{children:a.namaDisplay})]})}),e.jsx("td",{className:"py-2.5 px-3",children:e.jsx("div",{className:"flex flex-wrap gap-1",children:a.jenjangNames.map((n,l)=>e.jsx("span",{className:"bg-sky-50 text-sky-800 border border-sky-200 font-semibold px-2 py-0.5 rounded text-[10px]",children:n},l))})}),e.jsx("td",{className:"py-2.5 px-3",children:e.jsx("div",{className:"flex flex-wrap gap-1",children:a.items.map(n=>e.jsxs("span",{className:"bg-gray-100 text-gray-700 border border-gray-200 px-1.5 py-0.2 rounded text-[10px]",children:[N.get(n.jenjangId)||"J",": ",n.rumpun||"-"," (KKM: ",n.kkm||"-",")"]},n.id))})}),e.jsx("td",{className:"py-2.5 px-3 text-right",children:e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-bold text-emerald-700 bg-emerald-50 border border-emerald-200 px-2 py-0.5 rounded",children:[e.jsx("i",{className:"bi bi-shield-check"}),e.jsx("span",{children:"Terpisah Aman per Jenjang"})]})})]},r))})]})})]}),c==="missing_meta"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("div",{children:[e.jsxs("h5",{className:"font-bold text-gray-800 flex items-center gap-1.5",children:[e.jsx("i",{className:"bi bi-file-earmark-check-fill text-amber-600"}),e.jsxs("span",{children:["Mata Pelajaran dengan Metadata Belum Lengkap (",t.missingMetaCount," Mapel)"]})]}),e.jsx("p",{className:"text-[11px] text-gray-500 mt-0.5",children:"Mapel tanpa Rumpun atau KKM dapat menyebabkan ketidakseimbangan agregasi buku rapor santri."})]}),t.missingMetaCount>0&&o&&e.jsxs("button",{type:"button",onClick:D,className:"px-3.5 py-1.5 bg-amber-600 hover:bg-amber-700 text-white font-bold rounded-lg text-xs flex items-center gap-1.5 shadow-2xs",children:[e.jsx("i",{className:"bi bi-magic"}),e.jsx("span",{children:"Standarisasi Otomatis Sekarang"})]})]}),t.missingMetaCount>0?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-2.5",children:t.missingMetaItems.map(a=>e.jsxs("div",{className:"p-3 bg-white border border-amber-200 rounded-xl flex items-start justify-between gap-2 shadow-2xs",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-bold text-gray-900 block text-xs",children:a.nama}),e.jsx("span",{className:"text-[11px] text-teal-700 block",children:N.get(a.jenjangId)||"Jenjang"}),e.jsxs("div",{className:"flex gap-1 mt-1.5 flex-wrap",children:[!a.rumpun&&e.jsx("span",{className:"text-[10px] bg-red-50 text-red-700 border border-red-200 px-1.5 py-0.2 rounded font-semibold",children:"Rumpun Kosong"}),!a.kkm&&e.jsx("span",{className:"text-[10px] bg-amber-50 text-amber-800 border border-amber-200 px-1.5 py-0.2 rounded font-semibold",children:"KKM Kosong"})]})]}),e.jsxs("span",{className:"font-mono text-[10px] text-gray-400 bg-gray-50 px-1.5 py-0.5 rounded border",children:["#",a.id]})]},a.id))}):e.jsxs("div",{className:"p-8 text-center bg-emerald-50 rounded-xl border border-emerald-200 text-emerald-900 space-y-1",children:[e.jsx("i",{className:"bi bi-check-circle-fill text-3xl text-emerald-600"}),e.jsx("h5",{className:"font-bold text-sm",children:"Metadata Sudah Lengkap!"}),e.jsx("p",{className:"text-xs text-emerald-700",children:"Seluruh mata pelajaran telah terisi Rumpun Kurikulum dan Nilai Standar KKM."})]})]})]})]}),I&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",children:e.jsxs("div",{className:"bg-white rounded-xl shadow-xl max-w-md w-full p-5 space-y-4 animate-scale-up",children:[e.jsxs("div",{className:"flex justify-between items-center border-b pb-3",children:[e.jsxs("h4",{className:"text-base font-black text-gray-900 flex items-center gap-2",children:[e.jsx("i",{className:"bi bi-copy text-teal-600"}),e.jsx("span",{children:"Salin Kurikulum Antar-Jenjang"})]}),e.jsx("button",{type:"button",onClick:()=>h(!1),className:"text-gray-400 hover:text-gray-600",children:e.jsx("i",{className:"bi bi-x-lg"})})]}),e.jsxs("div",{className:"space-y-3 text-xs",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block font-bold text-gray-700 mb-1",children:"Jenjang Sumber (Asal)"}),e.jsx("select",{value:u,onChange:a=>R(Number(a.target.value)),className:"w-full border rounded-lg p-2 font-medium bg-white",children:s.jenjang.map(a=>e.jsxs("option",{value:a.id,children:[a.nama," (",s.mataPelajaran.filter(r=>r.jenjangId===a.id).length," Mapel)"]},a.id))})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block font-bold text-gray-700 mb-1",children:"Jenjang Tujuan"}),e.jsx("select",{value:x,onChange:a=>A(Number(a.target.value)),className:"w-full border rounded-lg p-2 font-medium bg-white",children:s.jenjang.map(a=>e.jsxs("option",{value:a.id,children:[a.nama," (",s.mataPelajaran.filter(r=>r.jenjangId===a.id).length," Mapel saat ini)"]},a.id))})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block font-bold text-gray-700 mb-1",children:"Metode Penyalinan"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("button",{type:"button",onClick:()=>K("append"),className:`p-2 rounded-lg border text-left ${f==="append"?"bg-teal-50 border-teal-500 text-teal-900 font-bold":"bg-gray-50 border-gray-200 text-gray-700"}`,children:[e.jsx("div",{className:"font-bold",children:"Tambahkan"}),e.jsx("div",{className:"text-[10px] text-gray-500 mt-0.5",children:"Gabungkan dengan mapel tujuan"})]}),e.jsxs("button",{type:"button",onClick:()=>K("replace"),className:`p-2 rounded-lg border text-left ${f==="replace"?"bg-amber-50 border-amber-500 text-amber-900 font-bold":"bg-gray-50 border-gray-200 text-gray-700"}`,children:[e.jsx("div",{className:"font-bold",children:"Timpa Semua"}),e.jsx("div",{className:"text-[10px] text-gray-500 mt-0.5",children:"Hapus mapel tujuan lalu ganti"})]})]})]})]}),e.jsxs("div",{className:"flex justify-end gap-2 pt-3 border-t",children:[e.jsx("button",{type:"button",onClick:()=>h(!1),className:"px-4 py-2 border rounded-lg text-xs font-bold text-gray-600 hover:bg-gray-50",children:"Batal"}),e.jsxs("button",{type:"button",onClick:G,className:"px-4 py-2 bg-teal-600 hover:bg-teal-700 text-white rounded-lg text-xs font-black shadow-xs flex items-center gap-1.5",children:[e.jsx("i",{className:"bi bi-check-circle"}),e.jsx("span",{children:"Salin Kurikulum Sekarang"})]})]})]})}),e.jsxs("div",{className:"w-full bg-slate-100/90 p-1 rounded-xl border border-slate-200/80 shadow-2xs grid grid-cols-2 sm:flex sm:w-fit gap-1",children:[e.jsxs("button",{type:"button",onClick:()=>
1J("katalog"),className:`px-3 py-2 sm:px-4 rounded-lg text-xs font-bold transition-all flex items-center justify-center gap-1.5 text-center ${b==="katalog"?"bg-teal-700 text-white shadow-2xs":"text-gray-700 hover:text-gray-900 hover:bg-white/60"}`,children:[e.jsx("i",{className:"bi bi-journal-text text-xs shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:"Katalog Mata Pelajaran & Silabus"}),e.jsx("span",{className:"sm:hidden",children:"Katalog Mapel"}),e.jsx("span",{className:`text-[10px] px-1.5 py-0.2 rounded-full font-black ${b==="katalog"?"bg-white/20 text-white":"bg-gray-200 text-gray-700"}`,children:s.mataPelajaran.length})]}),e.jsxs("button",{type:"button",onClick:()=>J("plotting"),className:`px-3 py-2 sm:px-4 rounded-lg text-xs font-bold transition-all flex items-center justify-center gap-1.5 text-center ${b==="plotting"?"bg-teal-700 text-white shadow-2xs":"text-gray-700 hover:text-gray-900 hover:bg-white/60"}`,children:[e.jsx("i",{className:"bi bi-people-fill text-xs shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:"Plotting Guru Pengampu"}),e.jsx("span",{className:"sm:hidden",children:"Plotting Guru"}),e.jsx("span",{className:`text-[10px] px-1.5 py-0.2 rounded-full font-black ${b==="plotting"?"bg-white/20 text-white":"bg-teal-100 text-teal-800"}`,children:"Terpadu"})]})]}),b==="katalog"?e.jsx(E,{localSettings:s,handleInputChange:v,canWrite:o,source:"kurikulum"}):e.jsx(O,{})]})};export{ee as TabKurikulumMapel};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.