{"version":3,"file":"js/npm.libphonenumber-js.c4a7474b34043d6f550a.js","mappings":"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C,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAA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","sources":["webpack:///../node_modules/libphonenumber-js/build/AsYouType.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternMatcher.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternParser.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeFormatter.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeParser.js","webpack:///../node_modules/libphonenumber-js/build/AsYouTypeState.js","webpack:///../node_modules/libphonenumber-js/build/ParseError.js","webpack:///../node_modules/libphonenumber-js/build/PhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/PhoneNumberMatcher.js","webpack:///../node_modules/libphonenumber-js/build/constants.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/LRUCache.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/Leniency.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/utf-8.js","webpack:///../node_modules/libphonenumber-js/build/findNumbers/util.js","webpack:///../node_modules/libphonenumber-js/build/findPhoneNumbersInText.js","webpack:///../node_modules/libphonenumber-js/build/format.js","webpack:///../node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/getCountries.js","webpack:///../node_modules/libphonenumber-js/build/getCountryCallingCode.js","webpack:///../node_modules/libphonenumber-js/build/getExampleNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/RFC3966.js","webpack:///../node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js","webpack:///../node_modules/libphonenumber-js/build/helpers/checkNumberLength.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/extractPhoneContext.js","webpack:///../node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js","webpack:///../node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js","webpack:///../node_modules/libphonenumber-js/build/helpers/getCountryByNationalNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/getIddPrefix.js","webpack:///../node_modules/libphonenumber-js/build/helpers/getNumberType.js","webpack:///../node_modules/libphonenumber-js/build/helpers/getPossibleCountriesForNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/isObject.js","webpack:///../node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/helpers/matchesEntirely.js","webpack:///../node_modules/libphonenumber-js/build/helpers/mergeArrays.js","webpack:///../node_modules/libphonenumber-js/build/helpers/parseDigits.js","webpack:///../node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js","webpack:///../node_modules/libphonenumber-js/build/isPossible.js","webpack:///../node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/isValid.js","webpack:///../node_modules/libphonenumber-js/build/isValidPhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/legacy/findNumbers.js","webpack:///../node_modules/libphonenumber-js/build/legacy/findPhoneNumbers.js","webpack:///../node_modules/libphonenumber-js/build/legacy/findPhoneNumbersInitialImplementation.js","webpack:///../node_modules/libphonenumber-js/build/legacy/format.js","webpack:///../node_modules/libphonenumber-js/build/legacy/getNumberType.js","webpack:///../node_modules/libphonenumber-js/build/legacy/isPossibleNumber.js","webpack:///../node_modules/libphonenumber-js/build/legacy/isValidNumber.js","webpack:///../node_modules/libphonenumber-js/build/legacy/isValidNumberForRegion.js","webpack:///../node_modules/libphonenumber-js/build/legacy/isValidNumberForRegion_.js","webpack:///../node_modules/libphonenumber-js/build/legacy/parse.js","webpack:///../node_modules/libphonenumber-js/build/legacy/searchNumbers.js","webpack:///../node_modules/libphonenumber-js/build/metadata.js","webpack:///../node_modules/libphonenumber-js/build/normalizeArguments.js","webpack:///../node_modules/libphonenumber-js/build/parse.js","webpack:///../node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/parsePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/build/parsePhoneNumberWithError.js","webpack:///../node_modules/libphonenumber-js/build/parsePhoneNumberWithError_.js","webpack:///../node_modules/libphonenumber-js/build/parsePhoneNumber_.js","webpack:///../node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js","webpack:///../node_modules/libphonenumber-js/build/tools/semver-compare.js","webpack:///../node_modules/libphonenumber-js/build/validatePhoneNumberLength.js","webpack:///../node_modules/libphonenumber-js/core/index.cjs","webpack:///../node_modules/libphonenumber-js/index.cjs","webpack:///../node_modules/libphonenumber-js/min/index.cjs","webpack:///../node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack:///../node_modules/libphonenumber-js/es6/format.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack:///../node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack:///../node_modules/libphonenumber-js/es6/constants.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack:///../node_modules/libphonenumber-js/es6/isPossible.js","webpack:///../node_modules/libphonenumber-js/es6/isValid.js","webpack:///../node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack:///../node_modules/libphonenumber-js/es6/metadata.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/es6/ParseError.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack:///../node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack:///../node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack:///../node_modules/libphonenumber-js/es6/parse.js","webpack:///../node_modules/libphonenumber-js/es6/legacy/getNumberType.js","webpack:///../node_modules/libphonenumber-js/es6/legacy/isValidNumber.js","webpack:///../node_modules/libphonenumber-js/index.es6.exports/isValidNumber.js","webpack:///../node_modules/libphonenumber-js/metadata.min.json.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack:///../node_modules/libphonenumber-js/es6/AsYouType.js","webpack:///../node_modules/libphonenumber-js/min/exports/AsYouType.js","webpack:///../node_modules/libphonenumber-js/min/exports/getCountryCallingCode.js","webpack:///../node_modules/libphonenumber-js/min/exports/isSupportedCountry.js","webpack:///../node_modules/libphonenumber-js/min/exports/withMetadataArgument.js"],"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); // const 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 both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\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 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\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\"] = findPhoneNumbers;\nexports.searchPhoneNumbers = searchPhoneNumbers;\n\nvar _findPhoneNumbersInitialImplementation = _interopRequireWildcard(require(\"./findPhoneNumbersInitialImplementation.js\"));\n\nvar _normalizeArguments3 = _interopRequireDefault(require(\"../normalizeArguments.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// This is a legacy function.\n// Use `findNumbers()` instead.\nfunction findPhoneNumbers() {\n var _normalizeArguments = (0, _normalizeArguments3[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return (0, _findPhoneNumbersInitialImplementation[\"default\"])(text, options, metadata);\n}\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\n\n\nfunction searchPhoneNumbers() {\n var _normalizeArguments2 = (0, _normalizeArguments3[\"default\"])(arguments),\n text = _normalizeArguments2.text,\n options = _normalizeArguments2.options,\n metadata = _normalizeArguments2.metadata;\n\n return (0, _findPhoneNumbersInitialImplementation.searchPhoneNumbers)(text, options, metadata);\n}\n//# sourceMappingURL=findPhoneNumbers.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PhoneNumberSearch = exports.EXTN_PATTERNS_FOR_PARSING = void 0;\nexports[\"default\"] = findPhoneNumbers;\nexports.searchPhoneNumbers = searchPhoneNumbers;\n\nvar _constants = require(\"../constants.js\");\n\nvar _parse = _interopRequireDefault(require(\"../parse.js\"));\n\nvar _isViablePhoneNumber = require(\"../helpers/isViablePhoneNumber.js\");\n\nvar _createExtensionPattern = _interopRequireDefault(require(\"../helpers/extension/createExtensionPattern.js\"));\n\nvar _parsePreCandidate = _interopRequireDefault(require(\"../findNumbers/parsePreCandidate.js\"));\n\nvar _isValidPreCandidate = _interopRequireDefault(require(\"../findNumbers/isValidPreCandidate.js\"));\n\nvar _isValidCandidate = _interopRequireDefault(require(\"../findNumbers/isValidCandidate.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\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 * Regexp of all possible ways to write extensions, for use when parsing. This\r\n * will be run as a case-insensitive regexp match. Wide character versions are\r\n * also provided after each ASCII version. There are three regular expressions\r\n * here. The first covers RFC 3966 format, where the extension is added using\r\n * ';ext='. The second more generic one starts with optional white space and\r\n * ends with an optional full stop (.), followed by zero or more spaces/tabs\r\n * /commas and then the numbers themselves. The other one covers the special\r\n * case of American numbers where the extension is written with a hash at the\r\n * end, such as '- 503#'. Note that the only capturing groups should be around\r\n * the digits that you want to capture as part of the extension, or else parsing\r\n * will fail! We allow two options for representing the accented o - the\r\n * character itself, and one in the unicode decomposed form with the combining\r\n * acute accent.\r\n */\nvar EXTN_PATTERNS_FOR_PARSING = (0, _createExtensionPattern[\"default\"])('parsing');\nexports.EXTN_PATTERNS_FOR_PARSING = EXTN_PATTERNS_FOR_PARSING;\nvar WHITESPACE_IN_THE_BEGINNING_PATTERN = new RegExp('^[' + _constants.WHITESPACE + ']+');\nvar PUNCTUATION_IN_THE_END_PATTERN = new RegExp('[' + _constants.VALID_PUNCTUATION + ']+$'); // // Regular expression for getting opening brackets for a valid number\n// // found using `PHONE_NUMBER_START_PATTERN` for prepending those brackets to the number.\n// const BEFORE_NUMBER_DIGITS_PUNCTUATION = new RegExp('[' + OPENING_BRACKETS + ']+' + '[' + WHITESPACE + ']*' + '$')\n\nvar VALID_PRECEDING_CHARACTER_PATTERN = /[^a-zA-Z0-9]/;\n\nfunction findPhoneNumbers(text, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n var search = new PhoneNumberSearch(text, options, metadata);\n var phones = [];\n\n while (search.hasNext()) {\n phones.push(search.next());\n }\n\n return phones;\n}\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\n\n\nfunction searchPhoneNumbers(text, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n var search = new PhoneNumberSearch(text, options, metadata);\n return _defineProperty({}, Symbol.iterator, function () {\n return {\n next: function next() {\n if (search.hasNext()) {\n return {\n done: false,\n value: search.next()\n };\n }\n\n return {\n done: true\n };\n }\n };\n });\n}\n/**\r\n * Extracts a parseable phone number including any opening brackets, etc.\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?startsAt, ?endsAt }`.\r\n */\n\n\nvar PhoneNumberSearch = /*#__PURE__*/function () {\n function PhoneNumberSearch(text, options, metadata) {\n _classCallCheck(this, PhoneNumberSearch);\n\n this.text = text; // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n\n this.options = options || {};\n this.metadata = metadata; // Iteration tristate.\n\n this.state = 'NOT_READY';\n this.regexp = new RegExp(_isViablePhoneNumber.VALID_PHONE_NUMBER_WITH_EXTENSION, 'ig');\n }\n\n _createClass(PhoneNumberSearch, [{\n key: \"find\",\n value: function find() {\n var matches = this.regexp.exec(this.text);\n\n if (!matches) {\n return;\n }\n\n var number = matches[0];\n var startsAt = matches.index;\n number = number.replace(WHITESPACE_IN_THE_BEGINNING_PATTERN, '');\n startsAt += matches[0].length - number.length; // Fixes not parsing numbers with whitespace in the end.\n // Also fixes not parsing numbers with opening parentheses in the end.\n // https://github.com/catamphetamine/libphonenumber-js/issues/252\n\n number = number.replace(PUNCTUATION_IN_THE_END_PATTERN, '');\n number = (0, _parsePreCandidate[\"default\"])(number);\n var result = this.parseCandidate(number, startsAt);\n\n if (result) {\n return result;\n } // Tail recursion.\n // Try the next one if this one is not a valid phone number.\n\n\n return this.find();\n }\n }, {\n key: \"parseCandidate\",\n value: function parseCandidate(number, startsAt) {\n if (!(0, _isValidPreCandidate[\"default\"])(number, startsAt, this.text)) {\n return;\n } // Don't parse phone numbers which are non-phone numbers\n // due to being part of something else (e.g. a UUID).\n // https://github.com/catamphetamine/libphonenumber-js/issues/213\n // Copy-pasted from Google's `PhoneNumberMatcher.js` (`.parseAndValidate()`).\n\n\n if (!(0, _isValidCandidate[\"default\"])(number, startsAt, this.text, this.options.extended ? 'POSSIBLE' : 'VALID')) {\n return;\n } // // Prepend any opening brackets left behind by the\n // // `PHONE_NUMBER_START_PATTERN` regexp.\n // const text_before_number = text.slice(this.searching_from, startsAt)\n // const full_number_starts_at = text_before_number.search(BEFORE_NUMBER_DIGITS_PUNCTUATION)\n // if (full_number_starts_at >= 0)\n // {\n // \tnumber = text_before_number.slice(full_number_starts_at) + number\n // \tstartsAt = full_number_starts_at\n // }\n //\n // this.searching_from = matches.lastIndex\n\n\n var result = (0, _parse[\"default\"])(number, this.options, this.metadata);\n\n if (!result.phone) {\n return;\n }\n\n result.startsAt = startsAt;\n result.endsAt = startsAt + number.length;\n return result;\n }\n }, {\n key: \"hasNext\",\n value: function hasNext() {\n if (this.state === 'NOT_READY') {\n this.last_match = this.find();\n\n if (this.last_match) {\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.last_match;\n this.last_match = null;\n this.state = 'NOT_READY';\n return result;\n }\n }]);\n\n return PhoneNumberSearch;\n}();\n\nexports.PhoneNumberSearch = PhoneNumberSearch;\n//# sourceMappingURL=findPhoneNumbersInitialImplementation.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = formatNumber;\n\nvar _format = _interopRequireDefault(require(\"../format.js\"));\n\nvar _parse = _interopRequireDefault(require(\"../parse.js\"));\n\nvar _isObject = _interopRequireDefault(require(\"../helpers/isObject.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 formatNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n format = _normalizeArguments.format,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return (0, _format[\"default\"])(input, format, options, metadata);\n} // Sort out arguments\n\n\nfunction normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 5),\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 arg_5 = _Array$prototype$slic2[4];\n\n var input;\n var format;\n var options;\n var metadata; // Sort out arguments.\n // If the phone number is passed as a string.\n // `format('8005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n // If country code is supplied.\n // `format('8005553535', 'RU', 'NATIONAL', [options], metadata)`.\n if (typeof arg_3 === 'string') {\n format = arg_3;\n\n if (arg_5) {\n options = arg_4;\n metadata = arg_5;\n } else {\n metadata = arg_4;\n }\n\n input = (0, _parse[\"default\"])(arg_1, {\n defaultCountry: arg_2,\n extended: true\n }, metadata);\n } // Just an international phone number is supplied\n // `format('+78005553535', 'NATIONAL', [options], metadata)`.\n else {\n if (typeof arg_2 !== 'string') {\n throw new Error('`format` argument not passed to `formatNumber(number, format)`');\n }\n\n format = arg_2;\n\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n }\n\n input = (0, _parse[\"default\"])(arg_1, {\n extended: true\n }, metadata);\n }\n } // If the phone number is passed as a parsed number object.\n // `format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', [options], metadata)`.\n else if ((0, _isObject[\"default\"])(arg_1)) {\n input = arg_1;\n format = arg_2;\n\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n }\n } else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.'); // Legacy lowercase formats.\n\n\n if (format === 'International') {\n format = 'INTERNATIONAL';\n } else if (format === 'National') {\n format = 'NATIONAL';\n }\n\n return {\n input: input,\n format: format,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=format.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getNumberType;\nexports.normalizeArguments = normalizeArguments;\n\nvar _isViablePhoneNumber = _interopRequireDefault(require(\"../helpers/isViablePhoneNumber.js\"));\n\nvar _getNumberType2 = _interopRequireDefault(require(\"../helpers/getNumberType.js\"));\n\nvar _isObject = _interopRequireDefault(require(\"../helpers/isObject.js\"));\n\nvar _parse = _interopRequireDefault(require(\"../parse.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\n// Finds out national phone number type (fixed line, mobile, etc)\nfunction getNumberType() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n\n if (!input.phone) {\n return;\n }\n\n return (0, _getNumberType2[\"default\"])(input, options, metadata);\n} // Sort out arguments\n\n\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 input;\n var options = {};\n var metadata; // If the phone number is passed as a string.\n // `getNumberType('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n // If \"default country\" argument is being passed\n // then convert it to an `options` object.\n // `getNumberType('88005553535', 'RU', metadata)`.\n if (!(0, _isObject[\"default\"])(arg_2)) {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n\n if ((0, _isViablePhoneNumber[\"default\"])(arg_1)) {\n input = (0, _parse[\"default\"])(arg_1, {\n defaultCountry: arg_2\n }, metadata);\n } else {\n input = {};\n }\n } // No \"resrict country\" argument is being passed.\n // International phone number is passed.\n // `getNumberType('+78005553535', metadata)`.\n else {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n\n if ((0, _isViablePhoneNumber[\"default\"])(arg_1)) {\n input = (0, _parse[\"default\"])(arg_1, undefined, metadata);\n } else {\n input = {};\n }\n }\n } // If the phone number is passed as a parsed phone number.\n // `getNumberType({ phone: '88005553535', country: 'RU' }, ...)`.\n else if ((0, _isObject[\"default\"])(arg_1)) {\n input = arg_1;\n\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.');\n\n return {\n input: input,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=getNumberType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPossibleNumber;\n\nvar _getNumberType = require(\"./getNumberType.js\");\n\nvar _isPossible = _interopRequireDefault(require(\"../isPossible.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Checks if a given phone number is possible.\r\n * Which means it only checks phone number length\r\n * and doesn't test any regular expressions.\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isPossibleNumber('+78005553535', metadata)\r\n * isPossibleNumber('8005553535', 'RU', metadata)\r\n * isPossibleNumber('88005553535', 'RU', metadata)\r\n * isPossibleNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\nfunction isPossibleNumber() {\n var _normalizeArguments = (0, _getNumberType.normalizeArguments)(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n\n if (!input.phone && !(options && options.v2)) {\n return false;\n }\n\n return (0, _isPossible[\"default\"])(input, options, metadata);\n}\n//# sourceMappingURL=isPossibleNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidNumber;\n\nvar _isValid = _interopRequireDefault(require(\"../isValid.js\"));\n\nvar _getNumberType = require(\"./getNumberType.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Finds out national phone number type (fixed line, mobile, etc)\nfunction isValidNumber() {\n var _normalizeArguments = (0, _getNumberType.normalizeArguments)(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n\n if (!input.phone) {\n return false;\n }\n\n return (0, _isValid[\"default\"])(input, options, metadata);\n}\n//# sourceMappingURL=isValidNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidNumberForRegion;\n\nvar _isViablePhoneNumber = _interopRequireDefault(require(\"../helpers/isViablePhoneNumber.js\"));\n\nvar _parse = _interopRequireDefault(require(\"../parse.js\"));\n\nvar _isValidNumberForRegion_ = _interopRequireDefault(require(\"./isValidNumberForRegion_.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// This function has been deprecated and is not exported as\n// `isValidPhoneNumberForCountry()` or `isValidPhoneNumberForRegion()`.\n//\n// The rationale is:\n//\n// * We don't use the \"region\" word, so \"country\" would be better.\n//\n// * It could be substituted with:\n//\n// ```js\n// export default function isValidPhoneNumberForCountry(phoneNumberString, country) {\n// \tconst phoneNumber = parsePhoneNumber(phoneNumberString, {\n// \t\tdefaultCountry: country,\n// \t\t// Demand that the entire input string must be a phone number.\n// \t\t// Otherwise, it would \"extract\" a phone number from an input string.\n// \t\textract: false\n// \t})\n// \tif (!phoneNumber) {\n// \t\treturn false\n// \t}\n// \tif (phoneNumber.country !== country) {\n// \t\treturn false\n// \t}\n// \treturn phoneNumber.isValid()\n// }\n// ```\n//\n// * Same function could be used for `isPossiblePhoneNumberForCountry()`\n// by replacing `isValid()` with `isPossible()`.\n//\n// * The reason why this function is not exported is because its result is ambiguous.\n// Suppose `false` is returned. It could mean any of:\n// * Not a phone number.\n// * The phone number is valid but belongs to another country or another calling code.\n// * The phone number belongs to the correct country but is not valid digit-wise.\n// All those three cases should be handled separately from a \"User Experience\" standpoint.\n// Simply showing \"Invalid phone number\" error in all of those cases would be lazy UX.\nfunction isValidNumberForRegion(number, country, metadata) {\n if (typeof number !== 'string') {\n throw new TypeError('number must be a string');\n }\n\n if (typeof country !== 'string') {\n throw new TypeError('country must be a string');\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n\n var input;\n\n if ((0, _isViablePhoneNumber[\"default\"])(number)) {\n input = (0, _parse[\"default\"])(number, {\n defaultCountry: country\n }, metadata);\n } else {\n input = {};\n }\n\n return (0, _isValidNumberForRegion_[\"default\"])(input, country, undefined, metadata);\n}\n//# sourceMappingURL=isValidNumberForRegion.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isValidNumberForRegion;\n\nvar _isValid = _interopRequireDefault(require(\"../isValid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Checks if a given phone number is valid within a given region.\r\n * Is just an alias for `phoneNumber.isValid() && phoneNumber.country === country`.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n */\nfunction isValidNumberForRegion(input, country, 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 return input.country === country && (0, _isValid[\"default\"])(input, options, metadata);\n}\n//# sourceMappingURL=isValidNumberForRegion_.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = parseNumber;\n\nvar _parse = _interopRequireDefault(require(\"../parse.js\"));\n\nvar _normalizeArguments2 = _interopRequireDefault(require(\"../normalizeArguments.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction parseNumber() {\n var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return (0, _parse[\"default\"])(text, options, metadata);\n}\n//# sourceMappingURL=parse.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 min = require('./min/index.cjs')\r\nvar metadata = require('./metadata.min.json')\r\n\r\nfunction withMetadataArgument(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\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 = min.parsePhoneNumberFromString\r\nexports['default'] = min.parsePhoneNumberFromString\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 = min.parsePhoneNumberFromString\r\n\r\nexports.ParseError = min.ParseError\r\n\r\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\r\nexports.parsePhoneNumber = min.parsePhoneNumberWithError\r\nexports.parsePhoneNumberWithError = min.parsePhoneNumberWithError\r\n\r\nexports.isValidPhoneNumber = min.isValidPhoneNumber\r\nexports.isPossiblePhoneNumber = min.isPossiblePhoneNumber\r\nexports.validatePhoneNumberLength = min.validatePhoneNumberLength\r\n\r\n// `parse()` and `parseNumber()` functions are deprecated.\r\nvar parse_ = require('./build/legacy/parse.js').default\r\nexports.parse = function parse() {\r\n\treturn withMetadataArgument(parse_, arguments)\r\n}\r\nexports.parseNumber = exports.parse\r\n\r\n// `format()` and `formatNumber()` functions are deprecated.\r\nvar format_ = require('./build/legacy/format.js').default\r\nexports.format = function format() {\r\n\treturn withMetadataArgument(format_, arguments)\r\n}\r\nexports.formatNumber = exports.format\r\n\r\n// Deprecated.\r\nvar getNumberType_ = require('./build/legacy/getNumberType.js').default\r\nexports.getNumberType = function getNumberType() {\r\n\treturn withMetadataArgument(getNumberType_, arguments)\r\n}\r\n\r\n// Deprecated.\r\nvar isPossibleNumber_ = require('./build/legacy/isPossibleNumber.js').default\r\nexports.isPossibleNumber = function isPossibleNumber() {\r\n\treturn withMetadataArgument(isPossibleNumber_, arguments)\r\n}\r\n\r\n// Deprecated.\r\nvar isValidNumber_ = require('./build/legacy/isValidNumber.js').default\r\nexports.isValidNumber = function isValidNumber() {\r\n\treturn withMetadataArgument(isValidNumber_, arguments)\r\n}\r\n\r\n// Deprecated.\r\nvar isValidNumberForRegion_ = require('./build/legacy/isValidNumberForRegion.js').default\r\nexports.isValidNumberForRegion = function isValidNumberForRegion() {\r\n\treturn withMetadataArgument(isValidNumberForRegion_, arguments)\r\n}\r\n\r\nexports.getExampleNumber = min.getExampleNumber\r\nexports.Metadata = min.Metadata\r\n\r\n// Deprecated.\r\nvar findPhoneNumbers_ = require('./build/legacy/findPhoneNumbers.js').default\r\nexports.findPhoneNumbers = function findPhoneNumbers() {\r\n\treturn withMetadataArgument(findPhoneNumbers_, arguments)\r\n}\r\n\r\n// Deprecated.\r\nvar searchPhoneNumbers_ = require('./build/legacy/findPhoneNumbers.js').searchPhoneNumbers\r\nexports.searchPhoneNumbers = function searchPhoneNumbers() {\r\n\treturn withMetadataArgument(searchPhoneNumbers_, arguments)\r\n}\r\n\r\n// Deprecated.\r\nvar PhoneNumberSearch_ = require('./build/legacy/findPhoneNumbersInitialImplementation.js').PhoneNumberSearch\r\nexports.PhoneNumberSearch = function PhoneNumberSearch(text, options) {\r\n\treturn PhoneNumberSearch_.call(this, text, options, metadata)\r\n}\r\nexports.PhoneNumberSearch.prototype = Object.create(PhoneNumberSearch_.prototype, {})\r\nexports.PhoneNumberSearch.prototype.constructor = exports.PhoneNumberSearch\r\n\r\n// Deprecated.\r\nexports.findNumbers = min.findNumbers\r\n// Deprecated.\r\nexports.searchNumbers = min.searchNumbers\r\n\r\nexports.findPhoneNumbersInText = min.findPhoneNumbersInText\r\nexports.searchPhoneNumbersInText = min.searchPhoneNumbersInText\r\nexports.PhoneNumberMatcher = min.PhoneNumberMatcher\r\n\r\nexports.AsYouType = min.AsYouType\r\n\r\nexports.getCountries = min.getCountries\r\nexports.getCountryCallingCode = min.getCountryCallingCode\r\nexports.isSupportedCountry = min.isSupportedCountry\r\nexports.getExtPrefix = min.getExtPrefix\r\n\r\nexports.parseRFC3966 = min.parseRFC3966\r\nexports.formatRFC3966 = min.formatRFC3966\r\n\r\n// Deprecated: `DIGITS` were used by `react-phone-number-input`.\r\n// Replaced by `parseDigits()`.\r\nexports.DIGITS = require('./build/helpers/parseDigits.js').DIGITS\r\nexports.DIGIT_PLACEHOLDER = min.DIGIT_PLACEHOLDER\r\n\r\n// `getPhoneCode` name is deprecated\r\nexports.getPhoneCode = min.getCountryCallingCode\r\n\r\nexports.formatIncompletePhoneNumber = min.formatIncompletePhoneNumber\r\nexports.parseIncompletePhoneNumber = min.parseIncompletePhoneNumber\r\nexports.parsePhoneNumberCharacter = min.parsePhoneNumberCharacter\r\nexports.parseDigits = min.parseDigits","'use strict'\r\n\r\nvar metadata = require('../metadata.min.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.Metadata = function Metadata() {\r\n\treturn core.Metadata.call(this, metadata)\r\n}\r\nexports.Metadata.prototype = Object.create(core.Metadata.prototype, {})\r\nexports.Metadata.prototype.constructor = exports.Metadata\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","import Metadata from '../metadata.js';\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 */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(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 Metadata(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","import Metadata from '../metadata.js';\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 */\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\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(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","function _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\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\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\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\nexport default function 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(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 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 formatNationalNumberUsingFormat(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\nexport function 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 (matchesEntirely(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 = 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 = getIddPrefix(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","function _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\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // 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 */\n\nexport function 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 (!isViablePhoneNumber(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\nexport function 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","function 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\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\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 getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(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 getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(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\nexport { PhoneNumber as default };\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(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","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\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\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // 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//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","function _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 */\nexport default function 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","import mergeArrays from './mergeArrays.js';\nexport default function 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\nexport function 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 = mergeArrays(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","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\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 */\n\nexport default function 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 = stripIddPrefix(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 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(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(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 <= 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","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\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 */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(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 (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(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","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\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 */\n\nexport default function 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 = extractNationalNumberFromPossiblyIncompleteNumber(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\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 (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(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 (checkNumberLength(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","/**\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 */\nexport default function 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","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // 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.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function 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 applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function 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 getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","function _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\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function 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(metadata); // const 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 (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","function _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\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\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\nexport default function 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(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 (!matchesEntirely(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}\nexport function 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 matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function 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","function _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//\nexport var 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};\nexport function 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\nexport default function 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","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function 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(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","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\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 */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(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}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(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","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\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 */\n\nexport default function 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(metadata);\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 getNumberType(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 matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","// 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\nexport default function (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","function _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\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\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\nexport { Metadata as default };\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\nexport function 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 (!isObject(metadata) || !isObject(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(isObject(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\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\nexport function 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\nexport function 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}\nexport function 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 (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(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","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\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(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\nexport default function 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","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // 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//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + 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\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + 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\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\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\nexport default function isViablePhoneNumber(number) {\n return number.length >= 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\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","function _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 _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\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', '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\nexport default function 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","function _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\nimport { parseDigit } from './helpers/parseDigits.js';\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 */\n\nexport default function 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\nexport function 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 parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","// 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.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + 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_ = 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');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var 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\nexport default function 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\nexport function 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","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('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) === 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(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 + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(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(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","// 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\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\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('[' + PLUS_CHARS + 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('[^' + 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\nexport default function 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(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('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('TOO_SHORT');\n }\n\n throw new ParseError('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('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < 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('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 > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('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(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) ? matchesEntirely(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() && 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\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('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 = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(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 (!isViablePhoneNumber(number)) {\n if (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 = extractExtension(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 = extractCountryCallingCode(parseIncompletePhoneNumber(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 || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(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 = getCountryByCallingCode(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","function _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\nimport isViablePhoneNumber from '../helpers/isViablePhoneNumber.js';\nimport _getNumberType from '../helpers/getNumberType.js';\nimport isObject from '../helpers/isObject.js';\nimport parse from '../parse.js'; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n\n if (!input.phone) {\n return;\n }\n\n return _getNumberType(input, options, metadata);\n} // Sort out arguments\n\nexport function 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 input;\n var options = {};\n var metadata; // If the phone number is passed as a string.\n // `getNumberType('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n // If \"default country\" argument is being passed\n // then convert it to an `options` object.\n // `getNumberType('88005553535', 'RU', metadata)`.\n if (!isObject(arg_2)) {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n metadata = arg_3;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n\n if (isViablePhoneNumber(arg_1)) {\n input = parse(arg_1, {\n defaultCountry: arg_2\n }, metadata);\n } else {\n input = {};\n }\n } // No \"resrict country\" argument is being passed.\n // International phone number is passed.\n // `getNumberType('+78005553535', metadata)`.\n else {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n } // `parse` extracts phone numbers from raw text,\n // therefore it will cut off all \"garbage\" characters,\n // while this `validate` function needs to verify\n // that the phone number contains no \"garbage\"\n // therefore the explicit `isViablePhoneNumber` check.\n\n\n if (isViablePhoneNumber(arg_1)) {\n input = parse(arg_1, undefined, metadata);\n } else {\n input = {};\n }\n }\n } // If the phone number is passed as a parsed phone number.\n // `getNumberType({ phone: '88005553535', country: 'RU' }, ...)`.\n else if (isObject(arg_1)) {\n input = arg_1;\n\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.');\n\n return {\n input: input,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=getNumberType.js.map","import _isValidNumber from '../isValid.js';\nimport { normalizeArguments } from './getNumberType.js'; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function isValidNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata; // `parseNumber()` would return `{}` when no phone number could be parsed from the input.\n\n\n if (!input.phone) {\n return false;\n }\n\n return _isValidNumber(input, options, metadata);\n}\n//# sourceMappingURL=isValidNumber.js.map","// Deprecated.\r\n\r\nimport withMetadataArgument from '../min/exports/withMetadataArgument.js'\r\n\r\nimport _isValidNumber from '../es6/legacy/isValidNumber.js'\r\n\r\nexport function isValidNumber() {\r\n\treturn withMetadataArgument(_isValidNumber, arguments)\r\n}\r\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","function _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\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _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`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function 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\nexport function 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}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function 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}\nexport function 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}\nexport function 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","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function 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}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(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 = formatNationalNumberUsingFormat(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 parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _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\nexport { PatternParser as default };\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","function _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\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new PatternParser().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\nexport { PatternMatcher as default };\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","function _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\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\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 = 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('[' + 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' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + 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 (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(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, 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(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 PatternMatcher(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(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return 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, DIGIT_PLACEHOLDER) + repeat(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(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 (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$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/, 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'), 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 = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = 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 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\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _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\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + 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 = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + 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 = parseDigits(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 = _extractCountryCallingCode('+' + 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 = extractNationalNumberFromPossiblyIncompleteNumber(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 = extractNationalNumberFromPossiblyIncompleteNumber(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 = stripIddPrefix(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 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(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\nexport { AsYouTypeParser as default };\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\nexport function 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","function _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\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\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(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 (isObject(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({\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({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\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, 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(getCountryByCallingCode(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(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 = getCountryByNationalNumber(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(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\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { AsYouType as _AsYouType } from '../../core/index.js'\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { getCountryCallingCode as _getCountryCallingCode } from '../../core/index.js'\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn withMetadataArgument(_getCountryCallingCode, arguments)\r\n}","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isSupportedCountry as _isSupportedCountry } from '../../core/index.js'\r\n\r\nexport function isSupportedCountry() {\r\n\treturn withMetadataArgument(_isSupportedCountry, arguments)\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(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}"],"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","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","_normalizeArguments3","_findPhoneNumbersInitialImplementation","searchPhoneNumbers","PhoneNumberSearch","EXTN_PATTERNS_FOR_PARSING","phones","_parse","WHITESPACE_IN_THE_BEGINNING_PATTERN","PUNCTUATION_IN_THE_END_PATTERN","parseCandidate","last_match","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","arg_5","normalizeArguments","_getNumberType2","_isValidNumberForRegion_","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","_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_","pa","pb","na","nb","isNaN","message","parsePhoneNumberFromString","module","parsePhoneNumberWithError","isValidPhoneNumber","isPossiblePhoneNumber","validatePhoneNumberLength","findNumbers","searchNumbers","findPhoneNumbersInText","searchPhoneNumbersInText","getExampleNumber","formatIncompletePhoneNumber","parseIncompletePhoneNumber","parseDigits","withMetadataArgument","func","_arguments","parse_","parseNumber","format_","formatNumber","getNumberType_","getNumberType","isPossibleNumber_","isValidNumber_","isValidNumber","isValidNumberForRegion_","isValidNumberForRegion","findPhoneNumbers_","findPhoneNumbers","searchPhoneNumbers_","PhoneNumberSearch_","getPhoneCode","core","getPossibleCountriesForNumber","getIddPrefix","matchesEntirely","formatNationalNumberUsingFormat","applyInternationalSeparatorStyle","checkNumberLength","mergeArrays","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","extractNationalNumber","extractNationalNumberFromPossiblyIncompleteNumber","getCountryByCallingCode","getCountryByNationalNumber","isObject","stripIddPrefix","createExtensionPattern","isViablePhoneNumber","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","extractPhoneContext","extractExtension","formatCompleteNumber","_extractFormattedDigi","_extractFormattedDigi3"],"sourceRoot":""}