1import{_ as $}from"./CT97h0H6.js";import{_ as j}from"./Bckmw5Nj.js";import{d as D,b6 as x,t as _,A as b,a2 as I,a5 as T,a3 as M,o as y,e as N,E as W,m as q,p as z,l as F,f as A,g as c,U as H,J as B,h as O,ba as h}from"./BRP_d_3g.js";const J={key:0,class:"phone-field__text"},Y={class:"phone-field__wrapper"},Z=D({__name:"AppSelectPhone",props:{data:{},className:{},withoutLabel:{type:Boolean},useLocalCode:{type:Boolean},selectedCode:{},error:{},disabled:{type:Boolean}},emits:["update:selectedCode","update:data","on-input","blur"],setup(i,{emit:U}){const{resetPhone:G}=x(),{selectedPhoneCode:P}=_(x()),l=i,p=U,a=B(""),v=B({currentPage:0,nextPage:!0,options:[]}),r=O({get(){return l.useLocalCode?l.selectedCode:P.value},set(e){l.useLocalCode?p("update:selectedCode",e):P.value=e}}),S=O(()=>{const e=[];for(let t=0;t<h.length;t++)e.push(h[t]);return{options:e}});function k(){g({page:1,search:""})}function w(e){var s;const t=e.target,o=((s=r.value)==null?void 0:s.value.dialCode)||"";let n=t.value;if(l.useLocalCode){if((t.selectionStart??n.length)<o.length&&t.setSelectionRange(o.length,o.length),!n.startsWith(o)){const{rest:u}=f(n);n=o+u}a.value=n,requestAnimationFrame(()=>{const u=Math.max(o.length,t.value.length);t.setSelectionRange(u,u)}),p("on-input");return}if(!n.startsWith(o)){t.value=a.value;return}a.value=n,p("on-input")}function E(e){r.value=e}function g(e){const{options:t,nextPage:o,currentPage:n}=_(v.value),s=e.page*10;let d=S.value.options;if(o.value===!1&&(o.value=!0),e.search){const u=e.search.toLowerCase();d=S.value.options.filter(C=>{const m=C.name.toLowerCase(),L=C.value.dialCode.toLowerCase();return m.includes(u)||L.includes(u)}).sort((C,m)=>{const L=C.name.toLowerCase().indexOf(u),R=m.name.toLowerCase().indexOf(u);return L-R})}t.value=d.slice(0,s),n.value=e.page,t.value.length===d.length&&(o.value=!1)}function f(e){if(!e)return{code:"",rest:""};const t=[...h].sort((n,s)=>s.value.dialCode.length-n.value.dialCode.length).find(n=>e.startsWith(n.value.dialCode));if(t)return{code:t.value.dialCode,rest:e.slice(t.value.dialCode.length)};const o=e.match(/^\+\d+/);return o?{code:o[0],rest:e.slice(o[0].length)}:{code:"",rest:e}}return b(()=>l.data,e=>{var n;const t=((n=r.value)==null?void 0:n.value.dialCode)||"";if(l.useLocalCode){if(!e){a.value=t;return}if(e.startsWith("+")){const{rest:s}=f(e);a.value=t+s}else a.value=t+e;return}if(!e){a.value=t;return}if(!e.startsWith("+"))return;const o=[...h].sort((s,d)=>d.value.dialCode.length-s.value.dialCode.length).find(s=>e.startsWith(s.value.dialCode));if(o){r.value=o;const s=e.slice(o.value.dialCode.length);a.value=o.value.dialCode+s}else a.value=e,r.value=h.find(s=>e.startsWith(s.value.dialCode))||{name:"Ukraine",value:{countryCode:"UA",dialCode:"+380",flag:"https://cdn.jsdelivr.net/npm/[email protected]/dist/images/UA.svg"}}},{immediate:!0}),b(a,e=>{p("update:data",e)},{immediate:!0,deep:!0}),I(()=>{var t;if(l.useLocalCode)return;const e=((t=r.value)==null?void 0:t.value.dialCode)||"";a.value.startsWith(e)||(a.value=e)}),l.useLocalCode&&b(()=>{var e;return(e=r.value)==null?void 0:e.value.dialCode},e=>{const t=a.value||"",{rest:o}=f(t);a.value=(e||"")+o}),T(()=>{var o;const e=((o=r.value)==null?void 0:o.value.dialCode)||"",t=l.data||"";if(l.useLocalCode){if(!t){a.value=e;return}if(t.startsWith("+")){const{rest:n}=f(t);a.value=e+n}else a.value=e+t;return}t.startsWith(e)?a.value=t:a.value=e+t}),M(()=>{}),(e,t)=>{const o=$,n=j;return y(),N("label",{class:W(["phone-field",{error:i.error}])},[i.withoutLabel?z("",!0):(y(),N("span",J,q(e.$t("general.phoneNumber"))+"*",1)),F("div",Y,[A(o,{type:c(H).PHONE,"has-search":"",options:c(v).options,"current-page":c(v).currentPage,"next-page":c(v).nextPage,"selected-option":c(r),disabled:i.disabled,onOnOpen:k,onOnChoosePhone:E,onOnSearch:g,onOnScroll:g},null,8,["type","options","current-page","next-page","selected-option","disabled"]),A(n,{id:"phone-input","is-phone":!0,"model-value":c(a),type:"tel",placeholder:e.$t("placeholder.phoneNumber"),autocomplete:"off",error:i.error,disabled:i.disabled,class:W([i.className,"input--phone"]),onInput:w,onBlur:t[0]||(t[0]=s=>p("blur"))},null,8,["model-value","placeholder","error","disabled","class"])])],2)}}});
1export{Z as _};
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.