PageSourceSearch

https://drivingteacher.co.kr/_next/static/chunks/52719-05aacfbe12e65a1a.js

js drivingteacher.co.kr collected 2026-10-01 15:23:40 UTC 42,648 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[52719],{41300:function(e,t,l){l.d(t,{TB:function(){return o},Wf:function(){return c},c6:function(){return d},cu:function(){return r},d2:function(){return i},hz:function(){return s},vf:function(){return a}});var n=l(98428);function r(e){return"string"==typeof e&&e.length>0}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.filter(e=>!e.isClosed).slice(0,t)}function s(e){return e.filter(e=>"FULL"===e.scope).map(e=>e.orderId).filter(e=>!!e)}function i(e,t){if(0===t.length)return e;let l=new Set(t);return e.filter(e=>!l.has(e.id))}function o(e,t){var l,n,r,s;let i=null!==(n=a(e,1)[0])&&void 0!==n?n:null,o=null!==(r=t[0])&&void 0!==r?r:null;if(!i&&!o)return null;if(!i)return{kind:"order",order:o};if(!o)return{kind:"reservation",card:i};let c=Date.parse(i.requestedAtIso);return(Number.isNaN(c)?0:c)>=(null!==(s=null===(l=o.requestedAt)||void 0===l?void 0:l.getTime())&&void 0!==s?s:0)?{kind:"reservation",card:i}:{kind:"order",order:o}}function c(e){return(0,n.P)(e)?"direct-compact":"partner-legacy"}function d(e){return!e||"non-member"===e.provider}},32672:function(e,t,l){l.d(t,{Ye:function(){return o},dJ:function(){return d}});var n=l(73840),r=l(14237),a=l(30202),s=l(16407),i=l(41300);let o=["booking","my-reservations"];class c extends Error{constructor(){super("예약을 보려면 로그인이 필요해요."),this.name="MyReservationsUnauthorizedError"}}function d(){var e;let{userId:t,isInitialLoading:l}=(0,n.Ti5)(),d=(0,i.cu)(t),u=(0,r.a)({queryKey:[...o,t],queryFn:async()=>{var e;let t=await (null===(e=a.I8.currentUser)||void 0===e?void 0:e.getIdToken());if(!t)throw Error("예약 조회 인증 토큰을 가져오지 못했어요.");let l=await s.hi.booking["my-reservations"].$get({},{headers:{Authorization:"Bearer ".concat(t)}});if(401===l.status)throw new c;if(!l.ok)throw Error("내 예약 조회 실패");let n=await l.json();return"reservations"in n?n.reservations:[]},enabled:d,staleTime:3e4,retry:(e,t)=>!(t instanceof c)&&e<3});return{reservations:null!==(e=u.data)&&void 0!==e?e:[],isLoading:l||d&&u.isLoading,isError:u.isError,isUnauthorized:u.error instanceof c,isAuthenticated:d}}},53571:function(e,t,l){l.d(t,{G:function(){return i}});var n=l(31549);l(44194);var r=l(34250),a=l(34792),s=l(81595);function i(e){let{academyId:t,onOpenGuide:l}=e,i=(0,s.U)(t);return i?(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"bg-Gray-100 h-8 w-full"}),(0,n.jsx)(r.d,{title:i.banner.title,description:i.banner.description,onClick:()=>l(i.entryBlogId)}),i.series&&(0,n.jsx)(a.Y,{series:i.series,onSelect:l})]}):null}},85086:function(e,t,l){l.d(t,{K:function(){return c}});var n=l(31549),r=l(44194),a=l(74490),s=l(85605),i=l(11588);let o=a.oC.map(e=>({...e,icon:a.Ms.web(e.id),url:a.Bm.detail(e.id)}));function c(e){let{academyName:t,academyBaseUrl:l,onItemClick:a}=e,[c,d]=r.useState([]);r.useEffect(()=>{d(function(){try{let e=localStorage.getItem("completed-benefits");return e?JSON.parse(e):[]}catch(e){return[]}}())},[]);let u=e=>{if(a)a(e);else if(l){let t="".concat(l).concat(e.url);(0,s.m)(t,"혜택 안내")}};return(0,n.jsxs)("div",{className:"flex flex-col gap-16 px-16",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,n.jsx)("p",{className:"text-Gray-900 text-[18px] font-bold leading-[1.4] tracking-[-0.54px]",children:t?"".concat(t," 혜택의 모든 것"):"혜택의 모든 것"}),(0,n.jsx)("p",{className:"text-14-normal-medium text-Gray-500",children:"모든 이벤트는 중복 참여 가능합니다!"})]}),(0,n.jsx)("div",{className:"flex flex-col gap-16",children:o.map(e=>{let t=c.includes(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>u(e),className:"border-1 border-Gray-200 flex w-full items-center justify-between rounded-lg px-16 py-8",children:[(0,n.jsxs)("div",{className:"flex items-center gap-12",children:[(0,n.jsx)("div",{className:"relative h-32 w-32 shrink-0 overflow-hidden",children:(0,n.jsx)("img",{src:e.icon,alt:e.title,className:"h-full w-full object-contain"})}),(0,n.jsxs)("div",{className:"flex flex-col items-start gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-8",children:[(0,n.jsx)("p",{className:"text-16-normal-bold text-Gray-900",children:e.title}),t&&(0,n.jsx)("span",{className:"bg-Green-100 text-Green-500 rounded-xs px-6 py-2 text-[11px] font-bold leading-[1.4] tracking-[-0.33px]",children:"참여완료"})]}),(0,n.jsx)("p",{className:"text-14-normal-medium text-Purple-500",children:e.subt
1itle})]})]}),(0,n.jsx)(i.u,{icon:"arrowright-outlined",size:16,className:"fill-Gray-900 shrink-0"})]},e.id)})})]})}},27009:function(e,t,l){l.d(t,{G:function(){return c}});var n=l(31549),r=l(44194),a=l(61102),s=l(70885),i=l(23250);function o(e){let{etaMinutes:t,stationName:l,driverInfo:s,onClick:i}=e,[o,c]=r.useState(0),d=r.useMemo(()=>{let e=[];return null!=t&&t<=2?e.push("곧 도착해요!"):null!=t?e.push("약 ".concat(t,"분 후 도착")):e.push("셔틀 운행 중"),l&&e.push("".concat(l," 정류장")),s&&e.push(s),e},[t,l,s]);return r.useEffect(()=>{if(d.length<=1)return;let e=setInterval(()=>{c(e=>(e+1)%d.length)},3e3);return()=>clearInterval(e)},[d.length]),(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("button",{type:"button",onClick:i,className:"mb-6 flex w-full items-center gap-8 px-4 py-6 active:opacity-70",children:[(0,n.jsxs)("span",{className:"relative flex h-8 w-8 flex-shrink-0",children:[(0,n.jsx)("span",{className:"absolute inset-0 rounded-full bg-Green-500 opacity-60 animate-ping"}),(0,n.jsx)("span",{className:"relative h-8 w-8 rounded-full bg-Green-500"})]}),(0,n.jsx)("div",{className:"relative flex-1 h-[20px] overflow-hidden",children:d.map((e,t)=>(0,n.jsx)("div",{className:"absolute inset-0 flex items-center text-14-normal-bold text-Gray-900 transition-all duration-300",style:{transform:"translateY(".concat((t-o)*100,"%)"),opacity:t===o?1:0},children:e},e))}),(0,n.jsx)(a.J,{icon:"arrowright-outlined",size:16,className:"fill-Gray-400 flex-shrink-0"})]})})}function c(e){let{onReservationChangeClick:t,reservationChangeDisabled:l=!1,showReservationChangeButton:r=!0,isShuttleActive:a,onTrackShuttleClick:c,shuttleEtaMinutes:d,shuttleStationName:u,shuttleDriverInfo:m}=e,x=(0,s._)(),p=!!(a&&c);return p||r?(0,n.jsx)("div",{className:(0,i.cn)("fixed bottom-0 left-0 right-0 z-50 bg-White-100 px-16 pt-10 shadow-[0_-2px_8px_rgba(0,0,0,0.1)]",p&&"rounded-t-xl",x?"pb-32":"pb-10"),children:(0,n.jsxs)("div",{className:"mx-auto max-w-[500px]",children:[p&&c&&(0,n.jsx)(o,{etaMinutes:d,stationName:u,driverInfo:m,onClick:c}),(0,n.jsx)("div",{className:"flex items-center gap-8",children:r&&(0,n.jsx)("button",{type:"button",onClick:l?void 0:t,disabled:l,className:(0,i.cn)("flex h-52 w-full items-center justify-center rounded-[14px] px-24",l?"bg-Gray-200 cursor-not-allowed":"bg-Yellow-400"),children:(0,n.jsx)("span",{className:(0,i.cn)("text-16-normal-bold",l?"text-Gray-400":"text-Gray-900"),children:"예약 변경"})})})]})}):null}},34036:function(e,t,l){l.d(t,{f:function(){return i}});var n=l(31549);l(44194);var r=l(85605),a=l(11588);let s=[{id:"course-satisfaction",emoji:"\uD83D\uDEDE",bgColor:"bg-Gray-200",title:"장내기능 만족도 조사",subtitle:"교육\xb7강사 설명 등에 대한 의견을 들어요.",url:"https://forms.gle/N8vaKncyUQ3RE3qn8"},{id:"road-satisfaction",emoji:"\uD83D\uDEE3️",bgColor:"bg-Green-100",title:"도로주행 만족도 조사",subtitle:"주행 교육, 친절도에 대한 의견을 들어요.",url:"https://forms.gle/vQrqocQJV9cFYcZN8"}];function i(e){let{onItemClick:t}=e,l=e=>{t?t(e):(0,r.m)(e.url,"수강 후기")};return(0,n.jsxs)("div",{className:"flex flex-col gap-16 px-16",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,n.jsx)("p",{className:"text-[18px] font-bold leading-[1.4] tracking-[-0.54px] text-Gray-900",children:"수강 후기 남기기"}),(0,n.jsx)("p",{className:"text-14-normal-medium text-Gray-500",children:"5-10분만 투자해주시면 서비스 개선에 큰 힘이 됩니다."})]}),(0,n.jsx)("div",{className:"flex flex-col gap-16",children:s.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>l(e),className:"flex w-full items-center justify-between rounded-lg border-1 border-Gray-200 px-16 py-8",children:[(0,n.jsxs)("div",{className:"flex items-center gap-12",children:[(0,n.jsx)("div",{className:"flex h-32 w-32 shrink-0 items-center justify-center rounded-xs ".concat(e.bgColor),children:(0,n.jsx)("span",{className:"text-[18px]",children:e.emoji})}),(0,n.jsxs)("div",{className:"flex flex-col items-start gap-2",children:[(0,n.jsx)("p",{className:"text-16-normal-bold text-Gray-900",children:e.title}),(0,n.jsx)("p",{className:"text-14-normal-medium text-Gray-500",children:e.subt
1itle})]})]}),(0,n.jsx)(a.u,{icon:"arrowright-outlined",size:16,className:"shrink-0 fill-Gray-900"})]},e.id))})]})}},38315:function(e,t,l){l.d(t,{h:function(){return i}});var n=l(31549),r=l(44194),a=l(17488),s=l(39052);function i(e){let{isOpen:t,toleranceOptions:l,onConfirm:i,onCoordinate:o,onClose:c}=e,[d,u]=r.useState(0);if(r.useEffect(()=>{t&&u(0)},[t]),!t||0===l.length)return null;let m="road_test"===l[0].type?"도로 시험":"기능 시험";return(0,n.jsx)(a.h,{onClickBackground:c,children:(0,n.jsxs)("div",{className:"bg-White-100 absolute left-1/2 top-1/2 flex w-[312px] -translate-x-1/2 -translate-y-1/2 flex-col gap-24 rounded-3xl px-16 pb-24 pt-32",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,n.jsxs)("p",{className:"text-center text-[21px] font-bold leading-[29px] text-Gray-900",children:["수업 직후 ",m,",",(0,n.jsx)("br",{}),"합격률이 높아요"]}),(0,n.jsxs)("p",{className:"text-14-normal-medium text-center text-Gray-500",children:["방금 연습한 내용을 바로 적용할 수 있어,",(0,n.jsx)("br",{}),"수업 직후 ",m," 응시를 추천드려요."]})]}),(0,n.jsx)("div",{className:"scrollbar-all-hide -mr-8 flex max-h-[44vh] flex-col gap-8 overflow-y-auto pr-8",children:l.map((e,t)=>{let l=(0,s.A)(e.type),r=t===d;return(0,n.jsxs)("button",{type:"button","aria-pressed":r,onClick:()=>u(t),className:"flex flex-row items-center gap-12 rounded-lg border-[1px] p-14 text-left ".concat(r?"border-Yellow-400 bg-Yellow-100":"border-Gray-200 bg-White-100"),children:[(0,n.jsx)("span",{className:"flex h-40 w-40 shrink-0 items-center justify-center rounded-full text-[14px] font-bold ".concat(l.className),children:l.label}),(0,n.jsxs)("span",{className:"flex flex-1 flex-col gap-2",children:[(0,n.jsx)("span",{className:"text-14-normal-bold text-Gray-900",children:e.title}),(0,n.jsxs)("span",{className:"text-12-medium text-Gray-500",children:[e.dateLabel," \xb7 ",e.timeLabel]})]})]},"".concat(e.dateLabel,"-").concat(e.timeLabel))})}),(0,n.jsxs)("div",{className:"flex w-full flex-col items-center gap-10",children:[(0,n.jsxs)("div",{className:"flex w-full gap-8",children:[(0,n.jsx)(a.W,{label:"담당자와 상의",size:"large",styles:"filled-gray",fill:!0,onClick:o}),(0,n.jsx)(a.W,{label:"확인",size:"large",styles:"filled-yellow",fill:!0,onClick:()=>i(d)})]}),(0,n.jsx)("button",{type:"button",onClick:c,className:"text-14-normal-bold text-Gray-600",children:"이전"})]})]})})}},40361:function(e,t,l){l.d(t,{G:function(){return o}});var n=l(31549),r=l(44194),a=l(17488),s=l(39052);function i(e){let{schedule:t}=e,l=(0,s.A)(t.type);return(0,n.jsxs)("div",{className:"border-Gray-300 flex flex-row items-center gap-12 rounded-lg border-[1px] p-14",children:[(0,n.jsx)("span",{className:"flex h-40 w-40 shrink-0 items-center justify-center rounded-full text-[14px] font-bold ".concat(l.className),children:l.label}),(0,n.jsxs)("span",{className:"flex flex-col gap-2",children:[(0,n.jsx)("span",{className:"text-16-normal-bold text-Gray-900",children:t.title}),(0,n.jsxs)("span",{className:"text-14-normal-medium text-Gray-500",children:[t.dateLabel," \xb7 ",t.timeLabel]})]})]})}function o(e){let{isOpen:t,schedules:l,onPrev:s,onConfirm:o}=e;return t?(0,n.jsx)(a.h,{onClickBackground:s,children:(0,n.jsxs)("div",{className:"bg-White-100 absolute left-1/2 top-1/2 flex w-[312px] -translate-x-1/2 -translate-y-1/2 flex-col gap-24 rounded-3xl px-16 pb-24 pt-32",children:[(0,n.jsx)("p",{className:"text-center text-[21px] font-bold leading-[29px] text-Gray-900",children:"변경된 날짜 때문에\n아래 일정도 조정이 필요해요.".split("\n").map((e,t)=>(0,n.jsxs)(r.Fragment,{children:[e,0===t&&(0,n.jsx)("br",{})]},t))}),(0,n.jsx)("div",{className:"flex flex-col gap-1",children:l.map(e=>(0,n.jsx)(i,{schedule:e},e.id))}),(0,n.jsxs)("div",{className:"flex w-full gap-8",children:[(0,n.jsx)(a.W,{label:"이전",size:"large",styles:"filled-gray",fill:!0,onClick:s}),(0,n.jsx)(a.W,{label:"확인",size:"large",styles:"filled-yellow",fill:!0,onClick:o})]})]})}):null}},34250:function(e,t,l){l.d(t,{d:function(){return r}});var n=l(31549);function r(e){let{title:t,description:l,onClick:r}=e;return(0,n.jsxs)("button",{type:"button",onClick:r,className:"bg-Sky-100 flex w-full items-center gap-2 px-16 py-12",children:[(0,n.jsxs)("div",{className:"flex flex-1 flex-col gap-2",children:[(0,n.jsx)("p",{className:"text-16-normal-bold text-Gray-900 text-left",children:t}),(0,n.jsx)("p",{className:"text-12-medium text-Gray-600 text-left",children:l})]}),(0,n.jsx)("div",{className:"h-56 w-56 shrink-0",children:(0,n.jsx)("img",{src:"/my-academy/notebook-guide.png",alt:"학원 가이드",className:"h-full w-full object-cover"})})]})}l(44194)},34792:function(e,t,l){l.d(t,{Y:function(){return a}});var n=l(31549);l(44194);var r=l(61102);function a(e){let{series:t,onSelect:l}=e;return 0===t.length?null:(0,n.jsx)("ul",{className:"flex w-full flex-col px-16",children:t.map(e=>(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",onClick:()=>l(e.blogId),className:"border-b-[1px] border-Gray-100 flex w-full items-center gap-12 py-16 text-left",children:[(0,n.jsx)("span",{className:"bg-Gray-100 text-12-medium text-Gray-700 flex h-24 w-24 shrink-0 items-center justify-center rounded-full",children:e.order}),(0,n.jsx)("span",{className:"text-14-normal-medium text-Gray-900 flex-1",children:e.title}),(0,n.jsx)(r.J,{icon:"arrowright-outlined",className:"fill-Gray-400 h-16 w-16 shrink-0"})]})},e.blogId))})}},9480:function(e,t,l){l.d(t,{u:function(){return i}});var n=l(31549),r=l(44194),a=l(45388),s=l(18053);class i extends r.Component{static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("[MyAcademy] Error caught by boundary:",e),console.error("[MyAcademy] Component stack:",t.componentStack)}render(){return this.state.hasError?(0,n.jsx)(o,{error:this.state.error,onReset:this.handleReset,fallbackRoute:this.props.fallbackRoute}):this.props.children}constructor(e){super(e),this.handleReset=()=>{this.setState({hasError:!1,error:null})},this.state={hasError:!1,error:null}}}function o(e){let{error:t,onReset:l,fallbackRoute:r="/profile"}=e,i=(0,s.useRouter)();return(0,n.jsx)("div",{className:"flex min-h-screen flex-col items-center justify-center bg-White-100 px-16",children:(0,n.jsxs)("div",{className:"flex flex-col items-center text-center",children:[(0,n.jsx)("div",{className:"bg-Gray-100 rounded-full p-16",children:(0,n.jsx)(a.JO,{icon:"Info-filled",size:48,className:"fill-Gray-500"})}),(0,n.jsx)(a.LZ,{className:"h-24"}),(0,n.jsx)("h2",{className:"text-18-bold text-Gray-900",children:"일시적인 오류가 발생했습니다"}),(0,n.jsx)(a.LZ,{className:"h-8"}),(0,n.jsxs)("p",{className:"text-14-normal-medium text-Gray-600",children:["잠시 후 다시 시도해주세요.",(0,n.jsx)("br",{}),"문제가 지속되면 고객센터로 문의해주세요."]}),!1,(0,n.jsx)(a.LZ,{className:"h-32"}),(0,n.jsxs)("div",{className:"flex w-full max-w-[300px] flex-col gap-8",children:[(0,n.jsx)(a.Wv,{label:"다시 시도",styles:"filled-yellow",size:"large",onClick:l,className:"w-full"}),(0,n.jsx)(a.Wv,{label:"이전 페이지로",styles:"outlined",size:"large",onClick:()=>i.push(r),className:"w-full"})]})]})})}},47968:function(e,t,l){l.d(t,{u:function(){return C}});var n=l(31549),r=l(44194),a=l(25536),s=l(65675),i=l(619);function o(e,t){let l=new Date("".concat(e,"T").concat(t,":00+09:00")),n=new Date,r=(l.getTime()-n.getTime())/36e5;return{canChange:r>48,hoursRemaining:Math.floor(r)}}var c=l(74295),d=l(59770),u=l(70885),m=l(28570),x=l(4031),p=l(16407),f=l(91448),h=l(20203),g=l(33759),b=l(38315),y=l(40361),w=l(75819);let v=["일","월","화","수","목","금","토"];function j(e){switch(e.type){case"theory":return"학과 교육";case"skill_test":return"기능 시험";case"road_test":return"도로 시험";case"road":case"road_large":case"road_small":return e.part?"도로 수업 ".concat(e.part,"차"):"도로 수업";default:return e.part?"기능 교육 ".concat(e.part,"차"):"기능 교육"}}function N(e){let t=new Date(e.datetimeMin+324e5),l=t.getUTCMonth()+1,n=t.getUTCDate(),r=v[t.getUTCDay()],a=String(t.getUTCHours()).padStart(2,"0"),s=String(t.getUTCMinutes()).padStart(2,"0");return{id:e.id,type:e.stage,title:function(e){switch(e){case"theory":return"학과 교육";case"skill":return"기능 교육";case"skill_test":return"기능 시험";case"road":return"도로 교육";case"road_test":return"도로 시험"}}(e.stage),dateLabel:"".concat(l,"월 ").concat(n,"일(").concat(r,")"),timeLabel:"".concat(a,":").concat(s)}}function k(e){return{id:e.id,period:e.period,startTime:e.startTime,endTime:e.endTime,remainingSeats:e.availableCount}}function T(e,t,l){let n=[];for(let r of Object.keys(e))for(let a of e[r]||[])(void 0===a.availableCount||!(a.availableCount<=0))&&(0,h.Nw)(t,l,r,a.startTime)&&n.push({pick:a,pickDate:r});return n.sort((e,t)=>
1e.pickDate.localeCompare(t.pickDate)||e.pick.startTime.localeCompare(t.pick.startTime)),n[0]||null}function D(e){let{month:t,today:l,selectedDate:a,lessonDate:s,availableSlots:i,onDateClick:o,restrictedDate:c,maxDate:d,minDate:u,schedulesByDate:m}=e,x=r.useMemo(()=>(0,g.i2)(t.getFullYear(),t.getMonth()),[t]);return(0,n.jsx)("div",{className:"grid w-full flex-shrink-0 grid-cols-7 gap-y-8",children:x.map((e,t)=>{var r,x;if(!e)return(0,n.jsx)("div",{className:"h-72"},"empty-".concat(t));let p=(0,g.$x)(e),f=i.has(p),h=p===s,b=f||h,y=(0,g.KC)(e,l),w=a&&(0,g.KC)(e,a),v=e<l&&!y,j=e<c&&!v,N=d&&e>d,k=u&&e<u,T=y&&!a;return(0,n.jsxs)("button",{type:"button",onClick:()=>o(e),disabled:!b||v||j||!!N||!!k,className:"flex h-72 flex-col items-center justify-start gap-2 rounded-xs px-2 pb-4 pt-2 ".concat(!(h&&!f)||v||j||N||k?"":"bg-Gray-100"),children:[(0,n.jsx)("span",{className:"flex h-[22px] w-full items-center justify-center rounded-sm text-[12px] leading-[1.5] tracking-[-0.36px] ".concat(w||T?"bg-Yellow-400 text-Gray-900 font-bold":!b||v||j||N||k?"text-Gray-300 font-medium":"text-Gray-900 font-medium"),children:e.getDate()}),y&&!((null!==(x=null==m?void 0:null===(r=m[p])||void 0===r?void 0:r.length)&&void 0!==x?x:0)>0)&&(0,n.jsx)("span",{className:"text-Gray-900 text-[10px] font-medium leading-[1.4] tracking-[-0.3px]",children:"오늘"}),(()=>{var e;let t=null!==(e=null==m?void 0:m[p])&&void 0!==e?e:[];if(0===t.length)return null;let l=t.slice(0,2),r=t.length-l.length;return(0,n.jsxs)("span",{className:"flex w-full flex-col items-stretch gap-[1px]",children:[l.map((e,t)=>{let l=function(e){switch(e){case"theory":return{cls:"bg-Purple-100 border-l-Purple-500 text-Purple-500",label:"학과 교육"};case"skill_test":return{cls:"bg-Orange-400 border-l-Orange-400 text-Orange-100",label:"기능 시험"};case"road":case"road_large":case"road_small":return{cls:"bg-Sky-100 border-l-Sky-600 text-Sky-600",label:"도로 교육"};case"road_test":return{cls:"bg-[#429CFF] border-l-[#429CFF] text-Sky-100",label:"도로 시험"};default:return{cls:"bg-Orange-100 border-l-Orange-400 text-Orange-400",label:"기능 교육"}}}(e.type);return(0,n.jsx)("span",{className:"block w-full truncate border-l-[2px] px-2 text-left text-[9px] font-bold leading-[1.3] ".concat(l.cls),children:l.label},e.id||t)}),r>0&&(0,n.jsxs)("span",{className:"text-Gray-500 px-2 text-left text-[9px] font-medium leading-[1.3]",children:["+",r]})]})})()]},p)})})}function C(e){var t;let{lesson:l,allSchedules:C,academyId:G,onBack:S,academyPhone:_,neoStudentId:E,test:M=!1,onComplete:I,stepIndex:L,stepTotal:F,isLastStep:R=!0,mode:W,earliestSlotFloor:O,latestSlotCeiling:B,warnOnDate:A,pickOnly:Y=!1,onPick:z,onExit:P}=e,U=(0,u._)(),{openToast:q}=(0,i.p)(),$=new Date,J=r.useMemo(()=>{let e=new Date($);return e.setDate(e.getDate()+0),e},[$]),{maxDate:Q,minDate:K}=r.useMemo(()=>{let e,t;let[n,r,a]=l.date.split("-").map(Number);if("advance"===W?e=new Date(n,r-1,a,23,59,59,999):"postpone"===W&&(t=new Date(n,r-1,a,0,0,0,0)),O){let[e,l,n]=O.date.split("-").map(Number),r=new Date(e,l-1,n,0,0,0,0);t=t&&t>r?t:r}if(B){let[t,l,n]=B.split("-").map(Number),r=new Date(t,l-1,n,23,59,59,999);e=e&&e<r?e:r}return{maxDate:e,minDate:t}},[W,l.date,O,B]),[V,Z]=r.useState(()=>{let[e,t]=l.date.split("-").map(Number);return new Date(e,t-1,1)}),[X,H]=r.useState(()=>{let[e,t,n]=l.date.split("-").map(Number);return new Date(e,t-1,n)}),[ee,et]=r.useState(null),[el,en]=r.useState(!1),[er,ea]=r.useState(!1),[es,ei]=r.useState(!1),[eo,ec]=r.useState(!1),[ed,eu]=r.useState([]),[em,ex]=r.useState([]),ep=(0,x.D)({mutationFn:async e=>{let t=await (0,f.p)(),l=await p.hi["schedule-change"]["cascade-preview"].$post({json:e},{headers:t?{Authorization:"Bearer ".concat(t)}:void 0});if(!l.ok)throw Error((await l.json()).error||"CASCADE_PREVIEW_FAILED");return await l.json()}}),ef=r.useRef(0),[eh,eg]=r.useState(0),[eb,ey]=r.useState(!1),[ew,ev]=r.useState(!1),ej=r.useRef(null),eN=r.useMemo(()=>new Date(V.getFullYear(),V.getMonth()-1,1),[V]),ek=r.useMemo(()=>new Date(V.getFullYear(),V.getMonth()+1,1),[V]),eT=(0,g.i1)(V),{slots:eD,isLoading:eC}=(0,m.D)({academyId:G,month:eT,lessonType:l.type,test:M,neoStudentId:E}),eG=r.useMemo(()=>{let e=new Map;for(let[t,n]of Object.entries(eD)){let r=n.map(k);O&&(r=r.filter(e=>t>O.date||t===O.date&&e.startTime>=O.time)),"advance"===W?r=r.filter(e=>t<l.date||t===l.date&&e.startTime<l.startTime):"postpone"===W&&(r=r.filter(e=>t>l.date||t===l.date&&e.startTime>l.startTime)),(r=r.filter(e=>!C.some(n=>n.id!==l.id&&n.date===t&&n.startTime<e.endTime&&e.startTime<n.endTime))).length>0&&e.set(t,r)}return e},[eD,O,W,l.date,l.startTime,l.id,C]),eS="skill"===l.type||"skill_large"===l.type||"skill_small"===l.type,e_=r.useMemo(()=>
1{if(!eS)return!1;let e=C.filter(e=>"skill"===e.type||"skill_large"===e.type||"skill_small"===e.type).map(e=>e.date).sort();return e.length>0&&l.date===e[e.length-1]},[C,l.date,eS]),eE=r.useMemo(()=>{var e;return null!==(e=C.find(e=>"skill_test"===e.type))&&void 0!==e?e:null},[C]),{slots:eM}=(0,m.D)({academyId:!Y&&e_&&eE?G:"",month:X?(0,g.i1)(X):eT,lessonType:"skill_test",test:M,neoStudentId:E}),eI=r.useMemo(()=>{if(!e_||!eE||!X||!ee)return null;let e=T(eM,(0,g.$x)(X),ee.endTime);if(!e)return null;let{pick:t,pickDate:l}=e,[n,r,a]=l.split("-").map(Number),s=v[new Date(n,r-1,a).getDay()];return{display:{id:eE.id,type:"skill_test",title:"기능 시험",dateLabel:"".concat(r,"월 ").concat(a,"일(").concat(s,")"),timeLabel:"".concat(t.startTime," ~ ").concat(t.endTime)},newDate:l,newTime:t.startTime,newEndTime:t.endTime}},[e_,eE,X,ee,eM]),eL="road"===l.type||"road_large"===l.type||"road_small"===l.type,eF=r.useMemo(()=>{if(!eL)return!1;let e=C.filter(e=>"road"===e.type||"road_large"===e.type||"road_small"===e.type).map(e=>e.date).sort();return e.length>0&&l.date===e[e.length-1]},[C,l.date,eL]),eR=r.useMemo(()=>{var e;return null!==(e=C.find(e=>"road_test"===e.type))&&void 0!==e?e:null},[C]),{slots:eW}=(0,m.D)({academyId:!Y&&eF&&eR?G:"",month:X?(0,g.i1)(X):eT,lessonType:"road_test",test:M,neoStudentId:E}),eO=r.useMemo(()=>{if(!eF||!eR||!X||!ee)return null;let e=T(eW,(0,g.$x)(X),ee.endTime);if(!e)return null;let{pick:t,pickDate:l}=e,[n,r,a]=l.split("-").map(Number),s=v[new Date(n,r-1,a).getDay()];return{display:{id:eR.id,type:"road_test",title:"도로 시험",dateLabel:"".concat(r,"월 ").concat(a,"일(").concat(s,")"),timeLabel:"".concat(t.startTime," ~ ").concat(t.endTime)},newDate:l,newTime:t.startTime,newEndTime:t.endTime}},[eF,eR,X,ee,eW]),[eB,eA]=r.useState(!1),eY=eI?{reco:eI,slots:eM,existing:eE,type:"skill_test"}:eO?{reco:eO,slots:eW,existing:eR,type:"road_test"}:null,ez=r.useMemo(()=>{if(!eY||!X||!ee)return[];let e=(0,g.$x)(X);return(0,h.hA)(eY.slots,e,ee.endTime).map(e=>{var t,l;let[n,r,a]=e.newDate.split("-").map(Number),s=v[new Date(n,r-1,a).getDay()];return{display:{id:null!==(l=null===(t=eY.existing)||void 0===t?void 0:t.id)&&void 0!==l?l:eY.type,type:eY.type,title:"road_test"===eY.type?"도로 시험":"기능 시험",dateLabel:"".concat(r,"월 ").concat(a,"일(").concat(s,")"),timeLabel:"".concat(e.newTime," ~ ").concat(e.newEndTime)},opt:e}})},[eY,X,ee]),eP=r.useCallback(function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!ee||!X||!I)return;let n=(0,g.$x)(X),r=[{originalDate:l.date,originalTime:l.startTime,originalEndTime:l.endTime,originalCourse:j(l),newDate:n,newTime:ee.startTime,newEndTime:ee.endTime}],a=[{id:l.id,type:"theory"===(e=l.type)?"theory":"skill_test"===e?"skill_test":"road_test"===e?"road_test":"road"===e||"road_large"===e||"road_small"===e?"road":"skill",title:j(l),dateLabel:function(e){let[t,l,n]=e.split("-").map(Number);return t&&l&&n?"".concat(l,"월 ").concat(n,"일(").concat(v[new Date(t,l-1,n).getDay()],")"):e}(n),timeLabel:"".concat(ee.startTime," ~ ").concat(ee.endTime)}];for(let e of em)e.original&&e.replacedBy.date&&r.push({originalDate:e.original.date,originalTime:e.original.startTime,originalEndTime:e.original.endTime,originalCourse:e.courseLabel,newDate:e.replacedBy.date,newTime:e.replacedBy.startTime,newEndTime:e.replacedBy.endTime});if(a.push(...ed),t&&(null==eY?void 0:eY.existing)){r.push({originalDate:eY.existing.date,originalTime:eY.existing.startTime,originalEndTime:eY.existing.endTime,originalCourse:"road_test"===eY.type?"도로 시험":"기능 시험",newDate:t.newDate,newTime:t.newTime,newEndTime:t.newEndTime});let[e,l,n]=t.newDate.split("-").map(Number),s=v[new Date(e,l-1,n).getDay()];a.push({id:eY.existing.id,type:eY.type,title:"road_test"===eY.type?"도로 시험":"기능 시험",dateLabel:"".concat(l,"월 ").concat(n,"일(").concat(s,")"),timeLabel:"".concat(t.newTime," ~ ").concat(t.newEndTime)})}I({changes:r,affected:a,coordination:!t&&eY?{coordinationReason:"EXAM_RECOMMEND",recommendedExam:{examType:eY.type,date:eY.reco.newDate,startTime:eY.reco.newTime,endTime:eY.reco.newEndTime}}:null})},[ee,X,I,l,em,ed,eY]),eU=r.useCallback(()=>
1{if(ez.length>0){eA(!0);return}eP(null)},[ez,eP]),[eq,e$]=r.useState(null),eJ=r.useCallback(e=>{var t;let l=null===(t=ez[e])||void 0===t?void 0:t.opt;if(!l){eA(!1);return}if(!(null==eY?void 0:eY.existing)||!E){eA(!1),eP(l);return}let n=Number.parseInt(String(eY.existing.period),10);if(Number.isNaN(n)){eA(!1),eP(l);return}let r="".concat(eY.type,"-").concat(eY.existing.date,"-").concat(n);ep.mutate({neoStudentId:E,movedItems:[{movedItemId:r,newDate:l.newDate,newPeriod:l.newPeriod}]},{onSuccess:e=>{eA(!1),e.preview.resolved.length>0?(eu(e.preview.resolved.map(e=>N(e.replacedBy))),ex(e.preview.resolved),e$(l),ec(!0)):eP(l)},onError:()=>{eA(!1),eP(l)}})},[ez,eY,E,ep,eP]),eQ=r.useMemo(()=>{if(!X)return[];let e=(0,g.$x)(X);return eG.get(e)||[]},[X,eG]),eK=r.useRef(null);r.useEffect(()=>{eQ.length>0&&eK.current&&eK.current.scrollIntoView({behavior:"smooth",block:"center"})},[eQ,X]);let eV=V>new Date($.getFullYear(),$.getMonth(),1),eZ=r.useCallback(()=>{eV&&(Z(e=>new Date(e.getFullYear(),e.getMonth()-1,1)),H(null),et(null))},[eV]),eX=r.useCallback(()=>{Z(e=>new Date(e.getFullYear(),e.getMonth()+1,1)),H(null),et(null)},[]),eH=r.useCallback(e=>{let t=(0,g.$x)(e);if((eG.has(t)||t===l.date)&&(H(e),et(null),t!==l.date)){let{canChange:e}=o(l.date,l.startTime);if(!e){en(!0);return}A&&t===A&&ea(!0)}},[eG,l.date,l.startTime,A]),e0=r.useCallback(e=>{if(X){let{canChange:e}=o(l.date,l.startTime);if(!e){en(!0);return}}et(e)},[X,l.date,l.startTime]),e1=r.useCallback(()=>{var e;let{canChange:t}=o(l.date,l.startTime);if(!t){en(!0);return}if(Y){ee&&X&&z&&z({lessonId:l.id,newDate:(0,g.$x)(X),newPeriod:ee.period,newStartTime:ee.startTime,newEndTime:ee.endTime});return}if(!E||!ee||!X){eU();return}let n="theory"===(e=l.type)?"theory":"skill"===e||"skill_large"===e||"skill_small"===e?"skill":"road"===e||"road_large"===e||"road_small"===e?"road":null,r=Number.parseInt(l.period,10);if(!n||Number.isNaN(r)){eU();return}let a="".concat(n,"-").concat(l.date,"-").concat(r),s=(0,g.$x)(X);ep.mutate({neoStudentId:E,movedItems:[{movedItemId:a,newDate:s,newPeriod:ee.period}]},{onSuccess:e=>{if(0===e.preview.resolved.length){ex([]),eU();return}eu(e.preview.resolved.map(e=>N(e.replacedBy))),ex(e.preview.resolved),ec(!0)},onError:()=>{q({title:"변경 가능 여부 확인 중 오류가 발생했어요. 잠시 후 다시 시도해주세요."})}})},[l.id,l.date,l.startTime,l.type,l.period,E,ee,X,ep,q,eU,Y,z]),e4=r.useCallback(()=>{_&&(window.location.href="tel:".concat(_)),en(!1)},[_]);null===(t=ej.current)||void 0===t||t.offsetWidth;let e2=r.useMemo(()=>{let e=C.find(e=>e.id===l.id);return e?{[e.date]:[e]}:{}},[C,l.id]),e5=["일","월","화","수","목","금","토"],e3=(()=>{switch(l.type){case"theory":return{label:"학과",className:"bg-Purple-100 text-Purple-500"};case"skill_test":return{label:"기능",className:"bg-Orange-400 text-Orange-100"};case"road":case"road_large":case"road_small":return{label:"도로",className:"bg-Sky-100 text-Sky-600"};case"road_test":return{label:"도로",className:"bg-[#429CFF] text-Sky-100"};default:return{label:"기능",className:"bg-Orange-100 text-Orange-400"}}})(),e8=(()=>{switch(l.type){case"theory":return"학과 교육";case"skill_test":return"기능 시험";case"road_test":return"도로 시험";case"road":case"road_large":case"road_small":return l.part?"도로 수업 ".concat(l.part,"차"):"도로 수업";default:return l.part?"기능 교육 ".concat(l.part,"차"):"기능 교육"}})(),e9=(()=>{let[e,t,n]=l.date.split("-").map(Number);return e&&t&&n?"".concat(t,"월 ").concat(n,"일(").concat(e5[new Date(e,t-1,n).getDay()],")"):l.date})();return(0,n.jsxs)("div",{className:"flex flex-col bg-White-100",style:{height:"calc(100dvh - var(--top-web-to-app-banner-height, 0px))"},children:[(0,n.jsx)(c.l,{title:"예약 변경",onClickBackButton:P?()=>ei(!0):S}),(0,n.jsxs)("main",{className:"scrollbar-all-hide flex-1 overflow-y-auto",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-8 px-16 py-16",children:[null!=F&&F>0&&(0,n.jsxs)("span",{className:"text-[14px] leading-[1.5] tracking-[-0.42px]",children:[(0,n.jsx)("span",{className:"text-Gray-900 font-bold",children:null!=L?L:1}),(0,n.jsxs)("span",{className:"text-Gray-400 font-medium",children:["/",F]})]}),(0,n.jsxs)("div",{className:"border-Gray-200 shadow-card flex w-full items-center gap-12 rounded-lg border-[1px] bg-White-100 p-14",children:[(0,n.jsx)("span",{className:"flex h-40 w-40 shrink-0 items-center justify-center rounded-full text-[14px] font-bold ".concat(e3.className),children:e3.label}),(0,n.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,n.jsx)("span",{className:"text-16-normal-bold text-Gray-900",children:e8}),(0,n.jsxs)("span",{className:"text-14-normal-medium text-Gray-500",children:[e9," \xb7 ",l.startTime," ~ ",l.endTime]})]})]})]}),(0,n.jsx)("div",{className:"bg-Gray-100 h-8 w-full"}),(0,n.jsxs)("div",{className:"flex items-center gap-8 px-16 pt-16",children:[(0,n.jsx)("button",{type:"button",onClick:eZ,disabled:!eV,className:"flex h-24 w-24 items-center justify-center","aria-label":"이전 달",children:(0,n.jsx)(s.J,{icon:eV?"arrow-left-black-20":"arrow-left-gray-20",className:"h-24 w-24"})}),(0,n.jsxs)("span",{className:"text-18-bold text-Gray-900",children:[V.getFullYear(),"년 ",V.getMonth()+1,"월"]}),(0,n.jsx)("button",{type:"button",onClick:eX,className:"flex h-24 w-24 items-center justify-center","aria-label":"다음 달",children:(0,n.jsx)(s.J,{icon:"arrow-right-black-20",className:"h-24 w-24"})})]}),(0,n.jsx)("div",{className:"grid grid-cols-7 pt-8",children:["일","월","화","수","목","금","토"].map((e,t)=>(0,n.jsx)("div",{className:"flex h-32 items-center justify-center text-[12px] font-medium ".concat(0===t?"text-Red-400":"text-Gray-500"),children:e},e))}),eC?(0,n.jsx)("div",{className:"flex h-[200px] items-center justify-center",children:(0,n.jsx)(d.Z,{size:32})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{ref:ej,className:"overflow-hidden px-4",onTouchStart:e=>{ef.current=e.touches[0].clientX,ey(!0)},onTouchMove:e=>{if(!eb||ew)return;let t=e.touches[0].clientX-ef.current;if(t>0&&!eV){eg(.3*t);return}eg(t)},onTouchEnd:()=>{var e;if(!eb)return;let t=(null===(e=ej.current)||void 0===e?void 0:e.offsetWidth)||window.innerWidth;if(Math.abs(eh)>.2*t){let e=eh>0?"prev":"next";if("prev"===e&&!eV){ev(!0),eg(0),setTimeout(()=>{ev(!1),ey(!1)},200);return}eg("next"===e?-t:t),ey(!1),ev(!0),setTimeout(()=>{ev(!1),eg(0),"prev"===e?eZ():eX()},200)}else ev(!0),eg(0),setTimeout(()=>{ev(!1),ey(!1)},200)},children:(0,n.jsxs)("div",{className:"flex",style:{transform:"translateX(calc(-100% + ".concat(eh,"px))"),transition:ew?"transform 0.2s ease-out":"none"},children:[(0,n.jsx)(D,{month:eN,today:$,selectedDate:X,lessonDate:l.date,availableSlots:eG,onDateClick:eH,restrictedDate:J,maxDate:Q,minDate:K,schedulesByDate:e2}),(0,n.jsx)(D,{month:V,today:$,selectedDate:X,lessonDate:l.date,availableSlots:eG,onDateClick:eH,restrictedDate:J,maxDate:Q,minDate:K,schedulesByDate:e2}),(0,n.jsx)(D,{month:ek,today:$,selectedDate:X,lessonDate:l.date,availableSlots:eG,onDateClick:eH,restrictedDate:J,maxDate:Q,minDate:K,schedulesByDate:e2})]})}),X&&(0,n.jsx)("div",{ref:eK,className:"mt-16 scroll-mt-16",children:(0,n.jsx)(w.c,{slots:eQ,selectedSlotId:(null==ee?void 0:ee.id)||null,onSelectSlot:e0,currentReservation:(0,g.$x)(X)===l.date?{startTime:l.startTime,endTime:l.endTime}:void 0})})]})]}),(0,n.jsx)("div",{className:"bg-White-100 px-16 pt-10 shadow-[0_-2px_8px_rgba(0,0,0,0.1)] ".concat(U?"pb-32":"pb-10"),children:(0,n.jsxs)("div",{className:"flex gap-8",children:[(0,n.jsx)("button",{type:"button",onClick:S,className:"bg-Gray-200 flex h-52 flex-1 items-center justify-center rounded-[14px]",children:(0,n.jsx)("span",{className:"text-16-normal-bold text-Gray-900",children:"이전"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{ee&&q({title:"".concat(e8," 일정을 선택했어요.")}),e1()},disabled:!ee||ep.isPending,className:"bg-Yellow-400 flex h-52 flex-1 items-center justify-center rounded-[14px] disabled:opacity-40",children:(0,n.jsx)("span",{className:"text-16-normal-bold text-Gray-900",children:ep.isPending?"확인 중…":"다음"})})]})}
1),(0,n.jsx)(a.V,{isOpen:el,title:"48시간 이내로 다가온 수업은 전화로 변경해 드리고 있어요.",body:"보다 정확한 안내를 위해 학원으로 연락 주시면 빠르고 정확하게 도와드릴게요.",close:()=>en(!1),buttons:[(0,n.jsx)(a.Q,{buttonType:"box",text:"취소",color:"filled-gray",onClick:()=>en(!1)},"cancel"),(0,n.jsx)(a.Q,{buttonType:"box",text:"문의하기",color:"filled-yellow",onClick:e4,disabled:!_},"call")]}),(0,n.jsx)(a.V,{isOpen:er,title:"기능 시험 바로 다음날이에요",body:"기능 시험에 불합격하면 도로 교육 일정을 다시 조정해야 할 수 있어요.",close:()=>ea(!1),buttons:[(0,n.jsx)(a.Q,{buttonType:"box",text:"확인",color:"filled-yellow",onClick:()=>ea(!1)},"confirm")]}),(0,n.jsx)(b.h,{isOpen:eB,toleranceOptions:ez.map(e=>e.display),onConfirm:eJ,onCoordinate:()=>{eA(!1),eP(null)},onClose:()=>eA(!1)}),(0,n.jsx)(y.G,{isOpen:eo,schedules:ed,onPrev:()=>ec(!1),onConfirm:()=>{ec(!1),eP(eq),e$(null)}}),(0,n.jsx)(a.V,{isOpen:es,title:"변경을 취소하고 나갈까요?",body:"지금까지 입력한 내용이 초기화돼요.",close:()=>ei(!1),buttons:[(0,n.jsx)(a.Q,{buttonType:"box",text:"계속하기",color:"filled-gray",onClick:()=>ei(!1)},"stay"),(0,n.jsx)(a.Q,{buttonType:"box",text:"나가기",color:"filled-yellow",onClick:()=>{ei(!1),null==P||P()}},"exit")]})]})}},75819:function(e,t,l){l.d(t,{c:function(){return s}});var n=l(31549),r=l(44194);function a(e){let{slot:t,isSelected:l,onSelect:a,disabled:s=!1,isCurrentReservation:i=!1}=e,o=r.useCallback(()=>{s||i||a(t)},[s,i,a,t]);return i?(0,n.jsxs)("div",{className:"flex items-center justify-center gap-4 whitespace-nowrap rounded-sm border-1 border-Gray-300 bg-Gray-100 px-8 py-8",children:[(0,n.jsxs)("span",{className:"text-[14px] font-medium tracking-[-0.42px] text-Gray-500",children:[t.startTime,"~",t.endTime]}),(0,n.jsx)("span",{className:"text-[11px] font-bold leading-[1.4] tracking-[-0.33px] text-Gray-500",children:"현재 예약"})]}):(0,n.jsxs)("button",{type:"button",onClick:o,disabled:s||0===t.remainingSeats,className:"\n        flex items-center justify-center gap-4 whitespace-nowrap rounded-sm px-8 py-8\n        ".concat(l?"border-1 border-Yellow-400 bg-Yellow-100 font-bold":"border-1 border-Gray-200 bg-White-100","\n        ").concat(s||0===t.remainingSeats?"opacity-50":"","\n      "),"aria-pressed":l,children:[(0,n.jsxs)("span",{className:"text-[14px] tracking-[-0.42px] ".concat(l?"font-bold text-Gray-900":"font-medium text-Gray-900"),children:[t.startTime,"~",t.endTime]}),(0,n.jsxs)("span",{className:"text-[11px] font-bold leading-[1.4] tracking-[-0.33px] text-Red-400",children:[t.remainingSeats,"자리 남음"]})]})}function s(e){let{slots:t,selectedSlotId:l,onSelectSlot:r,currentReservation:s}=e,i=s?{id:"current-reservation",period:0,startTime:s.startTime,endTime:s.endTime,remainingSeats:0}:null,o=s?t.filter(e=>e.startTime!==s.startTime||e.endTime!==s.endTime):t;return 0!==o.length||i?(0,n.jsxs)("div",{className:"flex flex-wrap gap-8 px-16",children:[i&&(0,n.jsx)(a,{slot:i,isSelected:!1,onSelect:()=>{},isCurrentReservation:!0}),o.map(e=>(0,n.jsx)(a,{slot:e,isSelected:l===e.id,onSelect:r},e.id))]}):(0,n.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,n.jsx)("p",{className:"text-14-normal-medium text-Gray-500",children:"예약 가능한 시간이 없습니다."})})}},81595:function(e,t,l){l.d(t,{U:function(){return r}});let n={ev8fqjckrB7wpRXjm4wC:{homepageUrl:"https://suwonnewsamsung.co.kr",banner:{title:"학원 첫 날, 뭐부터 할까?",description:"걱정을 덜어주는 직영학원만의 완벽 가이드!"},entryBlogId:"Gbky7sRHMmSpIEy5tqJz"},r6FxLRJpoRG85LrpNM3W:{homepageUrl:"https://sspangyodrive.kr",banner:{title:"면허 취득, 처음부터 끝까지",description:"시험장 가는 날부터 면허증 받는 날까지 5편으로 정리했어요"},entryBlogId:"w8kO41qbRRoSNKswEFMf",series:[{order:0,title:"학원에 다니는데 시험은 왜 시험장에서 보나요?",blogId:"w8kO41qbRRoSNKswEFMf"},{order:1,title:"학과시험(필기) 보러 가는 날",blogId:"p73m4G6rm93kUFn1yygO"},{order:2,title:"기능시험 준비부터 연습면허 받기까지",blogId:"sLD9K7vpr1pwMWIBQwv7"},{order:3,title:"도로주행시험, 마지막 관문이에요",blogId:"q6lusDR4FjAIvbIWGvgx"},{order:4,title:"면허증 받는 날, 그리고 꼭 챙길 기한들",blogId:"ED6uPeDA6MzUNToQWI78"}]}};function r(e){if(e)return n[e]}},28570:function(e,t,l){l.d(t,{D:function(){return a}});var n=l(14237),r=l(16407);function a(e){let{academyId:t,month:l,lessonType:a,test:s=!1,neoStudentId:i}=e,o=t||(s?"test-academy":""),c="skill_test"===a||"road_test"===a,{data:d,isLoading:u,error:m,refetch:x}=(0,n.a)({queryKey:["neo","available-slots",o,l,a,s,i],queryFn:async()=>
1{if(!l||!a)return{success:!1,error:"Required parameters missing"};if(!o)return{success:!1,error:"Academy ID required"};let e=await r.hi.neo["available-slots"].$get({query:{academyId:o,month:l,lessonType:a,...s&&{test:"true"},...i&&{neoStudentId:i}}});if(!e.ok)throw Error("Failed to fetch available slots");return e.json()},enabled:!!((t||s)&&l&&a&&(!c||i)),staleTime:12e4,gcTime:3e5});return{slots:(null==d?void 0:d.slots)||{},isLoading:u,error:m,refetch:x}}},91448:function(e,t,l){l.d(t,{p:function(){return r}});var n=l(30202);async function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3;for(let l=0;l<e;l++){try{var t;let e=await (null===(t=n.I8.currentUser)||void 0===t?void 0:t.getIdToken());if(e)return e}catch(e){console.warn("[Auth] Token retrieval attempt ".concat(l+1," failed:"),e)}if(l<e-1){let e=Math.min(500*Math.pow(2,l),4e3);await new Promise(t=>setTimeout(t,e))}}return console.error("[Auth] Failed to get ID token after max retries"),null}},20203:function(e,t,l){function n(e){let[t,l]=e.split("-").map(Number);return"".concat(12===l?t+1:t,"-").concat(String(12===l?1:l+1).padStart(2,"0"))}function r(e,t){return new Date("".concat(e,"T").concat(t,":00+09:00")).getTime()}l.d(t,{DS:function(){return n},G$:function(){return o},Nw:function(){return s},hA:function(){return i}});let a=[0];function s(e,t,l,n){if(!t)return l===e;if(a.includes(function(e){let[t,l,n]=e.split("-").map(Number);return new Date(t,(l||1)-1,n||1).getDay()}(l)))return!1;let s=r(e,t),i=r(l,n);return!(i<s)&&i-s-function(e,t,l,n){if(n<=l)return 0;let s=0,[i,o,c]=e.split("-").map(Number),[d,u,m]=t.split("-").map(Number),x=new Date(i,o-1,c),p=new Date(d,u-1,m);for(let e=0;x<=p&&e<400;e+=1){if(a.includes(x.getDay())){let e=x.getFullYear(),t=String(x.getMonth()+1).padStart(2,"0"),a=String(x.getDate()).padStart(2,"0"),i=r("".concat(e,"-").concat(t,"-").concat(a),"00:00"),o=Math.min(n,i+864e5)-Math.max(l,i);o>0&&(s+=o)}x.setDate(x.getDate()+1)}return s}(e,l,s,i)<=864e5}function i(e,t,l){let n=[];for(let r of Object.keys(e))for(let a of e[r]||[])(void 0===a.availableCount||a.availableCount>0)&&s(t,l,r,a.startTime)&&n.push({newDate:r,newTime:a.startTime,newEndTime:a.endTime,newPeriod:a.period});return n.sort((e,t)=>e.newDate.localeCompare(t.newDate)||e.newTime.localeCompare(t.newTime)),n}function o(e){let{lastLessonDateAfter:t,lastLessonEndTime:l,examSlots
1ByDate:n}=e,r=i(n,t,l);return 0===r.length?null:{recommendedDate:r[0].newDate,options:r}}},85605:function(e,t,l){l.d(t,{m:function(){return r}});var n=l(3201);function r(e,t){var l;if((0,n.cs)()&&(null===(l=window.flutter_inappwebview)||void 0===l?void 0:l.callHandler)){window.flutter_inappwebview.callHandler("ScreenMove","goToExternal",t,e);return}window.open(e,"_blank","noopener,noreferrer")}},45388:function(e,t,l){l.d(t,{JO:function(){return r.J},LZ:function(){return a.L},Wv:function(){return n.W}});var n=l(44974),r=l(65675),a=l(3750)},17488:function(e,t,l){l.d(t,{W:function(){return n.W},h:function(){return r.h}});var n=l(44974),r=l(90550)}}]);
2//# sourceMappingURL=52719-05aacfbe12e65a1a.js.map

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.