PageSourceSearch

https://naemo.ai/_next/static/chunks/517.ce8c00ae722d4c29.js

js naemo.ai collected 2026-10-02 01:13:39 UTC 8,876 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[517],{517:function(e,a,t){t.r(a),t.d(a,{SharedAcademicTabs:function(){return N},default:function(){return S}});var n=t(57437),i=t(90982),s=t(30166),r=t(2265),d=t(32660);t(83079);var l=t(12119),c=(0,l.$)("9d1d408d17b2c34cf9b7e93166386853e65f5977"),o=(0,l.$)("7f21202840b9a7bcf1a9e3e81596eb27f8820655"),u=t(61858),m=t(31930),v=t(67920),f=(0,l.$)("ac08d4a2e2fff2141566ce251006840d419d6ee1"),x=t(50647),g=t.n(x),h=t(68904),b=t(57474),p=t(73704),y=t(63714);let k=(0,s.default)(()=>Promise.all([t.e(1042),t.e(2957),t.e(7017),t.e(7444),t.e(3529),t.e(2840),t.e(6667)]).then(t.bind(t,22840)).then(e=>e.StudentGradeTab),{loadableGenerated:{webpack:()=>[22840]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),j=(0,s.default)(()=>Promise.all([t.e(1042),t.e(2957),t.e(7017),t.e(7444),t.e(1405),t.e(2543)]).then(t.bind(t,81405)).then(e=>e.StudentMockExamTab),{loadableGenerated:{webpack:()=>[81405]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),w=(0,s.default)(()=>Promise.all([t.e(2211),t.e(1351),t.e(5176),t.e(3369),t.e(7790),t.e(6248),t.e(6011),t.e(6245),t.e(6856)]).then(t.bind(t,6856)).then(e=>e.StudentLifeRecordTab),{loadableGenerated:{webpack:()=>[6856]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),C=(0,s.default)(()=>Promise.all([t.e(1282),t.e(5854),t.e(9630)]).then(t.bind(t,65854)),{loadableGenerated:{webpack:()=>[65854]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})});function N(e){var a,t,i,s,d,l,o,x,h,N;let{view:S,admissionScope:R,embedded:E=!1}=e,[I,G]=(0,r.useState)("grades"),L=(0,v.XC)(),[z,M]=(0,r.useState)(!1),A=(0,r.useMemo)(()=>{let e=async()=>{throw Error("조회 화면에서는 지원 계획을 변경할 수 없습니다.")},a={loadMockExams:async()=>S.mocks,loadGradeRecords:async()=>S.gradeRecords,find:(0,m.u)("",L).find};return R?function(e,a,t,n){let i;let s=Promise.resolve(),r=e=>{let a=s.then(e);return s=a.catch(()=>void 0),a},d=async()=>{let t=await f({action:"list",spaceId:e,studentId:a});if(!t.success)throw Error(t.error);return i=t.data.revision,t.data.plans},l=async e=>{if(0===e.length)return[];let a=new Map(await c(e.map(e=>e.universityId)).catch(()=>[]));return e.map((e,t)=>{var n;return{planId:e.universityId,priority:t+1,track:{...null!==(n=a.get(e.universityId))&&void 0!==n?n:{id:e.universityId,capacity:null,competitionRate:null,cut50:null,cut70:null,trackKey:null,years:[]},...e.university}}})},o=t=>r(async()=>{void 0===i&&await d();let s=await f({...t,spaceId:e,studentId:a,revision:i});if(!s.success)throw Error(s.error);return i=s.data.revision,null==n||n(),l(s.data.plans)});return{...t,listCandidates:()=>r(async()=>l(await d())),addCandidate:(e,a)=>o({action:"add",universityId:e,...void 0===a?{}:{atIndex:a}}),removeCandidate:e=>o({action:"remove",universityId:e}),moveCandidate:(e,a)=>o({action:"move",universityId:e,dir:a})}}(R.spaceId,R.studentId,a,()=>M(!0)):{loadMockExams:async()=>S.mocks,loadGradeRecords:async()=>S.gradeRecords,find:(0,m.u)("",L).find,listCandidates:async()=>{var e,a;let t=null!==(a=null===(e=S.admission)||void 0===e?void 0:e.plans)&&void 0!==a?a:[];if(0===t.length)return[];let n=new Map(await c(t.map(e=>e.universityId)));return t.map((e,a)=>{var t;return{planId:e.universityId,priority:a+1,track:{...null!==(t=n.get(e.universityId))&&void 0!==t?t:{id:e.universityId,capacity:null,competitionRate:null,cut50:null,cut70:null,trackKey:null,years:[]},...e.university}}})},addCandidate:e,removeCandidate:e,moveCandidate:e}},[L,S,R]),T=(0,u.RQ)((null!==(s=S.student.academicYear)&&void 0!==s?s:2026)-(null!==(d=S.student.grade)&&void 0!==d?d:1)+1),F="5-GRADE"===T?5:9;return(0,n.jsxs)("div",{className:E?"flex flex-col min-h-0 flex-1":void 0,children:[E?(0,n.jsx)("nav",{className:"shrink-0 border-b border-zinc-200 dark:border-white/5 bg-white dark:bg-[#0c0c0e] px-4 flex items-center gap-1 overflow-x-auto student-tabs-container","aria-label":"학생 학업 자료",children:[["grades","내신",y.Z2],["mock","모의고사",y.yk],["life","생활기록부",y.Fn],["admission","대입",y.Nk]].map(e=>{let[a,t,i]=e;return(0,n.jsx)(b.r,{isActive:I===a,onClick:()=>G(a),icon:i,label:t},a)})}):(0,n.jsx)("nav",{className:g().tabs,"aria-label":"학생 학업 자료",children:[["grades","내신"],["mock","모의고사"],["life","생활기록부"],["admission","대입"]].map(e=>{let[a,t]=e;return(0,n.jsx)("button",{"aria-current":I===a?"page":void 0,onClick:()=>G(a),children:t},a)})}),(0,n.jsxs)("div",{className:E?"flex-1 overflow-y-auto custom-scrollbar p-4":void 0,children:["grades"===I&&(S.grades.length?(0,n.jsx)(k,{grades:S.grades,statistics:null,gradingSystem:T,chartConfig:{maxGrade:F,domain:[1,F],ticks:Array.from({length:F},(e,a)=>a+1)},studentGrade:S.student.grade}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 내신 성적 데이터가 없습니다.",minimal:!0})),"mock"===I&&(S.mocks.length?(0,n.jsx)(j,{mockExams:S.mocks}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 모의고사 성적 데이터가 없습니다.",minimal:!0})),"life"===I&&(S.life?(0,n.jsx)(w,{readOnly:!0,studentId:"",studentName:S.student.name,studentGrade:null!==(l=S.student.grade)&&void 0!==l?l:1,studentClass:null!==(o=S.student.classNum)&&void 0!==o?o:1,studentNumber:null!==(x=S.student.number)&&void 0!==x?x:1,attendanceRecords:[],activityRecords:[],seteukRecords:[],lifeRecordAnalysis:S.life,overallOpinion:null===(a=S.life)||void 0===a?void 0:a.overallOpinion}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 생활기록부 데이터가 없습니다.",minimal:!0})),"admission"===I&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(C,{readOnly:!R,variant:"teacher",api:A,studentGrade:null!==(h=S.student.grade)&&void 0!==h?h:1,academicYear:null!==(N=S.student.academicYear)&&void 0!==N?N:void 0}),!z&&!(null===(t=S.admission)||void 0===t?void 0:t.plans.length)&&(null===(i=S.admission)||void 0===i?void 0:i.target)&&(0,n.jsxs)("p",{className:g().note,children:["기존 목표: ",[S.admission.target.university,S.admission.target.department,S.admission.target.admissionType,S.admission.target.detailType].filter(
1Boolean).join(" \xb7 ")]})]})]})]})}function S(e){let{spaceId:a,studentId:t,onBack:s,assignmentId:l,embedded:c=!1}=e,[u,m]=(0,r.useState)(null),[v,f]=(0,r.useState)(!1),x=(0,r.useMemo)(()=>v?{spaceId:a,studentId:t}:void 0,[v,a,t]),[b,p]=(0,r.useState)(""),[y,k]=(0,r.useState)(!0),j=(0,r.useRef)(0),w=(0,r.useCallback)(async()=>{let e=++j.current;m(null),f(!1),k(!0),p("");try{let n=await o({action:"read",spaceId:a,studentId:t,...l?{assignmentId:l}:{}});if(e!==j.current)return;n.success?"student"===n.data.kind&&(m(n.data.view),f(n.data.canEditAdmission)):p(n.error)}catch(a){e===j.current&&p("자료를 불러오지 못했습니다. 다시 시도해 주세요.")}finally{e===j.current&&k(!1)}},[a,t,l]);return(0,r.useEffect)(()=>{w();let e=()=>{"visible"===document.visibilityState&&w()};return window.addEventListener("focus",e),()=>{j.current++,window.removeEventListener("focus",e)}},[w]),(0,n.jsxs)("section",{className:"flex flex-col h-full min-h-0 text-sm font-sans bg-white dark:bg-[#0c0c0e] text-zinc-900 dark:text-white","aria-busy":y,children:[!c&&(0,n.jsxs)("button",{className:g().link,onClick:s,children:[(0,n.jsx)(d.Z,{size:16})," 학생 목록"]}),y&&(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오는 중입니다."}),b&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{role:"alert",className:g().error,children:b}),(0,n.jsx)("button",{className:g().secondary,onClick:()=>void w(),children:"다시 불러오기"})]}),u&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("header",{className:"shrink-0 bg-white dark:bg-[#0c0c0e] p-4 pb-0",children:(0,n.jsx)(h.C,{student:u.student,children:(0,n.jsx)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-zinc-500 mt-2",children:(0,n.jsxs)("div",{className:"flex flex-col",children:[(0,n.jsx)("span",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 mb-0.5",children:"평균 내신"}),(0,n.jsxs)("span",{className:"text-zinc-700 dark:text-zinc-300 font-medium text-sm",children:[function(e){let a=new Map;for(let n of e.gradeRecords){var t;if(null==n.gradeLevel||!["국어","수학","영어","사회(역사/도덕 포함)","과학"].includes(n.subjectCategory))continue;let e="".concat(n.year,"-").concat(n.semester);a.set(e,[...null!==(t=a.get(e))&&void 0!==t?t:[],n.gradeLevel])}let n=Array.from(a.values()).map(e=>e.reduce((e,a)=>e+a,0)/e.length);return n.length?(n.reduce((e,a)=>e+a,0)/n.length).toFixed(1):"-"}(u),"등급"]})]})})})}),(0,n.jsx)(N,{embedded:c,view:u,admissionScope:x},t)]})]})}}}]);

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.