{"version":3,"file":"js/581-355bd5d15d2c8e6e6c23.js","mappings":"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","sources":["webpack://app/./node_modules/libphonenumber-js/build/AsYouType.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternMatcher.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternParser.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeParser.js","webpack://app/./node_modules/libphonenumber-js/build/AsYouTypeState.js","webpack://app/./node_modules/libphonenumber-js/build/ParseError.js","webpack://app/./node_modules/libphonenumber-js/build/PhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/PhoneNumberMatcher.js","webpack://app/./node_modules/libphonenumber-js/build/constants.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/LRUCache.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/Leniency.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/utf-8.js","webpack://app/./node_modules/libphonenumber-js/build/findNumbers/util.js","webpack://app/./node_modules/libphonenumber-js/build/findPhoneNumbersInText.js","webpack://app/./node_modules/libphonenumber-js/build/format.js","webpack://app/./node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/getCountries.js","webpack://app/./node_modules/libphonenumber-js/build/getCountryCallingCode.js","webpack://app/./node_modules/libphonenumber-js/build/getExampleNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/RFC3966.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/checkNumberLength.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/extractPhoneContext.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/getCountryByNationalNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/getIddPrefix.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/getNumberType.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/getPossibleCountriesForNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/isObject.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/matchesEntirely.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/mergeArrays.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/parseDigits.js","webpack://app/./node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js","webpack://app/./node_modules/libphonenumber-js/build/isPossible.js","webpack://app/./node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/isValid.js","webpack://app/./node_modules/libphonenumber-js/build/isValidPhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/legacy/findNumbers.js","webpack://app/./node_modules/libphonenumber-js/build/legacy/searchNumbers.js","webpack://app/./node_modules/libphonenumber-js/build/metadata.js","webpack://app/./node_modules/libphonenumber-js/build/normalizeArguments.js","webpack://app/./node_modules/libphonenumber-js/build/parse.js","webpack://app/./node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/parsePhoneNumber.js","webpack://app/./node_modules/libphonenumber-js/build/parsePhoneNumberWithError.js","webpack://app/./node_modules/libphonenumber-js/build/parsePhoneNumberWithError_.js","webpack://app/./node_modules/libphonenumber-js/build/parsePhoneNumber_.js","webpack://app/./node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js","webpack://app/./node_modules/libphonenumber-js/build/tools/semver-compare.js","webpack://app/./node_modules/libphonenumber-js/build/validatePhoneNumberLength.js","webpack://app/./node_modules/libphonenumber-js/core/index.cjs","webpack://app/./node_modules/libphonenumber-js/max/index.cjs"],"sourcesContent":["\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\n\nvar _AsYouTypeState = _interopRequireDefault(require(\"./AsYouTypeState.js\"));\n\nvar _AsYouTypeFormatter = _interopRequireWildcard(require(\"./AsYouTypeFormatter.js\"));\n\nvar _AsYouTypeParser = _interopRequireWildcard(require(\"./AsYouTypeParser.js\"));\n\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"./helpers/getCountryByCallingCode.js\"));\n\nvar _getCountryByNationalNumber = _interopRequireDefault(require(\"./helpers/getCountryByNationalNumber.js\"));\n\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new _metadata[\"default\"](metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if ((0, _isObject[\"default\"])(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new _AsYouTypeState[\"default\"]({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new _AsYouTypeFormatter[\"default\"]({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new _AsYouTypeParser[\"default\"]({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, _AsYouTypeFormatter.DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry((0, _getCountryByCallingCode[\"default\"])(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata\n }));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n\n if (!nationalSignificantNumber) {\n return;\n } // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n\n if (!country && !callingCode) {\n return;\n } // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n\n\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new _metadata[\"default\"](this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n\n var _callingCode = metadata.numberingPlan.callingCode();\n\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n if (ambiguousCountries.length > 1) {\n var exactCountry = (0, _getCountryByNationalNumber[\"default\"])(nationalSignificantNumber, {\n countries: ambiguousCountries,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata.metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n\n var phoneNumber = new _PhoneNumber[\"default\"](country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexports[\"default\"] = AsYouType;\n//# sourceMappingURL=AsYouType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _AsYouTypeFormatterPatternParser = _interopRequireDefault(require(\"./AsYouTypeFormatter.PatternParser.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new _AsYouTypeFormatterPatternParser[\"default\"]().parse(pattern);\n }\n\n _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n\n if (!string) {\n throw new Error('String is required');\n }\n\n var result = _match(string.split(''), this.matchTree, true);\n\n if (result && result.match) {\n delete result.matchedChars;\n }\n\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n\n return result;\n }\n }]);\n\n return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexports[\"default\"] = PatternMatcher;\n\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n\n return;\n }\n\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n\n while (i < tree.length) {\n var subtree = tree[i];\n\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n\n switch (tree.op) {\n case '|':\n var partialMatch;\n\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n\n var _result = _match(characters, branch, last);\n\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n\n };\n } // Not even a partial match.\n\n\n return;\n\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n\n _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n\n if (instructions.length === 1) {\n return instructions[0];\n }\n\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n\n var match = pattern.match(OPERATOR);\n\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n\n if (before) {\n this.parsePattern(before);\n }\n\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n oneOfSet: true\n });\n break;\n\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n\n return PatternParser;\n}();\n\nexports[\"default\"] = PatternParser;\n\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n\n i++;\n }\n\n return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canFormatCompleteNumber = canFormatCompleteNumber;\nexports[\"default\"] = formatCompleteNumber;\n\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\n\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\n\nvar _formatNationalNumberUsingFormat = _interopRequireDefault(require(\"./helpers/formatNationalNumberUsingFormat.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\n\nfunction canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return (0, _checkNumberLength[\"default\"])(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = (0, _formatNationalNumberUsingFormat[\"default\"])(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return (0, _parseDigits[\"default\"])(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DIGIT_PLACEHOLDER\", {\n enumerable: true,\n get: function get() {\n return _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER;\n }\n});\nexports[\"default\"] = void 0;\n\nvar _AsYouTypeFormatterUtil = require(\"./AsYouTypeFormatter.util.js\");\n\nvar _AsYouTypeFormatterComplete = _interopRequireWildcard(require(\"./AsYouTypeFormatter.complete.js\"));\n\nvar _AsYouTypeFormatterPatternMatcher = _interopRequireDefault(require(\"./AsYouTypeFormatter.PatternMatcher.js\"));\n\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\n\nvar _formatNationalNumberUsingFormat = require(\"./helpers/formatNationalNumberUsingFormat.js\");\n\nvar _constants = require(\"./constants.js\");\n\nvar _applyInternationalSeparatorStyle = _interopRequireDefault(require(\"./helpers/applyInternationalSeparatorStyle.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// Used in phone number format template creation.\n// Could be any digit, I guess.\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = (0, _AsYouTypeFormatterUtil.repeat)(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + _constants.VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + _constants.VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + _constants.VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if ((0, _AsYouTypeFormatterComplete.canFormatCompleteNumber)(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = (0, _AsYouTypeFormatterComplete[\"default\"])(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new _AsYouTypeFormatterPatternMatcher[\"default\"](leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error)\n /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n\n var _loop = function _loop() {\n var format = _step2.value;\n\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this3.chosenFormat = format;\n return \"break\";\n };\n\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER) + (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(_formatNationalNumberUsingFormat.FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if ((0, _parseDigits[\"default\"])(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + (0, _parseDigits[\"default\"])('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = (0, _applyInternationalSeparatorStyle[\"default\"])(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = (0, _AsYouTypeFormatterUtil.populateTemplateWithDigits)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexports[\"default\"] = AsYouTypeFormatter;\n//# sourceMappingURL=AsYouTypeFormatter.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DIGIT_PLACEHOLDER = void 0;\nexports.closeNonPairedParens = closeNonPairedParens;\nexports.countOccurences = countOccurences;\nexports.cutAndStripNonPairedParens = cutAndStripNonPairedParens;\nexports.populateTemplateWithDigits = populateTemplateWithDigits;\nexports.repeat = repeat;\nexports.stripNonPairedParens = stripNonPairedParens;\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nvar DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nexports.DIGIT_PLACEHOLDER = DIGIT_PLACEHOLDER;\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nfunction countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\n\nfunction repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\n\nfunction cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\n\nfunction closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\n\nfunction stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\n\nfunction populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nexports.extractFormattedDigitsAndPlus = extractFormattedDigitsAndPlus;\n\nvar _extractCountryCallingCode2 = _interopRequireDefault(require(\"./helpers/extractCountryCallingCode.js\"));\n\nvar _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require(\"./helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js\"));\n\nvar _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require(\"./helpers/extractNationalNumberFromPossiblyIncompleteNumber.js\"));\n\nvar _stripIddPrefix = _interopRequireDefault(require(\"./helpers/stripIddPrefix.js\"));\n\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\n\nvar _constants = require(\"./constants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + _constants.PLUS_CHARS + ']' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']*' + '|' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = (0, _parseDigits[\"default\"])(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = (0, _extractCountryCallingCode2[\"default\"])('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = (0, _stripIddPrefix[\"default\"])(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign[\"default\"])(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexports[\"default\"] = AsYouTypeParser;\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexports[\"default\"] = AsYouTypeState;\n//# sourceMappingURL=AsYouTypeState.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexports[\"default\"] = ParseError;\n//# sourceMappingURL=ParseError.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _isPossible = _interopRequireDefault(require(\"./isPossible.js\"));\n\nvar _isValid = _interopRequireDefault(require(\"./isValid.js\"));\n\nvar _getNumberType = _interopRequireDefault(require(\"./helpers/getNumberType.js\"));\n\nvar _getPossibleCountriesForNumber = _interopRequireDefault(require(\"./helpers/getPossibleCountriesForNumber.js\"));\n\nvar _format2 = _interopRequireDefault(require(\"./format.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return (0, _getPossibleCountriesForNumber[\"default\"])(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return (0, _isPossible[\"default\"])(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return (0, _isValid[\"default\"])(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new _metadata[\"default\"](this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return (0, _getNumberType[\"default\"])(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return (0, _format2[\"default\"])(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexports[\"default\"] = PhoneNumber;\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new _metadata[\"default\"](metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n//# sourceMappingURL=PhoneNumber.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\n\nvar _constants = require(\"./constants.js\");\n\nvar _createExtensionPattern = _interopRequireDefault(require(\"./helpers/extension/createExtensionPattern.js\"));\n\nvar _RegExpCache = _interopRequireDefault(require(\"./findNumbers/RegExpCache.js\"));\n\nvar _util = require(\"./findNumbers/util.js\");\n\nvar _utf = require(\"./findNumbers/utf-8.js\");\n\nvar _Leniency = _interopRequireDefault(require(\"./findNumbers/Leniency.js\"));\n\nvar _parsePreCandidate = _interopRequireDefault(require(\"./findNumbers/parsePreCandidate.js\"));\n\nvar _isValidPreCandidate = _interopRequireDefault(require(\"./findNumbers/isValidPreCandidate.js\"));\n\nvar _isValidCandidate = _interopRequireWildcard(require(\"./findNumbers/isValidCandidate.js\"));\n\nvar _metadata = require(\"./metadata.js\");\n\nvar _parsePhoneNumber = _interopRequireDefault(require(\"./parsePhoneNumber.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar EXTN_PATTERNS_FOR_MATCHING = (0, _createExtensionPattern[\"default\"])('matching');\n/**\r\n * Patterns used to extract phone numbers from a larger phone-number-like pattern. These are\r\n * ordered according to specificity. For example, white-space is last since that is frequently\r\n * used in numbers, not just to separate two numbers. We have separate patterns since we don't\r\n * want to break up the phone-number-like text on more than one different kind of symbol at one\r\n * time, although symbols of the same type (e.g. space) can be safely grouped together.\r\n *\r\n * Note that if there is a match, we will always check any text found up to the first match as\r\n * well.\r\n */\n\nvar INNER_MATCHES = [// Breaks on the slash - e.g. \"651-234-2345/332-445-1234\"\n'\\\\/+(.*)/', // Note that the bracket here is inside the capturing group, since we consider it part of the\n// phone number. Will match a pattern like \"(650) 223 3345 (754) 223 3321\".\n'(\\\\([^(]*)', // Breaks on a hyphen - e.g. \"12345 - 332-445-1234 is my number.\"\n// We require a space on either side of the hyphen for it to be considered a separator.\n\"(?:\".concat(_utf.pZ, \"-|-\").concat(_utf.pZ, \")\").concat(_utf.pZ, \"*(.+)\"), // Various types of wide hyphens. Note we have decided not to enforce a space here, since it's\n// possible that it's supposed to be used to break two numbers without spaces, and we haven't\n// seen many instances of it used within a number.\n\"[\\u2012-\\u2015\\uFF0D]\".concat(_utf.pZ, \"*(.+)\"), // Breaks on a full stop - e.g. \"12345. 332-445-1234 is my number.\"\n\"\\\\.+\".concat(_utf.pZ, \"*([^.]+)\"), // Breaks on space - e.g. \"3324451234 8002341234\"\n\"\".concat(_utf.pZ, \"+(\").concat(_utf.PZ, \"+)\")]; // Limit on the number of leading (plus) characters.\n\nvar leadLimit = (0, _util.limit)(0, 2); // Limit on the number of consecutive punctuation characters.\n\nvar punctuationLimit = (0, _util.limit)(0, 4);\n/* The maximum number of digits allowed in a digit-separated block. As we allow all digits in a\r\n * single block, set high enough to accommodate the entire national number and the international\r\n * country code. */\n\nvar digitBlockLimit = _constants.MAX_LENGTH_FOR_NSN + _constants.MAX_LENGTH_COUNTRY_CODE; // Limit on the number of blocks separated by punctuation.\n// Uses digitBlockLimit since some formats use spaces to separate each digit.\n\nvar blockLimit = (0, _util.limit)(0, digitBlockLimit);\n/* A punctuation sequence allowing white space. */\n\nvar punctuation = \"[\".concat(_constants.VALID_PUNCTUATION, \"]\") + punctuationLimit; // A digits block without punctuation.\n\nvar digitSequence = _utf.pNd + (0, _util.limit)(1, digitBlockLimit);\n/**\r\n * Phone number pattern allowing optional punctuation.\r\n * The phone number pattern used by `find()`, similar to\r\n * VALID_PHONE_NUMBER, but with the following differences:\r\n * \r\n */\n\nvar PATTERN = '(?:' + _isValidCandidate.LEAD_CLASS + punctuation + ')' + leadLimit + digitSequence + '(?:' + punctuation + digitSequence + ')' + blockLimit + '(?:' + EXTN_PATTERNS_FOR_MATCHING + ')?'; // Regular expression of trailing characters that we want to remove.\n// We remove all characters that are not alpha or numerical characters.\n// The hash character is retained here, as it may signify\n// the previous block was an extension.\n//\n// // Don't know what does '&&' mean here.\n// const UNWANTED_END_CHAR_PATTERN = new RegExp(`[[\\\\P{N}&&\\\\P{L}]&&[^#]]+$`)\n//\n\nvar UNWANTED_END_CHAR_PATTERN = new RegExp(\"[^\".concat(_utf._pN).concat(_utf._pL, \"#]+$\"));\nvar NON_DIGITS_PATTERN = /(\\D+)/;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n/**\r\n * A stateful class that finds and extracts telephone numbers from {@linkplain CharSequence text}.\r\n * Instances can be created using the {@linkplain PhoneNumberUtil#findNumbers factory methods} in\r\n * {@link PhoneNumberUtil}.\r\n *\r\n *

Vanity numbers (phone numbers using alphabetic digits such as 1-800-SIX-FLAGS are\r\n * not found.\r\n *\r\n *

This class is not thread-safe.\r\n */\n\nvar PhoneNumberMatcher = /*#__PURE__*/function () {\n /**\r\n * @param {string} text — the character sequence that we will search, null for no text.\r\n * @param {'POSSIBLE'|'VALID'|'STRICT_GROUPING'|'EXACT_GROUPING'} [options.leniency] — The leniency to use when evaluating candidate phone numbers. See `source/findNumbers/Leniency.js` for more details.\r\n * @param {number} [options.maxTries] — The maximum number of invalid numbers to try before giving up on the text. This is to cover degenerate cases where the text has a lot of false positives in it. Must be >= 0.\r\n */\n function PhoneNumberMatcher() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var metadata = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, PhoneNumberMatcher);\n\n options = {\n v2: options.v2,\n defaultCallingCode: options.defaultCallingCode,\n defaultCountry: options.defaultCountry && (0, _metadata.isSupportedCountry)(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n leniency: options.leniency || (options.extended ? 'POSSIBLE' : 'VALID'),\n maxTries: options.maxTries || MAX_SAFE_INTEGER\n }; // Validate `leniency`.\n\n if (!options.leniency) {\n throw new TypeError('`leniency` is required');\n }\n\n if (options.leniency !== 'POSSIBLE' && options.leniency !== 'VALID') {\n throw new TypeError(\"Invalid `leniency`: \\\"\".concat(options.leniency, \"\\\". Supported values: \\\"POSSIBLE\\\", \\\"VALID\\\".\"));\n } // Validate `maxTries`.\n\n\n if (options.maxTries < 0) {\n throw new TypeError('`maxTries` must be `>= 0`');\n }\n\n this.text = text;\n this.options = options;\n this.metadata = metadata; // The degree of phone number validation.\n\n this.leniency = _Leniency[\"default\"][options.leniency];\n\n if (!this.leniency) {\n throw new TypeError(\"Unknown leniency: \\\"\".concat(options.leniency, \"\\\"\"));\n }\n /** The maximum number of retries after matching an invalid number. */\n\n\n this.maxTries = options.maxTries;\n this.PATTERN = new RegExp(PATTERN, 'ig');\n /** The iteration tristate. */\n\n this.state = 'NOT_READY';\n /** The next index to start searching at. Undefined in {@link State#DONE}. */\n\n this.searchIndex = 0; // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n // countries being used for the same doc with ~10 patterns for each country. Some pages will have\n // a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n // that use-case won't have a lot of benefit.\n\n this.regExpCache = new _RegExpCache[\"default\"](32);\n }\n /**\r\n * Attempts to find the next subsequence in the searched sequence on or after {@code searchIndex}\r\n * that represents a phone number. Returns the next match, null if none was found.\r\n *\r\n * @param index the search index to start searching at\r\n * @return the phone number match found, null if none can be found\r\n */\n\n\n _createClass(PhoneNumberMatcher, [{\n key: \"find\",\n value: function find() {\n // // Reset the regular expression.\n // this.PATTERN.lastIndex = index\n var matches;\n\n while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) {\n var candidate = matches[0];\n var offset = matches.index;\n candidate = (0, _parsePreCandidate[\"default\"])(candidate);\n\n if ((0, _isValidPreCandidate[\"default\"])(candidate, offset, this.text)) {\n var match = // Try to come up with a valid match given the entire candidate.\n this.parseAndVerify(candidate, offset, this.text) // If that failed, try to find an \"inner match\" -\n // there might be a phone number within this candidate.\n || this.extractInnerMatch(candidate, offset, this.text);\n\n if (match) {\n if (this.options.v2) {\n return {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n number: match.phoneNumber\n };\n } else {\n var phoneNumber = match.phoneNumber;\n var result = {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n phone: phoneNumber.nationalNumber\n };\n\n if (phoneNumber.country) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE && country === '001') {\n result.countryCallingCode = phoneNumber.countryCallingCode;\n } else {\n result.country = phoneNumber.country;\n }\n } else {\n result.countryCallingCode = phoneNumber.countryCallingCode;\n }\n\n if (phoneNumber.ext) {\n result.ext = phoneNumber.ext;\n }\n\n return result;\n }\n }\n }\n\n this.maxTries--;\n }\n }\n /**\r\n * Attempts to extract a match from `substring`\r\n * if the substring itself does not qualify as a match.\r\n */\n\n }, {\n key: \"extractInnerMatch\",\n value: function extractInnerMatch(substring, offset, text) {\n for (var _iterator = _createForOfIteratorHelperLoose(INNER_MATCHES), _step; !(_step = _iterator()).done;) {\n var innerMatchPattern = _step.value;\n var isFirstMatch = true;\n var candidateMatch = void 0;\n var innerMatchRegExp = new RegExp(innerMatchPattern, 'g');\n\n while (this.maxTries > 0 && (candidateMatch = innerMatchRegExp.exec(substring)) !== null) {\n if (isFirstMatch) {\n // We should handle any group before this one too.\n var _candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, substring.slice(0, candidateMatch.index));\n\n var _match = this.parseAndVerify(_candidate, offset, text);\n\n if (_match) {\n return _match;\n }\n\n this.maxTries--;\n isFirstMatch = false;\n }\n\n var candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, candidateMatch[1]); // Java code does `groupMatcher.start(1)` here,\n // but there's no way in javascript to get a `candidate` start index,\n // therefore resort to using this kind of an approximation.\n // (`groupMatcher` is called `candidateInSubstringMatch` in this javascript port)\n // https://stackoverflow.com/questions/15934353/get-index-of-each-capture-in-a-javascript-regex\n\n var candidateIndexGuess = substring.indexOf(candidate, candidateMatch.index);\n var match = this.parseAndVerify(candidate, offset + candidateIndexGuess, text);\n\n if (match) {\n return match;\n }\n\n this.maxTries--;\n }\n }\n }\n /**\r\n * Parses a phone number from the `candidate` using `parse` and\r\n * verifies it matches the requested `leniency`. If parsing and verification succeed,\r\n * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.\r\n *\r\n * @param candidate the candidate match\r\n * @param offset the offset of {@code candidate} within {@link #text}\r\n * @return the parsed and validated phone number match, or null\r\n */\n\n }, {\n key: \"parseAndVerify\",\n value: function parseAndVerify(candidate, offset, text) {\n if (!(0, _isValidCandidate[\"default\"])(candidate, offset, text, this.options.leniency)) {\n return;\n }\n\n var phoneNumber = (0, _parsePhoneNumber[\"default\"])(candidate, {\n extended: true,\n defaultCountry: this.options.defaultCountry,\n defaultCallingCode: this.options.defaultCallingCode\n }, this.metadata);\n\n if (!phoneNumber) {\n return;\n }\n\n if (!phoneNumber.isPossible()) {\n return;\n }\n\n if (this.leniency(phoneNumber, {\n candidate: candidate,\n defaultCountry: this.options.defaultCountry,\n metadata: this.metadata,\n regExpCache: this.regExpCache\n })) {\n return {\n startsAt: offset,\n endsAt: offset + candidate.length,\n phoneNumber: phoneNumber\n };\n }\n }\n }, {\n key: \"hasNext\",\n value: function hasNext() {\n if (this.state === 'NOT_READY') {\n this.lastMatch = this.find(); // (this.searchIndex)\n\n if (this.lastMatch) {\n // this.searchIndex = this.lastMatch.endsAt\n this.state = 'READY';\n } else {\n this.state = 'DONE';\n }\n }\n\n return this.state === 'READY';\n }\n }, {\n key: \"next\",\n value: function next() {\n // Check the state and find the next match as a side-effect if necessary.\n if (!this.hasNext()) {\n throw new Error('No next element');\n } // Don't retain that memory any longer than necessary.\n\n\n var result = this.lastMatch;\n this.lastMatch = null;\n this.state = 'NOT_READY';\n return result;\n }\n }]);\n\n return PhoneNumberMatcher;\n}();\n\nexports[\"default\"] = PhoneNumberMatcher;\n//# sourceMappingURL=PhoneNumberMatcher.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WHITESPACE = exports.VALID_PUNCTUATION = exports.VALID_DIGITS = exports.PLUS_CHARS = exports.MIN_LENGTH_FOR_NSN = exports.MAX_LENGTH_FOR_NSN = exports.MAX_LENGTH_COUNTRY_CODE = void 0;\n// The minimum length of the national significant number.\nvar MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexports.MIN_LENGTH_FOR_NSN = MIN_LENGTH_FOR_NSN;\nvar MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexports.MAX_LENGTH_FOR_NSN = MAX_LENGTH_FOR_NSN;\nvar MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexports.MAX_LENGTH_COUNTRY_CODE = MAX_LENGTH_COUNTRY_CODE;\nvar VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nexports.VALID_DIGITS = VALID_DIGITS;\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nvar WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nexports.WHITESPACE = WHITESPACE;\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nvar VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexports.VALID_PUNCTUATION = VALID_PUNCTUATION;\nvar PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n\nexports.PLUS_CHARS = PLUS_CHARS;\n//# sourceMappingURL=constants.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://medium.com/dsinjs/implementing-lru-cache-in-javascript-94ba6755cda9\nvar Node = /*#__PURE__*/_createClass(function Node(key, value) {\n var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var prev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, Node);\n\n this.key = key;\n this.value = value;\n this.next = next;\n this.prev = prev;\n});\n\nvar LRUCache = /*#__PURE__*/function () {\n //set default limit of 10 if limit is not passed.\n function LRUCache() {\n var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n\n _classCallCheck(this, LRUCache);\n\n this.size = 0;\n this.limit = limit;\n this.head = null;\n this.tail = null;\n this.cache = {};\n } // Write Node to head of LinkedList\n // update cache with Node key and Node reference\n\n\n _createClass(LRUCache, [{\n key: \"put\",\n value: function put(key, value) {\n this.ensureLimit();\n\n if (!this.head) {\n this.head = this.tail = new Node(key, value);\n } else {\n var node = new Node(key, value, this.head);\n this.head.prev = node;\n this.head = node;\n } //Update the cache map\n\n\n this.cache[key] = this.head;\n this.size++;\n } // Read from cache map and make that node as new Head of LinkedList\n\n }, {\n key: \"get\",\n value: function get(key) {\n if (this.cache[key]) {\n var value = this.cache[key].value; // node removed from it's position and cache\n\n this.remove(key); // write node again to the head of LinkedList to make it most recently used\n\n this.put(key, value);\n return value;\n }\n\n console.log(\"Item not available in cache for key \".concat(key));\n }\n }, {\n key: \"ensureLimit\",\n value: function ensureLimit() {\n if (this.size === this.limit) {\n this.remove(this.tail.key);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(key) {\n var node = this.cache[key];\n\n if (node.prev !== null) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n\n if (node.next !== null) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n\n delete this.cache[key];\n this.size--;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = null;\n this.tail = null;\n this.size = 0;\n this.cache = {};\n } // // Invokes the callback function with every node of the chain and the index of the node.\n // forEach(fn) {\n // let node = this.head;\n // let counter = 0;\n // while (node) {\n // fn(node, counter);\n // node = node.next;\n // counter++;\n // }\n // }\n // // To iterate over LRU with a 'for...of' loop\n // *[Symbol.iterator]() {\n // let node = this.head;\n // while (node) {\n // yield node;\n // node = node.next;\n // }\n // }\n\n }]);\n\n return LRUCache;\n}();\n\nexports[\"default\"] = LRUCache;\n//# sourceMappingURL=LRUCache.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.containsMoreThanOneSlashInNationalNumber = containsMoreThanOneSlashInNationalNumber;\nexports[\"default\"] = void 0;\n\nvar _isValid = _interopRequireDefault(require(\"../isValid.js\"));\n\nvar _parseDigits = _interopRequireDefault(require(\"../helpers/parseDigits.js\"));\n\nvar _matchPhoneNumberStringAgainstPhoneNumber = _interopRequireDefault(require(\"./matchPhoneNumberStringAgainstPhoneNumber.js\"));\n\nvar _metadata2 = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"../helpers/getCountryByCallingCode.js\"));\n\nvar _format = require(\"../format.js\");\n\nvar _util = require(\"./util.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Leniency when finding potential phone numbers in text segments\r\n * The levels here are ordered in increasing strictness.\r\n */\nvar _default = {\n /**\r\n * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\r\n */\n POSSIBLE: function POSSIBLE(phoneNumber, _ref) {\n var candidate = _ref.candidate,\n metadata = _ref.metadata;\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"possible\" and \"valid\".\r\n * Numbers written in national format must have their national-prefix\r\n * present if it is usually written for a number of this type.\r\n */\n VALID: function VALID(phoneNumber, _ref2) {\n var candidate = _ref2.candidate,\n defaultCountry = _ref2.defaultCountry,\n metadata = _ref2.metadata;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata)) {\n return false;\n } // Skipped for simplicity.\n // return isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n\n\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"valid\" and\r\n * are grouped in a possible way for this locale. For example, a US number written as\r\n * \"65 02 53 00 00\" and \"650253 0000\" are not accepted at this leniency level, whereas\r\n * \"650 253 0000\", \"650 2530000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol in the national significant number\r\n * are also dropped at this level.\r\n *\r\n * Warning: This level might result in lower coverage especially for regions outside of\r\n * country code \"+1\". If you are not sure about which level to use,\r\n * email the discussion group libphonenumber-discuss@googlegroups.com.\r\n */\n STRICT_GROUPING: function STRICT_GROUPING(phoneNumber, _ref3) {\n var candidate = _ref3.candidate,\n defaultCountry = _ref3.defaultCountry,\n metadata = _ref3.metadata,\n regExpCache = _ref3.regExpCache;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n defaultCountry: defaultCountry,\n metadata: metadata\n })) {\n return false;\n }\n\n return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsRemainGrouped, regExpCache);\n },\n\n /**\r\n * Phone numbers accepted are \"valid\" and are grouped in the same way\r\n * that we would have formatted it, or as a single block.\r\n * For example, a US number written as \"650 2530000\" is not accepted\r\n * at this leniency level, whereas \"650 253 0000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol are also dropped at this level.\r\n *\r\n * Warning: This level might result in lower coverage especially for regions outside of\r\n * country code \"+1\". If you are not sure about which level to use, email the discussion group\r\n * libphonenumber-discuss@googlegroups.com.\r\n */\n EXACT_GROUPING: function EXACT_GROUPING(phoneNumber, _ref4) {\n var candidate = _ref4.candidate,\n defaultCountry = _ref4.defaultCountry,\n metadata = _ref4.metadata,\n regExpCache = _ref4.regExpCache;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n defaultCountry: defaultCountry,\n metadata: metadata\n })) {\n return false;\n }\n\n return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsAreExactlyPresent, regExpCache);\n }\n};\nexports[\"default\"] = _default;\n\nfunction containsOnlyValidXChars(phoneNumber, candidate, metadata) {\n // The characters 'x' and 'X' can be (1) a carrier code, in which case they always precede the\n // national significant number or (2) an extension sign, in which case they always precede the\n // extension number. We assume a carrier code is more than 1 digit, so the first case has to\n // have more than 1 consecutive 'x' or 'X', whereas the second case can only have exactly 1 'x'\n // or 'X'. We ignore the character if it appears as the last character of the string.\n for (var index = 0; index < candidate.length - 1; index++) {\n var charAtIndex = candidate.charAt(index);\n\n if (charAtIndex === 'x' || charAtIndex === 'X') {\n var charAtNextIndex = candidate.charAt(index + 1);\n\n if (charAtNextIndex === 'x' || charAtNextIndex === 'X') {\n // This is the carrier code case, in which the 'X's always precede the national\n // significant number.\n index++;\n\n if ((0, _matchPhoneNumberStringAgainstPhoneNumber[\"default\"])(candidate.substring(index), phoneNumber, metadata) !== 'NSN_MATCH') {\n return false;\n } // This is the extension sign case, in which the 'x' or 'X' should always precede the\n // extension number.\n\n } else {\n var ext = (0, _parseDigits[\"default\"])(candidate.substring(index));\n\n if (ext) {\n if (phoneNumber.ext !== ext) {\n return false;\n }\n } else {\n if (phoneNumber.ext) {\n return false;\n }\n }\n }\n }\n }\n\n return true;\n}\n\nfunction isNationalPrefixPresentIfRequired(phoneNumber, _ref5) {\n var defaultCountry = _ref5.defaultCountry,\n _metadata = _ref5.metadata;\n\n // First, check how we deduced the country code. If it was written in international format, then\n // the national prefix is not required.\n if (phoneNumber.__countryCallingCodeSource !== 'FROM_DEFAULT_COUNTRY') {\n return true;\n }\n\n var metadata = new _metadata2[\"default\"](_metadata);\n metadata.selectNumberingPlan(phoneNumber.countryCallingCode);\n var phoneNumberRegion = phoneNumber.country || (0, _getCountryByCallingCode[\"default\"])(phoneNumber.countryCallingCode, {\n nationalNumber: phoneNumber.nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n }); // Check if a national prefix should be present when formatting this number.\n\n var nationalNumber = phoneNumber.nationalNumber;\n var format = (0, _format.chooseFormatForNumber)(metadata.numberingPlan.formats(), nationalNumber); // To do this, we check that a national prefix formatting rule was present\n // and that it wasn't just the first-group symbol ($1) with punctuation.\n\n if (format.nationalPrefixFormattingRule()) {\n if (metadata.numberingPlan.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n // The national-prefix is optional in these cases, so we don't need to check if it was present.\n return true;\n }\n\n if (!format.usesNationalPrefix()) {\n // National Prefix not needed for this number.\n return true;\n }\n\n return Boolean(phoneNumber.nationalPrefix);\n }\n\n return true;\n}\n\nfunction containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) {\n var firstSlashInBodyIndex = candidate.indexOf('/');\n\n if (firstSlashInBodyIndex < 0) {\n // No slashes, this is okay.\n return false;\n } // Now look for a second one.\n\n\n var secondSlashInBodyIndex = candidate.indexOf('/', firstSlashInBodyIndex + 1);\n\n if (secondSlashInBodyIndex < 0) {\n // Only one slash, this is okay.\n return false;\n } // If the first slash is after the country calling code, this is permitted.\n\n\n var candidateHasCountryCode = phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITH_PLUS_SIGN' || phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITHOUT_PLUS_SIGN';\n\n if (candidateHasCountryCode && (0, _parseDigits[\"default\"])(candidate.substring(0, firstSlashInBodyIndex)) === phoneNumber.countryCallingCode) {\n // Any more slashes and this is illegal.\n return candidate.slice(secondSlashInBodyIndex + 1).indexOf('/') >= 0;\n }\n\n return true;\n}\n\nfunction checkNumberGroupingIsValid(number, candidate, metadata, checkGroups, regExpCache) {\n throw new Error('This part of code hasn\\'t been ported');\n var normalizedCandidate = normalizeDigits(candidate, true\n /* keep non-digits */\n );\n var formattedNumberGroups = getNationalNumberGroups(metadata, number, null);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n } // If this didn't pass, see if there are any alternate formats that match, and try them instead.\n\n\n var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode());\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n\n if (alternateFormats) {\n for (var _iterator = _createForOfIteratorHelperLoose(alternateFormats.numberFormats()), _step; !(_step = _iterator()).done;) {\n var alternateFormat = _step.value;\n\n if (alternateFormat.leadingDigitsPatterns().length > 0) {\n // There is only one leading digits pattern for alternate formats.\n var leadingDigitsRegExp = regExpCache.getPatternForRegExp('^' + alternateFormat.leadingDigitsPatterns()[0]);\n\n if (!leadingDigitsRegExp.test(nationalSignificantNumber)) {\n // Leading digits don't match; try another one.\n continue;\n }\n }\n\n formattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\r\n * Helper method to get the national-number part of a number, formatted without any national\r\n * prefix, and return it as a set of digit blocks that would be formatted together following\r\n * standard formatting rules.\r\n */\n\n\nfunction getNationalNumberGroups(metadata, number, formattingPattern) {\n throw new Error('This part of code hasn\\'t been ported');\n\n if (formattingPattern) {\n // We format the NSN only, and split that according to the separator.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return util.formatNsnUsingPattern(nationalSignificantNumber, formattingPattern, 'RFC3966', metadata).split('-');\n } // This will be in the format +CC-DG1-DG2-DGX;ext=EXT where DG1..DGX represents groups of digits.\n\n\n var rfc3966Format = formatNumber(number, 'RFC3966', metadata); // We remove the extension part from the formatted string before splitting it into different\n // groups.\n\n var endIndex = rfc3966Format.indexOf(';');\n\n if (endIndex < 0) {\n endIndex = rfc3966Format.length;\n } // The country-code will have a '-' following it.\n\n\n var startIndex = rfc3966Format.indexOf('-') + 1;\n return rfc3966Format.slice(startIndex, endIndex).split('-');\n}\n\nfunction allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) {\n throw new Error('This part of code hasn\\'t been ported');\n var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN); // Set this to the last group, skipping it if the number has an extension.\n\n var candidateNumberGroupIndex = number.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1; // First we check if the national significant number is formatted as a block.\n // We use contains and not equals, since the national significant number may be present with\n // a prefix such as a national number prefix, or the country code itself.\n\n if (candidateGroups.length == 1 || candidateGroups[candidateNumberGroupIndex].contains(util.getNationalSignificantNumber(number))) {\n return true;\n } // Starting from the end, go through in reverse, excluding the first group, and check the\n // candidate and number groups are the same.\n\n\n var formattedNumberGroupIndex = formattedNumberGroups.length - 1;\n\n while (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0) {\n if (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex]) {\n return false;\n }\n\n formattedNumberGroupIndex--;\n candidateNumberGroupIndex--;\n } // Now check the first group. There may be a national prefix at the start, so we only check\n // that the candidate group ends with the formatted number group.\n\n\n return candidateNumberGroupIndex >= 0 && (0, _util.endsWith)(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]);\n}\n\nfunction allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) {\n throw new Error('This part of code hasn\\'t been ported');\n var fromIndex = 0;\n\n if (number.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY) {\n // First skip the country code if the normalized candidate contained it.\n var countryCode = String(number.getCountryCode());\n fromIndex = normalizedCandidate.indexOf(countryCode) + countryCode.length();\n } // Check each group of consecutive digits are not broken into separate groupings in the\n // {@code normalizedCandidate} string.\n\n\n for (var i = 0; i < formattedNumberGroups.length; i++) {\n // Fails if the substring of {@code normalizedCandidate} starting from {@code fromIndex}\n // doesn't contain the consecutive digits in formattedNumberGroups[i].\n fromIndex = normalizedCandidate.indexOf(formattedNumberGroups[i], fromIndex);\n\n if (fromIndex < 0) {\n return false;\n } // Moves {@code fromIndex} forward.\n\n\n fromIndex += formattedNumberGroups[i].length();\n\n if (i == 0 && fromIndex < normalizedCandidate.length()) {\n // We are at the position right after the NDC. We get the region used for formatting\n // information based on the country code in the phone number, rather than the number itself,\n // as we do not need to distinguish between different countries with the same country\n // calling code and this is faster.\n var region = util.getRegionCodeForCountryCode(number.getCountryCode());\n\n if (util.getNddPrefixForRegion(region, true) != null && Character.isDigit(normalizedCandidate.charAt(fromIndex))) {\n // This means there is no formatting symbol after the NDC. In this case, we only\n // accept the number if there is no formatting symbol at all in the number, except\n // for extensions. This is only important for countries with national prefixes.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return (0, _util.startsWith)(normalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length), nationalSignificantNumber);\n }\n }\n } // The check here makes sure that we haven't mistakenly already used the extension to\n // match the last group of the subscriber number. Note the extension cannot have\n // formatting in-between digits.\n\n\n return normalizedCandidate.slice(fromIndex).contains(number.getExtension());\n}\n//# sourceMappingURL=Leniency.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _LRUCache = _interopRequireDefault(require(\"./LRUCache.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n// countries being used for the same doc with ~10 patterns for each country. Some pages will have\n// a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n// that use-case won't have a lot of benefit.\nvar RegExpCache = /*#__PURE__*/function () {\n function RegExpCache(size) {\n _classCallCheck(this, RegExpCache);\n\n this.cache = new _LRUCache[\"default\"](size);\n }\n\n _createClass(RegExpCache, [{\n key: \"getPatternForRegExp\",\n value: function getPatternForRegExp(pattern) {\n var regExp = this.cache.get(pattern);\n\n if (!regExp) {\n regExp = new RegExp('^' + pattern);\n this.cache.put(pattern, regExp);\n }\n\n return regExp;\n }\n }]);\n\n return RegExpCache;\n}();\n\nexports[\"default\"] = RegExpCache;\n//# sourceMappingURL=RegExpCache.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEAD_CLASS = void 0;\nexports[\"default\"] = isValidCandidate;\n\nvar _constants = require(\"../constants.js\");\n\nvar _util = require(\"./util.js\");\n\nvar _utf = require(\"./utf-8.js\");\n\n// Copy-pasted from `PhoneNumberMatcher.js`.\nvar OPENING_PARENS = \"(\\\\[\\uFF08\\uFF3B\";\nvar CLOSING_PARENS = \")\\\\]\\uFF09\\uFF3D\";\nvar NON_PARENS = \"[^\".concat(OPENING_PARENS).concat(CLOSING_PARENS, \"]\");\nvar LEAD_CLASS = \"[\".concat(OPENING_PARENS).concat(_constants.PLUS_CHARS, \"]\"); // Punctuation that may be at the start of a phone number - brackets and plus signs.\n\nexports.LEAD_CLASS = LEAD_CLASS;\nvar LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS); // Limit on the number of pairs of brackets in a phone number.\n\nvar BRACKET_PAIR_LIMIT = (0, _util.limit)(0, 3);\n/**\r\n * Pattern to check that brackets match. Opening brackets should be closed within a phone number.\r\n * This also checks that there is something inside the brackets. Having no brackets at all is also\r\n * fine.\r\n *\r\n * An opening bracket at the beginning may not be closed, but subsequent ones should be. It's\r\n * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a\r\n * closing bracket first. We limit the sets of brackets in a phone number to four.\r\n */\n\nvar MATCHING_BRACKETS_ENTIRE = new RegExp('^' + \"(?:[\" + OPENING_PARENS + \"])?\" + \"(?:\" + NON_PARENS + \"+\" + \"[\" + CLOSING_PARENS + \"])?\" + NON_PARENS + \"+\" + \"(?:[\" + OPENING_PARENS + \"]\" + NON_PARENS + \"+[\" + CLOSING_PARENS + \"])\" + BRACKET_PAIR_LIMIT + NON_PARENS + \"*\" + '$');\n/**\r\n * Matches strings that look like publication pages. Example:\r\n *

Computing Complete Answers to Queries in the Presence of Limited Access Patterns.\r\n * Chen Li. VLDB J. 12(3): 211-227 (2003).
\r\n *\r\n * The string \"211-227 (2003)\" is not a telephone number.\r\n */\n\nvar PUB_PAGES = /\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}/;\n\nfunction isValidCandidate(candidate, offset, text, leniency) {\n // Check the candidate doesn't contain any formatting\n // which would indicate that it really isn't a phone number.\n if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n return;\n } // If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n // by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n\n\n if (leniency !== 'POSSIBLE') {\n // If the candidate is not at the start of the text,\n // and does not start with phone-number punctuation,\n // check the previous character.\n if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {\n var previousChar = text[offset - 1]; // We return null if it is a latin letter or an invalid punctuation symbol.\n\n if ((0, _utf.isInvalidPunctuationSymbol)(previousChar) || (0, _utf.isLatinLetter)(previousChar)) {\n return false;\n }\n }\n\n var lastCharIndex = offset + candidate.length;\n\n if (lastCharIndex < text.length) {\n var nextChar = text[lastCharIndex];\n\n if ((0, _utf.isInvalidPunctuationSymbol)(nextChar) || (0, _utf.isLatinLetter)(nextChar)) {\n return false;\n }\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidCandidate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidPreCandidate;\n// Matches strings that look like dates using \"/\" as a separator.\n// Examples: 3/10/2011, 31/10/96 or 08/31/95.\nvar SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\\d\\/[01]?\\d)|(?:[01]?\\d\\/[0-3]?\\d))\\/(?:[12]\\d)?\\d{2}/; // Matches timestamps.\n// Examples: \"2012-01-02 08:00\".\n// Note that the reg-ex does not include the\n// trailing \":\\d\\d\" -- that is covered by TIME_STAMPS_SUFFIX.\n\nvar TIME_STAMPS = /[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$/;\nvar TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\\d/;\n\nfunction isValidPreCandidate(candidate, offset, text) {\n // Skip a match that is more likely to be a date.\n if (SLASH_SEPARATED_DATES.test(candidate)) {\n return false;\n } // Skip potential time-stamps.\n\n\n if (TIME_STAMPS.test(candidate)) {\n var followingText = text.slice(offset + candidate.length);\n\n if (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n return false;\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidPreCandidate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = matchPhoneNumberStringAgainstPhoneNumber;\n\nvar _parsePhoneNumber = _interopRequireDefault(require(\"../parsePhoneNumber.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Matches a phone number object against a phone number string.\r\n * @param {string} phoneNumberString\r\n * @param {PhoneNumber} phoneNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {'INVALID_NUMBER'|'NO_MATCH'|'SHORT_NSN_MATCH'|'NSN_MATCH'|'EXACT_MATCH'}\r\n */\nfunction matchPhoneNumberStringAgainstPhoneNumber(phoneNumberString, phoneNumber, metadata) {\n // Parse `phoneNumberString`.\n var phoneNumberStringContainsCallingCode = true;\n var parsedPhoneNumber = (0, _parsePhoneNumber[\"default\"])(phoneNumberString, metadata);\n\n if (!parsedPhoneNumber) {\n // If `phoneNumberString` didn't contain a country calling code\n // then substitute it with the `phoneNumber`'s country calling code.\n phoneNumberStringContainsCallingCode = false;\n parsedPhoneNumber = (0, _parsePhoneNumber[\"default\"])(phoneNumberString, {\n defaultCallingCode: phoneNumber.countryCallingCode\n }, metadata);\n }\n\n if (!parsedPhoneNumber) {\n return 'INVALID_NUMBER';\n } // Check that the extensions match.\n\n\n if (phoneNumber.ext) {\n if (parsedPhoneNumber.ext !== phoneNumber.ext) {\n return 'NO_MATCH';\n }\n } else {\n if (parsedPhoneNumber.ext) {\n return 'NO_MATCH';\n }\n } // Check that country calling codes match.\n\n\n if (phoneNumberStringContainsCallingCode) {\n if (phoneNumber.countryCallingCode !== parsedPhoneNumber.countryCallingCode) {\n return 'NO_MATCH';\n }\n } // Check if the whole numbers match.\n\n\n if (phoneNumber.number === parsedPhoneNumber.number) {\n if (phoneNumberStringContainsCallingCode) {\n return 'EXACT_MATCH';\n } else {\n return 'NSN_MATCH';\n }\n } // Check if one national number is a \"suffix\" of the other.\n\n\n if (phoneNumber.nationalNumber.indexOf(parsedPhoneNumber.nationalNumber) === 0 || parsedPhoneNumber.nationalNumber.indexOf(phoneNumber.nationalNumber) === 0) {\n // \"A SHORT_NSN_MATCH occurs if there is a difference because of the\n // presence or absence of an 'Italian leading zero', the presence or\n // absence of an extension, or one NSN being a shorter variant of the\n // other.\"\n return 'SHORT_NSN_MATCH';\n }\n\n return 'NO_MATCH';\n}\n//# sourceMappingURL=matchPhoneNumberStringAgainstPhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parsePreCandidate;\n\nvar _util = require(\"./util.js\");\n\n// Regular expression of characters typically used to start a second phone number for the purposes\n// of parsing. This allows us to strip off parts of the number that are actually the start of\n// another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this\n// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second\n// extension so that the first number is parsed correctly.\n//\n// Matches a slash (\\ or /) followed by a space followed by an `x`.\n//\nvar SECOND_NUMBER_START_PATTERN = /[\\\\/] *x/;\n\nfunction parsePreCandidate(candidate) {\n // Check for extra numbers at the end.\n // TODO: This is the place to start when trying to support extraction of multiple phone number\n // from split notations (+41 79 123 45 67 / 68).\n return (0, _util.trimAfterFirstMatch)(SECOND_NUMBER_START_PATTERN, candidate);\n}\n//# sourceMappingURL=parsePreCandidate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._pN = exports._pL = exports.PZ = void 0;\nexports.isInvalidPunctuationSymbol = isInvalidPunctuationSymbol;\nexports.isLatinLetter = isLatinLetter;\nexports.pZ = exports.pNd = void 0;\n// Javascript doesn't support UTF-8 regular expressions.\n// So mimicking them here.\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\n/**\r\n * \"\\p{Z}\" is any kind of whitespace or invisible separator (\"Separator\").\r\n * http://www.regular-expressions.info/unicode.html\r\n * \"\\P{Z}\" is the reverse of \"\\p{Z}\".\r\n * \"\\p{N}\" is any kind of numeric character in any script (\"Number\").\r\n * \"\\p{Nd}\" is a digit zero through nine in any script except \"ideographic scripts\" (\"Decimal_Digit_Number\").\r\n * \"\\p{Sc}\" is a currency symbol (\"Currency_Symbol\").\r\n * \"\\p{L}\" is any kind of letter from any language (\"Letter\").\r\n * \"\\p{Mn}\" is \"non-spacing mark\".\r\n *\r\n * Javascript doesn't support Unicode Regular Expressions\r\n * so substituting it with this explicit set of characters.\r\n *\r\n * https://stackoverflow.com/questions/13210194/javascript-regex-equivalent-of-a-za-z-using-pl\r\n * https://github.com/danielberndt/babel-plugin-utf-8-regex/blob/master/src/transformer.js\r\n */\nvar _pZ = \" \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\";\nvar pZ = \"[\".concat(_pZ, \"]\");\nexports.pZ = pZ;\nvar PZ = \"[^\".concat(_pZ, \"]\");\nexports.PZ = PZ;\nvar _pN = \"0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\"; // const pN = `[${_pN}]`\n\nexports._pN = _pN;\nvar _pNd = \"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\";\nvar pNd = \"[\".concat(_pNd, \"]\");\nexports.pNd = pNd;\nvar _pL = \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\nexports._pL = _pL;\nvar pL = \"[\".concat(_pL, \"]\");\nvar pL_regexp = new RegExp(pL);\nvar _pSc = \"$\\xA2-\\xA5\\u058F\\u060B\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20B9\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6\";\nvar pSc = \"[\".concat(_pSc, \"]\");\nvar pSc_regexp = new RegExp(pSc);\nvar _pMn = \"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26\";\nvar pMn = \"[\".concat(_pMn, \"]\");\nvar pMn_regexp = new RegExp(pMn);\nvar _InBasic_Latin = \"\\0-\\x7F\";\nvar _InLatin_1_Supplement = \"\\x80-\\xFF\";\nvar _InLatin_Extended_A = \"\\u0100-\\u017F\";\nvar _InLatin_Extended_Additional = \"\\u1E00-\\u1EFF\";\nvar _InLatin_Extended_B = \"\\u0180-\\u024F\";\nvar _InCombining_Diacritical_Marks = \"\\u0300-\\u036F\";\nvar latinLetterRegexp = new RegExp('[' + _InBasic_Latin + _InLatin_1_Supplement + _InLatin_Extended_A + _InLatin_Extended_Additional + _InLatin_Extended_B + _InCombining_Diacritical_Marks + ']');\n/**\r\n * Helper method to determine if a character is a Latin-script letter or not.\r\n * For our purposes, combining marks should also return true since we assume\r\n * they have been added to a preceding Latin character.\r\n */\n\nfunction isLatinLetter(letter) {\n // Combining marks are a subset of non-spacing-mark.\n if (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) {\n return false;\n }\n\n return latinLetterRegexp.test(letter);\n}\n\nfunction isInvalidPunctuationSymbol(character) {\n return character === '%' || pSc_regexp.test(character);\n}\n//# sourceMappingURL=utf-8.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.endsWith = endsWith;\nexports.limit = limit;\nexports.startsWith = startsWith;\nexports.trimAfterFirstMatch = trimAfterFirstMatch;\n\n/** Returns a regular expression quantifier with an upper and lower limit. */\nfunction limit(lower, upper) {\n if (lower < 0 || upper <= 0 || upper < lower) {\n throw new TypeError();\n }\n\n return \"{\".concat(lower, \",\").concat(upper, \"}\");\n}\n/**\r\n * Trims away any characters after the first match of {@code pattern} in {@code candidate},\r\n * returning the trimmed version.\r\n */\n\n\nfunction trimAfterFirstMatch(regexp, string) {\n var index = string.search(regexp);\n\n if (index >= 0) {\n return string.slice(0, index);\n }\n\n return string;\n}\n\nfunction startsWith(string, substring) {\n return string.indexOf(substring) === 0;\n}\n\nfunction endsWith(string, substring) {\n return string.indexOf(substring, string.length - substring.length) === string.length - substring.length;\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = findPhoneNumbersInText;\n\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"./PhoneNumberMatcher.js\"));\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction findPhoneNumbersInText() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n var matcher = new _PhoneNumberMatcher[\"default\"](text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n var results = [];\n\n while (matcher.hasNext()) {\n results.push(matcher.next());\n }\n\n return results;\n}\n//# sourceMappingURL=findPhoneNumbersInText.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chooseFormatForNumber = chooseFormatForNumber;\nexports[\"default\"] = formatNumber;\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\n\nvar _formatNationalNumberUsingFormat = _interopRequireDefault(require(\"./helpers/formatNationalNumberUsingFormat.js\"));\n\nvar _metadata = _interopRequireWildcard(require(\"./metadata.js\"));\n\nvar _getIddPrefix = _interopRequireDefault(require(\"./helpers/getIddPrefix.js\"));\n\nvar _RFC = require(\"./helpers/RFC3966.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nfunction formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new _metadata[\"default\"](metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return (0, _RFC.formatRFC3966)({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return (0, _formatNationalNumberUsingFormat[\"default\"])(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if ((0, _matchesEntirely[\"default\"])(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = (0, _metadata.getCountryCallingCode)(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = (0, _getIddPrefix[\"default\"])(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = formatIncompletePhoneNumber;\n\nvar _AsYouType = _interopRequireDefault(require(\"./AsYouType.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\nfunction formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n if (!metadata) {\n metadata = optionsOrDefaultCountry;\n optionsOrDefaultCountry = undefined;\n }\n\n return new _AsYouType[\"default\"](optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getCountries;\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getCountries(metadata) {\n return new _metadata[\"default\"](metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _metadata.getCountryCallingCode;\n }\n});\n\nvar _metadata = require(\"./metadata.js\");\n//# sourceMappingURL=getCountryCallingCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getExampleNumber;\n\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new _PhoneNumber[\"default\"](country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatRFC3966 = formatRFC3966;\nexports.parseRFC3966 = parseRFC3966;\n\nvar _isViablePhoneNumber = _interopRequireDefault(require(\"./isViablePhoneNumber.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!(0, _isViablePhoneNumber[\"default\"])(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\n\nfunction formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = applyInternationalSeparatorStyle;\n\nvar _constants = require(\"../constants.js\");\n\n// Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\nfunction applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(_constants.VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkNumberLengthForType = checkNumberLengthForType;\nexports[\"default\"] = checkNumberLength;\n\nvar _mergeArrays = _interopRequireDefault(require(\"./mergeArrays.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\n\nfunction checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = (0, _mergeArrays[\"default\"])(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createExtensionPattern;\n\nvar _constants = require(\"../../constants.js\");\n\n// The RFC 3966 format for extensions.\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(_constants.VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nfunction createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractExtension;\n\nvar _createExtensionPattern = _interopRequireDefault(require(\"./createExtensionPattern.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\nvar EXTN_PATTERN = new RegExp('(?:' + (0, _createExtensionPattern[\"default\"])() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nfunction extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractCountryCallingCode;\n\nvar _stripIddPrefix = _interopRequireDefault(require(\"./stripIddPrefix.js\"));\n\nvar _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require(\"./extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js\"));\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _constants = require(\"../constants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\nfunction extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = (0, _stripIddPrefix[\"default\"])(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign[\"default\"])(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new _metadata[\"default\"](metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= _constants.MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign;\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\n\nvar _extractNationalNumber = _interopRequireDefault(require(\"./extractNationalNumber.js\"));\n\nvar _checkNumberLength = _interopRequireDefault(require(\"./checkNumberLength.js\"));\n\nvar _getCountryCallingCode = _interopRequireDefault(require(\"../getCountryCallingCode.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\nfunction extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? (0, _getCountryCallingCode[\"default\"])(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new _metadata[\"default\"](metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = (0, _extractNationalNumber[\"default\"])(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = (0, _extractNationalNumber[\"default\"])(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!(0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern()) && (0, _matchesEntirely[\"default\"])(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || (0, _checkNumberLength[\"default\"])(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri;\n\nvar _extractPhoneContext = _interopRequireWildcard(require(\"./extractPhoneContext.js\"));\n\nvar _ParseError = _interopRequireDefault(require(\"../ParseError.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\nfunction extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = (0, _extractPhoneContext[\"default\"])(numberToParse);\n\n if (!(0, _extractPhoneContext.isPhoneContextValid)(phoneContext)) {\n throw new _ParseError[\"default\"]('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === _extractPhoneContext.PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(_extractPhoneContext.RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + _extractPhoneContext.RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(_extractPhoneContext.RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(_extractPhoneContext.RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractNationalNumber;\n\nvar _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require(\"./extractNationalNumberFromPossiblyIncompleteNumber.js\"));\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\n\nvar _checkNumberLength = _interopRequireDefault(require(\"./checkNumberLength.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\nfunction extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if ((0, _matchesEntirely[\"default\"])(nationalNumberBefore, metadata.nationalNumberPattern()) && !(0, _matchesEntirely[\"default\"])(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch ((0, _checkNumberLength[\"default\"])(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = extractNationalNumberFromPossiblyIncompleteNumber;\n\n/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nfunction extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RFC3966_PREFIX_ = exports.RFC3966_PHONE_CONTEXT_ = exports.RFC3966_ISDN_SUBADDRESS_ = exports.PLUS_SIGN = void 0;\nexports[\"default\"] = extractPhoneContext;\nexports.isPhoneContextValid = isPhoneContextValid;\n\nvar _constants = require(\"../constants.js\");\n\n// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nvar PLUS_SIGN = '+';\nexports.PLUS_SIGN = PLUS_SIGN;\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + _constants.VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + _constants.VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = _constants.VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nvar RFC3966_PREFIX_ = 'tel:';\nexports.RFC3966_PREFIX_ = RFC3966_PREFIX_;\nvar RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexports.RFC3966_PHONE_CONTEXT_ = RFC3966_PHONE_CONTEXT_;\nvar RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexports.RFC3966_ISDN_SUBADDRESS_ = RFC3966_ISDN_SUBADDRESS_;\n\nfunction extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\n\nfunction isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FIRST_GROUP_PATTERN = void 0;\nexports[\"default\"] = formatNationalNumberUsingFormat;\n\nvar _applyInternationalSeparatorStyle = _interopRequireDefault(require(\"./applyInternationalSeparatorStyle.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\nvar FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexports.FIRST_GROUP_PATTERN = FIRST_GROUP_PATTERN;\n\nfunction formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return (0, _applyInternationalSeparatorStyle[\"default\"])(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getCountryByCallingCode;\n\nvar _getCountryByNationalNumber = _interopRequireDefault(require(\"./getCountryByNationalNumber.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nfunction getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return (0, _getCountryByNationalNumber[\"default\"])(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getCountryByNationalNumber;\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _getNumberType = _interopRequireDefault(require(\"./getNumberType.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new _metadata[\"default\"](metadata);\n var matchingCountries = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if ((0, _getNumberType[\"default\"])({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If the `defaultCountry` is among the `matchingCountries` then return it.\n if (defaultCountry) {\n if (country === defaultCountry) {\n return country;\n }\n\n matchingCountries.push(country);\n } else {\n return country;\n }\n }\n } // Return the first (\"main\") one of the `matchingCountries`.\n\n\n if (matchingCountries.length > 0) {\n return matchingCountries[0];\n }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getIddPrefix;\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nfunction getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new _metadata[\"default\"](metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getNumberType;\nexports.isNumberTypeEqualTo = isNumberTypeEqualTo;\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nfunction getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new _metadata[\"default\"](metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!(0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\n\nfunction isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return (0, _matchesEntirely[\"default\"])(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getPossibleCountriesForNumber;\n\nvar _metadata2 = _interopRequireDefault(require(\"../metadata.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\nfunction getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new _metadata2[\"default\"](metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new _metadata2[\"default\"](metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isObject;\nvar objectConstructor = {}.constructor;\n\nfunction isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VALID_PHONE_NUMBER_WITH_EXTENSION = exports.VALID_PHONE_NUMBER = void 0;\nexports[\"default\"] = isViablePhoneNumber;\nexports.isViablePhoneNumberStart = isViablePhoneNumberStart;\n\nvar _constants = require(\"../constants.js\");\n\nvar _createExtensionPattern = _interopRequireDefault(require(\"./extension/createExtensionPattern.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + _constants.VALID_DIGITS + ']{' + _constants.MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nvar VALID_PHONE_NUMBER = '[' + _constants.PLUS_CHARS + ']{0,1}' + '(?:' + '[' + _constants.VALID_PUNCTUATION + ']*' + '[' + _constants.VALID_DIGITS + ']' + '){3,}' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexports.VALID_PHONE_NUMBER = VALID_PHONE_NUMBER;\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + _constants.PLUS_CHARS + ']{0,1}' + '(?:' + '[' + _constants.VALID_PUNCTUATION + ']*' + '[' + _constants.VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nvar VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + (0, _createExtensionPattern[\"default\"])() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nexports.VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER_WITH_EXTENSION;\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nfunction isViablePhoneNumber(number) {\n return number.length >= _constants.MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\n\nfunction isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = matchesEntirely;\n\n/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nfunction matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = mergeArrays;\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nfunction mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DIGITS = void 0;\nexports[\"default\"] = parseDigits;\nexports.parseDigit = parseDigit;\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nvar DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexports.DIGITS = DIGITS;\n\nfunction parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\n\nfunction parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = stripIddPrefix;\n\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\n\nvar _constants = require(\"../constants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + _constants.VALID_DIGITS + '])');\n\nfunction stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new _metadata[\"default\"](metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPossiblePhoneNumber;\nexports.isPossibleNumber = isPossibleNumber;\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\nfunction isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new _metadata[\"default\"](metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\n\nfunction isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch ((0, _checkNumberLength[\"default\"])(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPossiblePhoneNumber;\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction isPossiblePhoneNumber() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n return phoneNumber && phoneNumber.isPossible() || false;\n}\n//# sourceMappingURL=isPossiblePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidNumber;\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\n\nvar _getNumberType = _interopRequireDefault(require(\"./helpers/getNumberType.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\nfunction isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new _metadata[\"default\"](metadata);\n /**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return (0, _getNumberType[\"default\"])(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return (0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidPhoneNumber;\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction isValidPhoneNumber() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = findNumbers;\n\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"../PhoneNumberMatcher.js\"));\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"../normalizeArguments.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction findNumbers() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n var matcher = new _PhoneNumberMatcher[\"default\"](text, options, metadata);\n var results = [];\n\n while (matcher.hasNext()) {\n results.push(matcher.next());\n }\n\n return results;\n}\n//# sourceMappingURL=findNumbers.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = searchNumbers;\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"../normalizeArguments.js\"));\n\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"../PhoneNumberMatcher.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\nfunction searchNumbers() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n var matcher = new _PhoneNumberMatcher[\"default\"](text, options, metadata);\n return _defineProperty({}, Symbol.iterator, function () {\n return {\n next: function next() {\n if (matcher.hasNext()) {\n return {\n done: false,\n value: matcher.next()\n };\n }\n\n return {\n done: true\n };\n }\n };\n });\n}\n//# sourceMappingURL=searchNumbers.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nexports.getCountryCallingCode = getCountryCallingCode;\nexports.getExtPrefix = getExtPrefix;\nexports.isSupportedCountry = isSupportedCountry;\nexports.validateMetadata = validateMetadata;\n\nvar _semverCompare = _interopRequireDefault(require(\"./tools/semver-compare.js\"));\n\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexports[\"default\"] = Metadata;\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nfunction validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!(0, _isObject[\"default\"])(metadata) || !(0, _isObject[\"default\"])(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat((0, _isObject[\"default\"])(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nfunction getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\n\nfunction getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\n\nfunction isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if ((0, _semverCompare[\"default\"])(version, V3) === -1) {\n this.v2 = true;\n } else if ((0, _semverCompare[\"default\"])(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = normalizeArguments;\n\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n// Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\nfunction normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if ((0, _isObject[\"default\"])(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parse;\n\nvar _constants = require(\"./constants.js\");\n\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _isViablePhoneNumber = _interopRequireWildcard(require(\"./helpers/isViablePhoneNumber.js\"));\n\nvar _extractExtension = _interopRequireDefault(require(\"./helpers/extension/extractExtension.js\"));\n\nvar _parseIncompletePhoneNumber = _interopRequireDefault(require(\"./parseIncompletePhoneNumber.js\"));\n\nvar _getCountryCallingCode = _interopRequireDefault(require(\"./getCountryCallingCode.js\"));\n\nvar _isPossible = require(\"./isPossible.js\");\n\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\n\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\n\nvar _extractCountryCallingCode = _interopRequireDefault(require(\"./helpers/extractCountryCallingCode.js\"));\n\nvar _extractNationalNumber = _interopRequireDefault(require(\"./helpers/extractNationalNumber.js\"));\n\nvar _stripIddPrefix = _interopRequireDefault(require(\"./helpers/stripIddPrefix.js\"));\n\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"./helpers/getCountryByCallingCode.js\"));\n\nvar _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri = _interopRequireDefault(require(\"./helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\n// import { parseRFC3966 } from './helpers/RFC3966.js'\n// We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + _constants.PLUS_CHARS + _constants.VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + _constants.VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nfunction parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new _metadata[\"default\"](metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new _ParseError[\"default\"]('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new _ParseError[\"default\"]('TOO_SHORT');\n }\n\n throw new _ParseError[\"default\"]('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new _ParseError[\"default\"]('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < _constants.MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new _ParseError[\"default\"]('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > _constants.MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new _ParseError[\"default\"]('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new _PhoneNumber[\"default\"](countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? (0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && (0, _isPossible.isPossibleNumber)(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new _ParseError[\"default\"]('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = (0, _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri[\"default\"])(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!(0, _isViablePhoneNumber[\"default\"])(number)) {\n if ((0, _isViablePhoneNumber.isViablePhoneNumberStart)(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = (0, _extractExtension[\"default\"])(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = (0, _extractCountryCallingCode[\"default\"])((0, _parseIncompletePhoneNumber[\"default\"])(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || (0, _getCountryCallingCode[\"default\"])(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = (0, _extractNationalNumber[\"default\"])((0, _parseIncompletePhoneNumber[\"default\"])(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = (0, _getCountryByCallingCode[\"default\"])(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parseIncompletePhoneNumber;\nexports.parsePhoneNumberCharacter = parsePhoneNumberCharacter;\n\nvar _parseDigits = require(\"./helpers/parseDigits.js\");\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\nfunction parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\n\nfunction parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return (0, _parseDigits.parseDigit)(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parsePhoneNumber;\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction parsePhoneNumber() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parsePhoneNumberWithError;\n\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction parsePhoneNumberWithError() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parsePhoneNumberWithError;\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction parsePhoneNumberWithError(text, options, metadata) {\n return (0, _parse[\"default\"])(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parsePhoneNumber;\n\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\n\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\n\nvar _metadata = require(\"./metadata.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !(0, _metadata.isSupportedCountry)(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof _ParseError[\"default\"]) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = searchPhoneNumbersInText;\n\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"./PhoneNumberMatcher.js\"));\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction searchPhoneNumbersInText() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n var matcher = new _PhoneNumberMatcher[\"default\"](text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n return _defineProperty({}, Symbol.iterator, function () {\n return {\n next: function next() {\n if (matcher.hasNext()) {\n return {\n done: false,\n value: matcher.next()\n };\n }\n\n return {\n done: true\n };\n }\n };\n });\n}\n//# sourceMappingURL=searchPhoneNumbersInText.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\n\n// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nfunction _default(a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = validatePhoneNumberLength;\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\n\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\n\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\n\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\n\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction validatePhoneNumberLength() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n }); // Parse phone number.\n\n try {\n var phoneNumber = (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n metadata = new _metadata[\"default\"](metadata);\n metadata.selectNumberingPlan(phoneNumber.countryCallingCode);\n var result = (0, _checkNumberLength[\"default\"])(phoneNumber.nationalNumber, metadata);\n\n if (result !== 'IS_POSSIBLE') {\n return result;\n }\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof _ParseError[\"default\"]) {\n return error.message;\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=validatePhoneNumberLength.js.map","'use strict'\r\n\r\nvar parsePhoneNumberFromString = require('../build/parsePhoneNumber.js').default\r\n\r\n// ES5 `require()` \"default\" \"interoperability\" hack.\r\n// https://github.com/babel/babel/issues/2212#issuecomment-131827986\r\n// An alternative approach:\r\n// https://www.npmjs.com/package/babel-plugin-add-module-exports\r\nexports = module.exports = parsePhoneNumberFromString\r\nexports['default'] = parsePhoneNumberFromString\r\n\r\nexports.ParseError = require('../build/ParseError.js').default\r\nvar parsePhoneNumberWithError = require('../build/parsePhoneNumberWithError.js').default\r\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\r\nexports.parsePhoneNumberWithError = parsePhoneNumberWithError\r\nexports.parsePhoneNumber = parsePhoneNumberWithError\r\n\r\n// `parsePhoneNumberFromString()` named export is now considered legacy:\r\n// it has been promoted to a default export due to being too verbose.\r\nexports.parsePhoneNumberFromString = parsePhoneNumberFromString\r\n\r\nexports.isValidPhoneNumber = require('../build/isValidPhoneNumber.js').default\r\nexports.isPossiblePhoneNumber = require('../build/isPossiblePhoneNumber.js').default\r\nexports.validatePhoneNumberLength = require('../build/validatePhoneNumberLength.js').default\r\n\r\nexports.findNumbers = require('../build/legacy/findNumbers.js').default\r\nexports.searchNumbers = require('../build/legacy/searchNumbers.js').default\r\n\r\nexports.findPhoneNumbersInText = require('../build/findPhoneNumbersInText.js').default\r\nexports.searchPhoneNumbersInText = require('../build/searchPhoneNumbersInText.js').default\r\nexports.PhoneNumberMatcher = require('../build/PhoneNumberMatcher.js').default\r\n\r\nexports.AsYouType = require('../build/AsYouType.js').default\r\n\r\nexports.Metadata = require('../build/metadata.js').default\r\nexports.isSupportedCountry = require('../build/metadata.js').isSupportedCountry\r\nexports.getCountries = require('../build/getCountries.js').default\r\nexports.getCountryCallingCode = require('../build/metadata.js').getCountryCallingCode\r\nexports.getExtPrefix = require('../build/metadata.js').getExtPrefix\r\n\r\nexports.getExampleNumber = require('../build/getExampleNumber.js').default\r\n\r\nexports.formatIncompletePhoneNumber = require('../build/formatIncompletePhoneNumber.js').default\r\n\r\nexports.parseIncompletePhoneNumber = require('../build/parseIncompletePhoneNumber.js').default\r\nexports.parsePhoneNumberCharacter = require('../build/parseIncompletePhoneNumber.js').parsePhoneNumberCharacter\r\nexports.parseDigits = require('../build/helpers/parseDigits.js').default\r\nexports.DIGIT_PLACEHOLDER = require('../build/AsYouTypeFormatter.js').DIGIT_PLACEHOLDER\r\n\r\nexports.parseRFC3966 = require('../build/helpers/RFC3966.js').parseRFC3966\r\nexports.formatRFC3966 = require('../build/helpers/RFC3966.js').formatRFC3966","'use strict'\r\n\r\nvar metadata = require('../metadata.max.json')\r\nvar core = require('../core/index.cjs')\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nfunction parsePhoneNumberFromString() {\r\n\treturn call(core.parsePhoneNumberFromString, arguments)\r\n}\r\n\r\n// ES5 `require()` \"default\" \"interoperability\" hack.\r\n// https://github.com/babel/babel/issues/2212#issuecomment-131827986\r\n// An alternative approach:\r\n// https://www.npmjs.com/package/babel-plugin-add-module-exports\r\nexports = module.exports = parsePhoneNumberFromString\r\nexports['default'] = parsePhoneNumberFromString\r\n\r\nexports.ParseError = core.ParseError\r\n\r\nfunction parsePhoneNumberWithError() {\r\n\treturn call(core.parsePhoneNumberWithError, arguments)\r\n}\r\n\r\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\r\nexports.parsePhoneNumber = parsePhoneNumberWithError\r\nexports.parsePhoneNumberWithError = parsePhoneNumberWithError\r\n\r\n// `parsePhoneNumberFromString()` named export is now considered legacy:\r\n// it has been promoted to a default export due to being too verbose.\r\nexports.parsePhoneNumberFromString = parsePhoneNumberFromString\r\n\r\nexports.isValidPhoneNumber = function isValidPhoneNumber() {\r\n\treturn call(core.isValidPhoneNumber, arguments)\r\n}\r\n\r\nexports.isPossiblePhoneNumber = function isPossiblePhoneNumber() {\r\n\treturn call(core.isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexports.validatePhoneNumberLength = function validatePhoneNumberLength() {\r\n\treturn call(core.validatePhoneNumberLength, arguments)\r\n}\r\n\r\nexports.findNumbers = function findNumbers() {\r\n\treturn call(core.findNumbers, arguments)\r\n}\r\n\r\nexports.searchNumbers = function searchNumbers() {\r\n\treturn call(core.searchNumbers, arguments)\r\n}\r\n\r\nexports.findPhoneNumbersInText = function findPhoneNumbersInText() {\r\n\treturn call(core.findPhoneNumbersInText, arguments)\r\n}\r\n\r\nexports.searchPhoneNumbersInText = function searchPhoneNumbersInText() {\r\n\treturn call(core.searchPhoneNumbersInText, arguments)\r\n}\r\n\r\nexports.PhoneNumberMatcher = function PhoneNumberMatcher(text, options) {\r\n\treturn core.PhoneNumberMatcher.call(this, text, options, metadata)\r\n}\r\nexports.PhoneNumberMatcher.prototype = Object.create(core.PhoneNumberMatcher.prototype, {})\r\nexports.PhoneNumberMatcher.prototype.constructor = exports.PhoneNumberMatcher\r\n\r\nexports.AsYouType = function AsYouType(country) {\r\n\treturn core.AsYouType.call(this, country, metadata)\r\n}\r\nexports.AsYouType.prototype = Object.create(core.AsYouType.prototype, {})\r\nexports.AsYouType.prototype.constructor = exports.AsYouType\r\n\r\nexports.isSupportedCountry = function isSupportedCountry(country) {\r\n\treturn call(core.isSupportedCountry, arguments)\r\n}\r\n\r\nexports.getCountries = function getCountries() {\r\n\treturn call(core.getCountries, arguments)\r\n}\r\n\r\nexports.getCountryCallingCode = function getCountryCallingCode() {\r\n\treturn call(core.getCountryCallingCode, arguments)\r\n}\r\n\r\nexports.getExtPrefix = function getExtPrefix(country) {\r\n\treturn call(core.getExtPrefix, arguments)\r\n}\r\n\r\nexports.getExampleNumber = function getExampleNumber() {\r\n\treturn call(core.getExampleNumber, arguments)\r\n}\r\n\r\nexports.formatIncompletePhoneNumber = function formatIncompletePhoneNumber() {\r\n\treturn call(core.formatIncompletePhoneNumber, arguments)\r\n}\r\n\r\nexports.parseIncompletePhoneNumber = core.parseIncompletePhoneNumber\r\nexports.parsePhoneNumberCharacter = core.parsePhoneNumberCharacter\r\nexports.parseDigits = core.parseDigits\r\nexports.DIGIT_PLACEHOLDER = core.DIGIT_PLACEHOLDER\r\n\r\nexports.parseRFC3966 = core.parseRFC3966\r\nexports.formatRFC3966 = core.formatRFC3966"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","Object","defineProperty","exports","value","_metadata","_interopRequireDefault","_PhoneNumber","_AsYouTypeState","_AsYouTypeFormatter","_interopRequireWildcard","_AsYouTypeParser","_getCountryByCallingCode","_getCountryByNationalNumber","_isObject","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","__esModule","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","push","length","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","toString","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_defineProperties","target","props","descriptor","enumerable","configurable","writable","AsYouType","optionsOrDefaultCountry","metadata","instance","Constructor","_classCallCheck","this","_this$getCountryAndCa2","getCountryAndCallingCode","defaultCountry","defaultCallingCode","reset","protoProps","staticProps","hasCountry","undefined","text","_this$parser$input","parser","input","state","digits","justLeadingPlus","formattedOutput","formattedNationalNumber","determineTheCountryIfNeeded","nationalSignificantNumber","formatter","narrowDownMatchingFormats","hasSelectedNumberingPlan","format","reExtractNationalSignificantNumber","nationalDigits","getNationalDigits","getFullNumber","getNonFormattedNumber","_this","onCountryChange","country","onCallingCodeChange","callingCode","selectNumberingPlan","numberingPlan","onNationalSignificantNumberChange","international","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","_this2","prefix","getInternationalPrefixBeforeCountryCallingCode","spacing","concat","getDigitsWithoutInternationalPrefix","_this$state","complexPrefixBeforeNationalSignificantNumber","nationalPrefix","number","nationalSignificantNumberMatchesInput","getNonFormattedNationalNumberWithPrefix","replace","DIGIT_PLACEHOLDER","countryCodes","getCountryCodesForCallingCode","setCountry","nationalNumber","_this$state2","countryCallingCode","_this$state3","carrierCode","_callingCode","ambiguousCountries","exactCountry","countries","phoneNumber","getNumber","isPossible","isValid","getTemplate","getNonFormattedTemplate","_AsYouTypeFormatterPatternParser","_createForOfIteratorHelperLoose","allowArrayLike","it","bind","PatternMatcher","pattern","matchTree","parse","string","allowOverflow","arguments","Error","result","_match","split","match","matchedChars","overflow","characters","tree","last","characterString","join","indexOf","partialMatch","restCharacters","JSON","stringify","op","_step","_iterator","args","_result","_step2","_iterator2","_char","PatternParser","context","or","instructions","parsePattern","_this$context$","branches","expandSingleElementArray","pop","OPERATOR","operator","before","index","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","values","prevValue","charCodeAt","nextValue","String","fromCharCode","RegExp","array","canFormatCompleteNumber","_checkNumberLength","_ref","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","_ref2","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_parseDigits","_formatNationalNumberUsingFormat","_ref3","useInternationalFormat","withNationalPrefix","isValidFormattedNationalNumber","_AsYouTypeFormatterUtil","_AsYouTypeFormatterComplete","_AsYouTypeFormatterPatternMatcher","_constants","_applyInternationalSeparatorStyle","LONGEST_DUMMY_PHONE_NUMBER","repeat","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","VALID_PUNCTUATION","AsYouTypeFormatter","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","formats","nextDigits","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigits","leadingDigitsPatternIndex","filter","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","Math","min","leadingDigitsPattern","error","console","internationalFormat","_this3","_loop","getFormatFormat","createTemplateForFormat","_","_ret","getTemplateForFormat","nationalPrefixFormattingRule","options","IDDPrefix","missingPlus","internationalPrefix","cutAndStripNonPairedParens","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","FIRST_GROUP_PATTERN","populateTemplateWithDigits","_ref5","closeNonPairedParens","cut_before","retained_template","opening_braces","countOccurences","closing_braces","dangling_braces","cutBeforeIndex","stripNonPairedParens","position","digit","search","DIGIT_PLACEHOLDER_MATCHER","times","symbol","count","start","cleared_string","_dangling_braces","extractFormattedDigitsAndPlus","_extractCountryCallingCode2","_extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","_extractNationalNumberFromPossiblyIncompleteNumber","_stripIddPrefix","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_DIGITS","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","PLUS_CHARS","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","_extractFormattedDigi2","formattedDigits","hasPlus","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","_extractCountryCallin","setCallingCode","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","setState","_extractNationalNumbe","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","_extractCountryCallin2","newCallingCode","resetNationalSignificantNumber","_extractFormattedDigitsAndPlus","extractedNumber","startsAt","extractFormattedPhoneNumber","_extractFormattedDigi4","AsYouTypeState","initCountryAndCallingCode","properties","_Object$keys","keys","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Reflect","construct","apply","self","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","_wrapNativeSuper","Class","_cache","Map","fn","Function","Wrapper","_construct","create","_setPrototypeOf","Parent","a","sham","Proxy","Boolean","valueOf","e","p","setPrototypeOf","__proto__","getPrototypeOf","ParseError","_Error","subClass","superClass","_inherits","_super","code","_isPossible","_isValid","_getNumberType","_getPossibleCountriesForNumber","_format2","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","ext","v2","isNonGeographicCallingCode","_format","_createExtensionPattern","_RegExpCache","_util","_utf","_Leniency","_parsePreCandidate","_isValidPreCandidate","_isValidCandidate","_parsePhoneNumber","EXTN_PATTERNS_FOR_MATCHING","INNER_MATCHES","pZ","PZ","leadLimit","limit","punctuationLimit","digitBlockLimit","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","blockLimit","punctuation","digitSequence","pNd","PATTERN","LEAD_CLASS","UNWANTED_END_CHAR_PATTERN","_pN","_pL","MAX_SAFE_INTEGER","Number","pow","PhoneNumberMatcher","isSupportedCountry","leniency","extended","maxTries","searchIndex","regExpCache","matches","exec","candidate","offset","parseAndVerify","extractInnerMatch","endsAt","phone","substring","innerMatchPattern","isFirstMatch","candidateMatch","innerMatchRegExp","_candidate","trimAfterFirstMatch","candidateIndexGuess","lastMatch","find","hasNext","WHITESPACE","MIN_LENGTH_FOR_NSN","_createClass","Node","prev","LRUCache","size","head","tail","ensureLimit","node","remove","put","log","containsMoreThanOneSlashInNationalNumber","_matchPhoneNumberStringAgainstPhoneNumber","_metadata2","_default","POSSIBLE","VALID","containsOnlyValidXChars","STRICT_GROUPING","isNationalPrefixPresentIfRequired","checkNumberGroupingIsValid","allNumberGroupsRemainGrouped","EXACT_GROUPING","allNumberGroupsAreExactlyPresent","charAtIndex","charAt","charAtNextIndex","__countryCallingCodeSource","chooseFormatForNumber","firstSlashInBodyIndex","secondSlashInBodyIndex","checkGroups","normalizedCandidate","formattedNumberGroups","_LRUCache","RegExpCache","regExp","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","LEAD_CLASS_LEADING","previousChar","isInvalidPunctuationSymbol","isLatinLetter","lastCharIndex","nextChar","OPENING_PARENS","CLOSING_PARENS","NON_PARENS","BRACKET_PAIR_LIMIT","SLASH_SEPARATED_DATES","TIME_STAMPS","followingText","TIME_STAMPS_SUFFIX_LEADING","phoneNumberString","phoneNumberStringContainsCallingCode","parsedPhoneNumber","SECOND_NUMBER_START_PATTERN","character","pSc_regexp","letter","pL_regexp","pMn_regexp","latinLetterRegexp","_pZ","pL","pSc","pMn","endsWith","lower","upper","startsWith","regexp","_normalizeArguments","_normalizeArguments2","matcher","_PhoneNumberMatcher","results","DEFAULT_OPTIONS","addExtension","formatExtension","_RFC","formatRFC3966","fromCountry","fromCountryCallingCode","getCountryCallingCode","iddPrefix","_getIddPrefix","formatIDD","_matchesEntirely","extension","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","_AsYouType","getCountries","examples","parseRFC3966","_part$split","_part$split2","_isViablePhoneNumber","trim","checkNumberLengthForType","_mergeArrays","type","type_info","possible_lengths","possibleLengths","mobile_type","actual_length","minimum_length","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","rfcExtn","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","maxLength","EXTN_PATTERN","numberWithoutExtension","isNumberWithIddPrefix","shorterNumber","countryCallingCodeSource","_countryCallingCode","hasCallingCode","_getCountryCallingCode","possibleShorterNumber","possibleShorterNationalNumber","_extractNationalNumber","nationalNumberPattern","numberToParse","phoneContext","_extractPhoneContext","isPhoneContextValid","_ParseError","PLUS_SIGN","indexOfNationalNumber","indexOfRfc3966Prefix","RFC3966_PREFIX_","indexOfPhoneContext","RFC3966_PHONE_CONTEXT_","indexOfIsdn","RFC3966_ISDN_SUBADDRESS_","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","nationalPrefixTransformRule","possiblePositionOfTheFirstCapturedGroup","numberToExtractFrom","phoneContextStart","phoneContextEnd","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","ALPHANUM_","nationalPhoneNumber","USE_NON_GEOGRAPHIC_COUNTRY_CODE","possibleCountries","matchingCountries","countryMetadata","defaultIDDPrefix","SINGLE_IDD_PREFIX_REG_EXP","isNumberTypeEqualTo","NON_FIXED_LINE_PHONE_TYPES","couldNationalNumberBelongToCountry","objectConstructor","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumberStart","VALID_PHONE_NUMBER_START_REG_EXP","MIN_LENGTH_PHONE_NUMBER_PATTERN","regular_expression","b","merged","element","sort","DIGITS","parseDigit","IDDPrefixPattern","matchedGroups","CAPTURING_DIGIT_PATTERN","isPossibleNumber","extract","_parsePhoneNumber_","hasTypes","Metadata","getExtPrefix","DEFAULT_EXT_PREFIX","validateMetadata","_semverCompare","CALLING_CODE_REG_EXP","setVersion","countryCode","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCallingCodes","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","FIRST_GROUP_ONLY_PREFIX_PATTERN","typeOf","version","v4","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_parseInput","_extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","throwOnError","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_extractFormattedPhoneNumber","withExtensionStripped","_extractExtension","parseInput","formattedPhoneNumber","_extractCountryCallingCode","_parseIncompletePhoneNumber","parsePhoneNumber","valid","possible","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","_parsePhoneNumberWithError_","_parse","pa","pb","na","nb","isNaN","message","parsePhoneNumberFromString","module","parsePhoneNumberWithError","isValidPhoneNumber","isPossiblePhoneNumber","validatePhoneNumberLength","findNumbers","searchNumbers","findPhoneNumbersInText","searchPhoneNumbersInText","getExampleNumber","formatIncompletePhoneNumber","parseIncompletePhoneNumber","parseDigits","core","func","_arguments"],"sourceRoot":""}