(function(factory){if(typeof module==="object"&&module.exports)module.exports=factory();else window.intlTelInput=factory();})(function(undefined){"use strict";return(function(){ var allCountries=[["Albania (Shqip\xebri)","al","355"],["Argentina","ar","54"],["Armenia (Հայաստան)","am","374"],["Australia","au","61",0],["Austria (\xd6sterreich)","at","43"],["Belarus (Беларусь)","by","375"],["Belgium (Belgi\xeb)","be","32"],["Bosnia and Herzegovina (Босна и Херцеговина)","ba","387"],["Brazil (Brasil)","br","55"],["Bulgaria (България)","bg","359"],["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",],],["China (中国)","cn","86"],["Colombia","co","57"],["Croatia (Hrvatska)","hr","385"],["Cyprus (Κύπρος)","cy","357"],["Czech Republic (Česk\xe1 republika)","cz","420"],["Denmark (Danmark)","dk","45"],["Egypt (‫مصر‬‎)","eg","20"],["Estonia (Eesti)","ee","372"],["Finland (Suomi)","fi","358",0],["France","fr","33"],["Georgia (საქართველო)","ge","995"],["Germany (Deutschland)","de","49"],["Greece (Ελλάδα)","gr","30"],["Hong Kong (香港)","hk","852"],["Hungary (Magyarorsz\xe1g)","hu","36"],["Iceland (\xcdsland)","is","354"],["India (भारत)","in","91"],["Indonesia","id","62"],["Ireland","ie","353"],["Israel (‫ישראל‬‎)","il","972"],["Italy (Italia)","it","39",0],["Japan (日本)","jp","81"],["Kosovo","xk","383"],["Latvia (Latvija)","lv","371"],["Lithuania (Lietuva)","lt","370"],["Luxembourg","lu","352"],["Macedonia (FYROM) (Македонија)","mk","389"],["Malaysia","my","60"],["Malta","mt","356"],["Mexico (M\xe9xico)","mx","52"],["Moldova (Republica Moldova)","md","373"],["Monaco","mc","377"],["Netherlands (Nederland)","nl","31"],["New Zealand","nz","64"],["Norway (Norge)","no","47",0],["Pakistan (‫پاکستان‬‎)","pk","92"],["Poland (Polska)","pl","48"],["Portugal","pt","351"],["Romania (Rom\xe2nia)","ro","40"],["Russia (Россия)","ru","7",0],["Serbia (Србија)","rs","381"],["Singapore","sg","65"],["Slovakia (Slovensko)","sk","421"],["Slovenia (Slovenija)","si","386"],["South Africa","za","27"],["South Korea (대한민국)","kr","82"],["Spain (Espa\xf1a)","es","34"],["Sweden (Sverige)","se","46"],["Switzerland (Schweiz)","ch","41"],["Thailand (ไทย)","th","66"],["Turkey (T\xfcrkiye)","tr","90"],["Ukraine (Україна)","ua","380"],["United Arab Emirates (‫الإمارات العربية المتحدة‬‎)","ae","971"],["United Kingdom","gb","44",0],["United States","us","1",0],["Venezuela","ve","58"]]; for(var i=0;ithis.countryCodeMaxLen){this.countryCodeMaxLen=countryCode.length;} if(!this.countryCodes.hasOwnProperty(countryCode)){this.countryCodes[countryCode]=[];} for(var i=0;i-1;});}else if(this.options.excludeCountries.length){var lowerCaseExcludeCountries=this.options.excludeCountries.map(function(country){return country.toLowerCase();});this.countries=allCountries.filter(function(country){return lowerCaseExcludeCountries.indexOf(country.iso2)===-1;});}else{this.countries=allCountries;}},},{key:"_translateCountriesByLocale",value:function _translateCountriesByLocale(){for(var i=0;i");tmp+="
");tmp+="".concat(c.name,"");tmp+="+".concat(c.dialCode,"");tmp+="";} this.countryList.insertAdjacentHTML("beforeend",tmp);},},{key:"_setInitialState",value:function _setInitialState(){var val=this.telInput.value;var dialCode=this._getDialCode(val);var isRegionlessNanp=this._isRegionlessNanp(val);var _this$options=this.options,initialCountry=_this$options.initialCountry,nationalMode=_this$options.nationalMode,autoHideDialCode=_this$options.autoHideDialCode,separateDialCode=_this$options.separateDialCode;if(dialCode&&!isRegionlessNanp){this._updateFlagFromNumber(val);}else if(initialCountry!=="auto"){if(initialCountry){this._setFlag(initialCountry.toLowerCase());}else{if(dialCode&&isRegionlessNanp){this._setFlag("us");}else{this.defaultCountry=this.preferredCountries.length?this.preferredCountries[0].iso2:this.countries[0].iso2;if(!val){this._setFlag(this.defaultCountry);}}} if(!val&&!nationalMode&&!autoHideDialCode&&!separateDialCode){this.telInput.value="+".concat(this.selectedCountryData.dialCode);}} if(val)this._updateValFromNumber(val);},},{key:"_initListeners",value:function _initListeners(){this._initKeyListeners();if(this.options.autoHideDialCode)this._initBlurListeners();if(this.options.allowDropdown)this._initDropdownListeners();if(this.hiddenInput)this._initHiddenInputListener();},},{key:"_initHiddenInputListener",value:function _initHiddenInputListener(){var _this3=this;this._handleHiddenInputSubmit=function(){_this3.hiddenInput.value=_this3.getNumber();};if(this.telInput.form) this.telInput.form.addEventListener("submit",this._handleHiddenInputSubmit);},},{key:"_getClosestLabel",value:function _getClosestLabel(){var el=this.telInput;while(el&&el.tagName!=="LABEL"){el=el.parentNode;} return el;},},{key:"_initDropdownListeners",value:function _initDropdownListeners(){var _this4=this;this._handleLabelClick=function(e){if(_this4.countryList.classList.contains("iti__hide")) _this4.telInput.focus();else e.preventDefault();};var label=this._getClosestLabel();if(label) label.addEventListener("click",this._handleLabelClick);this._handleClickSelectedFlag=function(){if(_this4.countryList.classList.contains("iti__hide")&&!_this4.telInput.disabled&&!_this4.telInput.readOnly){_this4._showDropdown();}};this.selectedFlag.addEventListener("click",this._handleClickSelectedFlag);this._handleFlagsContainerKeydown=function(e){var isDropdownHidden=_this4.countryList.classList.contains("iti__hide");if(isDropdownHidden&&["ArrowUp","Up","ArrowDown","Down"," ","Enter"].indexOf(e.key)!==-1){e.preventDefault();e.stopPropagation();_this4._showDropdown();} if(e.key==="Tab")_this4._closeDropdown();};this.flagsContainer.addEventListener("keydown",this._handleFlagsContainerKeydown);},},{key:"_initRequests",value:function _initRequests(){var _this5=this;if(this.options.utilsScript&&!window.intlTelInputUtils){if(window.intlTelInputGlobals.documentReady()){window.intlTelInputGlobals.loadUtils(this.options.utilsScript);}else{window.addEventListener("load",function(){window.intlTelInputGlobals.loadUtils(_this5.options.utilsScript);});}}else this.resolveUtilsScriptPromise();if(this.options.initialCountry==="auto") this._loadAutoCountry();else this.resolveAutoCountryPromise();},},{key:"_loadAutoCountry",value:function _loadAutoCountry(){if(window.intlTelInputGlobals.autoCountry){this.handleAutoCountry();}else if(!window.intlTelInputGlobals.startedLoadingAutoCountry){window.intlTelInputGlobals.startedLoadingAutoCountry=true;if(typeof this.options.geoIpLookup==="function"){this.options.geoIpLookup(function(countryCode){window.intlTelInputGlobals.autoCountry=countryCode.toLowerCase();setTimeout(function(){return forEachInstance("handleAutoCountry");});},function(){return forEachInstance("rejectAutoCountryPromise");});}}},},{key:"_initKeyListeners",value:function _initKeyListeners(){var _this6=this;this._handleKeyupEvent=function(){if(_this6._updateFlagFromNumber(_this6.telInput.value)){_this6._triggerCountryChange();}};this.telInput.addEventListener("keyup",this._handleKeyupEvent);this._handleClipboardEvent=function(){setTimeout(_this6._handleKeyupEvent);};this.telInput.addEventListener("cut",this._handleClipboardEvent);this.telInput.addEventListener("paste",this._handleClipboardEvent);},},{key:"_cap",value:function _cap(number){var max=this.telInput.getAttribute("maxlength");return max&&number.length>max?number.substr(0,max):number;},},{key:"_initBlurListeners",value:function _initBlurListeners(){var _this7=this;this._handleSubmitOrBlurEvent=function(){_this7._removeEmptyDialCode();};if(this.telInput.form) this.telInput.form.addEventListener("submit",this._handleSubmitOrBlurEvent);this.telInput.addEventListener("blur",this._handleSubmitOrBlurEvent);},},{key:"_removeEmptyDialCode",value:function _removeEmptyDialCode(){if(this.telInput.value.charAt(0)==="+"){var numeric=this._getNumeric(this.telInput.value);if(!numeric||this.selectedCountryData.dialCode===numeric){this.telInput.value="";}}},},{key:"_getNumeric",value:function _getNumeric(s){return s.replace(/\D/g,"");},},{key:"_trigger",value:function _trigger(name){var e=document.createEvent("Event");e.initEvent(name,true,true);this.telInput.dispatchEvent(e);},},{key:"_showDropdown",value:function _showDropdown(){this.countryList.classList.remove("iti__hide");this.selectedFlag.setAttribute("aris-expanded","true");this._setDropdownPosition();if(this.activeItem){this._highlightListItem(this.activeItem,false);this._scrollTo(this.activeItem,true);} this._bindDropdownListeners();this.dropdownArrow.classList.add("iti__arrow--up");this._trigger("open:countrydropdown");},},{key:"_toggleClass",value:function _toggleClass(el,className,shouldHaveClass){if(shouldHaveClass&&!el.classList.contains(className)) el.classList.add(className);else if(!shouldHaveClass&&el.classList.contains(className)) el.classList.remove(className);},},{key:"_setDropdownPosition",value:function _setDropdownPosition(){var _this8=this;if(this.options.dropdownContainer){this.options.dropdownContainer.appendChild(this.dropdown);} if(!this.isMobile){var pos=this.telInput.getBoundingClientRect();var windowTop=window.pageYOffset||document.documentElement.scrollTop;var inputTop=pos.top+windowTop;var dropdownHeight=this.countryList.offsetHeight;var dropdownFitsBelow=inputTop+this.telInput.offsetHeight+dropdownHeightwindowTop;this._toggleClass(this.countryList,"iti__country-list--dropup",!dropdownFitsBelow&&dropdownFitsAbove);if(this.options.dropdownContainer){var extraTop=!dropdownFitsBelow&&dropdownFitsAbove?0:this.telInput.offsetHeight;this.dropdown.style.top="".concat(inputTop+extraTop,"px");this.dropdown.style.left="".concat(pos.left+document.body.scrollLeft,"px");this._handleWindowScroll=function(){return _this8._closeDropdown();};window.addEventListener("scroll",this._handleWindowScroll);}}},},{key:"_getClosestListItem",value:function _getClosestListItem(target){var el=target;while(el&&el!==this.countryList&&!el.classList.contains("iti__country")){el=el.parentNode;} return el===this.countryList?null:el;},},{key:"_bindDropdownListeners",value:function _bindDropdownListeners(){var _this9=this;this._handleMouseoverCountryList=function(e){var listItem=_this9._getClosestListItem(e.target);if(listItem)_this9._highlightListItem(listItem,false);};this.countryList.addEventListener("mouseover",this._handleMouseoverCountryList);this._handleClickCountryList=function(e){var listItem=_this9._getClosestListItem(e.target);if(listItem)_this9._selectListItem(listItem);};this.countryList.addEventListener("click",this._handleClickCountryList);var isOpening=true;this._handleClickOffToClose=function(){if(!isOpening)_this9._closeDropdown();isOpening=false;};document.documentElement.addEventListener("click",this._handleClickOffToClose);var query="";var queryTimer=null;this._handleKeydownOnDropdown=function(e){e.preventDefault();if(e.key==="ArrowUp"||e.key==="Up"||e.key==="ArrowDown"||e.key==="Down") _this9._handleUpDownKey(e.key);else if(e.key==="Enter")_this9._handleEnterKey();else if(e.key==="Escape")_this9._closeDropdown();else if(/^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(e.key)){if(queryTimer)clearTimeout(queryTimer);query+=e.key.toLowerCase();_this9._searchForCountry(query);queryTimer=setTimeout(function(){query="";},1e3);}};document.addEventListener("keydown",this._handleKeydownOnDropdown);},},{key:"_handleUpDownKey",value:function _handleUpDownKey(key){var next=key==="ArrowUp"||key==="Up"?this.highlightedItem.previousElementSibling:this.highlightedItem.nextElementSibling;if(next){if(next.classList.contains("iti__divider")){next=key==="ArrowUp"||key==="Up"?next.previousElementSibling:next.nextElementSibling;} this._highlightListItem(next,true);}},},{key:"_handleEnterKey",value:function _handleEnterKey(){if(this.highlightedItem) this._selectListItem(this.highlightedItem);},},{key:"_searchForCountry",value:function _searchForCountry(query){for(var i=0;icontainerBottom){if(middle)newScrollTop+=middleOffset;var heightDifference=containerHeight-elementHeight;container.scrollTop=newScrollTop-heightDifference;}},},{key:"_updateDialCode",value:function _updateDialCode(newDialCodeBare,hasSelectedListItem){var inputVal=this.telInput.value;var newDialCode="+".concat(newDialCodeBare);var newNumber;if(inputVal.charAt(0)==="+"){var prevDialCode=this._getDialCode(inputVal);if(prevDialCode){newNumber=inputVal.replace(prevDialCode,newDialCode);}else{newNumber=newDialCode;}}else if(this.options.nationalMode||this.options.separateDialCode){return;}else{if(inputVal){newNumber=newDialCode+inputVal;}else if(hasSelectedListItem||!this.options.autoHideDialCode){newNumber=newDialCode;}else{return;}} this.telInput.value=newNumber;},},{key:"_getDialCode",value:function _getDialCode(number,includeAreaCode){var dialCode="";if(number.charAt(0)==="+"){var numericChars="";for(var i=0;i