1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7597],{17597:function(e,r,s){s.r(r),s.d(r,{default:function(){return m}});var c=s(57437),n=s(2265);s(83079);var t=(0,s(12119).$)("c733a24d646ac035805a67f3ca3cd125a7ec2cd1"),a=s(91351);let l=a.Z_().min(1).max(100),i=a.Ry({studentId:l.nullable(),grade:a.Rx().int().min(1).max(3),classNum:a.Rx().int().min(1).max(99),number:a.Rx().int().min(1).max(999),name:a.Z_().trim().min(1).max(60).transform(e=>e.normalize("NFC"))}).strict(),d={spaceId:l,fromYear:a.Rx().int().min(2e3).max(2099),rows:a.IX(i).min(1).max(4e3)};a.VK("action",[a.Ry({action:a.i0("preview"),...d}).strict(),a.Ry({action:a.i0("confirm"),...d,fingerprint:a.Z_().regex(/^[a-f0-9]{64}$/)}).strict()]);var o=s(50647),u=s.n(o);function m(e){let{detail:r,onComplete:s,onBusyChange:a}=e,[l,d]=(0,n.useState)(""),[o,m]=(0,n.useState)(null),[h,x]=(0,n.useState)(!1),[p,j]=(0,n.useState)(""),[f,b]=(0,n.useState)(!1),[g,N]=(0,n.useState)(""),w=(0,n.useRef)(!1),v=(0,n.useId)(),y=r.enrollments.flatMap(e=>{let s=r.classes.find(r=>r.id===e.classId);return s?[{studentId:e.student.id,name:e.student.name,number:e.number,grade:s.grade,classNum:s.classNum}]:[]});async function E(){if(!w.current){w.current=!0,b(!0),null==a||a(!0),N(""),x(!1),m(null);try{let e=function(e,r){if(e.length>4e5)throw Error("íì ëª
ë¨ì´ ë무 í½ëë¤. 4,000ëª
ì´ë´ë¡ ì
ë ¥í´ ì£¼ì¸ì.");let s=e.trim().split(/\r?\n/).filter(e=>e.trim());if(!e.trim()||s.length>4e3)throw Error("ì íë
ë íì ëª
ë¨ì 1~4,000ëª
ì
ë ¥í´ ì£¼ì¸ì.");let c=s.map((e,s)=>{let c=e.includes(" ")?e.split(" ").map(e=>e.trim()):e.trim().split(/\s+/);for(;c.length>4&&""===c[c.length-1];)c.pop();if(![4,7].includes(c.length))throw Error("".concat(s+1,"í: ì íë
\xb7ë°\xb7ë²í¸\xb7ì´ë¦ì ì
ë ¥íê³ , ì¬íìì ì´ì íë
\xb7ë°\xb7ë²í¸ë ì
ë ¥í´ ì£¼ì¸ì."));let[n,t,a,l]=c,d=l.normalize("NFC"),o=null;if(7===c.length){let[e,n,t]=c.slice(4).map(Number);if(![e,n,t].every(e=>Number.isInteger(e)&&e>0))throw Error("".concat(s+1,"í: ì´ì íë
\xb7ë°\xb7ë²í¸ë¥¼ 모ë ì
ë ¥í´ ì£¼ì¸ì."));let a=r.filter(r=>r.grade===e&&r.classNum===n&&r.number===t&&r.name===d);if(1!==a.length)throw Error("".concat(s+1,"í: ì´ì íì ëª
ë¨ìì ì´ë¦ê³¼ íë
\xb7ë°\xb7ë²í¸ê° ì¼ì¹íë íìì ì°¾ì§ ëª»íìµëë¤."));o=a[0].studentId}let u=i.safeParse({studentId:o,grade:Number(n),classNum:Number(t),number:Number(a),name:d});if(!u.success)throw Error("".concat(s+1,"í: íë
(1~3)\xb7ë°(1~99)\xb7ë²í¸(1~999)ì ì´ë¦ì íì¸í´ 주ì¸ì."));return u.data});if(new Set(c.map(e=>"".concat(e.grade,":").concat(e.classNum,":").concat(e.number))).size!==c.length)throw Error("ì íì ëª
ë¨ì ê°ì íë
\xb7ë°\xb7ë²í¸ê° ë ë² ììµëë¤.");let n=c.flatMap(e=>e.studentId?[e.studentId]:[]);if(new Set(n).size!==n.length)throw Error("ê°ì 기존 íìì´ ì íì ëª
ë¨ì ë ë² ë°°ì ëì´ ììµëë¤.");return c}(l,y),s=await t({action:"preview",spaceId:r.space.id,fromYear:r.space.currentYear,rows:e});if(!s.success){N(s.error);return}if("preview"===s.data.kind){m({rows:e,preview:s.data.preview});let r=s.data.preview.classes[0];j(r?"".concat(r.grade,":").concat(r.classNum):"")}}catch(e){N(e instanceof Error?e.message:"íì ëª
ë¨ì íì¸íì§ ëª»íìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì.")}finally{w.current=!1,b(!1),null==a||a(!1)}}}async function I(){if(o&&h&&!w.current){w.current=!0,b(!0),null==a||a(!0),N("");try{let e=await t({action:"confirm",spaceId:r.space.id,fromYear:r.space.currentYear,rows:o.rows,fingerprint:o.preview.fingerprint});if(!e.success){N(e.error),m(null),x(!1);return}"completed"===e.data.kind&&await s()}catch(e){N("결과를 íì¸íì§ ëª»íìµëë¤. íêµ íë
ë를 ìë¡ê³ ì¹¨í´ íì¸í´ 주ì¸ì.")}finally{w.current=!1,b(!1),null==a||a(!1)}}}return r.me.operator?(0,c.jsxs)("details",{className:"".concat(u().section," ").concat(u().yearSection),children:[(0,c.jsx)("summary",{children:"ì íë
ë ì¤ë¹"}),(0,c.jsxs)("p",{children:[r.space.currentYear,"íë
ë íì ëª
ë¨ì ë§ì¹ê³ ",r.space.currentYear+1,"íë
ë를 ììí©ëë¤. ë°ì´ ë°ëì´ë 기존 íìì ì°ê²°íë©´ 과거 ì±ì ì´ ì´ì´ì§ëë¤."]}),(0,c.jsx)("p",{className:u().note,children:"íêµ ê´ë¦¬ì ìí ì ë¤ì íë
ëìë ì ì§ë©ëë¤. ë´ì ë± íë
ëë³ ìí ì ì¢
ë£ëë¯ë¡, ì í í 구ì±ììì ì ìí ì ì§ì íì¸ì."}),(0,c.jsxs)("form",{className:u().form,onSubmit:e=>{e.preventDefault(),E()},children:[(0,c.jsxs)("label",{children:["ì íë
ë íì ëª
ë¨",(0,c.jsx)("textarea",{rows:9,maxLength:4e5,disabled:f,value:l,onCh
1ange:e=>{d(e.target.value),m(null),x(!1)},placeholder:"ì íë
ì ë° ì ë²í¸ ì´ë¦ ì´ì íë
ì´ì ë° ì´ì ë²í¸\n2 3 1 ê¹ë¯¼ì 1 1 5\n1 1 1 ì´ìì°"})]}),(0,c.jsx)("p",{className:u().note,children:"ìì
ì´ì íì¼ë¡ 구ë¶í´ ë¶ì¬ ë£ì¼ì¸ì. ì¬íìì ì´ì íë
\xb7ë°\xb7ë²í¸ê¹ì§ ì´ 7ì´, ì ì
\xb7ì ì
ìì ì íë
\xb7ë°\xb7ë²í¸\xb7ì´ë¦ 4ì´ì
ëë¤. ì´ë¦ë§ì¼ë¡ 기존 íìì ì°ê²°íì§ ììµëë¤."}),(0,c.jsx)("button",{className:u().secondary,type:"submit",disabled:f||!l.trim(),children:f?"ì²ë¦¬ ì¤":"íì ëª
ë¨ ë¯¸ë¦¬ë³´ê¸°"})]}),g&&(0,c.jsx)("p",{role:"alert",className:u().error,children:g}),o&&(0,c.jsxs)("div",{className:u().yearReview,children:[(0,c.jsxs)("h3",{children:[o.preview.nextYear,"íë
ë ë° ë°°ì íì¸"]}),(0,c.jsxs)("p",{children:["기존 íì ",o.preview.existingCount,"ëª
ì°ê²° \xb7 ì íì ",o.preview.newCount,"ëª
ë±ë¡"]}),(0,c.jsxs)("table",{className:u().table,children:[(0,c.jsx)("thead",{children:(0,c.jsxs)("tr",{children:[(0,c.jsx)("th",{scope:"col",children:"ì íê¸"}),(0,c.jsx)("th",{scope:"col",children:"íì ì"})]})}),(0,c.jsx)("tbody",{children:o.preview.classes.map(e=>(0,c.jsxs)("tr",{children:[(0,c.jsxs)("td",{children:[e.grade,"íë
",e.classNum,"ë°"]}),(0,c.jsxs)("td",{children:[e.students,"ëª
"]})]},"".concat(e.grade,":").concat(e.classNum)))})]}),(0,c.jsxs)("div",{className:u().form,children:[(0,c.jsx)("label",{htmlFor:v,children:"íìë³ íì¸í íê¸"}),(0,c.jsx)("select",{id:v,value:p,onChange:e=>j(e.target.value),children:o.preview.classes.map(e=>(0,c.jsxs)("option",{value:"".concat(e.grade,":").concat(e.classNum),children:[e.grade,"íë
",e.classNum,"ë°"]},"".concat(e.grade,":").concat(e.classNum)))})]}),(0,c.jsx)("div",{className:u().yearExcluded,children:(0,c.jsxs)("table",{className:u().table,children:[(0,c.jsx)("thead",{children:(0,c.jsxs)("tr",{children:[(0,c.jsx)("th",{scope:"col",children:"ë²í¸"}),(0,c.jsx)("th",{scope:"col",children:"ì´ë¦"}),(0,c.jsx)("th",{scope:"col",children:"ìë£ ì°ê²°"})]})}),(0,c.jsx)("tbody",{children:o.rows.filter(e=>"".concat(e.grade,":").concat(e.classNum)===p).map(e=>(0,c.jsxs)("tr",{children:[(0,c.jsx)("td",{children:e.number}),(0,c.jsx)("td",{children:e.name}),(0,c.jsx)("td",{children:e.studentId?"기존 íì":"ì íì"})]},e.number))})]})}),o.preview.possibleDuplicates.length>0&&(0,c.jsxs)("div",{className:u().error,children:[(0,c.jsx)("p",{children:"기존 íì ëª
ë¨ì ê°ì ì´ë¦ì´ ìì§ë§ ì íìì¼ë¡ ì
ë ¥í íëª©ì´ ììµëë¤. ì¬íìì´ë©´ ì´ì íë
\xb7ë°\xb7ë²í¸ë¥¼ ì¶ê°í´ ë¤ì íì¸íì¸ì."}),(0,c.jsx)("ul",{children:o.preview.possibleDuplicates.map(e=>(0,c.jsxs)("li",{children:[e.grade,"íë
",e.classNum,"ë° ",e.number,"ë² ",e.name]},"".concat(e.grade,":").concat(e.classNum,":").concat(e.number)))})]}),(0,c.jsxs)("h3",{children:["ì íì ëª
ë¨ì ìë íì ",o.preview.excluded.length,"ëª
"]}),(0,c.jsx)("p",{className:u().note,children:"졸ì
\xb7ì ì¶ íìë¿ ìëë¼ ëë½ë ì¬íìì´ ìëì§ íì¸íì¸ì. ì´ íìë¤ì 기존 íêµ ìë£ë ìì ëì§ ììµëë¤."}),o.preview.excluded.length>0&&(0,c.jsx)("div",{className:u().yearExcluded,children:(0,c.jsxs)("table",{className:u().table,children:[(0,c.jsx)("thead",{children:(0,c.jsxs)("tr",{children:[(0,c.jsx)("th",{scope:"col",children:"ì´ì íê¸"}),(0,c.jsx)("th",{scope:"col",children:"ë²í¸"}),(0,c.jsx)("th",{scope:"col",children:"ì´ë¦"})]})}),(0,c.jsx)("tbody",{children:o.preview.excluded.map((e,r)=>(0,c.jsxs)("tr",{children:[(0,c.jsxs)("td",{children:[e.grade,"íë
",e.classNum,"ë°"]}),(0,c.jsx)("td",{children:e.number}),(0,c.jsx)("td",{children:e.name})]},r))})]})}),(0,c.jsxs)("p",{className:u().note,children:["íì¬ ë´ë¹ ",o.preview.endedAssignments,"ê±´ ì¢
ë£"]}),(0,c.jsxs)("label",{className:u().checkbox,children:[(0,c.jsx)("input",{type:"checkbox",checked:h,disabled:f,onChange:e=>x(e.target.checked)}),"ì ë° ë°°ì ê³¼ ì ì¸ íìì íì¸íì¼ë©°, íì¬ ë´ë¹ì ì¢
ë£í©ëë¤."]}),(0,c.jsxs)("button",{className:u().primary,disabled:f||!h,onClick:()=>void I(),children:[o.preview.nextYear,"íë
ë ììí기"]})]})]}):null}}}]);
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.