PageSourceSearch

https://naemo.ai/_next/static/chunks/6856.17636888134c1ff2.js

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

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6856],{64954:function(e,t,i){i.d(t,{Z:function(){return r}});var s=i(57437);i(2265);var n=i(93448),a=i(51028);function r(e){let{title:t,description:i,action:r,badge:l,size:c="md",className:d="",iconSize:o,animate:x=!0}=e,m="sm"===c,u="lg"===c;return(0,s.jsxs)("div",{className:(0,n.cn)("group relative flex flex-col items-center justify-center text-center select-none",m?"py-8 px-4":u?"py-20 px-8":"py-16 px-6",d),children:[l&&(0,s.jsx)("span",{className:"mb-3.5 inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-zinc-100 dark:bg-white/[0.06] text-zinc-600 dark:text-zinc-300 border border-zinc-200/80 dark:border-white/10",children:l}),(0,s.jsx)("div",{className:(0,n.cn)("relative flex items-center justify-center transition-transform duration-300 ease-out",x&&"group-hover:scale-105",m?"mb-3":u?"mb-5":"mb-4"),children:(0,s.jsx)(a.w,{size:null!=o?o:m?48:u?80:64,showGlow:!1})}),(0,s.jsx)("h3",{className:(0,n.cn)("font-bold text-zinc-800 dark:text-zinc-100 tracking-tight",m?"text-sm":u?"text-[20px]":"text-base"),children:t}),i&&(0,s.jsx)("div",{className:(0,n.cn)("text-zinc-500 dark:text-zinc-400 font-normal leading-relaxed",m?"text-xs mt-1.5 max-w-xs":u?"text-[14px] mt-2 max-w-lg":"text-[13px] mt-1.5 max-w-md"),children:i}),r&&(0,s.jsx)("div",{className:(0,n.cn)("flex items-center justify-center",m?"mt-4":"mt-6"),children:r})]})}},6856:function(e,t,i){i.r(t),i.d(t,{StudentLifeRecordTab:function(){return p}});var s=i(57437),n=i(2265),a=i(83008),r=i(17689),l=i(33245),c=i(40875),d=i(93448),o=i(25997),x=i(54696),m=i(64954);let u=e=>e&&"string"==typeof e?e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").trim():e,p=e=>{let{studentId:t,attendanceRecords:i,activityRecords:c,seteukRecords:p,studentName:b,studentGrade:j,studentClass:v,studentNumber:z,lifeRecordAnalysis:y,overallOpinion:k,isMobile:N=!1,readOnly:w=!1}=e,{openSettings:A}=(0,o.Y)(),C=(0,x.Dv)(),[F,S]=(0,n.useState)(y);(0,n.useEffect)(()=>{if(S(y),w||C||!t)return;let e=!1;return(async()=>{try{let s=await (0,a.X)("getStudentLifeRecordAnalysis",{studentId:t},{path:"/student-life-record"});if(!e&&(null==s?void 0:s.success)&&s.data){var i;S(null!==(i=s.data.lifeRecordAnalysis)&&void 0!==i?i:null)}}catch(e){}})(),()=>{e=!0}},[t,C,w,y]);let M=()=>{C?window.dispatchEvent(new CustomEvent("open-login-modal")):A("record-grade",t)},{summary:E="",strengths:D=[],weaknesses:_=[],attendance:Z=[],activities:R=[],seteuk:I=[],behaviorKeywords:P=[],recommendations:T=[],potentialMajors:Y=[],attendanceSummary:L="",updatedAt:O="",pdfFileKey:G=""}=F||{},J=u(E),U=u(L),X=(Array.isArray(D)?D:[]).map(e=>u(e)),q=(Array.isArray(_)?_:[]).map(e=>u(e)),B=(Array.isArray(R)?R:[]).map(e=>({...e,name:u(e.name||""),details:u(e.details||"")})),H=(Array.isArray(I)?I:[]).map(e=>({...e,subject:u(e.subject||""),details:u(e.details||e.analysis||"")})),K=(Array.isArray(P)?P:[]).map(e=>u(e)),Q=(Array.isArray(T)?T:[]).map(e=>"string"==typeof e?u(e):"object"==typeof e&&null!==e?{...e,suggestion:u(e.suggestion||e.activity||e.title||e.text||"")}:e),V=(Array.isArray(Z)?Z:[]).map(e=>({...e,type:u(e.type||""),reason:u(e.reason||e.details||"")})),W=(Array.isArray(Y)?Y:[]).map(e=>u(e)),$={autonomous:B.filter(e=>{var t;return"autonomous"===e.category||(null===(t=e.category)||void 0===t?void 0:t.includes("자율"))}),career:B.filter(e=>{var t;return"career"===e.category||(null===(t=e.category)||void 0===t?void 0:t.includes("진로"))}),club:B.filter(e=>{var t;return"club"===e.category||(null===(t=e.category)||void 0===t?void 0:t.includes("동아리"))}),others:B.filter(e=>{var t,i,s;return!["autonomous","career","club"].includes(e.category)&&!(null===(t=e.category)||void 0===t?void 0:t.includes("자율"))&&!(null===(i=e.category)||void 0===i?void 0:i.includes("진로"))&&!(null===(s=e.category)||void 0===s?void 0:s.includes("동아리"))})};return(0,s.jsxs)("div",{className:N?"flex flex-col [&>*+*]:border-t-8 [&>*+*]:border-[#f2f2ef] dark:[&>*+*]:border-black":"space-y-3 pb-32 animate-in fade-in slide-in-from-bottom-2 duration-700",children:[(0,s.jsx)("section",{id:"section-ai-summary",children:(0,s.jsx)(f,{isMobile:N,title:"AI 종합 요약",rightElement:O&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[!w&&(G?(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("button",{onClick:M,className:"text-[11px] font-bold text-[#007AFF] hover:text-blue-600 dar
1k:text-blue-400 dark:hover:text-blue-300 transition-colors",children:"다시 업로드"}),(0,s.jsx)("span",{className:"text-[11px] font-medium text-zinc-300 dark:text-zinc-500",children:"/"}),(0,s.jsx)("button",{onClick:()=>window.open("/api/files/".concat(encodeURIComponent(G)),"_blank"),className:"text-[11px] font-bold text-[#007AFF] hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300 transition-colors",children:"원본 보기"})]}):(0,s.jsx)("button",{onClick:M,className:"text-[11px] font-bold text-[#007AFF] hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300 transition-colors",children:"다시 업로드"})),(0,s.jsxs)("span",{className:"text-[11px] font-medium text-zinc-400 dark:text-zinc-500",children:["(",new Date(O).getFullYear(),"년 ",new Date(O).getMonth()+1,"월 ",new Date(O).getDate(),"일 업로드)"]})]}),children:(0,s.jsx)("div",{className:(0,d.cn)("flex justify-between items-start",N?"mb-0.5":"mb-4"),children:(0,s.jsx)("div",{className:"flex-1",children:F?(0,s.jsx)("p",{className:"text-[13px] text-zinc-600 dark:text-zinc-400 leading-relaxed font-medium whitespace-pre-wrap",children:J||"생활기록부 전체 데이터를 통합 분석한 결과입니다. 학생의 전반적인 학업 역량과 학교 생활 태도가 이 요약에 반영되어 있습니다."}):(0,s.jsx)(m.Z,{size:"md",title:"등록된 생활기록부가 없습니다",description:w?"공유된 생기부 분석이 아직 없습니다.":"PDF 파일을 업로드하면 AI가 분석하여 상세 리포트와 종합 요약을 생성합니다.",action:!w&&(0,s.jsxs)("button",{onClick:M,className:"flex items-center gap-2 px-5 py-2.5 bg-zinc-900 hover:bg-black dark:bg-white dark:hover:bg-zinc-100 text-white dark:text-zinc-900 rounded-xl text-xs font-bold transition shadow-sm active:scale-95",children:[(0,s.jsx)(r.Z,{size:14}),"생활기록부 PDF 업로드"]})})})})})}),(!N||F)&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:N?"flex flex-col [&>*+*]:border-t-8 [&>*+*]:border-[#f2f2ef] dark:[&>*+*]:border-black":"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,s.jsx)(f,{isMobile:N,title:"나의 강점",children:(0,s.jsx)("ul",{className:"space-y-2",children:X.length>0?X.map((e,t)=>(0,s.jsxs)("li",{className:"flex items-start gap-2 text-[13px] font-medium text-zinc-600 dark:text-zinc-400",children:[(0,s.jsx)("span",{className:"mt-1.5 w-1.5 h-1.5 bg-zinc-300 dark:bg-zinc-600 rounded-full shrink-0"}),(0,s.jsx)("span",{className:"leading-relaxed whitespace-pre-wrap",children:e})]},t)):(0,s.jsx)("li",{className:"text-zinc-400 text-xs",children:"분석된 강점이 없습니다."})})}),(0,s.jsx)(f,{isMobile:N,title:"보완할 점",children:(0,s.jsx)("ul",{className:"space-y-2",children:q.length>0?q.map((e,t)=>(0,s.jsxs)("li",{className:"flex items-start gap-2 text-[13px] font-medium text-zinc-600 dark:text-zinc-400",children:[(0,s.jsx)("span",{className:"mt-1.5 w-1.5 h-1.5 bg-zinc-300 dark:bg-zinc-600 rounded-full shrink-0"}),(0,s.jsx)("span",{className:"leading-relaxed whitespace-pre-wrap",children:e})]},t)):(0,s.jsx)("li",{className:"text-zinc-400 text-xs",children:"분석된 보완점이 없습니다."})})})]}),(0,s.jsx)("section",{id:"section-attendance",children:(0,s.jsx)(f,{isMobile:N,title:"출결 상황",children:U?(0,s.jsx)("div",{className:(0,d.cn)("flex flex-col justify-center",N?"py-1":"py-2 px-1"),children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(l.Z,{size:16,className:"text-zinc-400 mt-0.5 shrink-0"}),(0,s.jsx)("p",{className:"text-[13px] text-zinc-600 dark:text-zinc-400 leading-relaxed font-medium whitespace-pre-wrap",children:U})]})}):(0,s.jsx)(g,{message:V.length>0?"출결 기록을 분석 중입니다.":"분석된 출결 데이터가 없습니다."})})}),(0,s.jsx)("section",{id:"section-activities",children:(0,s.jsx)(f,{isMobile:N,title:"주요 활동 요약",children:(0,s.jsxs)("div",{className:N?"flex flex-col gap-5":"grid grid-cols-1 md:grid-cols-3 gap-6",children:[(0,s.jsxs)("div",{className:N?void 0:"space-y-3",children:[(0,s.jsx)("div",{className:N?"mt-1 mb-0.5 flex items-center":"flex items-center gap-2 mb-2 px-2",children:(0,s.jsx)("span",{className:"text-xs font-bold text-zinc-500 dark:text-zinc-400",children:"자율 활동"})}),$.autonomous.length>0?$.autonomous.map((e,t)=>(0,s.jsx)(h,{title:e.name,content:e.details,flat:N},"auto-".concat(e.name,"-").concat(t))):N?(0,s.jsx)("p",{className:"py-2 text-[12px] text-zinc-400 dark:text-zinc-500",children:"기록 없음"}):(0,s.jsx)(g,{message:"기록 없음"})]}),(0,s.jsxs)("div",{className:N?void 0:"space-y-3",children:[(0,s.jsx)("div",{className:N?"mt-1 mb-0.5 flex items-center":"flex items-center gap-2 mb-2 px-2",children:(0,s.jsx)("span",{className:"text-xs font-bold text-zinc-500 dark:text-zinc-400",children:"진로 활동"})}),$.career.length>0?$.career.map((e,t)=>(0,s.jsx)(h,{title:e.name,content:e.details,flat:N},"career-".concat(e.name,"-").concat(t))):N?(0,s.jsx)("p",{className:"py-2 text-[12px] text-zinc-400 dark:text-zinc-500",children:"기록 없음"}):(0,s.jsx)(g,{message:"기록 없음"})]}),(0,s.jsxs)("div",{className:N?void 0:"space-y-3",children:[(0,s.jsx)("div",{className:N?"mt-1 mb-0.5 flex items-center":"flex items-center gap-2 mb-2 px-2",children:(0,s.jsx)("span",{className:"text-xs font-bold text-zinc-500 dark:text-zinc-400",children:"동아리 활동"})}),$.club.length>0?$.club.map((e,t)=>(0,s.jsx)(h,{title:e.name,content:e.details,flat:N},"club-".concat(e.name,"-").concat(t))):N?(0,s.jsx)("p",{className:"py-2 text-[12px] text-zinc-400 dark:text-zinc-500",children:"기록 없음"}):(0,s.jsx)(g,{message:"기록 없음"})]})]})})}),(0,s.jsx)("section",{id:"section-seteuk",children:(0,s.jsx)(f,{isMobile:N,title:"세부능력 및 특기사항",children:(0,s.jsx)("div",{className:N?"flex flex-col":"grid grid-cols-1 md:grid-cols-2 items-start gap-x-8 gap-y-4",children:H.length>0?H.map((e,t)=>(0,s.jsx)(h,{title:e.subject,content:e.details,flat:N},"seteuk-".concat(e.subject,"-").concat(t,"-").concat(e.id||t))):(0,s.jsx)("div",{className:"col-span-full",children:(0,s.jsx)(g,{message:"세특 분석 데이터가 없습니다."})})})})}),(0,s.jsx)("section",{id:"section-behavior",children:(0,s.jsx)(f,{isMobile:N,title:"행동특성 및 종합의견 키워드",children:(0,s.jsx)("div",{className:(0,d.cn)("text-[13px] text-zinc-600 dark:text-zinc-400 font-medium leading-relaxed",!N&&"px-2"),children:K.length>0?K.join(", "):(0,s.jsx)(g,{message:"분석된 키워드가 없습니다."})})})}),(0,s.jsx)("section",{id:"section-recommendations",children:(0,s.jsx)(f,{isMobile:N,title:"추천 학교 활동",children:(0,s.jsx)("ul",{className:"space-y-2",children:Q.length>0?Q.map((e,t)=>{let i;if("string"==typeof e)i=e;else if("object"==typeof e&&null!==e){var n,a,r,l,c,d,o,x;i=null!==(x=null!==(o=null!==(d=null!==(c=null!==(l=null!==(r=null!==(a=null!==(n=e.suggestion)&&void 0!==n?n:e.activity)&&void 0!==a?a:e.title)&&void 0!==r?r:e.text)&&void 0!==l?l:e.description)&&void 0!==c?c:e.content)&&void 0!==d?d:e.name)&&void 0!==o?o:e.recommendation)&&void 0!==x?x:JSON.stringify(e)}else i=String(e);return(0,s.jsxs)("li",{className:"flex items-start gap-2 text-[13px] font-medium text-zinc-600 dark:text-zinc-400",children:[(0,s.jsx)("span",{className:"mt-1.5 w-1.5 h-1.5 bg-zinc-300 dark:bg-zinc-600 rounded-full shrink-0"}),(0,s.jsx)("span",{className:"leading-relaxed whitespace-pre-wrap",children:i})]},t)}):(0,s.jsx)(g,{message:"추천된 제언이 없습니다."})})})}),(0,s.jsx)("section",{id:"section-potential-majors",children:(0,s.jsx)(f,{isMobile:N,title:"추천 진로 및 학과",children:(0,s.jsx)("div",{className:(0,d.cn)("text-[13px] text-zinc-600 dark:text-zinc-400 font-medium",N?"leading-relaxed py-0.5":"px-2 py-1"),children:W.length>0?W.map(e=>e).join(", "):(0,s.jsx)(g,{message:"추천된 경로가 없습니다."})})})})]})]})};function h(e){let{title:t,content:i,flat:a=!1}
1=e,[r,l]=(0,n.useState)(!1);return a?(0,s.jsxs)("div",{className:"border-b border-zinc-100 dark:border-white/[0.06] last:border-b-0",children:[(0,s.jsxs)("button",{type:"button","aria-expanded":r,onClick:()=>l(!r),className:"w-full min-h-[46px] py-2.5 flex items-center justify-between gap-3 text-left",children:[(0,s.jsx)("span",{className:(0,d.cn)("text-[13.5px] leading-snug transition-colors",r?"font-semibold text-zinc-900 dark:text-white":"font-medium text-zinc-800 dark:text-zinc-200"),children:t}),(0,s.jsx)(c.Z,{size:16,className:(0,d.cn)("text-zinc-400 dark:text-zinc-500 transition-transform duration-300 shrink-0",r&&"rotate-180")})]}),(0,s.jsx)("div",{className:(0,d.cn)("grid transition-all duration-300 ease-in-out",r?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"),children:(0,s.jsx)("div",{className:"overflow-hidden",children:(0,s.jsx)("p",{className:"pb-4 text-[13px] text-zinc-600 dark:text-zinc-400 leading-relaxed whitespace-pre-wrap",children:i})})})]}):(0,s.jsxs)("div",{className:(0,d.cn)("border border-zinc-100 dark:border-white/10 rounded-xl bg-white dark:bg-zinc-800/40 overflow-hidden transition-all",!r&&"hover:bg-zinc-50 dark:hover:bg-zinc-800/70"),children:[(0,s.jsxs)("button",{onClick:()=>l(!r),className:"w-full px-4 h-[38px] flex items-center justify-between group",children:[(0,s.jsx)("span",{className:(0,d.cn)("text-[12.5px] font-bold transition-colors truncate pr-4",r?"text-zinc-900 dark:text-white":"text-zinc-700 dark:text-zinc-400 group-hover:text-zinc-900 dark:group-hover:text-white"),children:t}),(0,s.jsx)(c.Z,{size:14,className:(0,d.cn)("text-zinc-400 dark:text-zinc-500 transition-transform duration-300 shrink-0",r&&"rotate-180")})]}),(0,s.jsx)("div",{className:(0,d.cn)("grid transition-all duration-300 ease-in-out",r?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"),children:(0,s.jsx)("div",{className:"overflow-hidden",children:(0,s.jsx)("div",{className:"px-5 pb-5 text-[13px] text-zinc-600 dark:text-zinc-400 leading-relaxed border-t border-zinc-50 dark:border-white/5 pt-4 bg-zinc-50/30 dark:bg-black/20 whitespace-pre-wrap font-medium",children:i})})})]})}function f(e){let{title:t,children:i,className:n,rightElement:a,isMobile:r=!1}=e;return(0,s.jsxs)("div",{className:(0,d.cn)("flex flex-col h-full",r?"bg-white dark:bg-[#1C1C1E]":"rounded-xl overflow-hidden bg-[#FAFAF9] dark:bg-[#18181b]",n),children:[(0,s.jsxs)("div",{className:(0,d.cn)("flex justify-between items-center",r?"flex-wrap gap-x-3 gap-y-1 px-5 pt-3.5 pb-1":"px-4 py-3"),children:[(0,s.jsx)("h3",{className:(0,d.cn)("font-semibold text-sm",r?"text-zinc-800 dark:text-zinc-200":"text-zinc-900 dark:text-zinc-200"),children:t}),a]}),(0,s.jsx)("div",{className:(0,d.cn)("flex-1",r?"px-5 pb-4 pt-1":"px-6 pb-5"),children:i})]})}function g(e){let{message:t}=e;return(0,s.jsx)("div",{className:"w-full py-4 text-center text-[11px] text-zinc-400 dark:text-zinc-400",children:(0,s.jsx)("span",{className:"font-medium",children:t})})}t.default=p},25997:function(e,t,i){i.d(t,{Y:function(){return c},x:function(){return l}});var s=i(57437),n=i(2265),a=i(76245);let r=(0,n.createContext)(void 0);function l(e){let{children:t}
1=e,[i,l]=(0,n.useState)(!1),[c,d]=(0,n.useState)("general"),[o,x]=(0,n.useState)(void 0),[m,u]=(0,n.useState)({}),p=(0,n.useRef)(void 0),h=()=>{l(!1),u({}),p.current&&(p.current(),p.current=void 0)};return(0,s.jsxs)(r.Provider,{value:{openSettings:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"general",t=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;d(e),x(t),u(i||{}),p.current=null==i?void 0:i.onClose,l(!0)},closeSettings:h,isOpen:i},children:[t,(0,s.jsx)(a.T,{isOpen:i,onClose:h,defaultTab:c,studentId:o,autoAddClass:m.autoAddClass})]})}function c(){let e=(0,n.useContext)(r);if(void 0===e)throw Error("useSettingsModal must be used within a SettingsModalProvider");return e}}}]);

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.