import{w as x,q as h,n as i}from"./vendor-react-Br0ZiotI.js";import{br as k,b4 as T,aB as N,D as v,by as C,bX as S}from"./index-BdS0v754.js";import"./vendor-dayjs-8pzXSYYG.js";import{u as y}from"./vendor-i18n-C54Hc0CQ.js";const E={А:"A",В:"B",С:"C",Е:"E",Н:"H",К:"K",М:"M",О:"O",Р:"P",Т:"T",У:"Y",Х:"X"},L={A:10,B:12,C:13,D:14,E:15,F:16,G:17,H:18,I:19,J:20,K:21,L:23,M:24,N:25,O:26,P:27,Q:28,R:29,S:30,T:31,U:32,V:34,W:35,X:36,Y:37,Z:38},u=/^[A-Z]{4}\d{7}$/,O=/^[A-Z0-9-]{6,30}$/;function j(a){const e=a.trim().toUpperCase();let t="";for(const s of e)t+=E[s]??s;const r=t.replace(/\s+/g,""),n=r.replace(/-/g,"");return u.test(n)?n:r}function D(a){if(!u.test(a))return null;let e=0;for(let t=0;t<10;t++){const r=a[t],n=t<4?L[r]:Number(r);if(n===void 0||Number.isNaN(n))return null;e+=n*2**t}return e%11%10}function I(a){const e=j(a);if(e.length===0)return{normalized:e,type:null,checkDigitOk:!0};if(u.test(e)){const t=D(e),r=Number(e[10]);return{normalized:e,type:"CONTAINER",checkDigitOk:t===null||t===r}}return O.test(e)?{normalized:e,type:"BL",checkDigitOk:!0}:{normalized:e,type:null,checkDigitOk:!0}}function U({source:a,initialValue:e="",className:t,size:r="default"}){const n=x(),{t:s}=y(),[p,g]=h.useState(e),[c,o]=h.useState(null);function d(l){l==null||l.preventDefault();const{normalized:b,type:f}=I(p);if(!f){o(s("publicTracking.form.invalid","Введите номер контейнера (4 буквы + 7 цифр, например MSKU1234565) или номер коносамента"));return}o(null),S("public_tracking_search",{query_type:f,source:a}),n(`/tracking/${encodeURIComponent(b)}`)}const m=r==="lg"?"h-11":"h-9";return i.jsx("form",{onSubmit:d,className:t,role:"search","aria-label":s("publicTracking.form.ariaLabel","Отследить контейнер по номеру"),children:i.jsxs(k,{gap:2,children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(T,{"aria-hidden":!0,className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-text-muted pointer-events-none"}),i.jsx(N,{value:p,onChange:l=>{g(l.target.value),c&&o(null)},placeholder:s("publicTracking.form.placeholder","MSKU1234565 или номер коносамента"),className:`pl-8 font-mono text-sm ${m}`,autoComplete:"off",autoCapitalize:"characters",spellCheck:!1,"aria-invalid":c?!0:void 0,"aria-label":s("publicTracking.form.inputLabel","Номер контейнера или коносамента")})]}),i.jsx(v,{type:"submit",className:m,children:s("publicTracking.form.submit","Отследить")})]}),c?i.jsx(C,{role:"alert",className:"text-xs text-red-600",children:c}):null]})})}export{U as P};