1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6518],{16011:function(e,t,r){r.d(t,{J5:function(){return i},Od:function(){return n},W:function(){return d},Y6:function(){return l},ln:function(){return a}}),r(83079);var s=r(12119),a=(0,s.$)("fc5f94b04a0542d499822142b7b4f64c39012342"),n=(0,s.$)("fca6dd844ba9770f5af8e9b00b684ad694adaa4a");(0,s.$)("a23c7989ead4c3f0bbc34ab968897e577d69c34e");var l=(0,s.$)("25b3af908b23b7a432042fc7fc768d9a77983d41");(0,s.$)("6b3568d6b307d0ad395124e72ce56f40a95ffa5e");var i=(0,s.$)("8909e13eb61723a8c65f1da87ec810139ad46edd"),d=(0,s.$)("610035678b1f5c2ab1d276b66f1f6b8d7da99c5b")},76518:function(e,t,r){r.r(t),r.d(t,{default:function(){return O}});var s=r(57437),a=r(2265),n=r(10136),l=r(41905),i=r(45675),d=r(30401),c=r(18930),o=r(48736),x=r(55900),u=r(37806),m=r(99397),h=r(32489),p=r(92735),f=r(76858),b=r(76865),g=r(59717),v=r(66109),j=r(88507),N=r(93448),w=r(4908),k=r(73369),y=r(83008),z=r(53834),C=r(45007),I=r(67920),D=r(27526),E=r(93202);r(83079);var S=r(12119),F=(0,S.$)("1e17e29b0cdb1025b4b181a66c2946236226e00d"),A=r(16011),_=(0,S.$)("16ec8a38244286f86515499ce5645f62ae04b383"),L=r(60706),Z=r(98319),B=r(73348),P=r(7888),M=r(74791);function R(e){return e?"bg-[#EAEAEA] dark:bg-[#27272a] text-zinc-900 dark:text-white":"text-[#a1a1aa] hover:bg-[#EAEAEA]/50 dark:hover:bg-[#27272a]/50 hover:text-zinc-900 dark:hover:text-white"}function T(e){return(0,N.cn)("text-sm transition-colors file-upload-class-count text-zinc-500 dark:text-[#71717a]",!e&&"group-hover:text-zinc-900 dark:group-hover:text-white")}let W=e=>{let{cls:t,isActive:r,isEditing:a,count:n,editClassInput:d,setEditClassInput:c,setEditingClass:o,handleRenameClass:x,onClick:u}=e,m=(0,g.o)();return a?(0,s.jsx)(v.e,{value:t,dragListener:!1,children:(0,s.jsx)("form",{onSubmit:x,className:"px-1 py-1",children:(0,s.jsx)("input",{autoFocus:!0,value:d,onChange:e=>c(e.target.value),placeholder:"ë° ì´ë¦ ì
ë ¥ í Enter",className:"w-full px-2 py-1.5 text-sm bg-black/20 border border-[#3f3f46] rounded focus:outline-none focus:border-blue-500 text-white",onBlur:()=>{d.trim()&&d.trim()!==t||o(null)},onKeyDown:e=>{"Escape"===e.key&&o(null)}})})},t):(0,s.jsxs)(v.e,{value:t,dragListener:!1,dragControls:m,layout:!0,transition:{type:"spring",stiffness:400,damping:30},className:(0,N.cn)("w-full flex items-center justify-between pl-2 pr-3 py-2.5 rounded-lg text-sm font-normal transition-colors group cursor-pointer select-none",R(r)),onClick:u,children:[(0,s.jsxs)("div",{className:"flex items-center gap-1 min-w-0",children:[(0,s.jsx)("div",{className:"cursor-grab active:cursor-grabbing text-zinc-400 hover:text-zinc-700 dark:text-zinc-500 dark:hover:text-white transition-colors drag-handle shrink-0",onPointerDown:e=>{m.start(e)},children:(0,s.jsx)(l.Z,{size:14})}),(0,s.jsx)("span",{className:"truncate flex-1 min-w-0",children:t})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,s.jsx)("button",{"aria-label":"ìì ",onClick:e=>{e.stopPropagation(),o(t),c(t)}
1,className:"p-1 opacity-0 group-hover:opacity-100 hover:bg-white/10 rounded transition",children:(0,s.jsx)(i.Z,{size:12})}),(0,s.jsxs)("span",{className:T(r),children:[n,"ëª
"]})]})]},t)};function O(e){var t,l,i,g;let{onClose:v,minimal:S=!1,activeTabOverride:O,initialGradeFileType:$,hidePrimarySidebar:q=!1,studentId:X,autoAddClass:G=!1}=e,[V,K]=(0,a.useState)("student-list");(0,a.useEffect)(()=>{O&&K(O)},[O]);let{classes:U,students:Y,addClass:H,removeClass:J,renameClass:Q,reloadStudents:ee,updateClassOrder:et}=(0,w.AF)(),{showToast:er}=(0,Z.p)(),es=(0,I.XC)(),ea=(0,n.N)(),[en,el]=(0,a.useState)("ë´ì íê¸"),[ei,ed]=(0,a.useState)(G),[ec,eo]=(0,a.useState)(""),[ex,eu]=(0,a.useState)(null),[em,eh]=(0,a.useState)(""),[ep,ef]=(0,a.useState)([]),eb=(0,a.useRef)();(0,a.useEffect)(()=>{ef(U.filter(e=>"ë´ì íê¸"!==e))},[U]);let[eg,ev]=(0,a.useState)([]),[ej,eN]=(0,a.useState)(!1),[ew,ek]=(0,a.useState)(!1),[ey,ez]=(0,a.useState)(!1),[eC,eI]=(0,a.useState)(null),[eD,eE]=(0,a.useState)(!1),[eS,eF]=(0,a.useState)(!1),[eA,e_]=(0,a.useState)(!1),[eL,eZ]=(0,a.useState)(!1),eB=(0,a.useRef)(null),[eP,eM]=(0,a.useState)([]),[eR,eT]=(0,a.useState)(null),eW=(0,a.useRef)(null),eO=(0,a.useRef)(null),e$=(0,a.useRef)(null),eq=(0,a.useRef)(null),[eX,eG]=(0,a.useState)($||"school"),[eV,eK]=(0,a.useState)(null),[eU,eY]=(0,a.useState)([]),[eH,eJ]=(0,a.useState)(null),[eQ,e0]=(0,a.useState)(null),[e1,e2]=(0,a.useState)(null),[e5,e3]=(0,a.useState)(!1),[e4,e7]=(0,a.useState)(null),[e9,e8]=(0,a.useState)(null),{data:e6}=(0,D.kP)();a.useMemo(()=>{var e;return null!=e6&&!!e6.user&&(!!e6.user.isSystemAdmin||["OWNER","SCHOOL_ADMIN","GRADE_ADMIN"].includes((null===(e=e6.user.role)||void 0===e?void 0:e.toUpperCase())||""))},[e6]);let{uploadLifeRecord:te}=(0,E.l)(),tt=(e,t)=>{let r=(Number(e.grade)||0)-(Number(t.grade)||0);if(0!==r)return r;let s=(Number(e.classNum)||0)-(Number(t.classNum)||0);return 0!==s?s:(Number(e.number)||0)-(Number(t.number)||0)},{createStudent:tr,updateStudent:ts,deleteStudent:ta,bulkCreateStudents:tn,clearClassStudents:tl}=(0,k.N)(),ti=async(e,t)=>{ek(!0);let r=0,s=0,a=[];try{if(t.length>0&&(await Promise.allSettled(t.map(e=>ts.mutateAsync({id:e.id,...e.data})))).forEach(e=>{"fulfilled"===e.status?r++:s++}),e.length>0)try{let t=await tn.mutateAsync({students:e});r+=t.count||0,s+=t.failureCount||0,t.results&&t.results.forEach(e=>{e.success||a.push("".concat(e.student,": ").concat(e.error))})}catch(t){console.error(t),s+=e.length,a.push("ì¼ê´ ë±ë¡ ì¤ ì¤ë¥ ë°ì")}await ee();let n=Y.filter(e=>{var t;return e.homeClassId===en||(null===(t=e.customClassIds)||void 0===t?void 0:t.includes(en))}).map(e=>({...e,isValid:!0})).sort(tt);if(ev(n),eF(!1),e_(!1),eZ(!1),0===s)er("íì ".concat(r,"ëª
ì ë°ìíìµëë¤."),"success");else{let e=a.slice(0,5).join("\n");er("ì²ë¦¬ ìë£: ì±ê³µ ".concat(r,"ëª
, ì¤í¨ ").concat(s,"ëª
\n\n").concat(e).concat(a.length>5?"...":""),"error")}}catch(e){console.error("Batch execution error:",e),er("ìì
ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{ek(!1)}},td=async()=>{if(0===eg.length)return;ek(!0);let e=[...eg].sort(tt);ev(e);try{let t=Y.filter(e=>{var t;return e.homeClassId===en||(null===(t=e.customClassIds)||void 0===t?void 0:t.includes(en))}),r=[],s=[];e.forEach(e=>{let a=t.find(t=>t.number===e.number);if(a){var n;let t=null!==(n=a.homeClassId)&&void 0!==n?n:null,r=a.customClassIds||[],l=t,i=[...r];"ë´ì íê¸"===en?(t&&"ë´ì íê¸"!==t&&(i=Array.from(new Set([...i,t]))),l="ë´ì íê¸"):t===en||i.includes(en)||(i=Array.from(new Set([...i,en]))),i=i.filter(e=>e&&e!==l);let d={number:e.number,name:e.name,homeClassId:l,customClassIds:i,grade:e.grade||(null==a?void 0:a.grade)||1,classNum:e.classNum||(null==a?void 0:a.classNum),memo:e.memo||(null==a?void 0:a.memo),previousStudentId:void 0};s.push({id:a.id,data:d})}else r.push({number:e.number,name:e.name,homeClassId:en,customClassIds:[],grade:e.grade||1,classNum:e.classNum,memo:e.memo,previousStudentId:void 0})}),await ti(r,s)}catch(e){console.error("Upload error:",e),er("ì
ë¡ë ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error"),ek(!1)}};(0,a.useEffect)(()=>{$&&eG($)},[$]);let tc=async()=>{ek(!0);try{await tl.mutateAsync({homeClassId:en}),ev([]),await ee(),er("íì ëª
ë¨ì 모ë ìì íìµëë¤.","success")}
1catch(e){console.error("Delete all error:",e),er("ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.","error")}finally{ek(!1),ez(!1)}},to=async e=>{if(e.preventDefault(),ex&&em.trim()){if(em.trim()===ex){eu(null);return}await Q(ex,em.trim()),en===ex&&el(em.trim()),e_(!1),eZ(!1),eu(null),eh("")}};(0,a.useEffect)(()=>{if(!eL&&Y.length>0&&0===eg.length){let e=Y.filter(e=>{var t;return e.homeClassId===en||(null===(t=e.customClassIds)||void 0===t?void 0:t.includes(en))}).map(e=>({...e,isValid:!0})).sort(tt);e.length>0&&ev(e)}},[Y,en,eg.length,eL]);let tx=async e=>{eE(!0);try{await new Promise(e=>setTimeout(e,1500));let t=await e.arrayBuffer(),{parseGradeExcel:s}=await Promise.all([r.e(1425),r.e(4635)]).then(r.bind(r,73947)),a=await s(t);if(!a.parsedData||0===a.parsedData.length){er("íì±ë ì±ì ë°ì´í°ê° ììµëë¤. íì¼ íìì íì¸í´ì£¼ì¸ì.","error");return}let n=new Map;a.parsedData.forEach(e=>{let{studentNumber:t,studentName:r,currentGrade:s,currentClass:a}=e;n.has(t)||n.set(t,{studentNumber:t,studentName:r,studentId:void 0,currentGrade:s,currentClass:a,grades:[]}),n.get(t).grades.push({...e,classRank:null,percentile:null})});let l=[];n.forEach(e=>{let t=e.studentName.replace(/\s/g,""),r=e.studentNumber>100?e.studentNumber%100:e.studentNumber,s=Y.find(s=>{let a=s.name.replace(/\s/g,""),n=s.number;if((n===e.studentNumber||n===r)&&a===t){let t=e.currentGrade,r=e.currentClass;return t>0&&r>0&&s.grade===t&&s.classNum,!0}return!1});l.push({...e,studentId:null==s?void 0:s.id})}),l.sort((e,t)=>e.studentNumber-t.studentNumber);let i=l.reduce((e,t)=>e+t.grades.length,0);eM(l),eT({gradeClass:a.gradeClass||"ì ì ìì",totalRecords:i})}catch(e){console.error("Grade file parsing error:",e),er((0,P.q)(e,"ì±ì íì¼ì ë¶ìíë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. íì¼ íìì íì¸í´ 주ì¸ì."),"error")}finally{eE(!1)}},tu=async e=>{eE(!0);try{await new Promise(e=>setTimeout(e,1500));let t=await e.arrayBuffer(),{parseMidtermExcel:s}=await Promise.all([r.e(1425),r.e(8588)]).then(r.bind(r,44004)),a=await s(t);if(!a.gradeData||0===a.gradeData.length){er("ì¤ê°ê³ ì¬ ë°ì´í°ë¥¼ ì°¾ì§ ëª»íìµëë¤. íì¼ íìì íì¸í´ 주ì¸ì.","warning");return}let n=new Map;a.gradeData.forEach(e=>{let t="".concat(e.currentClass,"-").concat(e.studentNumber);n.has(t)||n.set(t,{studentNumber:e.studentNumber,studentName:e.studentName,studentId:void 0,currentGrade:e.currentGrade,currentClass:e.currentClass,grades:[]}),n.get(t).grades.push({...e,classRank:null,percentile:e.percentile||null})});let l=Y.filter(e=>"ë´ì íê¸"===e.homeClassId),i=[];n.forEach(e=>{let t=e.studentName.replace(/\s/g,""),r=l.find(r=>r.name.replace(/\s/g,"")===t&&r.classNum===e.currentClass&&r.number===e.studentNumber);i.push({...e,studentId:null==r?void 0:r.id})}),i.sort((e,t)=>e.studentId&&!t.studentId?-1:!e.studentId&&t.studentId?1:e.currentClass-t.currentClass||e.studentNumber-t.studentNumber),i.filter(e=>e.studentId).length;let d=i.filter(e=>e.studentId).reduce((e,t)=>e+t.grades.length,0);eY(i),eJ({gradeClass:"".concat(a.grade,"íë
ì ì²´"),totalRecords:d,totalStudents:a.students.length})}catch(e){console.error("Midterm file parsing error:",e),er((0,P.q)(e,"íì¼ì ë¶ìíë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. íì¼ íìì íì¸í´ 주ì¸ì."),"error")}finally{eE(!1)}},tm=async()=>{if(0!==eU.length){ek(!0);try{let e=eU.filter(e=>e.studentId),t=e.flatMap(e=>e.grades),r=await _(t);r.success?(er("ì¤ê°ê³ ì¬ ì±ì ".concat(e.length,"ëª
ë¶ì ì ì¥íìµëë¤. ").concat(r.message),"success"),eY([]),eJ(null)):er("ì ì¥ ì¤í¨: ".concat(r.error),"error")}catch(e){console.error("Midterm upload error:",e),er("ì ì¥ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{ek(!1)}}},th=async e=>{eE(!0);try{let t=e.name.toLowerCase();if(t.endsWith(".xlsx")||t.endsWith(".xls")){let t=await e.arrayBuffer(),s=await Promise.all([r.e(1425),r.e(6919)]).then(r.bind(r,2093)),a=s.read(t,{type:"array"}),n=a.Sheets[a.SheetNames[0]],l=s.utils.sheet_to_json(n,{header:1,defval:""});for(let e=0;e<Math.min(10,l.length);e++){let t=(l[e]||[]).join(" ").trim();if(t.includes("êµê³¼íìµë°ë¬ìí©"))throw Error("ë´ì ì±ì íì¼ë¡ ë³´ì
ëë¤. '모ìê³ ì¬' ëì 'ë´ì ì±ì ' íìì ì
ë¡ëí´ì£¼ì¸ì.");if(t.includes("ì 과목 ì±ì ì¼ëí"))throw Error("ì¤ê°ê³ ì¬ ì±ì ì¼ëíë¡ ë³´ì
ëë¤. '모ìê³ ì¬' ëì 'ì¤ê°ê³ ì¬ ì±ì ' íìì ì
ë¡ëí´ì£¼ì¸ì.")}throw Error("모ìê³ ì¬ íì PDF íì¼ë§ ì
ë¡ë ê°ë¥í©ëë¤.")}await new Promise(e=>setTimeout(e,1500));let s=new FormData;s.append("file",e);let a=await (0,A.Od)(s);a.success&&a.data?eK(a.data):er(a.error||"íì¼ ë¶ìì ì¤í¨íìµëë¤.","error")}catch(e){console.error("Mock exam PDF processing error:",e),er((0,P.q)(e,"íì¼ì
1 ë¶ìíë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. íì¼ íìì íì¸í´ 주ì¸ì."),"error")}finally{eE(!1)}},tp=async e=>{eE(!0);try{await new Promise(e=>setTimeout(e,300)),await tf(e)}finally{eE(!1)}},tf=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e||(null==e4?void 0:e4.file);if(!r)return;let s=X||(null==e4?void 0:e4.studentId);if(s&&X&&!t){let e=Y.find(e=>e.id===s);if(e)try{var a,n,l,i,d,c;let t=await new Promise((e,t)=>{let s=new FileReader;s.onload=()=>e(s.result.split(",")[1]),s.onerror=t,s.readAsDataURL(r)}),s=await (0,y.X)("checkLifeRecordStudentName",{fileBase64:t},es),o=null==s?void 0:null===(a=s.data)||void 0===a?void 0:a.name,x=null==s?void 0:null===(n=s.data)||void 0===n?void 0:n.number,u=null!==(i=null==o?void 0:o.normalize("NFC").trim())&&void 0!==i?i:null,m=null!==(d=null===(l=e.name)||void 0===l?void 0:l.normalize("NFC").trim())&&void 0!==d?d:"",h=u&&u===m&&null!==x&&null!==e.number&&x!==e.number;if(u&&u!==m||h){e8({extractedName:o,extractedNumber:x,selectedStudentName:e.name,selectedStudentNumber:null!==(c=e.number)&&void 0!==c?c:null,file:r});return}}catch(e){}}ek(!0);try{await te({file:r,studentId:s,onSuccess:e=>{var t;let r=(null==e?void 0:e.matchedNames)||[];r.length>0&&(null===(t=Y.find(e=>r.includes(e.name)))||void 0===t||t.id),v&&v()}}),e7(null)}catch(e){console.error("Record upload error:",e)}finally{ek(!1)}},tb=async()=>{if(eV){ek(!0);try{let e=await (0,A.Y6)(eV);e.success?(er("모ìê³ ì¬ ì±ì ".concat(eV.students.length,"ëª
ë¶ì ì ì¥íìµëë¤."),"success"),eK(null)):er(e.error||"ì±ì ì ì¥ì ì¤í¨íìµëë¤.","error")}catch(e){console.error("Mock exam upload error:",e),er((0,P.q)(e,"모ìê³ ì¬ ì±ì ì ì ì¥íë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."),"error")}finally{ek(!1)}}},tg=async()=>{if(eQ&&""!==eQ.gradeLevel&&""!==eQ.semester){e3(!0);try{var e,t;let r=await (0,y.X)("deleteGradeRecordsBulk",{gradeLevel:eQ.gradeLevel,semester:eQ.semester,examType:eQ.examType},es);if(!r.success){er(r.error||"ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error");return}let s=null!==(t=null===(e=r.data)||void 0===e?void 0:e.deletedCount)&&void 0!==t?t:0;er(s>0?"".concat(s,"ê±´ ìì ëììµëë¤."):"ìì í ì±ì ì´ ììµëë¤.",s>0?"success":"info"),e0(null)}catch(e){console.error("Bulk delete grades error:",e),er("ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{e3(!1)}}},tv=async()=>{if(e1&&""!==e1.year&&""!==e1.month){e3(!0);try{var e;let t=await (0,A.ln)(e1.year,e1.month);if(!t.success){er(t.error||"ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error");return}let r=null!==(e=t.deletedCount)&&void 0!==e?e:0;er(r>0?"".concat(r,"ê±´ ìì ëììµëë¤."):"ìì í ì±ì ì´ ììµëë¤.",r>0?"success":"info"),e2(null)}catch(e){console.error("Bulk delete mock exams error:",e),er("ìì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{e3(!1)}}},tj=async()=>{if(0!==eP.length){ek(!0);try{let e=eP.flatMap(e=>e.grades),t=(null==eR?void 0:eR.gradeClass)||"",r=await F(e,t,"school"===eX?"final":"mock");r.success?(er(r.message||"ì±ì ì ì¥ì´ ìë£ëììµëë¤.","success"),eM([]),eT(null)):er(r.error||"ì±ì ì ì¥ì ì¤í¨íìµëë¤.","error")}catch(e){console.error("Grade upload error:",e),er((0,P.q)(e,"ì±ì ì ì ì¥íë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."),"error")}finally{ek(!1)}}},tN=async e=>{eE(!0),await new Promise(e=>setTimeout(e,1500));try{let t=(await (0,M.DX)(e)).map(e=>({number:e.number,name:e.name,memo:e.memo,grade:e.grade,classNum:e.classNum,homeClassId:en,customClassIds:[],isValid:!0})).sort(tt);ev(t),eF(!1),e_(!0),eZ(!1)}catch(e){console.error(e),er("íì¼ì ë¶ìíë ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}finally{eE(!1)}},tw=(0,a.useCallback)(e=>{e.preventDefault(),eN(!1);let t=e.dataTransfer.files[0];t&&tN(t)},[tN]),tk=(e,t,r)=>{ev(s=>{let a=[...s];return a[e]={...a[e],[t]:r},a}),eF(!0)},ty=async e=>{let t=eg[e];
1if(!t.name||!t.number){er("ì´ë¦ê³¼ ë²í¸ë ë°ëì ì
ë ¥í´ì¼ í©ëë¤.","warning");return}try{let s=t.homeClassId||en,a={number:t.number,name:t.name,homeClassId:s,customClassIds:[],grade:t.grade||1,classNum:t.classNum||void 0,memo:t.memo};if(t.id)await ts.mutateAsync({id:t.id,...a}),er("íì ì ë³´ê° ìì ëììµëë¤.","success");else{let t=await tr.mutateAsync(a);if(t.success){var r;let s=(null===(r=t.data)||void 0===r?void 0:r.id)||t.id;s&&ev(t=>{let r=[...t];return r[e]={...r[e],id:s},r}),er("íìì´ ë±ë¡ëììµëë¤.","success")}}eF(!1)}catch(e){console.error("Save error:",e),er("ì ì¥ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.","error")}},tz=async e=>{var t,r;let s=eg[e];if(!(null==s?void 0:s.id)){ev(t=>t.filter((t,r)=>r!==e));return}let a=Y.find(e=>e.id===s.id),n=null!==(t=null==a?void 0:a.homeClassId)&&void 0!==t?t:null,l=null!==(r=null==a?void 0:a.customClassIds)&&void 0!==r?r:[],i=0===Array.from(new Set([n,...l].filter(e=>!!e))).filter(e=>e!==en).length;if(await ea(i?{title:"".concat(s.name," íìì ìì í ê¹ì?"),description:"ì´ íìì ë¤ë¥¸ ìì íê¸ì´ ìì´ ëª
ë¨ìì ìì í ì¬ë¼ì§ëë¤.",consequences:["ì±ì 기ë¡","ì¶ê²° 기ë¡","ìë´ ì¼ì§","ì¸í¹\xb7íëí¹ì±","íë 기ë¡","ì¤ë¬¸ ìëµ"]}:{title:"'".concat(en,"' íê¸ìì ").concat(s.name," íìì ëºê¹ì?"),description:"ë¤ë¥¸ íê¸ ììì ê·¸ëë¡ ì ì§ë©ëë¤.",confirmLabel:"íê¸ìì 빼기",tone:"default"}))try{i?await ta.mutateAsync(s.id):await ts.mutateAsync({id:s.id,homeClassId:n===en?null:n,customClassIds:l.filter(e=>e!==en)}),ev(t=>t.filter((t,r)=>r!==e)),await ee(),er("íê¸ìì ì ê±°ëììµëë¤.","success")}catch(e){console.error("Delete error:",e),er((0,P.q)(e,"ìì íë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."),"error")}};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:(0,N.cn)("w-full h-full bg-[#F7F7F5] [.dark_&]:bg-[#18181b] flex overflow-hidden",S&&"items-center justify-center p-8"),children:[(0,s.jsx)("input",{type:"file",ref:eB,accept:".xlsx,.xls,.csv",className:"hidden",onChange:e=>{var t;let r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&tN(r),e.target.value=""}}),!S&&!q&&(0,s.jsxs)("div",{className:"w-[240px] bg-[#F7F7F5] [.dark_&]:bg-[#18181b] border-r border-zinc-200 dark:border-[#27272a] flex flex-col shrink-0",children:[(0,s.jsx)("div",{className:"p-4 shrink-0",children:(0,s.jsx)("h2",{className:"text-[15px] font-bold text-white",children:"íì¼ ì
ë¡ë"})}),(0,s.jsxs)("div",{className:"px-2 flex flex-col gap-2",children:[(0,s.jsxs)("button",{onClick:()=>{K("student-list"),ev([]),e_(!1),eZ(!1)},className:(0,N.cn)("flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition text-left",R("student-list"===V)),children:[(0,s.jsx)(o.Z,{size:18}),"íì ëª
ë¨"]}),(0,s.jsxs)("button",{onClick:()=>{K("grade-file"),ev([]),e_(!1),eZ(!1)},className:(0,N.cn)("flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition text-left",R("grade-file"===V)),children:[(0,s.jsx)(x.Z,{size:18}),"ì±ì íì¼"]})]})]}),!S&&"student-list"===V&&(0,s.jsxs)("div",{className:"w-[240px] bg-[#F7F7F5] [.dark_&]:bg-[#18181b] border-r border-zinc-200 dark:border-[#27272a] flex flex-col shrink-0 animate-in slide-in-from-left-5 duration-200",children:[(0,s.jsx)("div",{className:"p-4 flex items-center justify-between shrink-0",children:(0,s.jsxs)("h2",{className:"text-[15px] font-medium text-white flex items-center gap-2",children:[(0,s.jsx)(u.Z,{size:18}),"ëì êµì¤"]})}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto px-2 flex flex-col custom-scrollbar",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2 px-1",children:[(0,s.jsx)("p",{className:"text-[11px] font-medium text-zinc-400 dark:text-zinc-500 uppercase tracking-wide whitespace-nowrap",children:"ë´ì íê¸"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-zinc-200 dark:bg-[#3f3f46]"})]}),U.filter(e=>"ë´ì íê¸"===e).map(e=>{let t=Y.filter(t=>{var r;return t.homeClassId===e||(null===(r=t.customClassIds)||void 0===r?void 0:r.includes(e))}).length,r=en===e;return(0,s.jsxs)("div",{className:(0,N.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-lg text-sm font-normal transition group cursor-pointer",R(r)),onClick:()=>
1{el(e),e_(!1),eZ(!1),ev(Y.filter(t=>{var r;return t.homeClassId===e||(null===(r=t.customClassIds)||void 0===r?void 0:r.includes(e))}).map(e=>({...e,isValid:!0})).sort(tt))},children:[(0,s.jsx)("span",{className:"truncate",children:e}),(0,s.jsxs)("span",{className:T(r),children:[t,"ëª
"]})]},e)}),(0,s.jsxs)("div",{className:"flex items-center gap-2 my-2 px-1",children:[(0,s.jsx)("p",{className:"text-[11px] font-medium text-zinc-400 dark:text-zinc-500 uppercase tracking-wide whitespace-nowrap",children:"êµê³¼ íê¸"}),(0,s.jsx)("div",{className:"flex-1 h-px bg-zinc-200 dark:bg-[#3f3f46]"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)(j.M,{axis:"y",values:ep,onReorder:e=>{ef(e),eb.current&&clearTimeout(eb.current),eb.current=setTimeout(async()=>{try{await et(e)}catch(e){console.error("Failed to update class order",e),er("ìì ë³ê²½ì ì¤í¨íìµëë¤.","error")}},500)},className:"flex flex-col gap-1",children:ep.map(e=>{let t=Y.filter(t=>{var r;return t.homeClassId===e||(null===(r=t.customClassIds)||void 0===r?void 0:r.includes(e))}).length,r=en===e,a=ex===e;return(0,s.jsx)(W,{cls:e,isActive:r,isEditing:a,count:t,editClassInput:em,setEditClassInput:eh,setEditingClass:eu,handleRenameClass:to,onClick:()=>{el(e),e_(!1),eZ(!1),ev(Y.filter(t=>{var r;return t.homeClassId===e||(null===(r=t.customClassIds)||void 0===r?void 0:r.includes(e))}).map(e=>({...e,isValid:!0})).sort(tt))}},e)})}),ei?(0,s.jsx)("form",{onSubmit:e=>{e.preventDefault(),ec.trim()&&(H(ec.trim()),el(ec.trim()),ev([]),e_(!1),eZ(!1),eo(""),ed(!1))},className:"px-1 py-1",children:(0,s.jsx)("input",{autoFocus:!0,value:ec,onChange:e=>eo(e.target.value),placeholder:"ë° ì´ë¦ ì
ë ¥ í Enter",className:"w-full px-2 py-1.5 text-sm bg-black/20 border border-[#3f3f46] rounded focus:outline-none focus:border-blue-500 text-white",onBlur:()=>!ec&&ed(!1)})}):(0,s.jsx)("div",{className:"px-1 py-1 mt-1",children:(0,s.jsxs)("button",{onClick:()=>ed(!0),className:"flex items-center justify-center gap-2 w-full py-2 rounded-full border border-dashed border-zinc-300 dark:border-[#3f3f46] text-zinc-500 dark:text-[#a1a1aa] hover:text-zinc-900 dark:hover:text-white hover:border-zinc-400 dark:hover:border-[#52525b] hover:bg-zinc-100 dark:hover:bg-[#202023] transition text-[13px] font-medium",children:[(0,s.jsx)(m.Z,{size:14}),(0,s.jsx)("span",{children:"êµê³¼ íê¸ ì¶ê°"})]})})]})]})]}),!S&&"grade-file"===V&&(0,s.jsxs)("div",{className:"w-[240px] bg-[#F7F7F5] [.dark_&]:bg-[#18181b] border-r border-zinc-200 dark:border-[#27272a] flex flex-col shrink-0 animate-in slide-in-from-left-5 duration-200",children:[(0,s.jsx)("div",{className:"p-4 flex items-center justify-between shrink-0",children:(0,s.jsx)("h2",{className:"text-[15px] font-medium text-white flex items-center gap-2",children:"ì±ì ì¢
ë¥(ê³ ë±íêµ ì ì©)"})}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto px-2 flex flex-col gap-2 custom-scrollbar",children:[(0,s.jsx)("button",{onClick:()=>eG("school"),className:(0,N.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-lg text-sm font-normal transition group",R("school"===eX)),children:(0,s.jsx)("span",{className:"truncate",children:"ë´ì ì±ì "})}),(0,s.jsx)("button",{onClick:()=>eG("mock"),className:(0,N.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-lg text-sm font-normal transition group",R("mock"===eX)),children:(0,s.jsx)("span",{className:"truncate",children:"모ìê³ ì¬ ì±ì "})}),(0,s.jsx)("button",{onClick:()=>eG("midterm"),className:(0,N.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-lg text-sm font-normal transition group",R("midterm"===eX)),children:(0,s.jsx)("span",{className:"truncate",children:"ì¤ê°ê³ ì¬ ì±ì "})}),(0,s.jsx)("button",{onClick:()=>eG("record"),className:(0,N.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-lg text-sm font-normal transition group",R("record"===eX)),children:(0,s.jsx)("span",{className:"truncate",children:"ìí기ë¡ë¶"})})]})]}),(0,s.jsxs)("div",{className:(0,N.cn)("flex-1 flex flex-col relative bg-[#F7F7F5] [.dark_&]:bg-[#18181b] overflow-hidden",S&&"w-full max-w-2xl h-[600px] border border-[#27272a] rounded-2xl flex-none shadow-2xl"),children:[v&&(0,s.jsx)("button",{"aria-label":"ë«ê¸°",onClick:v,className:"absolute top-4 right-4 p-1.5 text-[#a1a1aa] hover:text-white hover:bg-[#
1EBEBEA] [.dark_&]:hover:bg-[#202023] rounded-lg transition-colors z-10",children:(0,s.jsx)(h.Z,{size:16})}),"student-list"===V&&(0,s.jsxs)("div",{className:"absolute top-4 right-14 flex items-center gap-2 z-10",children:[eA&&eg.length>0&&(0,s.jsx)("button",{onClick:()=>{ev([]),eF(!1),e_(!1),eZ(!0),eB.current&&(eB.current.value="")},disabled:ew,className:"px-3 py-1.5 text-xs text-zinc-500 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:"ì·¨ì"}),eg.length>0&&(eS||eg.some(e=>!e.id))&&(0,s.jsxs)("button",{onClick:td,disabled:ew,className:"px-3 py-1.5 text-xs text-white bg-blue-600 hover:bg-blue-700 rounded-md transition-colors font-medium flex items-center gap-1.5 disabled:opacity-50 global-save-btn",children:[(0,s.jsx)(d.Z,{size:12}),(0,s.jsx)("span",{children:ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"ì ì²´ ì ì¥"})]}),0===eg.length&&(0,s.jsxs)("button",{onClick:M.RM,className:"flex items-center gap-1.5 px-2 py-1.5 text-xs !text-white bg-green-600 hover:bg-green-700 rounded-md transition-colors font-medium",children:[(0,s.jsx)(p.Z,{size:13}),"ìì ë¤ì´ë¡ë"]}),"ë´ì íê¸"!==en&&(0===eg.length||(null===(t=eg[0])||void 0===t?void 0:t.id))&&(0,s.jsxs)("button",{onClick:()=>{"ë´ì íê¸"!==en&&eI(en)},className:"px-2 py-1.5 text-xs text-white bg-red-600 hover:bg-red-700 rounded-md transition-colors font-medium flex items-center gap-1.5 delete-class-btn",children:[(0,s.jsx)("span",{children:"êµì¤ ìì "}),(0,s.jsx)(c.Z,{size:12})]}),"ë´ì íê¸"===en&&eg.length>0&&(null===(l=eg[0])||void 0===l?void 0:l.id)&&(0,s.jsxs)("button",{onClick:()=>ez(!0),className:"px-2 py-1.5 text-xs text-white bg-red-600 hover:bg-red-700 rounded-md transition-colors font-medium flex items-center gap-1.5 delete-all-btn",children:[(0,s.jsx)("span",{children:ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"ì ì²´ ìì "}),!ew&&(0,s.jsx)(c.Z,{size:12})]})]}),"grade-file"===V&&"school"===eX&&(0,s.jsxs)("div",{className:"absolute top-4 right-14 flex items-center gap-2 z-10",children:[(0,s.jsxs)("button",{onClick:()=>e0({examType:"final",gradeLevel:"",semester:""}),className:"px-3 py-1.5 text-xs text-red-500 hover:text-red-600 dark:text-red-400 dark:hover:text-red-300 transition-colors flex items-center gap-1.5",children:[(0,s.jsx)(c.Z,{size:12}),"ì´ì ì±ì ìì "]}),eP.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>{eM([]),eT(null)},className:"px-3 py-1.5 text-xs text-zinc-500 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors",children:"ì·¨ì"}),(0,s.jsxs)("button",{onClick:tj,disabled:ew,className:"px-3 py-1.5 bg-[#007AFF] hover:bg-[#0069d9] text-white text-xs font-bold rounded-lg flex items-center gap-2 transition disabled:opacity-50 grade-upload-btn min-w-[100px] justify-center",children:[ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"".concat(eP.filter(e=>e.studentId).length,"ëª
ì±ì ì ì¥"),!ew&&(0,s.jsx)(f.Z,{size:16})]})]})]}),"grade-file"===V&&"midterm"===eX&&(0,s.jsxs)("div",{className:"absolute top-4 right-14 flex items-center gap-2 z-10",children:[(0,s.jsxs)("button",{onClick:()=>e0({examType:"midterm",gradeLevel:"",semester:""}),className:"px-3 py-1.5 text-xs text-red-500 hover:text-red-600 dark:text-red-400 dark:hover:text-red-300 transition-colors flex items-center gap-1.5",children:[(0,s.jsx)(c.Z,{size:12}),"ì´ì ì±ì ìì "]}),eU.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>{eY([]),eJ(null)},className:"px-3 py-1.5 text-xs text-zinc-500 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors",children:"ì·¨ì"}),(0,s.jsxs)("button",{onClick:tm,disabled:ew,className:"px-3 py-1.5 bg-[#007AFF] hover:bg-[#0069d9] text-white text-xs font-bold rounded-lg flex items-center gap-2 transition disabled:opacity-50 min-w-[100px] justify-center",children:[ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"".concat(eU.filter(e=>e.studentId).length,"ëª
ì±ì ì ì¥"),!ew&&(0,s.jsx)(f.Z,{size:16})]})]})]}),"grade-file"===V&&"mock"===eX&&(0,s.jsxs)("div",{className:"absolute top-4 right-14 flex items-center gap-2 z-10",children:[(0,s.jsxs)("button",{onClick:()=>e2({year:"",month:""}),className:"px-3 py-1.5 text-xs text-red-500 hover:text-red-600 dark:text-red-400 dark:hover:text-red-300 transition-colors flex items-center gap-1.5",children:[(0,s.jsx)(c.Z,{size:12}),"ì´ì ì±ì ìì "]}),eV&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>eK(null),className:"px-3 py-1.5 text-xs text-zinc-500 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors",children:"ì·¨ì"}),(0,s.jsxs)("button",{onClick:tb,disabled:ew,className:"px-3 py-1.5 bg-[#007AFF] hover:bg-[#0069d9] text-white text-xs font-bold rounded-lg flex items-center gap-2 transition disabled:opacity-50 mock-exam-upload-btn min-w-[100px] justify-center",children:[ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"".concat(eV.students.length,"ëª
ì±ì ì ì¥"),!ew&&(0,s.jsx)(f.Z,{size:16})]})]})]}),(0,s.jsxs)("div",{className:"flex-1 p-4 flex flex-col overflow-hidden",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-4 pr-12",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-[15px] font-medium text-zinc-900 dark:text-white",children:"student-list"===V?"".concat(en," íì ë±ë¡"):"school"===eX?"ë´ì ì±ì íì¼ ì
ë¡ë":"mock"===eX?"모ìê³ ì¬ ì±ì íì¼ ì
ë¡ë":"midterm"===eX?"ì¤ê°ê³ ì¬ ì±ì íì¼ ì
ë¡ë":"ìí기ë¡ë¶ íì¼ ì
ë¡ë"}),"grade-file"===V&&(0,s.jsxs)(s.Fragment,{children:["school"===eX&&eR&&(0,s.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-[#71717a] mt-1",children:[eR.gradeClass," \xb7 ",eR.totalRecords,"ê° ì±ì "]}),"mock"===eX&&eV&&(0,s.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-[#71717a] mt-1",children:[(null===(i=eV.meta.test_date)||void 0===i?void 0:i.split("-")[0])||"2025","ë
",(null===(g=eV.meta.test_date)||void 0===g?void 0:g.split("-")[1])||"3","ì \xb7 ",eV.meta.grade,"íë
",eV.meta.class_no?"".concat(eV.meta.class_no,"ë°"):""," \xb7 ",eV.students.length,"ëª
"]}),"midterm"===eX&&eH&&(0,s.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-[#71717a] mt-1",children:[eH.gradeClass," \xb7 ì êµ ",eH.totalStudents,"ëª
ì¤ ë§¤ì¹ ",eU.filter(e=>e.studentId).length,"ëª
\xb7 ",eH.totalRecords,"ê° ì±ì "]})]})]}),"grade-file"===V&&"record"===eX&&e4&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{onClick:()=>e7(null),className:"px-3 py-1.5 text-xs text-zinc-500 dark:text-white/50 hover:text-zinc-900 dark:hover:text-white transition-colors",children:"ì·¨ì"}),(0,s.jsxs)("button",{onClick:()=>tf(),disabled:ew||eD,className:"px-3 py-1.5 bg-[#007AFF] hover:bg-[#0069d9] text-white text-xs font-bold rounded-lg flex items-center gap-2 transition disabled:opacity-50 record-upload-btn min-w-[120px] justify-center",children:[ew?(0,s.jsx)(z.W,{size:18,className:"text-white"}):"ìí기ë¡ë¶ ì ì¥",!ew&&(0,s.jsx)(f.Z,{size:16})]})]})]}),"student-list"===V?0===eg.length?(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"flex-1 flex flex-col animate-in fade-in duration-300",children:[(0,s.jsxs)("div",{className:"text-[13px] text-zinc-500 dark:text-zinc-400 mb-3 leading-relaxed",children:["íë², ì´ë¦ ì´ì´ í¬í¨ë ìì
íì¼ì
1 ì
ë¡ëíì¸ì. ",(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs text-zinc-400",children:"íì ì´: [íë², ì´ë¦] ëë [íë
, ë°, ë²í¸, ì´ë¦]"})]}),(0,s.jsx)("div",{className:(0,N.cn)("flex-1 border-2 border-dashed rounded-xl flex flex-col items-center justify-center gap-4 transition cursor-pointer group bg-zinc-50/50 dark:bg-[#202023]/30 outline-none",ej?"border-[#2883DE] bg-[#2883DE]/10":"border-[#3f3f46]/50 hover:border-[#71717a] hover:bg-[#EBEBEA] [.dark_&]:hover:bg-[#202023] focus:border-[#2883DE] focus:bg-[#2883DE]/5"),tabIndex:0,onPaste:e=>{e.preventDefault();let t="",r="";if("clipboardData"in e?(t=e.clipboardData.getData("text/html"),r=e.clipboardData.getData("text")):r=e.target.value,!r&&!t)return;let s=[],a=e=>{let t=e.map(e=>e.trim()).filter(e=>""!==e);if(0===t.length)return null;let r={number:0,name:"",grade:void 0,classNum:void 0,memo:"",isValid:!0,id:void 0};if(t.length>=4){let e=parseInt(t[0]),s=parseInt(t[1]),a=parseInt(t[2]);if(!isNaN(e)&&!isNaN(s)&&!isNaN(a))return r.grade=e,r.classNum=s,r.number=a,r.name=t[3],t[4]&&(r.memo=t.slice(4).join(" ")),r}if(2===t.length){let e=(0,L.T)(t[0]);if(e)return r.grade=e.grade,r.classNum=e.classNum,r.number=e.number,r.name=t[1],r}if(2===t.length){let e=parseInt(t[0]);if(!isNaN(e))return r.number=e,r.name=t[1],r}if(3===t.length){let e=parseInt(t[0]);if(!isNaN(e))return r.number=e,r.name=t[1],r.memo=t[2],r}return null},n=e=>{let t=a(e);return!!t&&(t.classNum||"ë´ì íê¸"===en||isNaN(parseInt(en))||(t.classNum=parseInt(en)),s.push(t),!0)};if(t){let e=new DOMParser().parseFromString(t,"text/html").querySelectorAll("tr");e.length>0&&e.forEach(e=>{n(Array.from(e.querySelectorAll("td, th")).map(e=>e.textContent||""))})}0===s.length&&r&&r.trim().split(/\r?\n/).forEach(e=>{if(!e.trim()||e.includes(" ")&&n(e.split(" ")))return;let t=e.trim().split(/\s+/);t.length>=2&&n(t)}),s.length>0?(ev(e=>[...e,...s].sort(tt)),er("".concat(s.length,"ëª
ì ë¶ì¬ë£ììµëë¤."),"success")):(t||r)&&er("ë¶ì¬ë£ì ë´ì©ì ììë³´ì§ ëª»íìµëë¤. [íë², ì´ë¦] ëë [íë
, ë°, ë²í¸, ì´ë¦] ììì¸ì§ íì¸í´ 주ì¸ì.","warning")},onClick:()=>{var e;return!eD&&(null===(e=eB.current)||void 0===e?void 0:e.click())},onDragOver:e=>{e.preventDefault(),eD||eN(!0)},onDragLeave:()=>eN(!1),onDrop:tw,children:eD?(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 animate-in fade-in duration-300",children:[(0,s.jsx)(z.W,{size:48}),(0,s.jsx)("p",{className:"text-sm text-zinc-500 font-medium animate-pulse",children:"íì¼ íì¸ ì¤..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C.w,{src:"/lordicons/wired-outline-92-file-upload-hover-swipe.json",size:40,target:".group",playOnMount:!0,className:(0,N.cn)("mb-2 transition-colors",ej?"text-[#2883DE]":"text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-600 dark:group-hover:text-zinc-300")},"student-list-drop-".concat(V)),(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("p",{className:"text-zinc-900 dark:text-white font-medium mb-1",children:"íì ëª
ë¨ íì¼ ì
ë¡ë"}),(0,s.jsx)("p",{className:"text-sm text-zinc-400",children:"ìì
íì¼(.xlsx) ì
ë¡ë"})]})]})})]})}):(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,s.jsx)("div",{className:"px-1 pt-0 pb-2 text-left shrink-0",children:(0,s.jsx)("p",{className:"text-xs text-zinc-400",children:"ì¤ë¥ê° ìë¤ë©´ ìëì íìì ì§ì ìì í ì ììµëë¤."})}),(0,s.jsxs)("div",{className:"flex-1 overflow-auto bg-transparent dark:bg-[#18181b] relative",children:[(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{className:"sticky top-0 bg-[#F7F7F5] [.dark_&]:bg-[#18181b] z-50 font-medium shadow-sm",children:(0,s.jsxs)("tr",{className:"text-zinc-500 dark:text-[#71717a] text-center border-b border-zinc-200 dark:border-[#27272a]",children:[(0,s.jsx)("th",{className:"py-2 px-1 w-[15%]",children:"íë
"}),(0,s.jsx)("th",{className:"py-2 px-1 w-[15%]",children:"ë°"}),(0,s.jsx)("th",{className:"py-2 px-1 w-[15%]",children:"ë²í¸"}),(0,s.jsx)("th",{className:"py-2 px-1",children:"ì´ë¦"}),(0,s.jsx)("th",{className:"py-2 px-1 w-[80px]"})]})}),(0,s.jsx)("tbody",{children:eg.map((e,t)=>(0,s.jsxs)("tr",{className:"border-b border-zinc-100 dark:border-[#27272a]/50 text-zinc-900 dark:text-white group/row hover:bg-amber-50/50 dark:hover:bg-[#202023]/30 transition-colors",children:[(0,s.jsx)("td",{className:"p-1",children:(0,s.jsx)("input",{type:"number",className:"w-full text-center bg-transparent focus:bg-white dark:focus:bg-[#27272a] rounded p-1.5 outline-none text-zinc-900 dark:text-zinc-200 focus:shadow-sm transition [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",value:e.grade||"",placeholder:"-",onChange:e=>tk(t,"grade",parseInt(e.target.value)||void 0)})}),(0,s.jsx)("td",{className:"p-1",children:(0,s.jsx)("input",{type:"number",className:"w-full text-center bg-transparent focus:bg-white dark:focus:bg-[#27272a] rounded p-1.5 outline-none text-zinc-900 dark:text-zinc-200 focus:shadow-sm transition [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",value:e.classNum||"",placeholder:"-",onChange:e=>tk(t,"classNum",parseInt(e.target.value)||void 0)})}),(0,s.jsx)("td",{className:"p-1",children:(0,s.jsx)("input",{type:"number",className:"w-full text-center bg-transparent focus:bg-white dark:focus:bg-[#27272a] rounded p-1.5 outline-none font-medium text-zinc-900 dark:text-zinc-200 focus:shadow-sm transition [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",value:e.number||"",onChange:e=>tk(t,"number",parseInt(e.target.value)||0)})}),(0,s.jsx)("td",{className:"p-1",children:(0,s.jsx)("input",{type:"text",className:"w-full text-center bg-transparent focus:bg-white dark:focus:bg-[#27272a] rounded p-1.5 outline-none text-zinc-900 dark:text-zinc-200 focus:shadow-sm transition",value:e.name,onChange:e=>tk(t,"name",e.target.value)})}),(0,s.jsx)("td",{className:"p-1 text-center",children:(0,s.jsxs)("div",{className:"flex items-center justify-center gap-1 opacity-0 group-hover/row:opacity-100 transition-opacity",children:[(0,s.jsx)("button",{onClick:()=>ty(t),className:"p-1.5 text-zinc-400 hover:text-emerald-500 hover:bg-emerald-50 dark:hover:bg-emerald-500/10 rounded transition",title:"ì ì¥",children:(0,s.jsx)(d.Z,{size:14})}),(0,s.jsx)("button",{onClick:()=>tz(t),className:"p-1.5 text-zinc-300 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-500/10 rounded transition",title:"ìì ",children:(0,s.jsx)(c.Z,{size:14})})]})})]},t))})]}),(0,s.jsx)("div",{className:"p-2 border-t border-dashed border-zinc-200 dark:border-[#27272a] text-center",children:(0,s.jsx)("button",{onClick:()=>{ev(e=>[...e,{grade:void 0,classNum:void 0,number:0,name:"",memo:"",isValid:!0,id:void 0}]),eF(!0)},className:"w-full py-2 text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 hover:bg-zinc-50 dark:hover:bg-[#202023] rounded-lg border border-transparent hover:border-zinc-200 dark:hover:border-[#3f3f46] border-dashed transition",children:"+ ë¹ í ì¶ê°í기"})})]})]})}):(()=>
1{if("midterm"===eX){if(eU.length>0){let e=eU.filter(e=>e.studentId),t=eU.filter(e=>!e.studentId);return(0,s.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,s.jsx)("div",{className:"flex-1 overflow-auto bg-transparent relative custom-scrollbar",children:(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{className:"sticky top-0 bg-[#F7F7F5] [.dark_&]:bg-[#18181b] z-50 font-medium shadow-sm",children:(0,s.jsxs)("tr",{className:"text-zinc-500 dark:text-[#71717a] text-center border-b border-zinc-200 dark:border-[#27272a]",children:[(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-12",children:"ë°"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-12",children:"ë²í¸"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium text-center",children:"ì´ë¦"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-20 text-center",children:"과목ì"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-20 text-center",children:"ìí"})]})}),(0,s.jsxs)("tbody",{className:"text-xs",children:[e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-b border-zinc-100 dark:border-[#27272a]/50 text-zinc-900 dark:text-white group/row hover:bg-amber-50/50 dark:hover:bg-[#202023]/30 transition-colors",children:[(0,s.jsx)("td",{className:"py-2.5 px-2 text-center text-zinc-500 dark:text-zinc-400",children:e.currentClass}),(0,s.jsx)("td",{className:"py-2.5 px-2 text-center text-zinc-500 dark:text-zinc-400",children:e.studentNumber}),(0,s.jsx)("td",{className:"py-2.5 px-2 font-medium text-center",children:e.studentName}),(0,s.jsx)("td",{className:"py-2.5 px-2 text-center text-zinc-500 dark:text-zinc-400",children:e.grades.length}),(0,s.jsx)("td",{className:"py-2.5 px-2 text-center",children:(0,s.jsx)("span",{className:"text-green-500 text-xs",children:"매ì¹ë¨"})})]},"m-".concat(t))),t.length>0&&(0,s.jsx)("tr",{className:"bg-zinc-50 dark:bg-white/[0.03]",children:(0,s.jsxs)("td",{colSpan:5,className:"py-2 px-3 text-xs text-zinc-400",children:["ë¯¸ë§¤ì¹ íì ",t.length,"ëª
(ì ì¥ëì§ ìì)"]})})]})]})})})}return(0,s.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,s.jsxs)("div",{className:"text-[13px] text-zinc-900 dark:text-zinc-400 mb-3 flex flex-col gap-1 text-left leading-relaxed",children:[(0,s.jsx)("p",{children:"ì¤ê°ê³ ì¬ ì±ì íì¼ì íê° ë´ë¹ ì ìëê»ì ë¤ì´ë¡ë ê°ë¥í©ëë¤."}),(0,s.jsxs)("p",{children:["ê²½ë¡: ëì´ì¤ - ì±ì ì¡°í/íµê³ - íê¸°ë§ ì±ì ì¡°í - ì±ì ì¼ëí ì 과목/ì íì -",(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"ml-[30px]",children:"'í íì´ì§ë¡ ì¶ë ¥' ì²´í¬ - ì ì¥ - XLS"})]})]}),(0,s.jsxs)("div",{className:(0,N.cn)("flex-1 border-2 border-dashed rounded-xl flex flex-col items-center justify-center gap-4 transition cursor-pointer group",ej?"border-[#2883DE] bg-[#2883DE]/10":"border-[#3f3f46] hover:border-[#71717a] hover:bg-[#EBEBEA] [.dark_&]:hover:bg-[#202023]"),onClick:()=>{var e;return!eD&&(null===(e=e$.current)||void 0===e?void 0:e.click())},onDragOver:e=>{e.preventDefault(),eD||eN(!0)},onDragLeave:()=>eN(!1),onDrop:e=>{var t;e.preventDefault(),eN(!1);let r=null===(t=e.dataTransfer.files)||void 0===t?void 0:t[0];r&&tu(r)},children:[eD?(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 animate-in fade-in duration-300",children:[(0,s.jsx)(z.W,{size:64}),(0,s.jsx)("p",{className:"text-sm text-zinc-500 font-medium animate-pulse",children:"íì¼ íì¸ ì¤..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C.w,{src:"/lordicons/wired-outline-92-file-upload-hover-swipe.json",size:40,target:".group",playOnMount:!0,className:(0,N.cn)("mb-2 transition-colors",ej?"text-[#2883DE]":"text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-600 dark:group-hover:text-zinc-300")},"midterm-drop-".concat(eX)),(0,s.jsx)("div",{className:"text-center",children:(0,s.jsxs)("p",{className:"text-zinc-900 dark:text-white font-medium mb-1",children:["ì¤ê°ê³ ì¬ ì±ì ì¼ëí",(0,s.jsx)("br",{}),"ìì
(.xlsx) ì
ë¡ë"]})})]}),(0,s.jsx)("input",{type:"file",ref:e$,accept:".xlsx,.xls",className:"hidden",onChange:e=>{var t;let r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&tu(r),e.target.value=""}})]})]})}return"mock"===eX?eV?(0,s.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,s.jsx)("div",{className:"flex-1 overflow-auto bg-transparent relative custom-scrollbar",children:(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{className:"sticky top-0 bg-[#F7F7F5] [.dark_&]:bg-[#18181b] z-50 font-medium shadow-sm",children:(0,s.jsxs)("tr",{className:"text-zinc-500 dark:text-[#71717a] text-center border-b border-zinc-200 dark:border-[#27272a]",children:[(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-16",children:"ë²í¸"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium text-center",children:"ì´ë¦"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium text-center w-24",children:"과목ì"})]})}),(0,s.jsx)("tbody",{className:"text-xs",children:eV.students.map((e,t)=>{let r=[e.kor_grade,e.math_grade,e.eng_grade,e.hist_grade,e.inq1_grade,e.inq2_grade].filter(e=>null!==e).length;return(0,s.jsxs)("tr",{className:"border-b border-zinc-100 dark:border-[#27272a]/50 text-zinc-900 dark:text-white group/row hover:bg-amber-50/50 dark:hover:bg-[#202023]/30 transition-colors",children:[(0,s.jsx)("td",{className:"py-2.5 px-2 text-center text-zinc-500 dark:text-zinc-400",children:e.student_no}),(0,s.jsx)("td",{className:"py-2.5 px-2 font-medium text-center",children:e.name}),(0,s.jsx)("td",{className:"py-2.5 px-2 text-center text-zinc-500 dark:text-zinc-400",children:r})]},t)})})]})})}):(0,s.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,s.jsx)("div",{className:"text-[13px] text-zinc-900 dark:text-zinc-400 mb-3 flex flex-col gap-1 text-left leading-relaxed",children:(0,s.jsx)("p",{children:"ê²½ë¡: ìíì
무ì§ìí¬í¸(www.csat.re.kr) - ì±ì ì¶ë ¥ - ì±ì ì¼ëí"})}),(0,s.jsxs)("div",{className:(0,N.cn)("flex-1 border-2 border-dashed rounded-xl flex flex-col items-center justify-center gap-4 transition cursor-pointer group",ej?"border-[#2883DE] bg-[#2883DE]
1/10":"border-[#3f3f46] hover:border-[#71717a] hover:bg-[#EBEBEA] [.dark_&]:hover:bg-[#202023]"),onClick:()=>{var e;return!eD&&(null===(e=eO.current)||void 0===e?void 0:e.click())},onDragOver:e=>{e.preventDefault(),eD||eN(!0)},onDragLeave:()=>eN(!1),onDrop:e=>{var t;e.preventDefault(),eN(!1);let r=null===(t=e.dataTransfer.files)||void 0===t?void 0:t[0];r&&th(r)},children:[eD?(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 animate-in fade-in duration-300",children:[(0,s.jsx)(z.W,{size:64}),(0,s.jsx)("p",{className:"text-sm text-zinc-500 font-medium animate-pulse",children:"íì¼ íì¸ ì¤..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C.w,{src:"/lordicons/wired-outline-92-file-upload-hover-swipe.json",size:40,target:".group",playOnMount:!0,className:(0,N.cn)("mb-2 transition-colors",ej?"text-[#2883DE]":"text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-600 dark:group-hover:text-zinc-300")},"mock-drop-".concat(eX)),(0,s.jsx)("div",{className:"text-center",children:(0,s.jsxs)("p",{className:"text-zinc-900 dark:text-white font-medium mb-1",children:["모ìê³ ì¬ íê¸ë³ ì±ì ì¼ëí",(0,s.jsx)("br",{}),"PDF ì
ë¡ë"]})})]}),(0,s.jsx)("input",{type:"file",ref:eO,accept:".pdf",className:"hidden",onChange:e=>{var t;let r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&th(r),e.target.value=""}})]})]}):"record"===eX?ew?(0,s.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-6 animate-in fade-in duration-500",children:[(0,s.jsx)(z.W,{size:80}),(0,s.jsxs)("div",{className:"text-center space-y-2",children:[(0,s.jsx)("p",{className:"text-zinc-900 dark:text-white font-semibold text-lg text-pretty",children:"AIê° ì´ì¬í ë¶ìì¤ì´ìì."}),(0,s.jsx)("p",{className:"text-[13px] text-zinc-500 dark:text-zinc-400 leading-relaxed text-pretty",children:"ì°½ì ë«ê³ 1~2ë¶ ë¤ íì ê´ë¦¬ íì´ì§ìì íì¸í´ ë³´ì¸ì."})]})]}):e4?null:(0,s.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,s.jsx)("div",{className:"text-[13px] text-zinc-900 dark:text-zinc-400 mb-3 flex justify-start",children:(0,s.jsxs)("div",{className:"flex gap-1.5 text-left leading-relaxed",children:[(0,s.jsx)("span",{className:"shrink-0",children:"ê²½ë¡:"}),(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{children:"ëì´ì¤ - íê¸ë´ì - íêµìí기ë¡ë¶ - íìë¶ ì¡°í ë° ì¶ë ¥ -"}),(0,s.jsx)("span",{children:"íìë¶II ì í - PDFë¡ ì ì¥"})]})]})}),(0,s.jsxs)("div",{className:(0,N.cn)("flex-1 border-2 border-dashed rounded-xl flex flex-col items-center justify-center gap-4 transition cursor-pointer group",ej?"border-[#2883DE] bg-[#2883DE]/10":"border-[#3f3f46] hover:border-[#71717a] hover:bg-[#EBEBEA] [.dark_&]:hover:bg-[#202023]"),onClick:()=>{var e;return null===(e=eq.current)||void 0===e?void 0:e.click()},onDragOver:e=>{e.preventDefault(),eN(!0)},onDragLeave:()=>eN(!1),onDrop:e=>{var t;e.preventDefault(),eN(!1);let r=null===(t=e.dataTransfer.files)||void 0===t?void 0:t[0];r&&tp(r)},children:[eD?(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 animate-in fade-in duration-300",children:[(0,s.jsx)(z.W,{size:64}),(0,s.jsx)("p",{className:"text-sm text-zinc-500 font-medium animate-pulse",children:"íì¼ íì¸ ì¤..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C.w,{src:"/lordicons/wired-outline-92-file-upload-hover-swipe.json",size:40,target:".group",playOnMount:!0,className:(0,N.cn)("mb-2 transition-colors",ej?"text-[#2883DE]":"text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-600 dark:group-hover:text-zinc-300")},"record-drop-".concat(eX)),(0,s.jsx)("div",{className:"text-center",children:(0,s.jsxs)("p",{className:"text-zinc-900 dark:text-white font-medium mb-1",children:["íì ê°ì¸ë³",(0,s.jsx)("br",{}),"ìí기ë¡ë¶ PDF ì
ë¡ë"]})})]}),(0,s.jsx)("input",{type:"file",ref:eq,accept:".pdf",className:"hidden",onChange:async e=>{var t;let r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&tp(r),e.target.value=""}})]})]}):0===eP.length?(0,s.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,s.jsx)("div",{className:"text-[13px] text-zinc-900 dark:text-zinc-400 mb-3 flex justify-start",children:(0,s.jsxs)("div",{className:"flex gap-1.5 text-left leading-relaxed",children:[(0,s.jsx)("span",{className:"shrink-0",children:"ê²½ë¡:"}),(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsx)("span",{children:"ëì´ì¤ - íê¸ë´ì - íêµìí기ë¡ë¶ -"}),(0,s.jsx)("span",{children:"íìë¶ íëª©ë³ ì¡°í - êµê³¼íìµë°ë¬ìí© - ì ì¥ - XLS data"})]})]})}),(0,s.jsxs)("div",{className:(0,N.cn)("flex-1 border-2 border-dashed rounded-xl flex flex-col items-center justify-center gap-4 transition cursor-pointer group",ej?"border-[#2883DE] bg-[#2883DE]
1/10":"border-[#3f3f46] hover:border-[#71717a] hover:bg-[#EBEBEA] [.dark_&]:hover:bg-[#202023]"),onClick:()=>{var e;return!eD&&(null===(e=eW.current)||void 0===e?void 0:e.click())},onDragOver:e=>{e.preventDefault(),eD||eN(!0)},onDragLeave:()=>eN(!1),onDrop:e=>{var t;e.preventDefault(),eN(!1);let r=null===(t=e.dataTransfer.files)||void 0===t?void 0:t[0];r&&tx(r)},children:[eD?(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 animate-in fade-in duration-300",children:[(0,s.jsx)(z.W,{size:64}),(0,s.jsx)("p",{className:"text-sm text-zinc-500 font-medium animate-pulse",children:"íì¼ íì¸ ì¤..."})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C.w,{src:"/lordicons/wired-outline-92-file-upload-hover-swipe.json",size:40,target:".group",playOnMount:!0,className:(0,N.cn)("mb-2 transition-colors",ej?"text-[#2883DE]":"text-zinc-400 dark:text-zinc-500 group-hover:text-zinc-600 dark:group-hover:text-zinc-300")},"school-drop-".concat(eX)),(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("p",{className:"text-zinc-900 dark:text-white font-medium mb-1",children:"ë´ì ì±ì íì¼"}),(0,s.jsx)("p",{className:"text-sm text-zinc-900 dark:text-white",children:"XLS data ì
ë¡ë"})]})]}),(0,s.jsx)("input",{type:"file",ref:eW,accept:".xlsx,.xls,.csv",className:"hidden",onChange:e=>{var t;let r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&tx(r),e.target.value=""}})]})]}):(0,s.jsx)("div",{className:"flex-1 flex flex-col overflow-hidden",children:(0,s.jsx)("div",{className:"flex-1 overflow-auto bg-transparent relative custom-scrollbar",children:(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{className:"sticky top-0 bg-[#F7F7F5] [.dark_&]:bg-[#18181b] z-50 font-medium shadow-sm",children:(0,s.jsxs)("tr",{className:"text-zinc-500 dark:text-[#71717a] text-center border-b border-zinc-200 dark:border-[#27272a]",children:[(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-16 text-center",children:"ë²í¸"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium text-center",children:"íì"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-24 text-center",children:"과목ì"}),(0,s.jsx)("th",{className:"py-2.5 px-2 font-medium w-24 text-center",children:"ìí"})]})}),(0,s.jsx)("tbody",{className:"text-xs",children:eP.map((e,t)=>(0,s.jsxs)("tr",{className:"border-t border-zinc-100 dark:border-[#27272a] hover:bg-zinc-100 dark:hover:bg-[#202023]/50 transition-colors",children:[(0,s.jsx)("td",{className:"py-2 px-2 text-zinc-500 dark:text-zinc-400 text-center w-16",children:e.studentNumber}),(0,s.jsx)("td",{className:"py-2 px-2 text-zinc-900 dark:text-white text-center font-medium",children:e.studentName}),(0,s.jsx)("td",{className:"py-2 text-center text-zinc-500 dark:text-zinc-400",children:e.grades.length}),(0,s.jsx)("td",{className:"py-2 text-center",children:e.studentId?(0,s.jsx)("span",{className:"text-emerald-500",children:"매ì¹ë¨"}):(0,s.jsx)("span",{className:"text-red-500",children:"미매ì¹"})})]},t))})]})})})})()]})]})]}),e9&&(0,s.jsxs)("div",{className:"modal-viewport z-[99999] flex items-center justify-center p-4",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>e8(null)}),(0,s.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"ìí기ë¡ë¶ ì´ë¦ íì¸",onKeyDown:e=>{"Escape"===e.key&&e8(null)},className:"relative bg-white dark:bg-[#1c1c1e] rounded-2xl shadow-2xl p-6 max-w-sm w-full border border-zinc-200 dark:border-white/10 animate-in zoom-in-95 fade-in duration-200",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,s.jsx)(b.Z,{size:20,className:"flex-shrink-0 text-amber-600 dark:text-amber-400"}),(0,s.jsx)("h3",{className:"font-semibold text-zinc-900 dark:text-white text-[15px]",children:e9.extractedName===e9.selectedStudentName?"ëëª
ì´ì¸ ê°ë¥ì±ì´ ììµëë¤":"íì ì´ë¦ì´ ë¤ë¦
ëë¤"})]}),(0,s.jsxs)("div",{className:"space-y-2 mb-5 text-sm",children:[(0,s.jsxs)("div",{className:"bg-zinc-50 dark:bg-white/5 rounded-xl p-3 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-zinc-500 dark:text-zinc-400 text-xs",children:"ì íë íì"}),(0,s.jsxs)("span",{className:"font-semibold text-zinc-900 dark:text-white",children:[e9.selectedStudentName,null!==e9.selectedStudentNumber&&(0,s.jsxs)("span",{className:"ml-1.5 text-xs font-normal text-zinc-400",children:[e9.selectedStudentNumber,"ë²"]})]})]}),(0,s.jsx)("div",{className:"w-full h-px bg-zinc-200 dark:bg-white/10"}),(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-zinc-500 dark:text-zinc-400 text-xs",children:"PDF ë´ íì"}),(0,s.jsxs)("span",{className:"font-semibold text-amber-600 dar
1k:text-amber-400",children:[e9.extractedName,null!==e9.extractedNumber&&(0,s.jsxs)("span",{className:"ml-1.5 text-xs font-normal text-amber-400/70",children:[e9.extractedNumber,"ë²"]})]})]})]}),(0,s.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 leading-relaxed",children:["ì
ë¡ëí ì기ë¶ê° ",(0,s.jsx)("span",{className:"font-medium text-zinc-700 dark:text-zinc-300",children:e9.selectedStudentName})," íìì ê²ì´ ë§ëì§ íì¸í´ 주ì¸ì."]})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{onClick:()=>e8(null),className:"flex-1 px-4 py-2 text-sm font-medium text-zinc-700 dark:text-zinc-300 bg-zinc-100 dark:bg-white/10 hover:bg-zinc-200 dark:hover:bg-white/15 rounded-xl transition-colors",children:"ì·¨ì"}),(0,s.jsx)("button",{onClick:()=>{let e=e9.file;e8(null),tf(e,!0)},className:"flex-1 px-4 py-2 text-sm font-bold text-white bg-amber-500 hover:bg-amber-600 rounded-xl transition-colors",children:"ê·¸ëë ì ì¥"})]})]})]}),eQ&&(0,s.jsxs)("div",{className:"modal-viewport z-[99999] flex items-center justify-center p-4",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>!e5&&e0(null)}),(0,s.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"ì±ì ì¼ê´ ìì íì¸",onKeyDown:e=>{"Escape"!==e.key||e5||e0(null)},className:"relative bg-white dark:bg-[#1c1c1e] rounded-2xl shadow-2xl p-6 max-w-sm w-full border border-zinc-200 dark:border-white/10 animate-in zoom-in-95 fade-in duration-200",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,s.jsx)(c.Z,{size:18,className:"flex-shrink-0 text-red-600 dark:text-red-400"}),(0,s.jsxs)("h3",{className:"font-semibold text-zinc-900 dark:text-white text-[15px]",children:["midterm"===eQ.examType?"ì¤ê°ê³ ì¬":"기ë§ê³ ì¬"," ì±ì ìì "]})]}),(0,s.jsxs)("div",{className:"space-y-3 mb-5",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)("select",{value:eQ.gradeLevel,onChange:e=>e0({...eQ,gradeLevel:e.target.value?Number(e.target.value):""}),className:"flex-1 px-3 py-2 text-sm rounded-lg border border-zinc-200 dark:border-white/10 bg-white dark:bg-white/5 text-zinc-900 dark:text-white",children:[(0,s.jsx)("option",{value:"",children:"íë
ì í"}),(0,s.jsx)("option",{value:1,children:"1íë
"}),(0,s.jsx)("option",{value:2,children:"2íë
"}),(0,s.jsx)("option",{value:3,children:"3íë
"})]}),(0,s.jsxs)("select",{value:eQ.semester,onChange:e=>e0({...eQ,semester:e.target.value?Number(e.target.value):""}),className:"flex-1 px-3 py-2 text-sm rounded-lg border border-zinc-200 dark:border-white/10 bg-white dark:bg-white/5 text-zinc-900 dark:text-white",children:[(0,s.jsx)("option",{value:"",children:"í기 ì í"}),(0,s.jsx)("option",{value:1,children:"1í기"}),(0,s.jsx)("option",{value:2,children:"2í기"})]})]}),""!==eQ.gradeLevel&&""!==eQ.semester&&(0,s.jsxs)("p",{className:"text-xs text-red-500 dark:text-red-400 leading-relaxed",children:["ë´ì íê¸ íì ì ì²´ì ",eQ.gradeLevel,"íë
",eQ.semester,"í기 ","midterm"===eQ.examType?"ì¤ê°ê³ ì¬":"기ë§ê³ ì¬"," ì±ì ì ìì í©ëë¤.",(0,s.jsx)("br",{}),"ëë릴 ì ììµëë¤."]})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{onClick:()=>e0(null),disabled:e5,className:"flex-1 px-4 py-2 text-sm font-medium text-zinc-700 dark:text-zinc-300 bg-zinc-100 dark:bg-white/10 hover:bg-zinc-200 dark:hover:bg-white/15 rounded-xl transition-colors disabled:opacity-50",children:"ì·¨ì"}),(0,s.jsx)("button",{onClick:tg,disabled:e5||""===eQ.gradeLevel||""===eQ.semester,className:"flex-1 px-4 py-2 text-sm font-bold !text-white bg-red-500 hover:bg-red-600 rounded-xl transition-colors disabled:opacity-50",children:e5?(0,s.jsx)(z.W,{size:18,className:"text-white mx-auto"}):"ìì "})]})]})]}),e1&&(0,s.jsxs)("div",{className:"modal-viewport z-[99999] flex items-center justify-center p-4",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>!e5&&e2(null)}),(0,s.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"모ìê³ ì¬ ì±ì ìì íì¸",onKeyDown:e=>{"Escape"!==e.key||e5||e2(null)},className:"relative bg-white dark:bg-[#1c1c1e] rounded-2xl shadow-2xl p-6 max-w-sm w-full border border-zinc-200 dark:border-white/10 animate-in zoom-in-95 fade-in duration-200",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,s.jsx)(c.Z,{size:18,className:"flex-shrink-0 text-red-600 dark:text-red-400"}),(0,s.jsx)("h3",{className:"font-semibold text-zinc-900 dark:text-white text-[15px]",children:"모ìê³ ì¬ ì±ì ìì "})]}),(0,s.jsxs)("div",{className:"space-y-3 mb-5",children:[(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)("select",{value:e1.year,onChange:e=>e2({...e1,year:e.target.value?Number(e.target.value):""}),className:"flex-1 px-3 py-2 text-sm rounded-lg border border-zinc-200 dark:border-white/10 bg-white dark:bg-white/5 text-zinc-900 dark:text-white",children:[(0,s.jsx)("option",{value:"",children:"ì°ë ì í"}),(0,s.jsxs)("option",{value:2025,children:[2025,"ë
"]}),(0,s.jsxs)("option",{value:2026,children:[2026,"ë
"]}),(0,s.jsxs)("option",{value:2027,children:[2027,"ë
"]})]}),(0,s.jsxs)("select",{value:e1.month,onChange:e=>e2({...e1,month:e.target.value?Number(e.target.value):""}),className:"flex-1 px-3 py-2 text-sm rounded-lg border border-zinc-200 dark:border-white/10 bg-white dark:bg-white/5 text-zinc-900 dark:text-white",children:[(0,s.jsx)("option",{value:"",children:"ì ì í"}),Array.from({length:12},(e,t)=>t+1).map(e=>(0,s.jsxs)("option",{value:e,children:[e,"ì"]},e))]})]}),""!==e1.year&&""!==e1.month&&(0,s.jsxs)("p",{className:"text-xs text-red-500 dark:text-red-400 leading-relaxed",children:["ë´ì íê¸ íì ì ì²´ì ",e1.year,"ë
",e1.month,"ì 모ìê³ ì¬ ì±ì ì ìì í©ëë¤.",(0,s.jsx)("br",{}),"ëë릴 ì ììµëë¤."]})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{onClick:()=>e2(null),disabled:e5,className:"flex-1 px-4 py-2 text-sm font-medium text-zinc-700 dark:text-zinc-300 bg-zinc-100 dark:bg-white/10 hover:bg-zinc-200 dark:hover:bg-white/15 rounded-xl transition-colors disabled:opacity-50",children:"ì·¨ì"}),(0,s.jsx)("button",{onClick:tv,disabled:e5||""===e1.year||""===e1.month,className:"flex-1 px-4 py-2 text-sm font-bold !text-white bg-red-500 hover:bg-red-600 rounded-xl transition-colors disabled:opacity-50",children:e5?(0,s.jsx)(z.W,{size:18,className:"text-white mx-auto"}):"ìì "})]})]})]}),(0,s.jsx)(B.Z,{open:ey,busy:ew,title:"íì ".concat(eg.length,"ëª
ì 모ë ìì í ê¹ì?"),description:"ë´ì íê¸ì íì ëª
ë¨ì´ ë¹ìì§ëë¤.",consequences:["íìë³ ì±ì 기ë¡(ë´ì \xb7모ìê³ ì¬)","ì¶ê²° 기ë¡","ìë´ ì¼ì§","ì¸í¹\xb7íëí¹ì± ì´ì","ìì¨\xb7ì§ë¡ íë 기ë¡ê³¼ 첨ë¶íì¼","ì¤ë¬¸ ìëµ"],confirmLabel:"모ë ìì ",onConfirm:tc,onCancel:()=>ez(!1)}),(0,s.jsx)(B.Z,{open:null!==eC,title:'"'.concat(eC,'" êµì¤ì ìì í ê¹ì?'),description:"ì´ êµì¤ìë§ ìí íìì ëª
ë¨ìì ì¬ë¼ì§ëë¤. ë´ì íê¸ íìì ê·¸ëë¡ ë¨ìµëë¤.",consequences:["ì´ êµì¤ì ì리 ë°°ì¹ì ì§ ì§ì ","ì´ êµì¤ 기ì¤ì¼ë¡ ìì±í íê° ê¸°ë¡"],confirmLabel:"êµì¤ ìì ",onConfirm:()=>{eI(null),eC&&(J(eC),el("ë´ì íê¸"),ev([]),e_(!1),eZ(!1))},onCancel:()=>eI(null)})]})}},7888:function(e,t,r){r.d(t,{q:function(){return s}});function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ìì²ì ì²ë¦¬íì§ ëª»íìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.",r=e instanceof Error?e.message:String(null!=e?e:""),s=r.toLowerCase();return s.trim()?/[ê°-í£]/.test(r)&&!/error|exception|prisma|econn|timeout|undefined|null|\bp\d{4}\b|stack|<|\bat\s/i.test(r)?r:s.includes("unauthorized")||s.includes("unauthenticated")||s.includes("ë¡ê·¸ì¸ ì¸ì
")?"ë¡ê·¸ì¸ì´ íìíê±°ë ì¸ì
ì´ ë§ë£ëììµëë¤. íì´ì§ë¥¼ ìë¡ê³ 침í ë¤ ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("permission denied")||s.includes("forbidden")||s.includes("access denied")||s.includes(" 403")?"ì´ ìì
ì ìíí ê¶íì´ ììµëë¤.":s.includes("not found")||s.includes("no such")||s.includes("does not exist")?"ëìì ì°¾ì ì ììµëë¤. 목ë¡ì ìë¡ê³ 침í ë¤ ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("transaction")&&(s.includes("closed")||s.includes("timeout")||s.includes("aborted")||s.includes("expired"))?"í ë²ì ì²ë¦¬í ìì´ ë§ì ìê°ì´ ì´
1ê³¼ëììµëë¤. ëë ì ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("econnreset")||s.includes("econnrefused")||s.includes("fetch failed")||s.includes("socket hang up")||s.includes("enotfound")||s.includes("network")?"ìë² ì°ê²°ì´ ë¶ìì í©ëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("timeout")||s.includes("timed out")||s.includes("etimedout")?"ìë² ìëµ ìê°ì´ ì´ê³¼ëììµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("unique constraint")||s.includes("p2002")||s.includes("duplicate key")?"ì´ë¯¸ ë±ë¡ëì´ ìë í목ì
ëë¤.":s.includes("no file provided")||s.includes("file provided")?"íì¼ì´ 첨ë¶ëì§ ìììµëë¤. íì¼ì ì íí ë¤ ë¤ì ìëí´ ì£¼ì¸ì.":s.includes("prisma")||/\bp\d{4}\b/.test(s)||s.includes("database")||s.includes("column ")||s.includes("relation ")?"ë°ì´í°ë¥¼ ì ì¥íë ì¤ ë¬¸ì ê° ë°ìíìµëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì.":t:t}},60706:function(e,t,r){r.d(t,{T:function(){return s}});function s(e){let t=String(e).trim().replace(/[^0-9]/g,"");return/^\d{5}$/.test(t)?{grade:parseInt(t[0]),classNum:parseInt(t.slice(1,3)),number:parseInt(t.slice(3))}:/^\d{4}$/.test(t)?{grade:parseInt(t[0]),classNum:parseInt(t[1]),number:parseInt(t.slice(2))}:null}},74791:function(e,t,r){r.d(t,{DX:function(){return i},RM:function(){return n}});var s=r(60706);let a=["íë
","ë°","ë²í¸","ì´ë¦"];async function n(){let e=await Promise.all([r.e(1425),r.e(6919)]).then(r.bind(r,2093)),t=e.utils.book_new(),s=e.utils.aoa_to_sheet([a]);["A1","B1","C1","D1"].forEach(e=>{s[e]&&(s[e].s={alignment:{horizontal:"center"}})}),e.utils.book_append_sheet(t,s,"Sheet1"),e.writeFile(t,"ë´ëª¨_íìëª
ë¨_ìì.xlsx")}async function l(e){let t=await Promise.all([r.e(1425),r.e(6919)]).then(r.bind(r,2093)),a=t.read(new Uint8Array(e),{type:"array"}),n=a.SheetNames[0],l=a.Sheets[n],i=t.utils.sheet_to_json(l,{header:1}),d=-1,c={grade:-1,class:-1,number:-1,name:-1,memo:-1};for(let e=0;e<Math.min(i.length,5);e++){let t=i[e];if(Array.isArray(t)&&(t.forEach((e,t)=>{let r=String(e).trim();r.includes("íë
")&&(c.grade=t),("ë°"===r||r.includes("íê¸")||r.includes("ë°"))&&(c.class=t),r.includes("ë²í¸")&&(c.number=t),(r.includes("ì´ë¦")||r.includes("ì±ëª
"))&&(c.name=t),(r.includes("ë¹ê³ ")||r.includes("기ë¡")||r.includes("ë©ëª¨"))&&(c.memo=t)}),-1!==c.number&&-1!==c.name)){d=e;break}}let o=[];return(-1!==d?i.slice(d+1):i).forEach(e=>{let t,r;if(!Array.isArray(e)||0===e.length)return;let a=0,n="",l="",i="number"==typeof e[2]||/^\d+$/.test(e[2])?parseInt(e[2]):NaN,x=e[3];if(-1===d&&e.length>=4&&!isNaN(i)&&"string"==typeof x&&/^[ê°-í£a-zA-Z\s]{2,20}$/.test(x.trim()))t=parseInt(String(e[0]).replace(/[^0-9]/g,""))||void 0,r=String(e[1]).replace(/[^0-9]/g,""),a=i,n=x.trim();else if(-1!==d&&-1!==c.number&&-1!==c.name){let s=e[c.number],i=e[c.name];s&&i&&(a=parseInt(String(s).replace(/[^0-9]/g,"")),n=String(i).trim(),-1!==c.grade&&(t=parseInt(String(e[c.grade]).replace(/[^0-9]/g,""))||void 0),-1!==c.class&&(r=String(e[c.class]).replace(/[^0-9]/g,"")),-1!==c.memo&&(l=String(e[c.memo])))}else if(-1===d&&e.length>=2){let l=String(e[0]).trim(),i=String(e[1]).trim(),d=(0,s.T)(l);d&&/^[ê°-í£a-zA-Z\s]{2,20}$/.test(i)&&(t=d.grade,r=String(d.classNum),a=d.number,n=i)}n||e.forEach(e=>{if("number"!=typeof e||a){if("string"==typeof e){let t=e.trim();!a&&/^\d+$/.test(t)?a=parseInt(t):!n&&/^[ê°-í£a-zA-Z\s]{2,20}$/.test(t)&&(n=t.trim())}}else a=e}),a&&n&&o.push({number:a,name:n,memo:l,grade:t,classNum:r?parseInt(r,10):void 0})}),o.sort((e,t)=>{let r=(Number(e.grade)||0)-(Number(t.grade)||0);if(0!==r)return r;let s=(Number(e.classNum)||0)-(Number(t.classNum)||0);return 0!==s?s:(Number(e.number)||0)-(Number(t.number)||0)})}async function i(e){return l(await e.arrayBuffer())}}}]);
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.