PageSourceSearch

https://naemo.ai/_next/static/chunks/app/layout-4959e97960817ccf.js

js naemo.ai collected 2026-10-02 01:12:20 UTC 22,578 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{14002:function(e,t,n){Promise.resolve().then(n.t.bind(n,50594,23)),Promise.resolve().then(n.t.bind(n,2778,23)),Promise.resolve().then(n.bind(n,85123)),Promise.resolve().then(n.bind(n,65129)),Promise.resolve().then(n.bind(n,64743)),Promise.resolve().then(n.bind(n,61961)),Promise.resolve().then(n.bind(n,9999)),Promise.resolve().then(n.bind(n,15536)),Promise.resolve().then(n.bind(n,94535)),Promise.resolve().then(n.bind(n,70480)),Promise.resolve().then(n.bind(n,85504)),Promise.resolve().then(n.t.bind(n,46959,23)),Promise.resolve().then(n.t.bind(n,13291,23))},85504:function(e,t,n){"use strict";n.d(t,{default:function(){return a}});var i=n(37746);let r=new Set(["LCP","CLS","INP","FCP","TTFB"]);function a(){return(0,i.useReportWebVitals)(e=>{if(r.has(e.name))try{let t=JSON.stringify({name:e.name,value:Math.round(1e3*e.value)/1e3,rating:e.rating,path:window.location.pathname+window.location.hash});navigator.sendBeacon?navigator.sendBeacon("/api/vitals",t):fetch("/api/vitals",{method:"POST",body:t,keepalive:!0}).catch(()=>{})}catch(e){}}),null}},85123:function(e,t,n){"use strict";n.d(t,{default:function(){return d}});var i=n(57437),r=n(27526),a=n(98319),o=n(2265),s=n(42208),c=n(51817),l=n(47692);function d(){var e,t,n,d,u;let{data:h}=(0,r.kP)(),[m,f]=(0,o.useState)(!1),{showToast:v}=(0,a.pm)();if(!(null==h?void 0:null===(e=h.user)||void 0===e?void 0:e.impersonatedBy))return null;let p=(null==h?void 0:null===(t=h.user)||void 0===t?void 0:t.name)||(null==h?void 0:null===(n=h.user)||void 0===n?void 0:n.email)||"대상 사용자",x=(null==h?void 0:null===(d=h.user)||void 0===d?void 0:d.impersonatedByName)||(null==h?void 0:null===(u=h.user)||void 0===u?void 0:u.impersonatedByEmail)||"관리자",w=async()=>{if(!m){f(!0);try{let e=await fetch("/api/admin/impersonate",{method:"DELETE"});if(!e.ok){let t=await e.json().catch(()=>({}));v((null==t?void 0:t.error)||"가장 모드 종료에 실패했습니다.","error"),f(!1);return}window.location.href="/admin/users"}catch(e){console.error("[Impersonation] stop failed",e),v("가장 모드 종료에 실패했습니다.","error"),f(!1)}}};return(0,i.jsxs)("div",{className:"sticky top-0 z-[100] flex items-center justify-between gap-3 border-b border-red-500/50 bg-red-600 px-4 py-2 text-white shadow-lg",role:"alert","aria-live":"polite",children:[(0,i.jsxs)("div",{className:"flex min-w-0 items-center gap-2 text-sm",children:[(0,i.jsx)(s.Z,{size:16,className:"shrink-0"}),(0,i.jsxs)("span",{className:"truncate",children:[(0,i.jsx)("strong",{className:"font-semibold",children:p}),(0,i.jsx)("span",{className:"opacity-80",children:" 계정으로 보는 중"}),(0,i.jsxs)("span",{className:"opacity-60 hidden sm:inline",children:[" \xb7 읽기 전용 \xb7 관리자: ",x]})]})]}),(0,i.jsxs)("button",{onClick:w,disabled:m,className:"flex shrink-0 items-center gap-1.5 rounded bg-white/10 px-3 py-1 text-xs font-semibold transition-colors hover:bg-white/20 disabled:opacity-50",children:[m?(0,i.jsx)(c.Z,{size:12,className:"animate-spin"}):(0,i.jsx)(l.Z,{size:12}),"관리자로 돌아가기"]})]})}},90982:function(e,t,n){"use strict";n.d(t,{ContentLoadingState:function(){return l},Q:function(){return s}});var i=n(57437),r=n(2265),a=n(21235),o=n(93448);function s(e){let{label:t="내용을 불러오고 있어요",slowLabel:n,className:a}=e,[s,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{c(!1);let e=setTimeout(()=>c(!0),8e3);return()=>clearTimeout(e)},[t]),(0,i.jsx)("p",{role:"status","aria-atomic":"true",className:(0,o.cn)("text-[13px] leading-5 text-zinc-600 dark:text-zinc-400",a),children:s?null!=n?n:"".concat(t,". 평소보다 시간이 걸리고 있어요."):t})}function c(e){let{count:t,table:n=!1}=e;return(0,i.jsx)("div",{className:"divide-y divide-zinc-200/60 dark:divide-white/[0.06]",children:Array.from({length:t},(e,t)=>(0,i.jsxs)("div",{className:"flex min-h-12 items-center gap-4 py-3",children:[(0,i.jsx)(a.Od,{width:24,height:16,className:"shrink-0 rounded"}),(0,i.jsx)(a.Od,{width:t%2?"30%":"40%",height:14,className:"rounded"}),n&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Od,{width:"20%",height:14,className:"ml-auto rounded"}),(0,i.jsx)(a.Od,{width:"16%",height:14,className:"rounded"})]})]},t))})}function l(e){let{variant:t="table",label:n,slowLabel:r,className:l,rows:d=7}=e;return(0,i.jsxs)("div",{className:(0,o.cn)("w-full min-w-0 bg-white p-4 md:p-6 dark:bg-zinc-950",l),"data-loading-layout":t,"aria-busy":"true",children:[(0,i.jsx)(s,{label:n,slowLabel:r,className:"mb-5"}),(0,i.jsx)("div",{"aria-hidden":"true",children:"workspace"===t?(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)(a.Od,{height:32,className:"mb-4"}),(0,i.jsx)(c,{count:8})]}),(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)(a.Od,{width:"35%",height:28}),(0,i.jsx)("div",{className:"flex gap-4",children:[0,1,2].map(e=>(0,i.jsx)(a.Od,{width:80,height:28},e))}),(0,i.jsx)(a.Od,{height:160}),(0,i.jsx)(c,{count:5,table:!0})]})]}):"calendar"===t?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"mb-5 flex items-center justify-between",children:[(0,i.jsx)(a.Od,{width:140,height:28}),(0,i.jsx)(a.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},(e,t)=>(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)(a.Od,{width:18,height:12,className:"rounded"}),t%4==1&&(0,i.jsx)(a.Od,{height:18,className:"mt-4 rounded"})]},t))})]}):"cards"===t||"zones"===t?(0,i.jsx)("div",{className:(0,o.cn)("grid gap-4","zones"===t?"grid-cols-2 lg:grid-cols-4":"grid-cols-1 md:grid-cols-2 xl:grid-cols-3"),children:Array.from({length:"zones"===t?8:6},(e,n)=>(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)(a.Od,{width:"50%",height:16}),(0,i.jsx)(a.Od,{height:"zones"===t?64:112}),(0,i.jsx)(a.Od,{width:"75%",height:14})]},n))}):"grades"===t?(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)(a.Od,{width:"30%",height:24}),(0,i.jsx)("div",{className:"grid grid-cols-3 gap-4",children:[0,1,2].map(e=>(0,i.jsx)(a.Od,{height:80},e))}),(0,i.jsx)(a.Od,{height:220}),(0,i.jsx)(c,{count:4,table:!0})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Od,{width:"list"===t?"65%":"25%",height:22,className:"mb-4"}),(0,i.jsx)(c,{count:d,table:"table"===t})]})})]})}},65129:function(e,t,n){"use strict";n.d(t,{default:function(){return a}});
1var i=n(2265),r=n(41681);function a(){return(0,i.useEffect)(()=>{let e=e=>{var t;(0,r.F)(null!==(t=e.error)&&void 0!==t?t:e.message,{boundary:"window.onerror",filename:e.filename,lineno:e.lineno,colno:e.colno})},t=e=>{(0,r.F)(e.reason,{boundary:"unhandledrejection"})};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",t),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",t)}},[]),null}},64743:function(e,t,n){"use strict";n.d(t,{default:function(){return p}});var i=n(57437),r=n(2265),a=n(52345),o=n(57586),s=n(13100),c=n(45007),l=n(33145),d=n(93448),u=n(9244);let h={light:{stops:[[0,"#F6F9FD"],[.35,"#FAFCFE"],[1,"#FFFFFF"]],glow:"#C5DCF8",glowOpacity:.07,stars:0},dark:{stops:[[0,"#0E1626"],[.52,"#0B1018"],[1,"#08090C"]],glow:"#3C64AF",glowOpacity:.34,stars:90}};function m(e){let t=h[e];if(!t)throw Error("알 수 없는 스플래시 테마: ".concat(e));let n="naemo-splash-sky-".concat(e),i="naemo-splash-glow-".concat(e),r=t.stops.map(e=>{let[t,n]=e;return'<stop offset="'.concat(100*t,'%" stop-color="').concat(n,'"/>')}).join("");return"<defs>"+'<linearGradient id="'.concat(n,'" x1="0" y1="0" x2="0" y2="1">').concat(r,"</linearGradient>")+'<radialGradient id="'.concat(i,'" cx="0.68" cy="0.02" r="0.78">')+'<stop offset="0%" stop-color="'.concat(t.glow,'" stop-opacity="').concat(t.glowOpacity,'"/>')+'<stop offset="100%" stop-color="'.concat(t.glow,'" stop-opacity="0"/>')+"</radialGradient></defs>"+'<rect width="'.concat(2732,'" height="').concat(2732,'" fill="url(#').concat(n,')"/>')+(t.stars?function(e){let t=20260906,n=()=>(t=(1103515245*t+12345)%2147483648)/2147483648,i=[];for(let t=0;t<e;t+=1){let e=(2732*n()).toFixed(1),t=(1748.48*n()).toFixed(1),r=(5*n()+2.5).toFixed(2),a=(.5*n()+.18).toFixed(3);i.push('<circle cx="'.concat(e,'" cy="').concat(t,'" r="').concat(r,'" fill="#ffffff" opacity="').concat(a,'"/>'))}return i.join("")}(t.stars):"")+'<rect width="'.concat(2732,'" height="').concat(2732,'" fill="url(#').concat(i,')"/>')}let f="naemo_rocket_splash_day";function v(){let e=new Date,t="".concat(e.getMonth()+1).padStart(2,"0"),n="".concat(e.getDate()).padStart(2,"0");return"".concat(e.getFullYear(),"-").concat(t,"-").concat(n)}function p(e){let{forceShow:t=!1,isContained:n=!1,onDismiss:h}=e,p=(0,a.J)(),x=(0,r.useRef)(null),[w,g]=(0,r.useState)(t),[y,j]=(0,r.useState)(!1),[b,E]=(0,r.useState)(!1),N=(0,r.useRef)(!1),k=(0,r.useRef)(null),F=(0,r.useRef)({onDismiss:h,reduceMotion:p});(0,r.useEffect)(()=>{F.current={onDismiss:h,reduceMotion:p}},[h,p]);let O=(0,r.useCallback)(()=>{x.current&&clearTimeout(x.current),j(!0),x.current=setTimeout(()=>{var e,t;g(!1),j(!1),null===(e=(t=F.current).onDismiss)||void 0===e||e.call(t)},F.current.reduceMotion?120:650)},[]),S=(0,r.useCallback)(e=>{if(e)try{localStorage.setItem(f,v())}catch(e){return}N.current=!0,x.current&&clearTimeout(x.current),j(!1),g(!0),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{O()},F.current.reduceMotion?120:1700)},[O]);(0,r.useEffect)(()=>{if(t){S(!1);return}if(window.location.pathname.startsWith("/survey"))return;let e=new URLSearchParams(window.location.search).has("splash"),n=(0,u.cz)();if(E(n),window.innerWidth>=768&&!e&&!n)return;let i=e||N.current;if(!i)try{i=localStorage.getItem(f)!==v()}catch(e){}i&&S(!e&&!N.current);let r=()=>S(!1);return window.addEventListener("replay-rocket-splash",r),()=>{window.removeEventListener("replay-rocket-splash",r),k.current&&clearTimeout(k.current)}},[t,S]),(0,r.useEffect)(()=>{if(!w)return;let e=document.querySelectorAll('meta[name="theme-color"]'),t=document.documentElement.classList.contains("dark"),n=t?"#0E1626":"#F6F9FD",i=[];return e.forEach(e=>{i.push(e.getAttribute("content")),e.setAttribute("content",n)}),()=>{e.forEach((e,n)=>{let r=i[n];r?e.setAttribute("content",r):e.setAttribute("content",t?"#09090b":"#FBFBF9")})}},[w]);let T=(0,r.useCallback)(()=>{k.current&&clearTimeout(k.current),x.current&&clearTimeout(x.current),g(!1),j(!1),null==h||h()},[h]);return((0,r.useEffect)(()=>()=>{k.current&&clearTimeout(k.current),x.current&&clearTimeout(x.current)},[]),w)?(0,i.jsx)(o.M,{children:w&&(0,i.jsxs)(s.E.div,{initial:{opacity:1},exit:{opacity:0,transition:{duration:.35,ease:"easeOut"}},onClick:T,className:(0,d.cn)("flex flex-col items-center justify-between select-none cursor-pointer overflow-hidden px-6",n?"absolute inset-0 z-20":"fixed inset-0 z-[99999]",!t&&!n&&!b&&"md:hidden"),style:n?{paddingTop:"48px",paddingBottom:"32px"}:{paddingTop:"calc(env(safe-area-inset-top, 0px) + 32px)",paddingBottom:"calc(env(safe-area-inset-bottom, 0px) + 40px)"},"aria-label":"스플래시 화면 (터치 시 건너뛰기)",children:[(0,i.jsxs)("div",{"aria-hidden":"true",className:"absolute inset-0 bg-[#F6F9FD] dark:bg-[#08090C]",children:[(0,i.jsx)("svg",{viewBox:"0 0 ".concat(2732," ").concat(2732),preserveAspectRatio:"xMidYMid slice",className:"w-full h-full dark:hidden",dangerouslySetInnerHTML:{__html:m("light")}}),(0,i.jsx)("svg",{viewBox:"0 0 ".concat(2732," ").concat(2732),preserveAspectRatio:"xMidYMid slice",className:"w-full h-full hidden dark:block",dangerouslySetInnerHTML:{__html:m("dark")}})]}),(0,i.jsx)("div",{className:"w-full h-4"}),(0,i.jsxs)("div",{className:"flex flex-col items-center justify-center my-auto relative",children:[(0,i.jsx)(s.E.div,{className:"flex items-center justify-center",animate:p?{opacity:y?0:1}:y?{x:520,y:-720,scale:[1,.96,1.2],transition:{duration:.65,ease:[.32,0,.15,1]}}:{x:[0,4,0],y:[0,-8,0],transition:{duration:2,repeat:1/0,ease:"easeInOut"}},children:(0,i.jsx)("div",{className:(0,d.cn)("aspect-square flex items-center justify-center filter drop-shadow-sm",n?"w-[72%] max-w-[260px]":"w-[72vw] max-w-[300px]"),children:(0,i.jsx)(c.w,{src:"/lordicons/rocket-splash.json",size:n?250:280,trigger:p?"":"loop",originalColors:!0,className:"w-full h-full"})})}),(0,i.jsx)(s.E.p,{animate:y?{opacity:0,y:p?0:10}:{opacity:1,y:0},transition:{duration:.25},className:"mt-4 text-[14px] font-semibold text-zinc-600 dark:text-zinc-300 tracking-wide",children:"업무능력 향상중..."})]}),(0,i.jsxs)(s.E.div,{className:"relative w-full flex items-center justify-center pb-2",animate:y?{opacity:0,y:p?0:15}:{opacity:1,y:0},transition:{duration:.3},children:[(0,i.jsx)(l.default,{src:"/images/naemo-handdrawn-logo-light.png",alt:"NAEMO 내모 로고",width:125,height:36,priority:!0,className:"block dark:hidden object-contain h-[34px] sm:h-[36px] w-auto select-none pointer-events-none"}),(0,i.jsx)(l.default,{src:"/images/naemo-handdrawn-logo-dark.png",alt:"NAEMO 내모 로고",width:125,height:36,priority:!0,className:"hidden dark:block object-contain h-[34px] sm:h-[36px] w-auto select-none pointer-events-none"})]})]},"mobile-rocket-splash")}):null}},9999:function(e,t,n){"use strict";n.d(t,{default:function(){return s}});var i=n(57437),r=n(2265),a=n(9244),o=n(33098);function s(){let[e,t]=(0,r.useState)("");return((0,r.useEffect)(()=>{let e;if(!(0,a.cz)())return;let i=!1;return n.e(663).then(n.bind(n,90663)).then(async r=>{let a,{App:s}=r,c=async e=>{let i;try{i=new URL(e)}catch(e){return}if("naemo:"!==i.protocol||!["auth-complete","calendar-complete"].includes(i.hostname)||a===e)return;if(a=e,"calendar-complete"===i.hostname){let{Browser:e}=await n.e(9090).then(n.bind(n,49090));await e.close().catch(()=>{});try{let e=i.searchParams.get("attempt");if(!e)throw Error("Missing calendar attempt");await (0,o.w4)(e),window.location.replace("/?client=ios&calendar=connected#work-schedule")}catch(e){a=void 0,window.dispatchEvent(new CustomEvent("open-google-calendar")),t(e instanceof Error?e.message:"Google Calendar 연결을 완료하지 못했습니다.")}return}let r=i.searchParams.get("code"),s=localStorage.getItem("naemo:nativeAuthVerifier");localStorage.removeItem("naemo:nativeAuthVerifier");let{Browser:c}=await n.e(9090).then(n.bind(n,49090));if(await c.close().catch(()=>{}),!r||!s){t("로그인을 완료하지 못했습니다. 다시 시도해 주세요.");return}try{if(!(await fetch("/api/auth/native-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:r,verifier:s}),cache:"no-store"})).ok)throw Error("Native authentication exchange failed");window.location.replace("/?client=ios")}catch(e){t("로그인을 완료하지 못했습니다. 다시 시도해 주세요.")}},l=await s.addListener("appUrlOpen",e=>{let{url:t}=e;c(t)});if(i)await l.remove();else{e=l;let t=await s.getLaunchUrl();(null==t?void 0:t.url)&&c(t.url)}}),()=>{i=!0,null==e||e.remove()}},[]),e)?(0,i.jsxs)("div",{role:"alert",className:"fixed inset-x-4 bottom-6 z-[9999] rounded-xl bg-zinc-900 px-4 py-3 text-sm text-white shadow-xl",children:[e,(0,i.jsx)("button",{type:"button",className:"ml-4 underline",onClick:()=>t(""),children:"닫기"})]}):null}},15536:function(e,t,n){"use strict";n.d(t,{default:function(){return o}});
1var i=n(2265),r=n(9244),a=n(12618);function o(){return(0,i.useEffect)(()=>{if(!(0,r.cz)())return;(0,a.u)();let e=!1,t=requestAnimationFrame(()=>{requestAnimationFrame(async()=>{if(!e)try{let{SplashScreen:e}=await n.e(2409).then(n.bind(n,52409));await e.hide({fadeOutDuration:200})}catch(e){}})});return()=>{e=!0,cancelAnimationFrame(t)}},[]),null}},94535:function(e,t,n){"use strict";n.d(t,{AppProviders:function(){return k}});var i=n(57437),r=n(4908),a=n(98319),o=n(10136),s=n(84929),c=n(27526),l=n(98381),d=n(54114),u=n(87045),h=n(29827),m=n(2265);function f(e){let{children:t}=e,[n]=(0,m.useState)(()=>new d.S({defaultOptions:{queries:{staleTime:6e4,gcTime:18e5,retry:(e,t)=>{var n;return(null==t?void 0:t.message)==="Session Expired"||(null==t?void 0:null===(n=t.message)||void 0===n?void 0:n.includes("Session Expired"))?e<3:e<1},retryDelay:e=>Math.min(e>1?2**e*1e3:1e3,3e4),refetchOnWindowFocus:!0,refetchOnReconnect:!0},mutations:{retry:(e,t)=>{var n;return!!((null==t?void 0:t.message)==="Session Expired"||(null==t?void 0:null===(n=t.message)||void 0===n?void 0:n.includes("Session Expired")))&&e<2}}}}));return(0,m.useEffect)(()=>{function e(){u.j.setFocused("visible"===document.visibilityState)}function t(e){e.persisted&&u.j.setFocused(!0)}return document.addEventListener("visibilitychange",e),window.addEventListener("pageshow",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("pageshow",t)}},[]),(0,i.jsx)(h.aH,{client:n,children:t})}var v=n(86315),p=n(67920),x=n(25997),w=n(93202),g=n(21751);function y(){return(0,m.useEffect)(()=>{if(window.__compositionClickFixInstalled)return;window.__compositionClickFixInstalled=!0;let e=!1,t=0,n=null,i=null;document.addEventListener("compositionstart",()=>{e=!0},!0),document.addEventListener("compositionend",()=>{e=!1,t=Date.now()},!0),document.addEventListener("pointerdown",r=>{if(0!==r.button)return;let a=r.target;!("INPUT"===a.tagName||"TEXTAREA"===a.tagName||a.isContentEditable)&&(e||Date.now()-t<200)&&(n=a,i&&clearTimeout(i),i=setTimeout(()=>{n&&(n.click(),n=null)},200))},!0),document.addEventListener("click",()=>{i&&(clearTimeout(i),i=null),n=null},!0)},[]),null}function j(){return(0,m.useEffect)(()=>{var e;if(null===(e=window.customElements)||void 0===e?void 0:e.get("lord-icon"))return;let t=!1;return Promise.all([n.e(9468),n.e(9099)]).then(n.bind(n,19099)).then(e=>{let{defineElement:n}=e;t||window.customElements.get("lord-icon")||(n(),function(){let e=window.customElements.get("lord-icon"),t=null==e?void 0:e.prototype;if(!t||"function"!=typeof t.loadIconData)return;let n=t.loadIconData;t.loadIconData=async function(){try{return await n.call(this)}catch(e){window.addEventListener("online",()=>{this.isConnected&&this.srcChanged()},{once:!0});return}}}())}).catch(e=>{console.error("[LordIconRegistry] failed to define lord-icon",e)}),()=>{t=!0}},[]),null}var b=n(19431),E=n(9244);function N(){var e,t;let{data:i,update:r}=(0,c.kP)(),a=null==i?void 0:null===(e=i.user)||void 0===e?void 0:e.id,o=!!(null==i?void 0:null===(t=i.user)||void 0===t?void 0:t.impersonatedBy);return(0,m.useEffect)(()=>{if(!a||o||!(0,E.Ec)())return;let e=!1,t=!1,i=[];return Promise.all([Promise.resolve().then(n.bind(n,56205)),n.e(663).then(n.bind(n,90663))]).then(async n=>{let[a,{App:o}]=n,s=async()=>{if(!e&&!t){t=!0;try{await a.restoreApplePurchases(),e||(await r(),window.dispatchEvent(new Event("naemo:apple-plan-changed")))}catch(e){}finally{t=!1}}};for(let t of(await Promise.allSettled([a.NaemoStore.addListener("transactionUpdated",()=>{s()}),o.addListener("appStateChange",e=>{let{isActive:t}=e;t&&s()})])))"fulfilled"===t.status&&(e?t.value.remove():i.push(()=>{t.value.remove()}));s()}).catch(()=>{}),()=>{e=!0,i.forEach(e=>e())}},[a,o,r]),null}function k(e){let{children:t,session:n}=e;return(0,i.jsxs)(c.eA,{session:n,refetchOnWindowFocus:!1,children:[(0,i.jsx)(b.F,{}),(0,i.jsx)(N,{}),(0,i.jsx)(f,{children:(0,i.jsx)(a.VW,{children:(0,i.jsx)(o.W,{children:(0,i.jsx)(s.E,{children:(0,i.jsx)(p.EI,{children:(0,i.jsx)(r.Pl,{children:(0,i.jsx)(v.No,{children:(0,i.jsx)(l.f,{children:(0,i.jsx)(w.L,{children:(0,i.jsx)(x.x,{children:(0,i.jsxs)(g.nD,{children:[(0,i.jsx)(y,{}),(0,i.jsx)(j,{}),t]})})})})})})})})})})})]})}},70480:function(e,t,n){"use strict";n.d(t,{default:function(){return a}});
1var i=n(2265),r=n(96720);function a(){return(0,i.useEffect)(()=>{try{var e,t;null===(t=navigator.storage)||void 0===t||null===(e=t.persist)||void 0===e||e.call(t)}catch(e){}try{(0,r.Fv)(sessionStorage)}catch(e){}let n=window.setTimeout(()=>{try{(0,r.wt)(sessionStorage)}catch(e){}},4e3);if(!("serviceWorker"in navigator))return()=>window.clearTimeout(n);let i=!1,a=!!navigator.serviceWorker.controller,o=()=>{if(!i&&a){try{if(!(0,r.yl)(sessionStorage))return}catch(e){return}window.location.reload()}};return navigator.serviceWorker.addEventListener("controllerchange",o),(async()=>{try{let e=await navigator.serviceWorker.register("/sw.js",{scope:"/"});if(i)return;let t=()=>{var t;null===(t=e.waiting)||void 0===t||t.postMessage("SKIP_WAITING")};e.waiting&&t(),e.addEventListener("updatefound",()=>{var n;null===(n=e.installing)||void 0===n||n.addEventListener("statechange",function(){"installed"===this.state&&navigator.serviceWorker.controller&&t()})})}catch(e){}})(),()=>{i=!0,window.clearTimeout(n),navigator.serviceWorker.removeEventListener("controllerchange",o)}},[]),null}},21235:function(e,t,n){"use strict";n.d(t,{Od:function(){return a}});var i=n(57437),r=n(93448);function a(e){let{className:t,variant:n="rect",width:a,height:o,style:s,...c}=e;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"}[n],t),style:{width:void 0!==a?"number"==typeof a?"".concat(a,"px"):a:void 0,height:void 0!==o?"number"==typeof o?"".concat(o,"px"):o:void 0,...s},"aria-hidden":"true",...c})}n(2265)},82941:function(e,t,n){"use strict";function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:64,r=t-i;return r<=n||e.bottom-e.top>r-n?0:e.bottom>r?e.bottom-r:e.top<n?e.top-n:0}n.d(t,{Wk:function(){return i}})},8345:function(e,t,n){"use strict";n.d(t,{Y:function(){return a},l:function(){return r}});let i=new WeakSet;function r(e){i.add(e)}function a(e){return i.has(e)}},28691:function(e,t,n){"use strict";function i(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e4,i=new Promise((e,i)=>{t=setTimeout(()=>i(Error("응답이 늦어지고 있어요. 잠시 후 다시 시도해 주세요.")),n)});return Promise.race([Promise.resolve().then(e),i]).finally(()=>clearTimeout(t))}n.d(t,{W:function(){return i}})},2778:function(){},46959:function(){},13291:function(){}},function(e){e.O(0,[9930,2461,2211,2750,4146,6137,2558,7526,1351,6689,5176,3145,3100,9585,8361,8319,3369,7790,6248,6011,6245,3202,5101,4666,2971,2117,1744],function(){return e(e.s=14002)}),_N_E=e.O()}]);

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.