1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Bab2R6yH.js","assets/index-DzjF18Ep.css"])))=>i.map(i=>d[i]); 2import{u as C,r as l,a7 as u,j as t,e as h,a9 as g,aa as m,M as p,f as x,ad as z,ac as _,$ as v,a0 as k,a1 as S,a2 as A,B as M,k as B}from"./index-Bab2R6yH.js";import{H as b}from"./TradeCenterProgress-4No8duFj.js";const s=[{id:1,city:"Dubai",city_zh:"迪æ",country:"UAE",country_zh:"é¿èé ",lat:25.2048,lng:55.2708,status:"completed",year:2024},{id:2,city:"Singapore",city_zh:"æ°å å¡",country:"Singapore",country_zh:"æ°å å¡",lat:1.3521,lng:103.8198,status:"completed",year:2024},{id:3,city:"Haikou",city_zh:"æµ·å£",country:"China",country_zh:"ä¸å½",lat:20.044,lng:110.1999,status:"completed",year:2025},{id:4,city:"Hong Kong",city_zh:"馿¸¯",country:"China",country_zh:"ä¸å½",lat:22.3193,lng:114.1694,status:"completed",year:2024},{id:5,city:"Rotterdam",city_zh:"鹿ç¹ä¸¹",country:"Netherlands",country_zh:"è·å °",lat:51.9244,lng:4.4777,status:"completed",year:2025},{id:6,city:"Shenzhen",city_zh:"æ·±å³",country:"China",country_zh:"ä¸å½",lat:22.5431,lng:114.0579,status:"completed",year:2024},{id:7,city:"Abu Dhabi",city_zh:"é¿å¸ææ¯",country:"UAE",country_zh:"é¿èé ",lat:24.4539,lng:54.3773,status:"completed",year:2025},{id:8,city:"Busan",city_zh:"éå±±",country:"South Korea",country_zh:"é©å½",lat:35.1796,lng:129.0756,status:"completed",year:2025},{id:9,city:"Seoul",city_zh:"é¦å°",country:"South Korea",country_zh:"é©å½",lat:37.5665,lng:126.978,status:"inProgress",year:2026},{id:10,city:"Jeddah",city_zh:"åè¾¾",country:"Saudi Arabia",country_zh:"æ²ç¹é¿æä¼¯",lat:21.4858,lng:39.1925,status:"inProgress",year:2026},{id:11,city:"Bangkok",city_zh:"æ¼è°·",country:"Thailand",country_zh:"æ³°å½",lat:13.7563,lng:100.5018,status:"inProgress",year:2026},{id:12,city:"Shanghai",city_zh:"䏿µ·",country:"China",country_zh:"ä¸å½",lat:31.2304,lng:121.4737,status:"inProgress",year:2026},{id:13,city:"Guangzhou",city_zh:"广å·",country:"China",country_zh:"ä¸å½",lat:23.1291,lng:113.2644,status:"inProgress",year:2026},{id:14,city:"Riyadh",city_zh:"å©é å¾",country:"Saudi Arabia",country_zh:"æ²ç¹é¿æä¼¯",lat:24.7136,lng:46.6753,status:"inProgress",year:2026},{id:15,city:"Jakarta",city_zh:"é å è¾¾",country:"Indonesia",country_zh:"å°åº¦å°¼è¥¿äº",lat:-6.2088,lng:106.8456,status:"inProgress",year:2026},{id:16,city:"Hamburg",city_zh:"æ±å ¡",country:"Germany",country_zh:"å¾·å½",lat:53.5511,lng:9.9937,status:"inProgress",year:2026},{id:17,city:"Mumbai",city_zh:"åä¹°",country:"India",country_zh:"å°åº¦",lat:19.076,lng:72.8777,status:"inProgress",year:2027},{id:18,city:"Cairo",city_zh:"å¼ç½",country:"Egypt",country_zh:"åå",lat:30.0444,lng:31.2357,status:"inProgress",year:2027},{id:19,city:"Miami",city_zh:"è¿é¿å¯",country:"USA",country_zh:"ç¾å½",lat:25.7617,lng:-80.1918,status:"inProgress",year:2027},{id:20,city:"Panama City",city_zh:"å·´æ¿é©¬å",country:"Panama",country_zh:"å·´æ¿é©¬",lat:8.9824,lng:-79.5199,status:"inProgress",year:2027},{id:21,city:"Tokyo",city_zh:"ä¸äº¬",country:"Japan",country_zh:"æ¥æ¬",lat:35.6762,lng:139.6503,status:"planned",year:2028},{id:22,city:"Kuala Lumpur",city_zh:"åéå¡",country:"Malaysia",country_zh:"马æ¥è¥¿äº",lat:3.139,lng:101.6869,status:"planned",year:2028},{id:23,city:"Ho Chi Minh",city_zh:"è¡å¿æå¸",country:"Vietnam",country_zh:"è¶å",lat:10.8231,lng:106.6297,status:"planned",year:2028},{id:24,city:"Manila",city_zh:"马尼æ",country:"Philippines",country_zh:"è²å¾å®¾",lat:14.5995,lng:120.9842,status:"planned",year:2028},{id:25,city:"Sydney",city_zh:"æå°¼",country:"Australia",country_zh:"澳大å©äº",lat:-33.8688,lng:151.2093,status:"planned",year:2029},{id:26,city:"Auckland",city_zh:"奥å å °",country:"New Zealand",country_zh:"æ°è¥¿å °",lat:-36.8509,lng:174.7645,status:"planned",year:2029},{id:27,city:"Doha",city_zh:"å¤å",country:"Qatar",country_zh:"å¡å¡å°",lat:25.2854,lng:51.531,status:"planned",year:2028},{id:28,city:"Muscat",city_zh:"马æ¯åç¹",country:"Oman",country_zh:"é¿æ¼",lat:23.588,lng:58.3829,status:"planned",year:2028},{id:29,city:"Casablanca",city_zh:"å¡è¨å¸å °å¡",country:"Morocco",country_zh:"æ©æ´å¥",lat:33.5731,lng:-7.5898,status:"planned",year:2029},{id:30,city:"Lagos",city_zh:"æåæ¯",country:"Nigeria",country_zh:"å°¼æ¥å©äº",lat:6.5244,lng:3.3792,status:"planned",year:2029},{id:31,city:"Johannesburg",city_zh:"çº¦ç¿°å æ¯å ¡",country:"South Africa",country_zh:"åé",lat:-26.2041,lng:28.0473,status:"planned",year:2029},{id:32,city:"Nairobi",city_zh:"å ç½æ¯",country:"Kenya",country_zh:"è¯å°¼äº",lat:-1.2921,lng:36.8219,status:"planned",year:2030},{id:33,city:"London",city_zh:"伦æ¦",country:"UK",country_zh:"è±å½",lat:51.5074,lng:-.1278,status:"planned",year:2028},{id:34,city:"Frankfurt",city_zh:"æ³å °å ç¦",country:"Germany",country_zh:"å¾·å½",lat:50.1109,lng:8.6821,status:"planned",year:2028},{id:35,city:"Barcelona",city_zh:"å·´å¡ç½é£",country:"Spain",country_zh:"西çç",lat:41.3851,lng:2.1734,status:"planned",year:2029},{id:36,city:"Antwerp",city_zh:"å®ç¹å«æ®",country:"Belgium",country_zh:"æ¯å©æ¶",lat:51.2194,lng:4.4025,status:"planned",year:2029},{id:37,city:"Istanbul",city_zh:"伿¯å¦å¸å°",country:"Turkey",country_zh:"åè³å ¶",lat:41.0082,lng:28.9784,status:"planned",year:2028},{id:38,city:"Los Angeles",city_zh:"æ´æç¶",country:"USA",country_zh:"ç¾å½",lat:34.0522,lng:-118.2437,status:"planned",year:2028},{id:39,city:"New York",city_zh:"纽约",country:"USA",country_zh:"ç¾å½",lat:40.7128,lng:-74.006,status:"planned",year:2029},{id:40,city:"Sao Paulo",city_zh:"å£ä¿ç½",country:"Brazil",country_zh:"巴西",lat:-23.5505,lng:-46.6333,status:"planned",year:2029}
2,{id:41,city:"Mexico City",city_zh:"墨西å¥å",country:"Mexico",country_zh:"墨西å¥",lat:19.4326,lng:-99.1332,status:"planned",year:2029},{id:42,city:"Vancouver",city_zh:"温å¥å",country:"Canada",country_zh:"å æ¿å¤§",lat:49.2827,lng:-123.1207,status:"planned",year:2030},{id:43,city:"Almaty",city_zh:"é¿ææ¨å¾",country:"Kazakhstan",country_zh:"åè¨å æ¯å¦",lat:43.222,lng:76.8512,status:"planned",year:2028},{id:44,city:"Tashkent",city_zh:"å¡ä»å¹²",country:"Uzbekistan",country_zh:"ä¹å ¹å«å æ¯å¦",lat:41.2995,lng:69.2401,status:"planned",year:2029},{id:45,city:"Astana",city_zh:"é¿æ¯å¡çº³",country:"Kazakhstan",country_zh:"åè¨å æ¯å¦",lat:51.1694,lng:71.4491,status:"planned",year:2029}],L=()=>{const{language:a}=C(),[n,r]=l.useState(null),[i,f]=l.useState(null);l.useEffect(()=>{u(()=>import("./index-Bab2R6yH.js").then(e=>e.l),__vite__mapDeps([0,1])).then(e=>{u(()=>import("./index-Bab2R6yH.js").then(o=>o.ag),__vite__mapDeps([0,1])),f(e)})},[]);const j=n?s.filter(e=>e.status===n):s,c={completed:s.filter(e=>e.status==="completed").length,inProgress:s.filter(e=>e.status==="inProgress").length,planned:s.filter(e=>e.status==="planned").length},y=l.useMemo(()=>{if(!i)return null;const e=o=>{const d={completed:"#10B981",inProgress:"#F59E0B",planned:"#94A3B8"},P=d[o]||d.planned;return i.divIcon({className:"custom-marker",html:` 3 <div style=" 4 width: 24px; 5 height: 24px; 6 background-color: ${P}; 7 border: 3px solid white; 8 border-radius: 50%; 9 box-shadow: 0 2px 8px rgba(0,0,0,0.3); 10 display: flex; 11 align-items: center; 12 justify-content: center; 13 "> 14 <div style=" 15 width: 8px; 16 height: 8px; 17 background-color: white; 18 border-radius: 50%; 19 "></div> 20 </div> 21 `,iconSize:[24,24],iconAnchor:[12,12],popupAnchor:[0,-12]})};return{completed:e("completed"),inProgress:e("inProgress"),planned:e("planned")}},[i]),N=e=>e==="completed"?a==="zh"?"已建æ":"Completed":e==="inProgress"?a==="zh"?"建设ä¸":"In Progress":a==="zh"?"è§åä¸":"Planned",w=e=>{switch(e){case"completed":return t.jsx(z,{className:"w-4 h-4"});case"inProgress":return t.jsx(b,{className:"w-4 h-4"});default:return t.jsx(_,{className:"w-4 h-4"})}};return!i||!y?t.jsxs(h,{className:"overflow-hidden",children:[t.jsx(g,{children:t.jsxs(m,{className:"flex items-center gap-2 text-lg",children:[t.jsx(p,{className:"w-5 h-5 text-primary"}),a==="zh"?"å ¨çè´¸æä¸å¿åå¸å¾":"Global Trade Center Map"]})}),t.jsx(x,{className:"p-0",children:t.jsx("div",{className:"h-[500px] w-full flex items-center justify-center bg-muted/30",children:t.jsx("div",{className:"text-muted-foreground",children:a==="zh"?"å è½½å°å¾ä¸...":"Loading map..."})})})]}):t.jsxs(h,{className:"overflow-hidden",children:[t.jsxs(g,{children:[t.jsxs(m,{className:"flex items-center gap-2 text-lg",children:[t.jsx(p,{className:"w-5 h-5 text-primary"}),a==="zh"?"å ¨çè´¸æä¸å¿åå¸å¾":"Global Trade Center Map"]}),t.jsxs("div",{className:"flex flex-wrap gap-2 mt-4",children:[t.jsxs("button",{onClick:()=>r(null),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors ${n===null?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80"}`,children:[a==="zh"?"å ¨é¨":"All"," (",s.length,")"]}),t.jsxs("button",{onClick:()=>r("completed"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors flex items-center gap-2 ${n==="completed"?"bg-green-500 text-white":"bg-green-100 text-green-700 hover:bg-green-200 dark:bg-green-900/30 dark:text-green-400"}`,children:[t.jsx(z,{className:"w-4 h-4"}),a==="zh"?"已建æ":"Completed"," (",c.completed,")"]}),t.jsxs("button",{onClick:()=>r("inProgress"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors flex items-center gap-2 ${n==="inProgress"?"bg-amber-500 text-white":"bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/30 dark:text-amber-400"}`,children:[t.jsx(b,{className:"w-4 h-4"}),a==="zh"?"建设ä¸":"In Progress"," (",c.inProgress,")"]}),t.jsxs("button",{onClick:()=>r("planned"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors flex items-center gap-2 ${n==="planned"?"bg-slate-500 text-white":"bg-slate-100 text-slate-700 hover:bg-slate-200 dark:bg-slate-800 dark:text-slate-400"}`,children:[t.jsx(_,{className:"w-4 h-4"}),a==="zh"?"è§åä¸":"Planned"," (",c.planned,")"]})]})]}),t.jsxs(x,{className:"p-0",children:[t.jsx("div",{className:"h-[500px] w-full",children:t.jsxs(v,{center:[20,50],zoom:2,style:{height:"100%",width:"100%"},scrollWheelZoom:!0,minZoom:2,maxZoom:10,children:[t.jsx(k,{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),j.map(e=>t.jsx(S,{position:[e.lat,e.lng],icon:y[e.status],children:t.jsx(A,{children:t.jsxs("div",{className:"min-w-[200px]",children:[t.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[t.jsx(M,{className:"w-5 h-5 text-primary"}),t.jsx("span",{className:"font-bold text-lg",children:a==="zh"?e.city_zh:e.city})]}),t.jsx("div",{className:"text-sm text-muted-foreground mb-3",children:a==="zh"?e.country_zh:e.country}),t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(B,{variant:"outline",className:`${e.status==="completed"?"bg-green-100 text-green-700 border-green-300":e.status==="inProgress"?"bg-amber-100 text-amber-700 border-amber-300":"bg-slate-100 text-slate-700 border-slate-300"}`,children:t.jsxs("span",{className:"flex items-center gap-1",children:[w(e.status),N(e.status)]})}),t.jsx("span",{className:"text-sm font-medium",children:e.year})]})]})})},e.id))]})}),t.jsxs("div",{className:"p-4 bg-muted/30 border-t flex flex-wrap items-center justify-center gap-6",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"w-4 h-4 rounded-full bg-green-500 border-2 border-white shadow"}),t.jsx("span",{className:"text-sm",children:a==="zh"?"已建æ":"Completed"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"w-4 h-4 rounded-full bg-amber-500 border-2 border-white shadow"}),t.jsx("span",{className:"text-sm",children:a==="zh"?"建设ä¸":"In Progress"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"w-4 h-4 rounded-full bg-slate-400 border-2 border-white shadow"}),t.jsx("span",{className:"text-sm",children:a==="zh"?"è§åä¸":"Planned"})]})]})]})]})};export{L 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.