From 06507611ae3e5802d0e60d8b0a4a99b5a8f04c2f Mon Sep 17 00:00:00 2001 From: Jack O'Connor Date: Sun, 23 Feb 2014 18:41:47 -0800 Subject: [PATCH] added validationScript option --- build/js/intlTelInput.js | 29 ++++++++-- build/js/intlTelInput.min.js | 2 +- ...{isValidIntlNumber.js => isValidNumber.js} | 56 +++++++++---------- ...{isValidIntlNumber.js => isValidNumber.js} | 6 +- src/js/intlTelInput.js | 32 +++++++++-- 5 files changed, 83 insertions(+), 42 deletions(-) rename lib/libphonenumber/build/{isValidIntlNumber.js => isValidNumber.js} (95%) rename lib/libphonenumber/src/{isValidIntlNumber.js => isValidNumber.js} (74%) diff --git a/build/js/intlTelInput.js b/build/js/intlTelInput.js index 63a12cc27..4f3ce2c97 100644 --- a/build/js/intlTelInput.js +++ b/build/js/intlTelInput.js @@ -19,15 +19,22 @@ author: Jack O'Connor (http://jackocnr.com) var pluginName = "intlTelInput", id = 1, // give each instance it's own id for namespaced event handling defaults = { - // united states and united kingdom - preferredCountries: [ "us", "gb" ], + // don't display the +1 prefix when America is selected americaMode: false, - onlyCountries: [], - defaultStyling: "inside", + // if there is just a dial code in the input: remove it on blur, and re-add it on focus autoHideDialCode: true, + // default country defaultCountry: "", // character to appear between dial code and phone number - dialCodeDelimiter: " " + dialCodeDelimiter: " ", + // position the selected flag inside or outside of the input + defaultStyling: "inside", + // display only these countries + onlyCountries: [], + // the countries at the top of the list. defaults to united states and united kingdom + preferredCountries: [ "us", "gb" ], + // specify the path to the libphonenumber script to enable validation + validationScript: "" }, keys = { UP: 38, DOWN: 40, @@ -190,6 +197,12 @@ Plugin.prototype = { that._showDropdown(); } }); + if (this.options.validationScript) { + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = this.options.validationScript; + document.body.appendChild(script); + } }, // on focus: if empty add dial code. on blur: if just dial code, then empty it _initAutoHideDialCode: function() { @@ -525,6 +538,12 @@ Plugin.prototype = { // the first is "flag" and the second is the 2-char country code var countryCode = this.selectedFlagInner.attr("class").split(" ")[1]; return this._getCountryData(countryCode); + }, + // validate the input val - assumes the global function isValidNumber + isValidNumber: function() { + var val = $.trim(this.telInput.val()); + var countryData = this.getSelectedCountryData(); + return window.isValidNumber(val, countryData.iso2); } }; diff --git a/build/js/intlTelInput.min.js b/build/js/intlTelInput.min.js index 9510e1d8a..5fe3eeed7 100644 --- a/build/js/intlTelInput.min.js +++ b/build/js/intlTelInput.min.js @@ -17,6 +17,6 @@ author: Jack O'Connor (http://jackocnr.com) }(function ($, window, document, undefined) { "use strict"; -function Plugin(a,b){this.element=a,this.options=$.extend({},defaults,b),this._defaults=defaults,this.id=id++,this._name=pluginName,this.init()}var pluginName="intlTelInput",id=1,defaults={preferredCountries:["us","gb"],americaMode:!1,onlyCountries:[],defaultStyling:"inside",autoHideDialCode:!0,defaultCountry:"",dialCodeDelimiter:" "},keys={UP:38,DOWN:40,ENTER:13,ESCAPE:27,A:65,Z:90};Plugin.prototype={init:function(){this._processCountryData(),this._generateMarkup(),this._setInitialValue(),this._initListeners()},_processCountryData:function(){this._setGlobalIntlData(),this._setPreferredCountries(),this._setDefaultCountry()},_setGlobalIntlData:function(){var a=this;if(this.options.onlyCountries.length){var b=[],c={};$.each(this.options.onlyCountries,function(d,e){var f=a._getCountryData(e,!0);if(f){b.push(f);var g=f.dialCode;c[g]?c[g].push(e):c[g]=[e]}}),window.intlData={countries:b,countryCodes:c}}else window.intlData=intlDataFull},_setPreferredCountries:function(){var a=this;this.preferredCountries=[],$.each(this.options.preferredCountries,function(b,c){var d=a._getCountryData(c,!1);d&&a.preferredCountries.push(d)})},_setDefaultCountry:function(){this.defaultCountry=this.options.defaultCountry?this._getCountryData(this.options.defaultCountry,!1):this.preferredCountries.length?this.preferredCountries[0]:intlData.countries[0]},_generateMarkup:function(){this.telInput=$(this.element);var a="intl-tel-input";"none"!=this.options.defaultStyling&&(a+=" pretty "+this.options.defaultStyling),this.telInput.wrap($("
",{"class":a}));var b=$("
",{"class":"flag-dropdown"}).insertAfter(this.telInput),c=$("
",{"class":"selected-flag"}).appendTo(b);this.selectedFlagInner=$("
",{"class":"flag "+this.defaultCountry.iso2}).appendTo(c),$("
",{"class":"arrow"}).appendTo(this.selectedFlagInner),this.countryList=$("
    ",{"class":"country-list hide"}).appendTo(b),this.preferredCountries.length&&(this._appendListItems(this.preferredCountries,"preferred"),$("
  • ",{"class":"divider"}).appendTo(this.countryList)),this._appendListItems(intlData.countries,""),this.countryListItems=this.countryList.children(".country"),this.countryListItems.first().addClass("active"),this._updateFlagFromInputVal()},_setInitialValue:function(){this.options.autoHideDialCode||""!==this.telInput.val()||this._resetToDialCode(this.defaultCountry.dialCode)},_initListeners:function(){var a=this;this.options.autoHideDialCode&&this._initAutoHideDialCode(),this.telInput.keyup(function(){a._updateFlagFromInputVal()});var b=this.selectedFlagInner.parent();b.click(function(){a.countryList.hasClass("hide")&&!a.telInput.prop("disabled")&&a._showDropdown()})},_initAutoHideDialCode:function(){var a=this;this.telInput.mousedown(function(b){a.telInput.is(":focus")||a.telInput.val()||(b.preventDefault(),a._focus())}),this.telInput.focus(function(){if(!$.trim(a.telInput.val())){var b=a.getSelectedCountryData();a._resetToDialCode(b.dialCode)}}),this.telInput.blur(function(){var b=$.trim(a.telInput.val());b&&$.trim(a._getDialCode(b)+a.options.dialCodeDelimiter)==b&&a.telInput.val("")})},_focus:function(){this.telInput.focus();var a=this.telInput[0];if(a.setSelectionRange){var b=this.telInput.val().length;a.setSelectionRange(b,b)}},_showDropdown:function(){var a=this.telInput.offset().top,b=$(window).scrollTop(),c=this.countryList.outerHeight(),d=a+this.telInput.outerHeight()+cb;!d&&e?this.countryList.css("top","-"+(c-1)+"px"):this.countryList.css("top","");var f=this.countryList.children(".active");this._highlightListItem(f),this.countryList.removeClass("hide"),this._scrollTo(f),this._bindDropdownListeners(),this.selectedFlagInner.children(".arrow").addClass("up")},_bindDropdownListeners:function(){var a=this;this.countryList.on("mouseover.intlTelInput",".country",function(){a._highlightListItem($(this))}),this.countryList.on("click.intlTelInput",".country",function(){a._selectListItem($(this))});var b=!0;$("html").on("click.intlTelInput"+this.id,function(){b||a._closeDropdown(),b=!1}),$(document).on("keydown.intlTelInput"+this.id,function(b){b.preventDefault(),b.which==keys.UP||b.which==keys.DOWN?a._handleUpDownKey(b.which):b.which==keys.ENTER?a._handleEnterKey():b.which==keys.ESCAPE?a._closeDropdown():b.which>=keys.A&&b.which<=keys.Z&&a._handleLetterKey(b.which)})},_handleUpDownKey:function(a){var b=this.countryList.children(".highlight").first(),c=a==keys.UP?b.prev():b.next();c.length&&(c.hasClass("divider")&&(c=a==keys.UP?c.prev():c.next()),this._highlightListItem(c),this._scrollTo(c))},_handleEnterKey:function(){var a=this.countryList.children(".highlight").first();a.length&&this._selectListItem(a)},_handleLetterKey:function(a){var b=String.fromCharCode(a),c=this.countryListItems.filter(function(){return $(this).text().charAt(0)==b&&!$(this).hasClass("preferred")});if(c.length){var d,e=c.filter(".highlight").first();d=e&&e.next()&&e.next().text().charAt(0)==b?e.next():c.first(),this._highlightListItem(d),this._scrollTo(d)}},_updateFlagFromInputVal:function(){var a,b=this,c=!1,d=this._getDialCode(this.telInput.val());if(d){var e=intlData.countryCodes[d.replace(/\D/g,"")];$.each(e,function(a,d){b.selectedFlagInner.hasClass(d)&&(c=!0)}),a=e[0]}else a=this.defaultCountry.iso2;c||this._selectFlag(a)},_resetToDialCode:function(a){var b="1"==a&&this.options.americaMode?"":"+"+a+this.options.dialCodeDelimiter;this.telInput.val(b)},_highlightListItem:function(a){this.countryListItems.removeClass("highlight"),a.addClass("highlight")},_getCountryData:function(a,b){for(var c=b?intlDataFull.countries:intlData.countries,d=0;dg)b.scrollTop(i);else if(h>e){var j=c-f;b.scrollTop(i-j)}},_updateNumber:function(a){var b,c=this.telInput.val(),d=this._getDialCode(c);return d.length>1?(b=c.replace(d,a),c==d&&(b+=this.options.dialCodeDelimiter)):b=c&&"+"!=c.substr(0,1)?a+this.options.dialCodeDelimiter+$.trim(c):a+this.options.dialCodeDelimiter,this.options.americaMode&&b.substring(0,3)=="+1"+this.options.dialCodeDelimiter&&(b=b.substring(3)),b},_getDialCode:function(a){var b="";if(a=$.trim(a),"+"==a.charAt(0))for(var c="",d=0;d",c+="
    ",c+=""+d.name+"",c+="+"+d.dialCode+"",c+="
  • "}),this.countryList.append(c)},setNumber:function(a){this.telInput.val(a),this._updateFlagFromInputVal()},selectCountry:function(a){if(!this.selectedFlagInner.hasClass(a)&&(this._selectFlag(a),!this.options.autoHideDialCode)){var b=this._getCountryData(a,!1);this._resetToDialCode(b.dialCode)}},getSelectedCountryData:function(){var a=this.selectedFlagInner.attr("class").split(" ")[1];return this._getCountryData(a)}},$.fn[pluginName]=function(a){var b=arguments;if(void 0===a||"object"==typeof a)return this.each(function(){$.data(this,"plugin_"+pluginName)||$.data(this,"plugin_"+pluginName,new Plugin(this,a))});if("string"==typeof a&&"_"!==a[0]&&"init"!==a){var c;return this.each(function(){var d=$.data(this,"plugin_"+pluginName);d instanceof Plugin&&"function"==typeof d[a]&&(c=d[a].apply(d,Array.prototype.slice.call(b,1)))}),void 0!==c?c:this}},$.fn[pluginName].getCountryData=function(){return intlDataFull},$.fn[pluginName].setCountryData=function(a){intlDataFull=a};var intlDataFull={countries:[{name:"Afghanistan (‫افغانستان‬‎)",iso2:"af",dialCode:"93"},{name:"Åland Islands (Åland)",iso2:"ax",dialCode:"358"},{name:"Albania (Shqipëri)",iso2:"al",dialCode:"355"},{name:"Algeria (‫الجزائر‬‎)",iso2:"dz",dialCode:"213"},{name:"American Samoa",iso2:"as",dialCode:"1684"},{name:"Andorra",iso2:"ad",dialCode:"376"},{name:"Angola",iso2:"ao",dialCode:"244"},{name:"Anguilla",iso2:"ai",dialCode:"1264"},{name:"Antigua and Barbuda",iso2:"ag",dialCode:"1268"},{name:"Argentina",iso2:"ar",dialCode:"54"},{name:"Armenia (Հայաստան)",iso2:"am",dialCode:"374"},{name:"Aruba",iso2:"aw",dialCode:"297"},{name:"Australia",iso2:"au",dialCode:"61"},{name:"Austria (Österreich)",iso2:"at",dialCode:"43"},{name:"Azerbaijan (Azərbaycan)",iso2:"az",dialCode:"994"},{name:"Bahamas",iso2:"bs",dialCode:"1242"},{name:"Bahrain (‫البحرين‬‎)",iso2:"bh",dialCode:"973"},{name:"Bangladesh (বাংলাদেশ)",iso2:"bd",dialCode:"880"},{name:"Barbados",iso2:"bb",dialCode:"1246"},{name:"Belarus (Беларусь)",iso2:"by",dialCode:"375"},{name:"Belgium (België)",iso2:"be",dialCode:"32"},{name:"Belize",iso2:"bz",dialCode:"501"},{name:"Benin (Bénin)",iso2:"bj",dialCode:"229"},{name:"Bermuda",iso2:"bm",dialCode:"1441"},{name:"Bhutan (འབྲུག)",iso2:"bt",dialCode:"975"},{name:"Bolivia",iso2:"bo",dialCode:"591"},{name:"Caribbean Netherlands",iso2:"bq",dialCode:"5997"},{name:"Bosnia and Herzegovina (Босна и Херцеговина)",iso2:"ba",dialCode:"387"},{name:"Botswana",iso2:"bw",dialCode:"267"},{name:"Brazil (Brasil)",iso2:"br",dialCode:"55"},{name:"British Indian Ocean Territory",iso2:"io",dialCode:"246"},{name:"British Virgin Islands",iso2:"vg",dialCode:"1284"},{name:"Brunei",iso2:"bn",dialCode:"673"},{name:"Bulgaria (България)",iso2:"bg",dialCode:"359"},{name:"Burkina Faso",iso2:"bf",dialCode:"226"},{name:"Burundi (Uburundi)",iso2:"bi",dialCode:"257"},{name:"Cambodia (កម្ពុជា)",iso2:"kh",dialCode:"855"},{name:"Cameroon (Cameroun)",iso2:"cm",dialCode:"237"},{name:"Canada",iso2:"ca",dialCode:"1"},{name:"Cape Verde (Kabu Verdi)",iso2:"cv",dialCode:"238"},{name:"Cayman Islands",iso2:"ky",dialCode:"1345"},{name:"Central African Republic (République centrafricaine)",iso2:"cf",dialCode:"236"},{name:"Chad (Tchad)",iso2:"td",dialCode:"235"},{name:"Chile",iso2:"cl",dialCode:"56"},{name:"China (中国)",iso2:"cn",dialCode:"86"},{name:"Christmas Island",iso2:"cx",dialCode:"61"},{name:"Cocos (Keeling) Islands (Kepulauan Cocos (Keeling))",iso2:"cc",dialCode:"61"},{name:"Colombia",iso2:"co",dialCode:"57"},{name:"Comoros (‫جزر القمر‬‎)",iso2:"km",dialCode:"269"},{name:"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",iso2:"cd",dialCode:"243"},{name:"Congo (Republic) (Congo-Brazzaville)",iso2:"cg",dialCode:"242"},{name:"Cook Islands",iso2:"ck",dialCode:"682"},{name:"Costa Rica",iso2:"cr",dialCode:"506"},{name:"Côte d’Ivoire",iso2:"ci",dialCode:"225"},{name:"Croatia (Hrvatska)",iso2:"hr",dialCode:"385"},{name:"Cuba",iso2:"cu",dialCode:"53"},{name:"Curaçao",iso2:"cw",dialCode:"5999"},{name:"Cyprus (Κύπρος)",iso2:"cy",dialCode:"357"},{name:"Czech Republic (Česká republika)",iso2:"cz",dialCode:"420"},{name:"Denmark (Danmark)",iso2:"dk",dialCode:"45"},{name:"Djibouti",iso2:"dj",dialCode:"253"},{name:"Dominica",iso2:"dm",dialCode:"1767"},{name:"Dominican Republic (República Dominicana)",iso2:"do",dialCode:"1809"},{name:"Ecuador",iso2:"ec",dialCode:"593"},{name:"Egypt (‫مصر‬‎)",iso2:"eg",dialCode:"20"},{name:"El Salvador",iso2:"sv",dialCode:"503"},{name:"Equatorial Guinea (Guinea Ecuatorial)",iso2:"gq",dialCode:"240"},{name:"Eritrea",iso2:"er",dialCode:"291"},{name:"Estonia (Eesti)",iso2:"ee",dialCode:"372"},{name:"Ethiopia",iso2:"et",dialCode:"251"},{name:"Falkland Islands (Islas Malvinas)",iso2:"fk",dialCode:"500"},{name:"Faroe Islands (Føroyar)",iso2:"fo",dialCode:"298"},{name:"Fiji",iso2:"fj",dialCode:"679"},{name:"Finland (Suomi)",iso2:"fi",dialCode:"358"},{name:"France",iso2:"fr",dialCode:"33"},{name:"French Guiana (Guyane française)",iso2:"gf",dialCode:"594"},{name:"French Polynesia (Polynésie française)",iso2:"pf",dialCode:"689"},{name:"Gabon",iso2:"ga",dialCode:"241"},{name:"Gambia",iso2:"gm",dialCode:"220"},{name:"Georgia (საქართველო)",iso2:"ge",dialCode:"995"},{name:"Germany (Deutschland)",iso2:"de",dialCode:"49"},{name:"Ghana (Gaana)",iso2:"gh",dialCode:"233"},{name:"Gibraltar",iso2:"gi",dialCode:"350"},{name:"Greece (Ελλάδα)",iso2:"gr",dialCode:"30"},{name:"Greenland (Kalaallit Nunaat)",iso2:"gl",dialCode:"299"},{name:"Grenada",iso2:"gd",dialCode:"1473"},{name:"Guadeloupe",iso2:"gp",dialCode:"590"},{name:"Guam",iso2:"gu",dialCode:"1671"},{name:"Guatemala",iso2:"gt",dialCode:"502"},{name:"Guernsey",iso2:"gg",dialCode:"44"},{name:"Guinea (Guinée)",iso2:"gn",dialCode:"224"},{name:"Guinea-Bissau (Guiné Bissau)",iso2:"gw",dialCode:"245"},{name:"Guyana",iso2:"gy",dialCode:"592"},{name:"Haiti",iso2:"ht",dialCode:"509"},{name:"Honduras",iso2:"hn",dialCode:"504"},{name:"Hong Kong (香港)",iso2:"hk",dialCode:"852"},{name:"Hungary (Magyarország)",iso2:"hu",dialCode:"36"},{name:"Iceland (Ísland)",iso2:"is",dialCode:"354"},{name:"India (भारत)",iso2:"in",dialCode:"91"},{name:"Indonesia",iso2:"id",dialCode:"62"},{name:"Iran (‫ایران‬‎)",iso2:"ir",dialCode:"98"},{name:"Iraq (‫العراق‬‎)",iso2:"iq",dialCode:"964"},{name:"Ireland",iso2:"ie",dialCode:"353"},{name:"Isle of Man",iso2:"im",dialCode:"44"},{name:"Israel (‫ישראל‬‎)",iso2:"il",dialCode:"972"},{name:"Italy (Italia)",iso2:"it",dialCode:"39"},{name:"Jamaica",iso2:"jm",dialCode:"1876"},{name:"Japan (日本)",iso2:"jp",dialCode:"81"},{name:"Jersey",iso2:"je",dialCode:"44"},{name:"Jordan (‫الأردن‬‎)",iso2:"jo",dialCode:"962"},{name:"Kazakhstan (Казахстан)",iso2:"kz",dialCode:"7"},{name:"Kenya",iso2:"ke",dialCode:"254"},{name:"Kiribati",iso2:"ki",dialCode:"686"},{name:"Kosovo (Kosovë)",iso2:"xk",dialCode:"377"},{name:"Kuwait (‫الكويت‬‎)",iso2:"kw",dialCode:"965"},{name:"Kyrgyzstan (Кыргызстан)",iso2:"kg",dialCode:"996"},{name:"Laos (ລາວ)",iso2:"la",dialCode:"856"},{name:"Latvia (Latvija)",iso2:"lv",dialCode:"371"},{name:"Lebanon (‫لبنان‬‎)",iso2:"lb",dialCode:"961"},{name:"Lesotho",iso2:"ls",dialCode:"266"},{name:"Liberia",iso2:"lr",dialCode:"231"},{name:"Libya (‫ليبيا‬‎)",iso2:"ly",dialCode:"218"},{name:"Liechtenstein",iso2:"li",dialCode:"423"},{name:"Lithuania (Lietuva)",iso2:"lt",dialCode:"370"},{name:"Luxembourg",iso2:"lu",dialCode:"352"},{name:"Macau (澳門)",iso2:"mo",dialCode:"853"},{name:"Macedonia (FYROM) (Македонија)",iso2:"mk",dialCode:"389"},{name:"Madagascar (Madagasikara)",iso2:"mg",dialCode:"261"},{name:"Malawi",iso2:"mw",dialCode:"265"},{name:"Malaysia",iso2:"my",dialCode:"60"},{name:"Maldives",iso2:"mv",dialCode:"960"},{name:"Mali",iso2:"ml",dialCode:"223"},{name:"Malta",iso2:"mt",dialCode:"356"},{name:"Marshall Islands",iso2:"mh",dialCode:"692"},{name:"Martinique",iso2:"mq",dialCode:"596"},{name:"Mauritania (‫موريتانيا‬‎)",iso2:"mr",dialCode:"222"},{name:"Mauritius (Moris)",iso2:"mu",dialCode:"230"},{name:"Mayotte",iso2:"yt",dialCode:"262"},{name:"Mexico (México)",iso2:"mx",dialCode:"52"},{name:"Micronesia",iso2:"fm",dialCode:"691"},{name:"Moldova (Republica Moldova)",iso2:"md",dialCode:"373"},{name:"Monaco",iso2:"mc",dialCode:"377"},{name:"Mongolia (Монгол)",iso2:"mn",dialCode:"976"},{name:"Montenegro (Crna Gora)",iso2:"me",dialCode:"382"},{name:"Montserrat",iso2:"ms",dialCode:"1664"},{name:"Morocco (‫المغرب‬‎)",iso2:"ma",dialCode:"212"},{name:"Mozambique (Moçambique)",iso2:"mz",dialCode:"258"},{name:"Myanmar (Burma) (မြန်မာ)",iso2:"mm",dialCode:"95"},{name:"Namibia (Namibië)",iso2:"na",dialCode:"264"},{name:"Nauru",iso2:"nr",dialCode:"674"},{name:"Nepal (नेपाल)",iso2:"np",dialCode:"977"},{name:"Netherlands (Nederland)",iso2:"nl",dialCode:"31"},{name:"New Caledonia (Nouvelle-Calédonie)",iso2:"nc",dialCode:"687"},{name:"New Zealand",iso2:"nz",dialCode:"64"},{name:"Nicaragua",iso2:"ni",dialCode:"505"},{name:"Niger (Nijar)",iso2:"ne",dialCode:"227"},{name:"Nigeria",iso2:"ng",dialCode:"234"},{name:"Niue",iso2:"nu",dialCode:"683"},{name:"Norfolk Island",iso2:"nf",dialCode:"672"},{name:"North Korea (조선 민주주의 인민 공화국)",iso2:"kp",dialCode:"850"},{name:"Northern Mariana Islands",iso2:"mp",dialCode:"1670"},{name:"Norway (Norge)",iso2:"no",dialCode:"47"},{name:"Oman (‫عُمان‬‎)",iso2:"om",dialCode:"968"},{name:"Pakistan (‫پاکستان‬‎)",iso2:"pk",dialCode:"92"},{name:"Palau",iso2:"pw",dialCode:"680"},{name:"Palestine (‫فلسطين‬‎)",iso2:"ps",dialCode:"970"},{name:"Panama (Panamá)",iso2:"pa",dialCode:"507"},{name:"Papua New Guinea",iso2:"pg",dialCode:"675"},{name:"Paraguay",iso2:"py",dialCode:"595"},{name:"Peru (Perú)",iso2:"pe",dialCode:"51"},{name:"Philippines",iso2:"ph",dialCode:"63"},{name:"Pitcairn Islands",iso2:"pn",dialCode:"64"},{name:"Poland (Polska)",iso2:"pl",dialCode:"48"},{name:"Portugal",iso2:"pt",dialCode:"351"},{name:"Puerto Rico",iso2:"pr",dialCode:"1787"},{name:"Qatar (‫قطر‬‎)",iso2:"qa",dialCode:"974"},{name:"Réunion (La Réunion)",iso2:"re",dialCode:"262"},{name:"Romania (România)",iso2:"ro",dialCode:"40"},{name:"Russia (Россия)",iso2:"ru",dialCode:"7"},{name:"Rwanda",iso2:"rw",dialCode:"250"},{name:"Saint Barthélemy (Saint-Barthélemy)",iso2:"bl",dialCode:"590"},{name:"Saint Helena",iso2:"sh",dialCode:"290"},{name:"Saint Kitts and Nevis",iso2:"kn",dialCode:"1869"},{name:"Saint Lucia",iso2:"lc",dialCode:"1758"},{name:"Saint Martin (Saint-Martin (partie française))",iso2:"mf",dialCode:"590"},{name:"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",iso2:"pm",dialCode:"508"},{name:"Saint Vincent and the Grenadines",iso2:"vc",dialCode:"1784"},{name:"Samoa",iso2:"ws",dialCode:"685"},{name:"San Marino",iso2:"sm",dialCode:"378"},{name:"São Tomé and Príncipe (São Tomé e Príncipe)",iso2:"st",dialCode:"239"},{name:"Saudi Arabia (‫المملكة العربية السعودية‬‎)",iso2:"sa",dialCode:"966"},{name:"Senegal (Sénégal)",iso2:"sn",dialCode:"221"},{name:"Serbia (Србија)",iso2:"rs",dialCode:"381"},{name:"Seychelles",iso2:"sc",dialCode:"248"},{name:"Sierra Leone",iso2:"sl",dialCode:"232"},{name:"Singapore",iso2:"sg",dialCode:"65"},{name:"Sint Maarten",iso2:"sx",dialCode:"1721"},{name:"Slovakia (Slovensko)",iso2:"sk",dialCode:"421"},{name:"Slovenia (Slovenija)",iso2:"si",dialCode:"386"},{name:"Solomon Islands",iso2:"sb",dialCode:"677"},{name:"Somalia (Soomaaliya)",iso2:"so",dialCode:"252"},{name:"South Africa",iso2:"za",dialCode:"27"},{name:"South Georgia & South Sandwich Islands",iso2:"gs",dialCode:"500"},{name:"South Korea (대한민국)",iso2:"kr",dialCode:"82"},{name:"South Sudan (‫جنوب السودان‬‎)",iso2:"ss",dialCode:"211"},{name:"Spain (España)",iso2:"es",dialCode:"34"},{name:"Sri Lanka (ශ්‍රී ලංකාව)",iso2:"lk",dialCode:"94"},{name:"Sudan (‫السودان‬‎)",iso2:"sd",dialCode:"249"},{name:"Suriname",iso2:"sr",dialCode:"597"},{name:"Svalbard and Jan Mayen (Svalbard og Jan Mayen)",iso2:"sj",dialCode:"4779"},{name:"Swaziland",iso2:"sz",dialCode:"268"},{name:"Sweden (Sverige)",iso2:"se",dialCode:"46"},{name:"Switzerland (Schweiz)",iso2:"ch",dialCode:"41"},{name:"Syria (‫سوريا‬‎)",iso2:"sy",dialCode:"963"},{name:"Taiwan (台灣)",iso2:"tw",dialCode:"886"},{name:"Tajikistan",iso2:"tj",dialCode:"992"},{name:"Tanzania",iso2:"tz",dialCode:"255"},{name:"Thailand (ไทย)",iso2:"th",dialCode:"66"},{name:"Timor-Leste",iso2:"tl",dialCode:"670"},{name:"Togo",iso2:"tg",dialCode:"228"},{name:"Tokelau",iso2:"tk",dialCode:"690"},{name:"Tonga",iso2:"to",dialCode:"676"},{name:"Trinidad and Tobago",iso2:"tt",dialCode:"1868"},{name:"Tunisia (‫تونس‬‎)",iso2:"tn",dialCode:"216"},{name:"Turkey (Türkiye)",iso2:"tr",dialCode:"90"},{name:"Turkmenistan",iso2:"tm",dialCode:"993"},{name:"Turks and Caicos Islands",iso2:"tc",dialCode:"1649"},{name:"Tuvalu",iso2:"tv",dialCode:"688"},{name:"Uganda",iso2:"ug",dialCode:"256"},{name:"Ukraine (Україна)",iso2:"ua",dialCode:"380"},{name:"United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",iso2:"ae",dialCode:"971"},{name:"United Kingdom",iso2:"gb",dialCode:"44"},{name:"United States",iso2:"us",dialCode:"1"},{name:"U.S. Virgin Islands",iso2:"vi",dialCode:"1340"},{name:"Uruguay",iso2:"uy",dialCode:"598"},{name:"Uzbekistan (Oʻzbekiston)",iso2:"uz",dialCode:"998"},{name:"Vanuatu",iso2:"vu",dialCode:"678"},{name:"Vatican City (Città del Vaticano)",iso2:"va",dialCode:"379"},{name:"Venezuela",iso2:"ve",dialCode:"58"},{name:"Vietnam (Việt Nam)",iso2:"vn",dialCode:"84"},{name:"Wallis and Futuna",iso2:"wf",dialCode:"681"},{name:"Western Sahara (‫الصحراء الغربية‬‎)",iso2:"eh",dialCode:"212"},{name:"Yemen (‫اليمن‬‎)",iso2:"ye",dialCode:"967"},{name:"Zambia",iso2:"zm",dialCode:"260"},{name:"Zimbabwe",iso2:"zw",dialCode:"263"}],countryCodes:{1:["us","ca"],7:["ru","kz"],20:["eg"],27:["za"],30:["gr"],31:["nl"],32:["be"],33:["fr"],34:["es"],36:["hu"],39:["it"],40:["ro"],41:["ch"],43:["at"],44:["gb","gg","im","je"],45:["dk"],46:["se"],47:["no"],48:["pl"],49:["de"],51:["pe"],52:["mx"],53:["cu"],54:["ar"],55:["br"],56:["cl"],57:["co"],58:["ve"],60:["my"],61:["au","cc","cx"],62:["id"],63:["ph"],64:["nz","pn"],65:["sg"],66:["th"],81:["jp"],82:["kr"],84:["vn"],86:["cn"],90:["tr"],91:["in"],92:["pk"],93:["af"],94:["lk"],95:["mm"],98:["ir"],211:["ss"],212:["ma","eh"],213:["dz"],216:["tn"],218:["ly"],220:["gm"],221:["sn"],222:["mr"],223:["ml"],224:["gn"],225:["ci"],226:["bf"],227:["ne"],228:["tg"],229:["bj"],230:["mu"],231:["lr"],232:["sl"],233:["gh"],234:["ng"],235:["td"],236:["cf"],237:["cm"],238:["cv"],239:["st"],240:["gq"],241:["ga"],242:["cg"],243:["cd"],244:["ao"],245:["gw"],246:["io"],248:["sc"],249:["sd"],250:["rw"],251:["et"],252:["so"],253:["dj"],254:["ke"],255:["tz"],256:["ug"],257:["bi"],258:["mz"],260:["zm"],261:["mg"],262:["re","yt"],263:["zw"],264:["na"],265:["mw"],266:["ls"],267:["bw"],268:["sz"],269:["km"],290:["sh"],291:["er"],297:["aw"],298:["fo"],299:["gl"],350:["gi"],351:["pt"],352:["lu"],353:["ie"],354:["is"],355:["al"],356:["mt"],357:["cy"],358:["fi","ax"],359:["bg"],370:["lt"],371:["lv"],372:["ee"],373:["md"],374:["am"],375:["by"],376:["ad"],377:["mc","xk"],378:["sm"],379:["va"],380:["ua"],381:["rs"],382:["me"],385:["hr"],386:["si"],387:["ba"],389:["mk"],420:["cz"],421:["sk"],423:["li"],500:["fk","gs"],501:["bz"],502:["gt"],503:["sv"],504:["hn"],505:["ni"],506:["cr"],507:["pa"],508:["pm"],509:["ht"],590:["gp","bl","mf"],591:["bo"],592:["gy"],593:["ec"],594:["gf"],595:["py"],596:["mq"],597:["sr"],598:["uy"],670:["tl"],672:["nf"],673:["bn"],674:["nr"],675:["pg"],676:["to"],677:["sb"],678:["vu"],679:["fj"],680:["pw"],681:["wf"],682:["ck"],683:["nu"],685:["ws"],686:["ki"],687:["nc"],688:["tv"],689:["pf"],690:["tk"],691:["fm"],692:["mh"],850:["kp"],852:["hk"],853:["mo"],855:["kh"],856:["la"],880:["bd"],886:["tw"],960:["mv"],961:["lb"],962:["jo"],963:["sy"],964:["iq"],965:["kw"],966:["sa"],967:["ye"],968:["om"],970:["ps"],971:["ae"],972:["il"],973:["bh"],974:["qa"],975:["bt"],976:["mn"],977:["np"],992:["tj"],993:["tm"],994:["az"],995:["ge"],996:["kg"],998:["uz"],1242:["bs"],1246:["bb"],1264:["ai"],1268:["ag"],1284:["vg"],1340:["vi"],1345:["ky"],1441:["bm"],1473:["gd"],1649:["tc"],1664:["ms"],1670:["mp"],1671:["gu"],1684:["as"],1721:["sx"],1758:["lc"],1767:["dm"],1784:["vc"],1787:["pr"],1809:["do"],1868:["tt"],1869:["kn"],1876:["jm"],4779:["sj"],5997:["bq"],5999:["cw"]}}; +function Plugin(a,b){this.element=a,this.options=$.extend({},defaults,b),this._defaults=defaults,this.id=id++,this._name=pluginName,this.init()}var pluginName="intlTelInput",id=1,defaults={americaMode:!1,autoHideDialCode:!0,defaultCountry:"",dialCodeDelimiter:" ",defaultStyling:"inside",onlyCountries:[],preferredCountries:["us","gb"],validationScript:""},keys={UP:38,DOWN:40,ENTER:13,ESCAPE:27,A:65,Z:90};Plugin.prototype={init:function(){this._processCountryData(),this._generateMarkup(),this._setInitialValue(),this._initListeners()},_processCountryData:function(){this._setGlobalIntlData(),this._setPreferredCountries(),this._setDefaultCountry()},_setGlobalIntlData:function(){var a=this;if(this.options.onlyCountries.length){var b=[],c={};$.each(this.options.onlyCountries,function(d,e){var f=a._getCountryData(e,!0);if(f){b.push(f);var g=f.dialCode;c[g]?c[g].push(e):c[g]=[e]}}),window.intlData={countries:b,countryCodes:c}}else window.intlData=intlDataFull},_setPreferredCountries:function(){var a=this;this.preferredCountries=[],$.each(this.options.preferredCountries,function(b,c){var d=a._getCountryData(c,!1);d&&a.preferredCountries.push(d)})},_setDefaultCountry:function(){this.defaultCountry=this.options.defaultCountry?this._getCountryData(this.options.defaultCountry,!1):this.preferredCountries.length?this.preferredCountries[0]:intlData.countries[0]},_generateMarkup:function(){this.telInput=$(this.element);var a="intl-tel-input";"none"!=this.options.defaultStyling&&(a+=" pretty "+this.options.defaultStyling),this.telInput.wrap($("
    ",{"class":a}));var b=$("
    ",{"class":"flag-dropdown"}).insertAfter(this.telInput),c=$("
    ",{"class":"selected-flag"}).appendTo(b);this.selectedFlagInner=$("
    ",{"class":"flag "+this.defaultCountry.iso2}).appendTo(c),$("
    ",{"class":"arrow"}).appendTo(this.selectedFlagInner),this.countryList=$("
      ",{"class":"country-list hide"}).appendTo(b),this.preferredCountries.length&&(this._appendListItems(this.preferredCountries,"preferred"),$("
    • ",{"class":"divider"}).appendTo(this.countryList)),this._appendListItems(intlData.countries,""),this.countryListItems=this.countryList.children(".country"),this.countryListItems.first().addClass("active"),this._updateFlagFromInputVal()},_setInitialValue:function(){this.options.autoHideDialCode||""!==this.telInput.val()||this._resetToDialCode(this.defaultCountry.dialCode)},_initListeners:function(){var a=this;this.options.autoHideDialCode&&this._initAutoHideDialCode(),this.telInput.keyup(function(){a._updateFlagFromInputVal()});var b=this.selectedFlagInner.parent();if(b.click(function(){a.countryList.hasClass("hide")&&!a.telInput.prop("disabled")&&a._showDropdown()}),this.options.validationScript){var c=document.createElement("script");c.type="text/javascript",c.src=this.options.validationScript,document.body.appendChild(c)}},_initAutoHideDialCode:function(){var a=this;this.telInput.mousedown(function(b){a.telInput.is(":focus")||a.telInput.val()||(b.preventDefault(),a._focus())}),this.telInput.focus(function(){if(!$.trim(a.telInput.val())){var b=a.getSelectedCountryData();a._resetToDialCode(b.dialCode)}}),this.telInput.blur(function(){var b=$.trim(a.telInput.val());b&&$.trim(a._getDialCode(b)+a.options.dialCodeDelimiter)==b&&a.telInput.val("")})},_focus:function(){this.telInput.focus();var a=this.telInput[0];if(a.setSelectionRange){var b=this.telInput.val().length;a.setSelectionRange(b,b)}},_showDropdown:function(){var a=this.telInput.offset().top,b=$(window).scrollTop(),c=this.countryList.outerHeight(),d=a+this.telInput.outerHeight()+cb;!d&&e?this.countryList.css("top","-"+(c-1)+"px"):this.countryList.css("top","");var f=this.countryList.children(".active");this._highlightListItem(f),this.countryList.removeClass("hide"),this._scrollTo(f),this._bindDropdownListeners(),this.selectedFlagInner.children(".arrow").addClass("up")},_bindDropdownListeners:function(){var a=this;this.countryList.on("mouseover.intlTelInput",".country",function(){a._highlightListItem($(this))}),this.countryList.on("click.intlTelInput",".country",function(){a._selectListItem($(this))});var b=!0;$("html").on("click.intlTelInput"+this.id,function(){b||a._closeDropdown(),b=!1}),$(document).on("keydown.intlTelInput"+this.id,function(b){b.preventDefault(),b.which==keys.UP||b.which==keys.DOWN?a._handleUpDownKey(b.which):b.which==keys.ENTER?a._handleEnterKey():b.which==keys.ESCAPE?a._closeDropdown():b.which>=keys.A&&b.which<=keys.Z&&a._handleLetterKey(b.which)})},_handleUpDownKey:function(a){var b=this.countryList.children(".highlight").first(),c=a==keys.UP?b.prev():b.next();c.length&&(c.hasClass("divider")&&(c=a==keys.UP?c.prev():c.next()),this._highlightListItem(c),this._scrollTo(c))},_handleEnterKey:function(){var a=this.countryList.children(".highlight").first();a.length&&this._selectListItem(a)},_handleLetterKey:function(a){var b=String.fromCharCode(a),c=this.countryListItems.filter(function(){return $(this).text().charAt(0)==b&&!$(this).hasClass("preferred")});if(c.length){var d,e=c.filter(".highlight").first();d=e&&e.next()&&e.next().text().charAt(0)==b?e.next():c.first(),this._highlightListItem(d),this._scrollTo(d)}},_updateFlagFromInputVal:function(){var a,b=this,c=!1,d=this._getDialCode(this.telInput.val());if(d){var e=intlData.countryCodes[d.replace(/\D/g,"")];$.each(e,function(a,d){b.selectedFlagInner.hasClass(d)&&(c=!0)}),a=e[0]}else a=this.defaultCountry.iso2;c||this._selectFlag(a)},_resetToDialCode:function(a){var b="1"==a&&this.options.americaMode?"":"+"+a+this.options.dialCodeDelimiter;this.telInput.val(b)},_highlightListItem:function(a){this.countryListItems.removeClass("highlight"),a.addClass("highlight")},_getCountryData:function(a,b){for(var c=b?intlDataFull.countries:intlData.countries,d=0;dg)b.scrollTop(i);else if(h>e){var j=c-f;b.scrollTop(i-j)}},_updateNumber:function(a){var b,c=this.telInput.val(),d=this._getDialCode(c);return d.length>1?(b=c.replace(d,a),c==d&&(b+=this.options.dialCodeDelimiter)):b=c&&"+"!=c.substr(0,1)?a+this.options.dialCodeDelimiter+$.trim(c):a+this.options.dialCodeDelimiter,this.options.americaMode&&b.substring(0,3)=="+1"+this.options.dialCodeDelimiter&&(b=b.substring(3)),b},_getDialCode:function(a){var b="";if(a=$.trim(a),"+"==a.charAt(0))for(var c="",d=0;d",c+="
      ",c+=""+d.name+"",c+="+"+d.dialCode+"",c+="
    • "}),this.countryList.append(c)},setNumber:function(a){this.telInput.val(a),this._updateFlagFromInputVal()},selectCountry:function(a){if(!this.selectedFlagInner.hasClass(a)&&(this._selectFlag(a),!this.options.autoHideDialCode)){var b=this._getCountryData(a,!1);this._resetToDialCode(b.dialCode)}},getSelectedCountryData:function(){var a=this.selectedFlagInner.attr("class").split(" ")[1];return this._getCountryData(a)},isValidNumber:function(){var a=$.trim(this.telInput.val()),b=this.getSelectedCountryData();return window.isValidNumber(a,b.iso2)}},$.fn[pluginName]=function(a){var b=arguments;if(void 0===a||"object"==typeof a)return this.each(function(){$.data(this,"plugin_"+pluginName)||$.data(this,"plugin_"+pluginName,new Plugin(this,a))});if("string"==typeof a&&"_"!==a[0]&&"init"!==a){var c;return this.each(function(){var d=$.data(this,"plugin_"+pluginName);d instanceof Plugin&&"function"==typeof d[a]&&(c=d[a].apply(d,Array.prototype.slice.call(b,1)))}),void 0!==c?c:this}},$.fn[pluginName].getCountryData=function(){return intlDataFull},$.fn[pluginName].setCountryData=function(a){intlDataFull=a};var intlDataFull={countries:[{name:"Afghanistan (‫افغانستان‬‎)",iso2:"af",dialCode:"93"},{name:"Åland Islands (Åland)",iso2:"ax",dialCode:"358"},{name:"Albania (Shqipëri)",iso2:"al",dialCode:"355"},{name:"Algeria (‫الجزائر‬‎)",iso2:"dz",dialCode:"213"},{name:"American Samoa",iso2:"as",dialCode:"1684"},{name:"Andorra",iso2:"ad",dialCode:"376"},{name:"Angola",iso2:"ao",dialCode:"244"},{name:"Anguilla",iso2:"ai",dialCode:"1264"},{name:"Antigua and Barbuda",iso2:"ag",dialCode:"1268"},{name:"Argentina",iso2:"ar",dialCode:"54"},{name:"Armenia (Հայաստան)",iso2:"am",dialCode:"374"},{name:"Aruba",iso2:"aw",dialCode:"297"},{name:"Australia",iso2:"au",dialCode:"61"},{name:"Austria (Österreich)",iso2:"at",dialCode:"43"},{name:"Azerbaijan (Azərbaycan)",iso2:"az",dialCode:"994"},{name:"Bahamas",iso2:"bs",dialCode:"1242"},{name:"Bahrain (‫البحرين‬‎)",iso2:"bh",dialCode:"973"},{name:"Bangladesh (বাংলাদেশ)",iso2:"bd",dialCode:"880"},{name:"Barbados",iso2:"bb",dialCode:"1246"},{name:"Belarus (Беларусь)",iso2:"by",dialCode:"375"},{name:"Belgium (België)",iso2:"be",dialCode:"32"},{name:"Belize",iso2:"bz",dialCode:"501"},{name:"Benin (Bénin)",iso2:"bj",dialCode:"229"},{name:"Bermuda",iso2:"bm",dialCode:"1441"},{name:"Bhutan (འབྲུག)",iso2:"bt",dialCode:"975"},{name:"Bolivia",iso2:"bo",dialCode:"591"},{name:"Caribbean Netherlands",iso2:"bq",dialCode:"5997"},{name:"Bosnia and Herzegovina (Босна и Херцеговина)",iso2:"ba",dialCode:"387"},{name:"Botswana",iso2:"bw",dialCode:"267"},{name:"Brazil (Brasil)",iso2:"br",dialCode:"55"},{name:"British Indian Ocean Territory",iso2:"io",dialCode:"246"},{name:"British Virgin Islands",iso2:"vg",dialCode:"1284"},{name:"Brunei",iso2:"bn",dialCode:"673"},{name:"Bulgaria (България)",iso2:"bg",dialCode:"359"},{name:"Burkina Faso",iso2:"bf",dialCode:"226"},{name:"Burundi (Uburundi)",iso2:"bi",dialCode:"257"},{name:"Cambodia (កម្ពុជា)",iso2:"kh",dialCode:"855"},{name:"Cameroon (Cameroun)",iso2:"cm",dialCode:"237"},{name:"Canada",iso2:"ca",dialCode:"1"},{name:"Cape Verde (Kabu Verdi)",iso2:"cv",dialCode:"238"},{name:"Cayman Islands",iso2:"ky",dialCode:"1345"},{name:"Central African Republic (République centrafricaine)",iso2:"cf",dialCode:"236"},{name:"Chad (Tchad)",iso2:"td",dialCode:"235"},{name:"Chile",iso2:"cl",dialCode:"56"},{name:"China (中国)",iso2:"cn",dialCode:"86"},{name:"Christmas Island",iso2:"cx",dialCode:"61"},{name:"Cocos (Keeling) Islands (Kepulauan Cocos (Keeling))",iso2:"cc",dialCode:"61"},{name:"Colombia",iso2:"co",dialCode:"57"},{name:"Comoros (‫جزر القمر‬‎)",iso2:"km",dialCode:"269"},{name:"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)",iso2:"cd",dialCode:"243"},{name:"Congo (Republic) (Congo-Brazzaville)",iso2:"cg",dialCode:"242"},{name:"Cook Islands",iso2:"ck",dialCode:"682"},{name:"Costa Rica",iso2:"cr",dialCode:"506"},{name:"Côte d’Ivoire",iso2:"ci",dialCode:"225"},{name:"Croatia (Hrvatska)",iso2:"hr",dialCode:"385"},{name:"Cuba",iso2:"cu",dialCode:"53"},{name:"Curaçao",iso2:"cw",dialCode:"5999"},{name:"Cyprus (Κύπρος)",iso2:"cy",dialCode:"357"},{name:"Czech Republic (Česká republika)",iso2:"cz",dialCode:"420"},{name:"Denmark (Danmark)",iso2:"dk",dialCode:"45"},{name:"Djibouti",iso2:"dj",dialCode:"253"},{name:"Dominica",iso2:"dm",dialCode:"1767"},{name:"Dominican Republic (República Dominicana)",iso2:"do",dialCode:"1809"},{name:"Ecuador",iso2:"ec",dialCode:"593"},{name:"Egypt (‫مصر‬‎)",iso2:"eg",dialCode:"20"},{name:"El Salvador",iso2:"sv",dialCode:"503"},{name:"Equatorial Guinea (Guinea Ecuatorial)",iso2:"gq",dialCode:"240"},{name:"Eritrea",iso2:"er",dialCode:"291"},{name:"Estonia (Eesti)",iso2:"ee",dialCode:"372"},{name:"Ethiopia",iso2:"et",dialCode:"251"},{name:"Falkland Islands (Islas Malvinas)",iso2:"fk",dialCode:"500"},{name:"Faroe Islands (Føroyar)",iso2:"fo",dialCode:"298"},{name:"Fiji",iso2:"fj",dialCode:"679"},{name:"Finland (Suomi)",iso2:"fi",dialCode:"358"},{name:"France",iso2:"fr",dialCode:"33"},{name:"French Guiana (Guyane française)",iso2:"gf",dialCode:"594"},{name:"French Polynesia (Polynésie française)",iso2:"pf",dialCode:"689"},{name:"Gabon",iso2:"ga",dialCode:"241"},{name:"Gambia",iso2:"gm",dialCode:"220"},{name:"Georgia (საქართველო)",iso2:"ge",dialCode:"995"},{name:"Germany (Deutschland)",iso2:"de",dialCode:"49"},{name:"Ghana (Gaana)",iso2:"gh",dialCode:"233"},{name:"Gibraltar",iso2:"gi",dialCode:"350"},{name:"Greece (Ελλάδα)",iso2:"gr",dialCode:"30"},{name:"Greenland (Kalaallit Nunaat)",iso2:"gl",dialCode:"299"},{name:"Grenada",iso2:"gd",dialCode:"1473"},{name:"Guadeloupe",iso2:"gp",dialCode:"590"},{name:"Guam",iso2:"gu",dialCode:"1671"},{name:"Guatemala",iso2:"gt",dialCode:"502"},{name:"Guernsey",iso2:"gg",dialCode:"44"},{name:"Guinea (Guinée)",iso2:"gn",dialCode:"224"},{name:"Guinea-Bissau (Guiné Bissau)",iso2:"gw",dialCode:"245"},{name:"Guyana",iso2:"gy",dialCode:"592"},{name:"Haiti",iso2:"ht",dialCode:"509"},{name:"Honduras",iso2:"hn",dialCode:"504"},{name:"Hong Kong (香港)",iso2:"hk",dialCode:"852"},{name:"Hungary (Magyarország)",iso2:"hu",dialCode:"36"},{name:"Iceland (Ísland)",iso2:"is",dialCode:"354"},{name:"India (भारत)",iso2:"in",dialCode:"91"},{name:"Indonesia",iso2:"id",dialCode:"62"},{name:"Iran (‫ایران‬‎)",iso2:"ir",dialCode:"98"},{name:"Iraq (‫العراق‬‎)",iso2:"iq",dialCode:"964"},{name:"Ireland",iso2:"ie",dialCode:"353"},{name:"Isle of Man",iso2:"im",dialCode:"44"},{name:"Israel (‫ישראל‬‎)",iso2:"il",dialCode:"972"},{name:"Italy (Italia)",iso2:"it",dialCode:"39"},{name:"Jamaica",iso2:"jm",dialCode:"1876"},{name:"Japan (日本)",iso2:"jp",dialCode:"81"},{name:"Jersey",iso2:"je",dialCode:"44"},{name:"Jordan (‫الأردن‬‎)",iso2:"jo",dialCode:"962"},{name:"Kazakhstan (Казахстан)",iso2:"kz",dialCode:"7"},{name:"Kenya",iso2:"ke",dialCode:"254"},{name:"Kiribati",iso2:"ki",dialCode:"686"},{name:"Kosovo (Kosovë)",iso2:"xk",dialCode:"377"},{name:"Kuwait (‫الكويت‬‎)",iso2:"kw",dialCode:"965"},{name:"Kyrgyzstan (Кыргызстан)",iso2:"kg",dialCode:"996"},{name:"Laos (ລາວ)",iso2:"la",dialCode:"856"},{name:"Latvia (Latvija)",iso2:"lv",dialCode:"371"},{name:"Lebanon (‫لبنان‬‎)",iso2:"lb",dialCode:"961"},{name:"Lesotho",iso2:"ls",dialCode:"266"},{name:"Liberia",iso2:"lr",dialCode:"231"},{name:"Libya (‫ليبيا‬‎)",iso2:"ly",dialCode:"218"},{name:"Liechtenstein",iso2:"li",dialCode:"423"},{name:"Lithuania (Lietuva)",iso2:"lt",dialCode:"370"},{name:"Luxembourg",iso2:"lu",dialCode:"352"},{name:"Macau (澳門)",iso2:"mo",dialCode:"853"},{name:"Macedonia (FYROM) (Македонија)",iso2:"mk",dialCode:"389"},{name:"Madagascar (Madagasikara)",iso2:"mg",dialCode:"261"},{name:"Malawi",iso2:"mw",dialCode:"265"},{name:"Malaysia",iso2:"my",dialCode:"60"},{name:"Maldives",iso2:"mv",dialCode:"960"},{name:"Mali",iso2:"ml",dialCode:"223"},{name:"Malta",iso2:"mt",dialCode:"356"},{name:"Marshall Islands",iso2:"mh",dialCode:"692"},{name:"Martinique",iso2:"mq",dialCode:"596"},{name:"Mauritania (‫موريتانيا‬‎)",iso2:"mr",dialCode:"222"},{name:"Mauritius (Moris)",iso2:"mu",dialCode:"230"},{name:"Mayotte",iso2:"yt",dialCode:"262"},{name:"Mexico (México)",iso2:"mx",dialCode:"52"},{name:"Micronesia",iso2:"fm",dialCode:"691"},{name:"Moldova (Republica Moldova)",iso2:"md",dialCode:"373"},{name:"Monaco",iso2:"mc",dialCode:"377"},{name:"Mongolia (Монгол)",iso2:"mn",dialCode:"976"},{name:"Montenegro (Crna Gora)",iso2:"me",dialCode:"382"},{name:"Montserrat",iso2:"ms",dialCode:"1664"},{name:"Morocco (‫المغرب‬‎)",iso2:"ma",dialCode:"212"},{name:"Mozambique (Moçambique)",iso2:"mz",dialCode:"258"},{name:"Myanmar (Burma) (မြန်မာ)",iso2:"mm",dialCode:"95"},{name:"Namibia (Namibië)",iso2:"na",dialCode:"264"},{name:"Nauru",iso2:"nr",dialCode:"674"},{name:"Nepal (नेपाल)",iso2:"np",dialCode:"977"},{name:"Netherlands (Nederland)",iso2:"nl",dialCode:"31"},{name:"New Caledonia (Nouvelle-Calédonie)",iso2:"nc",dialCode:"687"},{name:"New Zealand",iso2:"nz",dialCode:"64"},{name:"Nicaragua",iso2:"ni",dialCode:"505"},{name:"Niger (Nijar)",iso2:"ne",dialCode:"227"},{name:"Nigeria",iso2:"ng",dialCode:"234"},{name:"Niue",iso2:"nu",dialCode:"683"},{name:"Norfolk Island",iso2:"nf",dialCode:"672"},{name:"North Korea (조선 민주주의 인민 공화국)",iso2:"kp",dialCode:"850"},{name:"Northern Mariana Islands",iso2:"mp",dialCode:"1670"},{name:"Norway (Norge)",iso2:"no",dialCode:"47"},{name:"Oman (‫عُمان‬‎)",iso2:"om",dialCode:"968"},{name:"Pakistan (‫پاکستان‬‎)",iso2:"pk",dialCode:"92"},{name:"Palau",iso2:"pw",dialCode:"680"},{name:"Palestine (‫فلسطين‬‎)",iso2:"ps",dialCode:"970"},{name:"Panama (Panamá)",iso2:"pa",dialCode:"507"},{name:"Papua New Guinea",iso2:"pg",dialCode:"675"},{name:"Paraguay",iso2:"py",dialCode:"595"},{name:"Peru (Perú)",iso2:"pe",dialCode:"51"},{name:"Philippines",iso2:"ph",dialCode:"63"},{name:"Pitcairn Islands",iso2:"pn",dialCode:"64"},{name:"Poland (Polska)",iso2:"pl",dialCode:"48"},{name:"Portugal",iso2:"pt",dialCode:"351"},{name:"Puerto Rico",iso2:"pr",dialCode:"1787"},{name:"Qatar (‫قطر‬‎)",iso2:"qa",dialCode:"974"},{name:"Réunion (La Réunion)",iso2:"re",dialCode:"262"},{name:"Romania (România)",iso2:"ro",dialCode:"40"},{name:"Russia (Россия)",iso2:"ru",dialCode:"7"},{name:"Rwanda",iso2:"rw",dialCode:"250"},{name:"Saint Barthélemy (Saint-Barthélemy)",iso2:"bl",dialCode:"590"},{name:"Saint Helena",iso2:"sh",dialCode:"290"},{name:"Saint Kitts and Nevis",iso2:"kn",dialCode:"1869"},{name:"Saint Lucia",iso2:"lc",dialCode:"1758"},{name:"Saint Martin (Saint-Martin (partie française))",iso2:"mf",dialCode:"590"},{name:"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)",iso2:"pm",dialCode:"508"},{name:"Saint Vincent and the Grenadines",iso2:"vc",dialCode:"1784"},{name:"Samoa",iso2:"ws",dialCode:"685"},{name:"San Marino",iso2:"sm",dialCode:"378"},{name:"São Tomé and Príncipe (São Tomé e Príncipe)",iso2:"st",dialCode:"239"},{name:"Saudi Arabia (‫المملكة العربية السعودية‬‎)",iso2:"sa",dialCode:"966"},{name:"Senegal (Sénégal)",iso2:"sn",dialCode:"221"},{name:"Serbia (Србија)",iso2:"rs",dialCode:"381"},{name:"Seychelles",iso2:"sc",dialCode:"248"},{name:"Sierra Leone",iso2:"sl",dialCode:"232"},{name:"Singapore",iso2:"sg",dialCode:"65"},{name:"Sint Maarten",iso2:"sx",dialCode:"1721"},{name:"Slovakia (Slovensko)",iso2:"sk",dialCode:"421"},{name:"Slovenia (Slovenija)",iso2:"si",dialCode:"386"},{name:"Solomon Islands",iso2:"sb",dialCode:"677"},{name:"Somalia (Soomaaliya)",iso2:"so",dialCode:"252"},{name:"South Africa",iso2:"za",dialCode:"27"},{name:"South Georgia & South Sandwich Islands",iso2:"gs",dialCode:"500"},{name:"South Korea (대한민국)",iso2:"kr",dialCode:"82"},{name:"South Sudan (‫جنوب السودان‬‎)",iso2:"ss",dialCode:"211"},{name:"Spain (España)",iso2:"es",dialCode:"34"},{name:"Sri Lanka (ශ්‍රී ලංකාව)",iso2:"lk",dialCode:"94"},{name:"Sudan (‫السودان‬‎)",iso2:"sd",dialCode:"249"},{name:"Suriname",iso2:"sr",dialCode:"597"},{name:"Svalbard and Jan Mayen (Svalbard og Jan Mayen)",iso2:"sj",dialCode:"4779"},{name:"Swaziland",iso2:"sz",dialCode:"268"},{name:"Sweden (Sverige)",iso2:"se",dialCode:"46"},{name:"Switzerland (Schweiz)",iso2:"ch",dialCode:"41"},{name:"Syria (‫سوريا‬‎)",iso2:"sy",dialCode:"963"},{name:"Taiwan (台灣)",iso2:"tw",dialCode:"886"},{name:"Tajikistan",iso2:"tj",dialCode:"992"},{name:"Tanzania",iso2:"tz",dialCode:"255"},{name:"Thailand (ไทย)",iso2:"th",dialCode:"66"},{name:"Timor-Leste",iso2:"tl",dialCode:"670"},{name:"Togo",iso2:"tg",dialCode:"228"},{name:"Tokelau",iso2:"tk",dialCode:"690"},{name:"Tonga",iso2:"to",dialCode:"676"},{name:"Trinidad and Tobago",iso2:"tt",dialCode:"1868"},{name:"Tunisia (‫تونس‬‎)",iso2:"tn",dialCode:"216"},{name:"Turkey (Türkiye)",iso2:"tr",dialCode:"90"},{name:"Turkmenistan",iso2:"tm",dialCode:"993"},{name:"Turks and Caicos Islands",iso2:"tc",dialCode:"1649"},{name:"Tuvalu",iso2:"tv",dialCode:"688"},{name:"Uganda",iso2:"ug",dialCode:"256"},{name:"Ukraine (Україна)",iso2:"ua",dialCode:"380"},{name:"United Arab Emirates (‫الإمارات العربية المتحدة‬‎)",iso2:"ae",dialCode:"971"},{name:"United Kingdom",iso2:"gb",dialCode:"44"},{name:"United States",iso2:"us",dialCode:"1"},{name:"U.S. Virgin Islands",iso2:"vi",dialCode:"1340"},{name:"Uruguay",iso2:"uy",dialCode:"598"},{name:"Uzbekistan (Oʻzbekiston)",iso2:"uz",dialCode:"998"},{name:"Vanuatu",iso2:"vu",dialCode:"678"},{name:"Vatican City (Città del Vaticano)",iso2:"va",dialCode:"379"},{name:"Venezuela",iso2:"ve",dialCode:"58"},{name:"Vietnam (Việt Nam)",iso2:"vn",dialCode:"84"},{name:"Wallis and Futuna",iso2:"wf",dialCode:"681"},{name:"Western Sahara (‫الصحراء الغربية‬‎)",iso2:"eh",dialCode:"212"},{name:"Yemen (‫اليمن‬‎)",iso2:"ye",dialCode:"967"},{name:"Zambia",iso2:"zm",dialCode:"260"},{name:"Zimbabwe",iso2:"zw",dialCode:"263"}],countryCodes:{1:["us","ca"],7:["ru","kz"],20:["eg"],27:["za"],30:["gr"],31:["nl"],32:["be"],33:["fr"],34:["es"],36:["hu"],39:["it"],40:["ro"],41:["ch"],43:["at"],44:["gb","gg","im","je"],45:["dk"],46:["se"],47:["no"],48:["pl"],49:["de"],51:["pe"],52:["mx"],53:["cu"],54:["ar"],55:["br"],56:["cl"],57:["co"],58:["ve"],60:["my"],61:["au","cc","cx"],62:["id"],63:["ph"],64:["nz","pn"],65:["sg"],66:["th"],81:["jp"],82:["kr"],84:["vn"],86:["cn"],90:["tr"],91:["in"],92:["pk"],93:["af"],94:["lk"],95:["mm"],98:["ir"],211:["ss"],212:["ma","eh"],213:["dz"],216:["tn"],218:["ly"],220:["gm"],221:["sn"],222:["mr"],223:["ml"],224:["gn"],225:["ci"],226:["bf"],227:["ne"],228:["tg"],229:["bj"],230:["mu"],231:["lr"],232:["sl"],233:["gh"],234:["ng"],235:["td"],236:["cf"],237:["cm"],238:["cv"],239:["st"],240:["gq"],241:["ga"],242:["cg"],243:["cd"],244:["ao"],245:["gw"],246:["io"],248:["sc"],249:["sd"],250:["rw"],251:["et"],252:["so"],253:["dj"],254:["ke"],255:["tz"],256:["ug"],257:["bi"],258:["mz"],260:["zm"],261:["mg"],262:["re","yt"],263:["zw"],264:["na"],265:["mw"],266:["ls"],267:["bw"],268:["sz"],269:["km"],290:["sh"],291:["er"],297:["aw"],298:["fo"],299:["gl"],350:["gi"],351:["pt"],352:["lu"],353:["ie"],354:["is"],355:["al"],356:["mt"],357:["cy"],358:["fi","ax"],359:["bg"],370:["lt"],371:["lv"],372:["ee"],373:["md"],374:["am"],375:["by"],376:["ad"],377:["mc","xk"],378:["sm"],379:["va"],380:["ua"],381:["rs"],382:["me"],385:["hr"],386:["si"],387:["ba"],389:["mk"],420:["cz"],421:["sk"],423:["li"],500:["fk","gs"],501:["bz"],502:["gt"],503:["sv"],504:["hn"],505:["ni"],506:["cr"],507:["pa"],508:["pm"],509:["ht"],590:["gp","bl","mf"],591:["bo"],592:["gy"],593:["ec"],594:["gf"],595:["py"],596:["mq"],597:["sr"],598:["uy"],670:["tl"],672:["nf"],673:["bn"],674:["nr"],675:["pg"],676:["to"],677:["sb"],678:["vu"],679:["fj"],680:["pw"],681:["wf"],682:["ck"],683:["nu"],685:["ws"],686:["ki"],687:["nc"],688:["tv"],689:["pf"],690:["tk"],691:["fm"],692:["mh"],850:["kp"],852:["hk"],853:["mo"],855:["kh"],856:["la"],880:["bd"],886:["tw"],960:["mv"],961:["lb"],962:["jo"],963:["sy"],964:["iq"],965:["kw"],966:["sa"],967:["ye"],968:["om"],970:["ps"],971:["ae"],972:["il"],973:["bh"],974:["qa"],975:["bt"],976:["mn"],977:["np"],992:["tj"],993:["tm"],994:["az"],995:["ge"],996:["kg"],998:["uz"],1242:["bs"],1246:["bb"],1264:["ai"],1268:["ag"],1284:["vg"],1340:["vi"],1345:["ky"],1441:["bm"],1473:["gd"],1649:["tc"],1664:["ms"],1670:["mp"],1671:["gu"],1684:["as"],1721:["sx"],1758:["lc"],1767:["dm"],1784:["vc"],1787:["pr"],1809:["do"],1868:["tt"],1869:["kn"],1876:["jm"],4779:["sj"],5997:["bq"],5999:["cw"]}}; })); diff --git a/lib/libphonenumber/build/isValidIntlNumber.js b/lib/libphonenumber/build/isValidNumber.js similarity index 95% rename from lib/libphonenumber/build/isValidIntlNumber.js rename to lib/libphonenumber/build/isValidNumber.js index e491ce088..f7f0c53ae 100644 --- a/lib/libphonenumber/build/isValidIntlNumber.js +++ b/lib/libphonenumber/build/isValidNumber.js @@ -1,6 +1,6 @@ -(function(){function f(a){throw a;}var i=!0,j=null,m=!1;function n(a,b){function c(){}c.prototype=b.prototype;a.ea=b.prototype;a.prototype=new c;a.prototype.constructor=a};function aa(a,b,c){this.z=a;this.ca=b.name||j;this.la=b.i||j;this.s=b.ka;this.h={};for(a=0;a=a.b.length&&f("Phone number too short after IDD"); -a:{d=a.toString();if(!(0==d.length||"0"==d.charAt(0)))for(var h=d.length,l=1;3>=l&&l<=h;++l)if(g=parseInt(d.substring(0,l),10),g in I){c.append(d.substring(l));d=g;break a}d=0}if(0!=d)return e.j(d),d;f("Invalid country calling code")}if(b!=j&&(d=b.f(),g=""+d,h=a.toString(),0==h.lastIndexOf(g,0)&&(l=new A(h.substring(g.length)),h=t(b,1),g=RegExp(u(h,2)),Qa(l,b,j),b=l.toString(),h=u(h,3),!L(g,a.toString())&&L(g,b)||3==(L(h,a.toString())?0:0==a.toString().search(h)?3:2))))return c.append(b),q(e,6,10), -e.j(d),d;e.j(0);return 0}function Qa(a,b,c){var e=a.toString(),d=e.length,g=t(b,15);if(!(0==d||g==j||0==g.length))if(g=RegExp("^(?:"+g+")"),d=g.exec(e)){var h=RegExp,l;l=t(b,1);l=u(l,2);h=h(l);l=L(h,e);var k=d.length-1;b=t(b,16);if(b==j||0==b.length||d[k]==j||0==d[k].length){if(!l||L(h,e.substring(d[0].length)))c!=j&&(0c.toString().length?0:L(Ka,c.toString()))||f("The string supplied did not seem to be a phone number");isNaN("")&&""in ra||c.toString()!=j&&0M.substring(0,U).length?0:L(Ka,M.substring(0,U)))){var V=M.match(Ja),Sa=V.length;for(a=1;aC.b.length&&f("The string supplied is too short to be a phone number");if(B!=j){var ya=new A,da=new A(C.toString());Qa(da,B,ya);var za=da.toString(),ea,Ta= -t(B,1);ea=u(Ta,3);if(2!=(L(ea,za)?0:0==za.search(ea)?3:2))C=da,q(k,7,ya.toString())}var w=C.toString(),Aa=w.length;2>Aa&&f("The string supplied is too short to be a phone number");16=Ga}}return Y}catch(Xa){}return m}var T=["isValidIntlNumber"],Z=this; -!(T[0]in Z)&&Z.execScript&&Z.execScript("var "+T[0]);for(var $;T.length&&($=T.shift());)!T.length&&void 0!==Ra?Z[$]=Ra:Z=Z[$]?Z[$]:Z[$]={};})(); +P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},K=RegExp("^[+\uff0b]+"),wa=RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"),xa=RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"),ya=/[\\\/] *x/,Ja=RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"),Ka=/(?:.*?[A-Za-z]){3}.*/,La=RegExp("(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)$", +"i"),Ma=RegExp("^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:;ext=([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|[,x\uff58#\uff03~\uff5e]|int|anexo|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,7})#?|[- ]+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,5})#)?$", +"i");function Na(a){var b=a.search(xa);0<=b?(a=a.substring(b),a=a.replace(Ja,""),b=a.search(ya),0<=b&&(a=a.substring(0,b))):a="";return a}function Oa(a){var b=L(Ka,a.toString())?M(a.toString(),va):M(a.toString(),ua);a.clear();a.append(b)}function M(a,b){for(var c=new B,d,e=a.length,g=0;g=a.b.length&&f("Phone number too short after IDD"); +a:{e=a.toString();if(!(0==e.length||"0"==e.charAt(0)))for(var h=e.length,k=1;3>=k&&k<=h;++k)if(g=parseInt(e.substring(0,k),10),g in sa){c.append(e.substring(k));e=g;break a}e=0}if(0!=e)return d.j(e),e;f("Invalid country calling code")}if(b!=j&&(e=b.f(),g=""+e,h=a.toString(),0==h.lastIndexOf(g,0)&&(k=new B(h.substring(g.length)),h=t(b,1),g=RegExp(u(h,2)),Sa(k,b,j),b=k.toString(),h=u(h,3),!L(g,a.toString())&&L(g,b)||3==(L(h,a.toString())?0:0==a.toString().search(h)?3:2))))return c.append(b),q(d,6,10), +d.j(e),e;d.j(0);return 0}function Sa(a,b,c){var d=a.toString(),e=d.length,g=t(b,15);if(!(0==e||g==j||0==g.length))if(g=RegExp("^(?:"+g+")"),e=g.exec(d)){var h=RegExp,k;k=t(b,1);k=u(k,2);h=h(k);k=L(h,d);var y=e.length-1;b=t(b,16);if(b==j||0==b.length||e[y]==j||0==e[y].length){if(!k||L(h,d.substring(e[0].length)))c!=j&&(0d.toString().length?0:L(Ma,d.toString()))||f("The string supplied did not seem to be a phone number");b!=j&&isNaN(b)&&b.toUpperCase()in ta||d.toString()!=j&&0N.substring(0,V).length?0:L(Ma,N.substring(0,V))))for(var W=N.match(La),Ua=W.length,e=1;eD.b.length&&f("The string supplied is too short to be a phone number");if(C!=j){var Aa=new B, +ea=new B(D.toString());Sa(ea,C,Aa);var Ba=ea.toString(),fa,Va=t(C,1);fa=u(Va,3);if(2!=(L(fa,Ba)?0:0==Ba.search(fa)?3:2))D=ea,q(m,7,Aa.toString())}var w=D.toString(),Ca=w.length;2>Ca&&f("The string supplied is too short to be a phone number");16=Ia}}return Z}catch(Za){}return l} +var T=["isValidNumber"],U=this;!(T[0]in U)&&U.execScript&&U.execScript("var "+T[0]);for(var $;T.length&&($=T.shift());)!T.length&&void 0!==Ta?U[$]=Ta:U=U[$]?U[$]:U[$]={};})(); diff --git a/lib/libphonenumber/src/isValidIntlNumber.js b/lib/libphonenumber/src/isValidNumber.js similarity index 74% rename from lib/libphonenumber/src/isValidIntlNumber.js rename to lib/libphonenumber/src/isValidNumber.js index ba9be6215..5fb0e4046 100644 --- a/lib/libphonenumber/src/isValidIntlNumber.js +++ b/lib/libphonenumber/src/isValidNumber.js @@ -9,10 +9,10 @@ // includes goog.require('i18n.phonenumbers.PhoneNumberUtil.ValidationResult'); -function isValidIntlNumber(number) { +function isValidNumber(numberString, countryCode) { try { var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance(); - var numberObj = phoneUtil.parseAndKeepRawInput(number, ''); + var numberObj = phoneUtil.parseAndKeepRawInput(numberString, countryCode); return phoneUtil.isValidNumber(numberObj); } catch (e) { // do nothing @@ -21,4 +21,4 @@ function isValidIntlNumber(number) { } // exports -goog.exportSymbol('isValidIntlNumber', isValidIntlNumber); +goog.exportSymbol('isValidNumber', isValidNumber); diff --git a/src/js/intlTelInput.js b/src/js/intlTelInput.js index c4ff3bb35..c2c8317b0 100644 --- a/src/js/intlTelInput.js +++ b/src/js/intlTelInput.js @@ -2,15 +2,22 @@ var pluginName = "intlTelInput", id = 1, // give each instance it's own id for namespaced event handling defaults = { - // united states and united kingdom - preferredCountries: ["us", "gb"], + // don't display the +1 prefix when America is selected americaMode: false, - onlyCountries: [], - defaultStyling: "inside", + // if there is just a dial code in the input: remove it on blur, and re-add it on focus autoHideDialCode: true, + // default country defaultCountry: "", // character to appear between dial code and phone number - dialCodeDelimiter: " " + dialCodeDelimiter: " ", + // position the selected flag inside or outside of the input + defaultStyling: "inside", + // display only these countries + onlyCountries: [], + // the countries at the top of the list. defaults to united states and united kingdom + preferredCountries: ["us", "gb"], + // specify the path to the libphonenumber script to enable validation + validationScript: "" }, keys = { UP: 38, @@ -212,6 +219,13 @@ that._showDropdown(); } }); + + if (this.options.validationScript) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = this.options.validationScript; + document.body.appendChild(script); + } }, @@ -641,6 +655,14 @@ // the first is "flag" and the second is the 2-char country code var countryCode = this.selectedFlagInner.attr("class").split(" ")[1]; return this._getCountryData(countryCode); + }, + + + // validate the input val - assumes the global function isValidNumber + isValidNumber: function() { + var val = $.trim(this.telInput.val()); + var countryData = this.getSelectedCountryData(); + return window.isValidNumber(val, countryData.iso2); } };