PageSourceSearch

https://naemo.ai/_next/static/chunks/9646.230eccbec76fb873.js

js naemo.ai collected 2026-09-24 14:32:10 UTC 30,649 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9646],{92735:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},96362:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},45884:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]])},34415:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]])},88893:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});let i=(0,n(79205).Z)("Pen",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}]])},62102:function(e,t,n){"use strict";n.d(t,{C:function(){return i}}),n(83079);var i=(0,n(12119).$)("3d365eac91b4fdf5c66207add9995915cec21f92")},97831:function(e,t,n){"use strict";n.d(t,{A:function(){return b},a:function(){return p}});var i=n(57437),r=n(2265),s=n(54887),a=n(45884),l=n(34415),o=n(30401),c=n(78867),d=n(35398),u=n(34137),h=n(98319),x=n(12355),f=n.n(x);function m(){return document.fullscreenElement||document.webkitFullscreenElement}async function v(e){if(e&&m()===e)try{var t,n;document.exitFullscreen?await document.exitFullscreen():await (null===(t=(n=document).webkitExitFullscreen)||void 0===t?void 0:t.call(n))}catch(e){}}function p(e){let{value:t,disabled:n=!1}=e,[o,c]=(0,r.useState)(!1),h=(0,r.useRef)(null),x=(0,r.useRef)(null),p=(0,r.useRef)(null),b=()=>{v(h.current),c(!1)};(0,u.j)(b,o),(0,r.useEffect)(()=>{var e;if(!o)return;let t=h.current,n=document.body.style.overflow;document.body.style.overflow="hidden",null===(e=p.current)||void 0===e||e.focus();let i=!1,r=()=>{m()===t?i=!0:i&&c(!1)};document.addEventListener("fullscreenchange",r),document.addEventListener("webkitfullscreenchange",r);let s=x.current;return()=>{document.body.style.overflow=n,document.removeEventListener("fullscreenchange",r),document.removeEventListener("webkitfullscreenchange",r),v(t),null==s||s.focus()}},[o]);let g=async()=>{(0,s.flushSync)(()=>c(!0));let e=h.current;if(e)try{var t;e.requestFullscreen?await e.requestFullscreen():await (null===(t=e.webkitRequestFullscreen)||void 0===t?void 0:t.call(e))}catch(e){}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{ref:x,type:"button",className:f().expand,onClick:g,disabled:n||!t,"aria-label":"QR 코드 전체화면",title:"QR 코드 전체화면",children:(0,i.jsx)(a.Z,{size:20,"aria-hidden":"true"})}),o&&(0,s.createPortal)((0,i.jsxs)("div",{ref:h,className:f().fullscreen,role:"dialog","aria-modal":"true","aria-label":"QR 코드 전체화면",onClick:e=>e.stopPropagation(),onKeyDown:e=>{if("Tab"===e.key){var t;e.preventDefault(),null===(t=p.current)||void 0===t||t.focus()}},children:[(0,i.jsx)("button",{ref:p,type:"button",className:f().collapse,onClick:b,"aria-label":"전체화면 닫기",title:"전체화면 닫기 (Esc)",children:(0,i.jsx)(l.Z,{size:24,"aria-hidden":"true"})}),(0,i.jsx)(d.t,{value:t,size:1024,level:"H",includeMargin:!0,className:f().code})]}),document.body)]})}function b(e){let{value:t,pending:n=!1}=e,[s,a]=(0,r.useState)(!1),{showToast:l}=(0,h.p)();(0,r.useEffect)(()=>{if(!s)return;let e=window.setTimeout(()=>a(!1),2e3);return()=>window.clearTimeout(e)},[s]);let d=async()=>{try{await navigator.clipboard.writeText(t),a(!0),l("링크가 복사되었습니다.","success")}catch(e){l("링크를 복사하지 못했습니다. 주소를 선택해 직접 복사해 주세요.","error")}};return(0,i.jsxs)("div",{className:f().link,children:[(0,i.jsx)("input",{"aria-label":"공유 링크",readOnly:!0,value:n?"주소 생성 중...":t,onFocus:e=>e.currentTarget.select()}),(0,i.jsx)("button",{type:"button",onClick:d,disabled:!t||n,"aria-label":s?"링크 복사됨":"링크 복사",title:s?"복사됨":"링크 복사",children:s?(0,i.jsx)(o.Z,{size:18,"aria-hidden":"true"}):(0,i.jsx)(c.Z,{size:18,"aria-hidden":"true"})})]})}},91455:function(e,t,n){"use strict";n.d(t,{s:function(){return a}});var i=n(57437),r=n(2265),s=n(93448);function a(e){let{options:t,value:n,onChange:a,className:l,itemClassName:o,activeItem
1ClassName:c,inactiveItemClassName:d,indicatorClassName:u,variant:h="pill",underlineThickness:x=2,disabled:f=!1,equalWidth:m=!1,"aria-label":v}=e,p=(0,r.useRef)(null),b=(0,r.useRef)({}),[g,w]=(0,r.useState)(null),[y,k]=(0,r.useState)(!1),j=t.map(e=>e.key).join("\0"),z=(0,r.useCallback)(()=>{let e=p.current,t=b.current[n];if(!e||!t||0===t.offsetWidth){w(e=>null===e?e:null);return}let i={left:t.offsetLeft,top:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight};w(e=>e&&e.left===i.left&&e.top===i.top&&e.width===i.width&&e.height===i.height?e:i)},[n]);(0,r.useLayoutEffect)(()=>{z()},[z,j,h]),(0,r.useEffect)(()=>{if(!g||y)return;let e=requestAnimationFrame(()=>k(!0));return()=>cancelAnimationFrame(e)},[g,y]),(0,r.useEffect)(()=>{let e=p.current;if(!e||"undefined"==typeof ResizeObserver)return;let t=new ResizeObserver(()=>z());return t.observe(e),Object.values(b.current).forEach(e=>{e&&t.observe(e)}),()=>t.disconnect()},[z,j]),(0,r.useEffect)(()=>{let e=document.fonts;if(!(null==e?void 0:e.ready))return;let t=!1;return e.ready.then(()=>{t||z()}).catch(()=>{}),()=>{t=!0}},[z]);let N=!!g&&!f;return(0,i.jsxs)("div",{ref:p,role:"group","aria-label":v,className:(0,s.cn)("relative flex items-center",l),children:[(0,i.jsx)("div",{"aria-hidden":!0,className:(0,s.cn)("absolute left-0 top-0 pointer-events-none","pill"===h?"rounded-lg":"rounded-full",y&&"transition-[transform,width,opacity] duration-300 ease-out motion-reduce:transition-none",N?"opacity-100":"opacity-0",u),style:g?{transform:"translate3d(".concat(g.left,"px, ").concat("underline"===h?g.top+g.height-x:g.top,"px, 0)"),width:g.width,height:"underline"===h?x:g.height}:void 0}),t.map(e=>{let t=e.key===n;return(0,i.jsx)("button",{ref:t=>{b.current[e.key]=t},type:"button","aria-pressed":t,title:e.title,"aria-label":e.ariaLabel,disabled:f,onClick:()=>a(e.key),className:(0,s.cn)("relative z-10 flex items-center justify-center transition-colors duration-200 motion-reduce:transition-none",m&&"flex-1",o,t?c:d,e.className),children:e.label},e.key)})]})}},89646:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return D}});var i=n(57437),r=n(98319),s=n(10136),a=n(2265),l=n(30166),o=n(99397),c=n(88893),d=n(18930),u=n(73247),h=n(99388),x=n(92451),f=n(30401);let m=(0,n(79205).Z)("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var v=n(96362),p=n(32489),b=n(51817),g=n(92735),w=n(17625),y=n(53834),k=n(93448),j=n(91455),z=n(67920),N=n(83008),C=n(62102),S=n(35398),_=n(97831),E=n(27526),R=n(54696),L=n(4908),Z=n(64954),M=n(21751),F=n(58819),q=n(96214);let I=(0,l.default)(()=>n.e(9131).then(n.bind(n,9131)),{loadableGenerated:{webpack:()=>[9131]},loading:()=>(0,i.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,i.jsx)(y.W,{size:14,className:"text-white/30"})})}),W=(0,l.default)(()=>n.e(3591).then(n.bind(n,43591)),{loadableGenerated:{webpack:()=>[43591]},loading:()=>(0,i.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,i.jsx)(y.W,{size:14,className:"text-white/30"})})});function D(){var e,t,n,l,D;let{status:T}=(0,E.kP)(),X=(0,R.Dv)(),H=(0,z.XC)(),Q=(0,s.N)(),{showToast:V}=(0,r.p)(),{classes:A,isLoaded:P}=(0,L.AF)(),U=(0,F.d)(),[G,O]=(0,a.useState)([]),[B,K]=(0,a.useState)(!0),[Y,J]=(0,a.useState)(!1),[$,ee]=(0,a.useState)("");(0,a.useEffect)(()=>{A.length>0&&!$&&ee(A[0])},[A,$]);let[et,en]=(0,a.useState)(null),[ei,er]=(0,a.useState)("edit"),[es,ea]=(0,a.useState)(!1),[el,eo]=(0,a.useState)(""),[ec,ed]=(0,a.useState)({}),[eu,eh]=(0,a.useState)(!1),[ex,ef]=(0,a.useState)(!1),[em,ev]=(0,a.useState)(""),[ep,eb]=(0,a.useState)(!1),[eg,ew]=(0,a.useState)([]),[ey,ek]=(0,a.useState)(!1),[ej,ez]=(0,a.useState)(null),[eN,eC]=(0,a.useState)(!1),[eS,e_]=(0,a.useState)(!1);(0,M.rr)(et?(null==ej?void 0:ej.title)||ec.title||"설문 상세":null,(0,a.useCallback)(()=>{en(null),ea(!1)},[]));let[eE,eR]=(0,a.useState)(!1),[eL,eZ]=(0,a.useState)(null),[eM,eF]=(0,a.useState)(""),eq=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=e=>{eq.current&&(e.preventDefault(),e.returnValue="")};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[]),(0,a.useEffect)(()=>{let e=ec.targetClasses||[];e.length>0?$!==e[0]&&ee(e[0]):A.length>0&&!$&&ee(A[0])},[ec.targetClasses,$,A]);let eI=(0,a.useCallback)(async()=>
1{if("loading"!==T){if(!P){console.log("[SurveyView] Waiting for StudentContext...");return}if(X){K(!0);try{var e;let t=await (0,q.getGuestData)();O(null!==(e=null==t?void 0:t.surveys)&&void 0!==e?e:[])}finally{K(!1)}return}console.log("[SurveyView] Triggering loadSurveys"),K(!0);try{let e=await (0,N.X)("getSurveys",{},H);e.success&&e.data&&(console.log("[SurveyView] Surveys loaded:",e.data.length),O(e.data)),A.length>0&&!$&&ee(A[0])}catch(e){console.error("[SurveyView] Failed to load surveys:",e)}finally{console.log("[SurveyView] loadSurveys finished, setting isLoadingList to false"),K(!1)}}},[H,$,T,A,P,X]);(0,a.useEffect)(()=>{"loading"!==T&&("unauthenticated"!==T||X)&&eI()},[eI,T,X]);let eW=(0,a.useRef)(et);(0,a.useEffect)(()=>{eW.current=et},[et]),(0,a.useEffect)(()=>{if("authenticated"!==T)return;let e=async()=>{if("undefined"==typeof document||"visible"===document.visibilityState)try{let e=await (0,N.X)("getSurveys",{},H);if(!e.success||!e.data)return;let t=e.data,n=new Map(t.map(e=>{var t,n;return[e.id,null!==(n=null===(t=e._count)||void 0===t?void 0:t.responses)&&void 0!==n?n:0]}));O(e=>{if(0===e.length)return e;let t=!1,i=e.map(e=>{var i,r;if(!n.has(e.id))return e;let s=n.get(e.id);return(null!==(r=null===(i=e._count)||void 0===i?void 0:i.responses)&&void 0!==r?r:0)===s?e:(t=!0,{...e,_count:{responses:s}})});return t?i:e});let i=eW.current;if("string"==typeof i&&n.has(i)){let e=n.get(i);ez(t=>{var n,r;return t&&t.id===i&&(null!==(r=null===(n=t._count)||void 0===n?void 0:n.responses)&&void 0!==r?r:0)!==e?{...t,_count:{responses:e}}:t}),ed(t=>{var n,r;return t&&t.id===i&&(null!==(r=null===(n=t._count)||void 0===n?void 0:n.responses)&&void 0!==r?r:0)!==e?{...t,_count:{responses:e}}:t})}}catch(e){console.warn("[SurveyView] silent response-count refresh failed:",e)}},t=setInterval(e,8e3),n=()=>{"visible"===document.visibilityState&&e()};return document.addEventListener("visibilitychange",n),()=>{clearInterval(t),document.removeEventListener("visibilitychange",n)}},[H,T]),(0,a.useEffect)(()=>{if(B){let e=setTimeout(()=>{console.log("[SurveyView] Safety net triggered: forcing isLoadingList to false after 15s"),K(!1)},15e3);return()=>clearTimeout(e)}},[B]);let eD=async()=>{if(X){window.dispatchEvent(new CustomEvent("open-login-modal"));return}(!eq.current||await Q({title:"저장하지 않은 변경사항이 있습니다",description:"저장하지 않고 이동하면 지금까지 쓴 내용이 사라집니다.",confirmLabel:"저장하지 않고 이동",cancelLabel:"계속 편집"}))&&(eq.current=!1,ea(!0),en(null))},eT=(0,a.useCallback)(async e=>{if(et===e||eq.current&&!await Q({title:"저장하지 않은 변경사항이 있습니다",description:"저장하지 않고 이동하면 지금까지 쓴 내용이 사라집니다.",confirmLabel:"저장하지 않고 이동",cancelLabel:"계속 편집"}))return;if(eq.current=!1,en(e),ea(!1),er("edit"),ek(!0),ez(null),ed({}),X){var t;let n=await (0,q.getGuestData)(),i=(null!==(t=null==n?void 0:n.surveys)&&void 0!==t?t:[]).find(t=>t.id===e)||null;ez(i),ed(null!=i?i:{}),ek(!1);return}let n=await (0,N.X)("getSurvey",{id:e},H);if(n.success&&n.data){let e=n.data,t=e.questions.map(e=>
1({...e,options:"string"==typeof e.options?JSON.parse(e.options):e.options})),i={...e,questions:t};ez(i),ed(i)}else V("설문 정보를 불러오지 못했습니다.","error"),en(null);ek(!1)},[et,H,Q,V,X]),eX=(0,a.useRef)(!1);(0,a.useEffect)(()=>{B||"loading"===T||(!(G.length>0)||et||es||eX.current||U||(eX.current=!0,eT(G[0].id)),J(!0))},[B,T,G,et,es,eT,U]);let eH=async(e,t)=>{if(e.stopPropagation(),await Q({title:"설문을 삭제할까요?",description:"이 설문과 함께 받은 응답이 모두 사라집니다.",consequences:["설문 문항","학생들이 제출한 응답","응답 통계"]})){if((await (0,N.X)("deleteSurvey",{id:t},H)).success){let e=G.filter(e=>e.id!==t);O(e),et===t&&(!U&&e.length>0?eT(e[0].id):(en(null),ez(null),ed({}))),eI()}else V("삭제 실패","error")}},eQ=(e,t)=>{e.stopPropagation(),eZ(t.id),eF(t.title)},eV=async e=>{if(!eM.trim()){eZ(null);return}(await (0,N.X)("updateSurvey",{id:e,title:eM.trim()},H)).success&&(O(t=>t.map(t=>t.id===e?{...t,title:eM.trim()}:t)),et===e&&ej&&(ez({...ej,title:eM.trim()}),ed(e=>({...e,title:eM.trim()})))),eZ(null)},eA=async e=>{var t,n;let i;eh(!0);let r=e&&(e.nativeEvent||e.preventDefault),s=e&&!r?e:ec,a=es&&e&&!r;if(!(null===(t=s.title)||void 0===t?void 0:t.trim())){eh(!1),V("설문 제목을 입력해 주세요.","warning");return}if(!a&&(!s.targetClasses||0===s.targetClasses.length)){eh(!1),V("대상 학급을 선택해 주세요.","warning");return}let l={...s,questions:null===(n=s.questions)||void 0===n?void 0:n.map((e,t)=>({...e,order:t}))};if(es?i=await (0,N.X)("createSurvey",l,H):"string"==typeof et&&(i=await (0,N.X)("updateSurvey",{...l,id:et},H)),eh(!1),null==i?void 0:i.success){if(eq.current=!1,await eI(),es&&i.data){let e=i.data.id;ea(!1),eT(e)}}else V((null==i?void 0:i.error)||"저장 실패","error")},eP=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(et){e?e_(!0):ek(!0);try{if(X){var t,n;let e=await (0,q.getGuestData)(),i=null!==(t=null==e?void 0:e.surveyResponses)&&void 0!==t?t:{};ew(null!==(n=i[et])&&void 0!==n?n:[]),eC(!1);return}if(!e){let e=[],t=0,n=!0;for(;n;){let i=await (0,N.X)("getSurveyResponses",{surveyId:et,take:101,skip:t},H);if(!i.success||!i.data)break;let r=i.data,s=(n=r.length>100)?r.slice(0,100):r;e=[...e,...s],t+=100}ew(e),eC(!1);return}let i=e?eg.length:0,r=await (0,N.X)("getSurveyResponses",{surveyId:et,take:101,skip:i},H);if(r.success&&r.data){let t=r.data,n=t.length>100,i=n?t.slice(0,100):t;ew(t=>e?[...t,...i]:i),eC(n)}}catch(t){console.error("Failed to fetch survey responses",t),e||(ew([]),eC(!1))}finally{ek(!1),e_(!1)}}};(0,a.useEffect)(()=>{"responses"===ei&&"string"==typeof et&&eP()},[ei,et]),(0,a.useEffect)(()=>{var e;eE&&(null==H?void 0:null===(e=H.user)||void 0===e?void 0:e.id)&&(null==ej?void 0:ej.id)?(async()=>{var e;eb(!0);let t="".concat(window.location.origin,"/survey/form?id=").concat(encodeURIComponent(ej.id),"&u=").concat(encodeURIComponent(H.user.id))+((null===(e=ec.targetClasses)||void 0===e?void 0:e.length)&&ec.targetClasses.length>0?"&class=".concat(encodeURIComponent(ec.targetClasses[0])):"");try{let e=await (0,C.C)(t);ev(e)}catch(e){ev(t)}finally{eb(!1)}})():ev("")},[eE,ej,H,ec.targetClasses]);let eU=(0,i.jsx)(j.s,{value:ei,onChange:er,"aria-label":"설문 보기 방식",className:"h-9 p-1 rounded-lg bg-zinc-100 dark:bg-black/30 border border-zinc-200 dark:border-white/5 shrink-0",itemClassName:"h-full px-4 rounded-md text-sm font-medium whitespace-nowrap",activeItem
1ClassName:"text-zinc-900 dark:text-white font-semibold",inactiveItemClassName:"text-zinc-500 dark:text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300",indicatorClassName:"bg-white dark:bg-[#2C2C2C] rounded-md shadow-sm",options:[{key:"edit",label:"설문 작성"},{key:"responses",label:"응답 (".concat((null==ej?void 0:null===(e=ej._count)||void 0===e?void 0:e.responses)||(null===(t=ec._count)||void 0===t?void 0:t.responses)||0,")")}]});return(0,i.jsxs)("div",{className:"flex h-full overflow-hidden bg-[#09090b] relative",children:[(0,i.jsxs)("div",{className:(0,k.cn)("w-full md:w-60 flex-shrink-0 flex flex-col border-r border-white/5 bg-[#09090b] survey-sidebar nav-rail-shadow sub-sidebar-enter transition duration-300",et&&"hidden md:flex"),children:[(0,i.jsxs)("div",{className:"hidden md:flex h-[50px] px-3 items-center justify-between shrink-0 border-b border-white/5",children:[(0,i.jsx)("h2",{className:"text-[15px] font-bold text-white flex items-center gap-2 px-2",children:"설문 목록"}),(0,i.jsx)("button",{"aria-label":"새 설문",onClick:eD,className:"p-1 hover:bg-white/10 rounded-md text-white/60 hover:text-white transition-colors",children:(0,i.jsx)(o.Z,{size:18})})]}),(0,i.jsxs)("div",{className:"flex-1 overflow-y-auto w-full custom-scrollbar p-2 space-y-0.5 mobile-scroll-with-floating",children:[es&&(0,i.jsx)("div",{className:"mb-2 px-1",children:(0,i.jsx)("form",{onSubmit:e=>{e.preventDefault();let t=e.currentTarget.elements[0].value;t.trim()&&eA({title:t,targetClasses:[]})},children:(0,i.jsx)("input",{autoFocus:!0,placeholder:"설문 제목 입력",className:"w-full bg-zinc-100 dark:bg-[#18181b] text-zinc-900 dark:text-white placeholder-zinc-400 dark:placeholder-white/30 rounded-md py-2 px-3 text-xs border border-zinc-300 dark:border-white/10 focus:outline-none focus:border-[#007AFF] dark:focus:border-[#007AFF]",onBlur:e=>{e.target.value.trim()||ea(!1)},onKeyDown:e=>{"Escape"===e.key&&ea(!1)}})})}),B||"loading"===T&&!(0,R.YY)()?(0,i.jsx)("div",{className:"flex justify-center py-10",children:(0,i.jsx)(y.W,{size:16,className:"text-white/30"})}):0!==G.filter(e=>e.title.toLowerCase().includes(el.toLowerCase())).length||es?(0,i.jsx)(i.Fragment,{children:G.filter(e=>e.title.toLowerCase().includes(el.toLowerCase())).map(e=>(0,i.jsxs)("div",{onClick:()=>eL!==e.id&&eT(e.id),"data-selected":et===e.id,className:(0,k.cn)("w-full flex items-center justify-between px-3 py-2.5 rounded-md cursor-pointer transition group survey-sidebar-item",et===e.id?"bg-white/10 text-white":"text-[#a1a1aa] hover:bg-white/5 hover:text-white"),children:[eL===e.id?(0,i.jsx)("input",{type:"text",value:eM,onChange:e=>eF(e.target.value),onBlur:()=>eV(e.id),onKeyDown:t=>{"Enter"===t.key&&eV(e.id),"Escape"===t.key&&eZ(null)},onClick:e=>e.stopPropagation(),autoFocus:!0,className:"flex-1 min-w-0 text-[14px] bg-[#27272a] border border-white/20 rounded px-2 py-0.5 focus:outline-none focus:border-blue-500 text-white"}):(0,i.jsx)("span",{className:"text-[14px] truncate flex-1 min-w-0 pr-2",children:e.title}),(0,i.jsxs)("div",{className:(0,k.cn)("flex items-center gap-1 shrink-0 transition-opacity",eL===e.id?"opacity-100":"opacity-0 group-hover:opacity-100"),children:[(0,i.jsx)("button",{onClick:t=>eQ(t,e),className:"p-1 hover:text-blue-400 transition-colors",title:"이름 수정",children:(0,i.jsx)(c.Z,{size:13})}),(0,i.jsx)("button",{onClick:t=>eH(t,e.id),className:"p-1 hover:text-red-400 transition-colors",title:"삭제",children:(0,i.jsx)(d.Z,{size:13})})]})]},e.id))}):(0,i.jsx)("div",{className:"text-center py-8 text-white/30 text-xs",children:el?"검색 결과가 없습니다.":"생성된 설문이 없습니다."})]}),(0,i.jsx)("div",{className:(0,k.cn)("md:hidden fixed mobile-floating-bar left-0 right-0 px-6 flex justify-center z-40 pointer-events-none transition",et&&"opacity-0 pointer-events-none translate-y-4"),children:(0,i.jsxs)("div",{className:"w-full max-w-[400px] flex gap-2 pointer-events-auto group",children:[(0,i.jsxs)("div",{className:(0,k.cn)("relative flex-1 flex items-center h-[48px] px-4","bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-zinc-200/80 dark:border-white/10 rounded-full","shadow-[0_4px_12px_rgba(0,0,0,0.03)] dark:shadow-[0_4px_12px_rgba(0,0,0,0.3)]","transition duration-200 group-focus-within:border-zinc-300 dark:group-focus-within:border-zinc-600 group-focus-within:shadow-[0_4px_16px_rgba(0,0,0,0.06)]"),children:[(0,i.jsx)("div",{className:"shrink-0 text-zinc-400 dark:text-zinc-500",children:(0,i.jsx)(u.Z,{size:20,strokeWidth:1.5})}),(0,i.jsx)("input",{type:"text",placeholder:"설문 검색...",value:el,onChange:e=>eo(e.target.value),className:(0,k.cn)("w-full h-full bg-transparent border-none outline-none","pl-3 pr-1 text-[16px] font-normal","text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500")}),el&&(0,i.jsx)("button",{"aria-label":"검색어 지우기",onClick:()=>eo(""),className:"shrink-0 p-1.5 -mr-1 text-zinc-400 dark:text-zinc-500 active:text-zinc-600 dark:active:text-zinc-300 active:scale-95 transition",children:(0,i.jsx)(h.Z,{size:18,strokeWidth:1.75})})]}),(0,i.jsx)("button",{"aria-label":"새 설문",onClick:eD,className:(0,k.cn)("w-[48px] h-[48px] shrink-0 flex items-center justify-center rounded-full","bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-zinc-200/80 dark:border-white/10","shadow-[0_4px_12px_rgba(0,0,0,0.03)] dark:shadow-[0_4px_12px_rgba(0,0,0,0.3)]","text-zinc-400 dark:text-zinc-300 active:scale-90 transition"),children:(0,i.jsx)(o.Z,{size:22,strokeWidth:1.5})})]})})]}),(0,i.jsx)("div",{className:(0,k.cn)("flex-1 flex flex-col overflow-hidden relative bg-[#0c0c0e]",!et&&"hidden md:flex"),children:et?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"md:hidden absolute inset-x-0 top-0 z-50 pointer-events-none flex items-center justify-between px-4 h-16",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 overflow-x-auto no-scrollbar py-2 pointer-events-auto",children:[(0,i.jsx)("button",{type:"button","aria-label":"설문 목록으로 돌아가기",onClick:()=>{en(null),ea(!1)},className:"w-[34px] h-[34px] flex items-center justify-center rounded-2xl bg-white dark:bg-zinc-800 border border-zinc-200/60 dark:border-white/10 shadow-sm text-zinc-700 dark:text-white hover:bg-zinc-50 dark:hover:bg-zinc-700 active:scale-[0.95] transition shrink-0",children:(0,i.jsx)(x.Z,{size:18,strokeWidth:2})}),(0,i.jsx)(j.s,{value:ei,onChange:er,"aria-label":"설문 보기 방식",className:"h-[34px] p-0.5 rounded-2xl shrink-0 shadow-sm bg-white dark:bg-zinc-800 border border-zinc-200/60 dark:border-white/10",itemClassName:"h-full px-3.5 rounded-[14px] text-[13px] font-semibold whitespace-nowrap active:scale-[0.95] transition-[color,transform]",activeItem
1ClassName:"text-zinc-900 dark:text-white",inactiveItemClassName:"text-zinc-400 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200",indicatorClassName:"bg-zinc-100 dark:bg-zinc-700 rounded-[14px] shadow-sm",options:[{key:"edit",label:"설문 작성"},{key:"responses",label:"응답 (".concat((null==ej?void 0:null===(n=ej._count)||void 0===n?void 0:n.responses)||(null===(l=ec._count)||void 0===l?void 0:l.responses)||0,")")}]})]}),(0,i.jsxs)("div",{className:"flex items-center gap-1.5 pointer-events-auto",children:[(0,i.jsx)("button",{"aria-label":eu?"저장 중":"저장",onClick:eA,disabled:eu,className:"w-[34px] h-[34px] flex items-center justify-center rounded-2xl bg-white dark:bg-zinc-800 border border-zinc-200/60 dark:border-white/10 shadow-sm text-zinc-700 dark:text-white hover:bg-zinc-50 dark:hover:bg-zinc-700 active:scale-[0.95] transition disabled:opacity-50",children:eu?(0,i.jsx)(y.W,{size:12}):(0,i.jsx)(f.Z,{size:18,strokeWidth:3})}),(0,i.jsx)("button",{"aria-label":"공유",onClick:()=>eR(!0),className:"w-[34px] h-[34px] flex items-center justify-center rounded-2xl bg-white dark:bg-zinc-800 border border-zinc-200/60 dark:border-white/10 shadow-sm text-zinc-700 dark:text-white hover:bg-zinc-50 dark:hover:bg-zinc-700 active:scale-[0.95] transition",children:(0,i.jsx)(m,{size:18,strokeWidth:2})})]})]}),"edit"===ei&&(0,i.jsx)("div",{className:"hidden md:flex flex-col shrink-0 relative z-40 border-b border-zinc-200 dark:border-white/5 bg-white dark:bg-[#09090b]",children:(0,i.jsxs)("div",{className:"h-12 flex items-center justify-between px-4 md:px-6",children:[(0,i.jsx)("div",{className:"flex items-center gap-4",children:eU}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[ej&&"edit"===ei&&(0,i.jsxs)("a",{href:"/survey/form?id=".concat(encodeURIComponent(ej.id),"&u=").concat(encodeURIComponent(H.user.id)).concat((null===(D=ec.targetClasses)||void 0===D?void 0:D.length)===1?"&class=".concat(encodeURIComponent(ec.targetClasses[0])):""),target:"_blank",rel:"noopener noreferrer",className:"h-9 px-3 flex items-center gap-2 rounded-lg bg-[#18181b] border border-white/10 text-zinc-400 hover:text-white hover:border-white/20 transition text-sm font-medium",children:[(0,i.jsx)(v.Z,{size:14}),"미리보기"]}),"edit"===ei&&(0,i.jsxs)("button",{onClick:eA,disabled:eu,className:"h-9 px-3 flex items-center gap-2 rounded-lg bg-[#18181b] border border-white/10 text-zinc-400 hover:text-white hover:border-white/20 transition text-sm font-medium disabled:opacity-50",children:[eu?(0,i.jsx)(y.W,{size:14}):(0,i.jsx)(f.Z,{size:14}),"저장"]}),ej&&"edit"===ei&&(0,i.jsxs)("button",{onClick:()=>eR(!0),className:"h-9 px-3 flex items-center gap-2 rounded-lg bg-[#007AFF] text-white hover:opacity-90 transition text-sm font-medium shadow-sm",children:[(0,i.jsx)(m,{size:14}),"공유"]})]})]})}),(0,i.jsxs)("div",{className:"flex-1 overflow-y-auto relative custom-scrollbar",children:[ey?(0,i.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-[#0c0c0e] z-10",children:(0,i.jsx)(y.W,{size:14,className:"text-white/30"})}):null,"edit"===ei?(0,i.jsx)(I,{data:ec,onChange:(e,t)=>
1{eq.current=!0,ed(n=>({...n,[e]:t}))},classList:A}):ej?(0,i.jsx)(W,{survey:ej,responses:eg,onBack:()=>{},onShowQR:()=>eR(!0),embedMode:!0,modeSwitch:(0,i.jsx)("div",{className:"hidden md:block",children:eU}),isHomeroomTarget:"담임 학급"===$,hasMore:eN,isLoadingMore:eS,onLoadMore:()=>eP(!0),onAttachmentDeleted:(e,t)=>{ew(n=>n.map(n=>{var i;return n.id===e?{...n,attachments:null===(i=n.attachments)||void 0===i?void 0:i.filter(e=>e.id!==t)}:n}))},onResponseDeleted:e=>{ew(t=>t.filter(t=>t.id!==e)),ez(e=>e?{...e,_count:e._count?{responses:Math.max(0,e._count.responses-1)}:e._count}:e),ed(e=>({...e,_count:e._count?{responses:Math.max(0,e._count.responses-1)}:e._count})),O(e=>e.map(e=>e.id===et&&e._count?{...e,_count:{responses:Math.max(0,e._count.responses-1)}}:e))}}):null]})]}):(0,i.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:Y?(0,i.jsx)(Z.Z,{size:"lg",title:0===G.length?"열어볼 설문이 없습니다":"선택된 설문이 없습니다",description:0===G.length?"왼쪽 목록에서 설문을 선택하거나 새 설문을 만들어 응답을 수집해 보세요.":"왼쪽 목록에서 설문을 선택해 주세요.",action:(0,i.jsxs)("button",{type:"button",onClick:eD,className:"px-6 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-sm font-semibold transition-all shadow-sm active:scale-95 flex items-center gap-1.5",children:[(0,i.jsx)(o.Z,{size:16}),"새 설문 만들기"]})}):(0,i.jsx)(y.W,{size:20,className:"text-white/25 animate-delayed-fade-in"})})}),eE&&ej&&(0,i.jsx)("div",{className:"modal-viewport bg-black/70 flex items-center justify-center z-50 p-4",onClick:()=>eR(!1),children:(0,i.jsxs)("div",{className:"bg-[#18181b] rounded-2xl p-6 max-w-sm w-full shadow-2xl relative border border-white/10",onClick:e=>e.stopPropagation(),children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,i.jsx)("h3",{className:"text-lg font-bold text-white",children:"QR 코드 공유"}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(_.a,{value:em,disabled:ep}),(0,i.jsx)("button",{"aria-label":"닫기",onClick:()=>eR(!1),className:"text-zinc-500 hover:text-white transition-colors",children:(0,i.jsx)(p.Z,{size:20})})]})]}),(0,i.jsx)("div",{id:"survey-qr-code",className:"bg-white rounded-xl p-4 flex justify-center mb-4 min-h-[232px] items-center",children:ep?(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center text-zinc-400 gap-2",children:[(0,i.jsx)(b.Z,{className:"animate-spin text-zinc-300",size:24}),(0,i.jsx)("span",{className:"text-sm",children:"링크 생성 중..."})]}):em?(0,i.jsx)(S.t,{value:em,size:200,level:"H"}):null}),(0,i.jsx)(_.A,{value:em,pending:ep}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsxs)("button",{onClick:()=>{let e=document.querySelector("#survey-qr-code svg");if(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("canvas"),i=n.getContext("2d"),r=new Image;r.onload=()=>{n.width=r.width,n.height=r.height,null==i||i.drawImage(r,0,0);let e=document.createElement("a");e.download="survey-qr-code.png",e.href=n.toDataURL("image/png"),e.click()},r.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t)))}},className:"flex-1 flex items-center justify-center gap-2 py-2.5 bg-white/10 hover:bg-white/20 text-white rounded-lg transition-colors text-sm font-medium",children:[(0,i.jsx)(g.Z,{size:16}),"다운로드"]}),(0,i.jsxs)("button",{onClick:()=>{let e=window.open("","_blank");if(e){let t=document.querySelector("#survey-qr-code svg");null==e||e.document.write('\n                                            <html>\n                                                <head><title>QR 코드 인쇄</title></head>\n                                                <body style="display:flex;justify-content:center;align-items:center;height:100vh;margin:0;">\n                                                    '.concat((null==t?void 0:t.outerHTML)||"","\n                                                </body>\n                                            </html>\n                                        ")),null==e||e.document.close(),null==e||e.print()}},className:"flex-1 flex items-center justify-center gap-2 py-2.5 bg-white/10 hover:bg-white/20 text-white rounded-lg transition-colors text-sm font-medium",children:[(0,i.jsx)(w.Z,{size:16}),"인쇄"]})]})]})})]})}},12355:function(e){e.exports={expand:"QRShareControls_expand__lXb9E",collapse:"QRShareControls_collapse__MxHhH",link:"QRShareControls_link__jLWpe",fullscreen:"QRShareControls_fullscreen___R7RR",code:"QRShareControls_code__5kzLF"}}}]);

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.