PageSourceSearch

https://naemo.ai/_next/static/chunks/9131.f72031a55da6b418.js

js naemo.ai collected 2026-09-24 14:32:04 UTC 16,958 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9131],{76980:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(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"}]])},9131:function(e,t,n){n.r(t),n.d(t,{default:function(){return k}});var r=n(57437),s=n(2265),l=n(95805),i=n(40875),a=n(30401),o=n(76980);let c=(0,n(79205).Z)("GripHorizontal",[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]]);var d=n(78867),x=n(18930),u=n(32489),h=n(99397),p=n(27526),m=n(93448),b=n(2665),f=n(33245),g=n(34137),v=n(39561);function z(e){let{open:t,onClose:n,onConfirm:s}=e;(0,g.j)(n,t);let l=(0,v.g)();return t?(0,r.jsx)("div",{className:"modal-viewport z-[200] flex items-center justify-center bg-black/60 backdrop-blur-sm p-4",onClick:n,children:(0,r.jsxs)("div",{className:"bg-white dark:bg-[#0D0D0D] rounded-2xl p-6 w-full max-w-md 
1shadow-2xl border border-zinc-200 dark:border-white/10",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 mb-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-zinc-100 dark:bg-white/5 flex items-center justify-center shrink-0",children:(0,r.jsx)(f.Z,{size:20,className:"text-zinc-700 dark:text-zinc-300"})}),(0,r.jsxs)("div",{className:"flex-1 pt-0.5",children:[(0,r.jsx)("h3",{className:"text-base font-bold text-zinc-900 dark:text-white mb-1",children:"파일 첨부를 허용하시겠습니까?"}),(0,r.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed",children:"무료 플랜 사용자입니다."})]})]}),(0,r.jsx)("div",{className:"bg-zinc-50 dark:bg-white/5 border border-zinc-100 dark:border-white/10 rounded-xl p-4 mb-5",children:(0,r.jsxs)("p",{className:"text-xs text-zinc-600 dark:text-zinc-300 leading-relaxed",children:["학생이 제출한 첨부파일은 ",(0,r.jsx)("strong",{className:"font-bold text-zinc-900 dark:text-white",children:"선생님의 개인 저장 용량(5MB)"}),"에 포함됩니다. 용량이 가득 차면 새로운 첨부 업로드가 거부될 수 있습니다.",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),l?(0,r.jsx)("span",{className:"font-medium text-zinc-900 dark:text-white",children:"프로 플랜(유료)"}):(0,r.jsx)("button",{type:"button",onClick:()=>{window.dispatchEvent(new CustomEvent("navigate-view",{detail:"plans"})),n()},className:"text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300 font-medium underline-offset-2 hover:underline transition-colors text-left",children:"프로 플랜(유료)"}),(0,r.jsx)("span",{className:"text-zinc-500 dark:text-zinc-400",children:"을 이용하시면 용량 제한 없이 사용할 수 있습니다."})]})}),(0,r.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,r.jsx)("button",{onClick:n,className:"px-4 py-2 text-sm font-medium text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-white/5 rounded-lg transition-colors",children:"취소"}),(0,r.jsx)("div",{role:"button",tabIndex:0,onClick:s,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s())},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#09090b"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=""},className:"px-4 py-2 text-sm font-bold rounded-lg transition-colors cursor-pointer select-none bg-zinc-900 dark:bg-zinc-100 [color:#fff] dark:[color:#18181b]",children:"허용하기"})]})]})}):null}function k(e){var t,n;let{data:f,onChange:g,classList:v=[]}=e,{data:k}=(0,p.kP)(),w=(0,b.O)(null==k?void 0:null===(t=k.user)||void 0===t?void 0:t.paidUntil),j=null!==(n=f.allowAttachments)&&void 0!==n&&n,[N,y]=(0,s.useState)(!1),C=e=>{if(e&&!w){y(!0);return}g("allowAttachments",e)}
1,D=f.targetClasses||[],[E,Z]=(0,s.useState)(!1),_=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&Z(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let M=v.includes("담임 학급")?v:["담임 학급",...v],T=e=>{let t=f.targetClasses||[];t.includes(e)?g("targetClasses",t.filter(t=>t!==e)):g("targetClasses",[...t,e])},S=0===D.length?"학급 선택":1===D.length?D[0]:"".concat(D[0]," 외 ").concat(D.length-1),q=f.questions||[],I=e=>{g("questions",e)},A=(e,t)=>{let n=[...q];n[e]={...n[e],...t},I(n)},L=e=>{I(q.filter((t,n)=>n!==e))},B=e=>{let t=[...q],{id:n,...r}=q[e];t.splice(e+1,0,{...r}),I(t.map((e,t)=>({...e,order:t})))},[H,O]=(0,s.useState)(null),[P,R]=(0,s.useState)(null),[K,F]=(0,s.useState)(null),G=(e,t)=>{R(t),e.dataTransfer.effectAllowed="move"},U=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect="move";let n=e.currentTarget.getBoundingClientRect(),r=n.top+n.height/2,s=e.clientY<r?"before":"after";if(P===t){F(null);return}F({idx:t,position:s})},W=()=>{F(null)},Y=e=>{if(e.preventDefault(),null===P||!K)return;let t=K.idx;"after"===K.position&&t++,t>P&&t--;let n=[...q],[r]=n.splice(P,1);n.splice(t,0,r),I(n.map((e,t)=>({...e,order:t}))),R(null),F(null)},J=()=>{R(null),F(null)};return(0,r.jsxs)("div",{className:"h-full flex flex-col bg-white dark:bg-[#0c0c0e]",children:[(0,r.jsx)("div",{className:"flex-1 overflow-y-auto custom-scrollbar px-4 md:px-6 pt-20 pb-12 md:py-8",children:(0,r.jsxs)("div",{className:"w-full max-w-4xl mx-auto space-y-4 pb-12",children:[(0,r.jsxs)("div",{className:"px-1 md:px-2 pb-2.5 border-b border-zinc-200 dark:border-white/10",children:[(0,r.jsx)("input",{type:"text",value:f.title||"",onChange:e=>g("title",e.target.value),placeholder:"설문 제목",className:"w-full text-xl md:text-2xl font-bold bg-transparent border border-transparent placeholder-zinc-400 dark:placeholder-zinc-500 text-zinc-900 dark:text-white focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/35 rounded p-0 mb-2"}),(0,r.jsx)("textarea",{value:f.description||"",onChange:e=>g("description",e.target.value),placeholder:"학생에게 보여줄 설문 소개를 적어주세요",rows:1,onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=t.scrollHeight+"px"},className:"w-full bg-transparent border border-transparent placeholder-zinc-400 dark:placeholder-zinc-600 text-zinc-500 dark:text-zinc-400 focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/35 rounded p-0 resize-none h-auto min-h-[24px] text-[16px] md:text-sm"}),(0,r.jsxs)("div",{className:"mt-3 pt-2.5 border-t border-zinc-100 dark:border-white/5 grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-4 md:gap-y-0",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 h-7",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 leading-none shrink-0",children:[(0,r.jsx)(l.Z,{size:13,className:"text-zinc-400 shrink-0"}),(0,r.jsx)("span",{className:"text-sm text-zinc-700 dark:text-zinc-300 font-medium leading-none",children:"대상 학급"})]}),(0,r.jsxs)("div",{className:"relative shrink-0",ref:_,children:[(0,r.jsxs)("button",{type:"button",onClick:()=>Z(!E),className:"h-7 flex items-center gap-1.5 rounded-lg px-3 bg-zinc-50 dark:bg-[#27272a] border border-zinc-200 dark:border-white/10 hover:bg-zinc-100 dark:hover:bg-white/5 transition-colors",children:[(0,r.jsx)("span",{className:(0,m.cn)("text-xs font-medium max-w-[120px] truncate",0===D.length?"text-zinc-400 dark:text-zinc-500":"text-zinc-900 dark:text-white"),children:S}),(0,r.jsx)(i.Z,{size:12,className:(0,m.cn)("text-zinc-400 transition-transform",E&&"rotate-180")})]}),E&&(0,r.jsx)("div",{className:"absolute top-full right-0 mt-1.5 w-44 bg-white dark:bg-[#1c1c1e] border border-zinc-200 dark:border-white/10 rounded-xl shadow-lg z-50 overflow-hidden py-1 animate-in fade-in slide-in-from-top-2 duration-200",children:(0,r.jsx)("div",{className:"max-h-[260px] overflow-y-auto custom-scrollbar",children:M.map(e=>{let t=D.includes(e);return(0,r.jsxs)("button",{type:"button",onClick:()=>T(e),className:"w-full px-3 py-2 flex items-center justify-between hover:bg-zinc-50 dark:hover:bg-white/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:(0,m.cn)("text-[13px] font-medium",t?"text-blue-500 font-bold":"text-zinc-600 dark:text-zinc-400"),children:e}),t&&(0,r.jsx)(a.Z,{size:13,className:"text-blue-500"})]},e)})})})]})]}),(0,r.jsx)("p",{className:"mt-1.5 text-xs text-zinc-400 dark:text-zinc-500 leading-relaxed",children:"설문을 받을 학급을 선택하세요. 복수 선택 가능"})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 h-7",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 leading-none shrink-0",children:[(0,r.jsx)(o.Z,{size:13,className:"text-zinc-400 shrink-0"}),(0,r.jsx)("span",{className:"text-sm text-zinc-700 dark:text-zinc-300 font-medium leading-none",children:"파일 첨부 허용"})]}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":j,onClick:()=>C(!j),className:(0,m.cn)("relative inline-flex h-4 w-7 shrink-0 rounded-full transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500",j?"bg-blue-500":"bg-zinc-200 dark:bg-zinc-700"),children:(0,r.jsx)("span",{className:(0,m.cn)("inline-block h-3 w-3 transform rounded-full bg-white shadow-sm transition-transform mt-0.5",j?"translate-x-3.5":"translate-x-0.5")})})]}),(0,r.jsx)("p",{className:"mt-1.5 text-xs text-zinc-400 dark:text-zinc-500 leading-relaxed",children:"학생이 응답할 때 파일ì
1„ 함께 제출할 수 있습니다. 1인당 최대 3개, 각 5MB 이하."})]})]})]}),q.map((e,t)=>{var n;return(0,r.jsxs)("div",{draggable:H===t,onDragStart:e=>G(e,t),onDragOver:e=>U(e,t),onDragLeave:W,onDragEnd:J,onDrop:Y,className:(0,m.cn)("bg-white dark:bg-[#18181b] rounded-lg border border-zinc-200 dark:border-white/5 p-4 shadow-sm relative group transition hover:border-zinc-300 dark:hover:border-white/10 hover:shadow-md",P===t?"opacity-40 border-blue-500/50":""),children:[(null==K?void 0:K.idx)===t&&"before"===K.position&&(0,r.jsx)("div",{className:"absolute -top-3 left-0 right-0 h-0.5 bg-blue-500 shadow-[0_0_8px_rgba(59,130,246,0.6)] rounded-full z-10"}),(null==K?void 0:K.idx)===t&&"after"===K.position&&(0,r.jsx)("div",{className:"absolute -bottom-3 left-0 right-0 h-0.5 bg-blue-500 shadow-[0_0_8px_rgba(59,130,246,0.6)] rounded-full z-10"}),(0,r.jsx)("div",{"data-drag-handle":"true",className:"absolute top-1.5 left-1/2 -translate-x-1/2 flex items-center justify-center cursor-grab active:cursor-grabbing",onMouseEnter:()=>O(t),onMouseLeave:()=>O(null),children:(0,r.jsx)(c,{size:16,className:"text-zinc-300 dark:text-zinc-500 group-hover:text-zinc-400 dark:group-hover:text-zinc-300 transition-colors"})}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"w-5 h-5 rounded-full bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center text-[10px] text-zinc-500 dark:text-zinc-400 font-bold shrink-0",children:t+1}),(0,r.jsx)("button",{onClick:()=>A(t,{type:"text"}),className:(0,m.cn)("text-xs transition-colors","select"!==e.type?"text-zinc-900 dark:text-white font-semibold":"text-zinc-400 dark:text-zinc-500 font-normal hover:text-zinc-600 dark:hover:text-zinc-400"),children:"기입형"}),(0,r.jsx)("div",{className:"h-2.5 w-[1px] bg-zinc-200 dark:bg-zinc-700"}),(0,r.jsx)("button",{onClick:()=>A(t,{type:"select",options:e.options&&e.options.length>0?e.options:[""]}),className:(0,m.cn)("text-xs transition-colors","select"===e.type?"text-zinc-900 dark:text-white font-semibold":"text-zinc-400 dark:text-zinc-500 font-normal hover:text-zinc-600 dark:hover:text-zinc-400"),children:"선택형"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{"aria-label":"문항 복제",onClick:()=>B(t),className:"text-zinc-400 dark:text-zinc-500 hover:text-blue-400 transition-colors p-1",children:(0,r.jsx)(d.Z,{size:14})}),(0,r.jsx)("button",{"aria-label":"질문 삭제",onClick:()=>L(t),className:"text-zinc-400 dark:text-zinc-500 hover:text-red-400 transition-colors p-1",children:(0,r.jsx)(x.Z,{size:14})})]})]}),(0,r.jsx)("textarea",{value:e.question,onChange:e=>A(t,{question:e.target.value}),placeholder:"질문 내용을 입력하세요",rows:1,onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=t.scrollHeight+"px"},className:"w-full text-[16px] md:text-sm font-medium bg-[#fafaf9] dark:bg-[#27272a]/30 text-zinc-900 dark:text-white border border-zinc-200 dark:border-transparent focus:bg-white dark:focus:bg-[#27272a] focus:border-blue-500/50 rounded-md px-3 py-2 mb-2 transition placeholder-zinc-400 dark:placeholder-white/20 focus:outline-none focus:ring-1 focus:ring-blue-500/35 resize-none"}),(0,r.jsx)("textarea",{value:e.description||"",onChange:e=>A(t,{description:e.target.value||void 0}),placeholder:"부연 설명 (선택사항)",rows:1,onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=t.scrollHeight+"px"},className:"w-full text-[16px] md:text-sm bg-transparent border border-transparent placeholder-zinc-300 dark:placeholder-zinc-700 text-zinc-500 dark:text-zinc-400 focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/35 rounded p-0 px-1 resize-none leading-relaxed"}),"select"===e.type&&(0,r.jsxs)("div",{className:"pl-3 mt-3 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,r.jsx)("input",{type:"checkbox",id:"allow-multiple-".concat(t),checked:e.allowMultiple||!1,onChange:e=>A(t,{allowMultiple:e.target.checked}),className:"w-3.5 h-3.5 rounded border-zinc-500 text-blue-500 focus:ring-offset-0 focus:ring-1 focus:ring-blue-500 mb-0.5"}),(0,r.jsx)("label",{htmlFor:"allow-multiple-".concat(t),className:"text-xs text-zinc-500 cursor-pointer select-none",children:"복수 선택 허용"})]}),null===(n=e.options)||void 0===n?void 0:n.map((n,s)=>(0,r.jsxs)("div",{className:"flex items-center gap-2 group/opt max-w-full",children:[(0,r.jsx)("div",{className:"w-1.5 h-1.5 rounded-full border border-zinc-500 bg-transparent flex-shrink-0"}),(0,r.jsxs)("div",{className:"grid max-w-full",children:[(0,r.jsx)("span",{className:"col-start-1 row-start-1 invisible whitespace-pre px-0 py-0.5 text-[16px] md:text-sm font-normal",children:n}),(0,r.jsx)("input",{id:"option-input-".concat(t,"-").concat(s),type:"text",value:n,onChange:n=>{let r=[...e.options||[]];r[s]=n.target.value,A(t,{options:r})},onKeyDown:n=>{if("Enter"===n.key){n.preventDefault();let r=[...e.options||[]];r.splice(s+1,0,""),A(t,{options:r}),setTimeout(()=>{var e;null===(e=document.getElementById("option-input-".concat(t,"-").concat(s+1)))||void 0===e||e.focus()},50)}},placeholder:"옵션 ".concat(s+1),className:"col-start-1 row-start-1 w-full bg-transparent border border-transparent focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/35 rounded px-0 py-0.5 text-[16px] md:text-sm text-zinc-700 dark:text-zinc-300 placeholder-zinc-400 dark:placeholder-zinc-700 hover:underline hover:decoration-zinc-700 focus:no-underline font-normal min-w-[30px]"})]}),(0,r.jsx)("button",{"aria-label":"옵션 삭제",onClick:()=>{var n;A(t,{options:null===(n=e.options)||void 0===n?void 0:n.filter((e,t)=>
1t!==s)})},className:"text-zinc-500 hover:text-red-500 opacity-0 group-hover/opt:opacity-100 transition-opacity flex-shrink-0",children:(0,r.jsx)(u.Z,{size:14,strokeWidth:1.5})})]},s)),(0,r.jsxs)("button",{onClick:()=>A(t,{options:[...e.options||[],""]}),className:"text-sm text-blue-500/70 hover:text-blue-400 py-1 flex items-center gap-1 transition-colors -ml-0.5",children:[(0,r.jsx)(h.Z,{size:10}),"옵션 추가"]})]})]},t)}),(0,r.jsx)("div",{className:"flex justify-center pt-4",children:(0,r.jsxs)("button",{onClick:()=>{I([...q,{type:"text",question:"",isRequired:!0,showOnDashboard:!1,order:q.length,options:[]}])},className:"bg-zinc-100 dark:bg-[#18181b] border border-zinc-300 dark:border-zinc-800 hover:border-zinc-400 dark:hover:border-zinc-600 hover:bg-zinc-200 dark:hover:bg-[#27272a] text-zinc-900 dark:text-zinc-400 hover:text-black dark:hover:text-white transition text-xs font-medium px-4 py-2 rounded-full flex items-center gap-2 shadow-sm",children:[(0,r.jsx)(h.Z,{size:14}),"질문 추가"]})})]})}),(0,r.jsx)(z,{open:N,onClose:()=>y(!1),onConfirm:()=>{g("allowAttachments",!0),y(!1)}})]})}},39561:function(e,t,n){n.d(t,{g:function(){return l}});var r=n(2265),s=n(9244);function l(){let[e,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{t((0,s.I)())},[]),e}},2665:function(e,t,n){n.d(t,{O:function(){return r}});function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date,n=e?e instanceof Date?e:new Date(e):null;return!!n&&n.getTime()>t.getTime()}}}]);

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.