PageSourceSearch

https://naemo.ai/_next/static/chunks/6382.a5691bad9a33025c.js

js naemo.ai collected 2026-10-02 01:15:15 UTC 10,175 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6382,517],{517:function(e,t,a){a.r(t),a.d(t,{SharedAcademicTabs:function(){return N},default:function(){return R}});var n=a(57437),i=a(90982),s=a(30166),d=a(2265),r=a(32660);a(83079);var l=a(12119),c=(0,l.$)("9d1d408d17b2c34cf9b7e93166386853e65f5977"),o=(0,l.$)("7f21202840b9a7bcf1a9e3e81596eb27f8820655"),u=a(61858),m=a(31930),v=a(67920),f=(0,l.$)("ac08d4a2e2fff2141566ce251006840d419d6ee1"),x=a(50647),g=a.n(x),h=a(68904),b=a(57474),p=a(73704),y=a(63714);let k=(0,s.default)(()=>Promise.all([a.e(1042),a.e(2957),a.e(7017),a.e(7444),a.e(3529),a.e(2840),a.e(6667)]).then(a.bind(a,22840)).then(e=>e.StudentGradeTab),{loadableGenerated:{webpack:()=>[22840]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),j=(0,s.default)(()=>Promise.all([a.e(1042),a.e(2957),a.e(7017),a.e(7444),a.e(1405),a.e(2543)]).then(a.bind(a,81405)).then(e=>e.StudentMockExamTab),{loadableGenerated:{webpack:()=>[81405]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),w=(0,s.default)(()=>Promise.all([a.e(2211),a.e(1351),a.e(5176),a.e(3369),a.e(7790),a.e(6248),a.e(6011),a.e(6245),a.e(6856)]).then(a.bind(a,6856)).then(e=>e.StudentLifeRecordTab),{loadableGenerated:{webpack:()=>[6856]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})}),C=(0,s.default)(()=>Promise.all([a.e(1282),a.e(5854),a.e(9630)]).then(a.bind(a,65854)),{loadableGenerated:{webpack:()=>[65854]},loading:()=>(0,n.jsx)(i.ContentLoadingState,{variant:"grades",label:"학업 자료를 불러오고 있어요"})});function N(e){var t,a,i,s,r,l,o,x,h,N;let{view:R,admissionScope:S,embedded:E=!1}=e,[G,I]=(0,d.useState)("grades"),A=(0,v.XC)(),[L,z]=(0,d.useState)(!1),M=(0,d.useMemo)(()=>{let e=async()=>{throw Error("조회 화면에서는 지원 계획을 변경할 수 없습니다.")},t={loadMockExams:async()=>R.mocks,loadGradeRecords:async()=>R.gradeRecords,find:(0,m.u)("",A).find};return S?function(e,t,a,n){let i;let s=Promise.resolve(),d=e=>{let t=s.then(e);return s=t.catch(()=>void 0),t},r=async()=>{let a=await f({action:"list",spaceId:e,studentId:t});if(!a.success)throw Error(a.error);return i=a.data.revision,a.data.plans},l=async e=>{if(0===e.length)return[];let t=new Map(await c(e.map(e=>e.universityId)).catch(()=>[]));return e.map((e,a)=>{var n;return{planId:e.universityId,priority:a+1,track:{...null!==(n=t.get(e.universityId))&&void 0!==n?n:{id:e.universityId,capacity:null,competitionRate:null,cut50:null,cut70:null,trackKey:null,years:[]},...e.university}}})},o=a=>d(async()=>{void 0===i&&await r();let s=await f({...a,spaceId:e,studentId:t,revision:i});if(!s.success)throw Error(s.error);return i=s.data.revision,null==n||n(),l(s.data.plans)});return{...a,listCandidates:()=>d(async()=>l(await r())),addCandidate:(e,t)=>o({action:"add",universityId:e,...void 0===t?{}:{atIndex:t}}),removeCandidate:e=>o({action:"remove",universityId:e}),moveCandidate:(e,t)=>o({action:"move",universityId:e,dir:t})}}(S.spaceId,S.studentId,t,()=>z(!0)):{loadMockExams:async()=>R.mocks,loadGradeRecords:async()=>R.gradeRecords,find:(0,m.u)("",A).find,listCandidates:async()=>{var e,t;let a=null!==(t=null===(e=R.admission)||void 0===e?void 0:e.plans)&&void 0!==t?t:[];if(0===a.length)return[];let n=new Map(await c(a.map(e=>e.universityId)));return a.map((e,t)=>{var a;return{planId:e.universityId,priority:t+1,track:{...null!==(a=n.get(e.universityId))&&void 0!==a?a:{id:e.universityId,capacity:null,competitionRate:null,cut50:null,cut70:null,trackKey:null,years:[]},...e.university}}})},addCandidate:e,removeCandidate:e,moveCandidate:e}},[A,R,S]),F=(0,u.RQ)((null!==(s=R.student.academicYear)&&void 0!==s?s:2026)-(null!==(r=R.student.grade)&&void 0!==r?r:1)+1),T="5-GRADE"===F?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[t,a,i]=e;return(0,n.jsx)(b.r,{isActive:G===t,onClick:()=>I(t),icon:i,label:a},t)})}):(0,n.jsx)("nav",{className:g().tabs,"aria-label":"학생 학업 자료",children:[["grades","내신"],["mock","모의고사"],["life","생활기록부"],["admission","대입"]].map(e=>
1{let[t,a]=e;return(0,n.jsx)("button",{"aria-current":G===t?"page":void 0,onClick:()=>I(t),children:a},t)})}),(0,n.jsxs)("div",{className:E?"flex-1 overflow-y-auto custom-scrollbar p-4":void 0,children:["grades"===G&&(R.grades.length?(0,n.jsx)(k,{grades:R.grades,statistics:null,gradingSystem:F,chartConfig:{maxGrade:T,domain:[1,T],ticks:Array.from({length:T},(e,t)=>t+1)},studentGrade:R.student.grade}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 내신 성적 데이터가 없습니다.",minimal:!0})),"mock"===G&&(R.mocks.length?(0,n.jsx)(j,{mockExams:R.mocks}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 모의고사 성적 데이터가 없습니다.",minimal:!0})),"life"===G&&(R.life?(0,n.jsx)(w,{readOnly:!0,studentId:"",studentName:R.student.name,studentGrade:null!==(l=R.student.grade)&&void 0!==l?l:1,studentClass:null!==(o=R.student.classNum)&&void 0!==o?o:1,studentNumber:null!==(x=R.student.number)&&void 0!==x?x:1,attendanceRecords:[],activityRecords:[],seteukRecords:[],lifeRecordAnalysis:R.life,overallOpinion:null===(t=R.life)||void 0===t?void 0:t.overallOpinion}):(0,n.jsx)(p.Z,{title:"데이터 없음",desc:"등록된 생활기록부 데이터가 없습니다.",minimal:!0})),"admission"===G&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(C,{readOnly:!S,variant:"teacher",api:M,studentGrade:null!==(h=R.student.grade)&&void 0!==h?h:1,academicYear:null!==(N=R.student.academicYear)&&void 0!==N?N:void 0}),!L&&!(null===(a=R.admission)||void 0===a?void 0:a.plans.length)&&(null===(i=R.admission)||void 0===i?void 0:i.target)&&(0,n.jsxs)("p",{className:g().note,children:["기존 목표: ",[R.admission.target.university,R.admission.target.department,R.admission.target.admissionType,R.admission.target.detailType].filter(Boolean).join(" \xb7 ")]})]})]})]})}function R(e){let{spaceId:t,studentId:a,onBack:s,assignmentId:l,embedded:c=!1}=e,[u,m]=(0,d.useState)(null),[v,f]=(0,d.useState)(!1),x=(0,d.useMemo)(()=>v?{spaceId:t,studentId:a}:void 0,[v,t,a]),[b,p]=(0,d.useState)(""),[y,k]=(0,d.useState)(!0),j=(0,d.useRef)(0),w=(0,d.useCallback)(async()=>{let e=++j.current;m(null),f(!1),k(!0),p("");try{let n=await o({action:"read",spaceId:t,studentId:a,...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(t){e===j.current&&p("자료를 불러오지 못했습니다. 다시 시도해 주세요.")}finally{e===j.current&&k(!1)}},[t,a,l]);return(0,d.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)(r.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 t=new Map;for(let n of e.gradeRecords){var a;if(null==n.gradeLevel||!["국어","수학","영어","사회(역사/도덕 포함)","과학"].includes(n.subjectCategory))continue;let e="".concat(n.year,"-").concat(n.semester);t.set(e,[...null!==(a=t.get(e))&&void 0!==a?a:[],n.gradeLevel])}let n=Array.from(t.values()).map(e=>e.reduce((e,t)=>
1e+t,0)/e.length);return n.length?(n.reduce((e,t)=>e+t,0)/n.length).toFixed(1):"-"}(u),"등급"]})]})})})}),(0,n.jsx)(N,{embedded:c,view:u,admissionScope:x},a)]})]})}},61858:function(e,t,a){a.d(t,{Bz:function(){return s},RQ:function(){return d},f6:function(){return r},hC:function(){return i}});let n={통합사회:.1,통합과학:.2,"생활과 윤리":1,"윤리와 사상":2,한국지리:3,세계지리:4,동아시아사:5,세계사:6,경제:7,"정치와 법":8,사회·문화:9,생활과윤리:1,윤리와사상:2,사회문화:9,정치와법:8,"한국 지리":3,"세계 지리":4,물리학Ⅰ:10,물리학1:10,물리1:10,물리Ⅰ:10,물리학:10,화학Ⅰ:11,화학1:11,화학:11,생명과학Ⅰ:12,생명과학1:12,생명과학:12,생명:12,지구과학Ⅰ:13,지구과학1:13,지구과학:13,물리학Ⅱ:14,물리학2:14,물리2:14,물리Ⅱ:14,화학Ⅱ:15,화학2:15,생명과학Ⅱ:16,생명과학2:16,생명2:16,지구과학Ⅱ:17,지구과학2:17,지구2:17},i=e=>e.includes("국어")?-4:e.includes("화법")||e.includes("작문")?-3.9:e.includes("언어")&&e.includes("매체")?-3.8:e.includes("수학")?-3:e.includes("확률")||e.includes("통계")?-2.9:e.includes("미적분")?-2.8:"기하"===e?-2.7:e.includes("영어")?-2:e.includes("한국사")?-1:n[e]?n[e]:999,s=e=>new Date().getFullYear()-e+1,d=e=>e>=2025?"5-GRADE":"9-GRADE",r=e=>"5-GRADE"===e?{domain:[1,6],ticks:[1,2,3,4,5],maxGrade:5}:{domain:[1,9],ticks:[1,2,3,4,5,6,7,8,9],maxGrade:9}}}]);

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.