1import{a as Z,r as f,j as e}from"./vendor-react-wpXF2Dvf.js";import{a as ee}from"./vendor-query-fYiNqPbw.js";import{bh as re,bi as se,bm as te,aL as ne,bp as ae,aG as ie}from"./main-BDOnhuy4.js";import{a2 as x,A as C,Y as b,a0 as j,q as le,u as oe,R as de,k as l,T as G,b5 as D}from"./superschool-ui-DXud_9UO.js";import{A as k,F as ce}from"./ActionButtonPanel-CSDYB4NV.js";import{L as ue}from"./LoadingDialog-BqlYR8XZ.js";import{S as me,B as he}from"./BulkApplyConfirm-B15D3pGy.js";import{e as pe}from"./download-excel-CDUeOdkM.js";import{b2 as B,aD as R,a8 as fe,S as g}from"./superschool-sdk-BmtTBy0Q.js";import{r as ge}from"./readXlsxFileBrowser-DEJ8AfCu.js";import"./modulepreload-polyfill-B5Qt9EMX.js";import"./vendor-react-pdf-3ecbNM6a.js";import"./vendor-i18n-BUJziXlB.js";import"./vendor-radix-kOLjYi5a.js";import"./vendor-recharts-DgZqauKz.js";import"./vendor-tiptap-DtaI5KiI.js";import"./ImageNFileUpload-BGwuA8lv.js";import"./addfile-eQB3_APc.js";import"./fileNameGuard-DsoHfV4f.js";import"./xlsx-Bi4a-sJm.js";const A=["ë¡ê·¸ì¸ ID(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.)","ì´ì íë
(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.)","ì´ì ë°(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.)","ì´ì ë²í¸(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.)","ì´ë¦","íë
(ì«ìë§)","ë°(ì«ìë§)","ë²í¸(ì«ìë§)"],z=["ì´ì íë
(ì«ìë§)","ì´ì ë°(ì«ìë§)","ì´ì ë²í¸(ì«ìë§)","ì´ë¦","íë
(ì«ìë§)","ë°(ì«ìë§)","ë²í¸(ì«ìë§)"];function Ue(){const o=Z(),u=ee(),[t,c]=f.useState(null),[r,y]=f.useState(B().toString()),[O,N]=f.useState(!1),[K,S]=f.useState(!1),[T,_]=f.useState(!1),[U,w]=f.useState(new Set),[$,E]=f.useState(!1),P=a=>{L(a)},{data:xe,refetch:M}=R().useGetUnassignedStudentList(Number(r),{query:{enabled:!1,queryKey:["/api-v2/users/management/unassigned/student/list",r]}}),{mutate:Y}=R().useStudentKlassBulkUpsert({onSuccess:async()=>{await u.invalidateQueries({queryKey:["/api-v2/student/list"]}),C({message:`${r}íë
ë ${t==null?void 0:t.list.length}ëª
ì ì ì
ì ì¼ê´ í¸ì±ì´ ìë£ëììµëë¤.`,type:"success"}),o(`/admin/student?year=${r}`)},onError:a=>{var s,n;x({title:"íì ì¼ê´ ì§ê¸/í¸ì±ì ì¤í¨íììµëë¤.",description:(n=(s=a==null?void 0:a.data)==null?void 0:s.message)==null?void 0:n.ko,confirmText:"íì¸"})}}),q=async()=>{if(!t||t.type!=="forNextGrade")return;const a=t.list,s=[];let n=0;C({message:"íì ì¼ê´ ì§ê¸/í¸ì±ì ì§íì¤ì
ëë¤. ì ìë§ ê¸°ë¤ë ¤ 주ì¸ì.",type:"info"}),_(!0);const d=a.reduce((i,p,m)=>{const h=`${p.newGrade}-${p.newKlass}`;return i[h]||(i[h]=[]),i[h].push({item:p,index:m}),i},{});if(await Promise.all(Object.entries(d).map(async([i,p])=>{var m,h;for(const{item:v,index:X}of p)try{await ae({...v,adventYear:Number(r)})}catch(J){s[X]=((h=(m=J.response)==null?void 0:m.data)==null?void 0:h.message)||"ì²ë¦¬ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.",n++}})),_(!1),n===0)await u.invalidateQueries({queryKey:["/api-v2/student/list"]}),C({message:`${r}íë
ë ${t==null?void 0:t.list.length}ëª
ì ì¬íì ì¼ê´ ì§ê¸/í¸ì±ì´ ìë£ëììµëë¤.`,type:"success"}),o(`/admin/student?year=${r}`);else{const i=new Set;s.forEach((m,h)=>{m&&i.add(h)}),w(i);const p=s.find(m=>m)||"ì²ë¦¬ ì¤ ì¤ë¥ê° ë°ìíìµëë¤.";x({title:"íì ì¼ê´ ì§ê¸/í¸ì±ì ì¤í¨íììµëë¤.",description:p,confirmText:"íì¸"})}},V=async()=>{if(t){if(t.type==="forFreshmen"&&t.list.filter(s=>!s.loginId||!s.newGrade||s.newKlass===null||s.newStudentNumber===null).length>0){const s=new Set;t.list.forEach((n,d)=>{(!n.loginId||!n.newGrade||n.newKlass===null||n.newStudentNumber===null)&&s.add(d)}),w(s),x({title:"ì
ë ¥íì§ ìì íì íëª©ì´ ììµëë¤.",description:"ë¡ê·¸ì¸ ID, íë
, ë°, ë²í¸ë¥¼ 모ë ì
ë ¥í´ ì£¼ì¸ì.",confirmText:"íì¸"});return}if(t.type==="forNextGrade"&&t.list.filter(s=>!s.oldGrade||!s.oldKlass||!s.oldStudentNumber||!s.name||!s.newGrade||!s.newKlass||!s.newStudentNumber).length>0){const s=new Set;t.list.forEach((n,d)=>{(!n.oldGrade||!n.oldKlass||!n.oldStudentNumber||!n.name||!n.newGrade||!n.newKlass||!n.newStudentNumber)&&s.add(d)}),w(s),x({title:"ì
ë ¥íì§ ìì íì íëª©ì´ ììµëë¤.",description:"ì´ì íë
, ì´ì ë°, ì´ì ë²í¸, ì´ë¦, íë
, ë°, ë²í¸ë¥¼ 모ë ì
ë ¥í´ ì£¼ì¸ì.",confirmText:"íì¸"});return}E(!0)}},H=a=>a.length===A.length&&A.every((s,n)=>
1a[n]===s)?{isValid:!0,type:"forFreshmen"}:a.length===z.length&&z.every((s,n)=>a[n]===s)?{isValid:!0,type:"forNextGrade"}:{isValid:!1,type:null},Q=a=>a.map(([s,n,d,i,p,m,h,v])=>({loginId:s,oldGrade:n,oldKlass:d,oldStudentNumber:i,name:p,newGrade:m,newKlass:h,newStudentNumber:v})),W=a=>a.map(([s,n,d,i,p,m,h])=>({oldGrade:Number(s),oldKlass:Number(n),oldStudentNumber:Number(d),name:String(i),newGrade:Number(p),newKlass:Number(m),newStudentNumber:Number(h)}));async function L(a){try{w(new Set);const[s,...n]=await ge(a),d=H(s);if(!d.isValid){x({title:"ì¬ë°ë¥¸ ììì¼ë¡ ìì±í´ì£¼ì¸ì.",description:"ìì ë¤ì´ë¡ë í ë¤ì ìëí´ì£¼ì¸ì.",confirmText:"íì¸"});return}if(d.type==="forFreshmen"){const i=Q(n);c({type:"forFreshmen",list:i})}else if(d.type==="forNextGrade"){const i=W(n);c({type:"forNextGrade",list:i})}}catch(s){console.error("ìì íì¼ ì½ê¸° ì¤ë¥:",s),alert(`ìì íì¼ì ì½ë ì¤ ì¤ë¥ê° ë°ìíìµëë¤. 2ìì ë¤ì´ë¡ëíì¬ ìë¡ì´ ìì íì¼ì ìì±íì í, 3ë¤ì ìëí´ì£¼ì¸ì.`)}}return e.jsxs(re,{headerChildren:e.jsx(e.Fragment,{children:e.jsxs(b,{direction:"col",gap:"2",items:"start",justify:"center",children:[e.jsx(l,{variant:"title",className:"text-[32px] font-bold",children:"íì ì¼ê´ ì§ê¸/í¸ì±"}),e.jsx(l,{size:"sm",weight:"sm",variant:"dim",children:"ìì íì¼ì ì ë¡ëíì¬ íìì íë , ë°, ë²í¸ë¥¼ ì¼ê´ë¡ ìì í ì ììµëë¤."})]})}),children:[e.jsxs(se,{children:[e.jsxs(b,{gap:"6",className:"mb-6",children:[e.jsx(k,{title:"ìì ìì ë¤ì´ë¡ë",description:"íì ì¼ê´ ì§ê¸/í¸ì±ì ìí ìì ììì ë¤ì´ë¡ëí´ ì£¼ì¸ì.",button:e.jsx(j,{iconName:"ssDownload",variant:"solid",color:"secondary",position:"front",stroke:!0,size:"lg",iconColor:"white",customSize:{width:"12px",height:"12px"},onClick:()=>N(!0),className:"shrink-0",children:"ìì ë¤ì´ë¡ë"})}),e.jsx(k,{title:"ìì íì¼ ëª ë¨ ì ë¡ë",description:"íì ìì ì´ ìë£ë ìì íì¼ì ì ë¡ëí´ ì£¼ì¸ì.",button:t&&t.list.length>0?e.jsxs(le,{children:[e.jsx(oe,{className:"shrink-0",children:e.jsx(j,{iconName:"Plus",variant:"solid",color:"secondary",size:"lg",position:"front",stroke:!0,strokeWidth:2,onClick:()=>S(!0),children:"ìì íì¼ ì¬ì ë¡ë"})}),e.jsx(de,{side:"bottom",align:"end",children:e.jsx(l,{size:"sm",weight:"sm",className:"text-white",children:"íì 리ì¤í¸ê° ì íì¼ë¡ ë®ì´ì°ê¸° ë©ëë¤."})})]}):e.jsx(j,{iconName:"Plus",variant:"solid",color:"secondary",position:"front",stroke:!0,size:"lg",iconColor:"white",onClick:()=>S(!0),className:"shrink-0",children:"ìì íì¼ ì ë¡ë"})})]}),e.jsx(te,{children:e.jsxs(b,{direction:"col",justify:"between",gap:"4",className:"h-full p-6",children:[e.jsxs(b,{items:"start",justify:"between",gap:"2",children:[e.jsxs(b,{items:"center",gap:"2",children:[t&&(t.type==="forFreshmen"?e.jsx(G,{title:"ì ì ì",size:"lg",variant:"sub",color:"primary",className:"border-primary-400 h-8 shrink-0 border"}):e.jsx(G,{title:"ì¬íì",size:"lg",variant:"sub",color:"primary",className:"border-primary-400 h-8 shrink-0 border"})),t&&t.list.length>0&&e.jsxs(l,{size:"md",weight:"md",className:"shrink-0 text-gray-600",children:["ì´ ",e.jsxs("span",{className:"font-bold",children:[t.list.length,"ëª "]})]})]}),e.jsxs(b,{direction:"col",gap:"2",items:"end",children:[e.jsx(j,{iconName:"Plus",variant:"solid",color:"primary",size:"sm",position:"front",stroke:!0,strokeWidth:2,iconColor:"white",className:"shrink-0",disabled:!t,onClick:V,children:"ì¼ê´ ì§ê¸/í¸ì± ì ì©"}),t&&e.jsx(l,{variant:"primary",children:"* ìì íì¼ ì ë¡ë í [ì¼ê´ ì§ê¸/í¸ì± ì ì©] ë²í¼ì ê¼ ëë¬ì£¼ì¸ì."})]})]}),e.jsx(be,{excelData:t,invalidStudentIndices:U})]})})]}),e.jsx(me,{isOpen:O,setIsOpen:N,text:{title:"íì ì¼ê´ ì§ê¸/í¸ì±",description:"ì ë¡ëí íì¼ì íìì ì íí´ì£¼ì¸ì",leftButton:{title:"ì ì ì íë² ë¶ì¬",description:`íë²ì´ ìë íììê² íë² ë±ë¡ 4*'ì ì ì íë² ë¶ì¬'ì ê²½ì° ì íí íë ë íì ëª ë¨ì´ ë¤ì´ë¡ë ë©ëë¤.`},rightButton:{title:"ì¬íì ì§ê¸ ì²ë¦¬",description:"기존 íìì íë íë² ìì "}},onLeftButtonClick:async()=>{const{data:a}=await M(),s=a??[];if(s.length>0){const d=`ë¡ê·¸ì¸ ID(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.),ì´ì íë (ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.),ì´ì ë°(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.),ì´ì ë²í¸(ì´ ì»¬ë¼ì ë°ì´í°ë ìì íì§ ë§ì¸ì.),ì´ë¦,íë (ì«ìë§),ë°(ì«ìë§),ë²í¸(ì«ìë§) 5`+fe(s,[i=>i.grade,i=>i.number]).map(i=>[i.email,i.grade,"미ì§ì ",`${i.number} (ìì)`,i.name].join(",")).join(` 6`);pe(d,"(ìí¼ì¤ì¿¨ìì)íì_ì¼ê´í¸ì±_ì ì ì_íë²_ë¶ì¬")}else x({title:`${r}íë ëì ë±ë¡ë ì ì ì ëª ë¨ì´ ììµëë¤.`,description:"'ì¼ê´ ì¶ê°'를 먼ì ì§íí´ ì£¼ì¸ì.",confirmText:"íì¸"});N(!1)},onRightButtonClick:()=>{ne.saveAs("https://kr.object.gov-ncloudstorage.com/superschool/storage/%28%EC%8A%88%ED%8D%BC%EC%8A%A4%EC%BF%A8%EC%96%91%EC%8B%9D%29%ED%95%99%EC%83%9D_%EC%9D%BC%EA%B4%84%ED%8E%B8%EC%84%B1_%EC%A7%84%EA%B8%89%EC%83%9D_%ED%95%99%EB%B2%88_%EC%9E%AC%EB%B0%B0%EC%A0%95.xlsx","(ìí¼ì¤ì¿¨ìì)íì_ì¼ê´í¸ì±_ì¬íì_ì§ê¸_ì²ë¦¬.xlsx"),N(!1)}}),K&&e.jsx(ce,{isOpen:K,setIsOpen:S,title:"íì ì¼ê´ ì§ê¸/í¸ì±",description:"íì ì¼ê´ ì§ê¸/í¸ì± ìì ë¤ì´ë¡ë ë° ìì± í ì ë¡ë í´ì£¼ì¸ì.",accept:".xlsx",handleFileUpload:P}),e.jsx(ue,{isOpen:T,setIsOpen:_,title:"ë±ë¡ì¤ ...",description:"íì ì¼ê´ ì§ê¸/í¸ì± ì¤ì ëë¤. íì´ì§ë¥¼ ë²ì´ëê±°ë ìë¡ê³ 침íì§ ë§ì¸ì."}),e.jsx(he,{isOpen:$,currentSchoolYear:B(),selectedSchoolYear:Number(r),setSelectedSchoolYear:a=>y(a.toString()),description:`${r}íë ëì ì´ ${t==null?void 0:t.list.length}ëª íìì ì¼ê´ ì§ê¸/í¸ì±í©ëë¤.`,setIsOpen:E,onConfirm:()=>{t&&t.type==="forFreshmen"?Y({data:{schoolYear:Number(r),list:t.list.map(a=>({loginId:a.loginId,grade:a.newGrade,klass:a.newKlass,studentNumber:a.newStudentNumber}))}}):q()}})]})}function I(){return e.jsxs(b,{direction:"col",gap:"12",items:"center",justify:"center",className:"h-full",children:[e.jsx("img",{src:ie,className:"h-36 w-36 object-contain"}),e.jsxs(l,{weight:"md",className:"text-gray-600",children:["ììì ë¤ì´ë¡ëí ë¤ íì ëª ë¨ì ìì±íì¬",e.jsx("br",{}),"ì ë¡ëí´ ì£¼ì¸ì."]})]})}function ye({excelList:o,invalidStudentIndices:u}){const t=[{header:"ë¡ê·¸ì¸ ID",accessorKey:"loginId",size:120,cellRenderer:r=>e.jsx(l,{children:r??"-"})},{header:"ì´ì íë ",accessorKey:"oldGrade",size:100,cellRenderer:r=>e.jsx(l,{children:r??"-"})},{header:"ì´ì ë°",accessorKey:"oldKlass",size:100,cellRenderer:r=>e.jsx(l,{children:r??"-"})},{header:"ì´ì ë²í¸",accessorKey:"oldStudentNumber",size:120,cellRenderer:r=>e.jsx(l,{children:r??"-"})},{header:"ì´ë¦",accessorKey:"name",size:120,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"íë ",accessorKey:"newGrade",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ë°",accessorKey:"newKlass",size:100,cellRenderer:r=>e.jsx(l,{children:r??"-"})},{header:"ë²í¸",accessorKey:"newStudentNumber",size:100,cellRenderer:r=>e.jsx(l,{children:r??"-"})}],c=f.useMemo(()=>o==null?void 0:o.map((r,y)=>({index:y,loginId:r.loginId,oldGrade:r.oldGrade,oldKlass:r.oldKlass,oldStudentNumber:r.oldStudentNumber,name:r.name,newGrade:r.newGrade,newKlass:r.newKlass,newStudentNumber:r.newStudentNumber,className:u.has(y)?"bg-primary-100":""})),[o,u]);return e.jsx(D,{columns:t,data:c,manualPagination:!0,customEmptyState:e.jsx(I,{}),className:g("flex min-h-0 flex-1 flex-col overflow-hidden [&_div]:rounded-none [&_div]:border-x-0! [&_div]:border-gray-100",c.length===0?"h-full [&_div]:border-b-0!":""),tableWrapperClassName:g(c.length===0?"h-full":""),tableClassName:g(c.length===0?"h-full":""),headerClassName:"[&_th]:text-center [&_th]:text-gray-500 [&_th]:font-medium [&_tr:hover]:!bg-transparent [&_tr]:border-gray-100",bodyClassName:g("[&_td]:!px-4 [&_td]:!py-2 [&_td]:text-center [&_tr]:border-gray-100 [&_tr:hover]:!bg-white [&_tr.bg-primary-100:hover]:!bg-primary-100",c.length===0?"h-full":"")})}function F({excelList:o,invalidStudentIndices:u}){const t=[{header:"ì´ì íë ",accessorKey:"oldGrade",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ì´ì ë°",accessorKey:"oldKlass",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ì´ì ë²í¸",accessorKey:"oldStudentNumber",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ì´ë¦",accessorKey:"name",size:120,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"íë ",accessorKey:"newGrade",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ë°",accessorKey:"newKlass",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})},{header:"ë²í¸",accessorKey:"newStudentNumber",size:100,cellRenderer:r=>e.jsx(l,{children:r||"-"})}],c=f.useMemo(()=>o==null?void 0:o.map((r,y)=>({index:y,oldGrade:r.oldGrade,oldKlass:r.oldKlass,oldStudentNumber:r.oldStudentNumber,name:r.name,newGrade:r.newGrade,newKlass:r.newKlass,newStudentNumber:r.newStudentNumber,className:u.has(y)?"bg-primary-100":""})),[o,u]);return e.jsx(D,{columns:t,data:c,manualPagination:!0,customEmptyState:e.jsx(I,{}),className:g("flex min-h-0 flex-1 flex-col overflow-hidden [&_div]:rounded-none [&_div]:border-x-0! [&_div]:border-gray-100",c.length===0?"h-full [&_div]:border-b-0!":""),tableWrapperClassName:g(c.length===0?"h-full":""),tableClassName:g(c.length===0?"h-full":""),headerClassName:"[&_th]:text-center [&_th]:text-gray-500 [&_th]:font-medium [&_tr:hover]:!bg-transparent [&_tr]:border-gray-100",bodyClassName:g("[&_td]:!px-4 [&_td]:!py-2 [&_td]:text-center [&_tr]:border-gray-100 [&_tr:hover]:!bg-white [&_tr.bg-primary-100:hover]:!bg-primary-100",c.length===0?"h-full":"")})}function be({excelData:o,invalidStudentIndices:u}){return o?o.type==="forFreshmen"?e.jsx(ye,{excelList:o.list,invali
6dStudentIndices:u}):e.jsx(F,{excelList:o.list,invalidStudentIndices:u}):e.jsx(F,{excelList:(o==null?void 0:o.list)??[],invalidStudentIndices:u})}export{Ue as StudentBatchUpdatePage};
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.