document.addEventListener("DOMContentLoaded",(e=>{var t;wpcf7_recaptcha={...null!==(t=wpcf7_recaptcha)&&void 0!==t?t:{}};const c=wpcf7_recaptcha.sitekey,{homepage:n,contactform:a}=wpcf7_recaptcha.actions,o=e=>{const{action:t,func:n,params:a}=e;grecaptcha.execute(c,{action:t}).then((e=>{const c=new CustomEvent("wpcf7grecaptchaexecuted",{detail:{action:t,token:e}});document.dispatchEvent(c)})).then((()=>{"function"==typeof n&&n(...a)})).catch((e=>console.error(e)))};if(grecaptcha.ready((()=>{o({action:n})})),document.addEventListener("change",(e=>{o({action:a})})),"undefined"!=typeof wpcf7&&"function"==typeof wpcf7.submit){const e=wpcf7.submit;wpcf7.submit=(t,c={})=>{o({action:a,func:e,params:[t,c]})}}document.addEventListener("wpcf7grecaptchaexecuted",(e=>{const t=document.querySelectorAll('form.wpcf7-form input[name="_wpcf7_recaptcha_response"]');for(let c=0;c<t.length;c++)t[c].setAttribute("value",e.detail.token)}))}));
(()=>{"use strict";function e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function t(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e){if(Array.isArray(e))return e}const l="email",a="phone",u="name",c={[l]:["email","e-mail","mail","email address"],[a]:["phone","tel","mobile","cell","telephone","phone number"],[u]:["name","full-name","full name","full_name","fullname","first-name","first name","first_name","firstname","last-name","last name","last_name","lastname","given-name","given name","given_name","givenname","family-name","family name","family_name","familyname","fname","lname","first","last","your-name","your name"]};function f(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function s(e){const t=f(e),r=t.lastIndexOf("@");if(-1===r)return t;const n=t.slice(r+1);if(["gmail.com","googlemail.com"].includes(n)){const e=t.slice(0,r).replace(/\./g,"");return"".concat(e,"@").concat(n)}return t}function m(e){const t=f(e),r=t.replace(/\D/g,"");return t.startsWith("+")?"+".concat(r):r}function y(l){const a=l.filter(e=>e.type===u).map(e=>f(e.value)).filter(Boolean);if(!a.length)return;const c=o(y=1===a.length?a[0].split(" "):a)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(y)||n(y)||r(),s=c[0],m=i(c).slice(1);var y;return function(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?e(Object(i),!0).forEach(function(e){t(r,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))})}return r}({first_name:s},(null==m?void 0:m.length)>0?{last_name:m.join(" ")}:{})}function p(e){var t;return null===(t=e.find(e=>e.type===l))||void 0===t?void 0:t.value}function v(e){var t;return null===(t=e.find(e=>e.type===a))||void 0===t?void 0:t.value}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function g(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}globalThis.document.addEventListener("wpcf7mailsent",e=>{var t,i,h;const O=(null===(t=globalThis._googlesitekit)||void 0===t?void 0:t.gtagUserData)?function(e){if(!(e&&e instanceof HTMLFormElement))return;const t=new FormData(e);return function(e){const t=[["address",y(e)],["email",p(e)],["phone_number",v(e)]].filter(e=>{return(t=e,i=2,o(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o,l,a=[],u=!0,c=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(a.push(n.value),a.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(c)throw i}}return a}}(t,i)||n(t,i)||r())[1];var t,i});if(0!==t.length)return Object.fromEntries(t)}(Array.from(t.entries()).map(t=>{var r;let n=(p=2,function(e){if(Array.isArray(e))return e}(y=t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o,l,a=[],u=!0,c=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=o.call(r)).done)&&(a.push(n.value),a.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(c)throw i}}return a}}(y,p)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b(e,t):void 0}}(y,p)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=n[0],o=n[1];var y,p;const v=e.querySelector("[name='".concat(i,"']")),d=null==v?void 0:v.type;return"hidden"===d||"submit"===d?null:function(e){let t=e||{},r=t.type,n=t.name,i=t.value,o=t.label;switch(r=f(r),n=f(n),i=f(i),o=function(e){return e&&"string"==typeof e?e.trim().toLowerCase().replace(/\s*\*+\s*$/,"").replace(/\s*\(required\)\s*$/i,"").replace(/\s*:\s*$/,"").trim():""}(o),r){case"email":return{type:l,value:s(i)};case"tel":return{type:a,value:m(i)}}return function(e){if(!e)return!1;const t=s(e);return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}(i)||c[l].includes(n)||c[l].includes(o)?{type:l,value:s(i)}:c[a].includes(n)||c[a].includes(o)?{type:a,value:m(i)}:c[u].includes(n)||c[u].includes(o)?{type:u,value:f(i)}:function(e){if(!e)return!1;if(!function(e){const t=e.replace(/\D/g,"");return!(t.length<7||t.length<e.length/2)&&/^[\s\-()+.\d]*$/.test(e)}(e))return!1;const t=m(e);if(!/^\+?\d{7,}$/.test(t))return!1;const r=/[\s\-()+.]/.test(e),n=e.trim().startsWith("+");return!(!r&&!n)}(i)?{type:a,value:m(i)}:null}({type:d,label:null!=v&&v.id?null===(r=e.querySelector("label[for='".concat(null==v?void 0:v.id,"']")))||void 0===r?void 0:r.textContent:void 0,name:i,value:o})}).filter(Boolean))}(e.target):null,j=e.detail.contactFormId;null===(i=globalThis._googlesitekit)||void 0===i||null===(h=i.gtagEvent)||void 0===h||h.call(i,"contact",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach(function(t){g(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({event_category:j,event_label:e.detail.unitTag,googlesitekit_event_provider:"contact-form-7",googlesitekit_form_id:String(j)},O?{user_data:O}:{}))})})();
(()=>{var e={823:(e,n)=>{var t,a={domainThreshold:2,secondLevelThreshold:2,topLevelThreshold:2,defaultDomains:["gmail.com"],defaultSecondLevelDomains:["gmail"],defaultTopLevelDomains:["com"],run:function(e){e.domains=e.domains||a.defaultDomains,e.secondLevelDomains=e.secondLevelDomains||a.defaultSecondLevelDomains,e.topLevelDomains=e.topLevelDomains||a.defaultTopLevelDomains,e.distanceFunction=e.distanceFunction||a.sift4Distance;var n=function(e){return e},t=e.suggested||n,i=e.empty||n,r=a.suggest(a.encodeEmail(e.email),e.domains,e.secondLevelDomains,e.topLevelDomains,e.distanceFunction);return r?t(r):i()},suggest:function(e,n,t,a,i){e=e.toLowerCase();var r=this.splitEmail(e);if(t&&a&&-1!==t.indexOf(r.secondLevelDomain)&&-1!==a.indexOf(r.topLevelDomain))return!1;var o=this.findClosestDomain(r.domain,n,i,this.domainThreshold);if(o)return o!=r.domain&&{address:r.address,domain:o,full:r.address+"@"+o};var s=this.findClosestDomain(r.secondLevelDomain,t,i,this.secondLevelThreshold),l=this.findClosestDomain(r.topLevelDomain,a,i,this.topLevelThreshold);if(r.domain){o=r.domain;var d=!1;if(s&&s!=r.secondLevelDomain&&(o=o.replace(r.secondLevelDomain,s),d=!0),l&&l!=r.topLevelDomain&&""!==r.secondLevelDomain&&(o=o.replace(new RegExp(r.topLevelDomain+"$"),l),d=!0),d)return{address:r.address,domain:o,full:r.address+"@"+o}}return!1},findClosestDomain:function(e,n,t,a){var i;a=a||this.topLevelThreshold;var r=1/0,o=null;if(!e||!n)return!1;t||(t=this.sift4Distance);for(var s=0;s<n.length;s++){if(e===n[s])return e;(i=t(e,n[s]))<r&&(r=i,o=n[s])}return r<=a&&null!==o&&o},sift4Distance:function(e,n,t){if(void 0===t&&(t=5),!e||!e.length)return n?n.length:0;if(!n||!n.length)return e.length;for(var a=e.length,i=n.length,r=0,o=0,s=0,l=0,d=0,c=[];r<a&&o<i;){if(e.charAt(r)==n.charAt(o)){l++;for(var u=!1,f=0;f<c.length;){var m=c[f];if(r<=m.c1||o<=m.c2){(u=Math.abs(o-r)>=Math.abs(m.c2-m.c1))?d++:m.trans||(m.trans=!0,d++);break}r>m.c2&&o>m.c1?c.splice(f,1):f++}c.push({c1:r,c2:o,trans:u})}else{s+=l,l=0,r!=o&&(r=o=Math.min(r,o));for(var v=0;v<t&&(r+v<a||o+v<i);v++){if(r+v<a&&e.charAt(r+v)==n.charAt(o)){r+=v-1,o--;break}if(o+v<i&&e.charAt(r)==n.charAt(o+v)){r--,o+=v-1;break}}}o++,(++r>=a||o>=i)&&(s+=l,l=0,r=o=Math.min(r,o))}return s+=l,Math.round(Math.max(a,i)-s+d)},splitEmail:function(e){var n=(e=null!==e?e.replace(/^\s*/,"").replace(/\s*$/,""):null).split("@");if(n.length<2)return!1;for(var t=0;t<n.length;t++)if(""===n[t])return!1;var a=n.pop(),i=a.split("."),r="",o="";if(0===i.length)return!1;if(1==i.length)o=i[0];else{r=i[0];for(var s=1;s<i.length;s++)o+=i[s]+".";o=o.substring(0,o.length-1)}return{topLevelDomain:o,secondLevelDomain:r,domain:a,address:n.join("@")}},encodeEmail:function(e){var n=encodeURI(e);return n=n.replace("%20"," ").replace("%25","%").replace("%5E","^").replace("%60","`").replace("%7B","{").replace("%7C","|").replace("%7D","}")}};e.exports&&(e.exports=a),void 0===(t=function(){return a}.apply(n,[]))||(e.exports=t),"undefined"!=typeof window&&window.jQuery&&(jQuery.fn.mailcheck=function(e){var n=this;if(e.suggested){var t=e.suggested;e.suggested=function(e){t(n,e)}}if(e.empty){var i=e.empty;e.empty=function(){i.call(null,n)}}e.email=this.val(),a.run(e)})}},n={};(function t(a){var i=n[a];if(void 0!==i)return i.exports;var r=n[a]={exports:{}};return e[a](r,r.exports,t),r.exports})(823)})();
(()=>{"use strict";!function(t){var i="emailautocomplete",s={suggClass:"eac-sugg",domains:["yahoo.com","hotmail.com","gmail.com","me.com","aol.com","mac.com","live.com","comcast.net","googlemail.com","msn.com","hotmail.co.uk","yahoo.co.uk","facebook.com","verizon.net","sbcglobal.net","att.net","gmx.com","outlook.com","icloud.com"]};function e(i,e){this.$field=t(i),this.options=t.extend(!0,{},s,e),this._defaults=s,this._domains=this.options.domains,this.init()}e.prototype={init:function(){Array.prototype.indexOf||this.doIndexOf(),this.fieldLeftOffset=null;var i=t("<div class='eac-input-wrap' />").css({display:this.$field.css("display"),position:"static"===this.$field.css("position")?"relative":this.$field.css("position"),fontSize:this.$field.css("fontSize")});this.$field.wrap(i),this.$cval=t("<span class='eac-cval' />").css({visibility:"hidden",position:"absolute",display:"inline-block",fontFamily:this.$field.css("fontFamily"),fontWeight:this.$field.css("fontWeight"),letterSpacing:this.$field.css("letterSpacing")}).insertAfter(this.$field);var s=(this.$field.outerHeight(!0)-this.$field.height())/2;this.$suggOverlay=t("<span class='"+this.options.suggClass+"' />").css({display:"block","box-sizing":"content-box",lineHeight:this.$field.css("lineHeight"),paddingTop:s+"px",paddingBottom:s+"px",fontFamily:this.$field.css("fontFamily"),fontWeight:this.$field.css("fontWeight"),letterSpacing:this.$field.css("letterSpacing"),position:"absolute",top:0,left:0}).insertAfter(this.$field),this.$field.on("keyup.eac",t.proxy(this.displaySuggestion,this)),this.$field.on("blur.eac",t.proxy(this.autocomplete,this)),this.$field.on("keydown.eac",t.proxy((function(t){39!==t.which&&9!==t.which&&32!==t.which&&13!==t.which||this.autocomplete(),9!==t.which||this.$field.hasClass("email-focus")?(32===t.which&&t.preventDefault(),this.$field.removeClass("email-focus")):(this.$field.addClass("email-focus"),t.preventDefault())}),this)),this.$field.on("click",t.proxy((function(t){this.autocomplete()}),this)),this.$suggOverlay.on("mousedown.eac touchstart.eac",t.proxy(this.autocomplete,this))},suggest:function(i){var s=(i=t.trim(i.toLowerCase())).split("@");return s.length>1&&(i=s.pop()).length?(this._domains.filter((function(t){return 0===t.indexOf(i)})).shift()||"").replace(i,""):""},autocomplete:function(){if(void 0===this.suggestion||this.suggestion.length<1)return!1;this.$field.val(this.val+this.suggestion),this.$suggOverlay.text(""),this.$cval.text("")},displaySuggestion:function(t){this.val=this.$field.val(),this.suggestion=this.suggest(this.val),this.suggestion.length?t.preventDefault():this.$suggOverlay.text(""),this.$suggOverlay.text(this.suggestion),this.$cval.text(this.val),null===this.fieldLeftOffset&&(this.fieldLeftOffset=(this.$field.outerWidth(!0)-this.$field.width())/2);var i=this.$cval.width();this.$field.outerWidth()>i&&this.$suggOverlay.css("left",this.fieldLeftOffset+i+"px")},doIndexOf:function(){Array.prototype.indexOf=function(t,i){if(null==this)throw new TypeError('"this" is null or not defined');var s=this.length>>>0;for(i=+i||0,Math.abs(i)===1/0&&(i=0),i<0&&(i+=s)<0&&(i=0);i<s;i++)if(this[i]===t)return i;return-1}}},t.fn[i]=function(s){return this.each((function(){t.data(this,"yz_"+i)||t.data(this,"yz_"+i,new e(this,s))}))}}(jQuery,window,document)})();
(function(factory){
if(typeof module==='object'&&module.exports){
module.exports=factory();
}else{
window.intlTelInput=factory();
}}(()=> {
var factoryOutput=(()=> {
var __defProp=Object.defineProperty;
var __getOwnPropDesc=Object.getOwnPropertyDescriptor;
var __getOwnPropNames=Object.getOwnPropertyNames;
var __hasOwnProp=Object.prototype.hasOwnProperty;
var __export=(target, all)=> {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps=(to, from, except, desc)=> {
if(from&&typeof from==="object"||typeof from==="function"){
for (let key of __getOwnPropNames(from))
if(!__hasOwnProp.call(to, key)&&key!==except)
__defProp(to, key, { get: ()=> from[key], enumerable: !(desc=__getOwnPropDesc(from, key))||desc.enumerable });
}
return to;
};
var __toCommonJS=(mod)=> __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var intl_tel_input_exports={};
__export(intl_tel_input_exports, {
Iti: ()=> Iti,
default: ()=> intl_tel_input_default
});
var rawCountryData=[
[
"af",
"93"
],
[
"ax",
"358",
1
],
[
"al",
"355"
],
[
"dz",
"213"
],
[
"as",
"1",
5,
["684"]
],
[
"ad",
"376"
],
[
"ao",
"244"
],
[
"ai",
"1",
6,
["264"]
],
[
"ag",
"1",
7,
["268"]
],
[
"ar",
"54"
],
[
"am",
"374"
],
[
"aw",
"297"
],
[
"ac",
"247"
],
[
"au",
"61",
0,
null,
"0"
],
[
"at",
"43"
],
[
"az",
"994"
],
[
"bs",
"1",
8,
["242"]
],
[
"bh",
"973"
],
[
"bd",
"880"
],
[
"bb",
"1",
9,
["246"]
],
[
"by",
"375"
],
[
"be",
"32"
],
[
"bz",
"501"
],
[
"bj",
"229"
],
[
"bm",
"1",
10,
["441"]
],
[
"bt",
"975"
],
[
"bo",
"591"
],
[
"ba",
"387"
],
[
"bw",
"267"
],
[
"br",
"55"
],
[
"io",
"246"
],
[
"vg",
"1",
11,
["284"]
],
[
"bn",
"673"
],
[
"bg",
"359"
],
[
"bf",
"226"
],
[
"bi",
"257"
],
[
"kh",
"855"
],
[
"cm",
"237"
],
[
"ca",
"1",
1,
["204", "226", "236", "249", "250", "263", "289", "306", "343", "354", "365", "367", "368", "382", "387", "403", "416", "418", "428", "431", "437", "438", "450", "584", "468", "474", "506", "514", "519", "548", "579", "581", "584", "587", "604", "613", "639", "647", "672", "683", "705", "709", "742", "753", "778", "780", "782", "807", "819", "825", "867", "873", "879", "902", "905"]
],
[
"cv",
"238"
],
[
"bq",
"599",
1,
["3", "4", "7"]
],
[
"ky",
"1",
12,
["345"]
],
[
"cf",
"236"
],
[
"td",
"235"
],
[
"cl",
"56"
],
[
"cn",
"86"
],
[
"cx",
"61",
2,
["89164"],
"0"
],
[
"cc",
"61",
1,
["89162"],
"0"
],
[
"co",
"57"
],
[
"km",
"269"
],
[
"cg",
"242"
],
[
"cd",
"243"
],
[
"ck",
"682"
],
[
"cr",
"506"
],
[
"ci",
"225"
],
[
"hr",
"385"
],
[
"cu",
"53"
],
[
"cw",
"599",
0
],
[
"cy",
"357"
],
[
"cz",
"420"
],
[
"dk",
"45"
],
[
"dj",
"253"
],
[
"dm",
"1",
13,
["767"]
],
[
"do",
"1",
2,
["809", "829", "849"]
],
[
"ec",
"593"
],
[
"eg",
"20"
],
[
"sv",
"503"
],
[
"gq",
"240"
],
[
"er",
"291"
],
[
"ee",
"372"
],
[
"sz",
"268"
],
[
"et",
"251"
],
[
"fk",
"500"
],
[
"fo",
"298"
],
[
"fj",
"679"
],
[
"fi",
"358",
0
],
[
"fr",
"33"
],
[
"gf",
"594"
],
[
"pf",
"689"
],
[
"ga",
"241"
],
[
"gm",
"220"
],
[
"ge",
"995"
],
[
"de",
"49"
],
[
"gh",
"233"
],
[
"gi",
"350"
],
[
"gr",
"30"
],
[
"gl",
"299"
],
[
"gd",
"1",
14,
["473"]
],
[
"gp",
"590",
0
],
[
"gu",
"1",
15,
["671"]
],
[
"gt",
"502"
],
[
"gg",
"44",
1,
["1481", "7781", "7839", "7911"],
"0"
],
[
"gn",
"224"
],
[
"gw",
"245"
],
[
"gy",
"592"
],
[
"ht",
"509"
],
[
"hn",
"504"
],
[
"hk",
"852"
],
[
"hu",
"36"
],
[
"is",
"354"
],
[
"in",
"91"
],
[
"id",
"62"
],
[
"ir",
"98"
],
[
"iq",
"964"
],
[
"ie",
"353"
],
[
"im",
"44",
2,
["1624", "74576", "7524", "7924", "7624"],
"0"
],
[
"il",
"972"
],
[
"it",
"39",
0
],
[
"jm",
"1",
4,
["876", "658"]
],
[
"jp",
"81"
],
[
"je",
"44",
3,
["1534", "7509", "7700", "7797", "7829", "7937"],
"0"
],
[
"jo",
"962"
],
[
"kz",
"7",
1,
["33", "7"],
"8"
],
[
"ke",
"254"
],
[
"ki",
"686"
],
[
"xk",
"383"
],
[
"kw",
"965"
],
[
"kg",
"996"
],
[
"la",
"856"
],
[
"lv",
"371"
],
[
"lb",
"961"
],
[
"ls",
"266"
],
[
"lr",
"231"
],
[
"ly",
"218"
],
[
"li",
"423"
],
[
"lt",
"370"
],
[
"lu",
"352"
],
[
"mo",
"853"
],
[
"mg",
"261"
],
[
"mw",
"265"
],
[
"my",
"60"
],
[
"mv",
"960"
],
[
"ml",
"223"
],
[
"mt",
"356"
],
[
"mh",
"692"
],
[
"mq",
"596"
],
[
"mr",
"222"
],
[
"mu",
"230"
],
[
"yt",
"262",
1,
["269", "639"],
"0"
],
[
"mx",
"52"
],
[
"fm",
"691"
],
[
"md",
"373"
],
[
"mc",
"377"
],
[
"mn",
"976"
],
[
"me",
"382"
],
[
"ms",
"1",
16,
["664"]
],
[
"ma",
"212",
0,
null,
"0"
],
[
"mz",
"258"
],
[
"mm",
"95"
],
[
"na",
"264"
],
[
"nr",
"674"
],
[
"np",
"977"
],
[
"nl",
"31"
],
[
"nc",
"687"
],
[
"nz",
"64"
],
[
"ni",
"505"
],
[
"ne",
"227"
],
[
"ng",
"234"
],
[
"nu",
"683"
],
[
"nf",
"672"
],
[
"kp",
"850"
],
[
"mk",
"389"
],
[
"mp",
"1",
17,
["670"]
],
[
"no",
"47",
0
],
[
"om",
"968"
],
[
"pk",
"92"
],
[
"pw",
"680"
],
[
"ps",
"970"
],
[
"pa",
"507"
],
[
"pg",
"675"
],
[
"py",
"595"
],
[
"pe",
"51"
],
[
"ph",
"63"
],
[
"pl",
"48"
],
[
"pt",
"351"
],
[
"pr",
"1",
3,
["787", "939"]
],
[
"qa",
"974"
],
[
"re",
"262",
0,
null,
"0"
],
[
"ro",
"40"
],
[
"ru",
"7",
0,
null,
"8"
],
[
"rw",
"250"
],
[
"ws",
"685"
],
[
"sm",
"378"
],
[
"st",
"239"
],
[
"sa",
"966"
],
[
"sn",
"221"
],
[
"rs",
"381"
],
[
"sc",
"248"
],
[
"sl",
"232"
],
[
"sg",
"65"
],
[
"sx",
"1",
21,
["721"]
],
[
"sk",
"421"
],
[
"si",
"386"
],
[
"sb",
"677"
],
[
"so",
"252"
],
[
"za",
"27"
],
[
"kr",
"82"
],
[
"ss",
"211"
],
[
"es",
"34"
],
[
"lk",
"94"
],
[
"bl",
"590",
1
],
[
"sh",
"290"
],
[
"kn",
"1",
18,
["869"]
],
[
"lc",
"1",
19,
["758"]
],
[
"mf",
"590",
2
],
[
"pm",
"508"
],
[
"vc",
"1",
20,
["784"]
],
[
"sd",
"249"
],
[
"sr",
"597"
],
[
"sj",
"47",
1,
["79"]
],
[
"se",
"46"
],
[
"ch",
"41"
],
[
"sy",
"963"
],
[
"tw",
"886"
],
[
"tj",
"992"
],
[
"tz",
"255"
],
[
"th",
"66"
],
[
"tl",
"670"
],
[
"tg",
"228"
],
[
"tk",
"690"
],
[
"to",
"676"
],
[
"tt",
"1",
22,
["868"]
],
[
"tn",
"216"
],
[
"tr",
"90"
],
[
"tm",
"993"
],
[
"tc",
"1",
23,
["649"]
],
[
"tv",
"688"
],
[
"ug",
"256"
],
[
"ua",
"380"
],
[
"ae",
"971"
],
[
"gb",
"44",
0,
null,
"0"
],
[
"us",
"1",
0
],
[
"uy",
"598"
],
[
"vi",
"1",
24,
["340"]
],
[
"uz",
"998"
],
[
"vu",
"678"
],
[
"va",
"39",
1,
["06698"]
],
[
"ve",
"58"
],
[
"vn",
"84"
],
[
"wf",
"681"
],
[
"eh",
"212",
1,
["5288", "5289"],
"0"
],
[
"ye",
"967"
],
[
"zm",
"260"
],
[
"zw",
"263"
]
];
var allCountries=[];
for (let i=0; i < rawCountryData.length; i++){
const c=rawCountryData[i];
allCountries[i]={
name: "",
iso2: c[0],
dialCode: c[1],
priority: c[2]||0,
areaCodes: c[3]||null,
nodeById: {},
nationalPrefix: c[4]||null
};}
var data_default=allCountries;
var countryTranslations={
ad: "Andorra",
ae: "United Arab Emirates",
af: "Afghanistan",
ag: "Antigua & Barbuda",
ai: "Anguilla",
al: "Albania",
am: "Armenia",
ao: "Angola",
ar: "Argentina",
as: "American Samoa",
at: "Austria",
au: "Australia",
aw: "Aruba",
ax: "\xC5land Islands",
az: "Azerbaijan",
ba: "Bosnia & Herzegovina",
bb: "Barbados",
bd: "Bangladesh",
be: "Belgium",
bf: "Burkina Faso",
bg: "Bulgaria",
bh: "Bahrain",
bi: "Burundi",
bj: "Benin",
bl: "St. Barth\xE9lemy",
bm: "Bermuda",
bn: "Brunei",
bo: "Bolivia",
bq: "Caribbean Netherlands",
br: "Brazil",
bs: "Bahamas",
bt: "Bhutan",
bw: "Botswana",
by: "Belarus",
bz: "Belize",
ca: "Canada",
cc: "Cocos (Keeling) Islands",
cd: "Congo - Kinshasa",
cf: "Central African Republic",
cg: "Congo - Brazzaville",
ch: "Switzerland",
ci: "C\xF4te d\u2019Ivoire",
ck: "Cook Islands",
cl: "Chile",
cm: "Cameroon",
cn: "China",
co: "Colombia",
cr: "Costa Rica",
cu: "Cuba",
cv: "Cape Verde",
cw: "Cura\xE7ao",
cx: "Christmas Island",
cy: "Cyprus",
cz: "Czechia",
de: "Germany",
dj: "Djibouti",
dk: "Denmark",
dm: "Dominica",
do: "Dominican Republic",
dz: "Algeria",
ec: "Ecuador",
ee: "Estonia",
eg: "Egypt",
eh: "Western Sahara",
er: "Eritrea",
es: "Spain",
et: "Ethiopia",
fi: "Finland",
fj: "Fiji",
fk: "Falkland Islands",
fm: "Micronesia",
fo: "Faroe Islands",
fr: "France",
ga: "Gabon",
gb: "United Kingdom",
gd: "Grenada",
ge: "Georgia",
gf: "French Guiana",
gg: "Guernsey",
gh: "Ghana",
gi: "Gibraltar",
gl: "Greenland",
gm: "Gambia",
gn: "Guinea",
gp: "Guadeloupe",
gq: "Equatorial Guinea",
gr: "Greece",
gt: "Guatemala",
gu: "Guam",
gw: "Guinea-Bissau",
gy: "Guyana",
hk: "Hong Kong SAR China",
hn: "Honduras",
hr: "Croatia",
ht: "Haiti",
hu: "Hungary",
id: "Indonesia",
ie: "Ireland",
il: "Israel",
im: "Isle of Man",
in: "India",
io: "British Indian Ocean Territory",
iq: "Iraq",
ir: "Iran",
is: "Iceland",
it: "Italy",
je: "Jersey",
jm: "Jamaica",
jo: "Jordan",
jp: "Japan",
ke: "Kenya",
kg: "Kyrgyzstan",
kh: "Cambodia",
ki: "Kiribati",
km: "Comoros",
kn: "St. Kitts & Nevis",
kp: "North Korea",
kr: "South Korea",
kw: "Kuwait",
ky: "Cayman Islands",
kz: "Kazakhstan",
la: "Laos",
lb: "Lebanon",
lc: "St. Lucia",
li: "Liechtenstein",
lk: "Sri Lanka",
lr: "Liberia",
ls: "Lesotho",
lt: "Lithuania",
lu: "Luxembourg",
lv: "Latvia",
ly: "Libya",
ma: "Morocco",
mc: "Monaco",
md: "Moldova",
me: "Montenegro",
mf: "St. Martin",
mg: "Madagascar",
mh: "Marshall Islands",
mk: "North Macedonia",
ml: "Mali",
mm: "Myanmar (Burma)",
mn: "Mongolia",
mo: "Macao SAR China",
mp: "Northern Mariana Islands",
mq: "Martinique",
mr: "Mauritania",
ms: "Montserrat",
mt: "Malta",
mu: "Mauritius",
mv: "Maldives",
mw: "Malawi",
mx: "Mexico",
my: "Malaysia",
mz: "Mozambique",
na: "Namibia",
nc: "New Caledonia",
ne: "Niger",
nf: "Norfolk Island",
ng: "Nigeria",
ni: "Nicaragua",
nl: "Netherlands",
no: "Norway",
np: "Nepal",
nr: "Nauru",
nu: "Niue",
nz: "New Zealand",
om: "Oman",
pa: "Panama",
pe: "Peru",
pf: "French Polynesia",
pg: "Papua New Guinea",
ph: "Philippines",
pk: "Pakistan",
pl: "Poland",
pm: "St. Pierre & Miquelon",
pr: "Puerto Rico",
ps: "Palestinian Territories",
pt: "Portugal",
pw: "Palau",
py: "Paraguay",
qa: "Qatar",
re: "R\xE9union",
ro: "Romania",
rs: "Serbia",
ru: "Russia",
rw: "Rwanda",
sa: "Saudi Arabia",
sb: "Solomon Islands",
sc: "Seychelles",
sd: "Sudan",
se: "Sweden",
sg: "Singapore",
sh: "St. Helena",
si: "Slovenia",
sj: "Svalbard & Jan Mayen",
sk: "Slovakia",
sl: "Sierra Leone",
sm: "San Marino",
sn: "Senegal",
so: "Somalia",
sr: "Suriname",
ss: "South Sudan",
st: "S\xE3o Tom\xE9 & Pr\xEDncipe",
sv: "El Salvador",
sx: "Sint Maarten",
sy: "Syria",
sz: "Eswatini",
tc: "Turks & Caicos Islands",
td: "Chad",
tg: "Togo",
th: "Thailand",
tj: "Tajikistan",
tk: "Tokelau",
tl: "Timor-Leste",
tm: "Turkmenistan",
tn: "Tunisia",
to: "Tonga",
tr: "Turkey",
tt: "Trinidad & Tobago",
tv: "Tuvalu",
tw: "Taiwan",
tz: "Tanzania",
ua: "Ukraine",
ug: "Uganda",
us: "United States",
uy: "Uruguay",
uz: "Uzbekistan",
va: "Vatican City",
vc: "St. Vincent & Grenadines",
ve: "Venezuela",
vg: "British Virgin Islands",
vi: "U.S. Virgin Islands",
vn: "Vietnam",
vu: "Vanuatu",
wf: "Wallis & Futuna",
ws: "Samoa",
ye: "Yemen",
yt: "Mayotte",
za: "South Africa",
zm: "Zambia",
zw: "Zimbabwe"
};
var countries_default=countryTranslations;
var interfaceTranslations={
selectedCountryAriaLabel: "Selected country",
noCountrySelected: "No country selected",
countryListAriaLabel: "List of countries",
searchPlaceholder: "Search",
zeroSearchResults: "No results found",
oneSearchResult: "1 result found",
multipleSearchResults: "${count} results found",
ac: "Ascension Island",
xk: "Kosovo"
};
var interface_default=interfaceTranslations;
var allTranslations={ ...countries_default, ...interface_default };
var en_default=allTranslations;
for (let i=0; i < data_default.length; i++){
data_default[i].name=en_default[data_default[i].iso2];
}
var id=0;
var defaults={
allowDropdown: true,
autoPlaceholder: "polite",
containerClass: "",
countryOrder: null,
countrySearch: true,
customPlaceholder: null,
dropdownContainer: null,
excludeCountries: [],
fixDropdownWidth: true,
formatAsYouType: true,
formatOnDisplay: true,
geoIpLookup: null,
hiddenInput: null,
i18n: {},
initialCountry: "",
loadUtils: null,
nationalMode: true,
onlyCountries: [],
placeholderNumberType: "MOBILE",
showFlags: true,
separateDialCode: false,
strictMode: false,
useFullscreenPopup: typeof navigator!=="undefined"&&typeof window!=="undefined" ? (
/Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent
)||window.innerWidth <=500
):false,
validationNumberTypes: ["MOBILE"]
};
var regionlessNanpNumbers=[
"800",
"822",
"833",
"844",
"855",
"866",
"877",
"880",
"881",
"882",
"883",
"884",
"885",
"886",
"887",
"888",
"889"
];
var getNumeric=(s)=> s.replace(/\D/g, "");
var normaliseString=(s="")=> s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
var isRegionlessNanp=(number)=> {
const numeric=getNumeric(number);
if(numeric.charAt(0)==="1"){
const areaCode=numeric.substr(1, 3);
return regionlessNanpNumbers.includes(areaCode);
}
return false;
};
var translateCursorPosition=(relevantChars, formattedValue, prevCaretPos, isDeleteForwards)=> {
if(prevCaretPos===0&&!isDeleteForwards){
return 0;
}
let count=0;
for (let i=0; i < formattedValue.length; i++){
if(/[+0-9]/.test(formattedValue[i])){
count++;
}
if(count===relevantChars&&!isDeleteForwards){
return i + 1;
}
if(isDeleteForwards&&count===relevantChars + 1){
return i;
}}
return formattedValue.length;
};
var createEl=(name, attrs, container)=> {
const el=document.createElement(name);
if(attrs){
Object.entries(attrs).forEach(([key, value])=> el.setAttribute(key, value));
}
if(container){
container.appendChild(el);
}
return el;
};
var forEachInstance=(method, ...args)=> {
const { instances }=intlTelInput;
Object.values(instances).forEach((instance)=> instance[method](...args));
};
var Iti=class {
constructor(input, customOptions={}){
this.id=id++;
this.telInput=input;
this.highlightedItem=null;
this.options=Object.assign({}, defaults, customOptions);
this.hadInitialPlaceholder=Boolean(input.getAttribute("placeholder"));
}
_init(){
if(this.options.useFullscreenPopup){
this.options.fixDropdownWidth=false;
}
if(this.options.onlyCountries.length===1){
this.options.initialCountry=this.options.onlyCountries[0];
}
if(this.options.separateDialCode){
this.options.nationalMode=false;
}
if(this.options.allowDropdown&&!this.options.showFlags&&!this.options.separateDialCode){
this.options.nationalMode=false;
}
if(this.options.useFullscreenPopup&&!this.options.dropdownContainer){
this.options.dropdownContainer=document.body;
}
this.isAndroid=typeof navigator!=="undefined" ? /Android/i.test(navigator.userAgent):false;
this.isRTL = !!this.telInput.closest("[dir=rtl]");
const showOnDefaultSide=this.options.allowDropdown||this.options.separateDialCode;
this.showSelectedCountryOnLeft=this.isRTL ? !showOnDefaultSide:showOnDefaultSide;
if(this.options.separateDialCode){
if(this.isRTL){
this.originalPaddingRight=this.telInput.style.paddingRight;
}else{
this.originalPaddingLeft=this.telInput.style.paddingLeft;
}}
this.options.i18n={ ...en_default, ...this.options.i18n };
const autoCountryPromise=new Promise((resolve, reject)=> {
this.resolveAutoCountryPromise=resolve;
this.rejectAutoCountryPromise=reject;
});
const utilsScriptPromise=new Promise((resolve, reject)=> {
this.resolveUtilsScriptPromise=resolve;
this.rejectUtilsScriptPromise=reject;
});
this.promise=Promise.all([autoCountryPromise, utilsScriptPromise]);
this.selectedCountryData={};
this._processCountryData();
this._generateMarkup();
this._setInitialState();
this._initListeners();
this._initRequests();
}
_processCountryData(){
this._processAllCountries();
this._processDialCodes();
this._translateCountryNames();
this._sortCountries();
}
_sortCountries(){
if(this.options.countryOrder){
this.options.countryOrder=this.options.countryOrder.map((country)=> country.toLowerCase());
}
this.countries.sort((a, b)=> {
const { countryOrder }=this.options;
if(countryOrder){
const aIndex=countryOrder.indexOf(a.iso2);
const bIndex=countryOrder.indexOf(b.iso2);
const aIndexExists=aIndex > -1;
const bIndexExists=bIndex > -1;
if(aIndexExists||bIndexExists){
if(aIndexExists&&bIndexExists){
return aIndex - bIndex;
}
return aIndexExists ? -1:1;
}}
return a.name.localeCompare(b.name);
});
}
_addToDialCodeMap(iso2, dialCode, priority){
if(dialCode.length > this.dialCodeMaxLen){
this.dialCodeMaxLen=dialCode.length;
}
if(!this.dialCodeToIso2Map.hasOwnProperty(dialCode)){
this.dialCodeToIso2Map[dialCode]=[];
}
for (let i=0; i < this.dialCodeToIso2Map[dialCode].length; i++){
if(this.dialCodeToIso2Map[dialCode][i]===iso2){
return;
}}
const index=priority!==void 0 ? priority:this.dialCodeToIso2Map[dialCode].length;
this.dialCodeToIso2Map[dialCode][index]=iso2;
}
_processAllCountries(){
const { onlyCountries, excludeCountries }=this.options;
if(onlyCountries.length){
const lowerCaseOnlyCountries=onlyCountries.map((country)=> country.toLowerCase()
);
this.countries=data_default.filter((country)=> lowerCaseOnlyCountries.includes(country.iso2)
);
}else if(excludeCountries.length){
const lowerCaseExcludeCountries=excludeCountries.map((country)=> country.toLowerCase()
);
this.countries=data_default.filter((country)=> !lowerCaseExcludeCountries.includes(country.iso2)
);
}else{
this.countries=data_default;
}}
_translateCountryNames(){
for (let i=0; i < this.countries.length; i++){
const iso2=this.countries[i].iso2.toLowerCase();
if(this.options.i18n.hasOwnProperty(iso2)){
this.countries[i].name=this.options.i18n[iso2];
}}
}
_processDialCodes(){
this.dialCodes={};
this.dialCodeMaxLen=0;
this.dialCodeToIso2Map={};
for (let i=0; i < this.countries.length; i++){
const c=this.countries[i];
if(!this.dialCodes[c.dialCode]){
this.dialCodes[c.dialCode]=true;
}
this._addToDialCodeMap(c.iso2, c.dialCode, c.priority);
}
for (let i=0; i < this.countries.length; i++){
const c=this.countries[i];
if(c.areaCodes){
const rootIso2Code=this.dialCodeToIso2Map[c.dialCode][0];
for (let j=0; j < c.areaCodes.length; j++){
const areaCode=c.areaCodes[j];
for (let k=1; k < areaCode.length; k++){
const partialAreaCode=areaCode.substr(0, k);
const partialDialCode=c.dialCode + partialAreaCode;
this._addToDialCodeMap(rootIso2Code, partialDialCode);
this._addToDialCodeMap(c.iso2, partialDialCode);
}
this._addToDialCodeMap(c.iso2, c.dialCode + areaCode);
}}
}}
_generateMarkup(){
this.telInput.classList.add("iti__tel-input");
if(!this.telInput.hasAttribute("autocomplete")&&!(this.telInput.form&&this.telInput.form.hasAttribute("autocomplete"))){
this.telInput.setAttribute("autocomplete", "off");
}
const {
allowDropdown,
separateDialCode,
showFlags,
containerClass,
hiddenInput,
dropdownContainer,
fixDropdownWidth,
useFullscreenPopup,
countrySearch,
i18n
}=this.options;
let parentClass="iti";
if(allowDropdown){
parentClass +=" iti--allow-dropdown";
}
if(showFlags){
parentClass +=" iti--show-flags";
}
if(containerClass){
parentClass +=` ${containerClass}`;
}
if(!useFullscreenPopup){
parentClass +=" iti--inline-dropdown";
}
const wrapper=createEl("div", { class: parentClass });
this.telInput.parentNode?.insertBefore(wrapper, this.telInput);
if(allowDropdown||showFlags||separateDialCode){
this.countryContainer=createEl(
"div",
{ class: "iti__country-container" },
wrapper
);
if(this.showSelectedCountryOnLeft){
this.countryContainer.style.left="0px";
}else{
this.countryContainer.style.right="0px";
}
if(allowDropdown){
this.selectedCountry=createEl(
"button",
{
type: "button",
class: "iti__selected-country",
"aria-expanded": "false",
"aria-label": this.options.i18n.selectedCountryAriaLabel,
"aria-haspopup": "true",
"aria-controls": `iti-${this.id}__dropdown-content`,
"role": "combobox"
},
this.countryContainer
);
if(this.telInput.disabled){
this.selectedCountry.setAttribute("disabled", "true");
}}else{
this.selectedCountry=createEl(
"div",
{ class: "iti__selected-country" },
this.countryContainer
);
}
const selectedCountryPrimary=createEl("div", { class: "iti__selected-country-primary" }, this.selectedCountry);
this.selectedCountryInner=createEl("div", { class: "iti__flag" }, selectedCountryPrimary);
this.selectedCountryA11yText=createEl(
"span",
{ class: "iti__a11y-text" },
this.selectedCountryInner
);
if(allowDropdown){
this.dropdownArrow=createEl(
"div",
{ class: "iti__arrow", "aria-hidden": "true" },
selectedCountryPrimary
);
}
if(separateDialCode){
this.selectedDialCode=createEl(
"div",
{ class: "iti__selected-dial-code" },
this.selectedCountry
);
}
if(allowDropdown){
const extraClasses=fixDropdownWidth ? "":"iti--flexible-dropdown-width";
this.dropdownContent=createEl("div", {
id: `iti-${this.id}__dropdown-content`,
class: `iti__dropdown-content iti__hide ${extraClasses}`
});
if(countrySearch){
this.searchInput=createEl(
"input",
{
type: "text",
class: "iti__search-input",
placeholder: i18n.searchPlaceholder,
role: "combobox",
"aria-expanded": "true",
"aria-label": i18n.searchPlaceholder,
"aria-controls": `iti-${this.id}__country-listbox`,
"aria-autocomplete": "list",
"autocomplete": "off"
},
this.dropdownContent
);
this.searchResultsA11yText=createEl(
"span",
{ class: "iti__a11y-text" },
this.dropdownContent
);
}
this.countryList=createEl(
"ul",
{
class: "iti__country-list",
id: `iti-${this.id}__country-listbox`,
role: "listbox",
"aria-label": i18n.countryListAriaLabel
},
this.dropdownContent
);
this._appendListItems();
if(countrySearch){
this._updateSearchResultsText();
}
if(dropdownContainer){
let dropdownClasses="iti iti--container";
if(useFullscreenPopup){
dropdownClasses +=" iti--fullscreen-popup";
}else{
dropdownClasses +=" iti--inline-dropdown";
}
this.dropdown=createEl("div", { class: dropdownClasses });
this.dropdown.appendChild(this.dropdownContent);
}else{
this.countryContainer.appendChild(this.dropdownContent);
}}
}
wrapper.appendChild(this.telInput);
this._updateInputPadding();
if(hiddenInput){
const telInputName=this.telInput.getAttribute("name")||"";
const names=hiddenInput(telInputName);
if(names.phone){
const existingInput=this.telInput.form?.querySelector(`input[name="${names.phone}"]`);
if(existingInput){
this.hiddenInput=existingInput;
}else{
this.hiddenInput=createEl("input", {
type: "hidden",
name: names.phone
});
wrapper.appendChild(this.hiddenInput);
}}
if(names.country){
const existingInput=this.telInput.form?.querySelector(`input[name="${names.country}"]`);
if(existingInput){
this.hiddenInputCountry=existingInput;
}else{
this.hiddenInputCountry=createEl("input", {
type: "hidden",
name: names.country
});
wrapper.appendChild(this.hiddenInputCountry);
}}
}}
_appendListItems(){
for (let i=0; i < this.countries.length; i++){
const c=this.countries[i];
const extraClass=i===0 ? "iti__highlight":"";
const listItem=createEl(
"li",
{
id: `iti-${this.id}__item-${c.iso2}`,
class: `iti__country ${extraClass}`,
tabindex: "-1",
role: "option",
"data-dial-code": c.dialCode,
"data-country-code": c.iso2,
"aria-selected": "false"
},
this.countryList
);
c.nodeById[this.id]=listItem;
let content="";
if(this.options.showFlags){
content +=`<div class='iti__flag iti__${c.iso2}'></div>`;
}
content +=`<span class='iti__country-name'>${c.name}</span>`;
content +=`<span class='iti__dial-code'>+${c.dialCode}</span>`;
listItem.insertAdjacentHTML("beforeend", content);
}}
_setInitialState(overrideAutoCountry=false){
const attributeValue=this.telInput.getAttribute("value");
const inputValue=this.telInput.value;
const useAttribute=attributeValue&&attributeValue.charAt(0)==="+"&&(!inputValue||inputValue.charAt(0)!=="+");
const val=useAttribute ? attributeValue:inputValue;
const dialCode=this._getDialCode(val);
const isRegionlessNanpNumber=isRegionlessNanp(val);
const { initialCountry, geoIpLookup }=this.options;
const isAutoCountry=initialCountry==="auto"&&geoIpLookup;
if(dialCode&&!isRegionlessNanpNumber){
this._updateCountryFromNumber(val);
}else if(!isAutoCountry||overrideAutoCountry){
const lowerInitialCountry=initialCountry ? initialCountry.toLowerCase():"";
const isValidInitialCountry=lowerInitialCountry&&this._getCountryData(lowerInitialCountry, true);
if(isValidInitialCountry){
this._setCountry(lowerInitialCountry);
}else{
if(dialCode&&isRegionlessNanpNumber){
this._setCountry("us");
}else{
this._setCountry();
}}
}
if(val){
this._updateValFromNumber(val);
}}
_initListeners(){
this._initTelInputListeners();
if(this.options.allowDropdown){
this._initDropdownListeners();
}
if((this.hiddenInput||this.hiddenInputCountry)&&this.telInput.form){
this._initHiddenInputListener();
}}
_initHiddenInputListener(){
this._handleHiddenInputSubmit=()=> {
if(this.hiddenInput){
this.hiddenInput.value=this.getNumber();
}
if(this.hiddenInputCountry){
this.hiddenInputCountry.value=this.getSelectedCountryData().iso2||"";
}};
this.telInput.form?.addEventListener("submit",
this._handleHiddenInputSubmit
);
}
_initDropdownListeners(){
this._handleLabelClick=(e)=> {
if(this.dropdownContent.classList.contains("iti__hide")){
this.telInput.focus();
}else{
e.preventDefault();
}};
const label=this.telInput.closest("label");
if(label){
label.addEventListener("click", this._handleLabelClick);
}
this._handleClickSelectedCountry=()=> {
if(this.dropdownContent.classList.contains("iti__hide")&&!this.telInput.disabled&&!this.telInput.readOnly){
this._openDropdown();
}};
this.selectedCountry.addEventListener("click", this._handleClickSelectedCountry);
this._handleCountryContainerKeydown=(e)=> {
const isDropdownHidden=this.dropdownContent.classList.contains("iti__hide");
if(isDropdownHidden&&["ArrowUp", "ArrowDown", " ", "Enter"].includes(e.key)){
e.preventDefault();
e.stopPropagation();
this._openDropdown();
}
if(e.key==="Tab"){
this._closeDropdown();
}};
this.countryContainer.addEventListener("keydown",
this._handleCountryContainerKeydown
);
}
_initRequests(){
let { loadUtils, initialCountry, geoIpLookup }=this.options;
if(loadUtils&&!intlTelInput.utils){
this._handlePageLoad=()=> {
window.removeEventListener("load", this._handlePageLoad);
intlTelInput.attachUtils(loadUtils)?.catch(()=> {
});
};
if(intlTelInput.documentReady()){
this._handlePageLoad();
}else{
window.addEventListener("load", this._handlePageLoad);
}}else{
this.resolveUtilsScriptPromise();
}
const isAutoCountry=initialCountry==="auto"&&geoIpLookup;
if(isAutoCountry&&!this.selectedCountryData.iso2){
this._loadAutoCountry();
}else{
this.resolveAutoCountryPromise();
}}
_loadAutoCountry(){
if(intlTelInput.autoCountry){
this.handleAutoCountry();
}else if(!intlTelInput.startedLoadingAutoCountry){
intlTelInput.startedLoadingAutoCountry=true;
if(typeof this.options.geoIpLookup==="function"){
this.options.geoIpLookup((iso2="")=> {
const iso2Lower=iso2.toLowerCase();
const isValidIso2=iso2Lower&&this._getCountryData(iso2Lower, true);
if(isValidIso2){
intlTelInput.autoCountry=iso2Lower;
setTimeout(()=> forEachInstance("handleAutoCountry"));
}else{
this._setInitialState(true);
forEachInstance("rejectAutoCountryPromise");
}},
()=> {
this._setInitialState(true);
forEachInstance("rejectAutoCountryPromise");
}
);
}}
}
_openDropdownWithPlus(){
this._openDropdown();
this.searchInput.value="+";
this._filterCountries("", true);
}
_initTelInputListeners(){
const { strictMode, formatAsYouType, separateDialCode, formatOnDisplay, allowDropdown, countrySearch }=this.options;
let userOverrideFormatting=false;
if(/\p{L}/u.test(this.telInput.value)){
userOverrideFormatting=true;
}
this._handleInputEvent=(e)=> {
if(this.isAndroid&&e?.data==="+"&&separateDialCode&&allowDropdown&&countrySearch){
const currentCaretPos=this.telInput.selectionStart||0;
const valueBeforeCaret=this.telInput.value.substring(0, currentCaretPos - 1);
const valueAfterCaret=this.telInput.value.substring(currentCaretPos);
this.telInput.value=valueBeforeCaret + valueAfterCaret;
this._openDropdownWithPlus();
return;
}
if(this._updateCountryFromNumber(this.telInput.value)){
this._triggerCountryChange();
}
const isFormattingChar=e?.data&&/[^+0-9]/.test(e.data);
const isPaste=e?.inputType==="insertFromPaste"&&this.telInput.value;
if(isFormattingChar||isPaste&&!strictMode){
userOverrideFormatting=true;
}else if(!/[^+0-9]/.test(this.telInput.value)){
userOverrideFormatting=false;
}
const disableFormatOnSetNumber=e?.detail&&e.detail["isSetNumber"]&&!formatOnDisplay;
if(formatAsYouType&&!userOverrideFormatting&&!disableFormatOnSetNumber){
const currentCaretPos=this.telInput.selectionStart||0;
const valueBeforeCaret=this.telInput.value.substring(0, currentCaretPos);
const relevantCharsBeforeCaret=valueBeforeCaret.replace(/[^+0-9]/g, "").length;
const isDeleteForwards=e?.inputType==="deleteContentForward";
const formattedValue=this._formatNumberAsYouType();
const newCaretPos=translateCursorPosition(relevantCharsBeforeCaret, formattedValue, currentCaretPos, isDeleteForwards);
this.telInput.value=formattedValue;
this.telInput.setSelectionRange(newCaretPos, newCaretPos);
}};
this.telInput.addEventListener("input", this._handleInputEvent);
if(strictMode||separateDialCode){
this._handleKeydownEvent=(e)=> {
if(e.key&&e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){
if(separateDialCode&&allowDropdown&&countrySearch&&e.key==="+"){
e.preventDefault();
this._openDropdownWithPlus();
return;
}
if(strictMode){
const value=this.telInput.value;
const alreadyHasPlus=value.charAt(0)==="+";
const isInitialPlus = !alreadyHasPlus&&this.telInput.selectionStart===0&&e.key==="+";
const isNumeric=/^[0-9]$/.test(e.key);
const isAllowedChar=separateDialCode ? isNumeric:isInitialPlus||isNumeric;
const newValue=value.slice(0, this.telInput.selectionStart) + e.key + value.slice(this.telInput.selectionEnd);
const newFullNumber=this._getFullNumber(newValue);
const coreNumber=intlTelInput.utils.getCoreNumber(newFullNumber, this.selectedCountryData.iso2);
const hasExceededMaxLength=this.maxCoreNumberLength&&coreNumber.length > this.maxCoreNumberLength;
let isChangingDialCode=false;
if(alreadyHasPlus){
const currentCountry=this.selectedCountryData.iso2;
const newCountry=this._getCountryFromNumber(newFullNumber);
isChangingDialCode=newCountry!==currentCountry;
}
if(!isAllowedChar||hasExceededMaxLength&&!isChangingDialCode&&!isInitialPlus){
e.preventDefault();
}}
}};
this.telInput.addEventListener("keydown", this._handleKeydownEvent);
}}
_cap(number){
const max=parseInt(this.telInput.getAttribute("maxlength")||"", 10);
return max&&number.length > max ? number.substr(0, max):number;
}
_trigger(name, detailProps={}){
const e=new CustomEvent(name, {
bubbles: true,
cancelable: true,
detail: detailProps
});
this.telInput.dispatchEvent(e);
}
_openDropdown(){
const { fixDropdownWidth, countrySearch }=this.options;
if(fixDropdownWidth){
this.dropdownContent.style.width=`${this.telInput.offsetWidth}px`;
}
this.dropdownContent.classList.remove("iti__hide");
this.selectedCountry.setAttribute("aria-expanded", "true");
this._setDropdownPosition();
if(countrySearch){
const firstCountryItem=this.countryList.firstElementChild;
if(firstCountryItem){
this._highlightListItem(firstCountryItem, false);
this.countryList.scrollTop=0;
}
this.searchInput.focus();
}
this._bindDropdownListeners();
this.dropdownArrow.classList.add("iti__arrow--up");
this._trigger("open:countrydropdown");
}
_setDropdownPosition(){
if(this.options.dropdownContainer){
this.options.dropdownContainer.appendChild(this.dropdown);
}
if(!this.options.useFullscreenPopup){
const inputPosRelativeToVP=this.telInput.getBoundingClientRect();
const inputHeight=this.telInput.offsetHeight;
if(this.options.dropdownContainer){
this.dropdown.style.top=`${inputPosRelativeToVP.top + inputHeight}px`;
this.dropdown.style.left=`${inputPosRelativeToVP.left}px`;
this._handleWindowScroll=()=> this._closeDropdown();
window.addEventListener("scroll", this._handleWindowScroll);
}}
}
_bindDropdownListeners(){
this._handleMouseoverCountryList=(e)=> {
const listItem=e.target?.closest(".iti__country");
if(listItem){
this._highlightListItem(listItem, false);
}};
this.countryList.addEventListener("mouseover",
this._handleMouseoverCountryList
);
this._handleClickCountryList=(e)=> {
const listItem=e.target?.closest(".iti__country");
if(listItem){
this._selectListItem(listItem);
}};
this.countryList.addEventListener("click", this._handleClickCountryList);
let isOpening=true;
this._handleClickOffToClose=()=> {
if(!isOpening){
this._closeDropdown();
}
isOpening=false;
};
document.documentElement.addEventListener("click",
this._handleClickOffToClose
);
let query="";
let queryTimer=null;
this._handleKeydownOnDropdown=(e)=> {
if(["ArrowUp", "ArrowDown", "Enter", "Escape"].includes(e.key)){
e.preventDefault();
e.stopPropagation();
if(e.key==="ArrowUp"||e.key==="ArrowDown"){
this._handleUpDownKey(e.key);
}else if(e.key==="Enter"){
this._handleEnterKey();
}else if(e.key==="Escape"){
this._closeDropdown();
}}
if(!this.options.countrySearch&&/^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(e.key)){
e.stopPropagation();
if(queryTimer){
clearTimeout(queryTimer);
}
query +=e.key.toLowerCase();
this._searchForCountry(query);
queryTimer=setTimeout(()=> {
query="";
}, 1e3);
}};
document.addEventListener("keydown", this._handleKeydownOnDropdown);
if(this.options.countrySearch){
const doFilter=()=> {
const inputQuery=this.searchInput.value.trim();
if(inputQuery){
this._filterCountries(inputQuery);
}else{
this._filterCountries("", true);
}};
let keyupTimer=null;
this._handleSearchChange=()=> {
if(keyupTimer){
clearTimeout(keyupTimer);
}
keyupTimer=setTimeout(()=> {
doFilter();
keyupTimer=null;
}, 100);
};
this.searchInput.addEventListener("input", this._handleSearchChange);
this.searchInput.addEventListener("click", (e)=> e.stopPropagation());
}}
_searchForCountry(query){
for (let i=0; i < this.countries.length; i++){
const c=this.countries[i];
const startsWith=c.name.substr(0, query.length).toLowerCase()===query;
if(startsWith){
const listItem=c.nodeById[this.id];
this._highlightListItem(listItem, false);
this._scrollTo(listItem);
break;
}}
}
_filterCountries(query, isReset=false){
let noCountriesAddedYet=true;
this.countryList.innerHTML="";
const normalisedQuery=normaliseString(query);
for (let i=0; i < this.countries.length; i++){
const c=this.countries[i];
const normalisedCountryName=normaliseString(c.name);
const countryInitials=c.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map((word)=> word[0]).join("").toLowerCase();
const fullDialCode=`+${c.dialCode}`;
if(isReset||normalisedCountryName.includes(normalisedQuery)||fullDialCode.includes(normalisedQuery)||c.iso2.includes(normalisedQuery)||countryInitials.includes(normalisedQuery)){
const listItem=c.nodeById[this.id];
if(listItem){
this.countryList.appendChild(listItem);
}
if(noCountriesAddedYet){
this._highlightListItem(listItem, false);
noCountriesAddedYet=false;
}}
}
if(noCountriesAddedYet){
this._highlightListItem(null, false);
}
this.countryList.scrollTop=0;
this._updateSearchResultsText();
}
_updateSearchResultsText(){
const { i18n }=this.options;
const count=this.countryList.childElementCount;
let searchText;
if(count===0){
searchText=i18n.zeroSearchResults;
}else if(count===1){
searchText=i18n.oneSearchResult;
}else{
searchText=i18n.multipleSearchResults.replace("${count}", count.toString());
}
this.searchResultsA11yText.textContent=searchText;
}
_handleUpDownKey(key){
let next=key==="ArrowUp" ? this.highlightedItem?.previousElementSibling:this.highlightedItem?.nextElementSibling;
if(!next&&this.countryList.childElementCount > 1){
next=key==="ArrowUp" ? this.countryList.lastElementChild:this.countryList.firstElementChild;
}
if(next){
this._scrollTo(next);
this._highlightListItem(next, false);
}}
_handleEnterKey(){
if(this.highlightedItem){
this._selectListItem(this.highlightedItem);
}}
_updateValFromNumber(fullNumber){
let number=fullNumber;
if(this.options.formatOnDisplay&&intlTelInput.utils&&this.selectedCountryData){
const useNational=this.options.nationalMode||number.charAt(0)!=="+"&&!this.options.separateDialCode;
const { NATIONAL, INTERNATIONAL }=intlTelInput.utils.numberFormat;
const format=useNational ? NATIONAL:INTERNATIONAL;
number=intlTelInput.utils.formatNumber(number,
this.selectedCountryData.iso2,
format
);
}
number=this._beforeSetNumber(number);
this.telInput.value=number;
}
_updateCountryFromNumber(fullNumber){
const iso2=this._getCountryFromNumber(fullNumber);
if(iso2!==null){
return this._setCountry(iso2);
}
return false;
}
_ensureHasDialCode(number){
const { dialCode, nationalPrefix }=this.selectedCountryData;
const alreadyHasPlus=number.charAt(0)==="+";
if(alreadyHasPlus||!dialCode){
return number;
}
const hasPrefix=nationalPrefix&&number.charAt(0)===nationalPrefix&&!this.options.separateDialCode;
const cleanNumber=hasPrefix ? number.substring(1):number;
return `+${dialCode}${cleanNumber}`;
}
_getCountryFromNumber(fullNumber){
const plusIndex=fullNumber.indexOf("+");
let number=plusIndex ? fullNumber.substring(plusIndex):fullNumber;
const selectedIso2=this.selectedCountryData.iso2;
const selectedDialCode=this.selectedCountryData.dialCode;
number=this._ensureHasDialCode(number);
const dialCodeMatch=this._getDialCode(number, true);
const numeric=getNumeric(number);
if(dialCodeMatch){
const dialCodeMatchNumeric=getNumeric(dialCodeMatch);
const iso2Codes=this.dialCodeToIso2Map[dialCodeMatchNumeric];
if(!selectedIso2&&this.defaultCountry&&iso2Codes.includes(this.defaultCountry)){
return this.defaultCountry;
}
const alreadySelected=selectedIso2&&iso2Codes.includes(selectedIso2)&&(numeric.length===dialCodeMatchNumeric.length||!this.selectedCountryData.areaCodes);
const isRegionlessNanpNumber=selectedDialCode==="1"&&isRegionlessNanp(numeric);
if(!isRegionlessNanpNumber&&!alreadySelected){
for (let j=0; j < iso2Codes.length; j++){
if(iso2Codes[j]){
return iso2Codes[j];
}}
}}else if(number.charAt(0)==="+"&&numeric.length){
return "";
}else if((!number||number==="+")&&!this.selectedCountryData.iso2){
return this.defaultCountry;
}
return null;
}
_highlightListItem(listItem, shouldFocus){
const prevItem=this.highlightedItem;
if(prevItem){
prevItem.classList.remove("iti__highlight");
prevItem.setAttribute("aria-selected", "false");
}
this.highlightedItem=listItem;
if(this.highlightedItem){
this.highlightedItem.classList.add("iti__highlight");
this.highlightedItem.setAttribute("aria-selected", "true");
const activeDescendant=this.highlightedItem.getAttribute("id")||"";
this.selectedCountry.setAttribute("aria-activedescendant", activeDescendant);
if(this.options.countrySearch){
this.searchInput.setAttribute("aria-activedescendant", activeDescendant);
}}
if(shouldFocus){
this.highlightedItem.focus();
}}
_getCountryData(iso2, allowFail){
for (let i=0; i < this.countries.length; i++){
if(this.countries[i].iso2===iso2){
return this.countries[i];
}}
if(allowFail){
return null;
}
throw new Error(`No country data for '${iso2}'`);
}
_setCountry(iso2){
const { separateDialCode, showFlags, i18n }=this.options;
const prevCountry=this.selectedCountryData.iso2 ? this.selectedCountryData:{};
this.selectedCountryData=iso2 ? this._getCountryData(iso2, false)||{}:{};
if(this.selectedCountryData.iso2){
this.defaultCountry=this.selectedCountryData.iso2;
}
if(this.selectedCountryInner){
let flagClass="";
let a11yText="";
if(iso2&&showFlags){
flagClass=`iti__flag iti__${iso2}`;
a11yText=`${this.selectedCountryData.name} +${this.selectedCountryData.dialCode}`;
}else{
flagClass="iti__flag iti__globe";
a11yText=i18n.noCountrySelected;
}
this.selectedCountryInner.className=flagClass;
this.selectedCountryA11yText.textContent=a11yText;
}
this._setSelectedCountryTitleAttribute(iso2, separateDialCode);
if(separateDialCode){
const dialCode=this.selectedCountryData.dialCode ? `+${this.selectedCountryData.dialCode}`:"";
this.selectedDialCode.innerHTML=dialCode;
this._updateInputPadding();
}
this._updatePlaceholder();
this._updateMaxLength();
return prevCountry.iso2!==iso2;
}
_updateInputPadding(){
if(this.selectedCountry){
const selectedCountryWidth=this.selectedCountry.offsetWidth||this._getHiddenSelectedCountryWidth();
const inputPadding=selectedCountryWidth + 6;
if(this.showSelectedCountryOnLeft){
this.telInput.style.paddingLeft=`${inputPadding}px`;
}else{
this.telInput.style.paddingRight=`${inputPadding}px`;
}}
}
_updateMaxLength(){
const { strictMode, placeholderNumberType, validationNumberTypes }=this.options;
const { iso2 }=this.selectedCountryData;
if(strictMode&&intlTelInput.utils){
if(iso2){
const numberType=intlTelInput.utils.numberType[placeholderNumberType];
let exampleNumber=intlTelInput.utils.getExampleNumber(iso2,
false,
numberType,
true
);
let validNumber=exampleNumber;
while (intlTelInput.utils.isPossibleNumber(exampleNumber, iso2, validationNumberTypes)){
validNumber=exampleNumber;
exampleNumber +="0";
}
const coreNumber=intlTelInput.utils.getCoreNumber(validNumber, iso2);
this.maxCoreNumberLength=coreNumber.length;
if(iso2==="by"){
this.maxCoreNumberLength=coreNumber.length + 1;
}}else{
this.maxCoreNumberLength=null;
}}
}
_setSelectedCountryTitleAttribute(iso2=null, separateDialCode){
if(!this.selectedCountry){
return;
}
let title;
if(iso2&&!separateDialCode){
title=`${this.selectedCountryData.name}: +${this.selectedCountryData.dialCode}`;
}else if(iso2){
title=this.selectedCountryData.name;
}else{
title="Unknown";
}
this.selectedCountry.setAttribute("title", title);
}
_getHiddenSelectedCountryWidth(){
if(this.telInput.parentNode){
const containerClone=this.telInput.parentNode.cloneNode(false);
containerClone.style.visibility="hidden";
document.body.appendChild(containerClone);
const countryContainerClone=this.countryContainer.cloneNode();
containerClone.appendChild(countryContainerClone);
const selectedCountryClone=this.selectedCountry.cloneNode(true);
countryContainerClone.appendChild(selectedCountryClone);
const width=selectedCountryClone.offsetWidth;
document.body.removeChild(containerClone);
return width;
}
return 0;
}
_updatePlaceholder(){
const {
autoPlaceholder,
placeholderNumberType,
nationalMode,
customPlaceholder
}=this.options;
const shouldSetPlaceholder=autoPlaceholder==="aggressive"||!this.hadInitialPlaceholder&&autoPlaceholder==="polite";
if(intlTelInput.utils&&shouldSetPlaceholder){
const numberType=intlTelInput.utils.numberType[placeholderNumberType];
let placeholder=this.selectedCountryData.iso2 ? intlTelInput.utils.getExampleNumber(this.selectedCountryData.iso2,
nationalMode,
numberType
):"";
placeholder=this._beforeSetNumber(placeholder);
if(typeof customPlaceholder==="function"){
placeholder=customPlaceholder(placeholder, this.selectedCountryData);
}
this.telInput.setAttribute("placeholder", placeholder);
}}
_selectListItem(listItem){
const countryChanged=this._setCountry(listItem.getAttribute("data-country-code")
);
this._closeDropdown();
this._updateDialCode(listItem.getAttribute("data-dial-code"));
this.telInput.focus();
if(countryChanged){
this._triggerCountryChange();
}}
_closeDropdown(){
this.dropdownContent.classList.add("iti__hide");
this.selectedCountry.setAttribute("aria-expanded", "false");
this.selectedCountry.removeAttribute("aria-activedescendant");
if(this.highlightedItem){
this.highlightedItem.setAttribute("aria-selected", "false");
}
if(this.options.countrySearch){
this.searchInput.removeAttribute("aria-activedescendant");
}
this.dropdownArrow.classList.remove("iti__arrow--up");
document.removeEventListener("keydown", this._handleKeydownOnDropdown);
if(this.options.countrySearch){
this.searchInput.removeEventListener("input", this._handleSearchChange);
}
document.documentElement.removeEventListener("click",
this._handleClickOffToClose
);
this.countryList.removeEventListener("mouseover",
this._handleMouseoverCountryList
);
this.countryList.removeEventListener("click", this._handleClickCountryList);
if(this.options.dropdownContainer){
if(!this.options.useFullscreenPopup){
window.removeEventListener("scroll", this._handleWindowScroll);
}
if(this.dropdown.parentNode){
this.dropdown.parentNode.removeChild(this.dropdown);
}}
if(this._handlePageLoad){
window.removeEventListener("load", this._handlePageLoad);
}
this._trigger("close:countrydropdown");
}
_scrollTo(element){
const container=this.countryList;
const scrollTop=document.documentElement.scrollTop;
const containerHeight=container.offsetHeight;
const containerTop=container.getBoundingClientRect().top + scrollTop;
const containerBottom=containerTop + containerHeight;
const elementHeight=element.offsetHeight;
const elementTop=element.getBoundingClientRect().top + scrollTop;
const elementBottom=elementTop + elementHeight;
const newScrollTop=elementTop - containerTop + container.scrollTop;
if(elementTop < containerTop){
container.scrollTop=newScrollTop;
}else if(elementBottom > containerBottom){
const heightDifference=containerHeight - elementHeight;
container.scrollTop=newScrollTop - heightDifference;
}}
_updateDialCode(newDialCodeBare){
const inputVal=this.telInput.value;
const newDialCode=`+${newDialCodeBare}`;
let newNumber;
if(inputVal.charAt(0)==="+"){
const prevDialCode=this._getDialCode(inputVal);
if(prevDialCode){
newNumber=inputVal.replace(prevDialCode, newDialCode);
}else{
newNumber=newDialCode;
}
this.telInput.value=newNumber;
}}
_getDialCode(number, includeAreaCode){
let dialCode="";
if(number.charAt(0)==="+"){
let numericChars="";
for (let i=0; i < number.length; i++){
const c=number.charAt(i);
if(!isNaN(parseInt(c, 10))){
numericChars +=c;
if(includeAreaCode){
if(this.dialCodeToIso2Map[numericChars]){
dialCode=number.substr(0, i + 1);
}}else{
if(this.dialCodes[numericChars]){
dialCode=number.substr(0, i + 1);
break;
}}
if(numericChars.length===this.dialCodeMaxLen){
break;
}}
}}
return dialCode;
}
_getFullNumber(overrideVal){
const val=overrideVal||this.telInput.value.trim();
const { dialCode }=this.selectedCountryData;
let prefix;
const numericVal=getNumeric(val);
if(this.options.separateDialCode&&val.charAt(0)!=="+"&&dialCode&&numericVal){
prefix=`+${dialCode}`;
}else{
prefix="";
}
return prefix + val;
}
_beforeSetNumber(fullNumber){
let number=fullNumber;
if(this.options.separateDialCode){
let dialCode=this._getDialCode(number);
if(dialCode){
dialCode=`+${this.selectedCountryData.dialCode}`;
const start=number[dialCode.length]===" "||number[dialCode.length]==="-" ? dialCode.length + 1:dialCode.length;
number=number.substr(start);
}}
return this._cap(number);
}
_triggerCountryChange(){
this._trigger("countrychange");
}
_formatNumberAsYouType(){
const val=this._getFullNumber();
const result=intlTelInput.utils ? intlTelInput.utils.formatNumberAsYouType(val, this.selectedCountryData.iso2):val;
const { dialCode }=this.selectedCountryData;
if(this.options.separateDialCode&&this.telInput.value.charAt(0)!=="+"&&result.includes(`+${dialCode}`)){
const afterDialCode=result.split(`+${dialCode}`)[1]||"";
return afterDialCode.trim();
}
return result;
}
handleAutoCountry(){
if(this.options.initialCountry==="auto"&&intlTelInput.autoCountry){
this.defaultCountry=intlTelInput.autoCountry;
const hasSelectedCountryOrGlobe=this.selectedCountryData.iso2||this.selectedCountryInner.classList.contains("iti__globe");
if(!hasSelectedCountryOrGlobe){
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
}}
handleUtils(){
if(intlTelInput.utils){
if(this.telInput.value){
this._updateValFromNumber(this.telInput.value);
}
if(this.selectedCountryData.iso2){
this._updatePlaceholder();
this._updateMaxLength();
}}
this.resolveUtilsScriptPromise();
}
destroy(){
const { allowDropdown, separateDialCode }=this.options;
if(allowDropdown){
this._closeDropdown();
this.selectedCountry.removeEventListener("click",
this._handleClickSelectedCountry
);
this.countryContainer.removeEventListener("keydown",
this._handleCountryContainerKeydown
);
const label=this.telInput.closest("label");
if(label){
label.removeEventListener("click", this._handleLabelClick);
}}
const { form }=this.telInput;
if(this._handleHiddenInputSubmit&&form){
form.removeEventListener("submit", this._handleHiddenInputSubmit);
}
this.telInput.removeEventListener("input", this._handleInputEvent);
if(this._handleKeydownEvent){
this.telInput.removeEventListener("keydown", this._handleKeydownEvent);
}
this.telInput.removeAttribute("data-intl-tel-input-id");
if(separateDialCode){
if(this.isRTL){
this.telInput.style.paddingRight=this.originalPaddingRight;
}else{
this.telInput.style.paddingLeft=this.originalPaddingLeft;
}}
const wrapper=this.telInput.parentNode;
wrapper?.parentNode?.insertBefore(this.telInput, wrapper);
wrapper?.parentNode?.removeChild(wrapper);
delete intlTelInput.instances[this.id];
}
getExtension(){
if(intlTelInput.utils){
return intlTelInput.utils.getExtension(this._getFullNumber(),
this.selectedCountryData.iso2
);
}
return "";
}
getNumber(format){
if(intlTelInput.utils){
const { iso2 }=this.selectedCountryData;
return intlTelInput.utils.formatNumber(this._getFullNumber(),
iso2,
format
);
}
return "";
}
getNumberType(){
if(intlTelInput.utils){
return intlTelInput.utils.getNumberType(this._getFullNumber(),
this.selectedCountryData.iso2
);
}
return -99;
}
getSelectedCountryData(){
return this.selectedCountryData;
}
getValidationError(){
if(intlTelInput.utils){
const { iso2 }=this.selectedCountryData;
return intlTelInput.utils.getValidationError(this._getFullNumber(), iso2);
}
return -99;
}
isValidNumber(){
if(!this.selectedCountryData.iso2){
return false;
}
const val=this._getFullNumber();
const alphaCharPosition=val.search(/\p{L}/u);
if(alphaCharPosition > -1){
const beforeAlphaChar=val.substring(0, alphaCharPosition);
const beforeAlphaIsValid=this._utilsIsPossibleNumber(beforeAlphaChar);
const isValid=this._utilsIsPossibleNumber(val);
return beforeAlphaIsValid&&isValid;
}
return this._utilsIsPossibleNumber(val);
}
_utilsIsPossibleNumber(val){
return intlTelInput.utils ? intlTelInput.utils.isPossibleNumber(val, this.selectedCountryData.iso2, this.options.validationNumberTypes):null;
}
isValidNumberPrecise(){
if(!this.selectedCountryData.iso2){
return false;
}
const val=this._getFullNumber();
const alphaCharPosition=val.search(/\p{L}/u);
if(alphaCharPosition > -1){
const beforeAlphaChar=val.substring(0, alphaCharPosition);
const beforeAlphaIsValid=this._utilsIsValidNumber(beforeAlphaChar);
const isValid=this._utilsIsValidNumber(val);
return beforeAlphaIsValid&&isValid;
}
return this._utilsIsValidNumber(val);
}
_utilsIsValidNumber(val){
return intlTelInput.utils ? intlTelInput.utils.isValidNumber(val, this.selectedCountryData.iso2, this.options.validationNumberTypes):null;
}
setCountry(iso2){
const iso2Lower=iso2?.toLowerCase();
const currentCountry=this.selectedCountryData.iso2;
const isCountryChange=iso2&&iso2Lower!==currentCountry||!iso2&&currentCountry;
if(isCountryChange){
this._setCountry(iso2Lower);
this._updateDialCode(this.selectedCountryData.dialCode);
this._triggerCountryChange();
}}
setNumber(number){
const countryChanged=this._updateCountryFromNumber(number);
this._updateValFromNumber(number);
if(countryChanged){
this._triggerCountryChange();
}
this._trigger("input", { isSetNumber: true });
}
setPlaceholderNumberType(type){
this.options.placeholderNumberType=type;
this._updatePlaceholder();
}
setDisabled(disabled){
this.telInput.disabled=disabled;
if(disabled){
this.selectedCountry.setAttribute("disabled", "true");
}else{
this.selectedCountry.removeAttribute("disabled");
}}
};
var attachUtils=(source)=> {
if(!intlTelInput.utils&&!intlTelInput.startedLoadingUtilsScript){
let loadCall;
if(typeof source==="function"){
try {
loadCall=Promise.resolve(source());
} catch (error){
return Promise.reject(error);
}}else{
return Promise.reject(new TypeError(`The argument passed to attachUtils must be a function that returns a promise for the utilities module, not ${typeof source}`));
}
intlTelInput.startedLoadingUtilsScript=true;
return loadCall.then((module)=> {
const utils=module?.default;
if(!utils||typeof utils!=="object"){
throw new TypeError("The loader function passed to attachUtils did not resolve to a module object with utils as its default export.");
}
intlTelInput.utils=utils;
forEachInstance("handleUtils");
return true;
}).catch((error)=> {
forEachInstance("rejectUtilsScriptPromise", error);
throw error;
});
}
return null;
};
var intlTelInput=Object.assign((input, options)=> {
const iti=new Iti(input, options);
iti._init();
input.setAttribute("data-intl-tel-input-id", iti.id.toString());
intlTelInput.instances[iti.id]=iti;
return iti;
},
{
defaults,
documentReady: ()=> document.readyState==="complete",
getCountryData: ()=> data_default,
getInstance: (input)=> {
const id2=input.getAttribute("data-intl-tel-input-id");
return id2 ? intlTelInput.instances[id2]:null;
},
instances: {},
attachUtils,
startedLoadingUtilsScript: false,
startedLoadingAutoCountry: false,
version: "25.3.0"
}
);
var intl_tel_input_default=intlTelInput;
return __toCommonJS(intl_tel_input_exports);
})();
return factoryOutput.default;
}));