PageSourceSearch

https://naemo.ai/_next/static/chunks/6710.a6552fcf6c464311.js

js naemo.ai collected 2026-10-02 01:15:21 UTC 8,082 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6710],{26710:function(e,t,n){n.d(t,{h:function(){return u}});var r=n(57437),i=n(2265),l=n(54887),a=n(92451),o=n(10407),s=n(93448);let c=e=>{let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(n,"-").concat(r)},d=e=>{let t=new Date(e);return"".concat(t.getMonth()+1,"월 ").concat(t.getDate(),"일")},u=e=>{var t,n,u;let{value:m,onChange:h,endDate:g,onEndDateChange:f,className:p,overlay:x=!1}=e,[v,w]=(0,i.useState)(!1),[b,k]=(0,i.useState)(new Date(m)),[E,j]=(0,i.useState)(!!g),[y,z]=(0,i.useState)(!1),[F,N]=(0,i.useState)(!1),[C,M]=(0,i.useState)(0),[D,S]=(0,i.useState)(null),A=(0,i.useRef)(null),L=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=e=>{var t;let n=e.target;null!==(t=L.current)&&void 0!==t&&t.contains(n)||!A.current||A.current.contains(n)||w(!1)};return document.addEventListener("mouseup",e),document.addEventListener("touchend",e),()=>{document.removeEventListener("mouseup",e),document.removeEventListener("touchend",e)}},[]),(0,i.useEffect)(()=>{j(!!g)},[g]),(0,i.useEffect)(()=>{var e;if(!v){N(!1),M(0),S(null);return}let t=()=>{let e=L.current,t=A.current;if(!e||!t)return;let n=t.getBoundingClientRect(),r=e.offsetWidth,i=e.offsetHeight,l=getComputedStyle(document.documentElement),a=parseFloat(l.getPropertyValue("--vv-offset-top"))||0,o=a+(parseFloat(l.getPropertyValue("--app-height"))||window.innerHeight),s=n.bottom+8;if(s+i>o-8){let e=n.top-8-i;s=e>=a+8?e:Math.max(a+8,o-8-i)}S({left:Math.min(Math.max(8,n.left+n.width/2-r/2),Math.max(8,window.innerWidth-r-8)),top:s})},n=()=>{var e,t,n;let r=L.current;if(!r)return;let i=null===(e=A.current)||void 0===e?void 0:e.getBoundingClientRect();if(i){let e=function(e){let t=0,n=document.documentElement.clientWidth,r=e.parentElement;for(;r&&r!==document.body;){let e=getComputedStyle(r);if("visible"!==e.overflowX){let e=r.getBoundingClientRect();t=Math.max(t,e.left),n=Math.min(n,e.right)}if("fixed"===e.position)break;r=r.parentElement}return{left:t,right:n}}(r),t=i.left+i.width/2-r.offsetWidth/2,n=t+r.offsetWidth,l=0;n>e.right-8&&(l=e.right-8-n),t+l<e.left+8&&(l=e.left+8-t),0!==l&&M(l)}let l=function(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t),n=e.overflowY;if(("auto"===n||"scroll"===n)&&t.scrollHeight>t.clientHeight)return t;if("fixed"===e.position)break;t=t.parentElement}return null}(r);if(l){let e=r.getBoundingClientRect().bottom-l.getBoundingClientRect().bottom+8;if(e>0){let t=l.scrollHeight-l.clientHeight-l.scrollTop;t>0&&l.scrollBy({top:Math.min(e,t),behavior:"smooth"}),t<e&&N(!0);return}}let a=getComputedStyle(document.documentElement),o=parseFloat(a.getPropertyValue("--vv-offset-top"))||0,s=parseFloat(a.getPropertyValue("--app-height"))||window.innerHeight,c=r.getBoundingClientRect();!(c.bottom<=o+s-8)&&((null!==(n=null===(t=A.current)||void 0===t?void 0:t.getBoundingClientRect().top)&&void 0!==n?n:0)-8-c.height>=o+8?N(!0):l||r.scrollIntoView({block:"nearest",behavior:"smooth"}))},r=0,i=requestAnimationFrame(()=>{r=requestAnimationFrame(x?t:n)});return x?(window.addEventListener("scroll",t,!0),window.addEventListener("resize",t),null===(e=window.visualViewport)||void 0===e||e.addEventListener("resize",t),()=>{var e;cancelAnimationFrame(i),cancelAnimationFrame(r),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",t),null===(e=window.visualViewport)||void 0===e||e.removeEventListener("resize",t)}):()=>{cancelAnimationFrame(i),cancelAnimationFrame(r)}},[v,x]);let Y=new Date(b.getFullYear(),b.getMonth()+1,0).getDate(),R=new Date(b.getFullYear(),b.getMonth(),1).getDay(),B=Array.from({length:Y},(e,t)=>t+1),H=Array.from({length:R},(e,t)=>null),V=e=>{let t=new Date(b);t.setMonth(t.getMonth()+e),k(t)},P=e=>{let t=c(new Date(b.getFullYear(),b.getMonth(),e));E&&f?y?(t<m?(f(m),h(t)):f(t),z(!1),w(!1)):(h(t),f(void 0),z(!0)):(h(t),w(!1))},W=e=>{let t=new Date;return b.getFullYear()===t.getFullYear()&&b.getMonth()===t.getMonth()&&e===t.getDate()},_=e=>{if(!E||!g)return!1;let t=c(new Date(b.getFullYear(),b.getMonth(),e));return t>m&&t<g},q=e=>c(new Date(b.getFullYear(),b.getMonth(),e))===m,Z=e=>!!g&&c(new Date(b.getFullYear(),b.getMonth(),e))===g,I=g?"".concat(d(m)," ~ ").concat(d(g)):d(m);return(0,r.jsxs)("div",{ref:A,className:"relative w-full",children:[(0,r.jsx)("button",{type:"button",onClick:()=>w(!v),className:(0,s.cn)("calendar-picker-trigger w-full text-sm text-center bg-transparent roun
1ded-lg text-zinc-900 dark:text-white hover:bg-zinc-100 dark:hover:bg-white/5 transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus:bg-zinc-100 dark:focus:bg-white/5",p||"px-2 py-2"),title:g?"".concat(m," ~ ").concat(g):m,children:I}),v&&(u=(0,r.jsxs)("div",{ref:L,className:(0,s.cn)("bg-white dark:bg-[#1C1C1E] border border-zinc-200 dark:border-white/10 rounded-2xl shadow-2xl p-4 w-[280px] max-w-[calc(100vw-32px)] animate-in fade-in duration-200 calendar-picker-popup",x?"fixed z-[300] slide-in-from-top-2":(0,s.cn)("absolute left-1/2 -translate-x-1/2 z-50",F?"bottom-full mb-2 slide-in-from-bottom-2":"top-full mt-2 slide-in-from-top-2")),style:x?{left:null!==(t=null==D?void 0:D.left)&&void 0!==t?t:0,top:null!==(n=null==D?void 0:D.top)&&void 0!==n?n:0,visibility:D?"visible":"hidden"}:C?{marginLeft:C}:void 0,children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("button",{"aria-label":"이전 달",onClick:()=>V(-1),className:"p-1.5 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-lg transition-colors",children:(0,r.jsx)(a.Z,{size:16,className:"text-zinc-500 dark:text-[#8E8E93]"})}),(0,r.jsxs)("span",{className:"text-sm font-semibold text-zinc-900 dark:text-white",children:[b.getFullYear(),"년 ",b.getMonth()+1,"월"]}),(0,r.jsx)("button",{"aria-label":"다음 달",onClick:()=>V(1),className:"p-1.5 hover:bg-zinc-100 dark:hover:bg-white/10 rounded-lg transition-colors",children:(0,r.jsx)(o.Z,{size:16,className:"text-zinc-500 dark:text-[#8E8E93]"})})]}),(0,r.jsx)("div",{className:"grid grid-cols-7 gap-1 text-center text-[11px] text-zinc-400 dark:text-[#8E8E93] mb-2 font-medium",children:["일","월","화","수","목","금","토"].map(e=>(0,r.jsx)("div",{children:e},e))}),(0,r.jsxs)("div",{className:"grid grid-cols-7 gap-1",children:[H.map((e,t)=>(0,r.jsx)("div",{className:"w-8 h-8"},"b-".concat(t))),B.map(e=>{let t=q(e),n=Z(e),i=_(e);return(0,r.jsx)("button",{onClick:()=>P(e),className:(0,s.cn)("w-8 h-8 rounded-lg text-xs font-medium transition flex items-center justify-center",t||n||i||W(e)?"":"calendar-date-normal text-zinc-600 dark:text-white/70 hover:bg-zinc-100 dark:hover:bg-white/10"),children:!W(e)||t||n||i?t||n?(0,r.jsx)("span",{className:"calendar-date-selected w-7 h-7 flex items-center justify-center rounded-md text-xs shadow-sm",children:e}):i?(0,r.jsx)("span",{className:"calendar-date-inrange w-7 h-7 flex items-center justify-center rounded-md text-xs",children:e}):e:(0,r.jsx)("span",{className:"calendar-date-today w-6 h-6 flex items-center justify-center rounded-full text-xs",children:e})},e)})]}),f&&(0,r.jsxs)("div",{className:"mt-4 pt-3 border-t border-zinc-200 dark:border-white/10 flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-xs text-zinc-500 dark:text-[#8E8E93]","aria-live":"polite",children:E?y?"종료일을 선택하세요":"시작일을 선택하세요":"종료일 설정"}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":E,"aria-label":"종료일 설정",onClick:()=>{let e=!E;j(e),!e&&f?(f(void 0),z(!1)):e&&z(!g)},className:(0,s.cn)("relative w-11 h-6 rounded-full transition-colors shrink-0 calendar-picker-toggle",E?"bg-[#007AFF] dark:bg-[#2883DE]":"bg-zinc-300 dark:bg-[#3A3A3C] dark:hover:bg-[#48484A]"),children:(0,r.jsx)("span",{className:(0,s.cn)("absolute top-0.5 left-0.5 w-5 h-5 rounded-full bg-white transition-transform duration-200 shadow-sm",E?"translate-x-5":"translate-x-0")})})]})]}),x&&"undefined"!=typeof document?(0,l.createPortal)(u,document.body):u)]})}}}]);

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.