import{r as m,j as e,L as U}from"./vendor-react-BwKDLVNL.js";import{aC as G,t as d,v as u,w as h,B as i,z as p,D as B,y as n,I as L,W as A,aL as b,Y as F,Z as k,_ as D,$ as H,a0 as I,a1 as w,H as K,G as V,E as z,F as J}from"./index-BwXBt7KT.js";import"./vendor-dayjs-BQpC39fM.js";import"./vendor-sentry-BncsBMgc.js";import{M as Z,b as E,a as Y}from"./MarketingShell-RqVfJeW4.js";import{u as X}from"./vendor-i18n-C6wqqoou.js";import{A as f}from"./arrow-left-B7IPk1Ot.js";import{A as v}from"./anchor-D0siUC1L.js";import{E as $}from"./earth-BMZBaHRe.js";import{F as W}from"./funnel-a0r1AHZp.js";import"./vendor-query-D-sr233n.js";import"./vendor-antd-core-4y2ghozH.js";import"./zap-9TgSbV9F.js";import"./globe-aW4lVShw.js";import"./shield-check-12mraP9n.js";import"./users-CNJG6zMR.js";import"./file-text-Bg6gtvaH.js";import"./SiteFooter-BmhXRUNO.js";import"./send-DmzYpMB-.js";import"./building-2-_l58LaZK.js";const y=[{name:"Владивосток",locode:"RUOVB",country:"Р РѕСЃСЃРёСЏ",region:"Р РѕСЃСЃРёСЏ Рё РЎРќР“",type:"sea",lat:43.11,lng:131.88},{name:"Санкт-Петербург",locode:"RULED",country:"Р РѕСЃСЃРёСЏ",region:"Р РѕСЃСЃРёСЏ Рё РЎРќР“",type:"sea",lat:59.87,lng:30.27},{name:"РќРѕРІРѕСЂРѕСЃСЃРёР№СЃРє",locode:"RUNVS",country:"Р РѕСЃСЃРёСЏ",region:"Р РѕСЃСЃРёСЏ Рё РЎРќР“",type:"sea",lat:44.72,lng:37.77},{name:"Находка",locode:"RUNAK",country:"Р РѕСЃСЃРёСЏ",region:"Р РѕСЃСЃРёСЏ Рё РЎРќР“",type:"sea",lat:42.83,lng:132.88},{name:"Мурманск",locode:"RUMMK",country:"Р РѕСЃСЃРёСЏ",region:"Р РѕСЃСЃРёСЏ Рё РЎРќР“",type:"sea",lat:68.97,lng:33.05},{name:"Шанхай",locode:"CNSHA",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:31.23,lng:121.47,throughput:47.3},{name:"РќРёРЅР±Рѕ",locode:"CNNGB",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:29.87,lng:121.55,throughput:33.4},{name:"Шэньчжэнь",locode:"CNSZX",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:22.54,lng:114.07,throughput:30},{name:"Гуанчжоу",locode:"CNCAN",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:23.12,lng:113.27,throughput:24},{name:"Циндао",locode:"CNTAO",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:36.07,lng:120.33,throughput:22},{name:"Тяньцзинь",locode:"CNTJN",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:39.02,lng:117.7,throughput:21},{name:"РЎСЏРјСЌРЅСЊ",locode:"CNXMN",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:24.48,lng:118.08,throughput:12},{name:"Далянь",locode:"CNDLC",country:"Китай",region:"РђР·РёСЏ",type:"sea",lat:38.93,lng:121.64,throughput:8.5},{name:"Сингапур",locode:"SGSIN",country:"Сингапур",region:"РђР·РёСЏ",type:"sea",lat:1.29,lng:103.85,throughput:37.5},{name:"Пусан",locode:"KRPUS",country:"Южная Корея",region:"РђР·РёСЏ",type:"sea",lat:35.18,lng:129.08,throughput:22.1},{name:"РџРѕСЂС‚-Кланг",locode:"MYPKG",country:"Малайзия",region:"РђР·РёСЏ",type:"sea",lat:3,lng:101.37,throughput:13.2},{name:"Танджунг-Пелепас",locode:"MYTPP",country:"Малайзия",region:"РђР·РёСЏ",type:"sea",lat:1.37,lng:103.55,throughput:11},{name:"Гонконг",locode:"HKHKG",country:"Гонконг",region:"РђР·РёСЏ",type:"sea",lat:22.29,lng:114.16,throughput:16},{name:"Гаосюн",locode:"TWKHH",country:"Тайвань",region:"РђР·РёСЏ",type:"sea",lat:22.62,lng:120.3,throughput:9.9},{name:"Цзилун",locode:"TWKEL",country:"Тайвань",region:"РђР·РёСЏ",type:"sea",lat:25.14,lng:121.74,throughput:3.5},{name:"РўРѕРєРёРѕ",locode:"JPTYO",country:"РЇРїРѕРЅРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:35.49,lng:139.79},{name:"Йокогама",locode:"JPYOK",country:"РЇРїРѕРЅРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:35.44,lng:139.64},{name:"Осака",locode:"JPOSA",country:"РЇРїРѕРЅРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:34.66,lng:135.49},{name:"Нагоя",locode:"JPNGO",country:"РЇРїРѕРЅРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:35.18,lng:136.91},{name:"Хошимин",locode:"VNCPG",country:"Вьетнам",region:"РђР·РёСЏ",type:"sea",lat:10.75,lng:106.7,throughput:7},{name:"Хайфон",locode:"VNHPH",country:"Вьетнам",region:"РђР·РёСЏ",type:"sea",lat:20.85,lng:106.68},{name:"Лаем-Чабанг",locode:"THLCH",country:"Таиланд",region:"РђР·РёСЏ",type:"sea",lat:13.07,lng:100.88,throughput:8.1},{name:"Джакарта",locode:"IDJKT",country:"Рндонезия",region:"РђР·РёСЏ",type:"sea",lat:-6.14,lng:106.82},{name:"Манила",locode:"PHMNL",country:"Филиппины",region:"РђР·РёСЏ",type:"sea",lat:14.6,lng:120.97},{name:"Коломбо",locode:"LKCMB",country:"РЁСЂРё-Ланка",region:"РђР·РёСЏ",type:"sea",lat:6.93,lng:79.85,throughput:7.5},{name:"Мумбаи / JNPT",locode:"INNSA",country:"РРЅРґРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:18.95,lng:72.95,throughput:5.9},{name:"Ченнаи",locode:"INMAA",country:"РРЅРґРёСЏ",region:"РђР·РёСЏ",type:"sea",lat:13.08,lng:80.28},{name:"Калькутта",locode:"INCCU",country:"РРЅРґРёСЏ",region:"РђР·РёСЏ",type:"river",lat:22.57,lng:88.37},{name:"Джебель-Али",locode:"AEJEA",country:"РћРђР",region:"Ближний Восток",type:"sea",lat:24.98,lng:55.06,throughput:14.8},{name:"РљРёРЅРі-Абдулла",locode:"SASAB",country:"Саудовская Аравия",region:"Ближний Восток",type:"sea",lat:22.35,lng:39.11},{name:"Салала",locode:"OMSLL",country:"Оман",region:"Ближний Восток",type:"sea",lat:16.93,lng:54},{name:"Роттердам",locode:"NLRTM",country:"Нидерланды",region:"Европа",type:"sea",lat:51.92,lng:4.48,throughput:14.8},{name:"Антверпен",locode:"BEANR",country:"Бельгия",region:"Европа",type:"sea",lat:51.22,lng:4.4,throughput:12},{name:"Гамбург",locode:"DEHAM",country:"Германия",region:"Европа",type:"sea",lat:53.55,lng:10,throughput:8.7},{name:"Фелистоу",locode:"GBFXT",country:"Великобритания",region:"Европа",type:"sea",lat:51.96,lng:1.35,throughput:3.8},{name:"Пирей",locode:"GRPIR",country:"Греция",region:"Европа",type:"sea",lat:37.94,lng:23.63,throughput:5.6},{name:"Валенсия",locode:"ESVLC",country:"Рспания",region:"Европа",type:"sea",lat:39.47,lng:-.33,throughput:5.5},{name:"Алхесирас",locode:"ESALG",country:"Рспания",region:"Европа",type:"sea",lat:36.13,lng:-5.46,throughput:5.1},{name:"Барселона",locode:"ESBCN",country:"Рспания",region:"Европа",type:"sea",lat:41.38,lng:2.18},{name:"Генуя",locode:"ITGOA",country:"Рталия",region:"Европа",type:"sea",lat:44.41,lng:8.93},{name:"Джоя-Тауро",locode:"ITGIT",country:"Рталия",region:"Европа",type:"sea",lat:38.43,lng:15.89},{name:"Гавр",locode:"FRLEA",country:"Франция",region:"Европа",type:"sea",lat:49.49,lng:.11},{name:"Марсель",locode:"FRMRS",country:"Франция",region:"Европа",type:"sea",lat:43.3,lng:5.37},{name:"Бремерхафен",locode:"DEBRV",country:"Германия",region:"Европа",type:"sea",lat:53.54,lng:8.58},{name:"Гданьск",locode:"PLGDN",country:"Польша",region:"Европа",type:"sea",lat:54.37,lng:18.65},{name:"Стамбул / Амбарлы",locode:"TRAMB",country:"Турция",region:"Европа",type:"sea",lat:40.97,lng:28.72},{name:"Копер",locode:"SIKOP",country:"Словения",region:"Европа",type:"sea",lat:45.55,lng:13.73},{name:"Лос-Анджелес",locode:"USLAX",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:33.73,lng:-118.26,throughput:9.9},{name:"Лонг-Бич",locode:"USLGB",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:33.77,lng:-118.19,throughput:8.1},{name:"РќСЊСЋ-Йорк",locode:"USNYC",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:40.71,lng:-74.01,throughput:7.7},{name:"Саванна",locode:"USSAV",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:32.08,lng:-81.09,throughput:5.5},{name:"Хьюстон",locode:"USHOU",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:29.74,lng:-95.27,throughput:3.7},{name:"Сиэтл",locode:"USSEA",country:"РЎРЁРђ",region:"Северная Америка",type:"sea",lat:47.6,lng:-122.33,throughput:3.5},{name:"Ванкувер",locode:"CAVAN",country:"Канада",region:"Северная Америка",type:"sea",lat:49.29,lng:-123.12,throughput:3.4},{name:"Мансанильо",locode:"MXZLO",country:"Мексика",region:"Северная Америка",type:"sea",lat:19.05,lng:-104.32},{name:"Колон",locode:"PACOL",country:"Панама",region:"Северная Америка",type:"sea",lat:9.36,lng:-79.91},{name:"Картахена",locode:"COCTG",country:"Колумбия",region:"Северная Америка",type:"sea",lat:10.39,lng:-75.51},{name:"Сантос",locode:"BRSSZ",country:"Бразилия",region:"Южная Америка",type:"sea",lat:-23.95,lng:-46.32,throughput:4.5},{name:"Буэнавентура",locode:"COBUN",country:"Колумбия",region:"Южная Америка",type:"sea",lat:3.88,lng:-77.04},{name:"Буэнос-Айрес",locode:"AREZE",country:"Аргентина",region:"Южная Америка",type:"sea",lat:-34.59,lng:-58.37},{name:"Вальпараисо",locode:"CLVAP",country:"Чили",region:"Южная Америка",type:"sea",lat:-33.03,lng:-71.63},{name:"Кальяо",locode:"PECLL",country:"Перу",region:"Южная Америка",type:"sea",lat:-12.06,lng:-77.14},{name:"Дурбан",locode:"ZADUR",country:"ЮАР",region:"Африка",type:"sea",lat:-29.87,lng:31.03,throughput:2.9},{name:"Кейптаун",locode:"ZACPT",country:"ЮАР",region:"Африка",type:"sea",lat:-33.92,lng:18.42},{name:"РџРѕСЂС‚-Саид",locode:"EGPSD",country:"Египет",region:"Африка",type:"sea",lat:31.26,lng:32.3},{name:"Момбаса",locode:"KEMBA",country:"Кения",region:"Африка",type:"sea",lat:-4.04,lng:39.66},{name:"Лагос",locode:"NGLOS",country:"Нигерия",region:"Африка",type:"sea",lat:6.45,lng:3.42}],_=["РђР·РёСЏ","Европа","Северная Америка","Южная Америка","Ближний Восток","Африка","Р РѕСЃСЃРёСЏ Рё РЎРќР“","Океания"],C=24;function q(a){switch(a){case"Р РѕСЃСЃРёСЏ Рё РЎРќР“":return"info";case"РђР·РёСЏ":return"success";case"Европа":return"default";case"Ближний Восток":return"warning";default:return"default"}}function fe(){const{t:a}=X(),[l,x]=m.useState(""),[o,j]=m.useState("all"),[P,r]=m.useState(1),N=m.useMemo(()=>{const t=l.trim().toLowerCase();return y.filter(g=>{const O=!t||g.name.toLowerCase().includes(t)||g.locode.toLowerCase().includes(t)||g.country.toLowerCase().includes(t),T=o==="all"||g.region===o;return O&&T})},[l,o]),s=Math.max(1,Math.ceil(N.length/C)),c=Math.min(P,s),S=N.slice((c-1)*C,c*C);function R(t){x(t),r(1)}function M(t){j(t),r(1)}return e.jsxs(Z,{active:"tools",children:[e.jsxs(G,{children:[e.jsx("title",{children:a("tools.ports.meta.title","Справочник портов РјРёСЂР° — LOCODE, регион, контейнерооборот | Avalog")}),e.jsx("meta",{name:"description",content:a("tools.ports.meta.description","База данных 70 крупнейших портов РјРёСЂР°: UN/LOCODE, страна, регион, тип, контейнерооборот TEU. Фильтрация РїРѕ региону, РїРѕРёСЃРє РїРѕ названию Рё РєРѕРґСѓ.")}),e.jsx("link",{rel:"canonical",href:"https://avalog.ru/tools/ports"})]}),e.jsx(d,{py:"lg",bg:"surface",children:e.jsx(u,{size:"base",children:e.jsxs(h,{gap:6,children:[e.jsx("div",{children:e.jsx(i,{variant:"ghost",size:"sm",asChild:!0,className:"-ml-2",children:e.jsxs(U,{to:"/tools",children:[e.jsx(f,{className:"h-4 w-4"}),a("tools.ports.backLink","Р’СЃРµ инструменты")]})})}),e.jsxs(h,{gap:4,className:"max-w-3xl",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-12 w-12 rounded-xl bg-primary-light flex items-center justify-center",children:e.jsx(v,{className:"h-6 w-6 text-primary"})}),e.jsx(p,{variant:"info",children:a("tools.ports.hero.badge","Бесплатно В· без регистрации")})]}),e.jsx(B,{size:"md",children:a("tools.ports.hero.heading","Справочник портов")}),e.jsx(n,{variant:"lead",className:"text-text-muted",children:a("tools.ports.hero.lead","{{count}} крупнейших портов РјРёСЂР° — UN/LOCODE, страна, регион, тип Рё контейнерооборот. Рспользуйте РїРѕРёСЃРє Рё фильтры для быстрого нахождения РЅСѓР¶РЅРѕРіРѕ порта.",{count:y.length})})]})]})})}),e.jsx(L,{}),e.jsx(d,{py:"md",children:e.jsx(u,{size:"base",children:e.jsxs(h,{gap:4,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 items-end",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs(A,{htmlFor:"port-search",className:"mb-1.5 block",children:[e.jsx(b,{className:"h-3.5 w-3.5 inline mr-1 opacity-60"}),a("tools.ports.searchLabel","РџРѕРёСЃРє")]}),e.jsxs("div",{className:"relative",children:[e.jsx(b,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-muted pointer-events-none"}),e.jsx(F,{id:"port-search",placeholder:a("tools.ports.searchPlaceholder","Название, LOCODE или страна..."),value:l,onChange:t=>R(t.target.value),className:"pl-9"})]})]}),e.jsxs("div",{className:"w-full sm:w-56",children:[e.jsxs(A,{htmlFor:"region-filter",className:"mb-1.5 block",children:[e.jsx($,{className:"h-3.5 w-3.5 inline mr-1 opacity-60"}),a("tools.ports.regionLabel","Регион")]}),e.jsxs(k,{value:o,onValueChange:M,children:[e.jsx(D,{id:"region-filter",children:e.jsx(H,{placeholder:a("tools.ports.allRegions","Р’СЃРµ регионы")})}),e.jsxs(I,{children:[e.jsx(w,{value:"all",children:a("tools.ports.allRegions","Р’СЃРµ регионы")}),_.map(t=>e.jsx(w,{value:t,children:t},t))]})]})]}),(l||o!=="all")&&e.jsxs(i,{variant:"outline",size:"sm",onClick:()=>{x(""),j("all"),r(1)},className:"shrink-0 self-end h-10",children:[e.jsx(W,{className:"h-4 w-4"}),a("tools.ports.reset","Сбросить")]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-sm text-text-muted",children:[e.jsx(E,{className:"h-4 w-4"}),e.jsxs(n,{variant:"muted",children:[l||o!=="all"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-medium text-text-base",children:N.length})," ",a("tools.ports.stats.ofPorts","РёР· {{total}} портов",{total:y.length}),o!=="all"&&a("tools.ports.stats.inRegion"," РІ регионе В«{{region}}В»",{region:o})]}):e.jsxs(e.Fragment,{children:[a("tools.ports.stats.total","Всего портов:")," ",e.jsx("span",{className:"font-medium text-text-base",children:y.length})]}),s>1&&e.jsxs(e.Fragment,{children:[" В· ",a("tools.ports.stats.pagePrefix","стр.")," ",e.jsx("span",{className:"font-medium text-text-base",children:c})," ",a("tools.ports.stats.pageOf","РёР·")," ",s]})]})]})]})})}),e.jsx(d,{py:"md",children:e.jsx(u,{size:"base",children:S.length===0?e.jsxs("div",{className:"text-center py-20",children:[e.jsx("div",{className:"h-16 w-16 rounded-2xl bg-surface-raised flex items-center justify-center mx-auto mb-4",children:e.jsx(v,{className:"h-8 w-8 text-text-muted"})}),e.jsx(K,{size:"h3",className:"mb-2",children:a("tools.ports.empty.heading","Ничего РЅРµ найдено")}),e.jsxs(n,{variant:"muted",className:"max-w-sm mx-auto",children:[a("tools.ports.empty.byQuery","РџРѕ запросу В«{{query}}В»",{query:l}),o!=="all"&&a("tools.ports.stats.inRegion"," РІ регионе В«{{region}}В»",{region:o}),a("tools.ports.empty.notFound"," портов РЅРµ нашлось. Попробуйте изменить фильтры или сбросить РёС….")]}),e.jsx(i,{variant:"outline",className:"mt-6",onClick:()=>{x(""),j("all"),r(1)},children:a("tools.ports.empty.resetFilters","Сбросить фильтры")})]}):e.jsx(V,{cols:3,gap:4,children:S.map(t=>e.jsx(z,{className:"hover:shadow-md hover:border-primary/30 transition-all",children:e.jsx(J,{className:"pt-5 pb-4",children:e.jsxs(h,{gap:3,children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"h-9 w-9 rounded-lg bg-primary-light flex items-center justify-center shrink-0 mt-0.5",children:e.jsx(v,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx(n,{weight:"semibold",className:"leading-snug truncate",children:t.name}),e.jsxs(n,{variant:"muted",className:"text-xs flex items-center gap-1 mt-0.5",children:[e.jsx(E,{className:"h-3 w-3 shrink-0"}),t.country]})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx(p,{variant:"default",className:"font-mono text-xs",children:t.locode}),e.jsx(p,{variant:q(t.region),className:"text-xs",children:t.region}),t.type==="river"&&e.jsx(p,{variant:"warning",className:"text-xs",children:a("tools.ports.riverBadge","Речной")})]}),t.throughput!=null&&e.jsxs("div",{className:"border border-border rounded-md px-3 py-1.5 bg-surface",children:[e.jsx(n,{className:"text-xs text-text-muted",children:a("tools.ports.throughputLabel","Контейнерооборот")}),e.jsx(n,{weight:"semibold",className:"text-sm",children:a("tools.ports.throughputValue","{{value}} млн TEU/РіРѕРґ",{value:t.throughput.toLocaleString("ru-RU")})})]}),e.jsxs(n,{variant:"muted",className:"text-xs font-mono",children:[t.lat>=0?`${t.lat.toFixed(2)}В°N`:`${Math.abs(t.lat).toFixed(2)}В°S`," ",t.lng>=0?`${t.lng.toFixed(2)}В°E`:`${Math.abs(t.lng).toFixed(2)}В°W`]})]})})},t.locode))})})}),s>1&&e.jsx(d,{py:"sm",children:e.jsx(u,{size:"base",children:e.jsxs("div",{className:"flex items-center justify-center gap-3",children:[e.jsxs(i,{variant:"outline",size:"sm",onClick:()=>r(t=>Math.max(1,t-1)),disabled:c<=1,children:[e.jsx(f,{className:"h-4 w-4"}),a("tools.ports.prev","Назад")]}),e.jsxs(n,{variant:"muted",className:"text-sm min-w-[80px] text-center",children:[c," / ",s]}),e.jsxs(i,{variant:"outline",size:"sm",onClick:()=>r(t=>Math.min(s,t+1)),disabled:c>=s,children:[a("tools.ports.next","Вперёд"),e.jsx(f,{className:"h-4 w-4 rotate-180"})]})]})})}),e.jsx(L,{className:"mt-4"}),e.jsx(Y,{})]})}export{fe as default};