{"version":3,"sources":["jsdelivr-header.js","/npm/intl-tel-input@19.5.6/build/js/intlTelInput.js","/npm/intl-tel-input@19.5.6/index.js"],"names":[],"mappings":"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","file":"/npm/intl-tel-input@19.5.6/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/intl-tel-input@19.5.6/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * International Telephone Input v19.5.6\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ôte d’Ivoire\", \"ci\", \"225\" ], [ \"Croatia\", \"hr\", \"385\" ], [ \"Cuba\", \"cu\", \"53\" ], [ \"Curaçao\", \"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éunion\", \"re\", \"262\", 0 ], [ \"Romania\", \"ro\", \"40\" ], [ \"Russia\", \"ru\", \"7\", 0 ], [ \"Rwanda\", \"rw\", \"250\" ], [ \"Samoa\", \"ws\", \"685\" ], [ \"San Marino\", \"sm\", \"378\" ], [ \"São Tomé & Príncipe\", \"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élemy\", \"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\" ], [ \"Åland 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                        if (e && e.data && /[^+0-9]/.test(e.data)) {\n                            userOverrideFormatting = true;\n                        } else if (!/[^+0-9]/.test(_this6.telInput.value)) {\n                            userOverrideFormatting = false;\n                        }\n                        if (_this6.options.formatAsYouType && !userOverrideFormatting) {\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À-ÿа-яА-Я ]$/.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 shouldSetPlaceholder = this.options.autoPlaceholder === \"aggressive\" || !this.hadInitialPlaceholder && this.options.autoPlaceholder === \"polite\";\n                    if (window.intlTelInputUtils && shouldSetPlaceholder) {\n                        var numberType = intlTelInputUtils.numberType[this.options.placeholderNumberType];\n                        var placeholder = this.selectedCountryData.iso2 ? intlTelInputUtils.getExampleNumber(this.selectedCountryData.iso2, this.options.nationalMode, numberType) : \"\";\n                        placeholder = this._beforeSetNumber(placeholder);\n                        if (typeof this.options.customPlaceholder === \"function\") {\n                            placeholder = this.options.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                        this._updatePlaceholder();\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.6\";\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});","module.exports = require(\"./build/js/intlTelInput\");\n"]}