1import{q as Bt,r,s as X,t as y,J as Wt,an as Ve,j as e,X as Mt,z as qt,E as Kt,B as _e,N as Ht,O as Zt,Q as Qt,S as Vt,at as Yt}from"./index-CqGqwWKp.js";import{l as Ye}from"./Map-BElKnxci.js";import{b as Xt,N as Jt}from"./NaverMap-BIODJv5G.js";import{u as es}from"./useMapProvider-BKiIKn_i.js";import{B as J}from"./badge-CajhVRbo.js";import{I as jt}from"./input-C-dhHZfz.js";import{L as kt}from"./label-BKVSJH31.js";import{o as Je}from"./openExternal-4ZDtogox.js";import{M as A}from"./map-pin-DifvMV2M.js";import{H as ie}from"./heart-ByUKI8uv.js";import{S as Ct}from"./search-X9xeeq-b.js";import{R as K}from"./refresh-cw-BMn4FsIZ.js";import{S as ze}from"./star-QJljQarw.js";import{N as St}from"./navigation-DjckAfzu.js";import{E as et}from"./external-link-Cv3lCqbB.js";import{C as ts}from"./chevron-down-D5hvyLKM.js";import{C as ss}from"./chevron-up-BZF2vgGI.js";import{C as Tt}from"./clock-Sbq_3bEj.js";import{S as as}from"./share-2-BtWPkGXJ.js";import{T as rs}from"./trash-2-BogXypcZ.js";import{A as ls}from"./award-Cchfltd5.js";import"./usePersistFn-DaDCSoQ3.js";import"./useComposition-CjDhl5L8.js";import"./index-BZFVO0ST.js";const cs=[{label:"100m",value:100},{label:"300m",value:300},{label:"500m",value:500},{label:"1km",value:1e3},{label:"2km",value:2e3}],ns=100,os=2e3,is=100,ds=3e3,xs=[{label:"ì ì²´",value:"restaurant|cafe|bar",group:"food"},{label:"ììì ",value:"restaurant",group:"food"},{label:"ì¹´í/ë² ì´ì»¤ë¦¬",value:"cafe|bakery",group:"food"},{label:"주ì /ë°",value:"bar",group:"food"},{label:"í¸ìì ",value:"convenience_store",group:"convenience"},{label:"ìë°",value:"lodging",group:"lodging"}],us=new Set(["restaurant","cafe","bar","food","meal_takeaway","meal_delivery","bakery","night_club","liquor_store"]),gs=new Set(["lodging","hotel","motel","hostel","guest_house"]),ms=["ì¤í¼ì¤í
","ì룸","ê³ ìì","ê³ ìí
","íì","ì
°ì´íì°ì¤","ìì´íì°ì¤","ìíí¸","ë¹ë¼","주거","ìë","ìì¸","ì ì¸"],ps=["모í
","í¸í
","민ë°","íì
","ìì´ë¹ì¤ë¹","airbnb","í¸ì¤í
","ì¬ì¸ì","ì¬ê´","리조í¸","ì½ë","ê²ì¤í¸íì°ì¤","guesthouse","íë¹ë¼","pool villa","í ë¹ë¼","í´ìê´","í´ì림","ìì°í´ì림","ê¸ë¨í","glamping","ì¹´ë¼ë°","caravan","ìº í","camping","ìºë¹","cabin","ë°©ê°ë¡","bungalow","inn","lodge","resort","ìì","ìë°","ë°©","room"];function bs(a,i){const P=a.toLowerCase();return ms.some(m=>P.includes(m.toLowerCase()))?!1:!!(i.some(m=>gs.has(m))||ps.some(m=>P.includes(m.toLowerCase())))}function fs(a){return a.some(i=>us.has(i))}function hs(a){const i=a.toLowerCase();return/í¸í
|hotel/.test(i)?"í¸í
":/모í
|motel/.test(i)?"모í
":/íì
|pension|íì
/.test(i)?"íì
":/리조í¸|resort/.test(i)?"리조í¸":/ì½ë|condo/.test(i)?"ì½ë":/민ë°/.test(i)?"민ë°":/ê²ì¤í¸íì°ì¤|guesthouse|guest house/.test(i)?"ê²ì¤í¸íì°ì¤":/í¸ì¤í
|hostel/.test(i)?"í¸ì¤í
":/ì¬ê´|ì¬ì¸ì/.test(i)?"ì¬ê´":/ì¬ì¸ì/.test(i)?"ì¬ì¸ì":/ê¸ë¨í|glamping/.test(i)?"ê¸ë¨í":/ì¹´ë¼ë°|caravan/.test(i)?"ì¹´ë¼ë°":/í´ì림|í´ìê´/.test(i)?"í´ì림":/íë¹ë¼|pool villa/.test(i)?"íë¹ë¼":/ìì´ë¹ì¤ë¹|airbnb/.test(i)?"ê³µì ìë°":/ì¤í
ì´|stay/.test(i)?"ì¤í
ì´":/ì¸|inn/.test(i)?"ì¬ê´":"ìì"}function $e(a,i){return a.includes("lodging")?i?hs(i):"ìì":a.includes("convenience_store")?"í¸ìì ":a.includes("bar")?"주ì ·ë°":a.includes("cafe")?"ì¹´í":a.includes("restaurant")?"ììì ":a.includes("bakery")?"ë² ì´ì»¤ë¦¬":a.includes("meal_takeaway")||a.includes("meal_delivery")?"í
ì´í¬ìì":"ììë£"}function _t(a){return a.includes("convenience_store")?"border-sky-600 text-sky-400 bg-sky-950/40":a.includes("cafe")?"border-amber-700 text-amber-400 bg-amber-950/40":a.includes("bar")||a.includes("night_club")?"border-purple-700 text-purple-400 bg-purple-950/40":a.includes("lodging")||a.includes("hotel")?"border-blue-700 text-blue-400 bg-blue-950/40":"border-green-700 text-green-400 bg-green-950/40"}function Rt(a){const i=a==="cafe|bakery",P=a==="restaurant",m=a==="bar",d=a==="lodging",T=[{featureType:"poi",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"labels.text",stylers:[{visibility:"off"}]},{featureType:"poi.park",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#4a7c59"}]},{featureType:"poi.park",elementType:"labels.text",stylers:[{visibility:"on"}]}];return d?T.push({featureType:"poi.business",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#1e40af"}]},{featureType:"poi.business",elementType:"labels.text",stylers:[{visibility:"on"}]}):i?T.push({featureType:"poi.food_and_drink",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#92400e"}]},{featureType:"poi.food_and_drink",elementType:"labels.text",stylers:[{visibility:"on"}]}):P?T.push({featureType:"poi.food_and_drink",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#166534"}]},{featureType:"poi.food_and_drink",elementType:"labels.text",stylers:[{visibility:"on"}]}):m?T.push({featureType:"poi.food_and_drink",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#6d28d9"}]},{featureType:"poi.food_and_drink",elementType:"labels.text",stylers:[{visibility:"on"}]}):T.push({featureType:"poi.food_and_drink",elementType:"labels.icon",stylers:[{visibility:"on"},{color:"#166534"}]},{featureType:"poi.food_and_drink",elementType:"labels.text",stylers:[{visibility:"on"}]}),T}function Xe(a,i){return i?{bg:"#92400e",text:"#fde68a",border:"#fde68a"}:a.includes("cafe")?{bg:"#4a2c1a",text:"#f5c07a",border:"#c8843a"}:a.includes("bar")||a.includes("night_club")?{bg:"#3b1f5e",text:"#c4b5fd",border:"#7c3aed"}:a.includes("lodging")||a.includes("hotel")?{bg:"#1e3a5f",text:"#93c5fd",border:"#2563eb"}:{bg:"#14532d",text:"#86efac",border:"#16a34a"}}function It(a){return a<1e3?`${Math.round(a)}m`:`${(a/1e3).toFixed(1)}km`}function ys({place:a,onClose:i,provider:P,myLocation:m}){const d=r.useRef(null),T=r.useRef(null),de=r.useRef(null),[R,Pe]=r.useState(null),[ee,$]=r.useState(!1);return r.useEffect(()=>{const N=window.naver;if(P==="naver"&&N&&d.current){const M=new N.maps.Map(d.current,{center:new N.maps.LatLng(a.lat,a.lng),zoom:17,zoomControl:!1,mapDataControl:!1,scaleControl:!1});de.current=M;const te=new N.maps.Marker({map:M,position:new N.maps.LatLng(a.lat,a.lng),title:a.name,icon:{content:'<div style="background:#14532d;color:#86efac;border:2px solid #16a34a;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 2px 8px rgba(0,0,0,0.5);
1cursor:pointer;">â¥</div>',anchor:new N.maps.Point(18,18)}});N.maps.Event.addListener(te,"click",()=>{const xe=a.vicinity?`${a.name} ${a.vicinity}`:a.name,f=`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(xe)}`;Je(f)}),m&&new N.maps.Marker({map:M,position:new N.maps.LatLng(m.lat,m.lng),title:"ë´ ìì¹",icon:{content:'<div style="background:#2563eb;border:3px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 6px rgba(0,0,0,0.4);"></div>',anchor:new N.maps.Point(8,8)}})}else if(P!=="naver"&&window.google?.maps&&d.current){const M=new window.google.maps.Map(d.current,{center:{lat:a.lat,lng:a.lng},zoom:17,mapTypeControl:!1,fullscreenControl:!1,zoomControl:!1,streetViewControl:!1,clickableIcons:!1});T.current=M,new window.google.maps.Marker({map:M,position:{lat:a.lat,lng:a.lng},title:a.name,icon:{url:`data:image/svg+xml;charset=UTF-8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><circle cx="18" cy="18" r="16" fill="#14532d" stroke="#16a34a" stroke-width="2"/><text x="18" y="24" text-anchor="middle" font-size="18" fill="#86efac">â¥</text></svg>')}`,scaledSize:new window.google.maps.Size(36,36),anchor:new window.google.maps.Point(18,18)}}).addListener("click",()=>{const xe=a.vicinity?`${a.name} ${a.vicinity}`:a.name,f=`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(xe)}`;Je(f)}),m&&new window.google.maps.Marker({map:M,position:m,title:"ë´ ìì¹",icon:{path:window.google.maps.SymbolPath.CIRCLE,fillColor:"#2563eb",fillOpacity:1,strokeColor:"#fff",strokeWeight:3,scale:7},zIndex:999})}},[a,P,m]),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:350",className:"fixed inset-0 z-50 flex items-end justify-center bg-black/50",onClick:i,children:e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:351",className:"w-full max-w-lg bg-card rounded-t-2xl shadow-2xl overflow-hidden",onClick:N=>N.stopPropagation(),children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:353",className:"flex items-center justify-between px-4 py-3 border-b bg-[#1a3d2b] text-white",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:354",className:"flex items-center gap-2 min-w-0",children:[e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:355",size:16,className:"text-red-400 shrink-0",fill:"currentColor"}),e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:356",className:"font-semibold text-sm truncate",children:a.name}),a.types&&e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:358",variant:"outline",className:`text-[10px] shrink-0 ${_t(a.types.split(","))}`,children:$e(a.types.split(","),a.name)})]}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:363",onClick:i,className:"text-white/70 hover:text-white ml-2 shrink-0",children:e.jsx(Mt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:364",size:18})})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:368",className:"relative",children:[e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:369",ref:d,style:{height:220},className:"w-full"}),!ee&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:372",className:"absolute bottom-2 left-1/2 -translate-x-1/2 bg-black/60 text-white text-[10px] px-2.5 py-1 rounded-full pointer-events-none",children:"⥠ë§ì»¤ë¥¼ í´ë¦íë©´ ìì¸ ì ë³´ê° íìë©ëë¤"})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:378",className:"px-4 py-3 flex items-center gap-3 flex-wrap border-b",children:[a.vicinity&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:380",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:381",size:11})," ",a.vicinity]}),a.rating&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:385",className:"flex items-center gap-0.5 text-xs text-amber-500",children:[e.jsx(ze,{"data-loc":"client/src/pages/NearbyPlaces.tsx:386",size:11,fill:"currentColor"})," ",a.rating.toFixed(1)]}),a.placeId&&!a.placeId.startsWith("pin_")&&!a.placeId.startsWith("manual_")&&e.jsxs("a",{"data-loc":"client/src/pages/NearbyPlaces.tsx:390",href:`https://www.google.com/maps/place/?q=place_id:${a.placeId}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-0.5 text-xs text-blue-500 hover:underline",onClick:N=>N.stopPropagation(),children:[e.jsx(et,{"data-loc":"client/src/pages/NearbyPlaces.tsx:397",size:10})," 구ê¸ì§ë"]})]}),ee&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:403",className:"px-4 py-3 space-y-1.5",children:[R===null&&e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:405",className:"text-xs text-muted-foreground",children:"ìì¸ ì ë³´ ë¡ë© ì¤..."}),R&&e.jsxs(e.Fragment,{children:[R.address&&e.jsxs("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:410",className:"text-xs text-gray-700 flex items-start gap-1.5",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:411",size:11,className:"shrink-0 mt-0.5 text-gray-400"}),R.address]}),R.hours&&e.jsxs("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:416",className:"text-xs text-emerald-700 flex items-center gap-1.5",children:[e.jsx(Tt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:417",size:11,className:"shrink-0 text-emerald-500"}),"ì¤ë ìì
: ",R.hours]}),R.phone&&e.jsxs("a",{"data-loc":"client/src/pages/NearbyPlaces.tsx:422",href:`tel:${R.phone}`,className:"text-xs text-blue-600 flex items-center gap-1.5 hover:underline",children:["ð ",R.phone]}),R.website&&e.jsxs("a",{"data-loc":"client/src/pages/NearbyPlaces.tsx:427",href:R.website,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-500 flex items-center gap-1 hover:underline",onClick:N=>N.stopPropagation(),children:[e.jsx(et,{"data-loc":"client/src/pages/NearbyPlaces.tsx:428",size:10})," ì¹ì¬ì´í¸"]})]})]})]})})}function Ws(){const{user:a}=Bt(),i=a?.role==="admin",{provider:P}=es(),m=r.useRef(null),d=r.useRef(null),T=r.useRef([]),de=r.useRef(null),R=r.useRef([]),Pe=r.useRef(null);r.useRef(null);const ee=r.useRef(null),$=r.useRef(0),N=r.useRef(null),M=r.useRef([]),te=r.useRef(-1),xe={lat:37.5665,lng:126.978},[f,we]=r.useState(null),[H,je]=r.useState([]),[Z,F]=r.useState(!1),[Le,Q]=r.useState(!1),[j,Ee]=r.useState(300),[_,zt]=r.useState("restaurant|cafe|bar"),[b,ue]=r.useState(null),[G,tt]=r.useState(!1),[st,$t]=r.useState(!1),[at,Lt]=r.useState(!0),[B,Et]=r.useState("search"),[Dt,ge]=r.useState(!1),[ke,rt]=r.useState(300),[z,se]=r.useState(null),[Ot,lt]=r.useState(!1),[me,W]=r.useState(null),[Ut,ct]=r.useState(!1),[D,ae]=r.useState(null),[nt,ot]=r.useState(null),[pe,At]=r.useState(""),[it,De]=r.useState(!1),[re,Oe]=r.useState(""),[dt,Ue]=r.useState(!1),[O,Ce]=r.useState(null),V=X.useUtils(),{data:xt}=X.places.list.useQuery(void 0,{enabled:!!a}),{data:ut}=X.places.recommended.useQuery(),q=r.useMemo(()=>xt??[],[xt]),gt=r.useMemo(()=>ut??[],[ut]),mt=X.places.save.useMutation({onSuccess:()=>
1{V.places.list.invalidate(),y.success("ì¦ê²¨ì°¾ê¸°ì ì ì¥íìµëë¤.")},onError:()=>y.error("ì ì¥ ì¤í¨")}),Ae=X.places.unsave.useMutation({onSuccess:()=>{V.places.list.invalidate(),y.success("ì¦ê²¨ì°¾ê¸°ìì ì ê±°íìµëë¤.")},onError:()=>y.error("ì ê±° ì¤í¨")}),Fe=X.places.adminRecommend.useMutation({onSuccess:()=>{V.places.recommended.invalidate(),y.success("HANT ì¶ì² ì¥ìë¡ ë±ë¡íìµëë¤."),ae(null)},onError:()=>y.error("ë±ë¡ ì¤í¨")}),pt=X.places.adminUnrecommend.useMutation({onSuccess:()=>{V.places.recommended.invalidate(),y.success("HANT ì¶ì²ìì í´ì íìµëë¤.")},onError:()=>y.error("í´ì ì¤í¨")}),Ge=r.useMemo(()=>new Set(q.map(t=>t.placeId)),[q]),C=r.useMemo(()=>new Set(gt.map(t=>t.placeId)),[gt]),le=r.useCallback(async(t=!0)=>{if(Wt.isNativePlatform()){let s=await Ve.checkPermissions();if(s.location!=="granted"&&s.coarseLocation!=="granted"&&(s=await Ve.requestPermissions({permissions:["location","coarseLocation"]})),s.location!=="granted"&&s.coarseLocation!=="granted")throw new Error("LOCATION_PERMISSION_DENIED");const n=await Promise.race([Ve.getCurrentPosition({enableHighAccuracy:t,timeout:1e4,maximumAge:3e4}),new Promise((l,c)=>{window.setTimeout(()=>c(new Error("LOCATION_TIMEOUT")),12e3)})]);return{lat:n.coords.latitude,lng:n.coords.longitude}}if(!navigator.geolocation)throw new Error("LOCATION_UNSUPPORTED");return new Promise((s,n)=>{navigator.geolocation.getCurrentPosition(l=>s({lat:l.coords.latitude,lng:l.coords.longitude}),l=>n(l),{enableHighAccuracy:t,timeout:1e4,maximumAge:3e4})})},[]),Ft=r.useCallback((t,s)=>{if(s.stopPropagation(),!a){y.error("ë¡ê·¸ì¸ì´ íìí©ëë¤.");return}Ge.has(t.placeId)?Ae.mutate({placeId:t.placeId}):mt.mutate({placeId:t.placeId,name:t.name,vicinity:t.vicinity,lat:t.location.lat,lng:t.location.lng,types:t.types.join(","),rating:t.rating})},[a,Ge,mt,Ae]),Gt=r.useCallback((t,s)=>{s.stopPropagation(),i&&(C.has(t.placeId)?pt.mutate({placeId:t.placeId}):ae({place:t,note:"",courseId:""}))},[i,C,pt]),Be=r.useCallback((t,s,n)=>{if(Pe.current)try{Pe.current.setMap(null)}catch{}if(ee.current)try{ee.current.setMap(null)}catch{}Pe.current=new google.maps.Marker({map:t,position:s,title:"ë´ ìì¹",icon:{path:google.maps.SymbolPath.CIRCLE,fillColor:"#2563eb",fillOpacity:1,strokeColor:"#fff",strokeWeight:3,scale:8},zIndex:999}),ee.current=new google.maps.Circle({map:t,center:s,radius:n,strokeColor:"#2563eb",strokeOpacity:.5,strokeWeight:1.5,fillColor:"#2563eb",fillOpacity:.08})},[]),be=r.useCallback((t,s)=>{const n=window.naver;if(n){if(de.current)try{de.current.setPosition(new n.maps.LatLng(s.lat,s.lng))}catch{}else de.current=Xt(t,s,{fillColor:"#2563eb",strokeColor:"#ffffff",radius:10,title:"ë´ ìì¹"});t.setCenter(new n.maps.LatLng(s.lat,s.lng))}},[]),Se=r.useCallback((t,s,n,l,c,o)=>{const x=c?"#f97316":s,v=c?"#fff":n,u=c?"#ea580c":l,k=c?"34px":"28px";return`<div style="background:${x};color:${v};border:2px solid ${u};border-radius:50%;width:${k};height:${k};display:flex;align-items:center;justify-content:center;font-size:${c?"13px":"11px"};font-weight:bold;cursor:pointer;box-shadow:${c?"0 0 10px rgba(249,115,22,0.8)":"0 2px 6px rgba(0,0,0,0.4)"};${!o&&!c?"outline:3px solid #4ade80;outline-offset:1px;":""}">${t}</div>`},[]),Re=r.useCallback((t,s,n,l,c)=>{const o=c?"#f97316":s,x=c?"#fff":n,v=c?"#ea580c":l,u=c?34:28,k=c?16:13,p=c?13:11;return`<svg xmlns="http://www.w3.org/2000/svg" width="${u}" height="${u}" viewBox="0 0 ${u} ${u}"><circle cx="${u/2}" cy="${u/2}" r="${k}" fill="${o}" stroke="${v}" stroke-width="2"/>${c?`<circle cx="${u/2}" cy="${u/2}" r="${k+2}" fill="none" stroke="#f97316" stroke-width="1.5" opacity="0.5"/>`:""}<text x="${u/2}" y="${u/2+4}" text-anchor="middle" font-size="${p}" font-weight="bold" fill="${x}">${t}</text></svg>`},[]),fe=r.useCallback((t,s)=>{const n=window.naver;te.current=t,s==="naver"?T.current.forEach((l,c)=>{const o=M.current[c];if(!o)return;const x=c===t;l.setIcon({content:Se(o.label,o.bg,o.text,o.border,x,o.isGoogleSource),anchor:new n.maps.Point(x?17:14,x?17:14)})}):R.current.forEach((l,c)=>{const o=M.current[c];if(!o)return;const x=c===t,v=Re(o.label,o.bg,o.text,o.border,x),u=x?34:28;l.setIcon({url:"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(v),scaledSize:new google.maps.Size(u,u),anchor:new google.maps.Point(u/2,u/2)})})},[Se,Re]),ce=r.useCallback((t,s,n)=>{const l=window.naver;l&&(T.current.forEach(c=>{try{c.setMap(null)}catch{}}
1),T.current=[],M.current=[],te.current=-1,s.forEach((c,o)=>{const x=n.has(c.placeId),v=!!c.isGoogleSource,{bg:u,text:k,border:p}=Xe(c.types,x),S=x?"â
":String(o+1);M.current.push({idx:o,label:S,bg:u,text:k,border:p,isGoogleSource:v});const U=new l.maps.Marker({map:t,position:new l.maps.LatLng(c.location.lat,c.location.lng),title:c.name,icon:{content:Se(S,u,k,p,!1,v),anchor:new l.maps.Point(14,14)}});l.maps.Event.addListener(U,"click",()=>{fe(o,"naver"),ue(c),se(null),W(null),qe(c.placeId),Ke(c.location,c.distance)}),T.current.push(U)}))},[Se,fe]),Ie=r.useCallback((t,s,n)=>{R.current.forEach(l=>{try{l.setMap(null)}catch{}}),R.current=[],M.current=[],te.current=-1,s.forEach((l,c)=>{const o=n.has(l.placeId),{bg:x,text:v,border:u}=Xe(l.types,o),k=o?"â
":String(c+1);M.current.push({idx:c,label:k,bg:x,text:v,border:u});const p=new google.maps.Marker({map:t,position:l.location,title:l.name,icon:{url:"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(Re(k,x,v,u,!1)),scaledSize:new google.maps.Size(28,28),anchor:new google.maps.Point(14,14)}});p.addListener("click",()=>{fe(c,"google"),ue(l),se(null),W(null),qe(l.placeId),Ke(l.location,l.distance)}),R.current.push(p)})},[Re,fe]),L=r.useCallback(async(t,s,n)=>{const l=m.current,c=d.current;if(!l&&!(P==="naver"&&c)){F(!1),Q(!1);return}F(!0),Q(!0),ue(null);const o=++$.current,x=async p=>{try{return await p()}catch(S){if(await new Promise(U=>window.setTimeout(U,500)),o!==$.current)throw S;return p()}},v=()=>{o===$.current&&F(!1)},u=window.setTimeout(v,ds),k=()=>{o===$.current&&F(!1)};try{const p=l,S=n.split("|"),U=S.length===1&&S[0]==="lodging",Ze=S.length===1&&S[0]==="convenience_store",vt=P==="naver";let ne=[];const Pt=(g,E,Y,oe)=>{const ye=(Y-g)*Math.PI/180,h=(oe-E)*Math.PI/180,w=Math.sin(ye/2)**2+Math.cos(g*Math.PI/180)*Math.cos(Y*Math.PI/180)*Math.sin(h/2)**2;return 6371e3*2*Math.atan2(Math.sqrt(w),Math.sqrt(1-w))},wt=g=>({placeId:g.placeId,name:g.name,vicinity:g.roadAddress||g.address,rating:void 0,types:[g.category?.includes("ì¹´í")||g.category?.includes("커í¼")?"cafe":g.category?.includes("í¸ìì ")?"convenience_store":g.category?.includes("ìë°")||g.category?.includes("íì
")||g.category?.includes("í¸í
")?"lodging":"restaurant"],location:{lat:g.lat,lng:g.lng},distance:Pt(t.lat,t.lng,g.lat,g.lng),isGoogleSource:!!g.isGoogleSource,naverMapUrl:g.naverMapUrl});if(vt){const g=S.filter(h=>["restaurant","cafe","convenience_store","lodging"].includes(h)),E=g.length>
10?g:["restaurant","cafe"];let Y=!1,oe=!1;const he=x(()=>V.walks.searchNearbyGoogle.fetch({lat:t.lat,lng:t.lng,types:E,radiusM:s})).then(h=>{if(o!==$.current)return;const w=h.map(wt);if(w.sort((I,Ne)=>(I.distance??0)-(Ne.distance??0)),je(w),w.length>0&&Q(!1),p&&(Ie(p,w,C),Be(p,t,s),p.setCenter(t),p.setZoom(s<=100?18:s<=300?17:s<=500?16:15)),d.current){be(d.current,t),ce(d.current,w,C);const I=s<=100?18:s<=300?17:s<=500?16:15;d.current.setZoom(I)}k()}).catch(()=>{Y=!0,k()}),ye=x(()=>V.walks.searchNearbyNaver.fetch({lat:t.lat,lng:t.lng,dong:"",types:E,radiusM:s})).then(h=>{if(o!==$.current)return;const w=h.map(wt);w.length>0&&Q(!1),je(I=>{const Ne=I.filter(Me=>!w.some(Te=>Pt(Me.location.lat,Me.location.lng,Te.location.lat,Te.location.lng)<80)),ve=[...w,...Ne];ve.sort((Me,Te)=>(Me.distance??0)-(Te.distance??0));const Qe=ve.slice(0,50);return p&&Ie(p,Qe,C),d.current&&ce(d.current,Qe,C),Qe}),k()}).catch(()=>{oe=!0,k()});if(await Promise.allSettled([he,ye]),window.clearTimeout(u),o!==$.current)return;F(!1),Q(!1),je(h=>(h.length===0&&!(Y&&oe)&&y.info("ë°ê²½ ë´ ì¥ì를 ì°¾ì§ ëª»íìµëë¤. ë°ê²½ì ëíë³´ì¸ì."),h));return}if(!vt&&p){const g=new google.maps.places.PlacesService(p),E=[];await Promise.all(S.map(Y=>new Promise(oe=>{g.nearbySearch({location:t,radius:s,type:Y},(he,ye)=>{ye===google.maps.places.PlacesServiceStatus.OK&&he&&he.forEach(h=>{if(!E.find(w=>w.placeId===h.place_id)){const w=h.geometry?.location;if(!w)return;const I=h.types??[];if(U&&!bs(h.name??"",I)||Ze&&!I.includes("convenience_store")||!U&&!Ze&&!fs(I))return;if(!U&&!Ze){if(S.length===1){const ve=S[0];if(ve==="restaurant"&&I.includes("cafe")&&!I.includes("restaurant")||ve==="bar"&&!I.includes("bar")&&!I.includes("night_club"))return}else if(S.length===2&&S.includes("cafe")&&S.includes("bakery")&&!I.includes("cafe")&&!I.includes("bakery"))return}const Ne=google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(t.lat,t.lng),w);E.push({placeId:h.place_id,name:h.name,vicinity:h.vicinity??"",rating:h.rating,userRatingsTotal:h.user_ratings_total,openNow:h.opening_hours?.open_now,types:I,location:{lat:w.lat(),lng:w.lng()},distance:Ne})}}),oe()})}))),ne=E}if(o!==$.current)return;if(ne.sort((g,E)=>(g.distance??0)-(E.distance??0)),je(ne),Q(!1),p&&(Ie(p,ne,C),Be(p,t,s),p.setCenter(t),p.setZoom(s<=100?18:s<=300?17:s<=500?16:15)),d.current){be(d.current,t),ce(d.current,ne,C);const g=s<=100?18:s<=300?17:s<=500?16:15;d.current.setZoom(g)}ne.length===0&&y.info("ë°ê²½ ë´ ì¥ì를 ì°¾ì§ ëª»íìµëë¤. ë°ê²½ì ëíë³´ì¸ì.")}catch{if(o!==$.current)return;Q(!1)}finally{window.clearTimeout(u),o===$.current&&F(!1)}},[P,Ie,Be,be,ce,C,V]),We=r.useCallback(async()=>{F(!0);try{const t=await le(!0);we(t),G&&await L(t,j,_)}catch(t){const s=t instanceof Error?t.message:"";s==="LOCATION_PERMISSION_DENIED"||t?.code===1?y.error("ë§ì§ì°¾ê¸°ì íì¬ ìì¹ ê¶íì íì©í´ 주ì¸ì."):s==="LOCATION_UNSUPPORTED"?y.error("ì´ ê¸°ê¸°ë GPS를 ì§ìíì§ ììµëë¤."):y.error("ìì¹ë¥¼ ê°ì ¸ì¬ ì ììµëë¤. GPSê° ì¼ì ¸ ìëì§ íì¸í´ 주ì¸ì.")}finally{F(!1)}},[le,G,j,_,L]),qe=r.useCallback(t=>{if(!m.current)return;lt(!0),se(null),new google.maps.places.PlacesService(m.current).getDetails({placeId:t,fields:["formatted_phone_number","website","photos","formatted_address"]},(n,l)=>{if(lt(!1),l===google.maps.places.PlacesServiceStatus.OK&&n){const c=n.photos?.slice(0,3).map(o=>o.getUrl({maxWidth:400}))??[];se({phone:n.formatted_phone_number,website:n.website,photos:c,formattedAddress:n.formatted_address})}})},[]),Ke=r.useCallback((t,s)=>{if(!f)return;ct(!0),W(null);const n=s??Math.sqrt(Math.pow((t.lat-f.lat)*111e3,2)+Math.pow((t.lng-f.lng)*111e3*Math.cos(f.lat*Math.PI/180),2)),l=n>1e3?google.maps.TravelMode.DRIVING:google.maps.TravelMode.WALKING;new google.maps.DirectionsService().route({origin:new google.maps.LatLng(f.lat,f.lng),destination:new google.maps.LatLng(t.lat,t.lng),travelMode:l},(o,x)=>{if(ct(!1),x===google.maps.DirectionsStatus.OK&&o){const v=o.routes[0]?.legs[0];v&&W({distanceText:v.distance?.text??"",durationText:v.duration?.text??"",travelMode:l===google.maps.TravelMode.WALKING?"ëë³´":"êµíµí¸"})}else{const v=n/1e3,u=Math.round(n/67),k=Math.round(n/500);n>1e3?W({distanceText:`${v.toFixed(1)}km`,durationText:`ì½ ${k}ë¶`,travelMode:"êµíµí¸(ì§ì )"}):W({distanceText:`${v.toFixed(1)}km`,durationText:`ì½ ${u}ë¶`,travelMode:"ëë³´(ì§ì )"})}})},[f]),bt=r.useCallback(async()=>
1{if(!N.current||(await Ye(),!window.google?.maps))return;let t={lat:37.5665,lng:126.9779};try{t=await le(!1)}catch{}const s=new window.google.maps.Map(N.current,{zoom:15,center:t,mapTypeControl:!1,fullscreenControl:!1,zoomControl:!0,streetViewControl:!1,styles:Rt("restaurant|cafe|bar"),clickableIcons:!1});m.current=s,(t.lat!==37.5665||t.lng!==126.9779)&&(we(t),L(t,j,_)),tt(!0)},[le,_,j,L]);r.useEffect(()=>{m.current&&m.current.setOptions({styles:Rt(_)})},[_]);const ft=r.useCallback(t=>{d.current=t,$t(!0),tt(!0)},[]);r.useEffect(()=>{if(P!=="naver"||!st||!d.current||!f)return;const t=d.current;be(t,f),ce(t,H,C);const s=j<=100?18:j<=300?17:j<=500?16:15;t.setZoom(s);try{window.naver?.maps?.Event?.trigger(t,"resize")}catch{}},[P,st,f,H,j,C,be,ce]),r.useEffect(()=>{const t=setTimeout(()=>{bt()},300);return()=>clearTimeout(t)},[bt]),r.useEffect(()=>{!G||f||le(!0).then(t=>(we(t),L(t,j,_))).catch(()=>{})},[le,G,f,j,_,L]),r.useEffect(()=>{f&&G&&L(f,j,_)},[f,G,j,_,L]);const ht=r.useCallback(async()=>{if(pe.trim()){De(!0);try{await Ye(),new google.maps.Geocoder().geocode({address:pe+" íêµ",region:"KR"},(s,n)=>{if(De(!1),n===google.maps.GeocoderStatus.OK&&s&&s[0]){const l={lat:s[0].geometry.location.lat(),lng:s[0].geometry.location.lng()};if(we(l),m.current&&(m.current.setCenter(l),m.current.setZoom(15)),d.current){const c=window.naver;c&&(d.current.setCenter(new c.maps.LatLng(l.lat,l.lng)),d.current.setZoom(15))}L(l,j,_),y.success(`"${s[0].formatted_address}" ì§ìì¼ë¡ ì´ëíìµëë¤.`)}else y.error("ì§ìì ì°¾ì ì ììµëë¤. ë¤ë¥¸ ê²ìì´ë¥¼ ì
ë ¥í´ ë³´ì¸ì.")})}catch{De(!1),y.error("ì§ì ê²ì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.")}}},[pe,j,_,L]),yt=r.useCallback(async()=>{if(!re.trim()){Ce(null);return}Ue(!0);try{await Ye(),new google.maps.Geocoder().geocode({address:re+" íêµ",region:"KR"},(s,n)=>{if(Ue(!1),n===google.maps.GeocoderStatus.OK&&s&&s[0]){const l={lat:s[0].geometry.location.lat(),lng:s[0].geometry.location.lng()},c=s[0].address_components?.[0]?.short_name||re;Ce({name:c,lat:l.lat,lng:l.lng}),y.success(`"${c}" ê·¼ì² ì¦ê²¨ì°¾ê¸°ë¥¼ íìí©ëë¤.`)}else y.error("ì§ìì ì°¾ì ì ììµëë¤.")})}catch{Ue(!1),y.error("ì§ì ê²ì ì¤ ì¤ë¥ê° ë°ìíìµëë¤.")}},[re]),He=O?q.filter(t=>Math.sqrt(Math.pow((t.lat-O.lat)*111e3,2)+Math.pow((t.lng-O.lng)*111e3*Math.cos(O.lat*Math.PI/180),2))<=5e4):q,Nt=({place:t})=>{const s=Ge.has(t.placeId),n=C.has(t.placeId);return e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1240",className:"flex items-center gap-1 shrink-0",children:[a&&e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1242",onClick:l=>Ft(t,l),className:`p-1.5 rounded-full transition-colors ${s?"text-red-500 bg-red-50 dark:bg-red-950/30":"text-muted-foreground hover:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/20"}`,title:s?"ì¦ê²¨ì°¾ê¸° ì ê±°":"ì¦ê²¨ì°¾ê¸° ì¶ê°",children:e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1251",size:15,fill:s?"currentColor":"none"})}),i&&e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1255",onClick:l=>Gt(t,l),className:`p-1.5 rounded-full transition-colors ${n?"text-amber-600 bg-amber-50 dark:bg-amber-950/30":"text-muted-foreground hover:text-amber-500 hover:bg-amber-50 dark:hover:bg-amber-950/20"}`,title:n?"HANT ì¶ì² í´ì ":"HANT ì¶ì² ë±ë¡",children:e.jsx(ls,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1264",size:15,fill:n?"currentColor":"none"})})]})};return e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1272",className:"flex flex-col h-screen bg-background relative",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1274",className:"bg-[#1a3d2b] text-white px-4 py-3 flex items-center gap-2 shrink-0",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1275",size:20,className:"text-amber-400"}),e.jsx("h1",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1276",className:"font-bold text-base",children:"ì£¼ë³ ì£¼ë§Â·ë§ì§"})]}),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1280",className:"flex border-b bg-card shrink-0",children:[{id:"search",label:"ê²ì",icon:e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1282",size:13})},{id:"favorites",label:`ì¦ê²¨ì°¾ê¸°${q.length>0?` (${q.length})`:""}`,icon:e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1283",size:13})}].map(t=>e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1285",onClick:()=>Et(t.id),className:`flex-1 flex items-center justify-center gap-1 py-2 text-xs font-medium border-b-2 transition-colors ${B===t.id?"border-amber-500 text-amber-600 dar
1k:text-amber-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[t.icon,t.label]},t.id))}),B==="search"&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1302",className:"bg-card border-b shrink-0",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1304",className:"px-3 pt-2 pb-1 flex gap-1.5",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1305",className:"relative flex-1",children:[e.jsx(Ct,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1306",size:13,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1307",type:"text",placeholder:"ì§ì ê²ì (ì: í´ë¨, ìë, ì§ë)",value:pe,onChange:t=>At(t.target.value),onKeyDown:t=>t.key==="Enter"&&ht(),className:"w-full pl-7 pr-2 py-1.5 text-xs bg-muted/50 border border-border rounded-full focus:outline-none focus:border-amber-500"})]}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1316",onClick:ht,disabled:it||!pe.trim(),className:"px-3 py-1.5 rounded-full text-xs font-medium bg-amber-600 text-white disabled:opacity-50 shrink-0",children:it?e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1321",size:12,className:"animate-spin"}):"ì´ë"})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1325",className:"px-3 pt-1 pb-2 flex gap-1 overflow-x-auto items-center",children:[e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1326",className:"flex gap-1 shrink-0",children:xs.map(t=>{const s=_===t.value,n=t.group==="lodging",l=t.group==="convenience";return e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1332",onClick:()=>zt(t.value),className:`px-2.5 py-1 rounded-full text-xs font-medium border transition-colors ${s?n?"bg-blue-700 text-white border-blue-700":l?"bg-sky-600 text-white border-sky-600":"bg-amber-600 text-white border-amber-600":"bg-background text-muted-foreground border-border hover:border-foreground"}`,children:t.label},t.value)})}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1350",onClick:We,disabled:Z,className:"ml-auto shrink-0 p-1.5 rounded-full border border-border hover:bg-muted disabled:opacity-50",title:"íì¬ ìì¹ë¡ ê²ì",children:e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1356",size:14,className:Z?"animate-spin":""})})]})]}),B==="favorites"&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1364",className:"bg-card border-b shrink-0 px-3 py-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1365",className:"flex gap-1.5",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1366",className:"relative flex-1",children:[e.jsx(Ct,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1367",size:13,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1368",type:"text",placeholder:"ì§ìì¼ë¡ ì¦ê²¨ì°¾ê¸° 찾기 (ì: í´ë¨, ìë)",value:re,onChange:t=>Oe(t.target.value),onKeyDown:t=>t.key==="Enter"&&yt(),className:"w-full pl-7 pr-2 py-1.5 text-xs bg-muted/50 border border-border rounded-full focus:outline-none focus:border-amber-500"})]}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1377",onClick:yt,disabled:dt||!re.trim(),className:"px-3 py-1.5 rounded-full text-xs font-medium bg-amber-600 text-white disabled:opacity-50 shrink-0",children:dt?e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1382",size:12,className:"animate-spin"}):"ê²ì"}),O&&e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1385",onClick:()=>{Ce(null),Oe("")},className:"px-2 py-1.5 rounded-full text-xs font-medium bg-muted text-muted-foreground shrink-0 flex items-center gap-0.5",children:[e.jsx(Mt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1389",size:11})," ì´ê¸°í"]})]}),O&&e.jsxs("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1394",className:"text-[10px] text-amber-600 mt-1 flex items-center gap-1",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1395",size:9}
1),' "',O.name,'" ê·¼ì² ì¦ê²¨ì°¾ê¸° ',He.length,"ê°"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1402",className:"shrink-0 relative",style:{height:"40vh",display:B==="search"?"block":"none"},children:[!f&&!G&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1407",className:"w-full h-full flex flex-col items-center justify-center bg-muted/30",children:[e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1408",className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin mb-2"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1409",className:"text-xs text-muted-foreground",children:"íì¬ ìì¹ íì¸ ì¤..."})]}),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1412",style:{display:P==="naver"?"none":"block",visibility:!f&&!G?"hidden":"visible"},className:"w-full h-full",children:e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1413",ref:N,className:"w-full h-full"})}),P==="naver"&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1416",className:"w-full h-full",children:e.jsx(Jt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1417",className:"w-full h-full",initialCenter:f??xe,initialZoom:15,onMapReady:ft,onMapSettled:ft},"naver-nearby-map")}),B==="search"&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1429",className:"absolute bottom-2 right-2 z-20",children:Dt?e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1438",className:"bg-[#1a3d2b]/95 rounded-2xl p-3 shadow-xl border border-amber-400/40",style:{width:200},children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1439",className:"flex items-center justify-between mb-2",children:[e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1440",className:"text-xs text-amber-400 font-semibold",children:"거리 ì¡°ì "}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1441",onClick:()=>ge(!1),className:"text-white/60 text-xs px-1",children:"â"})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1443",className:"flex items-center justify-between mb-1",children:[e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1444",className:"text-[10px] text-white/60",children:"100m"}),e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1445",className:"text-xs font-bold text-white",children:ke>=1e3?`${ke/1e3}km`:`${ke}m`}),e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1446",className:"text-[10px] text-white/60",children:"2km"})]}),e.jsx("input",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1448",type:"range",min:ns,max:os,step:is,value:ke,onChange:t=>rt(Number(t.target.value)),onMouseUp:t=>{Ee(Number(t.target.value)),ge(!1)},onTouchEnd:t=>{Ee(Number(t.target.value)),ge(!1)},className:"w-full accent-amber-500 mb-2"}),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1456",className:"flex gap-1 flex-wrap",children:cs.map(t=>e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1458",onClick:()=>{Ee(t.value),rt(t.value),ge(!1)},className:`px-2 py-0.5 rounded-full text-xs border transition-colors ${j===t.value?"bg-amber-400 text-[#1a3d2b] border-amber-400 font-bold":"bg-white/10 text-white/80 border-white/20"}`,children:t.label},t.value))})]}):e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1431",onClick:()=>ge(!0),className:"flex items-center gap-1 px-2.5 py-1.5 rounded-full text-xs font-semibold bg-[#1a3d2b]/90 text-amber-400 border border-amber-400 shadow-lg",children:["ë°ê²½ ",j>=1e3?`${j/1e3}km`:`${j}m`," â¼"]})})]}),B==="search"&&b&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1474",className:"fixed left-3 right-3 z-40",style:{bottom:"80px"},children:e.jsx(qt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1475",className:"border-amber-400 shadow-lg",children:e.jsx(Kt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1476",className:"p-3",children:e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1477",className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1478",className:"flex-1 min-w-0",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1479",className:"flex items-center gap-1.5 flex-wrap",children:[(()=>{const t=H.findIndex(o=>o.placeId===b.placeId);if(t<0)return null;const s=C.has(b.placeId),{bg:n,text:l,border:c}=Xe(b.types,s);return e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1486",style:{background:n,color:l,border:`2px solid ${c}`,borderRadius:"50%",width:22,height:22,display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:"bold",flexShrink:0},children:s?"â
":t+1})})(),e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1491",className:"font-semibold text-sm truncate",children:b.name}),e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1492",variant:"outline",className:"text-[10px] shrink-0",children:$e(b.types,b.name)}
1),C.has(b.placeId)&&e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1494",className:"text-[10px] shrink-0 bg-amber-600 text-white",children:"HANT ì¶ì²"}),b.openNow!==void 0&&e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1497",className:`text-[10px] shrink-0 ${b.openNow?"bg-green-600":"bg-gray-500"}`,children:b.openNow?"ìì
ì¤":"ìì
ì¢
ë£"})]}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1502",className:"text-xs text-muted-foreground mt-0.5",children:z?.formattedAddress||b.vicinity}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1503",className:"flex items-center gap-2 mt-1",children:[b.rating&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1505",className:"flex items-center gap-0.5 text-xs text-amber-500",children:[e.jsx(ze,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1506",size:11,fill:"currentColor"}),b.rating.toFixed(1),b.userRatingsTotal&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1509",className:"text-muted-foreground",children:["(",b.userRatingsTotal,")"]})]}),b.distance!==void 0&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1514",className:"flex items-center gap-0.5 text-xs text-muted-foreground",children:[e.jsx(St,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1515",size:11}),It(b.distance)]})]}),f&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1521",className:"mt-1 flex items-center gap-1.5",children:Ut?e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1523",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1524",size:9,className:"animate-spin"})," ê²½ë¡ ê³ì° ì¤..."]}):me?e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1527",className:"text-xs bg-blue-50 dark:bg-blue-950/30 text-blue-700 dark:text-blue-300 px-2 py-0.5 rounded-full flex items-center gap-1",children:[me.travelMode.startsWith("ëë³´")?"ð¶":"ð",me.distanceText," · ",me.durationText,e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1530",className:"text-[9px] opacity-70",children:["(",me.travelMode,")"]})]}):null}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1535",className:"mt-1.5 space-y-1",children:[Ot?e.jsxs("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1537",className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1538",size:10,className:"animate-spin"})," ì íë²í¸ ì¡°í ì¤..."]}):z?.phone?e.jsxs("a",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1541",href:`tel:${z.phone}`,className:"flex items-center gap-1 text-xs text-blue-500 hover:underline font-medium",children:["ð ",z.phone]}):z!==null?e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1545",className:"text-xs text-muted-foreground",children:"ð ì íë²í¸ ìì"}):null,z?.website&&e.jsxs("a",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1548",href:z.website,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-500 hover:underline truncate",children:[e.jsx(et,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1549",size:10})," ",z.website.replace(/^https?:\/\/(www\.)?/,"").split("/")[0]]}),z?.photos&&z.photos.length>0&&e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1553",className:"flex gap-1 mt-1 overflow-x-auto",children:z.photos.map((t,s)=>e.jsx("img",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1555",src:t,alt:"",className:"h-16 w-24 object-cover rounded shrink-0"},s))})]}),b.types.some(t=>["lodging","hotel","motel","hostel","guest_house"].includes(t))&&(()=>{const s=(b.vicinity||"").split(" ").slice(0,2).join(" "),n=s?`${s} ${b.name}`:b.name,l=[{name:"ì¼ëì",color:"bg-pink-600",domain:"yanolja.com",url:`https://www.yanolja.com/search?keyword=${encodeURIComponent(n)}`},{name:"ì¬ê¸°ì´ë",color:"bg-orange-500",domain:"yeogi.com",url:`https://www.yeogi.com/search?keyword=${encodeURIComponent(n)}`},{name:"ìê³ ë¤",color:"bg-blue-500",domain:"agoda.com",url:`https://www.agoda.com/search?city=${encodeURIComponent(b.name)}&checkIn=&checkOut=&adults=2`},{name:"í¸ë¦½ë·ì»´",color:"bg-indigo-600",domain:"trip.com",url:`https://www.trip.c
1om/hotels/list?keyword=${encodeURIComponent(n)}`},{name:"ë¶í¹ë·ì»´",color:"bg-sky-600",domain:"booking.com",url:`https://www.booking.com/search.html?ss=${encodeURIComponent(n)}`}],c=z?.website??"",o=l.filter(x=>c.includes(x.domain));return o.length===0?null:e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1575",className:"mt-2",children:[e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1576",className:"text-[10px] font-semibold text-muted-foreground mb-1",children:"ð¨ ê³µì ìì½ì¬ì´í¸"}),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1577",className:"flex flex-wrap gap-1",children:o.map(x=>e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1579",onClick:()=>Je(x.url),className:`${x.color} text-white text-[10px] font-semibold px-2 py-0.5 rounded-full`,children:x.name},x.name))})]})})()]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1592",className:"flex items-center gap-1",children:[e.jsx(Nt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1593",place:b}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1594",onClick:()=>{ue(null),se(null),W(null)},className:"text-muted-foreground hover:text-foreground text-lg leading-none",children:"Ã"})]})]})})})}),B==="search"&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1604",className:"flex-1 overflow-hidden flex flex-col",children:[e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1605",onClick:()=>Lt(t=>!t),className:"flex items-center justify-between px-4 py-2 border-b bg-muted/30 shrink-0",children:[e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1609",className:"text-xs font-medium text-muted-foreground",children:Z?"ê²ì ì¤...":Le?"ì£¼ë³ ì¥ì를 ë¶ë¬ì¤ë ì¤...":`${H.length}ê° ì¥ì ë°ê²¬`}),at?e.jsx(ts,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1612",size:14}):e.jsx(ss,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1612",size:14})]}),at&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1616",className:"flex-1 overflow-y-auto pb-20",children:[Z&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1618",className:"flex items-center justify-center py-8 text-muted-foreground text-sm gap-2",children:[e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1619",size:16,className:"animate-spin"}),"ì£¼ë³ ì¥ì를 ê²ìíê³ ììµëë¤..."]}),!Z&&Le&&H.length===0&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1624",className:"flex flex-col items-center justify-center py-10 text-muted-foreground gap-2 text-center px-6",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1625",size:32,className:"opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1626",className:"text-sm font-medium",children:"ì£¼ë³ ì¥ì를 ë ì°¾ê³ ììµëë¤"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1627",className:"text-xs leading-5",children:"ì§ëë ê³ì ì¬ì©í ì ììµëë¤. ë°ê²½ì ë°ê¾¸ê±°ë ì§ìëª
ì ì
ë ¥íë©´ ë°ë¡ ìë¡ ì°¾ìµëë¤."}),e.jsxs(_e,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1628",size:"sm",variant:"outline",onClick:We,className:"mt-2",children:[e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1629",size:14,className:"mr-1"})," ìì¹ ìë¡ê³ 침"]})]}),!Z&&!Le&&H.length===0&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1634",className:"flex flex-col items-center justify-center py-10 text-muted-foreground gap-2",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1635",size:32,className:"opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1636",className:"text-sm",children:"ë°ê²½ ë´ ì¥ìê° ììµëë¤"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1637",className:"text-xs",children:"ë°ê²½ì ëíê±°ë ìì¹ë¥¼ ìë¡ê³ 침 í´ë³´ì¸ì"}),e.jsxs(_e,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1638",size:"sm",variant:"outline",onClick:We,className:"mt-2",children:[e.jsx(K,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1639",size:14,className:"mr-1"})," ìì¹ ìë¡ê³ 침"]})]}),!Z&&H.map((t,s)=>e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1644",onClick:()=>{ue(t),se(null),W(null),qe(t.placeId),Ke(t.location,t.distance),fe(s,P),m.current&&(m.current.setCenter(t.location),m.current.setZoom(18)),d.current&&(d.current.setCenter(new window.naver.maps.LatLng(t.location.lat,t.location.lng)),d.current.setZoom(18))},className:`w-full text-left px-4 py-3 border-b hover:bg-muted/50 transition-colors ${b?.placeId===t.placeId?"bg-amber-50 dark:bg-amber-950/20":""}`,children:e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1666",className:"flex items-start gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1667",className:`w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0 mt-0.5 ${C.has(t.placeId)?"bg-amber-700 text-amber-100":"bg-[#1a3d2b] text-amber-400"}`,children:C.has(t.placeId)?"â
":s+1}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1674",className:"flex-1 min-w-0",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1675",className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1676",className:"font-medium text-sm",children:t.name}),e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1677",variant:"outline",className:"text-[10px]",children:$e(t.types,t.name)}
1),C.has(t.placeId)&&e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1679",className:"text-[10px] bg-amber-600 text-white",children:"HANT ì¶ì²"}),t.openNow!==void 0&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1682",className:`text-[10px] font-medium flex items-center gap-0.5 ${t.openNow?"text-green-600":"text-gray-400"}`,children:[e.jsx(Tt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1683",size:10}),t.openNow?"ìì ì¤":"ìì ì¢ ë£"]})]}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1688",className:"text-xs text-muted-foreground truncate mt-0.5",children:t.vicinity}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1689",className:"flex items-center gap-3 mt-1",children:[t.rating&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1691",className:"flex items-center gap-0.5 text-xs text-amber-500",children:[e.jsx(ze,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1692",size:11,fill:"currentColor"}),t.rating.toFixed(1),t.userRatingsTotal&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1695",className:"text-muted-foreground ml-0.5",children:["(",t.userRatingsTotal,")"]})]}),e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1699",className:"flex items-center gap-0.5 text-xs text-muted-foreground",children:[e.jsx(St,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1700",size:11}),t.distance!==void 0?It(t.distance):"-"]}),e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1703",onClick:n=>{n.stopPropagation();const l=t.naverMapUrl?t.naverMapUrl:P==="naver"?`https://map.naver.com/v5/search/${encodeURIComponent(t.name)}`:`https://www.google.com/maps/place/?q=place_id:${t.placeId}`,c=`ð ${t.name} 2${t.vicinity??""} 3 4${l}`;navigator.share?navigator.share({title:t.name,text:c,url:l}).catch(()=>{}):navigator.clipboard.writeText(c).then(()=>y.success("í´ë¦½ë³´ëì ë³µì¬ëììµëë¤"))},className:"flex items-center gap-0.5 text-xs text-muted-foreground hover:text-foreground",title:"ê³µì ",children:[e.jsx(as,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1721",size:10}),"ê³µì "]}),e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1724",className:"ml-auto",onClick:n=>n.stopPropagation(),children:e.jsx(Nt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1725",place:t})})]})]})]})},t.placeId))]})]}),B==="favorites"&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1739",className:"flex-1 overflow-y-auto pb-20",children:[!a&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1741",className:"flex flex-col items-center justify-center py-12 text-muted-foreground gap-2",children:[e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1742",size:32,className:"opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1743",className:"text-sm",children:"ë¡ê·¸ì¸ í ì¦ê²¨ì°¾ê¸°ë¥¼ ì¬ì©í ì ììµëë¤"})]}),a&&q.length===0&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1747",className:"flex flex-col items-center justify-center py-12 text-muted-foreground gap-2",children:[e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1748",size:32,className:"opacity-30"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1749",className:"text-sm",children:"ì ì¥ë ì¦ê²¨ì°¾ê¸°ê° ììµëë¤"}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1750",className:"text-xs",children:"í¸ë í¹ ì¤ ëë ê²ì íìì íí¸ ë²í¼ì ëë¬ ì ì¥íì¸ì"})]}),a&&q.length>0&&He.length===0&&O&&e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1754",className:"flex flex-col items-center justify-center py-12 text-muted-foreground gap-2",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1755",size:32,className:"opacity-30"}),e.jsxs("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1756",className:"text-sm",children:['"',O.name,'" ê·¼ì² ì¦ê²¨ì°¾ê¸°ê° ììµëë¤']}),e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1757",onClick:()=>{Ce(null),Oe("")},className:"text-xs text-amber-600 hover:underline",children:"ì ì²´ ì¦ê²¨ì°¾ê¸° 보기"})]}),a&&He.map(t=>e.jsx("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1766",className:"w-full text-left px-4 py-3 border-b hover:bg-muted/50 transition-colors active:bg-muted/80",onClick:()=>ot(t),children:e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1771",className:"flex items-start gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1772",className:"w-8 h-8 rounded-full bg-red-50 dark:bg-red-950/30 flex items-center justify-center shrink-0 mt-0.5",children:e.jsx(ie,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1773",size:16,className:"text-red-500",fill:"currentColor"})}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1775",className:"flex-1 min-w-0",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1776",className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1777",className:"font-medium text-sm",children:t.name}),t.types&&e.jsx(J,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1779",variant:"outline",className:`text-[10px] ${_t(t.types.split(","))}
4`,children:$e(t.types.split(","),t.name)})]}),t.vicinity&&e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1785",className:"text-xs text-muted-foreground truncate mt-0.5",children:t.vicinity}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1787",className:"flex items-center gap-3 mt-1",children:[t.rating&&e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1789",className:"flex items-center gap-0.5 text-xs text-amber-500",children:[e.jsx(ze,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1790",size:11,fill:"currentColor"}),t.rating.toFixed(1)]}),e.jsxs("span",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1794",className:"flex items-center gap-0.5 text-xs text-blue-500",children:[e.jsx(A,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1795",size:10}),"ì§ëìì 보기"]}),e.jsxs("button",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1798",onClick:s=>{s.stopPropagation(),Ae.mutate({placeId:t.placeId})},className:"ml-auto flex items-center gap-0.5 text-xs text-red-400 hover:text-red-600",children:[e.jsx(rs,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1805",size:11}),"ìì "]})]})]})]})},t.id))]}),nt&&e.jsx(ys,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1818",place:nt,onClose:()=>ot(null),provider:P,myLocation:f}),D&&e.jsx(Ht,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1828",open:!0,onOpenChange:()=>ae(null),children:e.jsxs(Zt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1829",children:[e.jsx(Qt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1830",children:e.jsx(Vt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1831",children:"HANT ì¶ì² ì¥ì ë±ë¡"})}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1833",className:"space-y-3 py-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1834",children:[e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1835",className:"text-sm font-medium",children:D.place.name}),e.jsx("p",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1836",className:"text-xs text-muted-foreground",children:D.place.vicinity})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1838",className:"space-y-1",children:[e.jsx(kt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1839",htmlFor:"rec-note",className:"text-xs",children:"ì¶ì² ë©ëª¨ (ì í)"}),e.jsx(jt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1840",id:"rec-note",placeholder:"ì: 1êµ¬ê° ì¢
ì ê·¼ì² ë§ê±¸ë¦¬ ë§ì§",value:D.note,onChange:t=>ae(s=>s?{...s,note:t.target.value}:null),className:"text-sm"})]}),e.jsxs("div",{"data-loc":"client/src/pages/NearbyPlaces.tsx:1848",className:"space-y-1",children:[e.jsx(kt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1849",htmlFor:"rec-course",className:"text-xs",children:"ê´ë ¨ êµ¬ê° ë²í¸ (ì í, 1~34)"}),e.jsx(jt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1850",id:"rec-course",type:"number",min:1,max:34,placeholder:"ì: 1",value:D.courseId,onChange:t=>ae(s=>s?{...s,courseId:t.target.value}:null),className:"text-sm"})]})]}),e.jsxs(Yt,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1862",children:[e.jsx(_e,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1863",variant:"outline",onClick:()=>ae(null),children:"ì·¨ì"}),e.jsx(_e,{"data-loc":"client/src/pages/NearbyPlaces.tsx:1864",onClick:()=>{const t=D.place,s=D.courseId?parseInt(D.courseId):void 0;Fe.mutate({placeId:t.placeId,name:t.name,vicinity:t.vicinity,lat:t.location.lat,lng:t.location.lng,types:t.types.join(","),rating:t.rating,recommendNote:D.note||void 0,courseId:s&&!isNaN(s)?s:void 0})},disabled:Fe.isPending,className:"bg-amber-600 hover:bg-amber-700 text-white",children:Fe.isPending?"ë±ë¡ ì¤...":"HANT ì¶ì² ë±ë¡"})]})]})})]})}export{Ws as default};
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.