PageSourceSearch

https://naemo.ai/_next/static/chunks/3213.5fec4c909179ca32.js

js naemo.ai collected 2026-10-02 01:14:21 UTC 28,225 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3213],{21047:function(e,t,n){n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])},76980:function(e,t,n){n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Paperclip",[["path",{d:"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48",key:"1u3ebp"}]])},84286:function(e,t,n){n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},73213:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var i=n(57437),r=n(2265),a=n(27526),s=n(32489),c=n(30401),l=n(2665),d=n(93292),o=n(98907),x=n(76919),u=n(48313),m=n(80664),h=n(84286),b=n(95805),p=n(21047),f=n(99397),z=n(31047),g=n(76980),j=n(78867),k=n(98319),v=n(34137);function N(e){let{isOpen:t,onClose:n,initialUserCount:a=10,initialDurationMonths:l=12}=e,{showToast:o}=(0,k.pm)(),[x,m]=(0,r.useState)(a),[N,y]=(0,r.useState)(l),[w,S]=(0,r.useState)(!1);(0,v.j)(n,t);let C=(0,r.useMemo)(()=>({userCount:Math.max(1,x),durationMonths:Math.max(1,N)}),[x,N]),I=(0,r.useMemo)(()=>(function(e){let{userCount:t=10,durationMonths:n=10}=e,i=d.XU,r=(0,d.ES)(n),a=(0,d.NN)(t,n),s=function(e){if(!e||e<=0)return"영";let t=["","만","억","조"],n=["","일","이","삼","사","오","육","칠","팔","구"],i=["","십","백","천"],r="",a=0;for(;e>0;){let s=e%1e4;if(s>0){let e="",c=s;for(let t=0;t<4;t++){let r=c%10;r>0&&(e=(1===r&&t>0?"":n[r])+i[t]+e),c=Math.floor(c/10)}r=e+t[a]+r}e=Math.floor(e/1e4),a++}return r||"영"}(a),c=new Date,l=c.getFullYear(),o=c.getMonth()+1,x=(o-1+n)%12+1,u=l+Math.floor((o-1+n-1)/12),m="".concat(l,".").concat(String(o).padStart(2,"0"),". ~ ").concat(u,".").concat(String(x).padStart(2,"0"),". (").concat(n,"개월)"),h=(0,d.d5)(n),b=h>0?"".concat(r,"개월(").concat(n,"개월-").concat(h,"개월)"):"".concat(r,"개월"),p="".concat(i.toLocaleString(),"원 \xd7 ").concat(t,"명 \xd7 ").concat(b),f="".concat(p," = ").concat(a.toLocaleString(),"원"),z="1. 목적: 학생 맞춤형 생활지도 및 학급경영 솔루션(내모) 도입을 통한 업무 효율화\n\n2. 품의 내역\n  가. 품명: 학급경영 솔루션 '내모' 이용 라이선스\n  나. 기간: ".concat(m,"\n  다. 총 소요액: 금 ").concat(a.toLocaleString(),"원 (금 ").concat(s,"원, 부가세 포함)\n  라. 산출 내역: ").concat(f,"  끝.");return{title:"[교원업무경감] ".concat(l,"학년도 학급경영 솔루션(내모) 도입 품의"),body:z,totalKrw:a,totalKorean:s,formulaText:p,calculationText:f,periodText:m}})(C),[C]);if(!t)return null;let Z=async()=>{try{let e="[제목]\n".concat(I.title,"\n\n[본문]\n").concat(I.body);await navigator.clipboard.writeText(e),S(!0),o("기안문이 복사되었습니다. K-에듀파인 본문에 붙여넣기(Ctrl+V)하세요.","success"),setTimeout(()=>S(!1),2e3)}catch(e){o("클립보드 복사에 실패했습니다.","error")}};return(0,i.jsx)(u.Z,{children:(0,i.jsx)("div",{className:"modal-viewport edufine-kit z-[120000] flex items-center justify-center bg-black/60 backdrop-blur-sm p-4 animate-in fade-in duration-150",onClick:e=>e.target===e.currentTarget&&n(),children:(0,i.jsxs)("div",{className:"relative w-full max-w-4xl bg-white dark:bg-[#111113] border border-zinc-200 dark:border-zinc-800 rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-full animate-in zoom-in-95 duration-150",onClick:e=>e.stopPropagation(),children:[(0,i.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-zinc-100 dark:border-zinc-800/80 bg-white dark:bg-[#111113]",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("h2",{className:"text-[17px] font-bold text-zinc-900 dark:text-white tracking-tight",children:"K-에듀파인 품의 기안문"}),(0,i.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-[11px] font-medium bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400",children:[(0,i.jsx)(h.Z,{size:12,className:"text-zinc-500 dark:text-zinc-400"}),"에듀집 등록완료"]})]}),(0,i.jsx)("p",{className:"text-[12.5px] text-zinc-500 dark:text-zinc-400 mt-0.5",children:"학교 예산 지출 품의를 위한 공문서 양식 및 산출내역입니다."})]}),(0,i.jsx)("button",{type:"button",onClick:n,"aria-label":"닫기",className:"p-1.5 text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800 transition",children:(0,i.jsx)(s.Z,{size:18})})]}),(0,i.jsxs)("div",{className:"flex-1 overflow-y-auto grid grid-cols-1 lg:grid-cols-12 divide-y lg:divide-y-0 lg:divide-x divide-zinc-200 dark:divide-zinc-800",children:[(0,i.jsxs)("div",{className:"lg:col-span-5 p-6 sm:p-8 flex flex-col justify-between bg-white dark:bg-[#111113]",children:[(0,i.jsxs)("div",{className:"space-y-7",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,i.jsxs)("label",{className:"text-[13px] font-semibold text-zinc-700 dark:text-zinc-300 flex items-center gap-1.5",children:[(0,i.jsx)(b.Z,{size:14,className:"text-zinc-400"}),"이용 인원"]}),(0,i.jsxs)("div",{className:"inline-flex items-center rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 p-0.5",children:[(0,i.jsx)("button",{type:"button",onClick:()=>m(e=>Math.max(1,e-1)),className:"p-1 text-zinc-500 hover:text-zinc-900 dark:hover:text-white rounded transition","aria-label":"인원 감소",children:(0,i.jsx)(p.Z,{size:13})}),(0,i.jsxs)("div",{className:"flex items-center justify-center px-1",children:[(0,i.jsx)("input",{type:"number",min:"1",max:"999",value:0===x?"":x,onChange:e=>{let t=parseInt(e.target.value,10);m(isNaN(t)?0:Math.max(0,Math.min(999,t)))},onBlur:()=>{x<1&&m(1)},className:"w-10 text-center text-[13px] font-semibold text-zinc-800 dark:text-zinc-200 bg-transparent border-none focus:outline-none focus:ring-1 focus:ring-zinc-400 dark:focus:ring-zinc-500 rounded p-0 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","aria-label":"이용 인원 직접 입력"}),(0,i.jsx)("span",{className:"text-[12px] font-medium text-zinc-400 dark:text-zinc-500 select-none",children:"명"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>m(e=>e+1),className:"p-1 text-zinc-500 hover:text-zinc-900 dark:hover:text-white rounded transition","aria-label":"인원 증가",children:(0,i.jsx)(f.Z,{size:13})})]})]}),(0,i.jsx)("div",{className:"flex items-center gap-1.5 mt-2.5",children:[1,5,10,20,30].map(e=>(0,i.jsxs)("button",{type:"button",onClick:()=>m(e),className:"flex-1 h-9 rounded-lg text-[12px] font-medium border transition duration-150 flex items-center justify-center ".concat(x===e?"bg-zinc-900 hover:bg-zinc-800 text-white dark:bg-zinc-100 dark:hover:bg-zinc-200 dark:text-zinc-900 border-zinc-900 dark:border-zinc-100 shadow-sm":"bg-zinc-50 hover:bg-zinc-100 text-zinc-600 hover:text-zinc-900 border-zinc-200 hover:border-zinc-300 dark:bg-zinc-900/50 dark:hover:bg-zinc-800 dark:text-zinc-400 dark:hover:text-zinc-200 dark:border-zinc-800"),children:[e,"명"]},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,i.jsxs)("label",{className:"text-[13px] font-semibold text-zinc-700 dark:text-zinc-300 flex items-center gap-1.5",children:[(0,i.jsx)(z.Z,{size:14,className:"text-zinc-400"}),"이용 기간"]}),(0,i.jsxs)("div",{className:"inline-flex items-center rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 p-0.5",children:[(0,i.jsx)("button",{type:"button",onClick:()=>y(e=>Math.max(1,e-1)),className:"p-1 text-zinc-500 hover:text-zinc-900 dark:hover:text-white rounded transition","aria-label":"기간 감소",children:(0,i.jsx)(p.Z,{size:13})}),(0,i.jsxs)("div",{className:"flex items-center justify-center px-1",children:[(0,i.jsx)("input",{type:"number",min:"1",max:"60",value:0===N?"":N,onChange:e=>{let t=parseInt(e.target.value,10);y(isNaN(t)?0:Math.max(0,Math.min(60,t)))},onBlur:()=>{N<1&&y(1)},className:"w-8 text-center text-[13px] font-semibold text-zinc-800 dark:text-zinc-200 bg-transparent border-none focus:outline-none focus:ring-1 focus:ring-zinc-400 dark:focus:ring-zinc-500 rounded p-0 [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","aria-label":"이용 기간 직접 입력"}),(0,i.jsx)("span",{className:"text-[12px] font-medium text-zinc-400 dark:text-zinc-500 select-none",children:"개월"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>y(e=>e+1),className:"p-1 text-zinc-500 hover:text-zinc-900 dark:hover:text-white rounded transition","aria-label":"기간 증가",children:(0,i.jsx)(f.Z,{size:13})})]})]}),(0,i.jsx)("div",{className:"grid grid-cols-4 gap-1.5 mt-2.5",children:[{label:"1개월",months:1},{label:"3개월",months:3},{label:"6개월",months:6},{label:"12개월",months:12}].map(e=>(0,i.jsx)("button",{type:"button",onClick:()=>y(e.months),className:"h-9 rounded-lg text-[12px] font-medium border text-center transition duration-150 flex items-center justify-center ".concat(N===e.months?"bg-zinc-900 hover:bg-zinc-800 text-white dark:bg-zinc-100 dark:hover:bg-zinc-200 dark:text-zinc-900 border-zinc-900 dark:border-zinc-100 shadow-sm":"bg-zinc-50 hover:bg-zinc-100 text-zinc-600 hover:text-zinc-900 border-zinc-200 hover:border-zinc-300 dark:bg-zinc-900/50 dark:hover:bg-zinc-800 dark:text-zinc-400 dark:hover:text-zinc-200 dark:border-zinc-800"),children:(0,i.jsx)("span",{children:e.label})},e.months))}),(0,i.jsx)("p",{className:"text-[11.5px] text-zinc-500 dark:text-zinc-400 mt-2",children:"12개월 선택 시 2개월 무료"})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("div",{className:"text-[12.5px] font-medium text-zinc-500 dark:text-zinc-400",children:"소요 예산 (VAT 포함)"}),(0,i.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-2 gap-y-1",children:[(0,i.jsxs)("span",{className:"text-[12px] text-zinc-500 dark:text-zinc-400 font-mono",children:[I.formulaText," ="]}),(0,i.jsxs)("span",{className:"text-[18px] font-bold text-zinc-900 dark:text-white tracking-tight",children:["₩",I.totalKrw.toLocaleStr
1ing(),"원"]})]})]})]}),(0,i.jsxs)("div",{className:"pt-8 space-y-2",children:[(0,i.jsxs)("div",{className:"text-[12px] font-semibold text-zinc-600 dark:text-zinc-400 flex items-center gap-1.5",children:[(0,i.jsx)("span",{className:"w-1 h-1 rounded-full bg-zinc-400 dark:bg-zinc-500"}),"행정실 제출 증빙 서류"]}),(0,i.jsxs)("a",{href:"/docs/학습지원-소프트웨어-체크리스트.pdf",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-[12px] text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-200 underline underline-offset-4",children:[(0,i.jsx)(g.Z,{size:13}),"학습지원 소프트웨어 자체체크리스트 (PDF)"]})]})]}),(0,i.jsxs)("div",{className:"lg:col-span-7 p-6 sm:p-8 flex flex-col justify-between bg-zinc-50/50 dark:bg-[#151518]/50",children:[(0,i.jsxs)("div",{className:"space-y-4 select-text",children:[(0,i.jsxs)("div",{className:"pb-3 border-b border-zinc-200 dark:border-zinc-800",children:[(0,i.jsx)("div",{className:"text-[11px] font-semibold text-zinc-400 dark:text-zinc-500 mb-1",children:"기안문 제목"}),(0,i.jsx)("div",{className:"font-bold text-[14px] text-zinc-900 dark:text-white leading-snug whitespace-nowrap overflow-hidden text-ellipsis",children:I.title})]}),(0,i.jsx)("div",{className:"whitespace-pre-wrap font-sans text-[13px] leading-relaxed text-zinc-800 dark:text-zinc-200 space-y-2",children:I.body})]}),(0,i.jsx)("div",{className:"pt-6 mt-6 border-t border-zinc-200 dark:border-zinc-800 flex items-center justify-end",children:(0,i.jsxs)("button",{type:"button",onClick:Z,className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl text-[13px] font-semibold transition-colors duration-150 shadow-sm ".concat(w?"bg-emerald-600 text-white":"bg-zinc-900 text-white hover:bg-zinc-800 active:bg-zinc-950 dark:bg-zinc-100 dark:text-zinc-900 dark:hover:bg-zinc-200 dark:active:bg-zinc-300"),children:[w?(0,i.jsx)(c.Z,{size:14}):(0,i.jsx)(j.Z,{size:14}),w?"복사 완료":"에듀파인 기안문 복사"]})})]})]})]})})})}function y(e){let{orderId:t,buyer:n}=e,[a,s]=(0,r.useState)((null==n?void 0:n.organization)||""),[c,l]=(0,r.useState)((null==n?void 0:n.registrationNumber)||""),[d,o]=(0,r.useState)(!1),[x,u]=(0,r.useState)(""),[m,h]=(0,r.useState)(""),b="mt-1 w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-100";return(0,i.jsxs)("details",{className:"mt-3 text-sm text-zinc-600 dark:text-zinc-300",children:[(0,i.jsx)("summary",{className:"cursor-pointer",children:"영수증\xb7청구서 구매 기관 정보"}),(0,i.jsxs)("form",{className:"mt-3 space-y-3",onSubmit:async e=>{if(e.preventDefault(),!d){o(!0),h(""),u("");try{let e=await fetch("/api/payments/documents",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderId:t,organization:a,registrationNumber:c})}),n=await e.json();if(!e.ok)throw Error(n.error||"저장하지 못했습니다.");s(n.buyer.organization),l(n.buyer.registrationNumber),u("저장했습니다. 이제 다운로드하는 두 문서에 반영됩니다.")}catch(e){h(e instanceof Error?e.message:"저장하지 못했습니다.")}finally{o(!1)}}},children:[(0,i.jsx)("p",{className:"text-xs text-zinc-500",children:"기관 제출용 정보입니다. 개인 구매라면 비워 두세요."}),(0,i.jsxs)("label",{className:"block",children:["학교\xb7기관명 (선택)",(0,i.jsx)("input",{value:a,onChange:e=>s(e.target.value),maxLength:60,className:b,disabled:d})]}),(0,i.jsxs)("label",{className:"block",children:["사업자등록번호\xb7고유번호 (선택)",(0,i.jsx)("input",{value:c,onChange:e=>l(e.target.value),maxLength:12,inputMode:"numeric",placeholder:"000-00-00000",className:b,disabled:d})]}),(0,i.jsx)("button",{type:"submit",disabled:d,className:"rounded-lg bg-zinc-900 px-3 py-2 text-white disabled:opacity-50 dark:bg-zinc-100 dark:text-zinc-900",children:d?"저장 중…":"기관 정보 저장"}),x&&(0,i.jsx)("p",{role:"status",className:"text-xs text-emerald-700 dark:text-emerald-400",children:x}),m&&(0,i.jsx)("p",{role:"alert",className:"text-xs text-red-600",children:m})]})]})}var w=n(28242);function S(){let[e,t]=(0,r.useState)([]),[n,a]=(0,r.useState)(1),[s,c]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!0),[o,x]=(0,r.useState)(""),[u,m]=(0,r.useState)(0);return(0,r.useEffect)(()=>{let e=new AbortController;return d(!0),x(""),(async()=>{try{let i=await fetch("/api/payments/history?page=".concat(n),{cache:"no-store",signal:e.signal}),r=await i.json();if(!i.ok)throw Error(r.error||"결제 내역을 불러오지 못했습니다.");if(e.signal.aborted)return;t(r.payments),c(r.hasMore)}catch(t){e.signal.aborted||x(t instanceof Error?t.message:"결제 내역을 불러오지 못했습니다.")}
1finally{e.signal.aborted||d(!1)}})(),()=>e.abort()},[n,u]),(0,i.jsxs)("section",{"aria-labelledby":"payment-history-title",className:"mb-8 rounded-xl border border-zinc-200 bg-white p-5 dark:border-zinc-700 dark:bg-zinc-900 sm:p-6",children:[(0,i.jsx)("h2",{id:"payment-history-title",className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"결제 내역 및 증빙 서류"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-zinc-500 dark:text-zinc-400",children:"결제한 이용권의 영수증과 청구서를 PDF로 다운로드하세요."}),l?(0,i.jsx)("p",{role:"status",className:"mt-5 text-sm text-zinc-500",children:"결제 내역을 불러오는 중…"}):o?(0,i.jsxs)("div",{className:"mt-5",children:[(0,i.jsx)("p",{role:"alert",className:"text-sm text-red-600 dark:text-red-400",children:o}),(0,i.jsx)("button",{type:"button",onClick:()=>m(e=>e+1),className:"mt-2 text-sm font-medium text-blue-600 dark:text-blue-400",children:"다시 시도"})]}):0===e.length?(0,i.jsx)("p",{className:"mt-5 text-sm leading-relaxed text-zinc-500 dark:text-zinc-400",children:"이 계정으로 결제한 내역이 없습니다. 이용권 코드를 받으셨다면 구매한 선생님께 증빙 서류를 요청해 주세요."}):(0,i.jsx)("ul",{className:"mt-3 divide-y divide-zinc-100 dark:divide-zinc-800",children:e.map(e=>(0,i.jsxs)("li",{className:"flex flex-col gap-3 py-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,i.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,i.jsxs)("p",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-100",children:[new Date(e.createdAt).toLocaleDateString("ko-KR",{timeZone:"Asia/Seoul"})," \xb7 ₩",e.amount.toLocaleString("ko-KR")]}),(0,i.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:[e.userCount?"".concat(e.userCount,"명"):"",e.subscriptionDuration?"".concat(e.subscriptionDuration,"개월"):""].filter(Boolean).join(" \xb7 ")||"프로 이용권"}),(0,i.jsx)("p",{className:"mt-1 break-all text-xs text-zinc-400",children:e.orderId}),(0,i.jsx)(y,{orderId:e.orderId,buyer:e.buyer})]}),(0,i.jsxs)("div",{className:"flex shrink-0 flex-wrap gap-2 sm:max-w-[300px]",children:[(0,i.jsx)(w.Z,{orderId:e.orderId}),(0,i.jsx)(w.Z,{orderId:e.orderId,kind:"invoice"}),e.hasOfficialReceipt&&(0,i.jsx)("a",{href:"/api/payments/documents?".concat(new URLSearchParams({orderId:e.orderId,kind:"official"})),target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center rounded-lg border border-zinc-200 px-3 py-2.5 text-sm font-medium text-zinc-700 dark:border-zinc-600 dark:text-zinc-100",children:"공식 결제 영수증 보기 ↗"})]})]},e.orderId))}),(n>1||s)&&(0,i.jsxs)("div",{className:"mt-3 flex items-center justify-end gap-4 text-sm text-zinc-700 dark:text-zinc-200",children:[(0,i.jsx)("button",{type:"button",disabled:l||1===n,onClick:()=>a(e=>e-1),className:"disabled:opacity-40",children:"이전"}),(0,i.jsxs)("span",{"aria-live":"polite",children:[n," 페이지"]}),(0,i.jsx)("button",{type:"button",disabled:l||!!o||!s,onClick:()=>a(e=>e+1),className:"disabled:opacity-40",children:"다음"})]})]})}let C=["파일 업로드 최대 5MB","교무 일정 관리","학생 출결 관리","업무 노트","설문 조사 및 통계","맞춤형 대시보드","다양한 학급도구\n(자리 배치, 청소 구역, 랜덤 뽑기 등)"],I=["기본 요금제의 모든 기능 이용","파일 업로드 무제한","학생 성적 관리 (내신, 모의고사)","생활기록부 AI 요약","대학 추천 기능","교무실, 학교 단위로 이용 가능"];function Z(e){let{text:t}=e;return(0,i.jsxs)("li",{className:"flex items-start gap-3.5 group",children:[(0,i.jsx)("span",{"aria-hidden":!0,className:"mt-[9px] shrink-0 w-1.5 h-1.5 rounded-full bg-zinc-300 dark:bg-zinc-600 group-hover:bg-zinc-500 dark:group-hover:bg-zinc-400 transition-colors"}),(0,i.jsx)("span",{className:"text-[14.5px] leading-relaxed text-zinc-500 dark:text-zinc-400 group-hover:text-zinc-900 dark:group-hover:text-zinc-200 transition-colors whitespace-pre-line",children:t})]})}function M(){var e,t,n,h,b;let[p,f]=(0,r.useState)(!1),[z,g]=(0,r.useState)(!1),{data:j,status:k}=(0,a.kP)(),{unitPrice:v,error:y}=(0,x.V)(null==j?void 0:null===(e=j.user)||void 0===e?void 0:e.id),w="unauthenticated"===k?d.XU.toLocaleStr
1ing():null!==(b=null==v?void 0:v.toLocaleString())&&void 0!==b?b:"—",M=null!==v&&v!==d.XU,E=(0,l.Om)(null==j?void 0:null===(t=j.user)||void 0===t?void 0:t.paidUntil)||(null==j?void 0:null===(n=j.user)||void 0===n?void 0:n.recurringStatus)==="ACTIVE";return(0,i.jsxs)(u.Z,{children:[(0,i.jsxs)("div",{className:"fixed inset-0 z-[99999] bg-[#fafafa] dark:bg-[#09090b] flex flex-col overflow-hidden selection:bg-[#10a37f]/30",children:[(0,i.jsx)("button",{"aria-label":"닫기",onClick:()=>{window.dispatchEvent(new CustomEvent("navigate-view",{detail:"dashboard"}))},className:"absolute top-6 right-6 z-[100000] p-2 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 hover:bg-zinc-100 dark:hover:bg-zinc-800 rounded-full transition",children:(0,i.jsx)(s.Z,{size:24})}),(0,i.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,i.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-10 md:py-16 lg:py-20",children:[(0,i.jsxs)("div",{className:"text-center mb-8",children:[(0,i.jsx)("h1",{className:"text-[28px] md:text-[34px] font-bold text-zinc-900 dark:text-white mb-4 tracking-tight",children:"더 적은 시간, 더 높은 생산성"}),(0,i.jsx)("p",{className:"text-zinc-500 text-lg md:text-xl max-w-2xl mx-auto leading-relaxed",children:"우리 학교 선생님들에게 최적의 교무수첩을 제공해주세요"})]}),(0,i.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-x-7 gap-y-2.5 mb-8",children:[(0,i.jsxs)("span",{className:"inline-flex items-center gap-2 text-[13px] font-semibold text-zinc-600 dark:text-zinc-400",children:[(0,i.jsx)(c.Z,{size:15,className:"text-blue-600 dark:text-blue-500 shrink-0"}),"에듀집 및 학습지원 소프트웨어 등록완료"]}),(0,i.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"inline-flex items-center gap-2 text-[13px] font-semibold text-blue-600 dark:text-blue-400 hover:underline cursor-pointer group",children:[(0,i.jsx)(c.Z,{size:15,className:"text-blue-600 dark:text-blue-500 shrink-0"}),(0,i.jsx)("span",{children:"학교 예산 결제 가능 (기안문 받기 ↗)"})]})]}),(null==j?void 0:null===(h=j.user)||void 0===h?void 0:h.id)&&(0,i.jsx)(S,{},j.user.id),(0,i.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 items-stretch pt-2",children:[(0,i.jsxs)("div",{className:"relative flex flex-col border border-zinc-200 dark:border-zinc-800 rounded-2xl p-8 bg-white dark:bg-[#18181b] shadow-sm min-h-[540px]",children:[(0,i.jsxs)("div",{className:"mb-10",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,i.jsx)("h2",{className:"text-[24px] font-bold text-zinc-900 dark:text-white",children:"기본"}),!E&&(0,i.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 rounded-full text-[12px] font-bold bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-300 border border-zinc-200 dark:border-zinc-700",children:"이용 중"})]}),(0,i.jsx)("div",{className:"flex items-baseline gap-1 mb-2",children:(0,i.jsx)("span",{className:"text-[44px] font-bold text-zinc-900 dark:text-white leading-none",children:"무료"})}),(0,i.jsx)("p",{className:"text-[15px] font-medium text-zinc-500 mt-4 leading-relaxed",children:"나만의 교무수첩을 무료로 시작하세요"})]}),(0,i.jsx)("button",{disabled:!0,"aria-hidden":!0,className:"invisible w-full py-3 px-10 border rounded-xl text-[15px] font-bold mb-10",children:"이용 중"}),(0,i.jsx)("ul",{className:"space-y-4 flex-1",children:C.map((e,t)=>(0,i.jsx)(Z,{text:e},t))})]}),(0,i.jsxs)("div",{className:"relative flex flex-col border-2 border-zinc-900 dark:border-zinc-500 rounded-2xl p-8 bg-white dark:bg-[#18181b] shadow-sm min-h-[540px]",children:[(0,i.jsxs)("div",{className:"mb-10",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,i.jsx)("h2",{className:"text-[24px] font-bold text-zinc-900 dark:text-white",children:"프로"}),E&&(0,i.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 rounded-full text-[12px] font-bold bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-300 border border-zinc-200 dark:border-zinc-700",children:"이용 중"})]}),(0,i.jsxs)("div",{className:"flex items-baseline gap-1 mb-2",children:[(0,i.jsx)("span",{className:"text-[20px] font-semibold text-zinc-900 dark:text-white",children:"—"===w?"":"₩"}),(0,i.jsx)("span",{className:"text-[44px] font-bold text-zinc-900 dark:text-white leading-none tracking-tight",children:w}),(0,i.jsx)("div",{className:"ml-2 text-[12px] font-medium text-zinc-500",children:M?"일시불 \xb7 월 / 인당":"월 / 인당"})]}),o.As&&M&&(0,i.jsxs)("p",{className:"text-[13px] text-zinc-500",children:["정기 구독은 월 ₩",d.XU.toLocaleStr
1ing()," / 인"]}),y&&(0,i.jsx)("p",{className:"text-[13px] text-red-600",children:"요금을 불러오지 못했습니다. 구매 화면에서 다시 확인해 주세요."}),(0,i.jsx)("p",{className:"text-[15px] font-medium text-zinc-600 dark:text-zinc-400 mt-4 leading-relaxed",children:"고도화된 AI 분석 기반의 맞춤형 솔루션"}),(0,i.jsx)("p",{className:"mt-3 text-[13px] font-medium text-zinc-500 dark:text-zinc-400 leading-relaxed",children:"6개월 이상 결제 시 AI 크레딧 100개 증정"})]}),(0,i.jsxs)("div",{className:"mb-10 space-y-2",children:[(0,i.jsx)("button",{onClick:()=>{window.dispatchEvent(new CustomEvent("navigate-view",{detail:"checkout"}))},className:"btn-primary-solid w-full py-3 px-10 rounded-xl text-[15px] font-bold transition-colors duration-150 text-center shadow-sm",children:E?"기간 연장하기":"우리 학교 시작하기"}),(0,i.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"w-full text-center py-1 text-[12.5px] font-medium text-zinc-500 hover:text-blue-600 dark:text-zinc-400 dark:hover:text-blue-400 transition-colors inline-flex items-center justify-center gap-1 group",children:[(0,i.jsx)("span",{children:"행정실 제출 서류가 필요하신가요?"}),(0,i.jsx)("span",{className:"underline underline-offset-2 font-semibold text-zinc-700 dark:text-zinc-300 group-hover:text-blue-600 dark:group-hover:text-blue-400",children:"기안문\xb7산출내역 받기"})]})]}),(0,i.jsx)("ul",{className:"space-y-4 flex-1",children:I.map((e,t)=>(0,i.jsx)(Z,{text:e},t))})]})]}),(0,i.jsx)("div",{className:"mt-8",children:(0,i.jsxs)("p",{className:"text-zinc-500 text-sm",children:["구독 이용권 코드가 있으신가요? "," ",(0,i.jsx)("button",{onClick:()=>f(!0),className:"text-blue-500 font-semibold hover:underline underline-offset-4",children:"이용권 코드 등록"})]})})]})})]}),(0,i.jsx)(m.g,{isOpen:p,onClose:()=>f(!1)}),(0,i.jsx)(N,{isOpen:z,onClose:()=>g(!1)})]})}},76919:function(e,t,n){n.d(t,{V:function(){return r}});var i=n(2265);function r(e){let[t,n]=(0,i.useState)(null),[r,a]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(!e){n(null),a(null);return}let t=new AbortController;return a(null),fetch("/api/payments/one-time-price",{cache:"no-store",signal:t.signal}).then(async t=>{if(!t.ok)throw Error("Failed to load one-time price");let i=await t.json();if(!Number.isSafeInteger(i.unitPrice)||i.unitPrice<=0)throw Error("Invalid one-time price");n({userId:e,unitPrice:i.unitPrice})}).catch(t=>{"AbortError"!==t.name&&a(e)}),()=>t.abort()},[e]),{unitPrice:t&&t.userId===e?t.unitPrice:null,error:r===e}}},98907:function(e,t,n){n.d(t,{$L:function(){return o},As:function(){return a},IL:function(){return c},Kl:function(){return s},_8:function(){return r},_l:function(){return i},gA:function(){return l},zN:function(){return d}});let i="naemo-checkout-draft",r="naemo-credit-draft",a=!1;function s(e){return a&&"SUBSCRIPTION"===e?"SUBSCRIPTION":"ONETIME"}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return"number"==typeof e&&Number.isSafeInteger(e)&&e>0?e:t}function l(e){return"string"==typeof e&&["evaluation-record","behavior-record","activity"].includes(e)?e:"evaluation-record"}function d(e){try{let t=JSON.parse(sessionStorage.getItem(e)||"null");return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch(e){return null}}function o(e,t){try{sessionStorage.setItem(e,JSON.stringify(t))}catch(e){}}},93292:function(e,t,n){n.d(t,{ES:function(){return a},Hi:function(){return c},NN:function(){return s},XU:function(){return i},d5:function(){return r}});let i=4900;function r(e){return!Number.isFinite(e)||e<1?0:2*Math.floor(e/12)}function a(e){return e-r(e)}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i;return e*n*a(t)}function c(e){return e>=12?200:e>=6?100:0}}}]);

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.