PageSourceSearch

https://naemo.ai/_next/static/chunks/7289.e888d81d9eab8ce8.js

js naemo.ai collected 2026-10-02 01:15:29 UTC 25,741 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7289,401],{30401:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},35224:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("ChevronsLeft",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]])},92735:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(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"}]])},66337:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},99397:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},98728:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},18930:function(t,e,s){s.d(e,{Z:function(){return i}});let i=(0,s(79205).Z)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},90982:function(t,e,s){s.d(e,{ContentLoadingState:function(){return l},Q:function(){return o}});var i=s(57437),r=s(2265),n=s(21235),a=s(93448);function o(t){let{label:e="내용을 불러오고 있어요",slowLabel:s,className:n}=t,[o,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{c(!1);let t=setTimeout(()=>c(!0),8e3);return()=>clearTimeout(t)},[e]),(0,i.jsx)("p",{role:"status","aria-atomic":"true",className:(0,a.cn)("text-[13px] leading-5 text-zinc-600 dark:text-zinc-400",n),children:o?null!=s?s:"".concat(e,". 평소보다 시간이 걸리고 있어요."):e})}function c(t){let{count:e,table:s=!1}=t;return(0,i.jsx)("div",{className:"divide-y divide-zinc-200/60 dark:divide-white/[0.06]",children:Array.from({length:e},(t,e)=>(0,i.jsxs)("div",{className:"flex min-h-12 items-center gap-4 py-3",children:[(0,i.jsx)(n.Od,{width:24,height:16,className:"shrink-0 rounded"}),(0,i.jsx)(n.Od,{width:e%2?"30%":"40%",height:14,className:"rounded"}),s&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Od,{width:"20%",height:14,className:"ml-auto rounded"}),(0,i.jsx)(n.Od,{width:"16%",height:14,className:"rounded"})]})]},e))})}function l(t){let{variant:e="table",label:s,slowLabel:r,className:l,rows:u=7}=t;return(0,i.jsxs)("div",{className:(0,a.cn)("w-full min-w-0 bg-white p-4 md:p-6 dark:bg-zinc-950",l),"data-loading-layout":e,"aria-busy":"true",children:[(0,i.jsx)(o,{label:s,slowLabel:r,className:"mb-5"}),(0,i.jsx)("div",{"aria-hidden":"true",children:"workspace"===e?(0,i.jsxs)("div",{className:"grid gap-6 md:grid-cols-[200px_minmax(0,1fr)]",children:[(0,i.jsxs)("div",{className:"hidden md:block",children:[(0,i.jsx)(n.Od,{height:32,className:"mb-4"}),(0,i.jsx)(c,{count:8})]}),(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)(n.Od,{width:"35%",height:28}),(0,i.jsx)("div",{className:"flex gap-4",children:[0,1,2].map(t=>(0,i.jsx)(n.Od,{width:80,height:28},t))}),(0,i.jsx)(n.Od,{height:160}),(0,i.jsx)(c,{count:5,table:!0})]})]}):"calendar"===e?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,i.jsx)(n.Od,{width:140,height:28}),(0,i.jsx)(n.Od,{width:96,height:28})]}),(0,i.jsx)("div",{className:"grid grid-cols-7 gap-px overflow-hidden rounded-xl border border-zinc-200 bg-zinc-200 dark:border-zinc-800 dark:bg-zinc-800",children:Array.from({length:35},(t,e)=>(0,i.jsxs)("div",{className:"min-h-[64px] bg-white p-2 md:min-h-[88px] md:p-3 dark:bg-zinc-950",children:[(0,i.jsx)(n.Od,{width:18,height:12,className:"rounded"}),e%4==1&&(0,i.jsx)(n.Od,{height:18,className:"mt-4 rounded"})]},e))})]}):"cards"===e||"zones"===e?(0,i.jsx)("div",{className:(0,a.cn)("grid gap-4","zones"===e?"grid-cols-2 lg:grid-cols-4":"grid-cols-1 md:grid-cols-2 xl:grid-cols-3"),children:Array.from({length:"zones"===e?8:6},(t,s)=>(0,i.jsxs)("div",{className:"space-y-4 rounded-xl border border-zinc-200/70 p-4 dark:border-white/[0.08]",children:[(0,i.jsx)(n.Od,{width:"50%",height:16}),(0,i.jsx)(n.Od,{height:"zones"===e?64:112}),(0,i.jsx)(n.Od,{width:"75%",height:14})]},s))}):"grades"===e?(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)(n.Od,{width:"30%",height:24}),(0,i.jsx)("div",{className:"grid grid-cols-3 gap-4",children:[0,1,2].map(t=>(0,i.jsx)(n.Od,{height:80},t))}),(0,i.jsx)(n.Od,{height:220}),(0,i.jsx)(c,{count:4,table:!0})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.Od,{width:"list"===e?"65%":"25%",height:22,className:"mb-4"}),(0,i.jsx)(c,{count:u,table:"table"===e})]})})]})}},64954:function(t,e,s){s.d(e,{Z:function(){return a}});var i=s(57437);s(2265);var r=s(93448),n=s(51028);function a(t){let{title:e,description:s,action:a,badge:o,size:c="md",className:l="",iconSize:u,animate:d=!0}=t,h="sm"===c,m="lg"===c;return(0,i.jsxs)("div",{className:(0,r.cn)("group relative flex flex-col items-center justify-center text-center select-none",h?"py-8 px-4":m?"py-20 px-8"
1:"py-16 px-6",l),children:[o&&(0,i.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:o}),(0,i.jsx)("div",{className:(0,r.cn)("relative flex items-center justify-center transition-transform duration-300 ease-out",d&&"group-hover:scale-105",h?"mb-3":m?"mb-5":"mb-4"),children:(0,i.jsx)(n.w,{size:null!=u?u:h?48:m?80:64,showGlow:!1})}),(0,i.jsx)("h3",{className:(0,r.cn)("font-bold text-zinc-800 dark:text-zinc-100 tracking-tight",h?"text-sm":m?"text-[20px]":"text-base"),children:e}),s&&(0,i.jsx)("div",{className:(0,r.cn)("text-zinc-500 dark:text-zinc-400 font-normal leading-relaxed",h?"text-xs mt-1.5 max-w-xs":m?"text-[14px] mt-2 max-w-lg":"text-[13px] mt-1.5 max-w-md"),children:s}),a&&(0,i.jsx)("div",{className:(0,r.cn)("flex items-center justify-center",h?"mt-4":"mt-6"),children:a})]})}},51028:function(t,e,s){s.d(e,{w:function(){return n}});var i=s(57437),r=s(2265);function n(t){let{size:e=64,accentColor:s="#d97757",showGlow:n=!0,className:a="",...o}=t,c=r.useId(),l=r.useId();return(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 430 430",fill:"none",className:a,...o,children:[(0,i.jsxs)("defs",{children:[(0,i.jsxs)("linearGradient",{id:l,x1:"90",y1:"90",x2:"300",y2:"300",gradientUnits:"userSpaceOnUse",children:[(0,i.jsx)("stop",{offset:"0%",stopColor:s,stopOpacity:"0.15"}),(0,i.jsx)("stop",{offset:"50%",stopColor:"#38bdf8",stopOpacity:"0.08"}),(0,i.jsx)("stop",{offset:"100%",stopColor:s,stopOpacity:"0.03"})]}),n&&(0,i.jsx)("filter",{id:c,x:"-20%",y:"-20%",width:"140%",height:"140%",children:(0,i.jsx)("feDropShadow",{dx:"0",dy:"4",stdDeviation:"8",floodColor:s,floodOpacity:"0.25"})})]}),(0,i.jsxs)("g",{strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"14",children:[(0,i.jsx)("circle",{cx:"191",cy:"192",r:"102",fill:"url(#".concat(l,")"),className:"transition-colors duration-300"}),(0,i.jsx)("path",{className:"stroke-zinc-700 dark:stroke-zinc-200 transition-colors duration-200",strokeWidth:"13",d:"M293.7 89.4c56.7 56.7 56.7 148.6 0 205.3s-148.6 56.7-205.3 0-56.7-148.7 0-205.3 148.6-56.7 205.3 0"}),(0,i.jsx)("path",{stroke:s,strokeWidth:"13",d:"M82.1 147.5c5.7-14.1 14.2-27.3 25.7-38.7 13.7-13.7 29.9-23.2 47.1-28.7",filter:n?"url(#".concat(c,")"):void 0}),(0,i.jsx)("path",{className:"stroke-zinc-700 dark:stroke-zinc-200 transition-colors duration-200",strokeWidth:"15",d:"m296.1 296.6 88 86.5"})]})]})}},91455:function(t,e,s){s.d(e,{s:function(){return a}});var i=s(57437),r=s(2265),n=s(93448);function a(t){let{options:e,value:s,onChange:a,className:o,itemClassName:c,activeItemClassName:l,inactiveItemClassName:u,indicatorClassName:d,variant:h="pill",underlineThickness:m=2,disabled:f=!1,equalWidth:p=!1,"aria-label":v}=t,y=(0,r.useRef)(null),g=(0,r.useRef)({}),[x,b]=(0,r.useState)(null),[w,j]=(0,r.useState)(!1),k=e.map(t=>t.key).join("\0"),S=(0,r.useCallback)(()=>{let t=y.current,e=g.current[s];if(!t||!e||0===e.offsetWidth){b(t=>null===t?t:null);return}let i={left:e.offsetLeft,top:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight};b(t=>t&&t.left===i.left&&t.top===i.top&&t.width===i.width&&t.height===i.height?t:i)},[s]);(0,r.useLayoutEffect)(()=>{S()},[S,k,h]),(0,r.useEffect)(()=>{if(!x||w)return;let t=requestAnimationFrame(()=>j(!0));return()=>cancelAnimationFrame(t)},[x,w]),(0,r.useEffect)(()=>{let t=y.current;if(!t||"undefined"==typeof ResizeObserver)return;let e=new ResizeObserver(()=>S());return e.observe(t),Object.values(g.current).forEach(t=>{t&&e.observe(t)}),()=>e.disconnect()},[S,k]),(0,r.useEffect)(()=>{let t=document.fonts;if(!(null==t?void 0:t.ready))return;let e=!1;return t.ready.then(()=>{e||S()}).catch(()=>{}),()=>{e=!0}},[S]);let C=!!x&&!f;return(0,i.jsxs)("div",{ref:y,role:"group","aria-label":v,className:(0,n.cn)("relative flex items-center",o),children:[(0,i.jsx)("div",{"aria-hidden":!0,className:(0,n.cn)("absolute left-0 top-0 pointer-events-none","pill"===h?"rounded-lg":"rounded-full",w&&"transition-[transform,width,opacity] duration-300 ease-out motion-reduce:transition-none",C?"opacity-100":"opacity-0",d),style:x?{transform:"translate3d(".concat(x.left,"px, ").concat("underline"===h?x.top+x.height-m:x.top,"px, 0)"),width:x.width,height:"underline"===h?m:x.height}:void 0}),e.map(t=>{let e=t.key===s;return(0,i.jsx)("button",{ref:e=>
1{g.current[t.key]=e},type:"button","aria-pressed":e,title:t.title,"aria-label":t.ariaLabel,disabled:f,onClick:()=>a(t.key),className:(0,n.cn)("relative z-10 flex items-center justify-center transition-colors duration-200 motion-reduce:transition-none",p&&"flex-1",c,e?l:u,t.className),children:t.label},t.key)})]})}},21235:function(t,e,s){s.d(e,{Od:function(){return n}});var i=s(57437),r=s(93448);function n(t){let{className:e,variant:s="rect",width:n,height:a,style:o,...c}=t;return(0,i.jsx)("div",{className:(0,r.cn)("relative overflow-hidden bg-zinc-200/70 dark:bg-white/5 animate-shimmer",{text:"h-4 rounded-md",rect:"rounded-xl",circle:"rounded-full",card:"rounded-2xl"}[s],e),style:{width:void 0!==n?"number"==typeof n?"".concat(n,"px"):n:void 0,height:void 0!==a?"number"==typeof a?"".concat(a,"px"):a:void 0,...o},"aria-hidden":"true",...c})}s(2265)},4908:function(t,e,s){s.d(e,{Pl:function(){return p},fc:function(){return y},AF:function(){return v}});var i=s(57437),r=s(98319),n=s(2265),a=s(73369),o=s(29827),c=s(71632),l=s(83008),u=s(67920),d=s(27526),h=s(54696);function m(t){let{reloadStudents:e}=t,{data:s}=(0,d.kP)(),{createStudent:i}=(0,a.N)(),{addClass:r}=(0,a.Kw)(),o=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{(null==s?void 0:s.user)&&!o.current&&(async()=>{o.current=!0;let t=!1,n={user:{id:s.user.id,name:s.user.name||"User",role:"admin"}};try{let e=localStorage.getItem("saemo-guest-classes");if(e){let s=JSON.parse(e).filter(t=>"담임 학급"!==t&&"담임학급"!==t);if(s.length>0)for(let e of s)try{await r.mutateAsync(e),t=!0}catch(t){}localStorage.removeItem("saemo-guest-classes")}let s=localStorage.getItem("saemo-guest-students");if(s){let e=JSON.parse(s);if(Array.isArray(e)&&e.length>0)for(let s of e)try{var a;await i.mutateAsync({number:s.number,name:s.name,memo:s.memo,homeClassId:null!==(a=s.homeClassId)&&void 0!==a?a:s.classId,customClassIds:s.customClassIds||[],grade:s.grade,classNum:s.classNum}),t=!0}catch(t){}localStorage.removeItem("saemo-guest-students")}let o=localStorage.getItem("saemo-guest-dashboard-memo"),c=localStorage.getItem("dashboard-memo"),u=o||c;if(u){let e=await (0,l.X)("getDashboardMemo",{},n);e.success&&e.data||(await (0,l.X)("saveDashboardMemo",{content:u},n),t=!0),localStorage.removeItem("saemo-guest-dashboard-memo"),localStorage.removeItem("dashboard-memo")}let d=localStorage.getItem("teacher-timetable")||localStorage.getItem("saemo-guest-timetable-my");if(d){let e=JSON.parse(d),s=await (0,l.X)("getTimetable",{type:"teacher"},n);s.success&&s.data&&0!==Object.keys(s.data).length||(await (0,l.X)("saveTimetable",{type:"teacher",data:e},n),t=!0),localStorage.removeItem("teacher-timetable"),localStorage.removeItem("saemo-guest-timetable-my")}let h=localStorage.getItem("class-timetable")||localStorage.getItem("saemo-guest-timetable-class");if(h){let e=JSON.parse(h),s=await (0,l.X)("getTimetable",{type:"class"},n);s.success&&s.data&&0!==Object.keys(s.data).length||(await (0,l.X)("saveTimetable",{type:"class",data:e},n),t=!0),localStorage.removeItem("class-timetable"),localStorage.removeItem("saemo-guest-timetable-class")}}catch(t){console.error("Guest migration error:",t)}finally{t&&e(),o.current=!1}})()},[s,i,r,e]),null}let f=(0,n.createContext)(void 0);function p(t){let{children:e}=t,s=(0,a.wh)(),c=(0,a.tH)(),l=(0,a.N)(),u=(0,a.Kw)(),p=(0,o.NL)(),{showToast:v}=(0,r.pm)(),{status:y}=(0,d.kP)(),g=(0,h.Dv)(),x=(0,n.useRef)(y);(0,n.useEffect)(()=>{if(("loading"===x.current||"unauthenticated"===x.current)&&"authenticated"===y){let t=setTimeout(()=>{console.log("[StudentProvider] Session transition detected:",x.current,"→ authenticated. Invalidating queries."),p.invalidateQueries({queryKey:a.bs.all}),p.invalidateQueries({queryKey:a.ic.all})},300);return x.current=y,()=>clearTimeout(t)}x.current=y},[y,p]),(0,n.useEffect)(()=>{if("authenticated"!==y||!s.isError&&!c.isError)return;console.warn("[StudentProvider] Self-healing: Query in error state while authenticated. Scheduling retry...");let t=setTimeout(()=>{console.log("[StudentProvider] Self-healing: Retrying failed queries."),p.invalidateQueries({queryKey:a.bs.all}),p.invalidateQueries({queryKey:a.ic.all})},2e3);return()=>clearTimeout(t)},[y,s.isError,c.isError,p]);let b=(0,n.useMemo)(()=>{var t;return null!==(t=s.data)&&void 0!==t?t:[]},[s.data]),w=(0,n.useMemo)(()=>{var t;return null!==(t=c.data)&&void 0!==t?t:["담임 학급"]}
1,[c.data]),j=(0,n.useMemo)(()=>!!g||s.isSuccess&&c.isSuccess||s.isFetched&&void 0!==s.data,[g,s.isSuccess,c.isSuccess,s.isFetched,s.data]),k=s.isLoading||c.isLoading,S=s.isError||c.isError?s.error||c.error:null,C=u.addClass.mutateAsync,O=u.removeClass.mutateAsync,N=u.renameClass.mutateAsync,E=u.updateClassOrder.mutateAsync,M=l.createStudent.mutateAsync,z=l.deleteStudent.mutateAsync,R=l.updateStudent.mutateAsync,P=l.bulkCreateStudents.mutateAsync,I=(0,n.useCallback)(async t=>{w.includes(t)||await C(t)},[w,C]),A=(0,n.useCallback)(async t=>{"담임 학급"!==t&&"담임학급"!==t&&await O(t)},[O]),L=(0,n.useCallback)(async(t,e)=>{"담임 학급"!==t&&"담임학급"!==t&&e.trim()&&t!==e&&await N({oldName:t,newName:e.trim()})},[N]),T=(0,n.useCallback)(async t=>{await E(t)},[E]),F=(0,n.useCallback)(async t=>{try{return await M(t),!0}catch(t){return console.error("Failed to add student:",t),v(t.message||"요청을 처리하지 못했습니다.","error"),!1}},[M,v]),K=(0,n.useCallback)(async t=>{try{return await z(t),!0}catch(t){return console.error("Failed to remove student:",t),!1}},[z]),Z=(0,n.useCallback)(async(t,e)=>{try{return await R({id:t,...e}),!0}catch(t){return console.error("Failed to update student:",t),!1}},[R]),q=(0,n.useCallback)(async t=>{let e=b.length>0?Math.max(...b.map(t=>t.number)):0,s=t.map((t,s)=>({name:t,number:e+1+s}));await P({students:s})},[b,P]),D=s.refetch,V=(0,n.useCallback)(async()=>{await D()},[D]);(0,n.useEffect)(()=>{let t=()=>{p.invalidateQueries()};return window.addEventListener("refresh-active-view",t),()=>window.removeEventListener("refresh-active-view",t)},[p]);let G=(0,n.useMemo)(()=>({students:b,classes:w,addClass:I,removeClass:A,renameClass:L,updateClassOrder:T,addStudent:F,removeStudent:K,updateStudent:Z,bulkAddStudents:q,reloadStudents:V,isLoaded:j,isLoading:k,error:S}),[b,w,I,A,L,T,F,K,Z,q,V,j,k,S]);return(0,i.jsxs)(f.Provider,{value:G,children:[(0,i.jsx)(m,{reloadStudents:V}),e]})}function v(){let t=(0,n.useContext)(f);if(!t)throw Error("useStudents must be used within a StudentProvider");return t}function y(){var t;let{students:e,isLoaded:s}=v(),{data:i,status:r}=(0,d.kP)(),n=(0,u.XC)(),o=(0,h.Dv)(),m=s&&e.length>0,{data:f}=(0,c.a)({queryKey:[...a.bs.all,"has-roster",null==i?void 0:null===(t=i.user)||void 0===t?void 0:t.id],enabled:s&&!m&&!o&&"authenticated"===r,staleTime:6e5,queryFn:async()=>{var t;let e=await (0,l.X)("hasStudentRoster",{},n);return!!(e.success&&(null===(t=e.data)||void 0===t?void 0:t.hasRoster))}});return m||!0===f}},34137:function(t,e,s){s.d(e,{j:function(){return a}});var i=s(2265);let r=[],n=!1;function a(t){let e=!(arguments.length>1)||void 0===arguments[1]||arguments[1],s=(0,i.useRef)(t);(0,i.useEffect)(()=>{s.current=t},[t]),(0,i.useEffect)(()=>{if(!e)return;n||(n=!0,window.addEventListener("keydown",t=>{if("Escape"!==t.key)return;let e=r[r.length-1];e&&e.call()}));let t={call:()=>s.current()};return r.push(t),()=>{let e=r.lastIndexOf(t);-1!==e&&r.splice(e,1)}},[e])}},46977:function(t,e,s){s.d(e,{a:function(){return a}});
1var i=s(2265),r=s(34137);let n=[];function a(t,e){let s=(0,i.useRef)(null);return(0,r.j)(e,t),(0,i.useEffect)(()=>{let e=s.current;if(!t||!e)return;let i=document.activeElement;n.push(e);let r=()=>Array.from(e.querySelectorAll('button:not([disabled]), a[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(t=>!t.closest("[inert]")&&t.getClientRects().length>0),a=()=>{var t;return(null!==(t=r()[0])&&void 0!==t?t:e).focus()};e.contains(document.activeElement)||a();let o=t=>{var s,i;if(n.at(-1)!==e||"Tab"!==t.key)return;let a=r(),o=null!==(s=a[0])&&void 0!==s?s:e,c=null!==(i=a.at(-1))&&void 0!==i?i:e;e.contains(document.activeElement)&&(t.shiftKey?document.activeElement!==o:document.activeElement!==c)||(t.preventDefault(),(t.shiftKey?c:o).focus())},c=t=>{n.at(-1)!==e||e.contains(t.target)||a()};return document.addEventListener("keydown",o),document.addEventListener("focusin",c),()=>{n.splice(n.indexOf(e),1),document.removeEventListener("keydown",o),document.removeEventListener("focusin",c),(null==i?void 0:i.isConnected)&&i.focus()}},[t]),s}},82941:function(t,e,s){s.d(e,{Wk:function(){return i}});function i(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:64,r=e-i;return r<=s||t.bottom-t.top>r-s?0:t.bottom>r?t.bottom-r:t.top<s?t.top-s:0}},8345:function(t,e,s){s.d(e,{Y:function(){return n},l:function(){return r}});let i=new WeakSet;function r(t){i.add(t)}function n(t){return i.has(t)}},28691:function(t,e,s){s.d(e,{W:function(){return i}});function i(t){let e,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e4,i=new Promise((t,i)=>{e=setTimeout(()=>i(Error("응답이 늦어지고 있어요. 잠시 후 다시 시도해 주세요.")),s)});return Promise.race([Promise.resolve().then(t),i]).finally(()=>clearTimeout(e))}},2894:function(t,e,s){s.d(e,{R:function(){return o},m:function(){return a}});var i=s(18238),r=s(7989),n=s(11255),a=class extends r.F{#t;#e;#s;#i;constructor(t){super(),this.#t=t.client,this.mutationId=t.mutationId,this.#s=t.mutationCache,this.#e=[],this.state=t.state||o(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#e.includes(t)||(this.#e.push(t),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#e=this.#e.filter(e=>e!==t),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#e.length||("pending"===this.state.status?this.scheduleGc():this.#s.remove(this))}continue(){return this.#i?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#r({type:"continue"})},s={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#i=(0,n.Mz)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#r({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#r({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});let i="pending"===this.state.status,r=!this.#i.canStart();try{if(i)e();else{this.#r({type:"pending",variables:t,isPaused:r}),this.#s.config.onMutate&&await this.#s.config.onMutate(t,this,s);let e=await this.options.onMutate?.(t,s);e!==this.state.context&&this.#r({type:"pending",context:e,variables:t,isPaused:r})}let n=await this.#i.start();return await this.#s.config.onSuccess?.(n,t,this.state.context,this,s),await this.options.onSuccess?.(n,t,this.state.context,s),await this.#s.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,t,this.state.context,s),this.#r({type:"success",data:n}),n}catch(e){try{await this.#s.config.onError?.(e,t,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onError?.(e,t,this.state.context,s)}catch(t){Promise.reject(t)}try{await this.#s.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,s)}catch(t){Promise.reject(t)}throw this.#r({type:"error",error:e}),e}finally{this.#s.runNext(this)}}#r(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};
1case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),i.Vr.batch(()=>{this.#e.forEach(e=>{e.onMutationUpdate(t)}),this.#s.notify({mutation:this,type:"updated",action:t})})}};function o(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},21770:function(t,e,s){s.d(e,{D:function(){return u}});var i=s(2265),r=s(2894),n=s(18238),a=s(24112),o=s(45345),c=class extends a.l{#t;#n=void 0;#a;#o;constructor(t,e){super(),this.#t=t,this.setOptions(e),this.bindMethods(),this.#c()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){let e=this.options;this.options=this.#t.defaultMutationOptions(t),(0,o.VS)(this.options,e)||this.#t.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#a,observer:this}),e?.mutationKey&&this.options.mutationKey&&(0,o.Ym)(e.mutationKey)!==(0,o.Ym)(this.options.mutationKey)?this.reset():this.#a?.state.status==="pending"&&this.#a.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#a?.removeObserver(this)}onMutationUpdate(t){this.#c(),this.#l(t)}getCurrentResult(){return this.#n}reset(){this.#a?.removeObserver(this),this.#a=void 0,this.#c(),this.#l()}mutate(t,e){return this.#o=e,this.#a?.removeObserver(this),this.#a=this.#t.getMutationCache().build(this.#t,this.options),this.#a.addObserver(this),this.#a.execute(t)}#c(){let t=this.#a?.state??(0,r.R)();this.#n={...t,isPending:"pending"===t.status,isSuccess:"success"===t.status,isError:"error"===t.status,isIdle:"idle"===t.status,mutate:this.mutate,reset:this.reset}}#l(t){n.Vr.batch(()=>{if(this.#o&&this.hasListeners()){let e=this.#n.variables,s=this.#n.context,i={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#o.onSuccess?.(t.data,e,s,i)}catch(t){Promise.reject(t)}try{this.#o.onSettled?.(t.data,null,e,s,i)}catch(t){Promise.reject(t)}}else if(t?.type==="error"){try{this.#o.onError?.(t.error,e,s,i)}catch(t){Promise.reject(t)}try{this.#o.onSettled?.(void 0,t.error,e,s,i)}catch(t){Promise.reject(t)}}}this.listeners.forEach(t=>{t(this.#n)})})}},l=s(29827);function u(t,e){let s=(0,l.NL)(e),[r]=i.useState(()=>new c(s,t));i.useEffect(()=>{r.setOptions(t)},[r,t]);let a=i.useSyncExternalStore(i.useCallback(t=>r.subscribe(n.Vr.batchCalls(t)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),u=i.useCallback((t,e)=>{r.mutate(t,e).catch(o.ZT)},[r]);if(a.error&&(0,o.L3)(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:u,mutateAsync:a.mutate}}},71632:function(t,e,s){s.d(e,{a:function(){return n}});var i=s(86900),r=s(68873);function n(t,e){return(0,r.r)(t,i.z,e)}},52345:function(t,e,s){s.d(e,{J:function(){return a}});var i=s(47435),r=s(4662),n=s(2265);function a(){i.O.current||(0,r.Ad)();let[t]=(0,n.useState)(i.n.current);return t}}}]);

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.