UNPKG

@finofo/react-international-phone

Version:

☎️ International phone input component for React

2 lines (1 loc) 28.6 kB
"use strict";var Ne=Object.create;var ee=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Ae=(t,e)=>{for(var o in e)ee(t,o,{get:e[o],enumerable:!0})},me=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Re(e))!Te.call(t,r)&&r!==o&&ee(t,r,{get:()=>e[r],enumerable:!(s=Me(e,r))||s.enumerable});return t};var X=(t,e,o)=>(o=t!=null?Ne(_e(t)):{},me(e||!t||!t.__esModule?ee(o,"default",{value:t,enumerable:!0}):o,t)),Ee=t=>me(ee({},"__esModule",{value:!0}),t);var Ke={};Ae(Ke,{CountrySelector:()=>se,CountrySelectorDropdown:()=>ie,DialCodePreview:()=>le,FlagImage:()=>J,PhoneInput:()=>ke,buildCountryData:()=>ye,defaultCountries:()=>R,formatPhone:()=>te,getActiveFormattingMask:()=>oe,getCountry:()=>z,guessCountryByPartialPhoneNumber:()=>ne,parseCountry:()=>M,removeDialCode:()=>ce,usePhoneInput:()=>ae});module.exports=Ee(Ke);var _=X(require("react"));var R=[["Afghanistan","af","93"],["Albania","al","355"],["Algeria","dz","213"],["Andorra","ad","376"],["Angola","ao","244"],["Antigua and Barbuda","ag","1268"],["Argentina","ar","54",{default:"(..) .... ....","/^11/":"(..) .... ....","/^15/":"(..) ... ....","/^(2|3|4|5)/":"(.) .... ....","/^9/":"(.) .... ....."},0],["Armenia","am","374",".. ......"],["Aruba","aw","297"],["Australia","au","61",{default:". .... ....","/^4/":"... ... ...","/^5(?!50)/":"... ... ...","/^1(3|8)00/":".... ... ...","/^13/":".. .. ..","/^180/":"... ...."},0,[]],["Austria","at","43"],["Azerbaijan","az","994","(..) ... .. .."],["Bahamas","bs","1242"],["Bahrain","bh","973",".... ...."],["Bangladesh","bd","880"],["Barbados","bb","1246"],["Belarus","by","375","(..) ... .. .."],["Belgium","be","32","... .. .. .."],["Belize","bz","501"],["Benin","bj","229"],["Bhutan","bt","975"],["Bolivia","bo","591"],["Bosnia and Herzegovina","ba","387"],["Botswana","bw","267"],["Brazil","br","55","(..) .....-...."],["British Indian Ocean Territory","io","246"],["Brunei","bn","673"],["Bulgaria","bg","359"],["Burkina Faso","bf","226"],["Burundi","bi","257"],["Cambodia","kh","855"],["Cameroon","cm","237"],["Canada","ca","1","(...) ...-....",1,["204","226","236","249","250","289","306","343","365","387","403","416","418","431","437","438","450","506","514","519","548","579","581","587","604","613","639","647","672","705","709","742","778","780","782","807","819","825","867","873","902","905"]],["Cape Verde","cv","238"],["Caribbean Netherlands","bq","599","",1],["Cayman Islands","ky","1","... ... ....",4,["345"]],["Central African Republic","cf","236"],["Chad","td","235"],["Chile","cl","56"],["China","cn","86","... .... ...."],["Colombia","co","57","... ... ...."],["Comoros","km","269"],["Congo","cd","243"],["Congo","cg","242"],["Costa Rica","cr","506","....-...."],["C\xF4te d'Ivoire","ci","225",".. .. .. .. .."],["Croatia","hr","385"],["Cuba","cu","53"],["Cura\xE7ao","cw","599","",0],["Cyprus","cy","357",".. ......"],["Czech Republic","cz","420","... ... ..."],["Denmark","dk","45",".. .. .. .."],["Djibouti","dj","253",".. .. ...."],["Dominica","dm","1767"],["Dominican Republic","do","1","(...) ...-....",2,["809","829","849"]],["Ecuador","ec","593"],["Egypt","eg","20"],["El Salvador","sv","503","....-...."],["Equatorial Guinea","gq","240"],["Eritrea","er","291"],["Estonia","ee","372",".... ......"],["Ethiopia","et","251",".. ... ...."],["Faroe Islands","fo","298",".. .. .."],["Fiji","fj","679"],["Finland","fi","358",".. ... .. .."],["France","fr","33",". .. .. .. .."],["French Guiana","gf","594","... .. .. .."],["French Polynesia","pf","689",{"/^44/":".. .. ..","/^80[0-5]/":"... .. .. ..",default:".. .. .. .."}],["Gabon","ga","241"],["Gambia","gm","220"],["Georgia","ge","995"],["Germany","de","49","... ........."],["Ghana","gh","233"],["Gibraltar","gi","350"],["Greece","gr","30"],["Greenland","gl","299",".. .. .."],["Grenada","gd","1473"],["Guadeloupe","gp","590","... .. .. ..",0],["Guam","gu","1671"],["Guatemala","gt","502","....-...."],["Guinea","gn","224"],["Guinea-Bissau","gw","245"],["Guyana","gy","592"],["Haiti","ht","509","....-...."],["Honduras","hn","504"],["Hong Kong","hk","852",".... ...."],["Hungary","hu","36"],["Iceland","is","354","... ...."],["India","in","91",".....-....."],["Indonesia","id","62"],["Iran","ir","98","... ... ...."],["Iraq","iq","964"],["Ireland","ie","353",".. ......."],["Israel","il","972","... ... ...."],["Italy","it","39","... .......",0],["Jamaica","jm","1876"],["Japan","jp","81",".. .... ...."],["Jordan","jo","962"],["Kazakhstan","kz","7","... ...-..-..",0],["Kenya","ke","254"],["Kiribati","ki","686"],["Kosovo","xk","383"],["Kuwait","kw","965",".... ...."],["Kyrgyzstan","kg","996","... ... ..."],["Laos","la","856"],["Latvia","lv","371",".. ... ..."],["Lebanon","lb","961"],["Lesotho","ls","266"],["Liberia","lr","231"],["Libya","ly","218"],["Liechtenstein","li","423"],["Lithuania","lt","370"],["Luxembourg","lu","352"],["Macau","mo","853"],["Macedonia","mk","389"],["Madagascar","mg","261"],["Malawi","mw","265"],["Malaysia","my","60","..-....-...."],["Maldives","mv","960"],["Mali","ml","223"],["Malta","mt","356"],["Marshall Islands","mh","692"],["Martinique","mq","596","... .. .. .."],["Mauritania","mr","222"],["Mauritius","mu","230"],["Mayotte","yt","262","... .. .. ..",1,["269","639"]],["Mexico","mx","52","... ... ....",0],["Micronesia","fm","691"],["Moldova","md","373","(..) ..-..-.."],["Monaco","mc","377"],["Mongolia","mn","976"],["Montenegro","me","382"],["Morocco","ma","212"],["Mozambique","mz","258"],["Myanmar","mm","95"],["Namibia","na","264"],["Nauru","nr","674"],["Nepal","np","977"],["Netherlands","nl","31",{"/^06/":"(.). .........","/^6/":". .........","/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/":"(.).. ........","/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/":".. ........","/^0/":"(.)... .......",default:"... ......."}],["New Caledonia","nc","687"],["New Zealand","nz","64","...-...-...."],["Nicaragua","ni","505"],["Niger","ne","227"],["Nigeria","ng","234"],["North Korea","kp","850"],["Norway","no","47","... .. ..."],["Oman","om","968",".... ...."],["Pakistan","pk","92","...-......."],["Palau","pw","680"],["Palestine","ps","970"],["Panama","pa","507"],["Papua New Guinea","pg","675"],["Paraguay","py","595"],["Peru","pe","51"],["Philippines","ph","63","... ... ...."],["Poland","pl","48","...-...-..."],["Portugal","pt","351"],["Puerto Rico","pr","1","(...) ...-....",3,["787","939"]],["Qatar","qa","974",".... ...."],["R\xE9union","re","262","... .. .. ..",0],["Romania","ro","40"],["Russia","ru","7","(...) ...-..-..",1],["Rwanda","rw","250"],["Saint Kitts and Nevis","kn","1869"],["Saint Lucia","lc","1758"],["Saint Pierre & Miquelon","pm","508",{"/^708/":"... ... ...","/^8/":"... .. .. ..",default:".. .. .."}],["Saint Vincent and the Grenadines","vc","1784"],["Samoa","ws","685"],["San Marino","sm","378"],["S\xE3o Tom\xE9 and Pr\xEDncipe","st","239"],["Saudi Arabia","sa","966",".. ... ...."],["Senegal","sn","221"],["Serbia","rs","381"],["Seychelles","sc","248"],["Sierra Leone","sl","232"],["Singapore","sg","65","....-...."],["Slovakia","sk","421"],["Slovenia","si","386"],["Solomon Islands","sb","677"],["Somalia","so","252"],["South Africa","za","27"],["South Korea","kr","82","... .... ...."],["South Sudan","ss","211"],["Spain","es","34","... ... ..."],["Sri Lanka","lk","94"],["Sudan","sd","249"],["Suriname","sr","597"],["Swaziland","sz","268"],["Sweden","se","46","... ... ..."],["Switzerland","ch","41",".. ... .. .."],["Syria","sy","963"],["Taiwan","tw","886"],["Tajikistan","tj","992"],["Tanzania","tz","255"],["Thailand","th","66"],["Timor-Leste","tl","670"],["Togo","tg","228"],["Tonga","to","676"],["Trinidad and Tobago","tt","1868"],["Tunisia","tn","216"],["Turkey","tr","90","... ... .. .."],["Turkmenistan","tm","993"],["Tuvalu","tv","688"],["Uganda","ug","256"],["Ukraine","ua","380","(..) ... .. .."],["United Arab Emirates","ae","971",{default:".. ... ....","/^5[024568]/":".. ... ....","/^[234679]/":". ... ...."}],["United Kingdom","gb","44",".... ......"],["United States","us","1","(...) ...-....",0],["Uruguay","uy","598"],["Uzbekistan","uz","998",".. ... .. .."],["Vanuatu","vu","678"],["Vatican City","va","39",".. .... ....",1],["Venezuela","ve","58"],["Vietnam","vn","84"],["Wallis & Futuna","wf","681",".. .. .."],["Yemen","ye","967"],["Zambia","zm","260"],["Zimbabwe","zw","263"]];var Le="react-international-phone-",fe=(...t)=>t.filter(e=>!!e).join(" ").trim(),$e=(...t)=>fe(...t).split(" ").map(e=>`${Le}${e}`).join(" "),D=({addPrefix:t,rawClassNames:e})=>fe($e(...t),...e);var Ce=({value:t,mask:e,maskSymbol:o,offset:s=0,trimNonMaskCharsLeftover:r=!1,allowMaskOverflow:a=!1})=>{if(t.length<s)return t;let p=t.slice(0,s),i=t.slice(s),n=e.split("").filter(d=>d===o).length,u=i.slice(0,n),l=a?i.slice(n):"",m=p,y=0;for(let d of e.split("")){if(y>=u.length){if(!r&&d!==o){m+=d;continue}break}d===o?(m+=u[y],y+=1):m+=d}return m+l};var G=t=>t?/^\d+$/.test(t):!1;var K=t=>t.replace(/\D/g,"");var he=(t,e)=>{let o=t.style.display;o!=="block"&&(t.style.display="block");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),a=r.top-s.top,p=s.bottom-r.bottom;a>=0&&p>=0||(Math.abs(a)<Math.abs(p)?t.scrollTop+=a:t.scrollTop-=p),t.style.display=o};var ye=t=>{let{name:e,iso2:o,dialCode:s,format:r,priority:a,areaCodes:p}=t,i=[e,o,s,r,a,p];for(let n=0;n<i.length;n+=1){if(n===0)continue;let u=i[n-1],l=i[n];if(u===void 0&&l!==void 0){let m=JSON.stringify(i,(y,d)=>d===void 0?"__undefined":d).replace(/"__undefined"/g,"undefined");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${u} in: ${m}`)}}return i.filter(n=>n!==void 0)};var A=require("react");var ge=()=>typeof window>"u"?!1:window.navigator.userAgent.toLowerCase().includes("macintosh");var ce=({phone:t,dialCode:e,prefix:o="+",charAfterDialCode:s=" "})=>{if(!t||!e)return t;let r=t;return r.startsWith(o)&&(r=r.replace(o,"")),r.startsWith(e)?(r=r.replace(e,""),r.startsWith(s)&&(r=r.replace(s,"")),r):t};var te=(t,e)=>{let o=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,a=u=>e.trimNonDigitsEnd?u.trim():u;if(!r)return s&&!r.length||o?a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):a(r);if(r=K(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return a(o?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(o)return a(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length<e.dialCode.length)return a(`${e.prefix}${r}`)}let p=()=>{let u=e.dialCode.length,l=r.slice(0,u),m=r.slice(u);return{phoneLeftSide:l,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:n}=p();return i=`${e.prefix}${i}${e.charAfterDialCode}`,n=Ce({value:n,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&n.length===0,allowMaskOverflow:e.allowMaskOverflow}),e.disableDialCodeAndPrefix&&(i=""),a(`${i}${n}`)};var be=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:o,cursorPositionAfterInput:s,leftOffset:r=0,deletion:a})=>{if(s<r)return r;if(!t)return o.length;let p=null;for(let l=s-1;l>=0;l-=1)if(G(e[l])){p=l;break}if(p===null){for(let l=0;l<e.length;l+=1)if(G(o[l]))return l;return e.length}let i=0;for(let l=0;l<p;l+=1)G(e[l])&&(i+=1);let n=0,u=0;for(let l=0;l<o.length&&(n+=1,G(o[l])&&(u+=1),!(u>=i+1));l+=1);if(a!=="backward")for(;!G(o[n])&&n<o.length;)n+=1;return n};var q=({phone:t,prefix:e})=>t?`${e}${K(t)}`:"";function Y({value:t,country:e,insertDialCodeOnEmpty:o,trimNonDigitsEnd:s,countries:r,prefix:a,charAfterDialCode:p,forceDialCode:i,disableDialCodeAndPrefix:n,defaultMask:u,countryGuessingEnabled:l,disableFormatting:m,allowMaskOverflow:y}){let d=t;n&&(d=d.startsWith(`${a}`)?d:`${a}${e.dialCode}${d}`);let v=l?ne({phone:d,countries:r,currentCountryIso2:e?.iso2}):void 0,f=v?.country??e,P=te(d,{prefix:a,mask:oe({phone:d,country:f,defaultMask:u,disableFormatting:m}),maskChar:re,dialCode:f.dialCode,trimNonDigitsEnd:s,charAfterDialCode:p,forceDialCode:i,insertDialCodeOnEmpty:o,disableDialCodeAndPrefix:n,allowMaskOverflow:y}),b=l&&!v?.fullDialCodeMatch?e:f;return{phone:q({phone:n?`${b.dialCode}${P}`:P,prefix:a}),inputValue:P,country:b}}var Fe=t=>{if(t?.toLocaleLowerCase().includes("delete")??!1)return t?.toLocaleLowerCase().includes("forward")?"forward":"backward"},we=(t,{country:e,insertDialCodeOnEmpty:o,phoneBeforeInput:s,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,countryGuessingEnabled:n,defaultMask:u,disableFormatting:l,countries:m,allowMaskOverflow:y})=>{let d=t.nativeEvent,v=d.inputType,f=Fe(v),P=!!v?.startsWith("insertFrom"),b=v==="insertText",k=d?.data||void 0,N=t.target.value,E=t.target.selectionStart??0;if(v?.includes("history"))return{inputValue:s,phone:q({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(b&&!G(k)&&N!==r)return{inputValue:s,phone:q({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:E-(k?.length??0),country:e};if(p&&!N.startsWith(`${r}${e.dialCode}`)&&!P){let w=N?s:`${r}${e.dialCode}${a}`;return{inputValue:w,phone:q({phone:w,prefix:r}),cursorPosition:r.length+e.dialCode.length+a.length,country:e}}let{phone:c,inputValue:C,country:h}=Y({value:N,country:e,trimNonDigitsEnd:f==="backward",insertDialCodeOnEmpty:o,countryGuessingEnabled:n,countries:m,prefix:r,charAfterDialCode:a,forceDialCode:p,disableDialCodeAndPrefix:i,disableFormatting:l,defaultMask:u,allowMaskOverflow:y}),x=be({cursorPositionAfterInput:E,phoneBeforeInput:s,phoneAfterInput:N,phoneAfterFormatted:C,leftOffset:p?r.length+e.dialCode.length+a.length:0,deletion:f});return{phone:c,inputValue:C,cursorPosition:x,country:h}};var B=require("react");var ve=(t,e)=>{let o=Object.keys(t),s=Object.keys(e);if(o.length!==s.length)return!1;for(let r of o)if(t[r]!==e[r])return!1;return!0};var W=require("react"),Pe=()=>{let t=(0,W.useRef)(),e=(0,W.useRef)(Date.now()),o=(0,W.useCallback)(()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r},[]);return(0,W.useMemo)(()=>({check:o}),[o])};var ze={size:20,overrideLastItemDebounceMS:-1};function xe(t,e){let{size:o,overrideLastItemDebounceMS:s,onChange:r}={...ze,...e},[a,p]=(0,B.useState)(t),i=(0,B.useRef)([a]),n=(0,B.useRef)(0),u=Pe(),l=(0,B.useCallback)((d,v)=>{let f=i.current[n.current];if(d===f||typeof d=="object"&&typeof f=="object"&&ve(d,f))return;let P=s>0,b=u.check(),O=P&&b!==void 0?b>s:!0;if(v?.overrideLastItem!==void 0?v.overrideLastItem:!O)i.current=[...i.current.slice(0,n.current),d];else{let N=i.current.length>=o;i.current=[...i.current.slice(N?1:0,n.current+1),d],N||(n.current+=1)}p(d),r?.(d)},[r,s,o,u]),m=(0,B.useCallback)(()=>{if(n.current<=0)return{success:!1};let d=i.current[n.current-1];return p(d),n.current-=1,r?.(d),{success:!0,value:d}},[r]),y=(0,B.useCallback)(()=>{if(n.current+1>=i.current.length)return{success:!1};let d=i.current[n.current+1];return p(d),n.current+=1,r?.(d),{success:!0,value:d}},[r]);return[a,l,m,y]}var re=".",T={defaultCountry:"us",value:"",prefix:"+",defaultMask:"............",charAfterDialCode:" ",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,allowMaskOverflow:!1,countries:R,preferredCountries:[]},ae=({defaultCountry:t=T.defaultCountry,value:e=T.value,countries:o=T.countries,prefix:s=T.prefix,defaultMask:r=T.defaultMask,charAfterDialCode:a=T.charAfterDialCode,historySaveDebounceMS:p=T.historySaveDebounceMS,disableCountryGuess:i=T.disableCountryGuess,disableDialCodePrefill:n=T.disableDialCodePrefill,forceDialCode:u=T.forceDialCode,disableDialCodeAndPrefix:l=T.disableDialCodeAndPrefix,disableFormatting:m=T.disableFormatting,allowMaskOverflow:y=T.allowMaskOverflow,onChange:d,inputRef:v})=>{let b={countries:o,prefix:s,charAfterDialCode:a,forceDialCode:l?!1:u,disableDialCodeAndPrefix:l,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m,allowMaskOverflow:y},O=(0,A.useRef)(null),k=v||O,N=S=>{Promise.resolve().then(()=>{typeof window>"u"||k.current!==document?.activeElement||k.current?.setSelectionRange(S,S)})},E=(0,A.useCallback)(S=>z({value:S,field:"iso2",countries:o}),[o]),c=(0,A.useCallback)(({inputValue:S,phone:L,country:I})=>{if(!d)return;let j=E(I);d({phone:L,inputValue:S,country:j})},[E,d]),[{phone:C,inputValue:h,country:x},w,V,H]=xe(()=>{let S=z({value:t,field:"iso2",countries:o});S||console.error(`[react-international-phone]: can not find a country with "${t}" iso2 code`);let L=S||z({value:"us",field:"iso2",countries:o}),{phone:I,inputValue:j,country:Q}=Y({value:e,country:L,insertDialCodeOnEmpty:!n,...b});return N(j.length),{phone:I,inputValue:j,country:Q.iso2}},{overrideLastItemDebounceMS:p,onChange:c}),F=(0,A.useMemo)(()=>E(x),[x,E]);(0,A.useEffect)(()=>{let S=k.current;if(!S)return;let L=I=>{if(!I.key)return;let j=I.ctrlKey,Q=I.metaKey,Ie=I.shiftKey;if(I.key.toLowerCase()==="z"){if(ge()){if(!Q)return}else if(!j)return;Ie?H():V()}};return S.addEventListener("keydown",L),()=>{S.removeEventListener("keydown",L)}},[k,V,H]);let Z=S=>{S.preventDefault();let{phone:L,inputValue:I,country:j,cursorPosition:Q}=we(S,{country:F,phoneBeforeInput:h,insertDialCodeOnEmpty:!1,...b});return w({inputValue:I,phone:L,country:j.iso2}),N(Q),e},ue=(0,A.useCallback)((S,L={focusOnInput:!1})=>{let I=z({value:S,field:"iso2",countries:o});if(!I){console.error(`[react-international-phone]: can not find a country with "${S}" iso2 code`);return}let j=l?"":`${s}${I.dialCode}${a}`;w({inputValue:j,phone:`${s}${I.dialCode}`,country:I.iso2}),L.focusOnInput&&Promise.resolve().then(()=>{k.current?.focus()})},[o,l,s,a,w,k]),[de,U]=(0,A.useState)(!1);return(0,A.useEffect)(()=>{if(!de){U(!0),e!==C&&d?.({inputValue:h,phone:C,country:F});return}if(e===C)return;let{phone:S,inputValue:L,country:I}=Y({value:e,country:F,insertDialCodeOnEmpty:!n,...b});w({phone:S,inputValue:L,country:I.iso2})},[e]),{phone:C,inputValue:h,country:F,setCountry:ue,handlePhoneValueChange:Z,inputRef:k}};var oe=({phone:t,country:e,defaultMask:o="............",disableFormatting:s=!1})=>{let r=e.format,a=i=>s?i.replace(new RegExp(`[^${re}]`,"g"),""):i;if(!r)return a(o);if(typeof r=="string")return a(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),a(o);let p=Object.keys(r).find(i=>{if(i==="default")return!1;if(!(i.charAt(0)==="/"&&i.charAt(i.length-1)==="/"))return console.error(`[react-international-phone]: format regex "${i}" for ${e.iso2} is not valid`),!1;let u=new RegExp(i.substring(1,i.length-1)),l=t.replace(e.dialCode,"");return u.test(K(l))});return a(p?r[p]:r.default)};var M=t=>{let[e,o,s,r,a,p]=t;return{name:e,iso2:o,dialCode:s,format:r,priority:a,areaCodes:p}};var Oe=t=>`Field "${t}" is not supported`,z=({field:t,value:e,countries:o=R})=>{if(["priority"].includes(t))throw new Error(Oe(t));let s=o.find(r=>{let a=M(r);return e===a[t]});if(s)return M(s)};var ne=({phone:t,countries:e=R,currentCountryIso2:o})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=K(t);if(!r)return s;let a=s,p=({country:i,fullDialCodeMatch:n})=>{let u=i.dialCode===a.country?.dialCode,l=(i.priority??0)<(a.country?.priority??0);(!u||l)&&(a={country:i,fullDialCodeMatch:n})};for(let i of e){let n=M(i),{dialCode:u,areaCodes:l}=n;if(r.startsWith(u)){let m=a.country?Number(u)>=Number(a.country.dialCode):!0;if(l){let y=r.substring(u.length);for(let d of l)if(y.startsWith(d))return{country:n,fullDialCodeMatch:!0}}(m||u===r||!a.fullDialCodeMatch)&&p({country:n,fullDialCodeMatch:!0})}a.fullDialCodeMatch||r.length<u.length&&u.startsWith(r)&&(!a.country||Number(u)<=Number(a.country.dialCode))&&p({country:n,fullDialCodeMatch:!1})}if(o){let i=z({value:o,field:"iso2",countries:e});if(!i)return a;let u=i?(m=>{if(!m?.areaCodes)return!1;let y=r.substring(m.dialCode.length);return m.areaCodes.some(d=>d.startsWith(y))})(i):!1;a&&a.country?.dialCode===i.dialCode&&a.country!==i&&a.fullDialCodeMatch&&(!i.areaCodes||u)&&(a={country:i,fullDialCodeMatch:!0})}return a};var pe=X(require("react"));var Ve=(t,e)=>{let o=parseInt(t,16);return Number(o+e).toString(16)},He="abcdefghijklmnopqrstuvwxyz",je="1f1e6",Se=He.split("").reduce((t,e,o)=>({...t,[e]:Ve(je,o)}),{}),Be=t=>[Se[t[0]],Se[t[1]]].join("-"),J=({iso2:t,size:e,src:o,protocol:s="https",disableLazyLoading:r,className:a,style:p,...i})=>{if(!t)return pe.default.createElement("img",{className:D({addPrefix:["flag-emoji"],rawClassNames:[a]}),width:e,height:e,...i});let n=()=>{if(o)return o;let u=Be(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${u}.svg`};return pe.default.createElement("img",{className:D({addPrefix:["flag-emoji"],rawClassNames:[a]}),src:n(),width:e,height:e,draggable:!1,"data-country":t,loading:r?void 0:"lazy",style:{width:e,height:e,...p},alt:"",...i})};var g=X(require("react"));var Ge=1e3,ie=({show:t,dialCodePrefix:e="+",selectedCountry:o,countries:s=R,preferredCountries:r=[],flags:a,onSelect:p,onClose:i,...n})=>{let u=(0,g.useRef)(null),l=(0,g.useRef)(),m=(0,g.useMemo)(()=>{if(!r||!r.length)return s;let c=[],C=[...s];for(let h of r){let x=C.findIndex(w=>M(w).iso2===h);if(x!==-1){let w=C.splice(x,1)[0];c.push(w)}}return c.concat(C)},[s,r]),y=(0,g.useRef)({updatedAt:void 0,value:""}),d=c=>{let C=y.current.updatedAt&&new Date().getTime()-y.current.updatedAt.getTime()>Ge;y.current={value:C?c:`${y.current.value}${c}`,updatedAt:new Date};let h=m.findIndex(x=>M(x).name.toLowerCase().startsWith(y.current.value));h!==-1&&P(h)},v=(0,g.useCallback)(c=>m.findIndex(C=>M(C).iso2===c),[m]),[f,P]=(0,g.useState)(v(o)),b=()=>{l.current!==o&&P(v(o))},O=(0,g.useCallback)(c=>{P(v(c.iso2)),p?.(c)},[p,v]),k=c=>{let C=m.length-1,h=x=>c==="prev"?x-1:c==="next"?x+1:c==="last"?C:0;P(x=>{let w=h(x);return w<0?0:w>C?C:w})},N=c=>{if(c.stopPropagation(),c.key==="Enter"){c.preventDefault();let C=M(m[f]);O(C);return}if(c.key==="Escape"){i?.();return}if(c.key==="ArrowUp"){c.preventDefault(),k("prev");return}if(c.key==="ArrowDown"){c.preventDefault(),k("next");return}if(c.key==="PageUp"){c.preventDefault(),k("first");return}if(c.key==="PageDown"){c.preventDefault(),k("last");return}c.key===" "&&c.preventDefault(),c.key.length===1&&!c.altKey&&!c.ctrlKey&&!c.metaKey&&d(c.key.toLocaleLowerCase())},E=(0,g.useCallback)(()=>{if(!u.current||f===void 0)return;let c=M(m[f]).iso2;if(c===l.current)return;let C=u.current.querySelector(`[data-country="${c}"]`);C&&(he(u.current,C),l.current=c)},[f,m]);return(0,g.useEffect)(()=>{E()},[f,E]),(0,g.useEffect)(()=>{u.current&&(t?u.current.focus():b())},[t]),(0,g.useEffect)(()=>{b()},[o]),g.default.createElement("ul",{ref:u,role:"listbox",className:D({addPrefix:["country-selector-dropdown"],rawClassNames:[n.className]}),style:{display:t?"block":"none",...n.style},onKeyDown:N,onBlur:i,tabIndex:-1,"aria-activedescendant":`react-international-phone__${M(m[f]).iso2}-option`},m.map((c,C)=>{let h=M(c),x=h.iso2===o,w=C===f,V=r.includes(h.iso2),H=C===r.length-1,F=a?.find(Z=>Z.iso2===h.iso2);return g.default.createElement(g.default.Fragment,{key:h.iso2},g.default.createElement("li",{"data-country":h.iso2,role:"option","aria-selected":x,"aria-label":`${h.name} ${e}${h.dialCode}`,id:`react-international-phone__${h.iso2}-option`,className:D({addPrefix:["country-selector-dropdown__list-item",V&&"country-selector-dropdown__list-item--preferred",x&&"country-selector-dropdown__list-item--selected",w&&"country-selector-dropdown__list-item--focused"],rawClassNames:[n.listItemClassName,V&&n.listItemPreferredClassName,x&&n.listItemSelectedClassName,w&&n.listItemFocusedClassName]}),onClick:()=>O(h),style:n.listItemStyle,title:h.name},g.default.createElement(J,{iso2:h.iso2,src:F?.src,className:D({addPrefix:["country-selector-dropdown__list-item-flag-emoji"],rawClassNames:[n.listItemFlagClassName]}),style:n.listItemFlagStyle}),g.default.createElement("span",{className:D({addPrefix:["country-selector-dropdown__list-item-country-name"],rawClassNames:[n.listItemCountryNameClassName]}),style:n.listItemCountryNameStyle},h.name),g.default.createElement("span",{className:D({addPrefix:["country-selector-dropdown__list-item-dial-code"],rawClassNames:[n.listItemDialCodeClassName]}),style:n.listItemDialCodeStyle},e,h.dialCode)),H?g.default.createElement("hr",{className:D({addPrefix:["country-selector-dropdown__preferred-list-divider"],rawClassNames:[n.preferredListDividerClassName]}),style:n.preferredListDividerStyle}):null)}))};var se=_.default.memo(({selectedCountry:t,onSelect:e,disabled:o,hideDropdown:s,countries:r=R,preferredCountries:a=[],flags:p,renderButtonWrapper:i,...n})=>{let[u,l]=(0,_.useState)(!1),m=(0,_.useMemo)(()=>{if(t)return z({value:t,field:"iso2",countries:r})},[r,t]),y=(0,_.useRef)(null),d=f=>{f.key&&["ArrowUp","ArrowDown"].includes(f.key)&&(f.preventDefault(),l(!0))},v=()=>{let f={title:m?.name,onClick:()=>l(b=>!b),onMouseDown:b=>b.preventDefault(),onKeyDown:d,disabled:s||o,role:"combobox","aria-label":"Country selector","aria-haspopup":"listbox","aria-expanded":u},P=_.default.createElement("div",{className:D({addPrefix:["country-selector-button__button-content"],rawClassNames:[n.buttonContentWrapperClassName]}),style:n.buttonContentWrapperStyle},_.default.createElement(J,{iso2:t,src:p?.find(b=>b.iso2===t)?.src,className:D({addPrefix:["country-selector-button__flag-emoji",o&&"country-selector-button__flag-emoji--disabled"],rawClassNames:[n.flagClassName]}),style:{visibility:t?"visible":"hidden",...n.flagStyle}}),!s&&_.default.createElement("div",{className:D({addPrefix:["country-selector-button__dropdown-arrow",o&&"country-selector-button__dropdown-arrow--disabled",u&&"country-selector-button__dropdown-arrow--active"],rawClassNames:[n.dropdownArrowClassName]}),style:n.dropdownArrowStyle}));return i?i({children:P,rootProps:f}):_.default.createElement("button",{...f,type:"button",className:D({addPrefix:["country-selector-button",u&&"country-selector-button--active",o&&"country-selector-button--disabled",s&&"country-selector-button--hide-dropdown"],rawClassNames:[n.buttonClassName]}),"data-country":t,style:n.buttonStyle},P)};return _.default.createElement("div",{className:D({addPrefix:["country-selector"],rawClassNames:[n.className]}),style:n.style,ref:y},v(),_.default.createElement(ie,{show:u,countries:r,preferredCountries:a,flags:p,onSelect:f=>{l(!1),e?.(f)},selectedCountry:t,onClose:()=>{l(!1)},...n.dropdownStyleProps}))});var De=X(require("react"));var le=({dialCode:t,prefix:e,disabled:o,style:s,className:r})=>De.default.createElement("div",{className:D({addPrefix:["dial-code-preview",o&&"dial-code-preview--disabled"],rawClassNames:[r]}),style:s},`${e}${t}`);var $=X(require("react"));var ke=(0,$.forwardRef)(({value:t,onChange:e,countries:o=R,preferredCountries:s,hideDropdown:r,showDisabledDialCodeAndPrefix:a,disableFocusAfterCountrySelect:p,flags:i,style:n,className:u,inputStyle:l,inputClassName:m,countrySelectorStyleProps:y,dialCodePreviewStyleProps:d,inputProps:v,placeholder:f,disabled:P,name:b,onFocus:O,onBlur:k,required:N,autoFocus:E,...c},C)=>{let h=(0,$.useCallback)(U=>{e?.(U.phone,{country:U.country,inputValue:U.inputValue})},[e]),{phone:x,inputValue:w,inputRef:V,country:H,setCountry:F,handlePhoneValueChange:Z}=ae({value:t,countries:o,...c,onChange:h}),ue=c.disableDialCodeAndPrefix&&a&&H?.dialCode,de=(0,$.useCallback)(U=>{F(U.iso2,{focusOnInput:!p})},[F,p]);return(0,$.useImperativeHandle)(C,()=>V.current?Object.assign(V.current,{setCountry:F,state:{phone:x,inputValue:w,country:H}}):null,[V,F,x,w,H]),$.default.createElement("div",{ref:C,className:D({addPrefix:["input-container"],rawClassNames:[u]}),style:n},$.default.createElement(se,{onSelect:de,flags:i,selectedCountry:H?.iso2,countries:o,preferredCountries:s,disabled:P,hideDropdown:r,...y}),ue&&$.default.createElement(le,{dialCode:H.dialCode,prefix:c.prefix??"+",disabled:P,...d}),$.default.createElement("input",{onChange:Z,value:w,type:"tel",ref:V,className:D({addPrefix:["input",P&&"input--disabled"],rawClassNames:[m]}),placeholder:f,disabled:P,style:l,name:b,onFocus:O,onBlur:k,autoFocus:E,required:N,...v}))});0&&(module.exports={CountrySelector,CountrySelectorDropdown,DialCodePreview,FlagImage,PhoneInput,buildCountryData,defaultCountries,formatPhone,getActiveFormattingMask,getCountry,guessCountryByPartialPhoneNumber,parseCountry,removeDialCode,usePhoneInput});