PageSourceSearch

https://naemo.ai/_next/static/chunks/3529-f8ba5e250ec55ad6.js

js naemo.ai collected 2026-10-02 01:12:54 UTC 9,057 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3529],{92609:function(e,t,n){n.d(t,{_:function(){return c}});var l=n(1406);let r=e=>Math.round(10*e)/10,a=["국어","수학","영어","탐구1","탐구2"];function u(e){let t=e.filter(e=>null!==e.primary).map(e=>({subject:e.label,value:r(e.primary)}));if(t.length<2)return{strongest:null,weakest:null};let n=t.reduce((e,t)=>t.value<e.value?t:e),l=t.reduce((e,t)=>t.value>e.value?t:e);return n.value===l.value?{strongest:null,weakest:null}:{strongest:n,weakest:l}}function c(e){var t,n;let c=null!==(t=e.today)&&void 0!==t?t:new Date,i=function(e){let t=(0,l.r7)(e),n=Array.from(new Set(t.map(e=>"".concat(e.year,"-").concat(e.semester)))).sort((e,t)=>{let[n,l]=e.split("-").map(Number),[r,a]=t.split("-").map(Number);return n-r||l-a}),r=new Map;for(let e of t){let t=(0,l.zl)(e.subject_type);if(!t||!(0,l.J4)(e.grade_level))continue;let n="".concat(e.year,"-").concat(e.semester,"|").concat(t);r.has(n)||r.set(n,[]),r.get(n).push(e.grade_level)}let a=n.map(e=>{let[n,l]=e.split("-"),r=t.filter(t=>"".concat(t.year,"-").concat(t.semester)===e);return{key:e,label:"".concat(n,"학년 ").concat(l,"학기"),shortLabel:e,midtermOnly:r.every(e=>"midterm"===(e.exam_type||"final"))}}).filter(e=>l.UW.some(t=>r.has("".concat(e.key,"|").concat(t))));if(0===a.length)return null;let u=l.UW.map(e=>({subject:e,values:a.map(t=>{var n;return(0,l.M$)(null!==(n=r.get("".concat(t.key,"|").concat(e)))&&void 0!==n?n:[])})})).filter(e=>e.values.some(e=>null!==e)),c=a.map(e=>(0,l.M$)(l.UW.flatMap(t=>{var n;return null!==(n=r.get("".concat(e.key,"|").concat(t)))&&void 0!==n?n:[]})));return{columns:a,rows:u,average:c}}(e.grades),o=function(e){var t;let n=new Map;for(let t of e){let e="".concat(t.year,"-").concat(t.month);n.has(e)||n.set(e,{year:t.year,month:t.month,items:[]}),n.get(e).items.push(t)}let r=Array.from(n.entries()).sort((e,t)=>{let[,n]=e,[,l]=t;return n.year-l.year||n.month-l.month}).slice(-5);if(0===r.length)return null;let u=null===(t=r[r.length-1][1].items[0])||void 0===t?void 0:t.grade,c=1===u||2===u,i=a.map(e=>({key:e,label:c?"탐구1"===e?"사회":"탐구2"===e?"과학":e:e})),o=new Set(r.map(e=>{let[,t]=e;return t.year})).size>1;return{columns:i,exams:r.map(e=>{let[t,n]=e,r=new Map;for(let e of n.items){var u;r.set("탐구1"===(u=e.subject)||"사회"===u?"탐구1":"탐구2"===u||"과학"===u?"탐구2":u,e)}let c=a.map(e=>{let t=r.get(e);if(!t)return null;let n=1===t.grade||2===t.grade;return{grade:(0,l.J4)(t.gradeLevel)?t.gradeLevel:null,detail:n||"탐구1"!==e&&"탐구2"!==e?null:t.subjectDetail||null}}),i={};for(let e of n.items){if(!(0,l.J4)(e.gradeLevel))continue;let t=e.subject;(1===e.grade||2===e.grade)&&("탐구1"===t&&(t="사회"),"탐구2"===t&&(t="과학")),i[t]=e.gradeLevel}return{key:t,label:"".concat(n.year,"년 ").concat(n.month,"월"),shortLabel:o?"".concat(String(n.year).slice(2),".").concat(n.month):"".concat(n.month,"월"),cells:c,average:(0,l.Jf)(i)}})}}(e.mockExams),s=null,m=null;if(i){let e=i.average.map((e,t)=>({value:e,idx:t})).filter(e=>null!==e.value),t=e[e.length-1];if(t){let n=i.columns[t.idx],{strongest:a,weakest:c}=u(m=l.UW.map(n=>{let r=i.rows.find(e=>e.subject===n),a=r?r.values.filter(e=>null!==e):[];return{label:n,primary:(0,l.M$)(a),secondary:e.length>1&&r?r.values[t.idx]:null}}));s={overall:r((0,l.M$)(e.map(e=>e.value))),semesterCount:e.length,latestLabel:"".concat(n.label).concat(n.midtermOnly?" 중간고사":""),latestValue:r(t.value),strongest:a,weakest:c}}}let f=null,d=null;if(o){let e=o.exams.filter(e=>null!==e.average),t=e[e.length-1],a=e[e.length-2];t&&(d=o.columns.map((e,n)=>{var r,a,u;let c=o.exams.map(e=>{var t,l;return null!==(l=null===(t=e.cells[n])||void 0===t?void 0:t.grade)&&void 0!==l?l:null}).filter(e=>null!==e);return{label:(null===(r=t.cells[n])||void 0===r?void 0:r.detail)||e.label,primary:null!==(u=null===(a=t.cells[n])||void 0===a?void 0:a.grade)&&void 0!==u?u:null,secondary:o.exams.length>1?(0,l.M$)(c):null}}),f={...function(e,t){let n=r(e);if(null===t)return{value:n,previous:null,change:null,diff:null};let l=r(t),a=r(Math.abs(l-n));return{value:n,previous:l,change:0===a?"same":n<l?"up":"down",diff:a}}(t.average,null!==(n=null==a?void 0:a.average)&&void 0!==n?n:null),periodLabel:t.label,...u(d)})}return{student:e.student,issuedLabel:"".concat(c.getFullYear(),"년 ").concat(c.getMonth()+1,"월 ").concat(c.getDate(),"일"),naesinScale:e.naesinScale,summary:{naesin:s,mock:f},radar:{naesin:m,mock:d},naesin:i,mock:o,details:function(e){let t=e=>10*e.year+e.semester,n=e.length?Math.max(...e.map(t)):null,r=e=>"".concat(e.year,"-").concat(e.semester,"-").concat(e.subject),a=new Map(e.filter(e=>"final"===(e.exam_type||"final")).map(e=>[r(e),e])),u=new Set((0,l.r7)(e)),c=new Map;for(let l of e){let e="midterm"===l.exam_type?"midterm":"final";if(!u.has(l)&&t(l)!==n)continue;let r="".concat(l.year,"-").concat(l.semester,"-").concat(e);c.has(r)||c.set(r,[]),c.get(r).push(l)}let i=Array.from(c.entries()).map(e=>{let[t,n]=e,[u,c,i]=t.split("-"),o="midterm"===i,s=[...n].sort((e,t)=>
1{let n="number"==typeof e.grade_level,r="number"==typeof t.grade_level;if(n!==r)return r?1:-1;let a=(0,l.vP)(e.subject_type)-(0,l.vP)(t.subject_type);if(0!==a)return a;let u="P"===e.achievement||"F"===e.achievement;return u!==("P"===t.achievement||"F"===t.achievement)?u?1:-1:(e.subject||"").localeCompare(t.subject||"")}).map(e=>{let t=o?a.get(r(e)):void 0;return{id:e.id,subject:e.subject,credits:e.credits,gradeLevel:e.grade_level,totalStudents:e.total_students,rank:e.rank,percentileLabel:(0,l.ng)((0,l.yD)(e)),scoreLabel:"number"==typeof e.grade_level&&"number"==typeof e.score?e.score.toFixed(1):null===e.score?"-":String(e.score),achievement:e.achievement,position:o&&!t?(0,l.FS)(e):null,finalResult:t?function(e,t){let n=e.grade_level,r=t.grade_level;if(!(0,l.J4)(n)||!(0,l.J4)(r))return{label:(0,l.J4)(r)?String(r):t.achievement||"-",change:null,diff:null};let a=n-r;return{label:String(r),change:a>0?"up":a<0?"down":"same",diff:Math.abs(a)}}(e,t):null}}),m=s.filter(e=>e.finalResult).length;return{key:t,title:"".concat(u,"학년 ").concat(c,"학기").concat(o?" 중간고사":""),examType:o?"midterm":"final",superseded:0===m?"none":m===s.length?"all":"some",rows:s}}),o=e=>"final"===e.examType?1:"none"===e.superseded?0:2;return i.sort((e,t)=>{let[n,l]=e.key.split("-").map(Number),[r,a]=t.key.split("-").map(Number);return r-n||a-l||o(e)-o(t)})}(e.grades)}}},1406:function(e,t,n){n.d(t,{FS:function(){return p},J4:function(){return u},Jf:function(){return o},M$:function(){return i},UW:function(){return l},ng:function(){return d},r7:function(){return c},vP:function(){return a},yD:function(){return f},zl:function(){return r}});let l=["국어","수학","영어","사회","과학"];function r(e){return e?e.includes("국어")&&!e.includes("제2외국어")?"국어":e.includes("수학")?"수학":e.includes("영어")?"영어":e.includes("사회")?"사회":e.includes("과학")?"과학":null:null}function a(e){if(!e)return 999;let t=r(e);return t?l.indexOf(t):100}function u(e){return"number"==typeof e&&e>=1&&e<=9}function c(e){let t=new Set(e.filter(e=>"final"===(e.exam_type||"final")).map(e=>"".concat(e.year,"-").concat(e.semester,"-").concat(e.subject)));return e.filter(e=>!("midterm"===(e.exam_type||"final")&&t.has("".concat(e.year,"-").concat(e.semester,"-").concat(e.subject))))}function i(e){return 0===e.length?null:e.reduce((e,t)=>e+t,0)/e.length}function o(e){let t=[];e["국어"]&&t.push(e["국어"]),e["수학"]&&t.push(e["수학"]),e["영어"]&&t.push(e["영어"]);let n=[],l=e["탐구1"]||e["사회"],r=e["탐구2"]||e["과학"];l&&n.push(l),r&&n.push(r);let a=i(n);return null!==a&&t.push(a),i(t)}let s=[0,10,34,66,90,100],m=[0,4,11,23,40,60,77,89,96,100];function f(e){let t,n,l,r;let{rank:a,total_students:u}=e;if("number"==typeof a&&"number"==typeof u&&a>0&&u>0)return Math.max(0,Math.min(100,(u-a+1)/u*100));if("number"!=typeof e.percentile)return null;let c=e.grade_level;if("number"!=typeof c)return e.percentile;let i=e.year<=2?s:m;if(c<1||c>=i.length)return e.percentile;let o=i[c-1],f=i[c],d=(t=e.percentile)>=o&&t<=f,p=(n=e.percentile,l=100-f,r=100-o,n>=l&&n<=r);return d&&!p?100-e.percentile:e.percentile}function d(e){if(null===e)return"-";let t=Math.round(10*e)/10;return Number.isInteger(t)?t.toFixed(0):t.toFixed(1)}function p(e){let t=e.total_students,n=e.rank,l=e.grade_level;if(!t||!n||!l)return null;let r=e.year<=2?s:m,a=r.length-1,u=r.map(e=>0===e?0:Math.floor(t*e/100)),c=Math.min(Math.max(l,1),a),i=u[c-1]+1,o=u[c],f=Math.max(1,c-1),d=Math.min(a,c+1),p=u[f-1],h=u[d]-p,v=[];for(let e=f;e<=d;e++){let t=u[e-1]+1,n=u[e];v.push({grade:e,startPct:h>0?(u[e-1]-p)/h*100:0,endPct:h>0?(u[e]-p)/h*100:100,count:n-t+1,rankStart:t,rankEnd:n})}let g=null,y=null;c>1&&(g=n-u[c-1],y=c-1);let b=null,M=null;return c<a&&(b=u[c]+1-n,M=c+1),{currentGrade:c,rank:n,totalStudents:t,currentStart:i,currentEnd:o,studentPosition:Math.max(0,Math.min(1,h>0?(n-.5-p)/h:.5)),segments:v,displayMin:f,displayMax:d,ranksToUp:g,upGrade:y,ranksToDown:b,downGrade:M}}}}]);

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.