File: /var/www/quadcode.com/node_modules/intl-tel-input/react/build/IntlTelInput.esm.js.map
{
"version": 3,
"sources": ["../../build/js/intlTelInput.js", "../src/IntlTelInput.js"],
"sourcesContent": ["/*\n * International Telephone Input v19.5.7\n * https://github.com/jackocnr/intl-tel-input.git\n * Licensed under the MIT license\n */\n\n// wrap in UMD\n(function(factory) {\n if (typeof module === \"object\" && module.exports) module.exports = factory(); else window.intlTelInput = factory();\n})(function(undefined) {\n \"use strict\";\n return function() {\n // Array of country objects for the flag dropdown.\n // Here is the criteria for the plugin to support a given country/territory\n // - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n // - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes\n // - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png\n // - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml\n // Each country array has the following information:\n // [\n // Country name,\n // iso2 code,\n // International dial code,\n // Order (if >1 country with same dial code),\n // Area codes\n // ]\n var allCountries = [ [ \"Afghanistan\", \"af\", \"93\" ], [ \"Albania\", \"al\", \"355\" ], [ \"Algeria\", \"dz\", \"213\" ], [ \"American Samoa\", \"as\", \"1\", 5, [ \"684\" ] ], [ \"Andorra\", \"ad\", \"376\" ], [ \"Angola\", \"ao\", \"244\" ], [ \"Anguilla\", \"ai\", \"1\", 6, [ \"264\" ] ], [ \"Antigua & Barbuda\", \"ag\", \"1\", 7, [ \"268\" ] ], [ \"Argentina\", \"ar\", \"54\" ], [ \"Armenia\", \"am\", \"374\" ], [ \"Aruba\", \"aw\", \"297\" ], [ \"Ascension Island\", \"ac\", \"247\" ], [ \"Australia\", \"au\", \"61\", 0 ], [ \"Austria\", \"at\", \"43\" ], [ \"Azerbaijan\", \"az\", \"994\" ], [ \"Bahamas\", \"bs\", \"1\", 8, [ \"242\" ] ], [ \"Bahrain\", \"bh\", \"973\" ], [ \"Bangladesh\", \"bd\", \"880\" ], [ \"Barbados\", \"bb\", \"1\", 9, [ \"246\" ] ], [ \"Belarus\", \"by\", \"375\" ], [ \"Belgium\", \"be\", \"32\" ], [ \"Belize\", \"bz\", \"501\" ], [ \"Benin\", \"bj\", \"229\" ], [ \"Bermuda\", \"bm\", \"1\", 10, [ \"441\" ] ], [ \"Bhutan\", \"bt\", \"975\" ], [ \"Bolivia\", \"bo\", \"591\" ], [ \"Bosnia & Herzegovina\", \"ba\", \"387\" ], [ \"Botswana\", \"bw\", \"267\" ], [ \"Brazil\", \"br\", \"55\" ], [ \"British Indian Ocean Territory\", \"io\", \"246\" ], [ \"British Virgin Islands\", \"vg\", \"1\", 11, [ \"284\" ] ], [ \"Brunei\", \"bn\", \"673\" ], [ \"Bulgaria\", \"bg\", \"359\" ], [ \"Burkina Faso\", \"bf\", \"226\" ], [ \"Burundi\", \"bi\", \"257\" ], [ \"Cambodia\", \"kh\", \"855\" ], [ \"Cameroon\", \"cm\", \"237\" ], [ \"Canada\", \"ca\", \"1\", 1, [ \"204\", \"226\", \"236\", \"249\", \"250\", \"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\", \"902\", \"905\" ] ], [ \"Cape Verde\", \"cv\", \"238\" ], [ \"Caribbean Netherlands\", \"bq\", \"599\", 1, [ \"3\", \"4\", \"7\" ] ], [ \"Cayman Islands\", \"ky\", \"1\", 12, [ \"345\" ] ], [ \"Central African Republic\", \"cf\", \"236\" ], [ \"Chad\", \"td\", \"235\" ], [ \"Chile\", \"cl\", \"56\" ], [ \"China\", \"cn\", \"86\" ], [ \"Christmas Island\", \"cx\", \"61\", 2, [ \"89164\" ] ], [ \"Cocos (Keeling) Islands\", \"cc\", \"61\", 1, [ \"89162\" ] ], [ \"Colombia\", \"co\", \"57\" ], [ \"Comoros\", \"km\", \"269\" ], [ \"Congo - Brazzaville\", \"cg\", \"242\" ], [ \"Congo - Kinshasa\", \"cd\", \"243\" ], [ \"Cook Islands\", \"ck\", \"682\" ], [ \"Costa Rica\", \"cr\", \"506\" ], [ \"C\u00F4te d\u2019Ivoire\", \"ci\", \"225\" ], [ \"Croatia\", \"hr\", \"385\" ], [ \"Cuba\", \"cu\", \"53\" ], [ \"Cura\u00E7ao\", \"cw\", \"599\", 0 ], [ \"Cyprus\", \"cy\", \"357\" ], [ \"Czech Republic\", \"cz\", \"420\" ], [ \"Denmark\", \"dk\", \"45\" ], [ \"Djibouti\", \"dj\", \"253\" ], [ \"Dominica\", \"dm\", \"1\", 13, [ \"767\" ] ], [ \"Dominican Republic\", \"do\", \"1\", 2, [ \"809\", \"829\", \"849\" ] ], [ \"Ecuador\", \"ec\", \"593\" ], [ \"Egypt\", \"eg\", \"20\" ], [ \"El Salvador\", \"sv\", \"503\" ], [ \"Equatorial Guinea\", \"gq\", \"240\" ], [ \"Eritrea\", \"er\", \"291\" ], [ \"Estonia\", \"ee\", \"372\" ], [ \"Eswatini\", \"sz\", \"268\" ], [ \"Ethiopia\", \"et\", \"251\" ], [ \"Falkland Islands\", \"fk\", \"500\" ], [ \"Faroe Islands\", \"fo\", \"298\" ], [ \"Fiji\", \"fj\", \"679\" ], [ \"Finland\", \"fi\", \"358\", 0 ], [ \"France\", \"fr\", \"33\" ], [ \"French Guiana\", \"gf\", \"594\" ], [ \"French Polynesia\", \"pf\", \"689\" ], [ \"Gabon\", \"ga\", \"241\" ], [ \"Gambia\", \"gm\", \"220\" ], [ \"Georgia\", \"ge\", \"995\" ], [ \"Germany\", \"de\", \"49\" ], [ \"Ghana\", \"gh\", \"233\" ], [ \"Gibraltar\", \"gi\", \"350\" ], [ \"Greece\", \"gr\", \"30\" ], [ \"Greenland\", \"gl\", \"299\" ], [ \"Grenada\", \"gd\", \"1\", 14, [ \"473\" ] ], [ \"Guadeloupe\", \"gp\", \"590\", 0 ], [ \"Guam\", \"gu\", \"1\", 15, [ \"671\" ] ], [ \"Guatemala\", \"gt\", \"502\" ], [ \"Guernsey\", \"gg\", \"44\", 1, [ \"1481\", \"7781\", \"7839\", \"7911\" ] ], [ \"Guinea\", \"gn\", \"224\" ], [ \"Guinea-Bissau\", \"gw\", \"245\" ], [ \"Guyana\", \"gy\", \"592\" ], [ \"Haiti\", \"ht\", \"509\" ], [ \"Honduras\", \"hn\", \"504\" ], [ \"Hong Kong\", \"hk\", \"852\" ], [ \"Hungary\", \"hu\", \"36\" ], [ \"Iceland\", \"is\", \"354\" ], [ \"India\", \"in\", \"91\" ], [ \"Indonesia\", \"id\", \"62\" ], [ \"Iran\", \"ir\", \"98\" ], [ \"Iraq\", \"iq\", \"964\" ], [ \"Ireland\", \"ie\", \"353\" ], [ \"Isle of Man\", \"im\", \"44\", 2, [ \"1624\", \"74576\", \"7524\", \"7924\", \"7624\" ] ], [ \"Israel\", \"il\", \"972\" ], [ \"Italy\", \"it\", \"39\", 0 ], [ \"Jamaica\", \"jm\", \"1\", 4, [ \"876\", \"658\" ] ], [ \"Japan\", \"jp\", \"81\" ], [ \"Jersey\", \"je\", \"44\", 3, [ \"1534\", \"7509\", \"7700\", \"7797\", \"7829\", \"7937\" ] ], [ \"Jordan\", \"jo\", \"962\" ], [ \"Kazakhstan\", \"kz\", \"7\", 1, [ \"33\", \"7\" ] ], [ \"Kenya\", \"ke\", \"254\" ], [ \"Kiribati\", \"ki\", \"686\" ], [ \"Kosovo\", \"xk\", \"383\" ], [ \"Kuwait\", \"kw\", \"965\" ], [ \"Kyrgyzstan\", \"kg\", \"996\" ], [ \"Laos\", \"la\", \"856\" ], [ \"Latvia\", \"lv\", \"371\" ], [ \"Lebanon\", \"lb\", \"961\" ], [ \"Lesotho\", \"ls\", \"266\" ], [ \"Liberia\", \"lr\", \"231\" ], [ \"Libya\", \"ly\", \"218\" ], [ \"Liechtenstein\", \"li\", \"423\" ], [ \"Lithuania\", \"lt\", \"370\" ], [ \"Luxembourg\", \"lu\", \"352\" ], [ \"Macau\", \"mo\", \"853\" ], [ \"Madagascar\", \"mg\", \"261\" ], [ \"Malawi\", \"mw\", \"265\" ], [ \"Malaysia\", \"my\", \"60\" ], [ \"Maldives\", \"mv\", \"960\" ], [ \"Mali\", \"ml\", \"223\" ], [ \"Malta\", \"mt\", \"356\" ], [ \"Marshall Islands\", \"mh\", \"692\" ], [ \"Martinique\", \"mq\", \"596\" ], [ \"Mauritania\", \"mr\", \"222\" ], [ \"Mauritius\", \"mu\", \"230\" ], [ \"Mayotte\", \"yt\", \"262\", 1, [ \"269\", \"639\" ] ], [ \"Mexico\", \"mx\", \"52\" ], [ \"Micronesia\", \"fm\", \"691\" ], [ \"Moldova\", \"md\", \"373\" ], [ \"Monaco\", \"mc\", \"377\" ], [ \"Mongolia\", \"mn\", \"976\" ], [ \"Montenegro\", \"me\", \"382\" ], [ \"Montserrat\", \"ms\", \"1\", 16, [ \"664\" ] ], [ \"Morocco\", \"ma\", \"212\", 0 ], [ \"Mozambique\", \"mz\", \"258\" ], [ \"Myanmar (Burma)\", \"mm\", \"95\" ], [ \"Namibia\", \"na\", \"264\" ], [ \"Nauru\", \"nr\", \"674\" ], [ \"Nepal\", \"np\", \"977\" ], [ \"Netherlands\", \"nl\", \"31\" ], [ \"New Caledonia\", \"nc\", \"687\" ], [ \"New Zealand\", \"nz\", \"64\" ], [ \"Nicaragua\", \"ni\", \"505\" ], [ \"Niger\", \"ne\", \"227\" ], [ \"Nigeria\", \"ng\", \"234\" ], [ \"Niue\", \"nu\", \"683\" ], [ \"Norfolk Island\", \"nf\", \"672\" ], [ \"North Korea\", \"kp\", \"850\" ], [ \"North Macedonia\", \"mk\", \"389\" ], [ \"Northern Mariana Islands\", \"mp\", \"1\", 17, [ \"670\" ] ], [ \"Norway\", \"no\", \"47\", 0 ], [ \"Oman\", \"om\", \"968\" ], [ \"Pakistan\", \"pk\", \"92\" ], [ \"Palau\", \"pw\", \"680\" ], [ \"Palestine\", \"ps\", \"970\" ], [ \"Panama\", \"pa\", \"507\" ], [ \"Papua New Guinea\", \"pg\", \"675\" ], [ \"Paraguay\", \"py\", \"595\" ], [ \"Peru\", \"pe\", \"51\" ], [ \"Philippines\", \"ph\", \"63\" ], [ \"Poland\", \"pl\", \"48\" ], [ \"Portugal\", \"pt\", \"351\" ], [ \"Puerto Rico\", \"pr\", \"1\", 3, [ \"787\", \"939\" ] ], [ \"Qatar\", \"qa\", \"974\" ], [ \"R\u00E9union\", \"re\", \"262\", 0 ], [ \"Romania\", \"ro\", \"40\" ], [ \"Russia\", \"ru\", \"7\", 0 ], [ \"Rwanda\", \"rw\", \"250\" ], [ \"Samoa\", \"ws\", \"685\" ], [ \"San Marino\", \"sm\", \"378\" ], [ \"S\u00E3o Tom\u00E9 & Pr\u00EDncipe\", \"st\", \"239\" ], [ \"Saudi Arabia\", \"sa\", \"966\" ], [ \"Senegal\", \"sn\", \"221\" ], [ \"Serbia\", \"rs\", \"381\" ], [ \"Seychelles\", \"sc\", \"248\" ], [ \"Sierra Leone\", \"sl\", \"232\" ], [ \"Singapore\", \"sg\", \"65\" ], [ \"Sint Maarten\", \"sx\", \"1\", 21, [ \"721\" ] ], [ \"Slovakia\", \"sk\", \"421\" ], [ \"Slovenia\", \"si\", \"386\" ], [ \"Solomon Islands\", \"sb\", \"677\" ], [ \"Somalia\", \"so\", \"252\" ], [ \"South Africa\", \"za\", \"27\" ], [ \"South Korea\", \"kr\", \"82\" ], [ \"South Sudan\", \"ss\", \"211\" ], [ \"Spain\", \"es\", \"34\" ], [ \"Sri Lanka\", \"lk\", \"94\" ], [ \"St Barth\u00E9lemy\", \"bl\", \"590\", 1 ], [ \"St Helena\", \"sh\", \"290\" ], [ \"St Kitts & Nevis\", \"kn\", \"1\", 18, [ \"869\" ] ], [ \"St Lucia\", \"lc\", \"1\", 19, [ \"758\" ] ], [ \"St Martin\", \"mf\", \"590\", 2 ], [ \"St Pierre & Miquelon\", \"pm\", \"508\" ], [ \"St Vincent & Grenadines\", \"vc\", \"1\", 20, [ \"784\" ] ], [ \"Sudan\", \"sd\", \"249\" ], [ \"Suriname\", \"sr\", \"597\" ], [ \"Svalbard & Jan Mayen\", \"sj\", \"47\", 1, [ \"79\" ] ], [ \"Sweden\", \"se\", \"46\" ], [ \"Switzerland\", \"ch\", \"41\" ], [ \"Syria\", \"sy\", \"963\" ], [ \"Taiwan\", \"tw\", \"886\" ], [ \"Tajikistan\", \"tj\", \"992\" ], [ \"Tanzania\", \"tz\", \"255\" ], [ \"Thailand\", \"th\", \"66\" ], [ \"Timor-Leste\", \"tl\", \"670\" ], [ \"Togo\", \"tg\", \"228\" ], [ \"Tokelau\", \"tk\", \"690\" ], [ \"Tonga\", \"to\", \"676\" ], [ \"Trinidad & Tobago\", \"tt\", \"1\", 22, [ \"868\" ] ], [ \"Tunisia\", \"tn\", \"216\" ], [ \"Turkey\", \"tr\", \"90\" ], [ \"Turkmenistan\", \"tm\", \"993\" ], [ \"Turks & Caicos Islands\", \"tc\", \"1\", 23, [ \"649\" ] ], [ \"Tuvalu\", \"tv\", \"688\" ], [ \"Uganda\", \"ug\", \"256\" ], [ \"Ukraine\", \"ua\", \"380\" ], [ \"United Arab Emirates\", \"ae\", \"971\" ], [ \"United Kingdom\", \"gb\", \"44\", 0 ], [ \"United States\", \"us\", \"1\", 0 ], [ \"Uruguay\", \"uy\", \"598\" ], [ \"US Virgin Islands\", \"vi\", \"1\", 24, [ \"340\" ] ], [ \"Uzbekistan\", \"uz\", \"998\" ], [ \"Vanuatu\", \"vu\", \"678\" ], [ \"Vatican City\", \"va\", \"39\", 1, [ \"06698\" ] ], [ \"Venezuela\", \"ve\", \"58\" ], [ \"Vietnam\", \"vn\", \"84\" ], [ \"Wallis & Futuna\", \"wf\", \"681\" ], [ \"Western Sahara\", \"eh\", \"212\", 1, [ \"5288\", \"5289\" ] ], [ \"Yemen\", \"ye\", \"967\" ], [ \"Zambia\", \"zm\", \"260\" ], [ \"Zimbabwe\", \"zw\", \"263\" ], [ \"\u00C5land Islands\", \"ax\", \"358\", 1, [ \"18\" ] ] ];\n // loop over all of the countries above, restructuring the data to be objects with named keys\n for (var i = 0; i < allCountries.length; i++) {\n var c = allCountries[i];\n allCountries[i] = {\n name: c[0],\n iso2: c[1],\n dialCode: c[2],\n priority: c[3] || 0,\n areaCodes: c[4] || null,\n nodeById: {}\n };\n }\n \"use strict\";\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n }\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (;!(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n var intlTelInputGlobals = {\n getInstance: function getInstance(input) {\n var id = input.getAttribute(\"data-intl-tel-input-id\");\n return window.intlTelInputGlobals.instances[id];\n },\n instances: {},\n // using a global like this allows us to mock it in the tests\n documentReady: function documentReady() {\n return document.readyState === \"complete\";\n }\n };\n if (typeof window === \"object\") {\n window.intlTelInputGlobals = intlTelInputGlobals;\n }\n // these vars persist through all instances of the plugin\n var id = 0;\n var defaults = {\n // whether or not to allow the dropdown\n allowDropdown: true,\n // auto insert dial code (A) on init, (B) on user selecting a country, (C) on calling setCountry\n autoInsertDialCode: false,\n // add a placeholder in the input with an example number for the selected country\n autoPlaceholder: \"polite\",\n // add a country search input at the top of the dropdown\n countrySearch: true,\n // modify the parentClass\n containerClass: \"\",\n // modify the auto placeholder\n customPlaceholder: null,\n // by default, initialise with the first country in the list selected (if no country set via the initial value or initialCountry option)\n defaultToFirstCountry: true,\n // append menu to specified element\n dropdownContainer: null,\n // don't display these countries\n excludeCountries: [],\n // fix the dropdown width to the input width (rather than being as wide as the longest country name)\n fixDropdownWidth: true,\n // format the number as the user types\n formatAsYouType: true,\n // format the input value during initialisation and on setNumber\n formatOnDisplay: true,\n // geoIp lookup function\n geoIpLookup: null,\n // inject a hidden input with this name, and on submit, populate it with the result of getNumber\n hiddenInput: null,\n // internationalise the plugin text e.g. search input placeholder, country names\n i18n: {},\n // initial country\n initialCountry: \"\",\n // national vs international formatting for numbers e.g. placeholders and displaying existing numbers\n nationalMode: true,\n // display only these countries\n onlyCountries: [],\n // number type to use for placeholders\n placeholderNumberType: \"MOBILE\",\n // the countries at the top of the list\n preferredCountries: [],\n // option to hide the flags - must be used with showSelectedDialCode, or allowDropdown=false\n showFlags: true,\n // display the international dial code next to the selected flag\n showSelectedDialCode: false,\n // use full screen popup instead of dropdown for country list\n useFullscreenPopup: typeof navigator !== \"undefined\" && typeof window !== \"undefined\" ? // we cannot just test screen size as some smartphones/website meta tags will report desktop\n // resolutions\n // Note: to target Android Mobiles (and not Tablets), we must find 'Android' and 'Mobile'\n /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 500 : false,\n // specify the path to the libphonenumber script to enable validation/formatting\n utilsScript: \"\"\n };\n // https://en.wikipedia.org/wiki/List_of_North_American_Numbering_Plan_area_codes#Non-geographic_area_codes\n var regionlessNanpNumbers = [ \"800\", \"822\", \"833\", \"844\", \"855\", \"866\", \"877\", \"880\", \"881\", \"882\", \"883\", \"884\", \"885\", \"886\", \"887\", \"888\", \"889\" ];\n // run a method on each instance of the plugin\n var forEachInstance = function forEachInstance(method) {\n var instances = window.intlTelInputGlobals.instances;\n Object.values(instances).forEach(function(instance) {\n return instance[method]();\n });\n };\n // this is our plugin class that we will create an instance of\n // eslint-disable-next-line no-unused-vars\n var Iti = /*#__PURE__*/ function() {\n function Iti(input) {\n var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Iti);\n this.id = id++;\n this.telInput = input;\n this.activeItem = null;\n this.highlightedItem = null;\n // process specified options / defaults\n this.options = Object.assign({}, defaults, customOptions);\n this.hadInitialPlaceholder = Boolean(input.getAttribute(\"placeholder\"));\n }\n _createClass(Iti, [ {\n key: \"_init\",\n value: function _init() {\n var _this = this;\n // if showing fullscreen popup, do not fix the width\n if (this.options.useFullscreenPopup) {\n this.options.fixDropdownWidth = false;\n }\n // when search enabled, we must fix the width else it would change with different results\n if (this.options.countrySearch && !this.options.useFullscreenPopup) {\n this.options.fixDropdownWidth = true;\n }\n // if in nationalMode, do not insert dial codes\n if (this.options.nationalMode) {\n this.options.autoInsertDialCode = false;\n }\n // if showSelectedDialCode enabled, do not insert dial codes\n if (this.options.showSelectedDialCode) {\n this.options.autoInsertDialCode = false;\n }\n // force showFlags=true if there's a dropdown and we're not displaying the dial code,\n // as otherwise you just have a down arrow on it's own which doesn't make sense\n var forceShowFlags = this.options.allowDropdown && !this.options.showSelectedDialCode;\n if (!this.options.showFlags && forceShowFlags) {\n this.options.showFlags = true;\n }\n // on mobile, we want a full screen dropdown, so we must append it to the body\n if (this.options.useFullscreenPopup && !this.options.dropdownContainer) {\n this.options.dropdownContainer = document.body;\n }\n // check if input has one parent with RTL\n this.isRTL = !!this.telInput.closest(\"[dir=rtl]\");\n // these promises get resolved when their individual requests complete\n // this way the dev can do something like iti.promise.then(...) to know when all requests are\n // complete\n if (typeof Promise !== \"undefined\") {\n var autoCountryPromise = new Promise(function(resolve, reject) {\n _this.resolveAutoCountryPromise = resolve;\n _this.rejectAutoCountryPromise = reject;\n });\n var utilsScriptPromise = new Promise(function(resolve, reject) {\n _this.resolveUtilsScriptPromise = resolve;\n _this.rejectUtilsScriptPromise = reject;\n });\n this.promise = Promise.all([ autoCountryPromise, utilsScriptPromise ]);\n } else {\n // prevent errors when Promise doesn't exist\n this.resolveAutoCountryPromise = this.rejectAutoCountryPromise = function() {};\n this.resolveUtilsScriptPromise = this.rejectUtilsScriptPromise = function() {};\n }\n // in various situations there could be no country selected initially, but we need to be able\n // to assume this variable exists\n this.selectedCountryData = {};\n // process all the data: onlyCountries, excludeCountries, preferredCountries etc\n this._processCountryData();\n // generate the markup\n this._generateMarkup();\n // set the initial state of the input value and the selected flag\n this._setInitialState();\n // start all of the event listeners: autoInsertDialCode, input keydown, selectedFlag click\n this._initListeners();\n // utils script, and auto country\n this._initRequests();\n }\n }, {\n key: \"_processCountryData\",\n value: function _processCountryData() {\n // process onlyCountries or excludeCountries array if present\n this._processAllCountries();\n // generate this.dialCodes and this.dialCodeToIso2Map\n this._processDialCodes();\n // process the preferredCountries\n this._processPreferredCountries();\n // translate country names according to i18n option\n this._translateCountryNames();\n // sort countries by name\n if (this.options.onlyCountries.length || this.options.i18n) {\n this.countries.sort(this._countryNameSort);\n }\n }\n }, {\n key: \"_addToDialCodeMap\",\n value: function _addToDialCodeMap(iso2, dialCode, priority) {\n if (dialCode.length > this.dialCodeMaxLen) {\n this.dialCodeMaxLen = dialCode.length;\n }\n if (!this.dialCodeToIso2Map.hasOwnProperty(dialCode)) {\n this.dialCodeToIso2Map[dialCode] = [];\n }\n // bail if we already have this country for this dialCode\n for (var i = 0; i < this.dialCodeToIso2Map[dialCode].length; i++) {\n if (this.dialCodeToIso2Map[dialCode][i] === iso2) {\n return;\n }\n }\n // check for undefined as 0 is falsy\n var index = priority !== undefined ? priority : this.dialCodeToIso2Map[dialCode].length;\n this.dialCodeToIso2Map[dialCode][index] = iso2;\n }\n }, {\n key: \"_processAllCountries\",\n value: function _processAllCountries() {\n if (this.options.onlyCountries.length) {\n var lowerCaseOnlyCountries = this.options.onlyCountries.map(function(country) {\n return country.toLowerCase();\n });\n this.countries = allCountries.filter(function(country) {\n return lowerCaseOnlyCountries.indexOf(country.iso2) > -1;\n });\n } else if (this.options.excludeCountries.length) {\n var lowerCaseExcludeCountries = this.options.excludeCountries.map(function(country) {\n return country.toLowerCase();\n });\n this.countries = allCountries.filter(function(country) {\n return lowerCaseExcludeCountries.indexOf(country.iso2) === -1;\n });\n } else {\n this.countries = allCountries;\n }\n }\n }, {\n key: \"_translateCountryNames\",\n value: function _translateCountryNames() {\n for (var i = 0; i < this.countries.length; i++) {\n var iso2 = this.countries[i].iso2.toLowerCase();\n if (this.options.i18n.hasOwnProperty(iso2)) {\n this.countries[i].name = this.options.i18n[iso2];\n }\n }\n }\n }, {\n key: \"_countryNameSort\",\n value: function _countryNameSort(a, b) {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n }\n }, {\n key: \"_processDialCodes\",\n value: function _processDialCodes() {\n // here we store just dial codes, where the key is the dial code, and the value is true\n // e.g. { 1: true, 7: true, 20: true, ... }\n this.dialCodes = {};\n this.dialCodeMaxLen = 0;\n // here we map dialCodes (inc both dialCode and dialCode+areaCode) to iso2 codes\n /* e.g.\n * {\n * 1: [ 'us', 'ca', ... ], # all NANP countries\n * 12: [ 'us', 'ca', ... ], # subset of NANP countries\n * 120: [ 'us', 'ca' ], # just US and Canada\n * 1204: [ 'ca' ], # only Canada\n * ...\n * }\n */\n this.dialCodeToIso2Map = {};\n // first: add dial codes\n for (var i = 0; i < this.countries.length; i++) {\n var c = this.countries[i];\n if (!this.dialCodes[c.dialCode]) {\n this.dialCodes[c.dialCode] = true;\n }\n this._addToDialCodeMap(c.iso2, c.dialCode, c.priority);\n }\n // next: add area codes\n // this is a second loop over countries, to make sure we have all of the \"root\" countries\n // already in the map, so that we can access them, as each time we add an area code substring\n // to the map, we also need to include the \"root\" country's code, as that also matches\n for (var _i = 0; _i < this.countries.length; _i++) {\n var _c = this.countries[_i];\n // area codes\n if (_c.areaCodes) {\n var rootIso2Code = this.dialCodeToIso2Map[_c.dialCode][0];\n // for each area code\n for (var j = 0; j < _c.areaCodes.length; j++) {\n var areaCode = _c.areaCodes[j];\n // for each digit in the area code to add all partial matches as well\n for (var k = 1; k < areaCode.length; k++) {\n var partialDialCode = _c.dialCode + areaCode.substr(0, k);\n // start with the root country, as that also matches this dial code\n this._addToDialCodeMap(rootIso2Code, partialDialCode);\n this._addToDialCodeMap(_c.iso2, partialDialCode);\n }\n // add the full area code\n this._addToDialCodeMap(_c.iso2, _c.dialCode + areaCode);\n }\n }\n }\n }\n }, {\n key: \"_processPreferredCountries\",\n value: function _processPreferredCountries() {\n this.preferredCountries = [];\n for (var i = 0; i < this.options.preferredCountries.length; i++) {\n var iso2 = this.options.preferredCountries[i].toLowerCase();\n var countryData = this._getCountryData(iso2, true);\n if (countryData) {\n this.preferredCountries.push(countryData);\n }\n }\n }\n }, {\n key: \"_createEl\",\n value: function _createEl(name, attrs, container) {\n var el = document.createElement(name);\n if (attrs) {\n Object.entries(attrs).forEach(function(_ref) {\n var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1];\n return el.setAttribute(key, value);\n });\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n }\n }, {\n key: \"_generateMarkup\",\n value: function _generateMarkup() {\n this.telInput.classList.add(\"iti__tel-input\");\n // if autocomplete does not exist on the element and its form, then\n // prevent autocomplete as there's no safe, cross-browser event we can react to, so it can\n // easily put the plugin in an inconsistent state e.g. the wrong flag selected for the\n // autocompleted number, which on submit could mean wrong number is saved\n if (!this.telInput.hasAttribute(\"autocomplete\") && !(this.telInput.form && this.telInput.form.hasAttribute(\"autocomplete\"))) {\n this.telInput.setAttribute(\"autocomplete\", \"off\");\n }\n var _this$options = this.options, allowDropdown = _this$options.allowDropdown, showSelectedDialCode = _this$options.showSelectedDialCode, showFlags = _this$options.showFlags, containerClass = _this$options.containerClass, hiddenInput = _this$options.hiddenInput, dropdownContainer = _this$options.dropdownContainer, fixDropdownWidth = _this$options.fixDropdownWidth, useFullscreenPopup = _this$options.useFullscreenPopup, countrySearch = _this$options.countrySearch;\n // containers (mostly for positioning)\n var parentClass = \"iti\";\n if (allowDropdown) {\n parentClass += \" iti--allow-dropdown\";\n }\n if (showSelectedDialCode) {\n parentClass += \" iti--show-selected-dial-code\";\n }\n if (showFlags) {\n parentClass += \" iti--show-flags\";\n }\n if (containerClass) {\n parentClass += \" \".concat(containerClass);\n }\n if (!useFullscreenPopup) {\n parentClass += \" iti--inline-dropdown\";\n }\n var wrapper = this._createEl(\"div\", {\n \"class\": parentClass\n });\n this.telInput.parentNode.insertBefore(wrapper, this.telInput);\n // only hide the flagsContainer if allowDropdown, showFlags and showSelectedDialCode are all false\n var showFlagsContainer = allowDropdown || showFlags || showSelectedDialCode;\n if (showFlagsContainer) {\n this.flagsContainer = this._createEl(\"div\", {\n \"class\": \"iti__flag-container\"\n }, wrapper);\n }\n wrapper.appendChild(this.telInput);\n // selected flag (displayed to left of input)\n // using Aria tags for \"Select-Only Combobox Example\"\n // https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/\n if (showFlagsContainer) {\n this.selectedFlag = this._createEl(\"div\", _objectSpread({\n \"class\": \"iti__selected-flag\"\n }, allowDropdown && {\n role: \"combobox\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": \"iti-\".concat(this.id, \"__country-listbox\"),\n \"aria-expanded\": \"false\",\n \"aria-label\": this.options.i18n.selectedCountryAriaLabel || \"Selected country\"\n }), this.flagsContainer);\n }\n if (showFlags) {\n this.selectedFlagInner = this._createEl(\"div\", {\n \"class\": \"iti__flag\"\n }, this.selectedFlag);\n }\n if (this.selectedFlag && this.telInput.disabled) {\n this.selectedFlag.setAttribute(\"aria-disabled\", \"true\");\n }\n if (showSelectedDialCode) {\n this.selectedDialCode = this._createEl(\"div\", {\n \"class\": \"iti__selected-dial-code\"\n }, this.selectedFlag);\n }\n if (allowDropdown) {\n if (!this.telInput.disabled) {\n // make element focusable and tab navigable\n this.selectedFlag.setAttribute(\"tabindex\", \"0\");\n }\n this.dropdownArrow = this._createEl(\"div\", {\n \"class\": \"iti__arrow\"\n }, this.selectedFlag);\n var extraClasses = fixDropdownWidth ? \"\" : \"iti--flexible-dropdown-width\";\n this.dropdownContent = this._createEl(\"div\", {\n \"class\": \"iti__dropdown-content iti__hide \".concat(extraClasses)\n });\n if (countrySearch) {\n this.searchInput = this._createEl(\"input\", {\n type: \"text\",\n \"class\": \"iti__search-input\",\n placeholder: this.options.i18n.searchPlaceholder || \"Search\"\n }, this.dropdownContent);\n }\n // country list: preferred countries, then divider, then all countries\n this.countryList = this._createEl(\"ul\", {\n \"class\": \"iti__country-list\",\n id: \"iti-\".concat(this.id, \"__country-listbox\"),\n role: \"listbox\",\n \"aria-label\": this.options.i18n.countryListAriaLabel || \"List of countries\"\n }, this.dropdownContent);\n if (this.preferredCountries.length && !countrySearch) {\n this._appendListItems(this.preferredCountries, \"iti__preferred\", true);\n this._createEl(\"li\", {\n \"class\": \"iti__divider\",\n \"aria-hidden\": \"true\"\n }, this.countryList);\n }\n this._appendListItems(this.countries, \"iti__standard\");\n // create dropdownContainer markup\n if (dropdownContainer) {\n var dropdownClasses = \"iti iti--container\";\n if (useFullscreenPopup) {\n dropdownClasses += \" iti--fullscreen-popup\";\n } else {\n dropdownClasses += \" iti--inline-dropdown\";\n }\n if (countrySearch) {\n dropdownClasses += \" iti--country-search\";\n }\n this.dropdown = this._createEl(\"div\", {\n \"class\": dropdownClasses\n });\n this.dropdown.appendChild(this.dropdownContent);\n } else {\n this.flagsContainer.appendChild(this.dropdownContent);\n }\n }\n if (hiddenInput) {\n var telInputName = this.telInput.getAttribute(\"name\");\n var result = hiddenInput(telInputName);\n var isObject = result !== null && typeof result === \"object\";\n var hiddenInputPhoneName;\n var hiddenInputCountryName;\n if (isObject) {\n hiddenInputPhoneName = result.phone || telInputName;\n hiddenInputCountryName = result.country || \"\".concat(hiddenInputPhoneName, \"_country\");\n } else {\n hiddenInputPhoneName = result || telInputName;\n hiddenInputCountryName = \"\".concat(hiddenInputPhoneName, \"_country\");\n }\n // Check if a name has been determined for the phone input field after all conditions\n if (!hiddenInputPhoneName) {\n return;\n }\n // Create hidden input for the full international number\n this.hiddenInput = this._createEl(\"input\", {\n type: \"hidden\",\n name: hiddenInputPhoneName\n });\n // Create hidden input for the selected country iso2 code\n this.hiddenInputCountry = this._createEl(\"input\", {\n type: \"hidden\",\n name: hiddenInputCountryName\n });\n wrapper.appendChild(this.hiddenInput);\n wrapper.appendChild(this.hiddenInputCountry);\n }\n }\n }, {\n key: \"_appendListItems\",\n value: function _appendListItems(countries, className, preferred) {\n for (var i = 0; i < countries.length; i++) {\n var c = countries[i];\n var idSuffix = preferred ? \"-preferred\" : \"\";\n var listItem = this._createEl(\"li\", {\n id: \"iti-\".concat(this.id, \"__item-\").concat(c.iso2).concat(idSuffix),\n \"class\": \"iti__country \".concat(className),\n tabindex: \"-1\",\n role: \"option\",\n \"data-dial-code\": c.dialCode,\n \"data-country-code\": c.iso2,\n \"aria-selected\": \"false\"\n }, this.countryList);\n // store this for later use e.g. country search filtering\n c.nodeById[this.id] = listItem;\n var content = \"\";\n // add the flag\n if (this.options.showFlags) {\n content += \"<div class='iti__flag-box'><div class='iti__flag iti__\".concat(c.iso2, \"'></div></div>\");\n }\n // and the country name and dial code\n content += \"<span class='iti__country-name'>\".concat(c.name, \"</span>\");\n content += \"<span class='iti__dial-code'>+\".concat(c.dialCode, \"</span>\");\n listItem.insertAdjacentHTML(\"beforeend\", content);\n }\n }\n }, {\n key: \"_setInitialState\",\n value: function _setInitialState() {\n var overrideAutoCountry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // fix firefox bug: when first load page (with input with value set to number with intl dial\n // code) and initialising plugin removes the dial code from the input, then refresh page,\n // and we try to init plugin again but this time on number without dial code so get grey flag\n var attributeValue = this.telInput.getAttribute(\"value\");\n var inputValue = this.telInput.value;\n var useAttribute = attributeValue && attributeValue.charAt(0) === \"+\" && (!inputValue || inputValue.charAt(0) !== \"+\");\n var val = useAttribute ? attributeValue : inputValue;\n var dialCode = this._getDialCode(val);\n var isRegionlessNanp = this._isRegionlessNanp(val);\n var _this$options2 = this.options, initialCountry = _this$options2.initialCountry, autoInsertDialCode = _this$options2.autoInsertDialCode, defaultToFirstCountry = _this$options2.defaultToFirstCountry;\n // if we already have a dial code, and it's not a regionlessNanp, we can go ahead and set the\n // flag, else fall back to the default country\n if (dialCode && !isRegionlessNanp) {\n this._updateFlagFromNumber(val);\n } else if (initialCountry !== \"auto\" || overrideAutoCountry) {\n var lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : \"\";\n var isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);\n // see if we should select a flag\n if (isValidInitialCountry) {\n this._setFlag(lowerInitialCountry);\n } else {\n if (dialCode && isRegionlessNanp) {\n // has intl dial code, is regionless nanp, and no initialCountry, so default to US\n this._setFlag(\"us\");\n } else if (defaultToFirstCountry && !val) {\n // no dial code and no initialCountry, so default to first in list\n this.defaultCountry = this.preferredCountries.length ? this.preferredCountries[0].iso2 : this.countries[0].iso2;\n this._setFlag(this.defaultCountry);\n } else {\n // display the empty state (globe icon)\n this._setFlag();\n }\n }\n // if empty and autoInsertDialCode then insert the dial code\n if (!val && autoInsertDialCode) {\n this.telInput.value = \"+\".concat(this.selectedCountryData.dialCode);\n }\n }\n // NOTE: if initialCountry is set to auto, that will be handled separately\n // format - note this wont be run after _updateDialCode as that's only called if no val\n if (val) {\n this._updateValFromNumber(val);\n }\n }\n }, {\n key: \"_initListeners\",\n value: function _initListeners() {\n this._initKeyListeners();\n if (this.options.autoInsertDialCode) {\n this._initBlurListeners();\n }\n if (this.options.allowDropdown) {\n this._initDropdownListeners();\n }\n if (this.hiddenInput) {\n this._initHiddenInputListener();\n }\n }\n }, {\n key: \"_initHiddenInputListener\",\n value: function _initHiddenInputListener() {\n var _this2 = this;\n this._handleHiddenInputSubmit = function() {\n _this2.hiddenInput.value = _this2.getNumber();\n _this2.hiddenInputCountry.value = _this2.getSelectedCountryData().iso2;\n };\n if (this.telInput.form) {\n this.telInput.form.addEventListener(\"submit\", this._handleHiddenInputSubmit);\n }\n }\n }, {\n key: \"_initDropdownListeners\",\n value: function _initDropdownListeners() {\n var _this3 = this;\n // hack for input nested inside label (which is valid markup): clicking the selected-flag to\n // open the dropdown would then automatically trigger a 2nd click on the input which would\n // close it again\n this._handleLabelClick = function(e) {\n // if the dropdown is closed, then focus the input, else ignore the click\n if (_this3.dropdownContent.classList.contains(\"iti__hide\")) {\n _this3.telInput.focus();\n } else {\n e.preventDefault();\n }\n };\n var label = this.telInput.closest(\"label\");\n if (label) {\n label.addEventListener(\"click\", this._handleLabelClick);\n }\n // toggle country dropdown on click\n this._handleClickSelectedFlag = function() {\n // only intercept this event if we're opening the dropdown\n // else let it bubble up to the top (\"click-off-to-close\" listener)\n // we cannot just stopPropagation as it may be needed to close another instance\n if (_this3.dropdownContent.classList.contains(\"iti__hide\") && !_this3.telInput.disabled && !_this3.telInput.readOnly) {\n _this3._showDropdown();\n }\n };\n this.selectedFlag.addEventListener(\"click\", this._handleClickSelectedFlag);\n // open dropdown if selected flag is focused and they press up/down/space/enter\n this._handleFlagsContainerKeydown = function(e) {\n var isDropdownHidden = _this3.dropdownContent.classList.contains(\"iti__hide\");\n if (isDropdownHidden && [ \"ArrowUp\", \"ArrowDown\", \" \", \"Enter\" ].includes(e.key)) {\n // prevent form from being submitted if \"ENTER\" was pressed\n e.preventDefault();\n // prevent event from being handled again by document\n e.stopPropagation();\n _this3._showDropdown();\n }\n // allow navigation from dropdown to input on TAB\n if (e.key === \"Tab\") {\n _this3._closeDropdown();\n }\n };\n this.flagsContainer.addEventListener(\"keydown\", this._handleFlagsContainerKeydown);\n }\n }, {\n key: \"_initRequests\",\n value: function _initRequests() {\n var _this4 = this;\n // if the user has specified the path to the utils script, fetch it on window.load, else resolve\n if (this.options.utilsScript && !window.intlTelInputUtils) {\n // if the plugin is being initialised after the window.load event has already been fired\n if (window.intlTelInputGlobals.documentReady()) {\n window.intlTelInputGlobals.loadUtils(this.options.utilsScript);\n } else {\n // wait until the load event so we don't block any other requests e.g. the flags image\n window.addEventListener(\"load\", function() {\n window.intlTelInputGlobals.loadUtils(_this4.options.utilsScript);\n });\n }\n } else {\n this.resolveUtilsScriptPromise();\n }\n // dont bother with IP lookup if we already have a selected country\n if (this.options.initialCountry === \"auto\" && !this.selectedCountryData.iso2) {\n this._loadAutoCountry();\n } else {\n this.resolveAutoCountryPromise();\n }\n }\n }, {\n key: \"_loadAutoCountry\",\n value: function _loadAutoCountry() {\n var _this5 = this;\n // 3 options:\n // 1) already loaded (we're done)\n // 2) not already started loading (start)\n // 3) already started loading (do nothing - just wait for loading callback to fire)\n if (window.intlTelInputGlobals.autoCountry) {\n this.handleAutoCountry();\n } else if (!window.intlTelInputGlobals.startedLoadingAutoCountry) {\n // don't do this twice!\n window.intlTelInputGlobals.startedLoadingAutoCountry = true;\n if (typeof this.options.geoIpLookup === \"function\") {\n this.options.geoIpLookup(function() {\n var iso2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var iso2Lower = iso2.toLowerCase();\n var isValidIso2 = iso2Lower && _this5._getCountryData(iso2Lower, true);\n if (isValidIso2) {\n window.intlTelInputGlobals.autoCountry = iso2Lower;\n // tell all instances the auto country is ready\n // TODO: this should just be the current instances\n // UPDATE: use setTimeout in case their geoIpLookup function calls this callback straight\n // away (e.g. if they have already done the geo ip lookup somewhere else). Using\n // setTimeout means that the current thread of execution will finish before executing\n // this, which allows the plugin to finish initialising.\n setTimeout(function() {\n return forEachInstance(\"handleAutoCountry\");\n });\n } else {\n _this5._setInitialState(true);\n forEachInstance(\"rejectAutoCountryPromise\");\n }\n }, function() {\n return forEachInstance(\"rejectAutoCountryPromise\");\n });\n }\n }\n }\n }, {\n key: \"_initKeyListeners\",\n value: function _initKeyListeners() {\n var _this6 = this;\n var userOverrideFormatting = false;\n // update flag on input event\n this._handleKeyEvent = function(e) {\n if (_this6._updateFlagFromNumber(_this6.telInput.value)) {\n _this6._triggerCountryChange();\n }\n // if user types their own formatting char (not a plus or a numeric), then set the override\n var isFormattingChar = e && e.data && /[^+0-9]/.test(e.data);\n var isPaste = e && e.inputType === \"insertFromPaste\" && _this6.telInput.value;\n if (isFormattingChar || isPaste) {\n userOverrideFormatting = true;\n } else if (!/[^+0-9]/.test(_this6.telInput.value)) {\n userOverrideFormatting = false;\n }\n // handle FAYT, unless userOverrideFormatting or it's a paste event\n if (_this6.options.formatAsYouType && !userOverrideFormatting && e.inputType !== \"insertFromPaste\") {\n // maintain caret position after reformatting\n var currentCaretPos = _this6.telInput.selectionStart;\n var valueBeforeCaret = _this6.telInput.value.substring(0, currentCaretPos);\n var relevantCharsBeforeCaret = valueBeforeCaret.replace(/[^+0-9]/g, \"\").length;\n var isDeleteForwards = e && e.inputType === \"deleteContentForward\";\n var formattedValue = _this6._formatNumberAsYouType();\n var newCaretPos = _this6._translateCursorPosition(relevantCharsBeforeCaret, formattedValue, currentCaretPos, isDeleteForwards);\n _this6.telInput.value = formattedValue;\n _this6.telInput.setSelectionRange(newCaretPos, newCaretPos);\n }\n };\n this.telInput.addEventListener(\"input\", this._handleKeyEvent);\n // update flag on cut/paste events (now supported in all major browsers)\n this._handleClipboardEvent = function() {\n // hack because \"paste\" event is fired before input is updated\n setTimeout(_this6._handleKeyEvent);\n };\n this.telInput.addEventListener(\"cut\", this._handleClipboardEvent);\n this.telInput.addEventListener(\"paste\", this._handleClipboardEvent);\n }\n }, {\n key: \"_translateCursorPosition\",\n value: function _translateCursorPosition(relevantChars, formattedValue, prevCaretPos, isDeleteForwards) {\n // if the first char is a formatting char, and they backspace delete it:\n // cursor should stay at the start (pos 0), rather than stick to the first digit (pos 1)\n if (prevCaretPos === 0 && !isDeleteForwards) {\n return 0;\n }\n var count = 0;\n for (var i = 0; i < formattedValue.length; i++) {\n if (/[+0-9]/.test(formattedValue[i])) {\n count++;\n }\n // normal case: stop when you hit the right number of relevant chars\n // (cursor will be just after the final relevant char)\n if (count === relevantChars && !isDeleteForwards) {\n return i + 1;\n }\n // spacial case: delete forwards (fn + delete on a mac):\n // wait until hit one extra relevant char, and put the cursor just before it (after any formatting chars)\n if (isDeleteForwards && count === relevantChars + 1) {\n return i;\n }\n }\n return formattedValue.length;\n }\n }, {\n key: \"_cap\",\n value: function _cap(number) {\n var max = this.telInput.getAttribute(\"maxlength\");\n return max && number.length > max ? number.substr(0, max) : number;\n }\n }, {\n key: \"_initBlurListeners\",\n value: function _initBlurListeners() {\n var _this7 = this;\n // on blur or form submit: if just a dial code then remove it\n this._handleSubmitOrBlurEvent = function() {\n _this7._removeEmptyDialCode();\n };\n if (this.telInput.form) {\n this.telInput.form.addEventListener(\"submit\", this._handleSubmitOrBlurEvent);\n }\n this.telInput.addEventListener(\"blur\", this._handleSubmitOrBlurEvent);\n }\n }, {\n key: \"_removeEmptyDialCode\",\n value: function _removeEmptyDialCode() {\n if (this.telInput.value.charAt(0) === \"+\") {\n var numeric = this._getNumeric(this.telInput.value);\n // if just a plus, or if just a dial code\n if (!numeric || this.selectedCountryData.dialCode === numeric) {\n this.telInput.value = \"\";\n }\n }\n }\n }, {\n key: \"_getNumeric\",\n value: function _getNumeric(s) {\n return s.replace(/\\D/g, \"\");\n }\n }, {\n key: \"_trigger\",\n value: function _trigger(name) {\n var e = new Event(name, {\n bubbles: true,\n cancelable: true\n });\n this.telInput.dispatchEvent(e);\n }\n }, {\n key: \"_showDropdown\",\n value: function _showDropdown() {\n if (this.options.fixDropdownWidth) {\n this.dropdownContent.style.width = \"\".concat(this.telInput.offsetWidth, \"px\");\n }\n this.dropdownContent.classList.remove(\"iti__hide\");\n this.selectedFlag.setAttribute(\"aria-expanded\", \"true\");\n this._setDropdownPosition();\n if (this.options.countrySearch) {\n // start by highlighting the first item in the list\n var firstElementChild = this.countryList.firstElementChild;\n if (firstElementChild) {\n this._highlightListItem(firstElementChild, false);\n }\n this.searchInput.focus();\n } else if (this.activeItem) {\n // update highlighting and scroll to active list item\n this._highlightListItem(this.activeItem, false);\n this._scrollTo(this.activeItem, true);\n }\n // bind all the dropdown-related listeners: mouseover, click, click-off, keydown\n this._bindDropdownListeners();\n // update the arrow\n this.dropdownArrow.classList.add(\"iti__arrow--up\");\n this._trigger(\"open:countrydropdown\");\n }\n }, {\n key: \"_toggleClass\",\n value: function _toggleClass(el, className, shouldHaveClass) {\n if (shouldHaveClass && !el.classList.contains(className)) {\n el.classList.add(className);\n } else if (!shouldHaveClass && el.classList.contains(className)) {\n el.classList.remove(className);\n }\n }\n }, {\n key: \"_setDropdownPosition\",\n value: function _setDropdownPosition() {\n var _this8 = this;\n if (this.options.dropdownContainer) {\n this.options.dropdownContainer.appendChild(this.dropdown);\n }\n if (!this.options.useFullscreenPopup) {\n var pos = this.telInput.getBoundingClientRect();\n // windowTop from https://stackoverflow.com/a/14384091/217866\n var windowTop = document.documentElement.scrollTop;\n var inputTop = pos.top + windowTop;\n var dropdownHeight = this.dropdownContent.offsetHeight;\n // dropdownFitsBelow = (dropdownBottom < windowBottom)\n var dropdownFitsBelow = inputTop + this.telInput.offsetHeight + dropdownHeight < windowTop + window.innerHeight;\n var dropdownFitsAbove = inputTop - dropdownHeight > windowTop;\n // dont allow positioning above when country search enabled as the search box jumps around as you filter countries\n var positionDropdownAboveInput = !this.options.countrySearch && !dropdownFitsBelow && dropdownFitsAbove;\n // by default, the dropdown will be below the input. If we want to position it above the\n // input, we add the dropup class.\n this._toggleClass(this.dropdownContent, \"iti__dropdown-content--dropup\", positionDropdownAboveInput);\n // if dropdownContainer is enabled, calculate postion\n if (this.options.dropdownContainer) {\n // if we want to position the dropdown below the input, we need to add the input height to the top value\n var extraTop = positionDropdownAboveInput ? 0 : this.telInput.offsetHeight;\n // calculate placement\n this.dropdown.style.top = \"\".concat(inputTop + extraTop, \"px\");\n this.dropdown.style.left = \"\".concat(pos.left + document.body.scrollLeft, \"px\");\n // close menu on window scroll\n this._handleWindowScroll = function() {\n return _this8._closeDropdown();\n };\n window.addEventListener(\"scroll\", this._handleWindowScroll);\n }\n }\n }\n }, {\n key: \"_bindDropdownListeners\",\n value: function _bindDropdownListeners() {\n var _this9 = this;\n // when mouse over a list item, just highlight that one\n // we add the class \"highlight\", so if they hit \"enter\" we know which one to select\n this._handleMouseoverCountryList = function(e) {\n // handle event delegation, as we're listening for this event on the countryList\n var listItem = e.target.closest(\".iti__country\");\n if (listItem) {\n _this9._highlightListItem(listItem, false);\n }\n };\n this.countryList.addEventListener(\"mouseover\", this._handleMouseoverCountryList);\n // listen for country selection\n this._handleClickCountryList = function(e) {\n var listItem = e.target.closest(\".iti__country\");\n if (listItem) {\n _this9._selectListItem(listItem);\n }\n };\n this.countryList.addEventListener(\"click\", this._handleClickCountryList);\n // click off to close\n // (except when this initial opening click is bubbling up)\n // we cannot just stopPropagation as it may be needed to close another instance\n var isOpening = true;\n this._handleClickOffToClose = function() {\n if (!isOpening) {\n _this9._closeDropdown();\n }\n isOpening = false;\n };\n document.documentElement.addEventListener(\"click\", this._handleClickOffToClose);\n // listen for up/down scrolling, enter to select, or escape to close\n // use keydown as keypress doesn't fire for non-char keys and we want to catch if they\n // just hit down and hold it to scroll down (no keyup event).\n // listen on the document because that's where key events are triggered if no input has focus\n var query = \"\";\n var queryTimer = null;\n this._handleKeydownOnDropdown = function(e) {\n // prevent down key from scrolling the whole page,\n // and enter key from submitting a form etc\n if ([ \"ArrowUp\", \"ArrowDown\", \"Enter\", \"Escape\" ].includes(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n // up and down to navigate\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n _this9._handleUpDownKey(e.key);\n } else if (e.key === \"Enter\") {\n _this9._handleEnterKey();\n } else if (e.key === \"Escape\") {\n _this9._closeDropdown();\n }\n }\n // alpha chars to perform search\n // regex allows one latin alpha char or space, based on https://stackoverflow.com/a/26900132/217866)\n if (!_this9.options.countrySearch && /^[a-zA-Z\u00C0-\u00FF\u0430-\u044F\u0410-\u042F ]$/.test(e.key)) {\n e.stopPropagation();\n // jump to countries that start with the query string\n if (queryTimer) {\n clearTimeout(queryTimer);\n }\n query += e.key.toLowerCase();\n _this9._searchForCountry(query);\n // if the timer hits 1 second, reset the query\n queryTimer = setTimeout(function() {\n query = \"\";\n }, 1e3);\n }\n };\n document.addEventListener(\"keydown\", this._handleKeydownOnDropdown);\n if (this.options.countrySearch) {\n var doFilter = function doFilter() {\n var inputQuery = _this9.searchInput.value.trim();\n if (inputQuery) {\n _this9._filterCountries(inputQuery);\n } else {\n _this9._filterCountries(\"\", true);\n }\n };\n var keyupTimer = null;\n this._handleSearchChange = function() {\n // filtering country nodes is expensive (lots of DOM manipulation), so rate limit it\n if (keyupTimer) {\n clearTimeout(keyupTimer);\n }\n keyupTimer = setTimeout(function() {\n doFilter();\n keyupTimer = null;\n }, 100);\n };\n this.searchInput.addEventListener(\"input\", this._handleSearchChange);\n // stop propagation on search input click, so doesn't trigger click-off-to-close listener\n this.searchInput.addEventListener(\"click\", function(e) {\n return e.stopPropagation();\n });\n }\n }\n }, {\n key: \"_normaliseString\",\n value: function _normaliseString() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return s.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n }\n }, {\n key: \"_filterCountries\",\n value: function _filterCountries(query) {\n var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isFirst = true;\n this.countryList.innerHTML = \"\";\n var normalisedQuery = this._normaliseString(query);\n for (var i = 0; i < this.countries.length; i++) {\n var c = this.countries[i];\n var normalisedCountryName = this._normaliseString(c.name);\n var fullDialCode = \"+\".concat(c.dialCode);\n if (isReset || normalisedCountryName.includes(normalisedQuery) || fullDialCode.includes(normalisedQuery) || c.iso2.includes(normalisedQuery)) {\n this.countryList.appendChild(c.nodeById[this.id]);\n // highlight the first item\n if (isFirst) {\n this._highlightListItem(c.nodeById[this.id], false);\n isFirst = false;\n }\n }\n }\n }\n }, {\n key: \"_handleUpDownKey\",\n value: function _handleUpDownKey(key) {\n var next = key === \"ArrowUp\" ? this.highlightedItem.previousElementSibling : this.highlightedItem.nextElementSibling;\n if (next) {\n // skip the divider\n if (next.classList.contains(\"iti__divider\")) {\n next = key === \"ArrowUp\" ? next.previousElementSibling : next.nextElementSibling;\n }\n } else if (this.countryList.childElementCount > 1) {\n // otherwise, we must be at the end, so loop round again\n next = key === \"ArrowUp\" ? this.countryList.lastElementChild : this.countryList.firstElementChild;\n }\n if (next) {\n // if country search enabled, dont lose focus from the search input on up/down\n var doFocus = !this.options.countrySearch;\n this._highlightListItem(next, doFocus);\n if (this.options.countrySearch) {\n this._scrollTo(next, false);\n }\n }\n }\n }, {\n key: \"_handleEnterKey\",\n value: function _handleEnterKey() {\n if (this.highlightedItem) {\n this._selectListItem(this.highlightedItem);\n }\n }\n }, {\n key: \"_searchForCountry\",\n value: function _searchForCountry(query) {\n for (var i = 0; i < this.countries.length; i++) {\n if (this._startsWith(this.countries[i].name, query)) {\n var listItem = this.countries[i].nodeById[this.id];\n // update highlighting and scroll\n this._highlightListItem(listItem, false);\n this._scrollTo(listItem, true);\n break;\n }\n }\n }\n }, {\n key: \"_startsWith\",\n value: function _startsWith(a, b) {\n return a.substr(0, b.length).toLowerCase() === b;\n }\n }, {\n key: \"_updateValFromNumber\",\n value: function _updateValFromNumber(fullNumber) {\n var number = fullNumber;\n if (this.options.formatOnDisplay && window.intlTelInputUtils && this.selectedCountryData) {\n var useNational = this.options.nationalMode || number.charAt(0) !== \"+\" && !this.options.showSelectedDialCode;\n var _intlTelInputUtils$nu = intlTelInputUtils.numberFormat, NATIONAL = _intlTelInputUtils$nu.NATIONAL, INTERNATIONAL = _intlTelInputUtils$nu.INTERNATIONAL;\n var format = useNational ? NATIONAL : INTERNATIONAL;\n number = intlTelInputUtils.formatNumber(number, this.selectedCountryData.iso2, format);\n }\n number = this._beforeSetNumber(number);\n this.telInput.value = number;\n }\n }, {\n key: \"_updateFlagFromNumber\",\n value: function _updateFlagFromNumber(fullNumber) {\n var plusIndex = fullNumber.indexOf(\"+\");\n // if it contains a plus, discard any chars before it e.g. accidental space char.\n // this keeps the selected country auto-updating correctly, which we want as\n // libphonenumber's validation/getNumber methods will ignore these chars anyway\n var number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;\n // if we already have US/Canada selected, make sure the number starts\n // with a +1 so _getDialCode will be able to extract the area code\n // update: if we dont yet have selectedCountryData, but we're here (trying to update the flag\n // from the number), that means we're initialising the plugin with a number that already has a\n // dial code, so fine to ignore this bit\n var selectedDialCode = this.selectedCountryData.dialCode;\n var isNanp = selectedDialCode === \"1\";\n if (number && isNanp && number.charAt(0) !== \"+\") {\n if (number.charAt(0) !== \"1\") {\n number = \"1\".concat(number);\n }\n number = \"+\".concat(number);\n }\n // if showSelectedDialCode enabled, then consider the selected dial code to be part of the number\n if (this.options.showSelectedDialCode && selectedDialCode && number.charAt(0) !== \"+\") {\n number = \"+\".concat(selectedDialCode).concat(number);\n }\n // try and extract valid dial code from input\n var dialCode = this._getDialCode(number, true);\n var numeric = this._getNumeric(number);\n var iso2 = null;\n if (dialCode) {\n var iso2Codes = this.dialCodeToIso2Map[this._getNumeric(dialCode)];\n // check if the right country is already selected. this should be false if the number is\n // longer than the matched dial code because in this case we need to make sure that if\n // there are multiple country matches, that the first one is selected (note: we could\n // just check that here, but it requires the same loop that we already have later)\n var alreadySelected = iso2Codes.indexOf(this.selectedCountryData.iso2) !== -1 && numeric.length <= dialCode.length - 1;\n var isRegionlessNanpNumber = selectedDialCode === \"1\" && this._isRegionlessNanp(numeric);\n // only update the flag if:\n // A) NOT (we currently have a NANP flag selected, and the number is a regionlessNanp)\n // AND\n // B) the right country is not already selected\n if (!isRegionlessNanpNumber && !alreadySelected) {\n // if using onlyCountries option, iso2Codes[0] may be empty, so we must find the first\n // non-empty index\n for (var j = 0; j < iso2Codes.length; j++) {\n if (iso2Codes[j]) {\n iso2 = iso2Codes[j];\n break;\n }\n }\n }\n } else if (number.charAt(0) === \"+\" && numeric.length) {\n // invalid dial code, so empty\n // Note: use getNumeric here because the number has not been formatted yet, so could contain\n // bad chars\n iso2 = \"\";\n } else if ((!number || number === \"+\") && !this.selectedCountryData.iso2) {\n // if no selected flag, and user either clears the input, or just types a plus, then show default\n iso2 = this.defaultCountry;\n }\n if (iso2 !== null) {\n return this._setFlag(iso2);\n }\n return false;\n }\n }, {\n key: \"_isRegionlessNanp\",\n value: function _isRegionlessNanp(number) {\n var numeric = this._getNumeric(number);\n if (numeric.charAt(0) === \"1\") {\n var areaCode = numeric.substr(1, 3);\n return regionlessNanpNumbers.indexOf(areaCode) !== -1;\n }\n return false;\n }\n }, {\n key: \"_highlightListItem\",\n value: function _highlightListItem(listItem, shouldFocus) {\n var prevItem = this.highlightedItem;\n if (prevItem) {\n prevItem.classList.remove(\"iti__highlight\");\n }\n this.highlightedItem = listItem;\n this.highlightedItem.classList.add(\"iti__highlight\");\n this.selectedFlag.setAttribute(\"aria-activedescendant\", listItem.getAttribute(\"id\"));\n if (shouldFocus) {\n this.highlightedItem.focus();\n }\n }\n }, {\n key: \"_getCountryData\",\n value: function _getCountryData(iso2, allowFail) {\n for (var i = 0; i < this.countries.length; i++) {\n if (this.countries[i].iso2 === iso2) {\n return this.countries[i];\n }\n }\n if (allowFail) {\n return null;\n }\n throw new Error(\"No country data for '\".concat(iso2, \"'\"));\n }\n }, {\n key: \"_setFlag\",\n value: function _setFlag(iso2) {\n var _this$options3 = this.options, allowDropdown = _this$options3.allowDropdown, showSelectedDialCode = _this$options3.showSelectedDialCode, showFlags = _this$options3.showFlags, countrySearch = _this$options3.countrySearch;\n var prevCountry = this.selectedCountryData.iso2 ? this.selectedCountryData : {};\n // do this first as it will throw an error and stop if iso2 is invalid\n this.selectedCountryData = iso2 ? this._getCountryData(iso2, false) : {};\n // update the defaultCountry - we only need the iso2 from now on, so just store that\n if (this.selectedCountryData.iso2) {\n this.defaultCountry = this.selectedCountryData.iso2;\n }\n if (showFlags) {\n var flagClass = iso2 ? \"iti__\".concat(iso2) : \"iti__globe\";\n this.selectedFlagInner.setAttribute(\"class\", \"iti__flag \".concat(flagClass));\n }\n this._setSelectedCountryFlagTitleAttribute(iso2, showSelectedDialCode);\n if (showSelectedDialCode) {\n var dialCode = this.selectedCountryData.dialCode ? \"+\".concat(this.selectedCountryData.dialCode) : \"\";\n this.selectedDialCode.innerHTML = dialCode;\n // offsetWidth is zero if input is in a hidden container during initialisation\n var selectedFlagWidth = this.selectedFlag.offsetWidth || this._getHiddenSelectedFlagWidth();\n // add 6px of padding after the grey selected-dial-code box, as this is what we use in the css\n if (this.isRTL) {\n this.telInput.style.paddingRight = \"\".concat(selectedFlagWidth + 6, \"px\");\n } else {\n this.telInput.style.paddingLeft = \"\".concat(selectedFlagWidth + 6, \"px\");\n }\n }\n // and the input's placeholder\n this._updatePlaceholder();\n // update the active list item (only if country search disabled, as country search doesn't store the active item)\n if (allowDropdown && !countrySearch) {\n var prevItem = this.activeItem;\n if (prevItem) {\n prevItem.classList.remove(\"iti__active\");\n prevItem.setAttribute(\"aria-selected\", \"false\");\n }\n if (iso2) {\n // check if there is a preferred item first, else fall back to standard\n var nextItem = this.countryList.querySelector(\"#iti-\".concat(this.id, \"__item-\").concat(iso2, \"-preferred\")) || this.countryList.querySelector(\"#iti-\".concat(this.id, \"__item-\").concat(iso2));\n nextItem.setAttribute(\"aria-selected\", \"true\");\n nextItem.classList.add(\"iti__active\");\n this.activeItem = nextItem;\n }\n }\n // return if the flag has changed or not\n return prevCountry.iso2 !== iso2;\n }\n }, {\n key: \"_setSelectedCountryFlagTitleAttribute\",\n value: function _setSelectedCountryFlagTitleAttribute(iso2, showSelectedDialCode) {\n if (!this.selectedFlag) {\n return;\n }\n var title;\n if (iso2 && !showSelectedDialCode) {\n title = \"\".concat(this.selectedCountryData.name, \": +\").concat(this.selectedCountryData.dialCode);\n } else if (iso2) {\n // For screen reader output, we don't want to include the dial code in the reader output twice\n // so just use the selected country name here:\n title = this.selectedCountryData.name;\n } else {\n title = \"Unknown\";\n }\n this.selectedFlag.setAttribute(\"title\", title);\n }\n }, {\n key: \"_getHiddenSelectedFlagWidth\",\n value: function _getHiddenSelectedFlagWidth() {\n // to get the right styling to apply, all we need is a shallow clone of the container,\n // and then to inject a deep clone of the selectedFlag element\n var containerClone = this.telInput.parentNode.cloneNode();\n containerClone.style.visibility = \"hidden\";\n document.body.appendChild(containerClone);\n var flagsContainerClone = this.flagsContainer.cloneNode();\n containerClone.appendChild(flagsContainerClone);\n var selectedFlagClone = this.selectedFlag.cloneNode(true);\n flagsContainerClone.appendChild(selectedFlagClone);\n var width = selectedFlagClone.offsetWidth;\n containerClone.parentNode.removeChild(containerClone);\n return width;\n }\n }, {\n key: \"_updatePlaceholder\",\n value: function _updatePlaceholder() {\n var _this$options4 = this.options, autoPlaceholder = _this$options4.autoPlaceholder, placeholderNumberType = _this$options4.placeholderNumberType, nationalMode = _this$options4.nationalMode, customPlaceholder = _this$options4.customPlaceholder;\n var shouldSetPlaceholder = autoPlaceholder === \"aggressive\" || !this.hadInitialPlaceholder && autoPlaceholder === \"polite\";\n if (window.intlTelInputUtils && shouldSetPlaceholder) {\n var numberType = intlTelInputUtils.numberType[placeholderNumberType];\n var placeholder = this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, nationalMode, numberType) : \"\";\n placeholder = this._beforeSetNumber(placeholder);\n if (typeof customPlaceholder === \"function\") {\n placeholder = customPlaceholder(placeholder, this.selectedCountryData);\n }\n this.telInput.setAttribute(\"placeholder\", placeholder);\n }\n }\n }, {\n key: \"_selectListItem\",\n value: function _selectListItem(listItem) {\n // update selected flag and active list item\n var flagChanged = this._setFlag(listItem.getAttribute(\"data-country-code\"));\n this._closeDropdown();\n this._updateDialCode(listItem.getAttribute(\"data-dial-code\"));\n // focus the input\n this.telInput.focus();\n if (flagChanged) {\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"_closeDropdown\",\n value: function _closeDropdown() {\n this.dropdownContent.classList.add(\"iti__hide\");\n this.selectedFlag.setAttribute(\"aria-expanded\", \"false\");\n this.selectedFlag.removeAttribute(\"aria-activedescendant\");\n // update the arrow\n this.dropdownArrow.classList.remove(\"iti__arrow--up\");\n // unbind key events\n document.removeEventListener(\"keydown\", this._handleKeydownOnDropdown);\n if (this.options.countrySearch) {\n this.searchInput.removeEventListener(\"input\", this._handleSearchChange);\n }\n document.documentElement.removeEventListener(\"click\", this._handleClickOffToClose);\n this.countryList.removeEventListener(\"mouseover\", this._handleMouseoverCountryList);\n this.countryList.removeEventListener(\"click\", this._handleClickCountryList);\n // remove menu from container\n if (this.options.dropdownContainer) {\n if (!this.options.useFullscreenPopup) {\n window.removeEventListener(\"scroll\", this._handleWindowScroll);\n }\n if (this.dropdown.parentNode) {\n this.dropdown.parentNode.removeChild(this.dropdown);\n }\n }\n this._trigger(\"close:countrydropdown\");\n }\n }, {\n key: \"_scrollTo\",\n value: function _scrollTo(element, middle) {\n var container = this.countryList;\n // windowTop from https://stackoverflow.com/a/14384091/217866\n var windowTop = document.documentElement.scrollTop;\n var containerHeight = container.offsetHeight;\n var containerTop = container.getBoundingClientRect().top + windowTop;\n var containerBottom = containerTop + containerHeight;\n var elementHeight = element.offsetHeight;\n var elementTop = element.getBoundingClientRect().top + windowTop;\n var elementBottom = elementTop + elementHeight;\n var newScrollTop = elementTop - containerTop + container.scrollTop;\n var middleOffset = containerHeight / 2 - elementHeight / 2;\n if (elementTop < containerTop) {\n // scroll up\n if (middle) {\n newScrollTop -= middleOffset;\n }\n container.scrollTop = newScrollTop;\n } else if (elementBottom > containerBottom) {\n // scroll down\n if (middle) {\n newScrollTop += middleOffset;\n }\n var heightDifference = containerHeight - elementHeight;\n container.scrollTop = newScrollTop - heightDifference;\n }\n }\n }, {\n key: \"_updateDialCode\",\n value: function _updateDialCode(newDialCodeBare) {\n var inputVal = this.telInput.value;\n // save having to pass this every time\n var newDialCode = \"+\".concat(newDialCodeBare);\n var newNumber;\n if (inputVal.charAt(0) === \"+\") {\n // there's a plus so we're dealing with a replacement\n var prevDialCode = this._getDialCode(inputVal);\n if (prevDialCode) {\n // current number contains a valid dial code, so replace it\n newNumber = inputVal.replace(prevDialCode, newDialCode);\n } else {\n // current number contains an invalid dial code, so ditch it\n // (no way to determine where the invalid dial code ends and the rest of the number begins)\n newNumber = newDialCode;\n }\n this.telInput.value = newNumber;\n } else if (this.options.autoInsertDialCode) {\n if (inputVal) {\n // there is an existing value with no dial code: prefix the new dial code\n newNumber = newDialCode + inputVal;\n } else {\n newNumber = newDialCode;\n }\n this.telInput.value = newNumber;\n }\n }\n }, {\n key: \"_getDialCode\",\n value: function _getDialCode(number, includeAreaCode) {\n var dialCode = \"\";\n // only interested in international numbers (starting with a plus)\n if (number.charAt(0) === \"+\") {\n var numericChars = \"\";\n // iterate over chars\n for (var i = 0; i < number.length; i++) {\n var c = number.charAt(i);\n // if char is number (https://stackoverflow.com/a/8935649/217866)\n if (!isNaN(parseInt(c, 10))) {\n numericChars += c;\n // if current numericChars make a valid dial code\n if (includeAreaCode) {\n if (this.dialCodeToIso2Map[numericChars]) {\n // store the actual raw string (useful for matching later)\n dialCode = number.substr(0, i + 1);\n }\n } else {\n if (this.dialCodes[numericChars]) {\n dialCode = number.substr(0, i + 1);\n // if we're just looking for a dial code, we can break as soon as we find one\n break;\n }\n }\n // stop searching as soon as we can - in this case when we hit max len\n if (numericChars.length === this.dialCodeMaxLen) {\n break;\n }\n }\n }\n }\n return dialCode;\n }\n }, {\n key: \"_getFullNumber\",\n value: function _getFullNumber() {\n var val = this.telInput.value.trim();\n var dialCode = this.selectedCountryData.dialCode;\n var prefix;\n var numericVal = this._getNumeric(val);\n if (this.options.showSelectedDialCode && !this.options.nationalMode && val.charAt(0) !== \"+\" && dialCode && numericVal) {\n // when using showSelectedDialCode, it is visible so is effectively part of the typed number\n prefix = \"+\".concat(dialCode);\n } else {\n prefix = \"\";\n }\n return prefix + val;\n }\n }, {\n key: \"_beforeSetNumber\",\n value: function _beforeSetNumber(fullNumber) {\n var number = fullNumber;\n if (this.options.showSelectedDialCode) {\n var dialCode = this._getDialCode(number);\n // if there is a valid dial code\n if (dialCode) {\n // in case _getDialCode returned an area code as well\n dialCode = \"+\".concat(this.selectedCountryData.dialCode);\n // a lot of numbers will have a space separating the dial code and the main number, and\n // some NANP numbers will have a hyphen e.g. +1 684-733-1234 - in both cases we want to get\n // rid of it\n // NOTE: don't just trim all non-numerics as may want to preserve an open parenthesis etc\n var start = number[dialCode.length] === \" \" || number[dialCode.length] === \"-\" ? dialCode.length + 1 : dialCode.length;\n number = number.substr(start);\n }\n }\n return this._cap(number);\n }\n }, {\n key: \"_triggerCountryChange\",\n value: function _triggerCountryChange() {\n this._trigger(\"countrychange\");\n }\n }, {\n key: \"_formatNumberAsYouType\",\n value: function _formatNumberAsYouType() {\n var val = this._getFullNumber();\n var result = window.intlTelInputUtils ? intlTelInputUtils.formatNumberAsYouType(val, this.selectedCountryData.iso2) : val;\n // if showSelectedDialCode and they haven't (re)typed the dial code in the input as well, then remove the dial code\n var dialCode = this.selectedCountryData.dialCode;\n if (this.options.showSelectedDialCode && !this.options.nationalMode && this.telInput.value.charAt(0) !== \"+\" && result.includes(\"+\".concat(dialCode))) {\n var afterDialCode = result.split(\"+\".concat(dialCode))[1] || \"\";\n return afterDialCode.trim();\n }\n return result;\n }\n }, {\n key: \"handleAutoCountry\",\n value: function handleAutoCountry() {\n if (this.options.initialCountry === \"auto\") {\n // we must set this even if there is an initial val in the input: in case the initial val is\n // invalid and they delete it - they should see their auto country\n this.defaultCountry = window.intlTelInputGlobals.autoCountry;\n // if there's no initial value in the input, then update the flag\n if (!this.telInput.value) {\n this.setCountry(this.defaultCountry);\n }\n this.resolveAutoCountryPromise();\n }\n }\n }, {\n key: \"handleUtils\",\n value: function handleUtils() {\n // if the request was successful\n if (window.intlTelInputUtils) {\n // if there's an initial value in the input, then format it\n if (this.telInput.value) {\n this._updateValFromNumber(this.telInput.value);\n }\n if (this.selectedCountryData.iso2) {\n this._updatePlaceholder();\n }\n }\n this.resolveUtilsScriptPromise();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var form = this.telInput.form;\n if (this.options.allowDropdown) {\n // make sure the dropdown is closed (and unbind listeners)\n this._closeDropdown();\n this.selectedFlag.removeEventListener(\"click\", this._handleClickSelectedFlag);\n this.flagsContainer.removeEventListener(\"keydown\", this._handleFlagsContainerKeydown);\n // label click hack\n var label = this.telInput.closest(\"label\");\n if (label) {\n label.removeEventListener(\"click\", this._handleLabelClick);\n }\n }\n // unbind hiddenInput listeners\n if (this.hiddenInput && form) {\n form.removeEventListener(\"submit\", this._handleHiddenInputSubmit);\n }\n // unbind autoInsertDialCode listeners\n if (this.options.autoInsertDialCode) {\n if (form) {\n form.removeEventListener(\"submit\", this._handleSubmitOrBlurEvent);\n }\n this.telInput.removeEventListener(\"blur\", this._handleSubmitOrBlurEvent);\n }\n // unbind key events, and cut/paste events\n this.telInput.removeEventListener(\"input\", this._handleKeyEvent);\n this.telInput.removeEventListener(\"cut\", this._handleClipboardEvent);\n this.telInput.removeEventListener(\"paste\", this._handleClipboardEvent);\n // remove attribute of id instance: data-intl-tel-input-id\n this.telInput.removeAttribute(\"data-intl-tel-input-id\");\n // remove markup (but leave the original input)\n var wrapper = this.telInput.parentNode;\n wrapper.parentNode.insertBefore(this.telInput, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n delete window.intlTelInputGlobals.instances[this.id];\n }\n }, {\n key: \"getExtension\",\n value: function getExtension() {\n if (window.intlTelInputUtils) {\n return intlTelInputUtils.getExtension(this._getFullNumber(), this.selectedCountryData.iso2);\n }\n return \"\";\n }\n }, {\n key: \"getNumber\",\n value: function getNumber(format) {\n if (window.intlTelInputUtils) {\n var iso2 = this.selectedCountryData.iso2;\n return intlTelInputUtils.formatNumber(this._getFullNumber(), iso2, format);\n }\n return \"\";\n }\n }, {\n key: \"getNumberType\",\n value: function getNumberType() {\n if (window.intlTelInputUtils) {\n return intlTelInputUtils.getNumberType(this._getFullNumber(), this.selectedCountryData.iso2);\n }\n return -99;\n }\n }, {\n key: \"getSelectedCountryData\",\n value: function getSelectedCountryData() {\n return this.selectedCountryData;\n }\n }, {\n key: \"getValidationError\",\n value: function getValidationError() {\n if (window.intlTelInputUtils) {\n var iso2 = this.selectedCountryData.iso2;\n return intlTelInputUtils.getValidationError(this._getFullNumber(), iso2);\n }\n return -99;\n }\n }, {\n key: \"isValidNumber\",\n value: function isValidNumber(mobileOnly) {\n var val = this._getFullNumber();\n return window.intlTelInputUtils ? intlTelInputUtils.isPossibleNumber(val, this.selectedCountryData.iso2, mobileOnly) : null;\n }\n }, {\n key: \"isValidNumberPrecise\",\n value: function isValidNumberPrecise() {\n var val = this._getFullNumber();\n return window.intlTelInputUtils ? intlTelInputUtils.isValidNumber(val, this.selectedCountryData.iso2) : null;\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(iso2) {\n var iso2Lower = iso2.toLowerCase();\n // check if already selected\n if (this.selectedCountryData.iso2 !== iso2Lower) {\n this._setFlag(iso2Lower);\n this._updateDialCode(this.selectedCountryData.dialCode);\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"setNumber\",\n value: function setNumber(number) {\n // we must update the flag first, which updates this.selectedCountryData, which is used for\n // formatting the number before displaying it\n var flagChanged = this._updateFlagFromNumber(number);\n this._updateValFromNumber(number);\n if (flagChanged) {\n this._triggerCountryChange();\n }\n }\n }, {\n key: \"setPlaceholderNumberType\",\n value: function setPlaceholderNumberType(type) {\n this.options.placeholderNumberType = type;\n this._updatePlaceholder();\n }\n } ]);\n return Iti;\n }();\n /********************\n * STATIC METHODS\n ********************/\n // get the country data object\n intlTelInputGlobals.getCountryData = function() {\n return allCountries;\n };\n // inject a <script> element to load utils.js\n var injectScript = function injectScript(path, handleSuccess, handleFailure) {\n // inject a new script element into the page\n var script = document.createElement(\"script\");\n script.onload = function() {\n forEachInstance(\"handleUtils\");\n if (handleSuccess) {\n handleSuccess();\n }\n };\n script.onerror = function() {\n forEachInstance(\"rejectUtilsScriptPromise\");\n if (handleFailure) {\n handleFailure();\n }\n };\n script.className = \"iti-load-utils\";\n script.async = true;\n script.src = path;\n document.body.appendChild(script);\n };\n // load the utils script\n intlTelInputGlobals.loadUtils = function(path) {\n // 2 options:\n // 1) not already started loading (start)\n // 2) already started loading (do nothing - just wait for the onload callback to fire, which will\n // trigger handleUtils on all instances, invoking their resolveUtilsScriptPromise functions)\n if (!window.intlTelInputUtils && !window.intlTelInputGlobals.startedLoadingUtilsScript) {\n // only do this once\n window.intlTelInputGlobals.startedLoadingUtilsScript = true;\n // if we have promises, then return a promise\n if (typeof Promise !== \"undefined\") {\n return new Promise(function(resolve, reject) {\n return injectScript(path, resolve, reject);\n });\n }\n injectScript(path);\n }\n return null;\n };\n // default options\n intlTelInputGlobals.defaults = defaults;\n // version\n intlTelInputGlobals.version = \"19.5.7\";\n // convenience wrapper\n return function(input, options) {\n var iti = new Iti(input, options);\n iti._init();\n input.setAttribute(\"data-intl-tel-input-id\", iti.id);\n window.intlTelInputGlobals.instances[iti.id] = iti;\n return iti;\n };\n }();\n});", "/* eslint-disable react/jsx-filename-extension */\nimport React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport intlTelInput from \"../../build/js/intlTelInput\";\n\nconst IntlTelInput = ({\n initialValue,\n onChangeNumber,\n onChangeCountry,\n onChangeValidity,\n onChangeErrorCode,\n initOptions,\n className,\n disabled,\n onFocus,\n onBlur,\n placeholder,\n}) => {\n const inputRef = useRef(null);\n const itiRef = useRef(null);\n \n const update = () => {\n const num = itiRef.current.getNumber();\n const countryIso = itiRef.current.getSelectedCountryData().iso2;\n // note: this number will be in standard E164 format, but any container component can use\n // intlTelInputUtils.formatNumber() to convert this to another format\n // as well as intlTelInputUtils.getNumberType() etc. if need be\n onChangeNumber(num);\n onChangeCountry(countryIso);\n\n if (itiRef.current.isValidNumber()) {\n onChangeValidity(true);\n onChangeErrorCode(null);\n } else {\n const errorCode = itiRef.current.getValidationError();\n onChangeValidity(false);\n onChangeErrorCode(errorCode);\n }\n };\n \n useEffect(() => {\n // store a reference to the current input ref, which otherwise is already lost in the cleanup function\n const inputRefCurrent = inputRef.current;\n itiRef.current = intlTelInput(inputRef.current, initOptions);\n inputRefCurrent.addEventListener(\"countrychange\", update);\n return () => {\n inputRefCurrent.removeEventListener(\"countrychange\", update);\n itiRef.current.destroy();\n };\n }, []);\n \n return (\n <input\n type=\"tel\"\n ref={inputRef}\n onInput={update}\n defaultValue={initialValue}\n className={className}\n disabled={disabled}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n />\n );\n};\n\nIntlTelInput.propTypes = {\n initialValue: PropTypes.string,\n placeholder: PropTypes.string,\n onChangeNumber: PropTypes.func,\n onChangeCountry: PropTypes.func,\n onChangeValidity: PropTypes.func,\n onChangeErrorCode: PropTypes.func,\n initOptions: PropTypes.shape({\n allowDropdown: PropTypes.bool,\n autoInsertDialCode: PropTypes.bool,\n autoPlaceholder: PropTypes.string,\n containerClass: PropTypes.string,\n countrySearch: PropTypes.bool,\n customPlaceholder: PropTypes.func,\n dropdownContainer: PropTypes.node,\n excludeCountries: PropTypes.arrayOf(PropTypes.string),\n fixDropdownWidth: PropTypes.bool,\n formatAsYouType: PropTypes.bool,\n formatOnDisplay: PropTypes.bool,\n geoIpLookup: PropTypes.func,\n hiddenInput: PropTypes.func,\n i18n: PropTypes.objectOf(PropTypes.string),\n initialCountry: PropTypes.string,\n nationalMode: PropTypes.bool,\n onlyCountries: PropTypes.arrayOf(PropTypes.string),\n placeholderNumberType: PropTypes.string,\n preferredCountries: PropTypes.arrayOf(PropTypes.string),\n showFlags: PropTypes.bool,\n showSelectedDialCode: PropTypes.bool,\n useFullscreenPopup: PropTypes.bool,\n utilsScript: PropTypes.string,\n }),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nIntlTelInput.defaultProps = {\n initialValue: \"\",\n placeholder: \"\",\n onChangeNumber: () => {},\n onChangeCountry: () => {},\n onChangeValidity: () => {},\n onChangeErrorCode: () => {},\n initOptions: {},\n className: \"\",\n disabled: false,\n onFocus: () => {},\n onBlur: () => {},\n};\n\nexport default IntlTelInput;"],
"mappings": "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",
"names": ["require_intlTelInput", "__commonJSMin", "exports", "module", "factory", "undefined", "allCountries", "i", "c", "_objectSpread", "target", "source", "ownKeys", "sym", "key", "_defineProperty", "obj", "value", "_toPropertyKey", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_i", "_s", "_e", "_x", "_r", "_arr", "_n", "_d", "err", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "descriptor", "_createClass", "protoProps", "staticProps", "arg", "_toPrimitive", "input", "hint", "prim", "res", "intlTelInputGlobals", "id", "defaults", "regionlessNanpNumbers", "forEachInstance", "method", "instances", "Iti", "customOptions", "_this", "forceShowFlags", "autoCountryPromise", "resolve", "reject", "utilsScriptPromise", "iso2", "dialCode", "priority", "index", "lowerCaseOnlyCountries", "country", "lowerCaseExcludeCountries", "a", "b", "_c", "rootIso2Code", "j", "areaCode", "k", "partialDialCode", "countryData", "name", "attrs", "container", "el", "_ref", "_ref2", "_this$options", "allowDropdown", "showSelectedDialCode", "showFlags", "containerClass", "hiddenInput", "dropdownContainer", "fixDropdownWidth", "useFullscreenPopup", "countrySearch", "parentClass", "wrapper", "showFlagsContainer", "extraClasses", "dropdownClasses", "telInputName", "result", "isObject", "hiddenInputPhoneName", "hiddenInputCountryName", "countries", "className", "preferred", "idSuffix", "listItem", "content", "overrideAutoCountry", "attributeValue", "inputValue", "useAttribute", "val", "isRegionlessNanp", "_this$options2", "initialCountry", "autoInsertDialCode", "defaultToFirstCountry", "lowerInitialCountry", "isValidInitialCountry", "_this2", "_this3", "e", "label", "isDropdownHidden", "_this4", "_this5", "iso2Lower", "isValidIso2", "_this6", "userOverrideFormatting", "isFormattingChar", "isPaste", "currentCaretPos", "valueBeforeCaret", "relevantCharsBeforeCaret", "isDeleteForwards", "formattedValue", "newCaretPos", "relevantChars", "prevCaretPos", "count", "number", "max", "_this7", "numeric", "s", "firstElementChild", "shouldHaveClass", "_this8", "pos", "windowTop", "inputTop", "dropdownHeight", "dropdownFitsBelow", "dropdownFitsAbove", "positionDropdownAboveInput", "extraTop", "_this9", "isOpening", "query", "queryTimer", "doFilter", "inputQuery", "keyupTimer", "isReset", "isFirst", "normalisedQuery", "normalisedCountryName", "fullDialCode", "next", "doFocus", "fullNumber", "useNational", "_intlTelInputUtils$nu", "NATIONAL", "INTERNATIONAL", "format", "plusIndex", "selectedDialCode", "isNanp", "iso2Codes", "alreadySelected", "isRegionlessNanpNumber", "shouldFocus", "prevItem", "allowFail", "_this$options3", "prevCountry", "flagClass", "selectedFlagWidth", "nextItem", "title", "containerClone", "flagsContainerClone", "selectedFlagClone", "width", "_this$options4", "autoPlaceholder", "placeholderNumberType", "nationalMode", "customPlaceholder", "shouldSetPlaceholder", "numberType", "placeholder", "flagChanged", "element", "middle", "containerHeight", "containerTop", "containerBottom", "elementHeight", "elementTop", "elementBottom", "newScrollTop", "middleOffset", "heightDifference", "newDialCodeBare", "inputVal", "newDialCode", "newNumber", "prevDialCode", "includeAreaCode", "numericChars", "prefix", "numericVal", "start", "afterDialCode", "form", "mobileOnly", "type", "injectScript", "path", "handleSuccess", "handleFailure", "script", "options", "iti", "import_intlTelInput", "React", "useRef", "useEffect", "PropTypes", "IntlTelInput", "initialValue", "onChangeNumber", "onChangeCountry", "onChangeValidity", "onChangeErrorCode", "initOptions", "className", "disabled", "onFocus", "onBlur", "placeholder", "inputRef", "itiRef", "update", "num", "countryIso", "errorCode", "inputRefCurrent", "intlTelInput", "IntlTelInput_default"]
}